貳:Modbus常用功能碼協議詳解

01H-讀線圈狀態

1)描述:讀從機線圈寄存器,位操作,可讀單個或者多個;
2)發送指令:
假設從機地址位0x01,寄存器開始地址0x0023,寄存器結束抵制0x0038,總共讀取21個線圈。協議圖如下:

3)響應:
返回數據的每一位對應線圈狀態,1-ON,0-OFF,如下圖;

上表中data1表示0x0023-0x002a的線圈狀態,data1的最低位代表最低地址的線圈狀態,可以理解爲小端模式;

data2表示地址0x002b-0x0033的線圈狀態,如下表:


data3表示地址0x0034-0x0038的線圈狀態,不夠8位,字節高位填充爲0,如下表:


02H-讀離散輸入狀態

1):讀離散輸入寄存器,位操作,可讀單個或多個,協議類似功能碼0X01協議,此處省;


03H-讀保持寄存器

1)描述:讀保持寄存器,字節指令操作,可讀單個或者多個;
2)發送指令:
從機地址0x01,保持寄存器起始地址0x0032,讀2個保持寄存器

3)響應:

數據存儲順序


04H-讀輸入寄存器

1)描述:讀輸入寄存器,字節指令操作,可讀單個或者多個;
2)發送指令:同03H;
3)響應:同03H;


05H-寫單個線圈

1)描述:寫單個線圈,位操作,只能寫一個,寫0xff00表示設置線圈狀態爲ON,寫0x0000表示設置線圈狀態爲OFF
2)發送指令:
設置0x0032線圈爲ON;

3)響應:
同發送指令;


06H-寫單個保持寄存器

1)描述:寫單個保持寄存器,字節指令操作,只能寫一個;
2)發送指令:
寫0x0032保持寄存器爲0x1232;

3)響應:同發送指令;


0FH-寫多個線圈

1)描述:寫多個線圈寄存器。若數據區的某位值爲“1”表示被請求的相應線圈狀態爲ON,若某位值爲“0”,則爲狀態爲OFF。
2)發送指令:
線圈地址爲0x04a5,寫12個線圈,

上圖中DATA1爲0x0c,表示:

DATA2爲0x02,不夠8位,字節高位填充0:

3)響應:


10H-寫多個保持寄存器

1)描述:寫多個保持寄存器,字節指令操作,可寫多個;
2)發送指令:
保持寄存器起始地址爲0x0034,寫2個寄存器4個字節的數據;


3)響應:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章