Драйвер выполняет транслирование состояния и параметров Измерительных линий в АСУ ТП верхнего уровня по протоколу 485 ModBus RTU
В «Менеджере оборудования» в разделе «Транслятор данных» выбрать драйвер «Трансляция данных в СУ верхнего уровня по протоколу ModBus» и нажать кнопку «Создать».
Выбрать созданный экземпляр драйвера. В разделе Параметры. Указать номер Com порта и скорость обмена. В поле «Адрес устройства» указывается адрес ModBus устройства.
Трансляция данных начинается в момент входа в режим управления «Топаз-Нефтебаза»
Чтение регистров производится ModBus функций 0x04 (Read Input Registers)
Регистры общего назначения имеют абсолютную адресацию и содержат общую информацию об экземпляре «Топаз-Нефтебаза».
Таблица регистров имеет следующий вид:
№ регистра | Обозначение | Описание | Чтение/ Запись | Тип | Кол - во регистров |
10 | SideCount | Количество измерительных линий | Чтение | UInt | 1 |
11 | TankCount | Количество емкостей | Чтение | UInt | 1 |
Регистры измерительных линий (ИЛ) имеют динамическую адресацию и содержат информацию о данных и параметрах стороны.
Адресация регистров ИЛ начинается с регистра 100 и сдвигается на значение 100 (Offset) в порядке следования постов ИЛ в ПО «Топаз-Нефтебаза».
Таблица регистров ИЛ имеет следующий вид:
№ регистра | Обозначение | Описание | Чтение/ Запись | Тип | Кол - во регистров |
Offset+0 | Packet_Type | Тип пакета | Чтение | UInt | 1 |
Offset+1 | Device_Type | Тип слива оборудования | UInt | 1 | |
Offset+2 | Side_Number | Порядковый номер стороны | UInt | 1 | |
Offset+3 | Side_Address | Адрес стороны | UInt | 1 | |
Offset+4 | ActiveHoseNumber | Номер активного рукава | UInt | 1 | |
Offset+5 | HoseCount | Количество сторон | UInt | 1 | |
Offset+6 | State_Code | Состояние ИЛ | UInt | 1 | |
Offset +8 | Order_ID | Идентификатор заказа | UInt | 1 | |
Offset +9 | Order_Number | Номер заказа | UInt | 1 | |
Offset +10 | Order_Type | Тип заказа | UInt | 1 | |
Offset +15 | Order_Volume_Ordered | Заказ исходный в литрах | Float | 2 | |
Offset +17 | Order_Volume_Released | Отпущенный объем | Float | 2 | |
Offset +19 | Order_Mass_Ordered | Заказ исходный по массе | Float | 2 | |
Offset +21 | Order_Mass_Released | Отпущенная масса | Float | 2 | |
Offset +23 | Order_Amount_Ordered | Заказ исходный на сумму | Float | 2 | |
Offset +25 | Order_Amount_Released | Заказ отгруженный на сумму | Float | 2 | |
Offset +27 | Order_Discrete | Дискретность оборудования | Float | 2 | |
Offset +29 | Order_Price | Цена | Float | 2 | |
Offset +75 | Sensors_Temperature_Current | Мгновенная температура | Float | 2 | |
Offset +77 | Sensors_Temperature_AVG | Средняя температура | Float | 2 | |
Offset +79 | Sensors_Density_Current | Мгновенная плотность | Float | 2 | |
Offset +81 | Sensors_Density_AVG | Средняя плотность | Float | 2 | |
Offset +87 | Sensors_Рressure 1 | Мгновенное давление 1 | Float | 2 | |
Offset +89 | Sensors_Рressure 2 | Мгновенное давление 2 | Float | 2 | |
Offset +91 | Sensors_Рressure 3 | Мгновенное давление 3 | Float | 2 | |
Offset +93 | Sensors_LockSignalsMask | Битовая маска сигналов блокировки | UInt | 1 |
Допустимые значения регистра State_Code.
Значение | Описание |
0 | Сторона не инициализирована. |
1 | Сторона свободна. Активного отпуска нет. |
2 | Ввод заказа на стороне. |
3 | Налив топлива. |
4 | Налив остановлен. |
5 | Регистрация заказа. |
6 | Сторона занята. Другие причины. |
7 | Ошибка на стороне. |
8 | Ошибка связи. |
9 | Сторона заблокирована. |
10 | Ввод внешнего заказа. |
11 | Исполнение внешнего заказа. |
Значения регистра Sensors_LockSignalsMask представляет собой десятичное число, бинарное значение которого дает значение запрещающих сигналов. В зависимости от типа оборудования количество запрещающих сигналов может достигать 8 штук. Более точно количество и тип запрещающих сигналов указан в документе «Руководство по эксплуатации» поставляемом в комплекте с оборудованием. Нумерация сигналов в битовой маске выполнена по порядку, в направлении справа налево.
Например, значение регистра равно 3. Бинарное представление цифры 3 равно 0000 0011. В настройке оборудования используются только 4 запрещающих сигнала. При таких параметрах получаем значения:
Сигнал 1 . УЗА имеет значение – 1.
Сигнал 2 . ДПН имеет значение – 1.
Сигнал 3 . ИДПН имеет значение – 0.
Сигнал 4 . ДП имеет значение – 0.
Значения битовой маски превышающее количество запрещающих сигналов можно не учитывать.
Например, ПО «Топаз-Нефтебаза» сконфигурирована следующим образом: 1 Приемный и 2 Отгрузочных стояка налива.
В общем виде формула адресации регистров ИЛ имеет вид :
Адрес первого регистра ИЛ (Offset) = Общий порядковый номер стороны * 100
Первый приемный стояк налива (порядковый номер 1) будет иметь адреса регистров начиная с регистра 100.(Offset = 100)
106 - Состояние ИЛ
107 - Код ошибки ИЛ
193 - Битовая маска сигналов блокировки
и т.д
Первый отгрузочный стояк налива (порядковый номер 2) будет иметь адреса регистров начиная с регистра 200.( Offset = 200)
206 - Состояние ИЛ
207 - Код ошибки ИЛ
293 - Битовая маска сигналов блокировки
и т.д
Второй отгрузочный стояк налива (порядковый номер 3) будет иметь адреса регистров начиная с регистра 300.(Offset = 300)
306 - Состояние ИЛ
307 - Код ошибки ИЛ
393 - Битовая маска сигналов блокировки
и т.д
Регистры емкостей имеют динамическую адресацию и содержат информацию о данных и характеристиках емкости.
Адресация регистров ёмкостей начинается с регистра 2000 и сдвигается на значение 100 (Offset) в порядке следования емкостей в ПО «Топаз-Нефтебаза».
Таблица регистров емкостей имеет следующий вид:
№ регистра | Обозначение | Описание | Чтение/ Запись | Тип | Кол - во регистров |
Offset+0 | Tank_ID | Внутренний идентификатор ёмкости | Чтение | UInt | 1 |
Offset +1 | Tank_Number | Номер емкости | UInt | 1 | |
Offset +2 | Tank_Address | Адрес емкости | UInt | 1 | |
Offset +3 | Tank_State | Текущей статус емкости | UInt | 1 | |
Offset +5 | Tank_Fuel_ID | Идентификатор топлива в БД | UInt | 1 | |
Offset +6 | Tank_Gage_Address | Адрес подключенного уровнемера | UInt | 1 | |
Offset +7 | Tank_CaliberTable | Использование калибровочной таблицы | UInt | 1 | |
Offset +8 | Tank_LockState | Признак заблокированной емкости | UInt | 1 | |
Offset +9 | Tank_Accessible | Признак доступности емкости для использования | UInt | 1 | |
Offset +10 | Tank_VirtualTank | Признак виртуальной емкости | UInt | 1 | |
Offset +11 | Tank_Water_Alarm | Аварийный уровень воды | UInt | 1 | |
Offset +12 | Tank_Volume_Max | Максимальный обьем емкости | Float | 2 | |
Offset +14 | Tank_Volume_Fact | Фактический обьем емкости по уровнемеру | Float | 2 | |
Offset +16 | Tank_Volume_Calc | Расчетный обьем емкости | Float | 2 | |
Offset +18 | Tank_Mass_Fact | Фактическая масса емкости по уровнемеру | Float | 2 | |
Offset +20 | Tank_Mass_Calc | Расчетная масса емкости | Float | 2 | |
Offset +22 | Tank_Temperature | Температура в емкости по уровнемеру | Float | 2 | |
Offset +24 | Tank_Density | Плотность в емкости по уровнемеру | Float | 2 | |
Offset +26 | Tank_Water_Level | Уровень подтоварной воды | UInt | 1 | |
Offset +27 | Tank_Level | Уровень топлива | UInt | 1 | |
Offset +28 | Tank_Height_Max | Максимальная Высота | UInt | 1 |
Допустимые значения регистра Tank_State.
Значение | Описание |
0 | Емкость в норме |
1 | Переполнение емкости |
2 | Недостаточно нефтепродукта в емкости. |
3 | Высокий уровень подтоварной воды |
4 | Емкость отключена. |
5 | Отсутствует связь с уровнемером |
6 | Авария по данным уровнемера |
7 | Инициализация состояния емкости. |
Например, ПО «Топаз-Нефтебаза» сконфигурирована следующим образом: 4 емкости.
В общем виде формула адресации регистров емкостей имеет вид :
Адрес первого регистра (Offset) = 2000 + (Общий порядковый номер емкости * 100).
Нумерация емкостей начинается с нуля.
Общее количество емкостей содержится в регистре 11 (TankCount).
Первая емкость (порядковый номер 0) будет иметь адреса регистров начиная с регистра 2000.(Offset = 2000)
2000 - Внутренний идентификатор ёмкости (Tank_ID).
2001 - Номер емкости(Tank_Number).
2003 - Текущей статус емкости (Tank_State).
и т.д
Вторая емкость (порядковый номер 1) будет иметь адреса регистров начиная с регистра 2100.( Offset = 2100)
2100 - Внутренний идентификатор ёмкости (Tank_ID).
2101 - Номер емкости(Tank_Number).
2103 - Текущей статус емкости (Tank_State).
и т.д
Третья емкость (порядковый номер 2) будет иметь адреса регистров начиная с регистра 2200.( Offset = 2200)
2200 - Внутренний идентификатор ёмкости (Tank_ID).
2201 - Номер емкости(Tank_Number).
2203 - Текущей статус емкости (Tank_State).
и т.д