Modbus、KepServer、西門子PLC通信


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

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

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

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

有關ModBus的介紹,這篇文章很好:極客學院WiKiModBus協議詳解

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軟件寫入失敗,注意各種錯誤提示,並網上搜索,特別是各個操作系統的時間格式。

 

(后續補圖)

【圖片】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM