一、MODBUS通信概述
MODBUS协议分为串行链路上MODBUS协议和基于TCP/IP协议的MODBUS 协议。串行链路上MODBUS协议有MODBUS ASCAII(字符串) 和MODBUS RTU两种
200SMART所提供的MODBUS协议库能够支持MODBUS RTU通信
MODBUS RTU 是以16进制的数值进行发送
MODBUS ASCAII是以ASCAII码的方式进行发送,一个数据采用RTU方式发送只需要一个字节,而用ASACII码发送需要两个字节,发送时间
PLC与变频器串口通信有很多通信方式,但常用的、首选的就是MODBUS通信方式,在实际的工业控制中应用非常广泛;这一期我们向大家一起分享变频器如何与PLC通过MODBUS RTU的方式进行控制
二、MODBUS库指令详解
库指令分两种,一个是主站库,一个是从站库
主站是PLC作为MODBUS的主站主动去读取其他设备的数据;从站是PLC作为MODBUS的从站,其他设备来读取数据;本期我们分享的是PLC作主站,变频器做从站
STEP7-MinWIN SMART软件自带MODBUS通信库指令
初始化指令:
控制指令:
三、MODBUS RTU的通信格式(协议)
通信协议有:站号、功能码、数据地址、数据内容、校验位、结束符组成
校验:N=None无校验 E=Even偶校验 O=Odd奇校验
判断数据位中为1的个数是奇数还是偶数(选择偶校验如16#03中如果为1 的个数是偶数时,校验位为1 ;如果为1 的个数是奇数时,校验位为0 。选择奇校验时,为1的个数是偶数时,校验位为0 ;为1的个数是奇数时,校验位为1)
功能码指定了对从站设备读操作还是写操作,同时也指定了MODBUS寄存器地址的类型,常用功能码有:
四、PLC与变频器通信硬件的连接
在变频器上面涉及通信的端子标记有A/B RS585+/RS485-或RJ11的网口;找到相关变频器的说明书查看通信端口的接线定义,以下是台达VFD-M系列的变频器通信口接线定义
五、变频器通信参数的设置
1、 要实现变频器或仪表和PLC能正常通信,彼此的接口和协议需要一致,除此之外参数的设置也必须一致
P00 设03(频率指令)
P01 设03(运转指令)
P88 设03 (通讯地址,0-254之间)
P89 设02(波特率选择)
P92 设04 (数据格式,200SMART不支持2个停止位,因此只能选04/05任意一个参数)
P157 设01 (变频器默认的就是MODBUS模式)
2、查看说明书的启停、频率给定、运行频率、电压电流等反馈参数的地址
信息帧格式说明
表示读2103 2104两个地址的数据放在17 70 和00 00的地址里
通信协议的参数地址定义:
运行命令地址2000H 频率命令地址2001H
输出频率地址2103H 输出电流地址22104H
输出电压地址2106H 变频器温度地址 210DH
六、MODBUS通信程序的编写
在程序的开始可以加一段初始化对所有的位进行复位。