「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

之前我們說了,稱重傳感器怎麼安裝調試,今天我們介紹下稱重儀表的數據怎麼被PLC通過Modbus協議採集的,當然無論是稱重儀表還是溫度儀表,只要是支持標準的Modbus協議設備都可以通過Modbus協議通訊(順便介紹下Modbus協議是莫迪康公司的,後來被施耐德收購了,是一個免費的通訊協議,所以應用很廣),好了我們言歸正傳,具體說說怎麼編程實現與儀表的Modbus通訊,下面以西門子200SMART PLC與一款支持Modbus協議的稱重儀表為例說明,其它PLC類似,因為目前做的項目正好有200Smart與儀表的通訊,以後有機會的話會介紹別的PLC。

首先介紹我們的硬件準備工作

1、一臺支持Modbus協議的稱重儀表

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

支持Modbus協議的稱重儀表

2、設置好儀表的通訊參數(更具自己的要求可以調整,只要和PLC端統一就可以)

波特率:9600

數據格式:8n1:8位數據/無校驗位

通訊方式:Modbus協議

校驗和:OFF

儀表通訊地址:1

3、確定我所要讀取的變量地址(這裡我們只需要讀取儀表的當前實時重量即可)

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

儀表實時重量的地址為0,對應Modbus通訊裡的40001

3、200smartPLC一臺

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

200smartPLC

4、將儀表端的RS485接口A,B與PLC端的DB9接口相連(DB9接口的3為A,8為B)

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

我記得是3為A,8為B,不知此圖為什麼這樣,不過不要緊,如果不同,將兩根線顛倒一下

準備工作完畢,接下來就開始我們的PLC編程了,因為200smart軟件自身就帶了Modbus協議庫,所以,不需要我們另外去添加了,下面就介紹下怎麼編程的。

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

初始化主站指令

“模式”(Mode) 輸入的值用於選擇通信協議。輸入值為 1 時,將 CPU 端口分配給 Modbus 協議並啟用該協議。

參數“奇偶校驗”(Parity) 應設置為與 Modbus 從站設備的奇偶校驗相匹配。0(無奇偶校驗)

參數“端口”(Port)設置物理通信端口(0 = CPU 中集成的 RS-485)。

參數“超時”(Timeout) 設為等待從站做出響應的毫秒數。典型值是 1000 ms (1 s)。

當 MBUS_CTRL指令完成時,指令將“真”(TURE) 返回給“完成”(Done) 輸出。

“錯誤”(Error) 輸出包含指令執行的結果。

以上的參數設置與稱重儀表端的對應

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

兩個儀表的輪詢訪問

參數“從站”(Slave) 是 Modbus 從站設備的地址。允許範圍為 0 至 247。地址 0 是廣播地址。僅將地址 0 用於寫入請求。系統不會響應對地址 0 的廣播請求。並非所有從站設備都支持廣播地址。S7-200 SMART Modbus 從站庫不支持廣播地址。

使用參數 RW 指示是讀取還是寫入該消息。0(讀取)

參數地址 (Addr) 是起始 Modbus 地址。寄存器地址為0,對應Modbus通訊裡的地址40001

參數“計數”(Count) 用於分配要在該請求中讀取或寫入的數據元素數。讀取儀表中保持寄存器字數。

參數 DataPtr 是間接地址指針,指向 CPU 中與讀請求相關的數據的 V 存儲器。將 DataPtr 設置為用於存儲從 Modbus 從站讀取的數據的第一個 CPU 存儲單元。

地址1的儀表數據被存入到VW600中,地址2的儀表數據被存入到VW610中。

編程結束,下面我們看下監控效果。

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

主站初始化指令運行正常,沒有報錯

「乾貨」西門子S7-200SMART通過MODBUS庫與稱重儀表通訊

地址1儀表數據為131,地址2儀表數據為0

到這裡結束了我們這次關於西門子S7-200SMART通過MODBUS庫與稱重儀表通訊的介紹。

歡迎小夥伴們留言分享,共同交流,有錯誤的地方,不吝指教。


分享到:


相關文章: