gkket 发表于 2019-4-4 20:38:34

实例讲解三菱PLC如何通过RS485控制变频器

需要的硬件:三菱FX3G型PLC,485通讯模块(FX3G-485BD), 变频器一台英威腾,触摸屏(MT6071IP)。需要了解内容:PLC通信协议,发送指令,变频器通信参数设置。1接线接线较为简单,将FX3G-485-BD模块插在PLC上,将SDB和RDB短接,SDA和RDA短接,在变频器上485+端子引出导线接到模块的SDA和RDA上,在变频器上485-端子引出导线接到模块的SDB和RDB上,采用RS485接口工作半双工,它的意思就是信号的读取和写入不能同时发送,发送的时候不能读取。http://p9.qhimg.com/t01a199e86057293ab6.jpg?size=640x480接线图2变频器参数设置将变频器的运行指令和频率指令都改成MODBUS通信设定,在P00组上P00.01运行指令通道改为2:通讯运行指令通道(缺省值0),P00.07B频率指令选择8:MODBUS通讯设定(缺省2),P00.09设定源组合方式1:B,当前频率设定为B频率指令。通讯参数的设置,在P14组,P14.00将变频器的站号设为1,P14.01波特率设为9600,P14.02数据位校验设为无校验(N, 7, 2)for ASCII。3 PLC通讯参数的设定PLC参数的设定有两种方法“1是在软件(GX-Works2)里设置:点击导航中的参数→PLC参数→PLC的系统设置(2):http://p6.qhimg.com/t010549db53afc9a9fe.jpg?size=640x391PLC系统参数设置2采用程序设定:http://p8.qhimg.com/t0102f0d980ff5495b5.jpg?size=640x238梯形图参数设置M8161=1,为8位运算,意思就是忽略高8位只传送数据的低8位,为什么这么做后面会说到。MOV HOC88 D8210是指定通讯格式,它是怎么算出来的,我们看下D8120内容:http://p2.qhimg.com/t01e25df1034d27bf08.jpg?size=640x522D8120内容D8210是一个16位的数据,根据设定的参数来算计算,比如上述程序的H0C88是怎么来的,看下通讯方式是,波特率9600,7位数据长度,无奇偶校验,停止位是2,控制线是无协议的调制解调器模式(RS485接口):http://p4.qhimg.com/t019526273c7e4587fb.jpg?size=640x314通讯参数计算4相关指令串行数据发送RS,16进制转换为ASCII码ASCI,ASCII码转换为16进制数HEX.RS:该指令是用于通过安装在基本单元上的RS-232C或RS-485串行通信口进行无协议通信,从而执行数据的发送和接收的指令。http://p9.qhimg.com/t01eba9560bb5f06c05.jpg?size=1065x216RS举例RS指令用于指定从FX可编程控制器发出的发送数据的起始软元件和数据点数, 以及保存接收数据的起始软元件, 和可以接收的最大点数,编程按照下列要领:http://p9.qhimg.com/t01b867fc5ee600f0fb.jpg?size=640x301发送指令
接受指令ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符,MODBUS协议有两种传输模式,ASCII和RTU模式, 本次变频器采用ASCII模式传输信号, 上一章的HMI控制变频器采用的就是RTU模式。 因此采用ASCII模式, 所以数据格式M8161选择8位数据模式。5 PLC程序程序大致分为4部分5.1 变频器功能说明采用ASCII模式传输数据,在 ASCII 模式中,帧头为“:”(“0x3A”),帧尾缺省为“CRLF”(“0x0D”“0x0A”)。在 ASCII 方式下,除了帧头和帧尾之外,其余的数据字节全部以 ASCII 码方式发送,先发送高 4 位位元组,然后发送低 4位位元组。ASCII 方式下数据为 8 位长度。对于‘A’~‘F’,采用其大写字母的 ASCII 码。此时数据采用 LRC校验,校验涵盖从从机地址到数据的信息部分。校验和等于所有参与校验数据的字符和(舍弃进位位)的补码。http://p2.qhimg.com/t01a8500d25a1b0fa8b.jpg?size=829x161MODBUS报文http://p3.qhimg.com/t019144c45b9537cfe5.jpg?size=640x315ASCII 帧的标准结构MODBUS对变频器功能说明:http://p8.qhimg.com/t01e033fb8829910d6e.jpg?size=640x335http://p1.qhimg.com/t01d45209987d563c42.jpg?size=640x374http://p7.qhimg.com/t0101ef9b6838f39dbe.jpg?size=640x261功能说明6程序程序可以分5部分6.1通讯设定就是第3PLC通讯参数的设定的梯形图6.2 ASCII码转换
ASCII码转换根据ASCII 帧的标准结构将数据转换为ASCII码,起始符START:3AH地址Address:就是站号, 两个ASCII码组成, 例如站号1, 地址就是01H, 转成ASCII码就是30,31, PLC监控:http://p6.qhimg.com/t01483be261447f2942.jpg?size=968x275程序中显示的是10进制。功能码Function:就是要写入数据还是读取数据,由两个ASCII码组成,写入是06H, 读取是03H。功能码地址:就是写入或读取的地址,由两个ASCII码组成。数据内容DATA:就是要写入或读取的数据内容, 由2n个ASCII码组成。LRC校验值:LRC检查码,由两个ASCII码组成结束符END:END Hi=0DH, END Lo=0AH。RS D0 K17 D50 D15 这条指令就是发送以上内容的,D0起始符, D1D2地址,D3D4功能码,D5D6命令码高位地址,D7D8命令码低位地址,D9D10数据内容高位地址,D11D12数据内容低位地址,D13D14LRC检查码,D15D16结束符。6.3 写入数据http://p1.qhimg.com/t01524f6b04706e021a.jpg?size=640x264http://p3.qhimg.com/t016d64903f1f9ce3de.jpg?size=640x344写入数据M8122是送信指令, 表示在发送信息,ASCI D200 D500 K4.D200为频率数据, 将D200数据转换成ASCII, 例如D200=0ABCH,K4就表示D500=0,D501=A,D502=B,D503=C,只转换4位。D101站号,D102功能码,D103D104功能码高低位地址,D105D106数据内容。根据变频器的MODBUS功能, 我们知道写入频率的地址是2001H, 因此高位20H传到D103,低位01H传到D104,然后将频率值传送到D105D106, 传送完毕LRC值复位。这样就完成了写的功能, 变频器的正反停功能根据上表依次编程。6.4 读取数据由于采用半双工工作, 写入和读取不能同时进行,http://p4.qhimg.com/t01e3aa5eff90da42c7.jpg?size=640x375数据读取意思就是读取数据时, 必须在送信、 回信、写入指令意外完成。 查看变频器功能表, 读取频率的地址是3000H。HMI界面:http://p5.qhimg.com/t011e21d01403e19e16.jpg?size=640x375HMI界面

LTY051 发表于 2019-4-4 20:41:32

谢谢您的分享!

华1178109845 发表于 2019-4-4 20:46:11

看到这帖子真是高兴!

ynbydl 发表于 2019-4-4 20:48:23

好东西一定要看看!

vov_m2Fjn 发表于 2019-4-4 20:49:33

楼主加油,我们都看好你哦。

feng_canyue 发表于 2019-4-4 20:51:06

看到这帖子真是高兴!

@Xizi_BCjesikh 发表于 2019-4-4 21:18:03

无回帖,不论坛,这才是人道。

aifeilisa 发表于 2019-4-4 22:24:01

看到这帖子真是高兴!

枫叶 发表于 2019-4-6 02:38:57

看完楼主的帖子,我的心情竟是久久不能平息,受教了

黎明的鱼肚白 发表于 2019-4-13 07:06:55

太生气了,无法HOLD啦 >_<......
页: [1] 2
查看完整版本: 实例讲解三菱PLC如何通过RS485控制变频器