ТЕХНОАЗСоборудование и сервис
Поможем с подбором+7 (495) 015-38-90
База знаний

Все разделы · заголовок и текст статьи · от двух символов

Трансляция данных по протоколу ModBus RTU

Источник: документация производителя Топаз. Версию и применимость сверяйте с исходным документом.

Описание

Драйвер выполняет транслирование состояния и параметров Измерительных линий в АСУ ТП верхнего уровня по протоколу 485 ModBus RTU

Добавление и настройка драйвера

В «Менеджере оборудования» в разделе «Транслятор данных» выбрать драйвер «Трансляция данных в СУ верхнего уровня по протоколу ModBus» и нажать кнопку «Создать».

Выбрать созданный экземпляр драйвера. В разделе Параметры. Указать номер Com порта и скорость обмена. В поле «Адрес устройства» указывается адрес ModBus устройства.

Трансляция данных начинается в момент входа в режим управления «Топаз-Нефтебаза»

Иллюстрация к шагуОткрыть в полном размере

Чтение значений регистров

Чтение регистров производится ModBus функций 0x04 (Read Input Registers)

Адресация регистров общего назначения

Регистры общего назначения имеют абсолютную адресацию и содержат общую информацию об экземпляре «Топаз-Нефтебаза».

Таблица регистров имеет следующий вид:

№ регистраОбозначениеОписаниеЧтение/ ЗаписьТипКол - во регистров
10SideCountКоличество измерительных линийЧтениеUInt1
11TankCountКоличество емкостейЧтениеUInt1

Адресация регистров измерительных линий

Регистры измерительных линий (ИЛ) имеют динамическую адресацию и содержат информацию о данных и параметрах стороны.

Адресация регистров ИЛ начинается с регистра 100 и сдвигается на значение 100 (Offset) в порядке следования постов ИЛ в ПО «Топаз-Нефтебаза».

Таблица регистров ИЛ имеет следующий вид:

№ регистраОбозначениеОписаниеЧтение/ ЗаписьТипКол - во регистров
Offset+0Packet_TypeТип пакетаЧтениеUInt1
Offset+1Device_TypeТип слива оборудованияUInt1
Offset+2Side_NumberПорядковый номер стороныUInt1
Offset+3Side_AddressАдрес стороныUInt1
Offset+4ActiveHoseNumberНомер активного рукаваUInt1
Offset+5HoseCountКоличество сторонUInt1
Offset+6State_CodeСостояние ИЛUInt1
Offset +8Order_IDИдентификатор заказаUInt1
Offset +9Order_NumberНомер заказаUInt1
Offset +10Order_TypeТип заказаUInt1
Offset +15Order_Volume_OrderedЗаказ исходный в литрахFloat2
Offset +17Order_Volume_ReleasedОтпущенный объемFloat2
Offset +19Order_Mass_OrderedЗаказ исходный по массеFloat2
Offset +21Order_Mass_ReleasedОтпущенная массаFloat2
Offset +23Order_Amount_OrderedЗаказ исходный на суммуFloat2
Offset +25Order_Amount_ReleasedЗаказ отгруженный на суммуFloat2
Offset +27Order_DiscreteДискретность оборудованияFloat2
Offset +29Order_PriceЦенаFloat2
Offset +75Sensors_Temperature_CurrentМгновенная температураFloat2
Offset +77Sensors_Temperature_AVGСредняя температураFloat2
Offset +79Sensors_Density_CurrentМгновенная плотностьFloat2
Offset +81Sensors_Density_AVGСредняя плотностьFloat2
Offset +87Sensors_Рressure 1Мгновенное давление 1Float2
Offset +89Sensors_Рressure 2Мгновенное давление 2Float2
Offset +91Sensors_Рressure 3Мгновенное давление 3Float2
Offset +93Sensors_LockSignalsMaskБитовая маска сигналов блокировкиUInt1

Регистр «Состояние измерительной линии (State_Code)»

Допустимые значения регистра State_Code.

ЗначениеОписание
0Сторона не инициализирована.
1Сторона свободна. Активного отпуска нет.
2Ввод заказа на стороне.
3Налив топлива.
4Налив остановлен.
5Регистрация заказа.
6Сторона занята. Другие причины.
7Ошибка на стороне.
8Ошибка связи.
9Сторона заблокирована.
10Ввод внешнего заказа.
11Исполнение внешнего заказа.

Регистр «Битовая маска сигналов блокировки (Sensors_LockSignalsMask)»

Значения регистра 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+0Tank_IDВнутренний идентификатор ёмкостиЧтениеUInt1
Offset +1Tank_NumberНомер емкостиUInt1
Offset +2Tank_AddressАдрес емкостиUInt1
Offset +3Tank_StateТекущей статус емкостиUInt1
Offset +5Tank_Fuel_IDИдентификатор топлива в БДUInt1
Offset +6Tank_Gage_AddressАдрес подключенного уровнемераUInt1
Offset +7Tank_CaliberTableИспользование калибровочной таблицыUInt1
Offset +8Tank_LockStateПризнак заблокированной емкостиUInt1
Offset +9Tank_AccessibleПризнак доступности емкости для использованияUInt1
Offset +10Tank_VirtualTankПризнак виртуальной емкостиUInt1
Offset +11Tank_Water_AlarmАварийный уровень водыUInt1
Offset +12Tank_Volume_MaxМаксимальный обьем емкостиFloat2
Offset +14Tank_Volume_FactФактический обьем емкости по уровнемеруFloat2
Offset +16Tank_Volume_CalcРасчетный обьем емкостиFloat2
Offset +18Tank_Mass_FactФактическая масса емкости по уровнемеруFloat2
Offset +20Tank_Mass_CalcРасчетная масса емкостиFloat2
Offset +22Tank_TemperatureТемпература в емкости по уровнемеруFloat2
Offset +24Tank_DensityПлотность в емкости по уровнемеруFloat2
Offset +26Tank_Water_LevelУровень подтоварной водыUInt1
Offset +27Tank_LevelУровень топливаUInt1
Offset +28Tank_Height_MaxМаксимальная ВысотаUInt1

Регистр «Текущей статус емкости (Tank_State)»

Допустимые значения регистра 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).

и т.д