一、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通信库指令

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(1)

初始化指令:

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(2)

控制指令:

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(3)

三、MODBUS RTU的通信格式(协议)

通信协议有:站号、功能码、数据地址、数据内容、校验位、结束符组成。

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(4)

校验:N=None无校验 E=Even偶校验 O=Odd奇校验

判断数据位中为1的个数是奇数还是偶数(选择偶校验如16#03中如果为1 的个数是偶数时,校验位为1 ;如果为1 的个数是奇数时,校验位为0 。选择奇校验时,为1的个数是偶数时,校验位为0 ;为1的个数是奇数时,校验位为1)

功能码指定了对从站设备读操作还是写操作,同时也指定了MODBUS寄存器地址的类型,常用功能码有:

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(5)

四、PLC与变频器通信硬件的连接

在变频器上面涉及通信的端子标记有A/B RS585 /RS485-或RJ11的网口;找到相关变频器的说明书查看通信端口的接线定义,以下是台达VFD-M系列的变频器通信口接线定义

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(6)

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(7)

五、变频器通信参数的设置

1、 要实现变频器或仪表和PLC能正常通信,彼此的接口和协议需要一致,除此之外参数的设置也必须一致

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(8)

P00 设03(频率指令)

P01 设03(运转指令)

P88 设03 (通讯地址,0-254之间)

P89 设02(波特率选择)

P92 设04 (数据格式,200SMART不支持2个停止位,因此只能选04/05任意一个参数)

P157 设01 (变频器默认的就是MODBUS模式)

2、查看说明书的启停、频率给定、运行频率、电压电流等反馈参数的地址

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(9)

信息帧格式说明

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(10)

表示读2103 2104两个地址的数据放在17 70 和00 00的地址里

通信协议的参数地址定义:

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(11)

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(12)

运行命令地址2000H 频率命令地址2001H

输出频率地址2103H 输出电流地址22104H

输出电压地址2106H 变频器温度地址 210DH

六、MODBUS通信程序的编写

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(13)

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(14)

西门子plc控制三个变频器(告诉你西门子PLC如何通过MODBUS控制变频器)(15)

在程序的开始可以加一段初始化对所有的位进行复位。

,