Примеры кадров протокола Modbus


На рис. 16 рассмотрен запрос данных от Master на чтение в устройстве по адресу 6 (Slave Address =06h) трех регистров с 40108 по 40110 (AE41h-AE43h). Особенность указания номеров регистров в Modbus в том, что к указанным в сообщениях значениям в зависимости от кода команды добавляется смещение адреса (в нашем случае 40001). Так для данного запроса в стартовом адресе будет указано 107 (Starting Address Lo = 6Вh, Starting Address Hi=00h). Адрес приходится записывать по частям, поскольку каждое поле содержит только 8 бит, а для указания максимально возможного допустимого адреса без смещения (9998) потребуется 16 бит (270Eh). Запрашиваемое число регистров (0003h) также указывается в виде двух чисел (No. of Registers Lo=03h; No. of Registers Hi=00h). Значение контрольной секции кадра в примере не показано. Ответ, полученный от подчиненного устройства, содержит следующие сведения. Запрос принят и исполнен без обнаруженных ошибок (Function=03h); всего передается содержимое 6-ти байт данных (по два байта на каждый запрошенный регистр (Byte Count=06h); значения запрошенных регистров (Data Нi, Data Lo) составляют: 022Bh, 0000h и 0063h.

запрос от Master
Field Name (Hex) 8–Bit Field
Slave Address 0000 0110
Function 0000 0011
Starting Address Hi 0000 0000
Starting Address Lo 6B 0110 1011
No. of Registers Hi 0000 0000
No. of Registers Lo 0000 0011
Error Check   CRC (16 bits)

 

 
Ответ от Slave
Field Name (Hex) 8–Bit Field
Slave Address 0000 0110
Function 0000 0011
Byte Count 0000 0110
Data Hi 0000 0010
Data Lo 2B 0010 1011
Data Hi 0000 0000
Data Lo 0000 0000
Data Hi 0000 0000
Data Lo 0110 0011
Error Check   CRC (16 bits)

 

Рис. 16. Кадры протокола Modbus при запросе на чтение регистров

На рис. 17 приведен пример установки значения FFh в 40002-й регистр подчиненного устройства (смещение 40001) с адресом 01h. Кадры Master и Slave при успешном выполнении данной операции будут совпадать. Значения полей указано в шестнадцатеричном коде.

 

Slave adress Function Starting Addr Hi Starting Addr Lo Data Hi Data Lo Error Check
Адрес подчиненного Номер функции Адрес ст байта Адрес мл байта Данные ст.байта Данные мл.байта CRC мл.байт CRC ст.байт
FF FF D9 ВA

 

Рис. 17. Кадр протокола Modbus при установке значения в один регистр

 

Пример запроса состояния 37-ми дискретных выходов (с 20 по 56) в устройстве 17 приведен на рис.18. Значение каждого выхода представляется одним битом. В кадре ответа они группируются в байты. Если возвращаемое количество выходов не кратно восьми, то оставшиеся биты в последнем байте сообщения будут установлены в 0. Счетчик байт содержит количество байт передаваемых в поле данных (5).

запрос от Master
Field Name Hex 8–Bit Field
Slave Address 0001 0001
Function 0000 0001
Starting Address Hi 0000 0000
Starting Address Lo 0001 0011
No. of Registers Hi 0000 0000
No. of Registers Lo 0010 0101
Error Check   CRC

 

 
Ответ от Slave
Field Name Hex 8–Bit Field
Slave Address 0000 0110
Function 0000 0011
Byte Count 0000 0110
Data (Output: 27-20) CD 1100 1101
Data (Output: 35-28) 6B 0110 1011
Data (Output: 43-36) B2 1011 0010
Data (Output: 51-44) 0E 0000 1110
Data (Output: 56-52) 1B 0001 1011
Error Check   CRC

 

Рис. 18. Кадры Modbus при чтении группы дискретных данных

 



Дата добавления: 2019-09-30; просмотров: 542;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.