1. 서론
在当前快速发展的工业4.0时代,边缘계산已经成为了一个关键기술,它能够使데이터处理更加接近데이터源头,从而提高处理速度并降低响应时间。这一기술尤其在산업 자동화领域显示出了极大的潜力,因为它能有效处理大量来自工业设备和센서的데이터,实现实时监控和控制。
边缘게이트웨이作为연결센서、제어기和中心处理系统的桥梁,不仅负责데이터的采集和预处理,还负责데이터的加密和传输,确保데이터在传输过程中的安全和完整性。此外,边缘게이트웨이能够支持多种통신 프로토콜,包括但不限于RS485、이더넷等,使其在各种工业환경中具有广泛的适用性。
2. 边缘게이트웨이개요
2.1 定义和功能
边缘게이트웨이是一种位于데이터产生源(如센서)与中心데이터处理设施(如云服务器)之间的设备。它的主要功能包括데이터的采集、预处理、存储和转发。通过在本地处理데이터,边缘게이트웨이能够减少对中心服务器的데이터传输需求,降低지연,提高데이터处理效率,并在네트워크연결不佳的情况下保持系统的持续运行。
2.2 边缘게이트웨이与传统게이트웨이的区别
与传统게이트웨이相比,边缘게이트웨이在处理能力和智能化程度上有显著提升。传统게이트웨이通常只负责데이터转发,而边缘게이트웨이则配备了更强的계산能力,能够执行复杂的데이터分析和处理任务。此外,边缘게이트웨이通常통합了更多的安全措施,如데이터加密和防火墙,以确保데이터在传输过程中的安全性。
通过引入边缘게이트웨이,企业可以有效地解决데이터处理速度慢、系统响应时间长以及데이터安全문제,这对于实现高效的산업 자동화和智能制造具有重要意义。随着기술的进步和적용需求的추가,边缘게이트웨이的角色和功能将持续发展,为산업 자동화带来更多的可能性和挑战。
最近在项目中使用到了畅维通达EN6400边缘게이트웨이,接下来,我将结合实际业务中的案例,为大家展示这款边缘게이트웨이的적용与기술细节。
3.畅维通达EN6400게이트웨이기술사양与特性
在使用前先来看一看这款게이트웨이的详细기술사양和매개변수
- 以 ARM 为核心,功耗、算力、体积、热性能整体均衡
- 입력电源的电压范围宽、具有防反接保护功能
- 5 路独立的 485 인터페이스,支持接入 Modbus 设备。
- 1 路 HDMI 출력,方便接显示器。
- 1 路 USB 2.0, 外接键鼠、优盘均可。
- 1 路 TF 卡,扩展데이터存储空间。
- 支持有线以太网,方便部署。
- 인터페이스采用弹簧式端子,方便徒手拔插线束。
- 钣金壳体, 防护等级 IP30, 坚固、 轻便、防腐蚀, 可选 DIN 卡扣便于导轨安装

通讯인터페이스

在EN6400게이트웨이中,有内置的Node-RED,也可以内置其他的平台,具体可以看下图 ,并设置了开机自启。게이트웨이的局域网IP默认为192.168.0.202。

4.实战项目
由于身边没有太多的硬件设备,所以在实战测试方面,我设计了一个使用边缘게이트웨이通过RS485采集称重仪데이터,并通过边缘게이트웨이内置的Node-RED읽기시리얼 포트的데이터,再使用dashboard节点进行显示,最后,再通过Modbus TCP将데이터写到西门子PLC。主要测试边缘게이트웨이在实际项目有哪些优势。
整体架构是这样的

4.1使用EN6400采集RS485센서
称重仪与边缘게이트웨이通过自带的5个RS485인터페이스中的0A和0B做Modbus RTU통신,用于采集称重仪表的重量데이터,게이트웨이做Modbus的마스터,称重仪表做슬레이브,仪表슬레이브 주소是2,통신 속도是19200,8데이터 비트,1정지 비트,패리티 없음。
Node-RED 使用的节点是 Modbus 节点,每秒읽기一次设备데이터。
下图是流文件连线及节点설정

打印出来的效果

