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