本實例我們介紹下西門子S7-200 SMART PLC如何通過Modbus-RTU協議讀取溫溼度傳感器的數值。實例使用的硬體如下:
本文包括如下幾個主題:
1、溫溼度傳感器外觀、接線及通信參數介紹
2、CPU ST20與溫溼度傳感器的接線;
3、CPU ST20的編程;
1、溫溼度傳感器外觀、接線及通信參數介紹
本例程使用的溫溼度傳感器能檢測的溫度範圍為:-40℃~120℃,溼度範圍為:0%~100% rh,其外觀如下圖所示:
該溫溼度傳感器有四條線,顏色分別是:紅、黑、黃、綠,各線的定義如下:
該溫溼度傳感器支持Modbus-RTU協議,相關通信參數如下:
支持Modbus功能碼0x10或者0x06修改傳感器的站地址或者波特率,數據格式如下表所示:
①0=1200bps;1=2400bps;2=4800bps;3=9600bps;4=19200bps;
2、CPU ST20與溫溼度傳感器的接線
本例程使用CPU ST20本體集成的串口(編號:Port0)連接溫溼度傳感器。Port0針腳定義如下表所示:
需要說明的是,西門子RS485信號線定義與很多廠家不同:多數廠家定義RS485信號A線為正極,信號B線為負極;但是西門子定義A線為負極,信號B線為正極。
因此,在本例程中,溫溼度傳感器的黃線(RS485+)應該與CPU ST20本體串口Port0的3號引腳相連;同時,溫溼度傳感器的綠線(RS485-)應該與Port0的8號引腳相連;
3、CPU ST20的編程
使用S7-200 SMART的庫指令【Modbus RTU Master】中的MBUS_CTRL指令和MBUS_MSG指令來與溫溼度傳感器進行Modbus-RTU通信。
MBUS_CTRL指令用來配置Modbus主站的通信參數,需要在每個掃描周期都調用。指令各參數含義如下:
指令執行在線狀態如下圖所示:
MBUS_MSG指令用來與子站進行數據交換,其各參數含義如下:
指令執行在線狀態如下圖所示:
通過狀態圖表,可以監控到讀取的數值為293和639,分別表示溫度為29.3℃和63.9%rh的溼度,如下圖所示:
好了,這就是CPU ST20通過Modbus-RTU協議讀取溫溼度傳感器數值的例程。我的新書《西門子S7-200 SMART PLC應用技術——編程、通信、裝調、案例》有更多通信的內容介紹,點擊下面的連結查看關於該書的介紹。