1、一臺支持modbus協(xié)議的稱重儀表
支持modbus協(xié)議的稱重儀表
2、設置好儀表的通訊參數
根據自己的要求可以調整,只要和plc端統(tǒng)一就可以
波特率:9600
數據格式:8n1:8位數據/無校驗位
通訊方式:modbus協(xié)議
校驗和:off
儀表通訊地址:1
3、確定所要讀取的變量地址
這里我們只需要讀取儀表的當前實時重量即可
儀表實時重量的地址為0,對應modbus通訊里的40001
4、200smartplc一臺
200smartplc
5、連接端口
將儀表端的rs485接口a,b與plc端的db9接口相連(db9接口的3為a,8為b)
我記得是3為a,8為b,不知此圖為什么這樣,不過不要緊,如果不同,將兩根線顛倒一下
準備工作完畢,接下來就開始我們的plc編程了,因為200smart軟件自身就帶了modbus協(xié)議庫,所以,不需要我們另外去添加了,下面就介紹下怎么編程的。
6、初始化主站指令
“模式”(mode) 輸入的值用于選擇通信協(xié)議。輸入值為 1 時,將 cpu 端口分配給 modbus 協(xié)議并啟用該協(xié)議。
參數“奇偶校驗”(parity) 應設置為與 modbus 從站設備的奇偶校驗相匹配。0(無奇偶校驗)
參數“端口”(port)設置物理通信端口(0 = cpu 中集成的 rs-485)。
參數“超時”(timeout) 設為等待從站做出響應的毫秒數。典型值是 1000 ms (1 s)。
當 mbus_ctrl指令完成時,指令將“真”(ture) 返回給“完成”(done) 輸出。
“錯誤”(error) 輸出包含指令執(zhí)行的結果。
以上的參數設置與稱重儀表端的對應
7、兩個儀表的輪詢訪問
參數“從站”(slave) 是 modbus 從站設備的地址。允許范圍為 0 至 247。地址 0 是廣播地址。僅將地址 0 用于寫入請求。系統(tǒng)不會響應對地址 0 的廣播請求。并非所有從站設備都支持廣播地址。s7-200 smart modbus 從站庫不支持廣播地址。
使用參數 rw 指示是讀取還是寫入該消息。0(讀?。?br>參數地址 (addr) 是起始 modbus 地址。寄存器地址為0,對應modbus通訊里的地址40001
參數“計數”(count) 用于分配要在該請求中讀取或寫入的數據元素數。讀取儀表中保持寄存器字數。
參數 dataptr 是間接地址指針,指向 cpu 中與讀請求相關的數據的 v 存儲器。將 dataptr 設置為用于存儲從 modbus 從站讀取的數據的個 cpu 存儲單元。
地址1的儀表數據被存入到vw600中,地址2的儀表數據被存入到vw610中。
編程結束,下面我們看下監(jiān)控效果。
主站初始化指令運行正常,沒有報錯
地址1儀表數據為131,地址2儀表數據為0(來源:機器人在線)