五大通信庫(kù),圍攻莫迪康
前記
本文主要以C#作為編程語(yǔ)言,結(jié)合目前市場(chǎng)上常用的5種通信庫(kù),分別與臺(tái)達(dá)DVP-32 PLC、西門子S7-1200PLC、S7-1500PLC進(jìn)行通信研究,并對(duì)研究的結(jié)論進(jìn)行分享。
通信庫(kù)簡(jiǎn)介
一、EasyModbus
簡(jiǎn)介:EasyModbus支持Modbus TCP, Modbus UDP及Modbus RTU,開(kāi)源協(xié)議為MIT。
二、SharpModbus
簡(jiǎn)介:SharpModbus是一個(gè)開(kāi)源的Modbus工具,支持ModbusTCP與ModbusRTU,開(kāi)源協(xié)議為MIT。
三、NModbus4
簡(jiǎn)介:NModbus4是一個(gè)開(kāi)源的Modbus通信庫(kù),開(kāi)源協(xié)議為MIT。
四、HslCommunication
簡(jiǎn)介:HslCommunication是一個(gè)商業(yè)通信庫(kù),涵蓋各種不同設(shè)備的通信。
五、xktComm
簡(jiǎn)介:xktComm是一個(gè)商業(yè)通信庫(kù),涵蓋西門子、歐姆龍、三菱、基恩士等PLC,也支持Modbus及OPC通信。
通信開(kāi)發(fā)
針對(duì)各種庫(kù)創(chuàng)建了一個(gè)枚舉類型:

針對(duì)每個(gè)庫(kù)創(chuàng)建一個(gè)通信對(duì)象:

針對(duì)各個(gè)庫(kù)實(shí)現(xiàn)連接方法:

針對(duì)各個(gè)庫(kù)實(shí)現(xiàn)斷開(kāi)連接方法

針對(duì)各個(gè)庫(kù)實(shí)現(xiàn)一個(gè)讀取變量的方法:

功能開(kāi)發(fā)
由于每個(gè)庫(kù)實(shí)現(xiàn)的功能都一樣,所以開(kāi)發(fā)了一個(gè)控件,將相關(guān)接口預(yù)留出來(lái),后續(xù)直接調(diào)用即可。

控件提供了啟動(dòng)(Start)、停止(Stop)事件,提供了Modbus庫(kù)類型,可以選擇設(shè)置,也可以通過(guò)屬性對(duì)通信結(jié)果和耗時(shí)時(shí)間進(jìn)行賦值。
使用也非常簡(jiǎn)單,直接拖到界面上,設(shè)置好庫(kù)類型,綁定上Start和Stop事件即可。
測(cè)試的核心代碼如下:

連接臺(tái)達(dá)PLC,測(cè)試結(jié)果如下:

采用MThings作為服務(wù)器,測(cè)試結(jié)果如下:

連接西門子1200PLC,測(cè)試結(jié)果如下:

連接西門子1500PLC,測(cè)試結(jié)果如下:

整體總結(jié)
通過(guò)以上測(cè)試發(fā)現(xiàn),ModbusTCP通信周期與ModbusTCP服務(wù)器(PLC硬件)緊密關(guān)聯(lián),臺(tái)達(dá)PLC可以達(dá)到3ms,西門子1500PLC也在3ms左右,而西門子1200PLC在11ms左右,ModbusTCP通信可以達(dá)到毫秒級(jí)。
可能有的小伙伴會(huì)感到疑惑,為什么SharpModbus連接臺(tái)達(dá)PLC那么慢,連接其他PLC都正常呢?
寫(xiě)在最后
近幾年, 隨著越來(lái)越多的設(shè)備開(kāi)始加入IIoT 網(wǎng)絡(luò)(Industrial Internet of Things,工業(yè)物聯(lián)網(wǎng)簡(jiǎn)稱IIoT),IT與OT之間的界限將逐漸消失,直到成為一個(gè)或相同的系統(tǒng)為止。
所以,越來(lái)越多的電氣工程師開(kāi)始轉(zhuǎn)型上位機(jī)開(kāi)發(fā)。因?yàn)樵谝延须姎饧寄艿幕A(chǔ)上,如果掌握了上位機(jī)開(kāi)發(fā)技能,薪資達(dá)到20K,甚至30K,都會(huì)變得更容易。
為了便于大家更好地學(xué)習(xí)這個(gè)項(xiàng)目,我將通過(guò)免費(fèi)直播課的方式演示整個(gè)項(xiàng)目的部署及開(kāi)發(fā),通過(guò)完整的項(xiàng)目分析及編寫(xiě),即使你是零基礎(chǔ),也能帶你實(shí)現(xiàn)項(xiàng)目功能。想要學(xué)習(xí)的童鞋,趕緊掃描下方二維碼,加微信,進(jìn)入班級(jí)群。
PS:名額有限,先到先得,僅限當(dāng)天。
如果掃碼無(wú)法添加,可以添加備用微信:xiketang777
