опрос через Modbas COM

  • В этой теме 2 ответа, 2 участника, последнее обновление 9 лет назад сделано Mikhail.
Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #1652
    Netop
    Участник

    Вопрос к разработчикам. Считаю, что в «Редакторе шаблонов устройств» некорректно отображается:
    1. «Адрес нач. элемента»
    2. В таблице данных перепутаны Holding Registers (Регистры хранения, 4X) и Input Registers (Входные регистры, 3X)
    Наблюдал картину, при выключении сервера SCADA-Коммуникатор ( я отслеживал выключении в диспетчере задач) опрос через преобразователь продолжался. Это видно по светодиодам на преобразователе. Поэтому другие программы не могли использовать COM порт, который ранее был задействован SCADA-Коммуникатор. Вот если вытащить преобразователь (USB-RS-485), то тогда опрос прекращался. Видимо, что с библиотеками, отвечающими за последовательный порт.

    1

    Все началось с того, что начал изучать 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:
    1
    Вся фишка в том, чтобы проверять себя сторонними программами и другими преобразователями, что реально передается по RS-485. Перед Scad-ой я настроил Lectus Modbus OPC and DDE server, ОВЕН OPC сервер, MasterOPC Universal Modbus Server (InSAT). То что они настроены видно на картинках.

    • Эта тема была изменена 9 лет назад от Netop.
    • Эта тема была изменена 9 лет назад от Netop.
    • Эта тема была изменена 9 лет назад от Netop.
    • Эта тема была изменена 9 лет назад от Netop.
    • Эта тема была изменена 9 лет назад от Netop.
    • Эта тема была изменена 9 лет назад от Netop.
    #1659
    Netop
    Участник

    продолжение
    12
    13
    14
    15
    Сравнивая настройки в «Редакторе шаблонов устройств» и других программах можно заметить, что Адрес нач. элемента следует завышать на 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
    16
    17
    18
    19
    Конец сообщения

    • Этот ответ был изменен 9 лет назад от Netop.
    • Этот ответ был изменен 9 лет назад от Netop.
    #1663
    Mikhail
    Модератор

    Рекомендую статью по 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

    Если вещественные значения отображаются некорректно, вероятно, нужно изменить порядок байт.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Вы должны авторизироваться для ответа в этой теме.