1、一臺(tái)支持modbus協(xié)議的稱重儀表
支持modbus協(xié)議的稱重儀表
2、設(shè)置好儀表的通訊參數(shù)
根據(jù)自己的要求可以調(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
4、200smartplc一臺(tái)
200smartplc
5、連接端口
將儀表端的rs485接口a,b與plc端的db9接口相連(db9接口的3為a,8為b)
我記得是3為a,8為b,不知此圖為什么這樣,不過不要緊,如果不同,將兩根線顛倒一下
準(zhǔn)備工作完畢,接下來就開始我們的plc編程了,因?yàn)?00smart軟件自身就帶了modbus協(xié)議庫(kù),所以,不需要我們另外去添加了,下面就介紹下怎么編程的。
6、初始化主站指令
“模式”(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)
7、兩個(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 從站庫(kù)不支持廣播地址。
使用參數(shù) rw 指示是讀取還是寫入該消息。0(讀?。?br>參數(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(來源:機(jī)器人在線)