五大通信庫,圍攻莫迪康


前記

本文主要以C#作為編程語言,結合目前市場上常用的5種通信庫,分別與台達DVP-32 PLC、西門子S7-1200PLC、S7-1500PLC進行通信研究,並對研究的結論進行分享。

通信庫簡介

一、EasyModbus

簡介:EasyModbus支持Modbus TCP, Modbus UDP及Modbus RTU,開源協議為MIT。

二、SharpModbus

簡介:SharpModbus是一個開源的Modbus工具,支持ModbusTCP與ModbusRTU,開源協議為MIT。

三、NModbus4

簡介:NModbus4是一個開源的Modbus通信庫,開源協議為MIT。

四、HslCommunication

簡介:HslCommunication是一個商業通信庫,涵蓋各種不同設備的通信。

五、xktComm

簡介:xktComm是一個商業通信庫,涵蓋西門子、歐姆龍、三菱、基恩士等PLC,也支持Modbus及OPC通信。

通信開發

  • 針對各種庫創建了一個枚舉類型:

 

 針對每個庫創建一個通信對象:

 

 針對各個庫實現連接方法:

 

 針對各個庫實現斷開連接方法

 

 針對各個庫實現一個讀取變量的方法:

 

 

功能開發

  • 由於每個庫實現的功能都一樣,所以開發了一個控件,將相關接口預留出來,后續直接調用即可。

 

 

  • 控件提供了啟動(Start)、停止(Stop)事件,提供了Modbus庫類型,可以選擇設置,也可以通過屬性對通信結果和耗時時間進行賦值。

  • 使用也非常簡單,直接拖到界面上,設置好庫類型,綁定上Start和Stop事件即可。

  • 測試的核心代碼如下:

 

 連接台達PLC,測試結果如下:

 

 采用MThings作為服務器,測試結果如下:

 

 連接西門子1200PLC,測試結果如下:

 

 

連接西門子1500PLC,測試結果如下:

 

 

整體總結

通過以上測試發現,ModbusTCP通信周期與ModbusTCP服務器(PLC硬件)緊密關聯,台達PLC可以達到3ms,西門子1500PLC也在3ms左右,而西門子1200PLC在11ms左右,ModbusTCP通信可以達到毫秒級。

可能有的小伙伴會感到疑惑,為什么SharpModbus連接台達PLC那么慢,連接其他PLC都正常呢?

寫在最后

近幾年, 隨着越來越多的設備開始加入IIoT 網絡(Industrial Internet of Things,工業物聯網簡稱IIoT),IT與OT之間的界限將逐漸消失,直到成為一個或相同的系統為止。

所以,越來越多的電氣工程師開始轉型上位機開發。因為在已有電氣技能的基礎上,如果掌握了上位機開發技能,薪資達到20K,甚至30K,都會變得更容易。

為了便於大家更好地學習這個項目,我將通過免費直播課的方式演示整個項目的部署及開發,通過完整的項目分析及編寫,即使你是零基礎,也能帶你實現項目功能。想要學習的童鞋,趕緊掃描下方二維碼,加微信,進入班級群。

PS:名額有限,先到先得,僅限當天。

如果掃碼無法添加,可以添加備用微信:xiketang777

 


免責聲明!

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



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