3. 工业网络基础与Modicon协议栈
在Modicon(现属施耐德电气)的自动化体系中,从串口到以太网、从Modbus到CANopen,协议栈的层次关系决定了设备如何接入、数据如何流动、以及工程师在配置时应该关注哪些参数。理解这些协议在Modicon平台上的支持情况,是后续进行现场设备集成和故障排查的基础。
物理层:RS-232与RS-485的定位差异
RS-232和RS-485是两种常见的串行物理层标准,它们本身不定义数据帧格式,只规定电气特性和连接方式。RS-232采用单端信号,逻辑1为负电压(约-3V至-15V),逻辑0为正电压(约+3V至+15V),传输距离通常不超过15米,适合点对点连接,常见于编程口、调试口或短距离连接一台仪表。RS-485采用差分信号,以A、B两根线之间的电压差判断逻辑状态,抗共模干扰能力强,传输距离可达1200米,支持多点总线结构,一条总线上可挂接32个标准负载节点(使用中继器或低负载收发器可扩展至128个以上)。
在Modicon产品中,RS-232通常出现在PLC的编程端口(如M340的USB/串口编程口)或通信模块的调试通道上;RS-485则广泛用于Modbus RTU网络,例如M340的P342 030模块、M221的本体串口、以及各类变频器、智能仪表、远程IO的通信接口。实际接线时需要注意:RS-485总线两端必须接终端电阻(通常为120Ω),A接A、B接B,屏蔽层单端接地,避免形成地环路。
Modbus RTU:串行链路上的主从轮询
Modbus RTU是运行在RS-485(或RS-232)之上的应用层协议,采用主从架构。主站发起请求,从站响应,从站之间不会主动通信。RTU模式使用二进制编码,帧结构为:地址(1字节)+功能码(1字节)+数据(N字节)+CRC校验(2字节)。常见的功能码包括03(读保持寄存器)、04(读输入寄存器)、06(写单个寄存器)、16(写多个寄存器)。
在Modicon中,Modbus RTU的主站功能通常由PLC的串口或通信模块实现,从站功能则由分布式IO、变频器、软起动器等设备提供。以M340为例,使用P342 030模块配置Modbus RTU主站时,需要在Unity Pro(或Control Expert)中设置波特率(如9600、19200、38400)、数据位(8)、停止位(1)、校验方式(无校验/奇校验/偶校验),并定义轮询表。轮询表本质上是一组请求描述,每条请求包含从站地址、功能码、起始寄存器地址、寄存器数量和超时时间。
一个典型的轮询周期示例:主站依次向地址1的变频器读取输出频率(寄存器地址3200,1个字),向地址2的智能仪表读取三相电压(寄存器地址0,3个字),向地址3的远程IO读取8路DI状态(寄存器地址0,1个字)。若某从站超时未响应,主站记录通信错误并继续轮询下一站,避免整个网络阻塞。判断通信是否正常,可以观察模块上的COM指示灯闪烁状态,或在程序中监控通信错误计数器。
Modbus TCP:以太网上的Modbus
Modbus TCP将Modbus协议封装在TCP/IP之上,使用502端口。与RTU不同,Modbus TCP没有CRC校验,因为TCP本身提供可靠传输;帧结构中增加了MBAP报文头(7字节),包含事务标识、协议标识、长度和单元标识。单元标识在网关场景中用于区分背后的串行从站。
Modicon的以太网PLC(如M340、M580、M221)均支持Modbus TCP。M580作为主站时,可以通过DTM或设备扫描方式添加Modbus TCP从站设备,设置IP地址和单元ID。例如,将一台支持Modbus TCP的变频器IP设为192.168.1.10,单元ID为1,在M580的DIO扫描器中添加该设备后,即可通过READ_VAR和WRITE_VAR功能块读写其寄存器。Modbus TCP的优势在于传输速率高、可跨网段路由,适合连接上位机SCADA、HMI和以太网仪表。
EtherNet/IP:面向工业对象的协议
EtherNet/IP基于TCP/IP和UDP/IP,采用CIP(Common Industrial Protocol)作为应用层。它区分显式消息(TCP,用于配置和诊断)和隐式消息(UDP,用于实时IO数据交换)。在Modicon中,M580和M340通过以太网模块支持EtherNet/IP扫描器功能,可以连接Rockwell、施耐德及其他厂商的EtherNet/IP从站设备,如变频器、远程IO、编码器等。
配置EtherNet/IP时,需要导入从站的EDS文件,设置IP地址、输入输出数据长度和RPI(请求数据包间隔)。例如,连接一台EtherNet/IP远程IO模块,输入数据为8字节,输出数据为4字节,RPI设为10ms,则PLC每10ms通过UDP交换一次IO数据。与Modbus TCP的轮询方式不同,EtherNet/IP的隐式消息采用生产者/消费者模型,数据变化时主动发送,实时性更好。
CANopen:面向运动与分布式控制的现场总线
CANopen基于CAN总线,采用对象字典(Object Dictionary)描述设备参数,通过PDO(过程数据对象)传输实时数据,通过SDO(服务数据对象)读写配置参数。在Modicon体系中,CANopen的支持主要体现在M340的CANopen通信模块(如PMCO)和部分运动控制场景中。CANopen网络需要设置节点ID和波特率(如125k、250k、500k、1M),主站通过NMT(网络管理)报文管理从站状态。
例如,使用M340的CANopen主站模块连接一台CANopen伺服驱动器,节点ID设为5,波特率500k。通过SDO配置驱动器的运行模式、加速度和减速度,通过PDO映射传输控制字和状态字。PDO传输周期可设为2ms或5ms,适合对同步性要求较高的多轴运动控制。判断CANopen通信是否正常,可以检查模块上的RUN和ERR指示灯,或读取NMT状态和心跳报文。
协议栈在Modicon中的支持关系
下图展示了从物理层到应用层,各协议在Modicon平台上的典型承载关系与支持设备。图中左侧为物理传输介质,中间为协议层次,右侧为Modicon中常见的支持载体,帮助读者建立“哪种协议跑在哪种物理层上、由哪些模块或端口支持”的整体认知。
选型与配置要点
在实际项目中,选择哪种协议取决于设备类型、距离、实时性要求和现有网络架构。如果现场只有串口仪表和变频器,RS-485+Modbus RTU是最经济的选择;如果需要连接上位机、多台PLC和以太网设备,Modbus TCP更合适;如果从站是Rockwell或支持EtherNet/IP的第三方设备,则需要使用EtherNet/IP扫描器;如果涉及多轴同步运动,CANopen的PDO机制能提供更确定的响应时间。
配置时需要注意几个关键点:Modbus RTU的轮询周期不能小于所有从站响应时间之和,否则会出现超时累积;Modbus TCP的单元ID在直连设备时通常设为1或255,经过网关时才需要区分;EtherNet/IP的RPI设置要与从站能力匹配,过小会导致网络负载过高;CANopen的波特率必须与所有节点一致,节点ID不能重复。这些参数在调试阶段可以通过模块指示灯、通信错误计数器和抓包工具进行验证。