工作需要用Modbus RTU去跟機器通訊
卡關幾天後終於成功了...
不懂Modbus的可以參考這裡http://www.xuan.idv.tw/wordpress/?p=1705
基本上就是一台Master 跟很多台Slave
Master下指令給Slave
我的情況就是下指令給ID 1號,讀取 0x0000 暫存器位置開始,跟往後 4 個位置的值...
首先Pin的線路圖可以參考下方圖
Arduino Modbus RTU 的Library 我是用https://github.com/4-20ma/ModbusMaster
Arduino Code:https://github.com/openopen114/Arduino_Modbus_viaRS485/tree/master/ArduinoCode/ModbusMaster_viaRS485
windows上Modbus Slave 模擬器:http://www.plcsimulator.org/documentation/overview
基本上只要RS485送出去的訊號是正確的,com port baud rate有設定好,就沒太大問題
要看RS485送出去的訊號可以用CoolTerm 看(支援 HEX)
不會用可以參考http://openopenblog.blogspot.tw/2016/09/arduino-rs485-serial-port-connect-via.html
......
Arduino 上有很多Modbus RTU的庫,但可能我太魯了不會用,用CoolTerm看到送出來的訊號都是錯的......
3 則留言:
請問modbus slave模擬送出的資料格式是?
你是問slave回應嗎??
可以參考這篇http://www.xuan.idv.tw/wordpress/?p=1705
裡面有slave回應的部分
這幾天也用到的這篇文章所提及的所有設備與概念但我遇到問題無法writeSingleRegister到我的控制器當中,請問樓主有試過Write嗎?
張貼留言