新聞中心
PRESS CENTER本文主要實現(xiàn)的功能是:使用EG系列網(wǎng)關完成Modbus協(xié)議與各種PLC協(xié)議之間的雙向協(xié)議轉換。其中Modbus協(xié)議包括:Modbus TCP主站 / Modbus RTU主站 / Modbus TCP從站 / Modbus RTU從站。PLC協(xié)議指的是網(wǎng)關支持的所有PLC協(xié)議。
Modbus RTU與Modbus TCP協(xié)議的區(qū)別在網(wǎng)關上的體現(xiàn)僅僅是一個配置項,因此不單獨區(qū)分介紹。網(wǎng)關已經(jīng)屏蔽了不同PLC協(xié)議之間的差異化,故本案例選擇西門子S7-200 Smart PLC作為演示載體,但文檔所述方法適用于所有PLC協(xié)議。
綜上所述,案例演示分為兩個部分:
Modbus 主站PLC協(xié)議
本章節(jié)主要實現(xiàn)一個需求:使用EG系列網(wǎng)關實現(xiàn)Modbus TCP主站和S7-200 Smart PLC之間的雙向協(xié)議轉換。適用場景是:EG系列網(wǎng)關作為Modbus主站讀取傳感器的數(shù)據(jù),然后將讀取的數(shù)據(jù)寫入PLC;同時也能將從PLC讀到的數(shù)據(jù),寫入到Modbus傳感器。
1.Modbus點位表
功能碼0x03 | ||
寄存器地址 | 讀寫權限 | 解析方式 |
40001 | 只讀 | UInt16 |
40002 | 只讀 | UInt16 |
40003 | 只寫 | UInt16 |
40004 | 只寫 | UInt16 |
2.PLC點位表
點表地址 | 讀寫權限 | 解析方式 |
VW0 | 只寫 | UInt16 |
VW2 | 只寫 | UInt16 |
VW4 | 只讀 | UInt16 |
VW6 | 只讀 | UInt16 |
3.點位映射關系
Modbus寄存器地址 | 數(shù)據(jù)流向 | PLC點表地址 |
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)關配置:第一步:采集Modbus數(shù)據(jù)
第二步:采集PLC數(shù)據(jù)
第三步:Modbus與PLC數(shù)據(jù)交換
第四步:自動運行
第一步:采集Modbus數(shù)據(jù)
采集Modbus請參考其他案例,此處不做重點介紹。下圖為采集到Modbus TCP數(shù)據(jù)后,將數(shù)據(jù)打印輸出:節(jié)點使用詳情查看:此處為語雀內(nèi)容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/hn4q2114580z53bu
第二步:采集PLC數(shù)據(jù)
采集PLC數(shù)據(jù)可參考其它案例,此處不做重點介紹。下圖為采集到PLC數(shù)據(jù)后,將數(shù)據(jù)打印輸出:此處為語雀內(nèi)容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp
第三步:Modbus與PLC數(shù)據(jù)交換
1.讀取Modbus寫入PLC
點擊注入節(jié)點 1,啟動Modbus數(shù)據(jù)采集流程。
通過Modbus主站請求節(jié)點讀取寄存器數(shù)據(jù)(電腦端Modbus Slave軟件模擬從站)。
經(jīng)Modbus主站解析節(jié)點解析后,將數(shù)據(jù)寫入PLC。
2.讀取PLC寫入Modbus
點擊注入節(jié)點 2,啟動PLC數(shù)據(jù)采集流程。
通過Siemens節(jié)點讀取S7-200 Smart數(shù)據(jù)。
將讀取到的PLC數(shù)據(jù)寫入Modbus設備(電腦端Modbus Slave軟件模擬從站)。
第四步:自動運行
1.配置注入節(jié)點為周期性觸發(fā),周期設為每 5 秒執(zhí)行一次。
2.為保證數(shù)據(jù)轉換有序進行,增加一個延遲節(jié)點,延遲時間依實際情況而定。
流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp
Modbus 從站PLC協(xié)議
本章節(jié)主要實現(xiàn)一個需求:使用EG系列網(wǎng)關實現(xiàn)Modbus TCP從站和S7-200 Smart PLC之間的雙向協(xié)議轉換。適用場景是:EG系列網(wǎng)關讀取PLC的數(shù)據(jù),然后將讀取的數(shù)據(jù)映射為Modbus寄存器,并作為Modbus從站供外部Modbus主站讀??;同時網(wǎng)關也能接收外部Modbus主站的寫數(shù)據(jù)命令,并將數(shù)據(jù)寫入PLC。
這樣即實現(xiàn)了,外部Modbus主站可以采用Modbus協(xié)議和PLC實現(xiàn)雙向數(shù)據(jù)通信。網(wǎng)絡拓撲
PLC點位表
點表地址 | 讀寫權限 | 解析方式 |
VW0 | 讀寫 | UInt16 |
VW100 | 讀寫 | UInt16 |
VW200 | 讀寫 | Float |
網(wǎng)關配置:
第一步:采集PLC數(shù)據(jù)
第二步:配置Modbus從站
第三步:PLC數(shù)據(jù)映射到Modbus從站
第四步:配置TCP服務端(給外部Modbus TCP主站提供連接通道)
第五步:Modbus TCP主站測試(Modbus Poll軟件)
第一步:采集PLC數(shù)據(jù)
采集PLC數(shù)據(jù)可參考其它案例,此處不做重點介紹。下圖為采集到PLC數(shù)據(jù)后,將數(shù)據(jù)打印輸出:此處為語雀內(nèi)容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp
第二步:配置Modbus從站
Modbus從機節(jié)點可參考其他案例,此處不做重點介紹。下圖示例中配置了三個虛擬寄存器,分別對應PLC的三個數(shù)據(jù)點:
Modbus 從機節(jié)點支持Modbus RTU/Modbus TCP 協(xié)議。用于將網(wǎng)關采集到的其它數(shù)據(jù)轉換為符合Modbus協(xié)議的數(shù)據(jù),以供外部的Modbus主站進行讀寫操作。輸入msg.payload #如果數(shù)據(jù)類型是對象,則會將對象中的鍵與配置的鍵名進行匹配,并將相應的值寫入對應的寄存...詳細查看文檔:https://iotrouter.yuque.com/zn3vdn/eg8000/rwsclqi3iw4cgoxt
第三步:PLC數(shù)據(jù)映射到Modbus從站
在PLC讀取配置中,將循環(huán)讀取時間設定為 2000ms,以此實現(xiàn)每2秒一次的讀取頻率。然后將讀取到的數(shù)據(jù)寫入到Modbus從機中(數(shù)據(jù)點名稱一樣即可自動匹配轉換)。
第四步:配置TCP服務端
TCP服務監(jiān)聽可參考其他案例,此處不做重點介紹。下圖為TCP節(jié)點的配置:
TCP IN/OUT,EG8200系列邊緣計算網(wǎng)關支持同時作為TCP的服務端和TCP的客戶端,且沒有連接數(shù)量的限制。TCP功能根據(jù)數(shù)據(jù)流向分為兩個節(jié)點,分別是:TCP IN表示網(wǎng)關收到的數(shù)據(jù),TCP OUT表示網(wǎng)關發(fā)送的數(shù)據(jù)。監(jiān)聽模式網(wǎng)關作為TCP服務端,連接模式網(wǎng)關作為TCP客戶端。TCP IN和TCP OU...詳細查看:https://iotrouter.yuque.com/zn3vdn/eg8000/biy9z9qin5yhqhn1
第五步:Modbus TCP主站
測試使用Modbus Poll(Modbus主站軟件)讀寫測試。
流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp