1. 程式人生 > >Modbus、KepServer、西門子PLC通信

Modbus、KepServer、西門子PLC通信

提前 重復 一份 for 理解 得到 感覺 target ive

昨天在現場實現了工業數據的通信,簡單寫一下。

1.按照國際慣例,先介紹一下

ModBus通信協議感覺是物理層面的,幾個終端串聯在一起,通過設定每個終端不同的ID號,來訪問。具體硬件實現還未研究。

本系統采用ModBus RTU模式通信,使用的是和校驗,低位在前。

有關ModBus的介紹,這篇文章很好:極客學院WiKi

KepServer是一個提供OPC服務的服務軟件,其提供一個OPC服務,可以被外部程序調用,經行client數據寫入。

OPC (OLE for Process Control) 用於過程控制的OLE,

OLE是 object linking and embedding (對象鏈接與嵌入)的縮寫。

OPC采用客戶端/服務器的結構,作為中心數據源的OPC服務器負責向各種客戶端提供來自現場設備的數據。

西門子PLC,我的理解就是微型計算機,只是可以在更苛刻的環境下使用。

2.如何實現

數據通過ModBus與計算機通信,使用USB轉R232再轉R485硬件實現。這個要提前準備好驅動,我用的是宇泰的UT-8801款USB轉串口,驅動下載地址。

ModBus有兩根線通信,測量兩線電壓應該在0.11V左右

然後通過ModBus協議讀取設備的數據。

通過自己寫的軟件將數據傳入KepServer中,教程:用C#開發OPC客戶端

軟件通過發送ModBus指令得到數據,通過綁定的OPC服務,根據在KepServer中建立的地址,將得到的數據寫入到KepServer中。

KepServer通過網線與PLC相連,使用PLC的IP地址,和默認端口號102 通信。

在KepServer建立的點名就是上面軟件的訪問地址,而這些點名的地址是PLC中DB塊的地址。(以後補圖)

這樣KepServer就可以將數據寫入到PLC中,PLC使用WinCC建立界面就可以實時看到數據和數據歷史曲線了。

3.小錯誤

電腦無法識別COM口,驅動沒有裝好,下次試新的電腦,一定要帶一份驅動。

ModBus線不知道正負,可以使用萬用表測電壓檢測。

ModBus數據無法讀到,原理是設備的ID有重復的。

OPC軟件寫入失敗,註意各種錯誤提示,並網上搜索,特別是各個操作系統的時間格式。

(後續補圖)

Modbus、KepServer、西門子PLC通信