1. <del id="sqmd4"></del>
      <object id="sqmd4"></object>
      1. <object id="sqmd4"></object>
          加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線13185520415
          公司新聞
          西門子S7-200 SMART通過Modbus-RTU讀取溫濕度傳感器數據
          發布時間: 2024-01-29 21:35 更新時間: 2024-11-22 08:00
          觀看西門子S7-200 SMART通過Modbus-RTU讀取溫濕度傳感器數據視頻

          本實例我們介紹下西門子S7-200 SMART PLC如何通過Modbus-RTU協議讀取溫濕度傳感器的數值。實例使用的硬件如下:

          1. S7-200 SMART CPU ST20;

          2. 溫濕度傳感器(支持Modbus-RTU協議);

          圖片

          本文包括如下幾個主題:

          1、溫濕度傳感器外觀、接線及通信參數介紹

          2、CPU ST20與溫濕度傳感器的接線;

          3、CPU ST20的編程;

          1、溫濕度傳感器外觀、接線及通信參數介紹

          本例程使用的溫濕度傳感器能檢測的溫度范圍為:-40℃~120℃,濕度范圍為:0%~ rh,其外觀如下圖所示:

          圖片

          該溫濕度傳感器有四條線,顏色分別是:紅、黑、黃、綠,各線的定義如下:

          溫濕度傳感器接線定義
          線色
          定義
          備注
          紅色
          電源正極
          電壓范圍:DC 5~24V
          黑色
          電源負極

          黃色
          RS485-A
          RS485-信號A線(+)
          綠色
          RS285-B
          RS485-信號B線(-)

          該溫濕度傳感器支持Modbus-RTU協議,相關通信參數如下:

          1. 支持的波特率:1200bps、2400bps、4800bps、9600bps、19200bps,默認為9600bps;

          2. 通信設置:起始位1位,數據位8位,停止位1位,無校驗位;

          3. 支持站地址范圍:1~247,默認為1;

          4. 支持Modbus功能碼0x03讀取數據,數據格式如下表所示:

          讀取溫度/濕度數據格式數據起始地址
          數據內容
          字節數
          單位
          0
          溫度值
          2
          0.1℃
          1
          濕度值
          2
          0.1rh

          支持Modbus功能碼0x10或者0x06修改傳感器的站地址或者波特率,數據格式如下表所示:

          修改地址/波特率數據格式
          數據起始地址
          數據內容
          字節數
          范圍
          100
          站地址
          2
          1~247
          101
          波特率
          2
          0~4①

          ①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主站的通信參數,需要在每個掃描周期都調用。指令各參數含義如下:

        1. Mode:通信協議的類型;0=PPI協議;1=Modbus協議;

        2. Baud:波特率;

        3. Parity:校驗位,0=無校驗,1=奇校驗,2=偶校驗;

        4. Port:端口號,CPU本體串口編號為0,通信板編號為1;

        5. Timeout:超時的時間值,單位為毫秒;

        6. Done:指令是否完成;

        7. Error:指令執行的狀態值,0=沒有錯誤;

        8. 指令執行在線狀態如下圖所示:

          圖片

          MBUS_MSG指令用來與子站進行數據交換,其各參數含義如下:

        9. First:請求數據交換,需要上升沿信號;

        10. Slave:從站地址;

        11. RW:讀取或寫入數據,0=讀取,1=寫入;

        12. Addr:Modbus寄存器地址;

        13. Count:要讀取的數據長度;

        14. DataPtr:數據的存放地址;

        15. Done:指令是否執行完成,1=完成;

        16. Error:指令執行的狀態值,0=沒有錯誤;

        17. 指令執行在線狀態如下圖所示:

          圖片

          通過狀態圖表,可以監控到讀取的數值為293和639,分別表示溫度為29.3℃和63.9%rh的濕度,如下圖所示:

          圖片

          好了,這就是CPU ST20通過Modbus-RTU協議讀取溫濕度傳感器數值的例程

          聯系方式

          • 電  話:13510737515
          • 聯系人:董海波
          • 手  機:13185520415
          • 微  信:13185520415