信捷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
指令将接收到的数据存储到D200
和D201
中,以便后续处理和显示。
(四)群控多台变频器
对于群控多台变频器,可以使用循环和数组来简化程序。以下是一个结构化文本(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程序设计到变频器参数设置的整个过程,包括初始化通讯参数、发送控制命令、读取变频器状态和群控多台变频器等操作。在实际应用中,需要根据具体的系统需求和设备参数,对程序和参数进行调整和优化,以确保群控系统的稳定、高效运行。