新聞中心
PRESS CENTER本文主要實現的功能是:使用EG系列網關完成Modbus協議與IEC104主站協議之間的雙向協議轉換。其中Modbus協議包括:Modbus TCP主站 / Modbus RTU主站 / Modbus TCP從站 / Modbus RTU從站。IEC104主站協議指的是網關作為IEC104主站和其它電力設備從站之間的通信協議。
Modbus RTU與Modbus TCP協議的區(qū)別在網關上的體現僅僅是一個配置項,因此不單獨區(qū)分介紹。
綜上所述,案例演示分為兩個部分:
Modbus 主站IEC104主站
本章節(jié)主要實現一個需求:使用EG系列網關實現Modbus RTU主站和IEC104主站之間的雙向協議轉換。適用場景是:EG系列網關作為Modbus主站讀取傳感器的數據,然后作為IEC104主站將讀取的數據以遙調遙控的方式寫入IEC104從站;同時也能作為IEC104主站讀取IEC104從站的遙信遙測數據,并將讀取的數據寫入到Modbus傳感器。
1. Modbus點位表
功能碼0x03 | ||
寄存器地址 | 讀寫權限 | 解析方式 |
10001 | 只讀 | Bool |
10002 | 只讀 | Bool |
40001 | 只寫 | 浮點數 |
40003 | 只寫 | 浮點數 |
2. 104點位表
元素地址 | 讀寫權限 | 解析方式 |
24577 | 只寫(遙控) | 0分閘/1合閘 |
24578 | 只寫(遙控) | 0分閘/1合閘 |
16385 | 只讀(遙測) | 浮點數 |
16386 | 只讀(遙測) | 浮點數 |
3. 點位映射關系
Modbus寄存器地址 | 數據流向 | 104點表地址 |
10001 | -> | 24577(遙控) |
10002 | -> | 24578(遙控) |
40001 | <- | 16385(遙測) |
40003 | <- | 16386(遙測) |
讀取Modbus寫入104:
讀取Modbus的10001寄存器,將值寫入104的24577
讀取Modbus的10002寄存器,將值寫入104的24578
讀取104寫入Modbus:
讀取104的16385,將值寫入Modbus的40001寄存器
讀取104的16386,將值寫入Modbus的40003寄存器
網關配置:
第一步:采集Modbus數據
第二步:采集104數據
第三步:Modbus與104數據交互
第四步:自動運行
第一步:采集Modbus數據
采集Modbus請參考其他案例,此處不做重點介紹。下圖為采集到Modbus RTU數據后,將數據打印輸出:
此處為語雀內容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/hn4q2114580z53bu
第二步:采集104數據
采集104數據可參考其它案例,此處不做重點介紹。下圖為采集到104數據后,將數據打印輸出:
此處為語雀內容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg/wff6kithpkit8nry
第三步:Modbus與104數據交互
1.讀取Modbus寫入104
點擊注入節(jié)點 ,啟動Modbus數據采集流程。
通過Modbus主站請求節(jié)點讀取寄存器數據(電腦端Modbus Slave軟件模擬從站)。
經Modbus主站解析節(jié)點解析后,將數據寫入104(電腦端IEC104模擬終端模擬從站)。
2.讀取104寫入Modbus
IEC104Clinet節(jié)點配置總召周期,讀取104數據。
將讀取到的104數據寫入Modbus設備(電腦端Modbus Slave軟件模擬從站)。
第四步:自動運行
1.配置注入節(jié)點為周期性觸發(fā),周期設為每 5 秒執(zhí)行一次。
2.為保證數據轉換有序進行,采集周期依據實際情況而定。
流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/llcmr0chtudtshil
Modbus 從站與IEC104主站
本章節(jié)主要實現一個需求:使用EG系列網關實現Modbus RTU從站和IEC104主站之間的雙向協議轉換。適用場景是:EG系列網關作為IEC104主站讀取IEC104從站的遙信遙測數據,然后將讀取的數據映射為Modbus寄存器,并作為Modbus從站供外部Modbus主站讀??;同時網關也能接收外部Modbus主站的寫數據命令,并將數據以遙調遙控的方式寫入IEC104從站。
這樣即實現了,外部Modbus主站可以采用Modbus協議和IEC104從站實現數據雙向通信。
1. Modbus點位表
功能碼0x03 | ||
寄存器地址 | 讀寫權限 | 解析方式 |
10001 | 只讀 | Bool |
10002 | 只讀 | Bool |
40001 | 只讀 | 浮點數 |
40003 | 只讀 | 浮點數 |
00001 | 讀寫 | Bool |
00002 | 讀寫 | Bool |
2. 104點位表
元素地址 | 讀寫權限 | 解析方式 |
1 | 只讀(遙信) | 0分閘/1合閘 |
2 | 只讀(遙信) | 0分閘/1合閘 |
16385 | 只讀(遙測) | 浮點數 |
16386 | 只讀(遙測) | 浮點數 |
24577 | 只寫(遙控) | 0分閘/1合閘 |
24578 | 只寫(遙控) | 0分閘/1合閘 |
3. 點位映射關系
Modbus寄存器地址 | 數據流向 | 104點表地址 |
10001 | <- | 1(遙信) |
10002 | <- | 2(遙信) |
40001 | <- | 16385(遙測) |
40003 | <- | 16386(遙測) |
00001 | -> | 24577(遙控) |
00002 | -> | 24578(遙控) |
讀取104從站數據寫入Modbus從站:
讀取104的地址1,將值寫入Modbus的10001寄存器
讀取104的地址2,將值寫入Modbus的10002寄存器
讀取104的地址16385,將值寫入Modbus的40001寄存器
讀取104的地址16386,將值寫入Modbus的40003寄存器
控制Modbus從站寫入104從站:
通過寫Modbus的00001寄存器,將值寫入104的地址24577
通過寫Modbus的00002寄存器,將值寫入104的地址24578
網關配置:
第一步:采集104從站數據
第二步:添加Modbus從站
第三步:104主站數據映射到Modbus從站
第四步:添加串口節(jié)點
第五步:Modbus主站將數據寫入104從站
第一步:采集104數據
采集104數據可參考其它案例,此處不做重點介紹。下圖為采集到104數據后,將數據打印輸出:
此處為語雀內容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg/wff6kithpkit8nry
第二步:添加Modbus從站
Modbus從站詳細配置請參考其它案例,此處不做重點介紹。此處僅展示本示例所需配置:
此處為語雀內容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/ez6ci1bzet4og5gl
第三步:104主站數據映射到Modbus從站
104節(jié)點總召周期時間配置為 5s,以此實現每5秒一次的讀取頻率。然后將讀取到的數據寫入到Modbus從機的對應寄存器(數據點名稱一樣即可自動匹配轉換)。
第四步:添加串口節(jié)點
串口節(jié)點用于外部Modbus主站與網關Modbus從站通信,詳細配置請參見其他案例,此處僅展示本示例所需配置:
此處為語雀內容卡片,點擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg/aa5zmwb55m6dbzzz
第五步:Modbus主站數據寫入104從站
網關通過串口節(jié)點接收 Modbus 主站寫指令,經 Modbus 從機節(jié)點解析后,將數據傳遞至 104 節(jié)點,實現遙控功能。
流程源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/llcmr0chtudtshil