Node-RED是用于构建物联网(IOT,Internet of Things)应用程序的一个可视化编程工具,其开发环境以流程(flow)程序设计为基础,使用者只需将节点拖曳到流程编辑器内,并将这些不同功能的节点加以设定及组合后,就可以轻松执行所需要的应用程序,使得物联网程序的开发及设计更加快速简易。
Node-RED可通过MQTT,OPC UA节点轻松采集工业PLC,SCADA,MES系统的数据,并利用其Dashboard等模块,可将数据可视化呈现至Web端。同时可扩展Bootstrap、jQuery、Vue.js等前端框架,从而可开发绚丽丰富的UI界面。
施耐德电气的Modicon M262 PLC支持MQTT通信,可直接将采集的现场数据发布至云平台。
本文主要介绍基于Node-RED+M262搭建一个简易物联网平台。
M262通过Sercos III和Ethernet IP与底层设备通信; M262通过MQTT将数据发布至阿里云IoT平台;
Node-RED通过MQTT订阅阿里云IoT平台数据;
如下图所示,Node-RED可运行于本地PC,服务器,Docker,树莓派等载体。
本例将Node-RED安装于阿里云ECS中,操作系统Ubuntu ,通过Docker安装。
2.1 安装Docker
sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
2.2 Docker中运行Node-RED
docker run -it -p 1880:1880 --name mynodered nodered/node-red
打开浏览器访问http://localhost:1880, 启动Node-Red开发界面;
2.3 安装Dashboard,uibuilder,mysql等扩展模块 以阿里云IoT平台为MQTT Broker(中转),Node-RED作为客户端2订阅 客户端1 M262发布到Broker的消息。 如果是局域网内的,也可通过Modbus TCP,Ethernet IP,OPC UA采集数据;
4.2 将从PLC采集的数据存入数据库
也可存入其他数据库,如sql,sqlite,postgreSql等等; 4.3 PLC采集的数据可视化呈现
借助下图丰富的组件可迅速实现数据看板设计
仪表盘,罗盘指针,圆环图,液位图;
曲线图,柱状图,饼状图,水平图,极地坐标图,雷达图;
4.4 Node-RED 安全性设置
开发界面和UI界面可分别设置用户权限
修改.node-red/settings.js配置文件
Node-RED是开源的物联网工具,因操作简单易上手得到了越来越多的关注。很多厂商发布的硬件产品也预安装了Node-RED,如施耐德Edge control Magelis iPC and Edge Box,西门子 SIMATIC IOT2040,研华EKI-1242NR等工业物联网智能网关都预装了Node-RED工具。可便捷地借助Node-RED实现底层数据采集与转发。
本文采用的方案是将Node-RED部署在云服务器中,然后可在PC,PAD,Phone上通过浏览器访问此Web平台。本Demo功能较简单,主要展示了数据的可视化呈现,也可通过Python+Django/Flask开发Web应用,增加用户管理,设备管理等功能。
[3]https://flows.nodered.org/node/node-red-dashboard
[4]https://olh.schneider-electric.com/Machine%20Expert/LandingPages/en/index.html