4. PLC 与称重模块通讯:接线方式、协议基础与数据读取

在包装作业称重校验系统中,PLC 与称重模块的通讯是实现实时重量采集与控制的核心环节。本节将围绕三种主流接线方式、Modbus RTU 协议基础以及典型数据读取示例展开,帮助学员掌握从物理层到应用层的完整通讯链路。

4.1 PLC 与称重模块的接线方式

根据称重模块的输出信号类型,PLC 的接线方式主要分为模拟量输入和数字量通讯两大类。下表对比了两种方式的典型特征与适用场景:

接线方式 信号类型 典型接口 传输距离 抗干扰能力 适用场景
模拟量输入 4-20mA / 0-10V PLC AI 模块 ≤ 200m 中等(需屏蔽线) 单点称重、低成本改造
数字量通讯 RS-485 / RS-232 PLC 串口 / 通讯模块 ≤ 1200m (RS-485) 高(差分信号) 多点称重、高速采集

4.1.1 模拟量接线方式

模拟量称重模块(如称重变送器)将传感器信号转换为 4-20mA 或 0-10V 标准信号,直接接入 PLC 的模拟量输入模块。接线时需注意:

  • 屏蔽层单端接地:避免地环路干扰。
  • 电源隔离:称重模块与 PLC 使用独立 DC 24V 电源。
  • 量程匹配:PLC 模拟量模块的输入范围必须与变送器输出一致。

4.1.2 数字量通讯接线方式(RS-485)

数字量通讯方式下,称重模块作为 Modbus 从站,PLC 作为主站通过 RS-485 总线读取重量数据。典型接线要点:

  • A/B 线:正负差分信号线,需双绞屏蔽。
  • 终端电阻:总线两端各并联 120Ω 电阻,抑制信号反射。
  • 偏置电阻:在总线空闲时保持 A 高 B 低,防止误触发。
  • 接地:屏蔽层单端接大地,模块电源负极共地。
选型建议: 对于包装线多工位称重(≥4 台),优先采用 RS-485 数字通讯方式,可大幅减少 PLC 模拟量模块数量,且数据精度不受线损影响。

4.2 Modbus RTU 协议基础

Modbus RTU 是工业自动化领域最通用的串行通讯协议之一,采用主从架构。在称重校验系统中,PLC 通常作为主站,称重模块作为从站。以下为协议核心要素:

参数 说明 典型值
物理层 RS-485 半双工 9600 bps, 8, N, 1
帧结构 地址码 + 功能码 + 数据 + CRC 11 字节(典型)
功能码 03 读取保持寄存器 读取重量值
功能码 06 写单个寄存器 置零/去皮
数据格式 32 位浮点 / 16 位整数 IEEE 754 或 0.1g 分辨率

4.2.1 帧结构详解

Modbus RTU 帧以 3.5 字符静默时间开始和结束,帧内字节连续发送。以读取称重模块重量为例:

主站请求:01 03 00 00 00 02 C4 0B
从站响应:01 03 04 00 00 01 2C 7A 43
  • 01:从站地址(称重模块 ID)
  • 03:功能码(读取保持寄存器)
  • 00 00:起始寄存器地址(重量寄存器)
  • 00 02:读取寄存器数量(2 个 = 32 位)
  • C4 0B:CRC 校验(低字节在前)
  • 04:响应数据字节数
  • 00 00 01 2C:重量值(十六进制,300 十进制)
  • 7A 43:CRC 校验

4.3 数据读取示例:PLC 通过 Modbus RTU 读取称重值

以下以西门子 S7-1200 PLC 为例,演示通过 Modbus_Comm_Load 和 Modbus_Master 指令读取称重模块重量值的完整流程。

4.3.1 硬件组态与参数配置

  1. 在 TIA Portal 中添加 CM1241 RS-485 通讯模块。
  2. 设置波特率 9600、数据位 8、无校验、停止位 1。
  3. 在 OB1 中调用 Modbus_Comm_Load 配置端口。
  4. 调用 Modbus_Master 发送请求并接收响应。

4.3.2 梯形图代码示例

// 主程序 OB1 中调用
// 配置端口
"Modbus_Comm_Load_DB"(
    PORT := 269,          // CM1241 硬件标识符
    BAUD := 9600,
    PARITY := 0,          // 0=无校验
    FLOW_CTRL := 0,
    RTS_ON_DLY := 0,
    RTS_OFF_DLY := 0,
    RESP_TO := 1000,      // 超时 1s
    DONE => "CommDone",
    ERROR => "CommErr",
    STATUS => "CommStatus"
);

// 读取称重值(每 500ms 执行一次)
"Modbus_Master_DB"(
    EN := "Cycle_500ms",
    MB_ADDR := 1,         // 称重模块地址
    MODE := 0,            // 0=读取
    DATA_ADDR := 40001,   // 保持寄存器起始地址
    DATA_LEN := 2,        // 读取 2 个字(32 位)
    DATA_PTR := "WeightRaw", // 指向 DB 中的数组
    DONE => "ReadDone",
    ERROR => "ReadErr",
    STATUS => "ReadStatus"
);

4.3.3 数据解析与工程单位转换

称重模块返回的原始数据通常为 32 位整数或浮点数。以 32 位整数为例,假设分辨率为 0.1g:

// 将两个 16 位寄存器合并为 32 位整数
WeightInt := "WeightRaw"[1] * 65536 + "WeightRaw"[2];
// 转换为实际重量(单位:g)
Weight_g := WeightInt * 0.1;
常见问题排查:
  • 通讯超时:检查从站地址、波特率、校验位是否匹配;确认终端电阻已接入。
  • 数据异常:验证寄存器地址是否正确(部分模块地址从 0 或 1 开始)。
  • CRC 错误:检查线缆屏蔽与接地,避免强电磁干扰。

4.4 接线与通讯架构总览

下图展示了 PLC 与称重模块之间的典型接线与通讯架构,涵盖模拟量与数字量两种路径:

PLC 与称重模块接线与通讯架构 PLC 与称重模块接线与通讯架构 称重传感器 mV 信号 称重变送器 4-20mA / 0-10V 称重模块 RS-485 / Modbus 模拟量 数字量 PLC 主站 S7-1200 / 其他品牌 AI 模块 RS-485 / Modbus RTU HMI / 上位机 监控与数据记录 以太网 / Profinet 说明:模拟量路径适用于单点低成本场景;数字量路径支持多站组网、远距离传输,推荐用于包装线多工位称重校验。

4.5 模拟量 vs 数字量:关键对比总结

对比维度 模拟量(4-20mA) 数字量(Modbus RTU)
接线复杂度 每台称重模块需独立 3 芯屏蔽线 总线拓扑,所有模块共用 2 芯双绞线
数据精度 受线损、变送器精度影响(通常 0.1% FS) 数字传输无衰减,精度取决于模块 ADC(0.01% FS)
扩展性 每增加 1 台需增加 1 个 AI 通道 总线可挂载 32 台(RS-485),仅需增加从站地址
故障诊断 断线检测有限(需 4-20mA 下限判断) 通讯超时、CRC 错误、从站无应答均可诊断
典型成本 变送器 + AI 模块,单点成本较低 称重模块 + 通讯模块,多点成本优势明显
工程注意: 无论采用哪种接线方式,称重模块的电源必须与 PLC 电源隔离,避免大功率设备启停时产生的浪涌损坏模块。建议使用隔离 DC-DC 模块或独立开关电源供电。