Найти в Дзене
МНПП Сатурн

1. Хитрые приемы в работе с опросчиком OPD

Рассмотрим следующую задачу: на объекте имеется несколько устройств, подключенных к одной физической линии RS485. Все эти устройства обладают одинаковыми настройками физического интерфейса, например, 115200 8,n,1, и поддерживают обмен данными по протоколу MODBUS-RTU. Список адресов устройств: 1. Saturn-PLC "Управление клапанами СО и ГВС" ADDR=14 с программой "Отопление, ГВС, Вентиляция" 2. Saturn-PLC "Контроллер управления насосами отопления СО" ADDR=15 с программой "Отопление, ГВС, Вентиляция" 3. Saturn-PLC "Контроллер управления насосами отопления СО" ADDR=16 с программой на C-Script Устройства со стандартными прошивками, включая ГВС-ЦО и модули расширения, автоматически опрашиваются драйвером #CAT, и на сервере LanMon создаются соответствующие каналы. Однако некоторые из этих устройств не могут работать с драйвером #CAT, а требуют использования драйвера #MDBS для прямого чтения регистров MODBUS. Это относится и к контроллерам с загруженной прошивкой на C-Script. или другие устройс
Оглавление
Стенд с несколькими устройстввами из серии Saturn-PLC и MP-CAT
Стенд с несколькими устройстввами из серии Saturn-PLC и MP-CAT

Рассмотрим следующую задачу: на объекте имеется несколько устройств, подключенных к одной физической линии RS485. Все эти устройства обладают одинаковыми настройками физического интерфейса, например, 115200 8,n,1, и поддерживают обмен данными по протоколу MODBUS-RTU.

Список адресов устройств:

1. Saturn-PLC "Управление клапанами СО и ГВС" ADDR=14 с программой "Отопление, ГВС, Вентиляция"

2. Saturn-PLC "Контроллер управления насосами отопления СО" ADDR=15 с программой "Отопление, ГВС, Вентиляция"

3. Saturn-PLC "Контроллер управления насосами отопления СО" ADDR=16 с программой на C-Script

Устройства со стандартными прошивками, включая ГВС-ЦО и модули расширения, автоматически опрашиваются драйвером #CAT, и на сервере LanMon создаются соответствующие каналы. Однако некоторые из этих устройств не могут работать с драйвером #CAT, а требуют использования драйвера #MDBS для прямого чтения регистров MODBUS. Это относится и к контроллерам с загруженной прошивкой на C-Script. или другие устройства стороннего производителя.

Поэтому мы хотим опрашивать два устройства через драйвер #CAT а третье через драйвер #MDBS.

В чем проблема?

Опросчик не позволит подключить два драйвера к одному физическому порту. Он выдаст ошибку «opros CAT[/dev/ttyS0] Can't set serial mode», так как не может открыть один и тот же порт дважды.

Есть способ обойти это ограничение!

В этом случае нас выручит "Функция шлюза Modbus TCP" GATEPORT. Главное условие — все устройства должны работать с одинаковой скоростью обмена, а также иметь одинаковые настройки четности и стоп-битов. например 115200.8.n.1

эта функция подробно описана на стр 30 документа http://www.mnppsaturn.ru/ftp/public/soft/opros/Manual_OPROS.pdf

в секции #CAT прописываем два устройства ADDR0=14 ADDR1=15 ... и в эту секцию добавляем GATEPORT=300

#CAT

AUTO=1

PORT="/dev/ttyS0"

LOCALPORTMODE=485

SPEED=115200

PERIOD=10

GATEPORT=300 ; даём возможность обратится на эту линию RS485 модбас через TCP по порту 300

ADDR0=14 ;Управление клапанами СО и ГВС

ADDR1=15 ;Контроллер управления насосами отопления СО

так как это тоже самое устройство, то IP=127.0.0.1 (localhost)

далее создаем секцию драйвера #MDBS для прямого чтения регистров

MODBUS.

#MDBS

AUTO=1

USEASCII=0

USETCP=1

PORT="TCP:127.0.0.1:300"

PERIOD=10

DEBUG=0

ADDR0=16 ; "Контроллер управления насосами отопления СО" ADDR=16 с программой на C-Script

и далее модбас регистры для CScript

REG0.0="400002,W<->INTEGER" ;Режим регулировки ГВС 1 интервал

REG0.1="400003,W<->INTEGER" ;Режим регулировки ГВС 2 интервал

REG0.2="400004,W<->INTEGER" ;Режим регулировки ГВС 3 интервал

Вот таким образом можно обращаться с к одной физической линии RS-485 из разных секций #MDBS и #CAT

Подписывайтесь чтобы не пропустить новые статьи с хитрыми приемами.

Еще один вариант использования этого трюка

Этим же приемом можно воспользоваться если вы хотите читать по #MDBS часть параметров очень часто (например 1 раз в секунду, это PERIOD=0.016) а вторая группа параметров будет читаться редко с PERIOD=10 ;мин.