Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › опрос через Modbas COM
- В этой теме 2 ответа, 2 участника, последнее обновление 9 лет назад сделано
Mikhail.
-
АвторСообщения
-
11.03.2016 в 17:27 #1652
Netop
УчастникВопрос к разработчикам. Считаю, что в «Редакторе шаблонов устройств» некорректно отображается:
1. «Адрес нач. элемента»
2. В таблице данных перепутаны Holding Registers (Регистры хранения, 4X) и Input Registers (Входные регистры, 3X)
Наблюдал картину, при выключении сервера SCADA-Коммуникатор ( я отслеживал выключении в диспетчере задач) опрос через преобразователь продолжался. Это видно по светодиодам на преобразователе. Поэтому другие программы не могли использовать COM порт, который ранее был задействован SCADA-Коммуникатор. Вот если вытащить преобразователь (USB-RS-485), то тогда опрос прекращался. Видимо, что с библиотеками, отвечающими за последовательный порт.Все началось с того, что начал изучать Rapid Scada применительно с прибором ТРМ32 (ОВЕН). Имея не малый опыт работы с Modbus RTU решил настроить пока через преобразователь опрос Modbus регистров через SCADA-Коммуникатор (ScadaCommCtrl.exe). Принцип работы протокола Modbus RTU простой. Если интересно, то в интернете есть файл, который содержит следующее:
«Данный документ является сокращенным переводом описания стандартного протокола MODBUS фирмы MODICON GOULD. Исходный текст на английском языке можно получить по URL: http://www.modicon.com/techpubs/toc7.html. Следует особо отметить изменения в описании функции 17. Список параметров прибора, получаемый с помощью данной функции, отличается от стандартного.»Это очень хороший документ и повторять его изложения я не буду. В нем написано Holding Registers и Input Registers:
Вся фишка в том, чтобы проверять себя сторонними программами и другими преобразователями, что реально передается по RS-485. Перед Scad-ой я настроил Lectus Modbus OPC and DDE server, ОВЕН OPC сервер, MasterOPC Universal Modbus Server (InSAT). То что они настроены видно на картинках.11.03.2016 в 17:40 #1659Netop
Участникпродолжение
Сравнивая настройки в «Редакторе шаблонов устройств» и других программах можно заметить, что Адрес нач. элемента следует завышать на 1. Т.е вместо 682 надо написать 683.
10 03 02 AA 00 02 E6 D2
10 03 04 40 23 40 0E AF 3C
10 03 03 AF 00 01 B7 2E
10 03 02 00 02 C5 86
Конец сообщения11.03.2016 в 19:21 #1663Mikhail
МодераторРекомендую статью по Modbus http://rapidscada.ru/modbus/
В ней описана причина расхождения адресов регистров на 1. По официальному стандарту Modbus адресация регистров начинается с 1. В документации на зарубежные приборы чаще всего соблюдаются стандарты и адресацию начинают с 1. Вообще, наверное, нужно переключатель нумерации сделать в редакторе шаблонов.
Официальные спецификации Modbus: http://www.modbus.org/specs.php
In a MODBUS PDU each data is addressed from 0 to 65535. ... In the MODBUS data Model each element within a data block is numbered from 1 to n.
По поводу 3x и 4x — это обозначения адресных пространств.
При этом кодировка функций чтения данных сделана наоборот, что конечно вносит путаницу. Здесь есть табличка: http://www.automation.com/library/articles-white-papers/fieldbus-serial-bus-io-networks/introduction-to-modbusЕсли вещественные значения отображаются некорректно, вероятно, нужно изменить порядок байт.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.