Шаблон:Особенности Modbus контроллеров

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

Insyte Spyder II

Attention.png Убедитесь, что на контроллер Spyder II установлена прошивка 1.40 или старше, иначе возможны существенные задержки связи с контроллером и проблемы при работе с регистрами Coil.


Для работы с контроллером Insyte по протоколу Modbus TCP, активируйте возможность работы по этому протоколу в сетевых настройках контроллера, вкладка Ethernet. Пример конфигурации:

Insyte Ethernet Config.png

При создании команды управления регистром сдвигайте адресацию на "-1" относительно Insyte:.
У контроллера Insyte адреса регистров начинаются с 1, а в iRidium - с нуля.


Для обращения к ПЕРЕМЕННЫМ Insyte, используйте формулу:

Address = 1000 + [номер слота]*2

Номер слота есть у каждой переменной, он будет виден, если навести курсор мыши на переменную. Для отправки команды переменной используется тип данных Type: Holding Register и Word Size: Dword(32-bit).


Для отправки ИК команды через Insyte:

Address = адрес ИК эмиттера, с которого уходят команды 

Номер ИК команды = параметр Value (число) при натаскивании команды на графический элемент. 

Команда на элемент натаскивается с указанием события Send Number.

Arrow download.png Пример управления контроллером Insyte Spyder II по Modbus TCP (проект), 0.8 Мб

↑ К оглавлению

Beckhoff


Beckhoff CX8090. Карта памяти Modbus/ADS:

Modbus areas Modbus address (HEX) Modbus address (DEC) ADS area
Digital inputs 0x0000 - 0x7FFF 0 - 32767 Index group:
0xF021 - process image of physical inputs (bit access)
Index offset:
0x0
0x8000 - 0x80FF 32768 - 33023 Name of the variables in PLC program:
.mb_Input_Coils
Data type:
ARRAY [0..255] OF BOOL
Digital outputs (coils) 0x0000 - 0x7FFF 0 - 32767 Index group:
0xF031 - process image of physical outputs (bit access)
Index offset:
0x0
0x8000 - 0x80FF 32768 - 33023 Name of the variables in PLC program:
.mb_Output_Coils
Data type:
ARRAY [0..255] OF BOOL
Input registers 0x0000 - 0x7FFF 0 - 32767 Index group:
0xF020 - process image of physical inputs
Index offset:
0x0
0x8000 - 0x80FF 32768 - 33023 Name of the variables in PLC program:
.mb_Input_Registers
Data type:
ARRAY [0..255] OF WORD
Output registers 0x0000 - 0x2FFF 0 - 12287 Index group:
0xF030 - process image of physical outputs
Index offset:
0x0
0x3000 - 0x5FFF 12288 - 24575 0x4020 - PLC memory area 0x0
0x6000 - 0x7FFF 24576 - 32767 0x4040 - PLC data area 0x0
0x8000 - 0x80FF 32768 - 33023 Name of the variables in PLC program:
.mb_Output_Registers
Data type:
ARRAY [0..255] OF WORD

Read/Write Holding Registers.

iPad1 AT %MB0 : WORD; (*адрес 12288*)
iPad2 AT %MB1 : WORD; (*адрес 12289*)


Read/Write Coils. Необходимо создать в global_var массив mb_Output_Coils. Например:

mb_Output_Coils AT %QB1000 : ARRAY[0..255] OF BOOL;
Создаем переменные:
iPad1 AT %QX1000.0 : BOOL; (*адрес 32768*)
iPad2 AT %QX1001.0 : BOOL; (*адрес 32769*)
iPad3 AT %QB1002 : ARRAY[0..5] OF BOOL; (*адрес 32770-32775*)
iPad3 AT %QB1007 : ARRAY[0..5] OF BOOL; (*адрес 32775-32780*)


Beckhoff BC9хх0. Карта памяти Modbus/ADS:


Вычисление Modbus адреса Read/Write Holding Registers производится по формуле:

Address = 16384 + 12 - 1 = 16395

16384 - начало области %MB (0x4000-0x47FF)
12 – индекс переменной (можно посмотреть в свойствах переменной)
1 – учитывает отсчет с нуля

↑ К оглавлению

ОВЕН

При настройке контроллера, в параметр FIX необходимо добавить ТСР Port подключения к контроллеру. По умолчанию - 502.

Один порт держит одно подключение ТСР мастера (клиента iRidium)

Номера регистров Modbus можно смотреть по адресам типа %QB7.1.5:

Address = %QB7.1.5 - 1 = 5 - 1 = 4

Последняя цифра адреса минус один - это номер регистра, который будет указываться в iRidium.


Выравнивание переменных CoDeSys при размещении в области памяти Modbus:

переменные размером 8 бит, 2 байта и 4 байта должны располагаться только по определенным адресам. Адрес 4-байтной переменной кратен 4, 2-байтной – кратен 2, а 1-байтной – кратен 1 и может находиться в любой точке пространства памяти. Т.е. если идет первая переменная типа «байт», то она будет расположена по адресу 0х00, следующая – 0х01 и т.д. Если дальше идет 4-байтная переменная, она должна располагаться по адресу 0х04 и т.д. При этом, если однобайтная переменная заняла место, кратное четырем, следующая 4-байтная переменная занимает следующее кратное 4 место. Порядок задания переменных может быть произвольным, выравнивание же ставит переменные на кратные их длине адреса. Соответственно, возникают не занятые пространства памяти, которые должны учитываться пользователем: когда производится опрос прибора. Учет производится на стадии задания переменных.

↑ К оглавлению