采用無協議通訊。
1.設置D8120,Modbus rtu,一般只能采用8位數據,與從機相同,如,19200,8,e1
置位M8161,采用8位模式。
2.RS指令 如RS D100 K8 D130 k10
3.將發送存入D100開始的共8個寄存器。
4.SET M8122,發送數據。
5.接收數據 M8123,處理接收到數據,然后復位M8123.
說一下第三步:
D100開始的數據,
Modbus協議:
站號:一個字節,如01H
指令:一個字節,不同指令,讀取不同內容,詳細參考從機說明書。如04H,讀取16位寄存器。
地址:兩個字節,Modbus一般需要偏移一位,如說明書是地址是40001,這里需要將地址設置為00H,00H,兩個寄存器。
數量:兩個字節,讀取以地址開始寄存器或線圈數量,讀取8個時,設置為00H,08H,
CRC:兩個字節,站號至數量之間CRC-16的值,FX3U有CRC指令,其它型號不支持CRC指令,可能參考論壇里的程序。
或者采用網上串口助手之類軟件計算后保存到寄存器。
CRC計算:
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
站號 指令 地址 數量 CRC
昨天我在新手區的回答,搜一下就有。