脚本系统-匠联边缘服务系统
脚本系统是平台的核心引擎之一,它赋予了用户前所未有的灵活性和控制力,能够实现复杂的业务逻辑、数据处理、设备联动和系统集成。该系统深度集成了 JavaScript (JS) 作为核心脚本语言,并围绕其构建了丰富的功能模块。
以下是该脚本系统的核心功能与特点的详细展开:
1. 核心技术:JavaScript (JS)
- 语言选择:采用 JavaScript 作为脚本语言是其一大亮点。JS 语法简洁、学习曲线相对平缓,拥有庞大的开发者社区和丰富的库资源。这极大地降低了用户(尤其是熟悉 Web 开发的工程师)的学习和使用门槛。
- 灵活性:JS 的动态特性使其非常适合处理物联网场景中多变的数据格式和复杂的逻辑判断。
- 生态集成:可以方便地利用成熟的 JS 库或框架(在平台安全沙箱允许的范围内)来扩展功能。
2. 核心功能模块
a) 定时任务调度 (Cron-like Scheduling)
- 功能:提供类似 Linux Cron 的定时任务调度机制。用户可以精确设定脚本执行的时间点、频率(如每分钟、每小时、每天特定时间、每周几等)。
- 应用场景:
- 数据采集:定时轮询特定设备或设备组的实时数据。
- 报表生成:每日/每周定时汇总数据并生成统计报告。
- 状态检查:定期检查系统或设备健康状态,执行预定义的维护或告警逻辑。
- 自动化运维:在非高峰时段执行数据备份、清理等后台任务。
b) 设备数据交互
- 读取设备实时数据 (Read Real-time Data):
- 功能:通过脚本调用平台 API,实时获取指定设备(或设备组)的当前状态、传感器读数、运行参数等。
- 应用场景:用于即时决策、状态监控、触发联动。
- 记录趋势数据 (Log Trend Data):
- 功能:将采集到的实时数据或计算结果,按照时间序列存储到平台的时序数据库中。
- 应用场景:用于生成历史曲线图、进行数据分析、性能评估、故障回溯。
- 记录事件 (Log Events):
- 功能:将特定的业务事件(如设备启动、模式切换、维护完成)或系统事件(如脚本执行成功/失败)记录到事件日志中。
- 应用场景:追踪系统行为、审计、用户行为分析。
- 记录报警信息 (Log Alarms):
- 功能:当脚本检测到异常条件(如温度超限、设备离线、通信故障)时,主动创建并记录报警信息。通常包含报警级别、描述、时间戳、关联设备等。
- 应用场景:实现主动告警、通知相关人员、触发应急流程。
- 记录参数 (Log Parameters):
- 功能:记录设备配置参数的变更历史或特定时刻的参数快照。
- 应用场景:版本控制、故障排查(对比参数差异)、合规性要求。
c) 数据库操作 (Database Operations)
- 功能:脚本可以直接调用平台提供的数据库接口(可能是 SQL 或 NoSQL),执行数据查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作。
- 应用场景:
- 持久化存储:将处理后的数据、计算结果、日志信息等存储到关系型数据库中,用于长期保存和复杂查询。
- 数据关联:将物联网数据与业务系统数据(如工单、用户信息)进行关联分析。
- 状态管理:在数据库中维护脚本运行状态、计数器、配置信息等。
d) 网络通信与集成 (Networking & Integration)
- 创建 HTTP 请求 (HTTP Client):
- 功能:脚本可以发起 HTTP/HTTPS 请求(GET, POST, PUT, DELETE 等),与外部 Web 服务、RESTful API、云服务进行交互。
- 应用场景:
- 系统集成:与 MES、ERP、SCM 等企业系统对接,同步数据或触发业务流程。
- 调用第三方服务:获取天气信息、地图服务、支付接口、短信/邮件通知服务等。
- 数据上报:将数据推送到其他云平台或分析服务。
- 创建 MQTT Client (MQTT Client):
- 功能:脚本可以作为 MQTT 客户端,连接到指定的 MQTT Broker(可以是平台内置的,也可以是外部的),进行消息的发布(PUBLISH)和订阅(SUBSCRIBE)。
- 应用场景:
- 设备通信桥接:在不同协议或不同网络区域的设备间转发消息。
- 消息广播:向一组设备发送控制指令或配置更新。
- 集成其他 MQTT 系统:与使用 MQTT 协议的其他 IoT 平台或应用进行数据交换。
- 实现轻量级事件总线:利用 MQTT 的发布/订阅模型实现系统内部或跨系统的事件通知。
3. 系统优势总结
- 高度灵活:JS 脚本 + 丰富 API 的组合,几乎可以实现任何自定义逻辑。
- 强大的自动化能力:定时任务是实现无人值守自动化运维和业务流程的核心。
- 深度集成:通过 HTTP 和 MQTT,轻松打破信息孤岛,连接内外部系统。
- 数据驱动:从实时数据采集到趋势分析、事件报警,形成完整的数据闭环。
- 可扩展性强:基于脚本的架构便于功能扩展和业务迭代,无需修改平台核心代码。
- 降低开发成本:利用通用语言和标准化接口,减少专用开发工具和语言的学习成本。