Контроллеры ROC 827 и FloBoss 107

  Особенности запроса переменных FLOAT

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

  Чтение архива контроллера FloBoss 107

Для обмена по MODBUS RTU, MODBUS TCP/IP контроллеры ROC 827 и FloBoss 107 предварительно конфигурируются с помощью утилиты ROCLINK 800 в соответствии с документацией на устройства.

В качестве шаблонов каналов обмена с контроллерами используются следующие шаблоны группы Источники/Приемники/MODBUS: W_SingleCoil(5), Rin_Byte(2), Rin_Float(4), W_Float(16) и R_FIFO_Queue (см. Подтипы 9 и 100 ). R_FIFO_Queue, привязанный к каналу CALL.ChGroupReq, обеспечивает чтение архива контроллера.

В ИС указанные шаблоны конфигурируются в редакторе (см. Обмен по MODBUS ). Значение атрибута Канал (номер переменной в формате HEX) должно соответствовать номеру регистра, указанному в столбце Start Register таблицы регистров контроллера (для групповых запросов указывается номер регистра первой переменной).

Для обмена по MODBUS RTU в узле необходимо создать и настроить компонент COM-порт (в соответствии с настройками используемого COM-порта контроллера).

Для обмена по MODBUS TCP/IP для узла необходимо сконфигурировать файл IP_modBus  (см. Обмен по протоколу MODBUS TCP/IP ).

Особенности запроса переменных FLOAT

В контроллерах EMERSON под переменную FLOAT выделяется 1 регистр, поэтому для MODBUS-запроса одной переменной FLOAT в качестве количества запрашиваемых слов необходимо указывать не 2 слова (что соответствует стандартному протоколу MODBUS), а одно. Для этого в файле *.cnf узла должен быть задан соответствующий ключ:

   MDB_FLAG=1 – задает количество запрашиваемых слов переменной FLOAT равным 1 при обмене по MODBUS TCP/IP;

   MDB_FLAG=2N – задает количество запрашиваемых слов переменной FLOAT равным 1 при обмене по MODBUS RTU через COM-порт с номером N.

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

При конфигурировании контроллеров с помощью утилиты ROCLINK 800 необходимо обратить внимание на настройку порядка следования байтов, который устанавливается отдельно для каждого порта контроллера. Соответствующий порядок следования байтов должен быть задан в файле *.cnf узла TRACE MODE (файл modbus.set в данном случае не используется):

   MDB_FLOATCNV=101 – этот ключ разрешает задание порядка следования байтов отдельно для каждого устройства (с помощью ключей MDB_AFCNV<nn>);

   MDB_AFCNV<nn>=<M, DEC> – порядок следования байтов для устройства с адресом nn. Число M вычисляется следующим образом (BO – номер порядка следования байтов, см. Обмен по MODBUS ):

   для переменных FLOAT BO записывается в полубайт 0xF;

   для переменных LONG (8 байтов) BO записывается в полубайт 0xF0;

   для переменных даты и времени (для чтения архива) BO записывается в полубайт 0xF0 и устанавливается бит 12 (0x1000).

Примеры ключа MDB_AFCNV<nn>

MDB_AFCNV02=4096 – для устройства с адресом 2 при Byte Order = Most Significant Byte First с реализованным в проекте чтением архива (4096 = 0*1+0*16+4096).

MDB_AFCNV15=4114 – для устройства с адресом 15 при Byte Order = Least Significant Byte First с реализованным в проекте чтением архива (4114=1*1+1*16+4096).

Чтение архива контроллера FloBoss 107

Для запроса архива используется MODBUS-функция с номером 3. В данных ответа содержатся времена, даты и значения архивируемых переменных. Все переменные ответа имеют формат FLOAT, в файле *.cnf задается ключ MDB_AFCNV02=4096.

Для запроса архива переменная R_FIFO_Queue привязывается к каналу CALL.ChGroupReq типа INPUT с атрибутом Параметр=2.

Канал посылает в контроллер команду MODBUS, сформированную по следующим правилам:

   адрес соответствует адресу, заданному в источнике;

   arg0 задает номер функции (3);

   номер переменной соответствует заданному в источнике (2-байтовое целое);

   arg1 задает номер запрашиваемой строки архива.

Дата и время строки архива записывается в arg2.

Значения параметров, заданных при конфигурировании FloBoss 107 на вкладке History Setup утилиты ROCLINK 800, записываются в последующие аргументы.