数字343的含义是3.43KG。
完整的flow콘텐츠
[
{
"id": "bf7de48e301a2645",
"type": "tab",
"label": "拿我格子衫来",
"disabled": false,
"info": "",
"env": []
},
{
"id": "df0b29fd65548aeb",
"type": "modbus-read",
"z": "bf7de48e301a2645",
"name": "485-0",
"topic": "",
"showStatusActivities": false,
"logIOActivities": false,
"show오답s": false,
"showWarnings": true,
"unitid": "",
"데이터Type": "Holding회원가입",
"adr": "1",
"수량": "1",
"rate": "1",
"rateUnit": "s",
"delayOnStart": false,
"시작DelayTime": "",
"server": "9f669d2b1c2d58e3",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"emptyMsgOnFail": false,
"x": 190,
"y": 160,
"wires": [
[
"a22b902052776c1d"
],
[
"ad51dea38739870b"
]
]
},
{
"id": "a22b902052776c1d",
"type": "modbus-write",
"z": "bf7de48e301a2645",
"name": "",
"showStatusActivities": false,
"show오답s": false,
"showWarnings": true,
"unitid": "",
"데이터Type": "Holding회원가입",
"adr": "0",
"수량": "1",
"server": "97d630483ae5377e",
"emptyMsgOnFail": false,
"keepMsgProperties": false,
"delayOnStart": false,
"시작DelayTime": "",
"x": 520,
"y": 120,
"wires": [
[],
[]
]
},
{
"id": "ad51dea38739870b",
"type": "debug",
"z": "bf7de48e301a2645",
"name": "debug 1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 500,
"y": 180,
"wires": []
},
{
"id": "9f669d2b1c2d58e3",
"type": "modbus-client",
"name": "拿我格子衫来",
"clienttype": "serial",
"bufferCommands": true,
"stateLogEnabled": false,
"queueLogEnabled": false,
"failureLogEnabled": true,
"tcpHost": "127.0.0.1",
"tcpPort": "502",
"tcpType": "DEFAULT",
"serialPort": "/dev/ttyS0",
"serialType": "RTU",
"serialBaudrate": "19200",
"serial데이터bits": "8",
"serialStopbits": "1",
"serialParity": "none",
"serialConnectionDelay": "100",
"serialAsciiResponseStartDelimiter": "0x3A",
"unit_id": "2",
"commandDelay": "1",
"clientTimeout": "1000",
"reconnectOnTimeout": true,
"reconnectTimeout": "2000",
"parallelUnitIdsAllowed": true,
"showWarnings": true,
"showLogs": true
},
{
"id": "97d630483ae5377e",
"type": "modbus-client",
"name": "Fizz",
"clienttype": "tcp",
"bufferCommands": true,
"stateLogEnabled": false,
"queueLogEnabled": false,
"failureLogEnabled": true,
"tcpHost": "192.168.0.10",
"tcpPort": "502",
"tcpType": "DEFAULT",
"serialPort": "/dev/ttyUSB",
"serialType": "RTU-BUFFERD",
"serialBaudrate": "9600",
"serial데이터bits": "8",
"serialStopbits": "1",
"serialParity": "none",
"serialConnectionDelay": "100",
"serialAsciiResponseStartDelimiter": "0x3A",
"unit_id": 1,
"commandDelay": 1,
"clientTimeout": 1000,
"reconnectOnTimeout": true,
"reconnectTimeout": 2000,
"parallelUnitIdsAllowed": true,
"showWarnings": true,
"showLogs": true
}
]
4.2 使用内置Node-RED显示图表
要显示实时데이터必须要现安装dashboard,对于네트워크不太好的同学可以将npm源设置为华为的,或者淘宝的。
完整的流连线

chart节点的설정如下:

实时데이터展示显示效果图如下:

在称重仪上随机给压力,在node-red 的ui上就能实时读到데이터。
ui的默认访问주소是: http://192.168.0.202:1880/ui
(原文链接 https://fizzz.blog.csdn.net/article/details/138586861, 转载需经原创作者 拿我格子衫来 同意,侵权必究)
4.3 将데이터쓰기到PLC中
在Node-RED的中Modbus Write 节点的作用就是通过Modbus TCP프로토콜来将데이터쓰기到西门子PLC。
Modbus Write 节点설정如下

Modbus client节点설정

게이트웨이采集到的데이터传入西门子200smartPLC中,
통신방식是게이트웨이做Modbus TCP클라이언트,200smartPLC做服务端,
200smart PLC的VW0레지스터就是Modbus TCP的주소0,
PLC VW0接受到데이터后,内部通过程序进行处理转换成实数存储在VD300里面
使用网线将게이트웨이与电脑都연결到交换机上,这样就可以在局域网内进行Modbus TCP通讯。
PLC程序如下:

有需要完整PLC程序的可以私聊我(拿我格子衫来)
PLC程序运行:
1.열기200smartPLC的编程软件:STEP 7-MicroWIN SMART
2.选择PLC的CPU型号,和PLC建立통신
3.열기PLC程序,导入后下载进入PLC,下载完毕启动PLC
4.클릭PLC的程序监控和状态图表监控,可以在线监控程序运行情况和PLC레지스터데이터变化
5.项目总结
总的来说,在项目的实战中,畅维通达边缘게이트웨이都表现非常不错,不管是数量众多的Modbus 인터페이스,还是开机自启的Node-RED,都在使用体验上,让人感觉很舒畅。需要注意一点是,由于默认的ip是192.168.0.202,如果交换机,或者路由器设置的网段不是从192.168.0开始的,那就无法获取ip,修改路由器或者给게이트웨이接上键盘鼠标修改게이트웨이的ip설정文件。
답글 작성