EMERSON EV1000/EV2000变频器和MITSUBISH FX2 PLC
基于Modbus协议通讯的DEMO程序
1、硬件连接
2. 沟通方式
Modbus协议、ASCII格式、LRC校验;
主从模式:PLC为主,变频器为从;
波特率:19200bps(默认),可选;
数据格式:7-N-2(默认),无校验和,可选。
3. 程序模块
1.MAIN:主程序。
根据PLC输入端子的命令执行通讯命令。
2. P0:初始化子程序。
初始化通讯接口;添加数据帧头和帧尾;初始化从机地址。
3、P1:分配变频器正转指令,调用LRC校验子程序,将要发送的ASCII码串放入发送缓冲区。
4、P2:变频器反转命令分配,调用LRC 验证子程序,将要发送的ASCII 码串放入发送缓冲区。
5、P3:分配变频器停机命令,调用LRC 校验子程序,将要发送的ASCII 码串放入发送缓冲区。
6、P4:写入变频器参数命令赋值,调用LRC校验子程序,将要发送的ASCII码串放入发送缓冲区。
7、P5:读取变频器参数命令赋值,调用LRC 校验子程序,将要发送的ASCII 码串放入发送缓冲区。
8. P6:LRC 验证子程序。
计算待发送字符串的LRC校验值,并将十六进制字符串转换为ASCII码。
9. P7:接收字符串验证子程序。根据接收到的字符串的特征,将接收到的ACSII码转换为16进制并进行LRC验证;将计算出的校验值与接收到的校验值进行比较。
10. P8:根据命令选择接收和发送字符串的长度。
4. 程序功能
X0001:正转运行(向控制命令字寄存器0x3200写入0x0187),Y000灯亮;
X0011:反向操作(向控制命令字寄存器0x3200写入0x018F),点亮X001;
X0021:停止(向控制命令字寄存器0x3200写入0x0186),指示灯熄灭;
X0031:改写单个参数(如设定频率,功能码地址可选),掉电后不保存;
X0041:读取参数(如设定频率、状态字等,功能码地址和个数可选)。
如果校准错误,Y007 会亮起。如果校准正确,灯就会熄灭。
1、本DEMO程序仅供用户参考程序,请根据实际应用进行修改;
2. 可以改变通讯波特率和数据格式。请参考FX PLC的相关手册,在“P0”处修改(DEMO程序中默认为“19200bps,7个数据位,2个停止位,无奇偶校验,无帧头帧尾,控制线普通模式1” ,未添加和校验码,无协议,协议格式1"格式);
3、从机(变频器)地址可由用户在“P0”中设置(DEMO 程序中默认为“05”)。
4、“正转”、“反转”、“停止”通过写入控制字来实现。用户可以根据实际情况修改“P1”、“P2”和“P3”中的内容(DEMO程序中这三个控制字的内容对应的情况分别是“0x0187”、“0x018F”和“0x0186”)分别);
5、“改写单个参数”时,要写入的变频器功能码的地址和内容由用户确定。请根据需要在“P5”中修改(通过DEMO程序中的“写”命令设置工作频率,F0.02=50.00Hz);
6、“读参数”时,要读取的变频器功能码的地址和字节数由用户确定。请根据需要在“P6”中修改(DEMO程序读取的是F0.02开头的4个单元的内容,即F0.02F0.05)。
随附的:
错误帧处理方法:PLC发送命令后,接收返回的命令并进行LRC校验,将得到的LRC校验码与接收到的校验码进行比较。如果两者相等,则说明通讯正常;如果不相等,则说明通信出现错误。 0.3s后将重新发送最后一个请求命令,直到接收到的字符串的校验码正确为止。这样做是为了保证PLC发出的指令(如正反转、停机等)能够正常发送到变频器。