第28章:工业物联网应用实战

工厂里的设备(车床、机械臂)通常使用古老的工业协议(Modbus, Profibus),无法直接上网。工业物联网 (IIoT) 的核心任务就是打破“信息孤岛”。

28.1 场景描述

我们要监控一台数控机床的运行状态:

  • 采集数据:主轴转速、工作电压、故障代码。
  • 数据源:西门子 S7-200 SMART PLC。
  • 通信接口:RS485 (Modbus RTU)。

28.2 边缘网关开发

我们需要一个“翻译官”(边缘网关),一边通过 RS485 读 PLC,一边通过以太网发 MQTT。

  • 硬件:工业级树莓派 (Revolution Pi) 或带有 RS485 接口的 Linux 盒子。
  • 软件Node-RED。可视化流式编程工具,特别适合协议转换。

28.3 Node-RED 实战

  1. Modbus Read 节点

    • 配置串口 /dev/ttyUSB0,波特率 9600。
    • 功能码 FC3 (Read Holding Registers)
    • 地址 40001 (假设是转速)。
    • 周期 1s
  2. Function 节点 (数据解析):

    // msg.payload 是一个数组 [0x05, 0xDC] (1500转)
    var rpm = msg.payload[0] * 256 + msg.payload[1];
    
    // 构造 MQTT 消息
    msg.payload = {
        "machine_id": "CNC_001",
        "rpm": rpm,
        "ts": Date.now()
    };
    return msg;
  3. MQTT Out 节点

    • 连接到公司内部的 EMQ X Broker。
    • Topic: factory/cnc/001/status.

28.4 数据存储与展示

使用 TimescaleDB (基于 PostgreSQL 的时序库) + Grafana

  • OEE 分析 (Overall Equipment Effectiveness):
    • 通过分析转速是否为 0,计算机床的开动率
    • 通过故障代码统计,计算**平均故障间隔时间 (MTBF)**。

28.5 工业级可靠性设计

工厂电磁环境复杂,干扰严重。

  • 硬件隔离:RS485 接口必须带光耦隔离。
  • 软件看门狗:Node-RED 进程挂掉后自动重启。
  • 断点续传:网关断网时,将数据缓存到本地 SQLite,网络恢复后补传。

至此,第七部分“实战项目”已全部完成。我们已经掌握了从家庭到工厂的各类应用开发。最后一部分,我们将讨论项目落地后的运维与优化

« 上一篇 智能农业解决方案 下一篇 » 设备部署策略