4. PLC通信模块组态与串口参数设置

在温室控制柜里,PLC与变频器之间能否“说上话”,取决于两件事:一是PLC侧通信模块在硬件组态中是否被正确识别并分配了通信资源;二是双方串口参数是否严格一致。很多现场“接上线却读不到数据”的问题,根源并不在程序逻辑,而在组态与参数这一层。本节围绕PLC侧通信模块硬件组态、串口参数匹配、通信端口初始化编程三个环节展开,并以温室控制柜内PLC与变频器联机准备为落点。

一、通信模块硬件组态:先让PLC“认得”这块模块

以常见的西门子S7-200 SMART配合RS485通信模块(如SB CM01信号板)为例,硬件组态的核心是让CPU知道模块的存在、类型和占用的通信资源。在STEP 7-Micro/WIN SMART的“系统块”中,需要确认信号板位置已选择“RS485/RS232”类型,并设定其通信端口号。若使用S7-1200配合CM 1241 RS422/485通信模块,则在TIA Portal的“设备视图”中把模块拖入对应槽位,系统自动分配硬件标识符与端口号,例如CM 1241的接口标识符可能为269,端口号在模块属性中可查。

组态时有三点必须核对清楚:第一,模块型号与实际安装的硬件一致,SB CM01与CM 1241的编程接口完全不同;第二,端口号(如Port 0、Port 1)要与后续程序中的端口参数对应,不能凭记忆填写;第三,若模块支持终端电阻和偏置,需在组态或接线中明确启用方式。组态完成后编译并下载系统块,PLC重新上电后模块才真正生效。此时可用编程软件的“在线与诊断”查看模块状态,确认无硬件组态错误。

温室现场常见做法:把PLC的RS485端口专用于变频器通信,HMI走以太网口,避免同一端口被Modbus RTU与其它协议争用。组态阶段就应把这一分工固定下来。

二、串口参数匹配:四个参数必须逐项对齐

RS485只是电气层,真正决定帧能否被正确解析的是串口参数:波特率、数据位、停止位、校验方式。PLC侧与变频器侧必须完全一致,任何一项不同都会导致帧错误或数据错位。以台达VFD-M或汇川MD系列变频器为例,其通信参数通常由参数组设定,如波特率选择9600或19200 bps,数据格式选择8-N-1(8数据位、无校验、1停止位)或8-E-1(偶校验)。PLC侧则在初始化指令中写入相同配置。

下表给出一组教学示例参数,用于说明匹配关系,实际项目应以变频器说明书和现场电磁环境为准:

参数项PLC侧设置变频器侧设置不匹配时的典型现象
波特率9600 bps9600 bps完全无响应或大量帧错误
数据位88字符错位、校验失败
停止位11帧边界判断错误
校验无校验(None)无校验(None)偶/无校验混用时数据被拒收
从站地址11地址不符则无应答

需要特别说明:Modbus RTU帧本身带CRC校验,这与串口“校验位”是两个不同层次的概念。串口校验位属于字符级校验,CRC属于帧级校验,二者不能互相替代。现场若把变频器设为偶校验而PLC设为无校验,即使CRC正确,字符层也会被判错。因此调试时应先统一串口参数,再排查协议层。

三、通信端口初始化编程:把参数写进程序

参数不能只停留在组态界面,还要在程序中完成端口初始化。以S7-200 SMART的Modbus RTU主站为例,使用MBUS_CTRL指令初始化端口,关键输入包括Mode(1为启用Modbus)、Baud(波特率)、Parity(0无校验、1奇校验、2偶校验)、Port(端口号)、Timeout(超时毫秒数)。示例程序段如下:

// 每个扫描周期调用,EN 常通
MBUS_CTRL
  Mode   := 1        // 启用 Modbus 主站
  Baud   := 9600     // 与变频器一致
  Parity := 0        // 0=无校验
  Port   := 0        // 对应组态端口
  Timeout:= 1000     // 1 s 超时
  Done   => M0.0
  Error  => MB_Err   // 0 表示初始化成功

初始化完成后,Done位为1且Error为0,才说明端口已按设定参数打开。若Error返回非零值,应优先检查端口号是否与硬件组态一致、波特率是否被其它指令占用。随后用MBUS_MSG指令发起读写,例如读取变频器运行频率的保持寄存器。温室场景中常读写的对象包括:运行状态字、输出频率、设定频率、故障代码。建议先只读一个寄存器验证链路,再扩展到多寄存器批量读取,避免一次失败难以定位。

PLC 与变频器联机准备:组态—参数—初始化—验证 PLC 侧 CPU + RS485 通信模块 系统块组态:端口号 / 模块类型 串口参数匹配 波特率 9600 bps 数据位 8 · 停止位 1 校验 None · 从站地址 1 四项逐项一致,缺一不可 变频器侧 通信参数组:波特率 / 格式 从站地址 / 协议选择 Modbus 通信端口初始化(MBUS_CTRL) Mode=1 · Baud=9600 · Parity=0 Port=0 · Timeout=1000 ms 判断:Done=1 且 Error=0 才算成功 联机验证与判读 先读 1 个寄存器(如输出频率) Error=0 且数据合理 → 链路通 超时/帧错 → 回查参数与接线 现场联机准备要点 ① 组态端口号与程序 Port 参数一致 ② 串口四项参数与变频器逐项对齐 ③ 终端电阻与屏蔽接地到位 ④ 先单寄存器读通再扩展

四、温室控制柜内的联机准备与结果判读

把上述三步落到控制柜现场,联机准备应按“先静态、后动态”的顺序推进。静态检查包括:RS485的A/B线是否与变频器端子对应(不同厂家A/B命名可能相反,接反时表现为完全无应答,可对调验证);屏蔽层是否单端接地;总线两端终端电阻是否按规范投入;PLC与变频器是否共地良好。动态检查则是下载组态与初始化程序后,观察MBUS_CTRL的Done与Error,再用单寄存器读取验证。

判读时可按现象分层定位:若Error指示端口打开失败,问题在组态与端口号;若初始化成功但读写超时,优先怀疑波特率、校验、从站地址或A/B接反;若偶发帧错误,则考虑终端电阻、屏蔽接地与变频器载波干扰。温室环境湿度高、变频器与水泵启停频繁,通信线应远离动力线敷设,必要时降低波特率至9600 bps以提高抗扰裕度。只有单寄存器读写稳定后,才把运行频率、状态字、故障码等对象纳入轮询,联机准备才算真正完成。