新聞中心
PRESS CENTER
本文主要實(shí)現(xiàn)的功能是:使用EG系列網(wǎng)關(guān)完成Modbus協(xié)議與各種PLC協(xié)議之間的雙向協(xié)議轉(zhuǎn)換。其中Modbus協(xié)議包括:Modbus TCP主站 / Modbus RTU主站 / Modbus TCP從站 / Modbus RTU從站。PLC協(xié)議指的是網(wǎng)關(guān)支持的所有PLC協(xié)議。
Modbus RTU與Modbus TCP協(xié)議的區(qū)別在網(wǎng)關(guān)上的體現(xiàn)僅僅是一個(gè)配置項(xiàng),因此不單獨(dú)區(qū)分介紹。網(wǎng)關(guān)已經(jīng)屏蔽了不同PLC協(xié)議之間的差異化,故本案例選擇西門子S7-200 Smart PLC作為演示載體,但文檔所述方法適用于所有PLC協(xié)議。
綜上所述,案例演示分為兩個(gè)部分:
Modbus 主站PLC協(xié)議
本章節(jié)主要實(shí)現(xiàn)一個(gè)需求:使用EG系列網(wǎng)關(guān)實(shí)現(xiàn)Modbus TCP主站和S7-200 Smart PLC之間的雙向協(xié)議轉(zhuǎn)換。適用場景是:EG系列網(wǎng)關(guān)作為Modbus主站讀取傳感器的數(shù)據(jù),然后將讀取的數(shù)據(jù)寫入PLC;同時(shí)也能將從PLC讀到的數(shù)據(jù),寫入到Modbus傳感器。

1.Modbus點(diǎn)位表
功能碼0x03 | ||
寄存器地址 | 讀寫權(quán)限 | 解析方式 |
40001 | 只讀 | UInt16 |
40002 | 只讀 | UInt16 |
40003 | 只寫 | UInt16 |
40004 | 只寫 | UInt16 |
2.PLC點(diǎn)位表
點(diǎn)表地址 | 讀寫權(quán)限 | 解析方式 |
VW0 | 只寫 | UInt16 |
VW2 | 只寫 | UInt16 |
VW4 | 只讀 | UInt16 |
VW6 | 只讀 | UInt16 |
3.點(diǎn)位映射關(guān)系
Modbus寄存器地址 | 數(shù)據(jù)流向 | PLC點(diǎn)表地址 |
40001 | ?? | VW0 |
40002 | ?? | VW2 |
40003 | ?? | VW4 |
40004 | ?? | VW6 |
讀取Modbus寫入PLC:
讀取Modbus的40001寄存器,將值寫入PLC的VW0
讀取Modbus的40002寄存器,將值寫入PLC的VW2
讀取PLC寫入Modbus:
讀取PLC的VW4,將值寫入Modbus的40003寄存器
讀取PLC的VW6,將值寫入Modbus的40004寄存器
網(wǎng)關(guān)配置:第一步:采集Modbus數(shù)據(jù)
第二步:采集PLC數(shù)據(jù)
第三步:Modbus與PLC數(shù)據(jù)交換
第四步:自動(dòng)運(yùn)行
第一步:采集Modbus數(shù)據(jù)
采集Modbus請參考其他案例,此處不做重點(diǎn)介紹。下圖為采集到Modbus TCP數(shù)據(jù)后,將數(shù)據(jù)打印輸出:節(jié)點(diǎn)使用詳情查看:此處為語雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/hn4q2114580z53bu

第二步:采集PLC數(shù)據(jù)
采集PLC數(shù)據(jù)可參考其它案例,此處不做重點(diǎn)介紹。下圖為采集到PLC數(shù)據(jù)后,將數(shù)據(jù)打印輸出:此處為語雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp

第三步:Modbus與PLC數(shù)據(jù)交換
1.讀取Modbus寫入PLC
點(diǎn)擊注入節(jié)點(diǎn) 1,啟動(dòng)Modbus數(shù)據(jù)采集流程。
通過Modbus主站請求節(jié)點(diǎn)讀取寄存器數(shù)據(jù)(電腦端Modbus Slave軟件模擬從站)。
經(jīng)Modbus主站解析節(jié)點(diǎn)解析后,將數(shù)據(jù)寫入PLC。
2.讀取PLC寫入Modbus
點(diǎn)擊注入節(jié)點(diǎn) 2,啟動(dòng)PLC數(shù)據(jù)采集流程。
通過Siemens節(jié)點(diǎn)讀取S7-200 Smart數(shù)據(jù)。
將讀取到的PLC數(shù)據(jù)寫入Modbus設(shè)備(電腦端Modbus Slave軟件模擬從站)。

