当前位置:首页 > 工业用地 >modbus协议讲解及实现(modbus协议怎么用)

modbus协议讲解及实现(modbus协议怎么用)

EMERSON EV1000/EV2000变频器和MITSUBISH FX2 PLC

基于Modbus协议通讯的DEMO程序

modbus协议讲解及实现(modbus协议怎么用)

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 会亮起。如果校准正确,灯就会熄灭。

5、注意事项

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发出的指令(如正反转、停机等)能够正常发送到变频器。

最新资讯

推荐资讯