Skip to content

hootrhino/rulex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

RULEX 工业边缘网关系统

image

一、项目概述

RULEX 是一款功能强大的工业边缘网关系统,旨在为工业自动化、物联网等领域提供全面的设备接入、数据处理、协议转换、云边协同等服务。本项目已开源,希望通过社区的力量进一步优化和拓展系统功能,为更多用户提供便捷高效的工业数据处理解决方案。

二、功能特点

  1. 设备接入与管理

    • 支持多种工业和物联网协议,包括但不限于:
      • 南向协议:Modbus(主机/从机模式)、西门子 S7 系列 PLC 采集、SNMP、Bacnet(主/从模式)、HTTP 采集、DLT645 电表协议、CJT188 仪表协议、SZY206 水资源检测协议等,还支持自定义串口协议接入设备。
      • 北向协议:可以将数据推送到 MQTT Broker、UDP Server、TCP Server、HTTP Server、MongoDB、TdEngine、串口、Semtech UDP Forwarder 及 GreptimeDb 等。
    • 方便的设备管理功能,可对通用串口读写设备、西门子 PLC、各种 Modbus 设备、SNMP 设备、Bacnet 设备、HTTP 数据采集设备、腾讯云物联网平台设备等进行配置、监控和管理。用户可根据需要设置采集频率、寄存器地址、功能码等参数。
  2. 数据处理与存储

    • 数据中心:存储采集的数据,支持使用 Lua 脚本写入数据,同时提供根据设定条件读取、导出和清空数据的功能。
    • 数据模型:允许用户根据需求构建数据模型及相应的存储仓库,可定义字段属性,如名称、类型、单位、范围、权限等。数据模型发布后可进行读写操作,类似于数据库的建表过程。
    • 规则引擎:使用 Lua 脚本编写规则,实现数据的过滤、转换、计算等处理逻辑,并可根据规则触发相应动作,例如根据设定的阈值判断设备状态并执行通知或控制指令。
  3. 系统配置与管理

    • 配置指南:涵盖了多个方面的配置参数,包括应用程序(日志输出、调试模式、资源限制等)、插件(HTTP API、USB 监控、Modbus 工具等各种插件的启用和参数设置)、传输(串口通信参数)等。
    • 证书管理:提供证书申请、配置(指定证书路径)、验证(检查证书有效性)的完整流程。
    • 系统设置:提供查看系统资源、网络状态、设置端口、网卡、路由、WIFI、4G 网络、时间、固件升级、数据备份、用户信息等功能,方便用户对系统进行全面管理。
  4. 云边协同:可与联犀平台协同工作,实现在联犀平台创建产品和设备,并在 RULEX 中进行接入和配置协同,确保正确的产品-设备-秘钥三元组设置。开启后,支持数据映射与交互,例如将 Modbus 设备数据上传至联犀平台,并能接收云端指令。

  5. 二次开发:基于 RULEX 框架(采用 AGPL 协议开源)开发,为开发者提供了完善的开发环境搭建指南,包括推荐在 Linux 下开发,详细的启动程序方法,以及开发工具(如 Visual Studio Code 和 Jetbrain Goland)的配置建议。同时,对关键接口(南向、北向、设备、插件接口及其方法定义)进行了详细说明,并提供了设备、北向、插件开发案例及综合案例,方便开发者快速上手。

  6. 辅助功能

    • 轻量应用:基于 Lua 的扩展脚本系统,提供了如数据转发 MQTT、GPIO 控制等示例,开发人员可根据具体需求灵活开发新应用。
    • 增强插件:包括 API Server、CRC 计算器、USB 监控器、ICMP 测速、Modbus 扫描、Ngrok 客户端及 Ngrok 内网透传插件等,可有效扩展系统功能。例如,Ngrok 插件可实现将本地端口映射到公网,方便远程访问和调试。
    • 数据遥测:配备遥测插件,可收集设备运行状态、性能指标等信息,其数据格式公开,用户可通过配置文件开关控制,并遵循数据遥测协议,保障用户权益。
    • 通信模组:支持多种通信模块(如 Lora、蓝牙、WIFI 等)的接入,提供环境参数及交互流程示例,方便用户集成使用。

三、安装与部署

访问:https://www.hootrhino.com 获取资料。

四、使用方法

设备接入与数据采集

  1. 根据设备的协议类型,在设备接入模块中添加新设备并配置相应参数,例如对于串口设备,需配置串口参数、设备地址、功能码等。
  2. 导入点位表,您可以手动或批量配置点位,点位表中应包含传感器别名、功能码、采样频率、数据类型等信息。完成配置后,系统将自动开始采集数据,并存储至数据中心。

五、贡献指南

我们欢迎社区成员对 RULEX 项目进行贡献,以下是一些贡献的方式和建议:

  1. 代码贡献
    • 请先将本项目 fork 到您的 GitHub 账户,在您的分支上进行开发。
    • 确保您的代码遵循项目的编码规范和风格。
    • 提交代码前,运行测试用例,确保代码的正确性和稳定性。
    • 发起 pull request,详细描述您的代码修改内容和目的,等待审核和合并。
  2. 文档贡献
    • 发现文档中的错误或不足,可以直接修改并提交 pull request。
    • 为项目添加新的使用案例、教程或说明,帮助更多用户更好地使用 RULEX。
  3. 问题反馈
    • 若在使用过程中遇到问题,请在 Issues 页面创建新的问题,详细描述问题的症状、操作步骤和系统环境,以便我们快速定位和解决问题。

六、许可证

本项目采用 [AGPL2] 许可证。这意味着您可以自由使用、修改和分发本项目,但需要遵守相应的开源协议,请在使用前仔细阅读许可证内容。

七、致谢

感谢所有参与 RULEX 项目开发、测试、使用和推广的人员,是大家的共同努力让这个项目不断发展壮大。

八、联系我们

如果您对项目有任何疑问、建议或合作意向,请通过以下方式联系我们:

  • image