基于Modbus协议通讯的DEMO称重程序

描述

EMERSON EV1000/EV2000变频器与MITSUBISH FX2 PLC

基于Modbus协议通讯的DEMO程序

 

一、硬件连接

plc

 

二、通讯方式

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

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

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

数据格式: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:根据命令,选择接收和发送字符串的长度。

 

四、程序功能

X000=1:正转运行(写0x0187到控制寄命令字存器0x3200),点亮Y000;

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

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

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

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

 

若校验有误,则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.02~F0.05)。

plc

 

plc

 

plc

 

附:

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

 

 

plc

 

 

 

 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • plc

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分