采用無協(xié)議通訊。
1.設(shè)置D8120,Modbus rtu,一般只能采用8位數(shù)據(jù),與從機(jī)相同,如,19200,8,e1
置位M8161,采用8位模式。
2.RS指令 如RS D100 K8 D130 k10
3.將發(fā)送存入D100開始的共8個(gè)寄存器。
4.SET M8122,發(fā)送數(shù)據(jù)。
5.接收數(shù)據(jù) M8123,處理接收到數(shù)據(jù),然后復(fù)位M8123.
說一下第三步:
D100開始的數(shù)據(jù),
Modbus協(xié)議:
站號:一個(gè)字節(jié),如01H
指令:一個(gè)字節(jié),不同指令,讀取不同內(nèi)容,詳細(xì)參考從機(jī)說明書。如04H,讀取16位寄存器。
地址:兩個(gè)字節(jié),Modbus一般需要偏移一位,如說明書是地址是40001,這里需要將地址設(shè)置為00H,00H,兩個(gè)寄存器。
數(shù)量:兩個(gè)字節(jié),讀取以地址開始寄存器或線圈數(shù)量,讀取8個(gè)時(shí),設(shè)置為00H,08H,
CRC:兩個(gè)字節(jié),站號至數(shù)量之間CRC-16的值,F(xiàn)X3U有CRC指令,其它型號不支持CRC指令,可能參考論壇里的程序。
或者采用網(wǎng)上串口助手之類軟件計(jì)算后保存到寄存器。
CRC計(jì)算:
http://cht.nahua.com.tw/index.php?url=http://cht.nahua.com.tw/software/crc16/&key=Modbus,%20RTU,%20CRC16&title=%E8%A8%88%E7%AE%97%20Modbus%20RTU%20CRC16
D100 D101 D102 D103 D104 D105 D106 D107
H01 H04 H00 H00 H00 H08 HF1 HCC
站號 指令 地址 數(shù)量 CRC
昨天我在新手區(qū)的回答,搜一下就有。