这只是部分程序,完结后有完整的PLC程序+参数说明+HMI+接线图
案例说明:
本案例采用MODBUS RTU通讯方式,利用三菱FX3U的PLC+FX3U485BD通讯板通讯对象为三菱E740变频器
变频器接线方式:
▼ PLC与三台变频器 RS485接线:
关键参数设置如下:
▼ ① 4线制接法:485BD板的RDA,RDB,SDA,SDB,分别接变频器 PU的SDA,SDB,RDA,RDB
▼ ② 变频器Pr.77=2任何模式都能写入参数,Pr.79=0:外部/PU切换模式
Pr.340-1:以网络运行模式启动,Pr.117=1PU通讯站号,
Pr.118=192:PU通讯速率,Pr.119=0 停止位长:1bit数据长:8bit
Pr.120=2:偶校验,Pr.121=9999:PU通讯再试次数
Pr.122=9999:PU通讯校验时间间隔,Pr.549=1:协议选择ModbusRTU协议
▼③ ModbusRTU通讯参数地址设定频率:40014-40001,加速时间:41007-40001,减速时间:41008-40001 ;控制命令:40009-40001 ;输出频率:40201-40001 ;输出电流:40202-40001 ;输出电压:40203-40001
ModbusRTU 通讯地址说明
▼ ① 读取/写入(保持寄存器)
参数号的数字部分+41000-40001就是对应的MODBUS保持寄存器地址,例如:加速时间Pr.7的modbus寄存器地址:7+41000-40001=1007转换成16进制3EE
▼ ② 在与PLC通讯时,通讯程序中的寄存器地址在上述计算基础上再减1
控制启停 线圈地址为40009 寄存器地址为40009-40001=8. 启动:正转写入2
核心:用RS指令发送Modbus RTU报文,配合CRC校验指令,实现多站轮询控制。
PLC程序-通讯设置:
▼ ① MOV H0C97 D8120 // 通讯端口参数设置 FX3U的RS485通讯格式专用寄存器,写这个值就是告诉PLC:按19200,8N1的格式通讯
▼ ② M8161:通讯数据模式选择标志,ON时为8位模式(Modbus RTU用的就是8位数据),OFF为16位模式
▼ ③ MOV H1/H2/H3 D50/D51/D52:把3台变频器的站号存在D50、D51、D52里,后面轮询时直接调用
MOV H0 V0:把变址寄存器V0清0,后面用它来切换3台变频器的地址。
▼ ④ RS D1 D0 D21 D20
行通讯发送/接收指令,是FX3U做无协议通讯的核心
RS [发送起始地址] [发送数据个数] [接收起始地址] [接收数据个数]
D1:发送报文的起始地址(我们的报文从D1开始存)
D0:本次要发送的报文字节数(比如设置频率时是8个字节)
D21:接收变频器返回数据的起始地址
D20:本次要接收的报文字节数(比如读电压时是17个字节)
▼ ⑤ MOV K8 D0:告诉RS指令,本次要发送8个字节的报文(站号+功能码+地址+数据+CRC)
▼ ⑥ MOV D50V0 D1:用变址寄存器V0实现轮询
V0=0时,D50+0=D50(站1),V0=2时,D50+2=D52(站3)这样不用写3段重复程序,一套程序控制3台变频器
▼ ⑦ MOV H6 D2:写入Modbus功能码06(单寄存器写入),意思是:“我要给你写一个寄存器的值”
▼ ⑧ MOV H0 D3 + MOV H0D D4:组合成目标寄存器地址H000D,这是三菱E740变频器的频率设定寄存器地址
完结后分享项目完整PLC程序+HMI+接线图+参数说明书
好文分享:以下是所有文章合集,大家需要学习哪方面的内容可以参照学习,后续一直都为大家持续更新