Шаблон:Особенности Modbus контроллеров
Insyte Spyder II
Убедитесь, что на контроллер Spyder II установлена прошивка 1.40 или старше, иначе возможны существенные задержки связи с контроллером и проблемы при работе с регистрами Coil.
Для работы с контроллером Insyte по протоколу Modbus TCP, активируйте возможность работы по этому протоколу в сетевых настройках контроллера, вкладка Ethernet. Пример конфигурации:
При создании команды управления регистром сдвигайте адресацию на "-1" относительно Insyte:.
У контроллера Insyte адреса регистров начинаются с 1, а в iRidium - с нуля.
Для обращения к ПЕРЕМЕННЫМ Insyte, используйте формулу:
Address = 1000 + [номер слота]*2
Номер слота есть у каждой переменной, он будет виден, если навести курсор мыши на переменную. Для отправки команды переменной используется тип данных Type: Holding Register и Word Size: Dword(32-bit).
Для отправки ИК команды через Insyte:
Address = адрес ИК эмиттера, с которого уходят команды Номер ИК команды = параметр Value (число) при натаскивании команды на графический элемент.
Команда на элемент натаскивается с указанием события Send Number.
Пример управления контроллером 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 место. Порядок задания переменных может быть произвольным, выравнивание же ставит переменные на кратные их длине адреса. Соответственно, возникают не занятые пространства памяти, которые должны учитываться пользователем: когда производится опрос прибора. Учет производится на стадии задания переменных.