三菱

注册

 

发新话题 回复该主题

三菱FX系列PLC基于Modbus协议通 [复制链接]

1#

EMERSONEV/EV变频器与MITSUBISHFX2PLC

基于Modbus协议通讯的DEMO程序

一、硬件连接

二、通讯方式

Modbus协议,ASCII格式,LRC校验;

主从方式:PLC为主机,变频器为从机;

波特率:bps(默认),可选;

数据格式:7-N-2(默认)、无校验,可选。

三、程序模块

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码转化为十六进制,并进行LRC校验;比较计算所得的校验值与接受到的校验值。

10.P8:根据命令,选择接收和发送字符串的长度。

四、程序功能

X=1:正转运行(写0x到控制寄命令字存器0x),点亮Y;

X=1:反转运行(写0xF到控制命令字寄存器0x),点亮X;

X=1:停机(写0x6到控制命令字寄存器0x),指示灯熄灭;

X=1:改写单个参数(如设定频率,功能码地址可选),掉电后不保存;

X=1:读参数(如设定频率、状态字等,功能码的地址和个数可选)。

若校验有误,则Y亮,校验正确后该灯熄灭。

五、注意事项

1.本DEMO程序仅作为用户参考程序,请根据实际应用加以修改;

2.通讯波特率和数据格式可改,请参考FXPLC相关手册,在“P0”中进行修改(DEMO程序中默认为“bps,7位数据位,2位停止位,无校验,无帧头和帧尾,控制线正常模式1,不添加和校验码,无协议,协议格式1”格式);

3.从机(变频器)地址可由用户在“P0”中进行设置(DEMO程序中默认为“05”)。

4.“正转”、“反转”和“停机”是通过写控制字实现的,用户可以根据实际情况在“P1”、“P2”、“P3”中进行修改(DEMO程序中这三种情况对应的控制字的内容分别为“0x”、“0xF”和“0x6”);

5.“改写单个参数”时,待写的变频器功能码的地址及其内容由用户决定,请根据需要在“P5”中进行修改(DEMO程序中通过“写”命令设置运行频率,F0.02=50.00Hz);

6.“读参数”时,待读的变频器功能码的地址和字节数由用户决定,请根据需要在“P6”中进行修改(DEMO程序读以F0.02开始的4个单元的内容,即F0.02~F0.05)。

附:

错误帧处理方式:PLC发送命令后,接收返回的命令并进行LRC校验,将校验所得的LRC校验码与接收到的校验码进行比较。若两者相等,则表明此次通讯正常;若不等,则表明通讯有误,0.3s后重新发送上次的请求命令,直到接收到的字符串的校验码正确为止。这样做是为了保证PLC端发送的命令(如正/反转、停机等)能够正常送到变频器。

分享 转发
TOP
发新话题 回复该主题