4. 工业通信基础与选型

在Altivar变频器与Modicon控制器的协同系统中,通信协议不是“能通就行”的附属选项,而是决定控制周期、同步精度、诊断能力和布线成本的底层约束。同一个Modicon M580或M340控制器,可能同时面对一条Modbus RTU串行链路、一条Modbus TCP设备网、一条EtherNet/IP控制网,以及若干台通过CANopen连接的Altivar变频器。选型时如果只看“支持什么协议”,很容易在后期遇到刷新周期不足、多轴同步偏差或诊断信息缺失的问题。因此,本节从协议机制出发,结合Altivar与Modicon的实际对象,说明四种协议各自适合放在系统的哪个位置。

四种协议的机制差异

Modbus RTU是主从式串行协议,运行在RS485物理层上,采用请求—应答模式。主站发出功能码请求,从站返回数据,从站在未被询问时不会主动发送。它的报文紧凑,典型帧由地址、功能码、数据和CRC校验组成。以读取Altivar的保持寄存器为例,主站发送功能码03,从站返回寄存器内容。RTU的优点是实现简单、抗干扰能力较好、成本低;缺点是主站轮询所有从站,总线上任何时刻只有一个请求在传输,节点数越多、寄存器越多,刷新周期越长。

Modbus TCP把Modbus报文封装在TCP/IP之上,使用502端口,去掉了CRC校验,改由TCP保证可靠性。它保留了Modbus的功能码语义,因此从Modbus RTU迁移到Modbus TCP时,寄存器地址和功能码基本不变,主要变化是增加MBAP报文头。Modbus TCP支持多客户端并发,但本质上仍是请求—应答,实时性取决于网络负载和扫描方式,适合监控层、设备层的数据采集,而不是高精度同步控制。

EtherNet/IP基于标准以太网和TCP/IP,在应用层使用CIP(Common Industrial Protocol)。它同时支持显式报文和隐式报文:显式报文用于配置和诊断,隐式报文用于周期性I/O数据交换。隐式报文通过UDP传输,采用生产者—消费者模型,数据变化时主动发送,而不是等待轮询。这一机制使EtherNet/IP在实时性和多节点同步方面明显优于Modbus TCP,适合作为Modicon与Altivar之间的控制网络。

CANopen基于CAN总线,采用生产者—消费者和主从混合模型,使用PDO(过程数据对象)传输实时数据,SDO(服务数据对象)传输参数。CANopen的报文优先级由11位标识符决定,标识符越小优先级越高。它天然支持多主站和广播,节点间同步可通过SYNC对象实现。在Altivar变频器上,CANopen常用于多轴协同、速度或转矩给定,以及快速状态反馈。

Altivar 与 Modicon 协同中的四类通信链路定位 监控 / 管理层 SCADA / 上位机 数据采集、趋势、报警 Modbus TCP 502端口 / 请求-应答 非实时优先 刷新周期 100ms~1s 控制 / 设备层 Modicon M580/M340 PLC 扫描周期 10~50ms EtherNet/IP 隐式报文 / 生产者-消费者 实时控制 RPI 2~20ms 现场 / 驱动层 Altivar 变频器 速度/转矩/状态字 CANopen PDO / SYNC / 1Mbps 多轴协同 同步偏差 <1ms 串行 / 辅助层 Modbus RTU RS485 / 主从轮询 Altivar 串行选件卡 参数读写 / 低速监控 成本优先 刷新周期 50~500ms 越靠上层:数据量大、实时性要求低;越靠下层:实时性要求高、数据量小

Altivar与Modicon协同中的选型判断

选型的第一步是明确数据在系统中的位置。如果只是把Altivar的运行电流、频率、故障码送到SCADA做趋势和报警,Modbus TCP或Modbus RTU就足够。Modbus TCP通过以太网连接,布线简单,一个M580的以太网端口可以同时服务多台Altivar和上位机;Modbus RTU则适合分散、距离较远、只需要少量寄存器的场合,例如一台M340通过RS485连接三台Altivar,每台只读取状态字和输出频率。

如果Altivar参与生产节拍控制,例如包装线上的多台变频器需要按同一速度基准运行,或者需要根据PLC的实时指令快速改变转矩限幅,那么EtherNet/IP或CANopen更合适。EtherNet/IP的隐式报文以RPI(Requested Packet Interval)为周期发送,典型值可设为2ms、4ms、8ms或16ms。RPI越小,控制越及时,但网络负载和CPU负荷越高。在M580与Altivar的EtherNet/IP连接中,通常把RPI设为4ms或8ms,同时把Altivar的快速停止、速度给定和状态字映射到隐式报文中。

CANopen的优势在于多轴同步和低成本。CAN总线的仲裁机制使高优先级报文可以立即占用总线,SYNC对象可以周期性地触发多个从站同时锁存输入或输出。对于需要多台Altivar同步启停、同步速度给定的场合,CANopen的同步偏差通常可以控制在1ms以内。但CANopen的带宽有限,1Mbps时总线长度约40米,500kbps时约100米,节点数和数据量都需要控制。如果每台Altivar需要传输大量参数或诊断数据,CANopen会显得吃力,此时应把实时控制交给EtherNet/IP,把参数和诊断交给Modbus TCP或RTU。

性能对比与典型参数

对比项 Modbus RTU Modbus TCP EtherNet/IP CANopen
物理层 RS485 以太网 以太网 CAN
通信模型 主从轮询 客户端/服务器 生产者/消费者 生产者/消费者+主从
典型刷新周期 50~500ms 100ms~1s 2~20ms 1~10ms
多轴同步能力 弱 弱 较强 强
典型节点数 ≤32 受交换机限制 受交换机限制 ≤127
Altivar典型用途 参数读写、低速监控 数据采集、远程诊断 实时速度/转矩控制 多轴同步、快速状态

表中数据为工程选型中的典型范围,实际值取决于波特率、网络负载、PLC扫描周期和Altivar的通信选件。例如Modbus RTU在19200bps下,读取一台Altivar的10个寄存器大约需要20~30ms,如果总线上有8台从站,轮询一遍约200ms。EtherNet/IP在RPI=4ms、16台Altivar的情况下,网络负载率需要计算,通常建议控制在30%以下。CANopen在1Mbps、8台从站、每台2个PDO的情况下,总线负载率约20%~30%,仍有余量。

选型决策与配置要点

实际选型可以按以下顺序判断:第一,数据是否需要参与实时控制。如果只是监视,优先Modbus TCP或RTU;如果需要控制,进入下一步。第二,控制周期要求是多少。如果要求小于10ms且节点数不多,优先CANopen;如果要求10~20ms且节点较多、数据量较大,优先EtherNet/IP。第三,现场布线和成本约束。已有以太网基础设施时,EtherNet/IP和Modbus TCP可以共用交换机;只有RS485布线时,Modbus RTU成本最低;多轴同步且距离较短时,CANopen最经济。

在Modicon侧配置EtherNet/IP时,需要在Unity Pro或Control Expert中添加Altivar的EDS文件,建立连接并设置RPI和连接类型。Altivar侧需要设置通信选件卡的IP地址、子网掩码,以及隐式报文的输入输出长度。例如,将Altivar的ETA状态字映射到输入区的前两个字节,将CMD命令字映射到输出区的前两个字节,速度给定映射到接下来的两个字节。配置完成后,通过观察PLC的输入区数据是否随Altivar状态变化,以及Altivar是否响应PLC的速度给定,来判断通信是否正常。

在Modbus RTU网络中,如果Altivar的通信选件卡地址与PLC中配置的从站地址不一致,会出现超时无响应。排查时先用示波器或串口调试工具确认总线上的请求帧地址,再核对Altivar的COM菜单中地址参数。Modbus TCP则要确认502端口未被防火墙拦截,以及MBAP头中的单元标识符是否与Altivar的配置匹配。

对于同时使用多种协议的系统,建议按层次划分:EtherNet/IP或CANopen负责实时控制,Modbus TCP负责数据采集和远程诊断,Modbus RTU负责分散的辅助设备。这样既能保证控制性能,又能降低单一网络的负载和故障影响范围。选型不是选“最好的协议”,而是选“最适合当前数据位置和实时性要求的协议”。