Рекомендации по организации переменных

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Руководства по подключению различных контроллеров > Подключение ОВЕН ПЛК1xx >

Рекомендации по организации переменных

Для упрощения настройки обмена по Modbus далее будут приведены несколько рекомендаций.

Не использовать переменную 8 Bits

Задать настройку "Максимально допустимый разрыв адресов в запросе чтения".

Формировать адреса в определенной последовательности

Вычислять адреса с помощью функции "Групповые операции"

 

Не использовать переменную 8 Bits

Как было сказано ранее в контроллере ОВЕН, все Modbus переменные размещены в одном сегменте памяти, к которому можно обращаться через регион Holding Registers или Coils.

Переменную 8 bits, обычно используют для передачи отдельных бит. Однако гораздо эффективнее использовать для этих целей переменную типа Word (подэлемент 2 Byte). Для записи и чтения отдельных битов в Codesys можно использовать специальные функциональные блоки – Pack и Unpack (библиотека "Util.lib"), а на языке ST можно обращаться к отдельным битам через точку (например VarWord1.0:=true).

Если на верхнем уровне используется MasterSCADA, то для упаковки и извлечения битов можно использовать ФБ "Упаковка 32-битного значения" и "Распаковка 32-битного значения".

Отказ от работы с отдельными битами через регион Coils позволит сэкономить как лицензионные теги OPC сервера, так и SCADA системы, а кроме того снизит сетевую нагрузку по обмену данных.

 

Задать настройку "Максимально допустимый разрыв адресов в запросе чтения".

Из-за правил выравнивания может получится, что некоторые промежуточные Modbus адреса окажутся неиспользованными. В нашем примере сначала идут переменные VarWord1 и VarWord2 с адресами 1 и 2, а затем VarFloat1 с адресом 4, и VarDWord1 с адресом 6, т.е. адрес 3 не используется. В этом случае OPC сервер выполнит два Modbus запроса – сначала опросит адреса 1 и 2, а затем адреса с 4 по 7.

При необходимости можно сделать, чтобы подобные регистры были опрошены за один запрос чтения. Для этого необходимо у устройства задать настройку Максимально допустимый разрыв в запросе чтения. По умолчанию данная настройка равна нулю. Если же задать данный параметр, то все разрывы адресов меньшие заданного значения будут игнорироваться.

То есть, если в данном случае мы установим этот параметр равным 1, то ОРС сервер запросит регистр с 1 по 7 одним запросом. Пустой, третий, Modbus регистр также будет опрошен, но его значение сервер просто проигнорирует.

OWEN_PLC_img35

 

Формировать адреса в определенной последовательности

Чтобы уменьшить количество неиспользуемых ячеек памяти, и упростить подсчет Modbus адресов, рекомендуем структурировать переменные по типам. Например – сначала добавляем переменные типа Word (2 Byte), затем добавляем переменные типа Real (Float).

 

Вычислять адреса с помощью функции "Групповые операции"

При добавлении OPC переменных можно легко ошибиться при задании Modbus адресов.

В третьей версии Modbus Universal MasterOPC сервера появилась новая функция – Групповые операции. С помощью данной функции можно быстро вносить изменения в группе тегов – менять адреса, тип данных в устройстве, чередование байт. Данная функция может облегчить и задание адресов для опроса контроллеров ОВЕН.

Рассмотрим следующим пример. В модуль Modbus (Slave) добавлено 7 переменных типа Word, 4 переменных типа Float и 2 переменных типа DWord.

OWEN_PLC_img36

Создадим конфигурацию OPC сервера для их опроса.

Добавим в устройство теги в таком же порядке, как и модуля Modbus (Slave) и соответствующими типами данных (2 byteuint16, FloatFloat, 4 Byteuint32). Адрес у всех тегов можно оставлять равным нулю или оставить вариант предлагаемым сервером – позже мы вычислим через групповые операции.

В итоге у нас получилась следующая ОРС конфигурация:

OWEN_PLC_img37

Через контекстное меню устройства вызовем команду Групповые операции.

OWEN_PLC_img38

Выберем операцию Изменить адрес, укажем способ измененияПо типам, базовый адрес укажем – 0.

OWEN_PLC_img39

Нажмем кнопку Применить.

OWEN_PLC_img40

Теги получили последовательно идущие адреса с шагом в зависимости от типа.

Однако 4 байтовые теги (Float и DWord переменные) попали на нечетные адреса, в то время как по правилам 4 байтовые переменные должны находится в адресах памяти кратных 4. То есть Modbus адреса 4 байтовых переменных должны начинаться с четного числа. Исправим эту ошибку.

Нажмем кнопку Готово. Затем у устройства, на закладке Таблица тегов выделим все 4-байтовые переменные, вызовем контекстное меню, а затем команду Групповые операции.

OWEN_PLC_img41

Переменная Float начинается с адреса 7. Укажем в качестве базового адреса следующее четное число, то есть 8.

OWEN_PLC_img42

Нажмем кнопку Применить.

OWEN_PLC_img43

Теперь все адреса корректные. Нажмем на кнопку Готово.

OWEN_PLC_img44