1. 引言
在当前快速发展的工业4.0时代,边缘計算已经成为了一个关键技术,它能够使データの処理更加接近データ源头,从而提高処理速度并降低応答時間。这一技术尤其在工业自動化领域表示出了极大的潜力,因为它能有效処理大量来自工业デバイス和センサーは的データ,実装リアルタイムモニタリング和控制。
エッジゲートウェイ作为连接センサーは、コントローラーは和中心処理系统的桥梁,不仅负责データ的采集和预処理,还负责データ的加密和传输,确保データ在传输过程中的セキュリティ和完全性。此外,エッジゲートウェイ能够サポート多种通信プロトコル,包括但不限于RS485、Ethernet等,使其在各种工业环境中具有广泛的适用性。
2. エッジゲートウェイ概述
2.1 定义和功能
エッジゲートウェイ是一种位于データ产生源(如センサーは)与中心データの処理设施(如云サーバー·サーバー)之间的デバイス。它的主要功能包括データ的采集、预処理、存储和转发。経由在本地処理データ,エッジゲートウェイ能够减少对中心サーバー·サーバー的データ传输需求,降低延迟,提高データの処理效率,并在网络连接不佳的情况下保持系统的持续运行。
2.2 エッジゲートウェイ伝統とはゲートウェイ違いはありません
伝統とはゲートウェイ相比,エッジゲートウェイ在処理能力和智能化程度上有显著提升。传统ゲートウェイ通常只负责データ转发,而エッジゲートウェイ则配备了更强的計算能力,能够执行复杂的データ分析和処理任务。此外,エッジゲートウェイ通常集成了もっと見る的セキュリティ措施,如データ加密和ファイアウォール,以确保データ在传输过程中的セキュリティ性。
経由引入エッジゲートウェイ,企业可以有效地解決データの処理速度慢、系统応答時間长以及データセキュリティ問題,这对于実装高效的工业自動化和智能制造具有重要意义。随着技术的进步和应用需求的增加,エッジゲートウェイ的角色和功能将持续发展,为工业自動化带来もっと見る的可能性和挑战。
最近在项目で使用する。到了畅维通达EN6400エッジゲートウェイ,接下来,我将结合实际业务中的案例,为大家表示这款エッジゲートウェイ的应用与技术细节。
3.畅维通达EN6400ゲートウェイ技術仕様書与特性
在使用前先来看一看这款ゲートウェイ的详细技術仕様書和参数
- 以 ARM 为核心,功耗、算力、体积、热性能整体均衡
- 入力电源的电压範囲宽、具有防反接保护功能
- 5 路独立的 485 Interface,サポート接入 Modbus device。
- 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 RTUCommunication,用于采集称重仪表的重量データ,ゲートウェイ做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,
"showErrors": false,
"showWarnings": true,
"unitid": "",
"dataType": "HoldingRegister",
"adr": "1",
"quantity": "1",
"rate": "1",
"rateUnit": "s",
"delayOnStart": false,
"startDelayTime": "",
"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,
"showErrors": false,
"showWarnings": true,
"unitid": "",
"dataType": "HoldingRegister",
"adr": "0",
"quantity": "1",
"server": "97d630483ae5377e",
"emptyMsgOnFail": false,
"keepMsgProperties": false,
"delayOnStart": false,
"startDelayTime": "",
"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",
"serialDatabits": "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",
"serialDatabits": "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.open200smartPLC的プログラミング软件:STEP 7-MicroWIN SMART
2.ChoicePLC的CPU型号,和PLC建立通信
3.openPLC程序,导入后下载进入PLC,下载完毕启动PLC
4.clickPLC的程序モニタリング和ステータス图表モニタリング,可以オンラインモニタリング程序运行情况和PLCレジスタのデータ变化
5.项目总结
总的来说,在项目の実践中,畅维通达エッジゲートウェイ都表现非常不错,不管是数量众多的Modbus Interface,まだ开机自启的Node-RED,都在使用体验上,让人感觉很舒畅。需要注意一点是,由于デフォルト的ip是192.168.0.202,もしスイッチ交換機,或者ルータの設置設定的网段ではない从192.168.0始まりました。,那就无法取得ip,修改ルータの設置或者给ゲートウェイ接上键盘鼠标修改ゲートウェイ的ip設定文件。
Leave a Reply