第四步:自動(dòng)運(yùn)行
1.配置注入節(jié)點(diǎn)為周期性觸發(fā),周期設(shè)為每 5 秒執(zhí)行一次。
2.為保證數(shù)據(jù)轉(zhuǎn)換有序進(jìn)行,增加一個(gè)延遲節(jié)點(diǎn),延遲時(shí)間依實(shí)際情況而定。

流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp
Modbus 從站PLC協(xié)議
本章節(jié)主要實(shí)現(xiàn)一個(gè)需求:使用EG系列網(wǎng)關(guān)實(shí)現(xiàn)Modbus TCP從站和S7-200 Smart PLC之間的雙向協(xié)議轉(zhuǎn)換。適用場景是:EG系列網(wǎng)關(guān)讀取PLC的數(shù)據(jù),然后將讀取的數(shù)據(jù)映射為Modbus寄存器,并作為Modbus從站供外部Modbus主站讀??;同時(shí)網(wǎng)關(guān)也能接收外部Modbus主站的寫數(shù)據(jù)命令,并將數(shù)據(jù)寫入PLC。
這樣即實(shí)現(xiàn)了,外部Modbus主站可以采用Modbus協(xié)議和PLC實(shí)現(xiàn)雙向數(shù)據(jù)通信。網(wǎng)絡(luò)拓?fù)?/p>

PLC點(diǎn)位表
點(diǎn)表地址 | 讀寫權(quán)限 | 解析方式 |
VW0 | 讀寫 | UInt16 |
VW100 | 讀寫 | UInt16 |
VW200 | 讀寫 | Float |
網(wǎng)關(guān)配置:
第一步:采集PLC數(shù)據(jù)
第二步:配置Modbus從站
第三步:PLC數(shù)據(jù)映射到Modbus從站
第四步:配置TCP服務(wù)端(給外部Modbus TCP主站提供連接通道)
第五步:Modbus TCP主站測試(Modbus Poll軟件)
第一步:采集PLC數(shù)據(jù)
采集PLC數(shù)據(jù)可參考其它案例,此處不做重點(diǎn)介紹。下圖為采集到PLC數(shù)據(jù)后,將數(shù)據(jù)打印輸出:此處為語雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp

第二步:配置Modbus從站
Modbus從機(jī)節(jié)點(diǎn)可參考其他案例,此處不做重點(diǎn)介紹。下圖示例中配置了三個(gè)虛擬寄存器,分別對(duì)應(yīng)PLC的三個(gè)數(shù)據(jù)點(diǎn):
Modbus 從機(jī)節(jié)點(diǎn)支持Modbus RTU/Modbus TCP 協(xié)議。用于將網(wǎng)關(guān)采集到的其它數(shù)據(jù)轉(zhuǎn)換為符合Modbus協(xié)議的數(shù)據(jù),以供外部的Modbus主站進(jìn)行讀寫操作。輸入msg.payload #如果數(shù)據(jù)類型是對(duì)象,則會(huì)將對(duì)象中的鍵與配置的鍵名進(jìn)行匹配,并將相應(yīng)的值寫入對(duì)應(yīng)的寄存...詳細(xì)查看文檔:https://iotrouter.yuque.com/zn3vdn/eg8000/rwsclqi3iw4cgoxt

第三步:PLC數(shù)據(jù)映射到Modbus從站
在PLC讀取配置中,將循環(huán)讀取時(shí)間設(shè)定為 2000ms,以此實(shí)現(xiàn)每2秒一次的讀取頻率。然后將讀取到的數(shù)據(jù)寫入到Modbus從機(jī)中(數(shù)據(jù)點(diǎn)名稱一樣即可自動(dòng)匹配轉(zhuǎn)換)。

第四步:配置TCP服務(wù)端
TCP服務(wù)監(jiān)聽可參考其他案例,此處不做重點(diǎn)介紹。下圖為TCP節(jié)點(diǎn)的配置:
TCP IN/OUT,EG8200系列邊緣計(jì)算網(wǎng)關(guān)支持同時(shí)作為TCP的服務(wù)端和TCP的客戶端,且沒有連接數(shù)量的限制。TCP功能根據(jù)數(shù)據(jù)流向分為兩個(gè)節(jié)點(diǎn),分別是:TCP IN表示網(wǎng)關(guān)收到的數(shù)據(jù),TCP OUT表示網(wǎng)關(guān)發(fā)送的數(shù)據(jù)。監(jiān)聽模式網(wǎng)關(guān)作為TCP服務(wù)端,連接模式網(wǎng)關(guān)作為TCP客戶端。TCP IN和TCP OU...詳細(xì)查看:https://iotrouter.yuque.com/zn3vdn/eg8000/biy9z9qin5yhqhn1

第五步:Modbus TCP主站
測試使用Modbus Poll(Modbus主站軟件)讀寫測試。

流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp