信捷XC PLC与易能变频器设计

(一)Modbus RTU协议

  • 原理
  • Modbus RTU是一种广泛应用于工业控制领域的串行通讯协议,具有简单、可靠、成本低等优点。它采用二进制数据表示,以CRC校验确保数据的完整性。在信捷XC PLC与易能变频器的群控系统中,使用Modbus RTU协议可以方便地实现PLC与多台变频器之间的数据交换。
  • 该协议的数据传输格式包括从站地址、功能码、数据内容和CRC校验码,通常通过RS-485接口进行传输。

三、硬件连接

(一)PLC与变频器的硬件连接

  • RS-485连接
  • 将信捷XC PLC的RS-485接口(如COM2)与易能变频器的RS-485接口连接。通常,需要将PLC的A线与变频器的A线相连,B线与变频器的B线相连,同时确保所有设备的GND(地)连接在一起。
  • 在连接时,注意使用屏蔽双绞线,以减少电磁干扰,提高通讯的稳定性。

四、PLC程序设计

以下是使用信捷XC PLC的梯形图(LD)语言编写的通讯程序示例,假设我们要控制3台易能变频器。

(一)初始化通讯参数

|--[ MOV 1 D8120 ]--|  // 设置通讯参数,使PLC的COM2口为9600bps,8位数据位,无校验,1位停止位
|  |--[ K0 ]--|  // 选择COM2口
|  |--[ K6 ]--|  // 对应9600bps,8N1的通讯参数设置
|--[ MOV K1 D8121 ]--|  // 设置超时时间,这里设置为1秒
|--[ MOV K3 D8129 ]--|  // 设置通讯等待时间,这里设置为3毫秒
  • 注释
  • D8120 是信捷XC PLC中用于设置通讯参数的特殊数据寄存器,通过 MOV 指令将参数值 K6 (对应9600bps,8N1)写入该寄存器,选择的通讯口为 K0(COM2)。
  • D8121 用于设置超时时间,这里设置为1秒,以确保通讯在超时时间内完成,避免程序长时间等待。
  • D8129 用于设置通讯等待时间,设置为3毫秒,为PLC发送数据和接收数据之间的等待时间。

(二)发送控制命令

|--[ ]--|  // 启动按钮
|  |--[ MOV K1 D0 ]--|  // 将从站地址1(第一台变频器)存储在D0中
|  |--[ MOV H06 D1 ]--|  // 功能码06(写单个寄存器)存储在D1中
|  |--[ MOV K2000 D2 ]--|  // 要写入的寄存器地址(如设定频率的地址)存储在D2中
|  |--[ MOV K3000 D3 ]--|  // 设定频率的值(3000对应实际频率,根据变频器参数设置)存储在D3中
|  |--[ RS D0 K4 D100 K4 ]--|  // 调用RS指令进行通讯
|  |  |--[ D0 ]--|  // 从站地址
|  |  |--[ K4 ]--|  // 发送数据长度(4个字)
|  |  |--[ D100 ]--|  // 发送数据的存储起始地址(D100开始存储发送数据)
|  |  |--[ K4 ]--|  // 接收数据长度(这里暂时不接收数据)
  • 注释
  • 当按下启动按钮时,将从站地址 K1 存储在 D0 中,表示操作第一台变频器。
  • H06 存储在 D1 中,代表使用功能码06,用于写单个寄存器操作。
  • K2000 存储在 D2 中,为要写入的寄存器地址,该地址对应易能变频器中的设定频率寄存器。
  • K3000 存储在 D3 中,为要写入的频率值,根据易能变频器的参数设置,可能需要进行转换,例如该值对应实际频率30Hz。
  • RS 指令用于进行数据的发送和接收,D0 为从站地址,K4 表示发送数据长度为4个字(从 D100 开始存储),接收数据长度暂时设为 K4 但不接收数据。

(三)读取变频器状态

|--[ ]--|  // 读取按钮
|  |--[ MOV K1 D0 ]--|  // 从站地址1(第一台变频器)存储在D0中
|  |--[ MOV H03 D1 ]--|  // 功能码03(读多个寄存器)存储在D1中
|  |--[ MOV K3000 D2 ]--|  // 要读取的起始寄存器地址存储在D2中
|  |--[ MOV K2 D3 ]--|  // 读取的寄存器数量(这里读取2个寄存器)存储在D3中
|  |--[ RS D0 K6 D100 K4 ]--|  // 调用RS指令进行通讯
|  |  |--[ D0 ]--|  // 从站地址
|  |  |--[ K6 ]--|  // 发送数据长度(6个字)
|  |  |--[ D100 ]--|  // 发送数据的存储起始地址(D100开始存储发送数据)
|  |  |--[ K4 ]--|  // 接收数据长度(这里接收4个字)
|  |--[ MOV D104 D200 ]--|  // 将接收到的第一个寄存器数据存储在D200中
|  |--[ MOV D105 D201 ]--|  // 将接收到的第二个寄存器数据存储在D201中
  • 注释
  • 当按下读取按钮时,进行读操作,将从站地址 K1 存储在 D0 中。
  • H03 存储在 D1 中,使用功能码03进行读多个寄存器操作。
  • K3000 存储在 D2 中,为起始寄存器地址,K2 存储在 D3 中,表示读取2个寄存器的数据。
  • RS 指令进行通讯,发送数据长度为 K6 个字,接收数据长度为 K4 个字,接收的数据存储在 D100 开始的地址中。
  • 最后使用 MOV 指令将接收到的数据存储到 D200D201 中,以便后续处理和显示。

(四)群控多台变频器

对于群控多台变频器,可以使用循环和数组来简化程序。以下是一个结构化文本(ST)示例:

PROGRAM Group_Control
VAR
    i : INT := 1;
    Slave_Addresses : ARRAY[1..3] OF INT := [1, 2, 3]; // 从站地址数组,对应3台变频器
    Set_Frequencies : ARRAY[1..3] OF INT := [3000, 3500, 4000]; // 设定频率数组
    Read_Addresses : ARRAY[1..3] OF INT := [3000, 3000, 3000]; // 读取地址数组
    Read_Results : ARRAY[1..3] OF INT := [0, 0, 0]; // 读取结果数组
END_VAR

FOR i := 1 TO 3 DO
    // 发送设定频率
    MOV Slave_Addresses[i] D0;
    MOV H06 D1;
    MOV K2000 D2;
    MOV Set_Frequencies[i] D3;
    RS D0 K4 D100 K4;

    // 读取状态
    MOV Slave_Addresses[i] D0;
    MOV H03 D1;
    MOV Read_Addresses[i] D2;
    MOV K2 D3;
    RS D0 K6 D100 K4;
    MOV D104 Read_Results[i];
END_FOR;
  • 注释
  • Slave_Addresses 数组存储3台变频器的从站地址。
  • Set_Frequencies 数组存储3台变频器的设定频率。
  • Read_Addresses 数组存储要读取的起始寄存器地址,这里假设都读取相同的状态寄存器。
  • Read_Results 数组存储读取的结果。
  • 使用 FOR 循环,依次对每台变频器进行设定频率的发送和状态的读取操作,简化了程序的编写和维护。

五、变频器参数设置

(一)易能变频器的基本参数设置

  • 通讯参数
  • 设置易能变频器的通讯地址(如第一台设置为1,第二台设置为2,以此类推),确保与PLC程序中的从站地址对应。
  • 设置波特率为9600bps,数据位为8位,无校验,停止位为1位,与PLC的通讯参数一致。
  • 启用变频器的Modbus RTU通讯功能。

(二)寄存器地址映射

  • 重要寄存器
  • 了解易能变频器中与控制和状态相关的寄存器地址,如设定频率、输出频率、电流、电压等寄存器的地址。例如,设定频率的寄存器地址可能为 H07D0(十六进制),在PLC程序中使用十进制表示为 2000

六、调试与优化

(一)通讯故障排除

  • 检查硬件连接
  • 首先检查PLC和变频器之间的RS-485连接是否正确,包括A、B线的连接和接地是否良好。
  • 使用示波器或通讯测试仪检查RS-485信号的质量,确保信号正常传输。

(二)程序调试

  • 监控寄存器值
  • 在信捷XC PLC的编程软件中,使用在线监控功能,观察发送和接收数据寄存器的值,确保数据的发送和接收正确。
  • 检查 RS 指令的执行状态,判断是否出现通讯错误,如超时、校验错误等。

(三)优化程序性能

  • 通讯频率
  • 根据实际需求,合理设置通讯频率,避免过于频繁的通讯导致系统资源浪费或通讯冲突。

通过信捷XC PLC与易能变频器的结合,并采用Modbus RTU协议,可以实现高效的群控系统。本文提供的带注释的通讯程序详细展示了从PLC程序设计到变频器参数设置的整个过程,包括初始化通讯参数、发送控制命令、读取变频器状态和群控多台变频器等操作。在实际应用中,需要根据具体的系统需求和设备参数,对程序和参数进行调整和优化,以确保群控系统的稳定、高效运行。