Node-RED一个开源的、流程导向的编程工具,旨在帮助用户使用流程图形式来连接物联网设备、API、服务和应用程序,以实现自动化和交互式的应用程序。Node-RED基于JavaScript,使用了Node.js运行时环境,并提供了一个基于Web的可视化编辑器来创建和管理流程。
早在几年前我们就关注到Node-RED的开源项目,被他的灵活配置界面和生态吸引,并尝试使用node-red在项目中进行应用了,当时记得版本号还是0.2,就在这种版本下我们进行了魔改,我们分析了底层代码结合业务修改和新增许多功能,将物联网平台、组态功能打包在一起了,一个EXE程序双击就能跑,不用安装一堆依賴包。希望通过分享可以为同行带来业务上的灵感。
EXE打包双击就能跑
物联网、组态、NODE-RED一站式服务
新增和优化功能介绍
支持C#函数
可以通过C#语法进行Node-RED的逻辑处理,当时是为了引用DLL库,支持类似HSlcommunication和labview等第三方动态链接库的调用。
选择DLL动态库文件,就可调用函数
设备协议组件控件
新增了设备交互协议Modbus,OpcUA,西门子S7,三菱FX,三菱MC,欧姆龙HostLink,欧姆龙Fins,AB Logix,松下Mewtocol,永宏Fatek,电表DLT645,电力IEC104等,优化采集界面字典方式配置,集成合并通讯与串口队列机制,高效通讯稳定。
优化了协议机制,处理了许多异常情况
IO点可以导入导出和模板化
自定义协议组件
自定义协议组件采集界面字典方式配置,集成合并通讯与串口队列机制,通过模板中连接成功握手函数,合并数据函数,报文发送解析函数,接收解析函数来实现自定义设备通讯,方便用户自行封装协议。
用户只要关注协议的解析格式
交互界面模板化输出
串口控件优化
合并设备通讯控件,可允许进行串口和设备通讯控件共用通讯串口连接,以及监听串口收到消息。
配置一次就可共用
队列控件
将节点纳入队列管控,防止逻辑或者一对一通讯冲突,以及节点限制防止无上限堵塞。
在高并发场景下很方便
物联网云平台
引入物联网腾讯云,阿里云,百度AI,钉钉消息,微信消息等。
第三方平台
数据库存储
调整优化编译了InfluxDB,MySQL,redis,Mongo,MSSQL,Oracle,并新增了时序数据tdengine,我们应该也是国内首个产品集成tdengine,因为我们是在陶老师发布开源的第二天就集成了,当时被陶老师的产品思想深深的吸引了。
数据存储引擎
应用案例
采集设备接入物联网,如智能换电,环境监测,综合能源管理,动环监测,智慧公厕等场景
一个换电柜的业务界面
物联网平台规则引擎,实现了用户配置隔离,解决了当前用户配置错误不影响整个进程,隔离在线程中,配置以列表规则主题为保存,方便用户管理
规则引擎管理列表
规则引擎配置界面