01H-讀線圈狀態(tài)
1)描述:讀從機(jī)線圈寄存器,位操作,可讀單個(gè)或者多個(gè);
2)發(fā)送指令:
假設(shè)從機(jī)地址位0x01,寄存器開始地址0x0023,寄存器結(jié)束抵制0x0038,總共讀取21個(gè)線圈。協(xié)議圖如下:
3)響應(yīng):
返回?cái)?shù)據(jù)的每一位對(duì)應(yīng)線圈狀態(tài),1-ON,0-OFF,如下圖;
上表中data1表示0x0023-0x002a的線圈狀態(tài),data1的最低位代表最低地址的線圈狀態(tài),可以理解為小端模式;
data2表示地址0x002b-0x0033的線圈狀態(tài),如下表:
data3表示地址0x0034-0x0038的線圈狀態(tài),不夠8位,字節(jié)高位填充為0,如下表:
02H-讀離散輸入狀態(tài)
1):讀離散輸入寄存器,位操作,可讀單個(gè)或多個(gè),協(xié)議類似功能碼0X01協(xié)議,此處省;
03H-讀保持寄存器
1)描述:讀保持寄存器,字節(jié)指令操作,可讀單個(gè)或者多個(gè);
2)發(fā)送指令:
從機(jī)地址0x01,保持寄存器起始地址0x0032,讀2個(gè)保持寄存器
3)響應(yīng):
數(shù)據(jù)存儲(chǔ)順序
04H-讀輸入寄存器
1)描述:讀輸入寄存器,字節(jié)指令操作,可讀單個(gè)或者多個(gè);
2)發(fā)送指令:同03H;
3)響應(yīng):同03H;
05H-寫單個(gè)線圈
1)描述:寫單個(gè)線圈,位操作,只能寫一個(gè),寫0xff00表示設(shè)置線圈狀態(tài)為ON,寫0x0000表示設(shè)置線圈狀態(tài)為OFF
2)發(fā)送指令:
設(shè)置0x0032線圈為ON;
3)響應(yīng):
同發(fā)送指令;
06H-寫單個(gè)保持寄存器
1)描述:寫單個(gè)保持寄存器,字節(jié)指令操作,只能寫一個(gè);
2)發(fā)送指令:
寫0x0032保持寄存器為0x1232;
3)響應(yīng):同發(fā)送指令;
0FH-寫多個(gè)線圈
1)描述:寫多個(gè)線圈寄存器。若數(shù)據(jù)區(qū)的某位值為“1”表示被請(qǐng)求的相應(yīng)線圈狀態(tài)為ON,若某位值為“0”,則為狀態(tài)為OFF。
2)發(fā)送指令:
線圈地址為0x04a5,寫12個(gè)線圈,
上圖中DATA1為0x0c,表示:
DATA2為0x02,不夠8位,字節(jié)高位填充0:
3)響應(yīng):
10H-寫多個(gè)保持寄存器
1)描述:寫多個(gè)保持寄存器,字節(jié)指令操作,可寫多個(gè);
2)發(fā)送指令:
保持寄存器起始地址為0x0034,寫2個(gè)寄存器4個(gè)字節(jié)的數(shù)據(jù);
3)響應(yīng):