Modbus: различия между версиями

Строка 148: Строка 148:


В качестве данных мы получили шестнадцатеричное число 0x2D, то есть состояние восьми coil-регистров в двоичном виде такое: 0b10110100.
В качестве данных мы получили шестнадцатеричное число 0x2D, то есть состояние восьми coil-регистров в двоичном виде такое: 0b10110100.
Function code 4 (read input registers) and function code 3 (read holding registers)
Request:
    Address of first register to read (16-bit)
    Number of registers to read (16-bit)
Normal response:
    Number of bytes of register values to follow (8-bit)
    Register values (16 bits per register)
Because the number of bytes for register values is 8-bit wide, only 127 registers can be read at once.




Строка 170: Строка 155:
|-
|-
!    1 (Read Coils) и 2 (Read Discrete Inputs)
!    1 (Read Coils) и 2 (Read Discrete Inputs)
|<ul><li>Адрес первого coil-регистра или входного регистра (16 бит )</li><li>Количество данных (8 значений на байт) (16 бит)</li><ul>||  <ul><li>Число передаваемых байт (8 бит )</li><li>Значения coil-регистров или входных регистров (8 значений на байт)</li><ul>  
|<ul><li>Адрес первого coil-регистра или входного регистра (16 бит)</li><li>Количество данных (8 значений на байт) (16 бит)</li><ul>||  <ul><li>Число передаваемых байт (8 бит)</li><li>Значения coil-регистров или входных регистров (8 значений на байт)</li><ul>  
|-
|-
!    3  (Read Holding Registers) и 4 (Read Input Registers)
!    3  (Read Holding Registers) и 4 (Read Input Registers)
|<ul><li>Адрес первого регистра (16 бит )</li><li>Количество регистров, которые нужно прочесть</li><ul>||  <ul><li>Число передаваемых байт (8 бит)</li><li>Значения регистров (16 бит на 1 регистр)</li><ul>
|<ul><li>Адрес первого регистра (16 бит)</li><li>Количество регистров, которые нужно прочесть</li><ul>||  <ul><li>Число передаваемых байт (8 бит)</li><li>Значения регистров (16 бит на 1 регистр)</li><ul>
|-
|-
!    5  
!    5 (Write Single Coil) 
| 0x05 ||Write Single Coil
|<ul><li>Адрес регистра (16 бит)</li><li>Значение, которое нужно записать (0 — выключить, 0xFF00 — включить)</li><ul>|| Ответ аналогичен запросу
|-
|-
!    6   
!    6   
5813

правок