1、一臺支持Modbus協(xié)議的稱重儀表
支持Modbus協(xié)議的稱重儀表
2、設(shè)置好儀表的通訊參數(shù)
根據(jù)自己的要求可以調(diào)整,,只要和PLC端統(tǒng)一就可以
波特率:9600
數(shù)據(jù)格式:8n1:8位數(shù)據(jù)/無校驗位
通訊方式:Modbus協(xié)議
校驗和:OFF
儀表通訊地址:1
3、確定所要讀取的變量地址
這里我們只需要讀取儀表的當(dāng)前實時重量即可
儀表實時重量的地址為0,對應(yīng)Modbus通訊里的40001
4,、200smartPLC一臺
200smartPLC
5、連接端口
將儀表端的RS485接口A,,B與PLC端的DB9接口相連(DB9接口的3為A,,8為B)
我記得是3為A,8為B,,不知此圖為什么這樣,,不過不要緊,如果不同,,將兩根線顛倒一下
準(zhǔn)備工作完畢,,接下來就開始我們的PLC編程了,因為200smart軟件自身就帶了Modbus協(xié)議庫,,所以,,不需要我們另外去添加了,下面就介紹下怎么編程的,。
6,、初始化主站指令
“模式”(Mode) 輸入的值用于選擇通信協(xié)議。輸入值為 1 時,,將 CPU 端口分配給 Modbus 協(xié)議并啟用該協(xié)議,。
參數(shù)“奇偶校驗”(Parity) 應(yīng)設(shè)置為與 Modbus 從站設(shè)備的奇偶校驗相匹配。0(無奇偶校驗)
參數(shù)“端口”(Port)設(shè)置物理通信端口(0 = CPU 中集成的 RS-485),。
參數(shù)“超時”(Timeout) 設(shè)為等待從站做出響應(yīng)的毫秒數(shù),。典型值是 1000 ms (1 s)。
當(dāng) MBUS_CTRL指令完成時,,指令將“真”(TURE) 返回給“完成”(Done) 輸出,。
“錯誤”(Error) 輸出包含指令執(zhí)行的結(jié)果。
以上的參數(shù)設(shè)置與稱重儀表端的對應(yīng)
7,、兩個儀表的輪詢訪問
參數(shù)“從站”(Slave) 是 Modbus 從站設(shè)備的地址,。允許范圍為 0 至 247。地址 0 是廣播地址。僅將地址 0 用于寫入請求,。系統(tǒng)不會響應(yīng)對地址 0 的廣播請求,。并非所有從站設(shè)備都支持廣播地址。S7-200 SMART Modbus 從站庫不支持廣播地址,。
使用參數(shù) RW 指示是讀取還是寫入該消息,。0(讀取)
參數(shù)地址 (Addr) 是起始 Modbus 地址,。寄存器地址為0,,對應(yīng)Modbus通訊里的地址40001
參數(shù)“計數(shù)”(Count) 用于分配要在該請求中讀取或?qū)懭氲臄?shù)據(jù)元素數(shù)。讀取儀表中保持寄存器字?jǐn)?shù),。
參數(shù) DataPtr 是間接地址指針,,指向 CPU 中與讀請求相關(guān)的數(shù)據(jù)的 V 存儲器。將 DataPtr 設(shè)置為用于存儲從 Modbus 從站讀取的數(shù)據(jù)的第一個 CPU 存儲單元,。
地址1的儀表數(shù)據(jù)被存入到VW600中,,地址2的儀表數(shù)據(jù)被存入到VW610中。
編程結(jié)束,,下面我們看下監(jiān)控效果,。
主站初始化指令運行正常,沒有報錯
地址1儀表數(shù)據(jù)為131,,地址2儀表數(shù)據(jù)為0(來源:機器人在線)