modbus协议是应用于各种智能电子控制器上的一种通信规约。它已经成为一种主流的工业标准(中国国家工业自动化标准gb/z 19582.x-2004)。通过此协议,控制器相互之间、控制器和其他设备之间可以通信,这为不同厂商生产的遵守modbus协议的控制设备组成工业网络,进行集中控制提供了可能。
传统的变频器控制方式主要有两种:一是通过变频器的操作面板控制,二是通过变频器的控制端子控制。第一种方式是通过操作面板设定运行频率以及加减速时间等参数,再通过操作面板上的按键实现电机的启停控制。第二种是预先在变频器控制端子的输入口逻辑组合多种运行频率或通过模拟量输入端输入0~10v或4-20ma的信号改变给定频率,再通过控制端子启/停电机。传统的变频器参数监测主要是通过指针式仪器仪表进行各项运行参数的读取。
在上述的控制方式中,控制系统和变频器之间信息的交互非常有限,多个参数的读取依赖多个指针式仪表使系统的体积庞大,线路连接复杂,模拟量输入信号又存在易受干扰和传输距离短的问题。本文介绍一种基于现场总线技术的变频器实时监控系统,这既解决了传统监控方式存在的问题,同时也满足了网络化的要求。
2 modbus协议
2.1 协议原理
modbus协议是一个主从协议。同一时间,只能将一个主站和最多247个从站连接到总线。modbus通信总是由主站发起,当从站没有收到来自主站的请求时,不会发送数据。主站同时只能启动一个modbus事务处理,从站之间不能相互通信。主站用两种模式向从站发出modbus请求:单播模式和广播模式。单播模式即主站寻址单个从站,从站接收并处理完请求之后,向主站返回一个应答。广播模式即主站可以向所有的从站发送请求,从站对于主站广播的请求没有应答返回。广播请求必须是写命令,所有设备必须接收写命令的广播。地址0被保留用来识别广播通信。
标准的modbus协议使用rs-232c兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。modbus系统也可以使用不同的物理接口,例如,rs-485和rs-232。
2.2 传输模式与modbus消息帧
标准的modbus网络中,modbus消息数据分为两种传输模式:ascii和rtu。两种传输模式中,发送设备把modbus消息转换为有起点和终点的数据帧,接收设备在消息的起点开始工作,并且能将通信错误能设置为返回结果。
ascii消息帧,使用ascii模式,消息以冒号(:)字符(ascii码3ah)开始,以回车换行符(ascii码0dh,0ah)结束。其它代码可以使用的传输字符是十六进制的0...9,a...f。一个典型的ascii消息帧如下所示。
rtu消息帧,使用rtu模式,消息发送至少要以3.5个字符时间的停顿间隔开始。传输的第一个代码是设备地址。可以使用的传输字符是十六进制的0...9,a...f。一个典型的ascii消息帧如下所示。
3 系统设计
3.1 硬件连接
根据系统通过通信方式实时控制变频器动作和实时监测变频器运行参数的要求,系统采用人机界面+plc+变频器的组合方式。人机界面采用台达dop-a系列触摸屏,核心控制部分为施耐德电气twido plc(16点及以上),执行机构为艾默生ev2000通用型变频器。
在设备连接方面,twido plc需要2个通信接口。它本身带有1个rs-485接口(com1),再扩展一个rs-485接口(com2)即可。twido plc利用com1口和dop-a进行通信,dop-a作modbus主站,twido plc作从站,实现变频器运行参数的实时监测;利用com2口和ev2000进行通信,twido plc作modbus主站,ev2000作从站,实现对变频器动作的实时控制,如图1所示。
dop-a系列触摸屏自带1个usb口(用于编程)、2个串行口(com1、com2)。com1为rs-232,com2为rs-232/485。它作为系统的人机界面,监控系统的运行状态并读取plc采集的变频器运行参数并显示在监控界面上,hmi-plc端口接线如图2所示。
图2 hmi-plc端口接线图
ev2000自带有rs-485接口,用于实现与plc的通信连接。rs-485通信距离远、配线简单、抗干扰能力强,对变频器的所有控制都通过rs-485通信链路完成,达到了经济高效的目的。[page]
3.2 变频器、plc、触摸屏串口通信参数设置
plc分别通过两个接口与变频器和触摸屏连接,整个系统采用modbus rtu的传输模式。ev2000变频器通信参数设置要点:
(1) 各通信参数要与twido plc com2口一致;
(2) 变频器要有自己唯一的地址;
(3) 变频器的通信跳线开关cn14设置在rs-485方向;
(4)变频器延时应答设为(ff.03)30-50ms。
dop-a触摸屏通信参数的设置要与twido plc com1口一致。具体的参数需要通过编程软件screen editor设置,下载至触摸屏后生效。dop-a和twido plc均支持modbus协议,所以可以通过modbus连接。在plc的通信程序中应编写一条赋值语句(例如:%mw2999:=0)为dop-a触摸屏的系统控制区和系统状态区开辟内存空间,否则将无法通信。twido plc中的内部位%m0对应dop-a中的b1,内部字%mw0对应w40001。
twido plc com1口和com2口之间可以配置相同的波特率、数据位、校验方式等参数,但是各自应配置不同且唯一的地址。
3.3 监控界面开发
整个系统的监控画面分为监测界面、操作界面和故障代码查询界面。监测界面如图3所示,完成对变频器运行状态和运行参数的监测。
图3 监测界面
操作界面如图4所示,主要完成变频器启动,停止,加减速运行、故障复位和运行频率的设定,同时连接故障代码查询界面,以备操作人员查询使用。
图4 操作界面
故障代码查询界面如图5所示,主要提供变频器常见故障代码索引。
图5 故障代码查询界面
4 plc通信程序开发
4.1 modbus功能码的选取
twido plc和ev2000都支持modbus协议,但是在具体细节上存在差异。因此取双方都支持的功能码进行程序的编写。ev2000支持的modbus功能码
twido plc支持的modbus功能码
4.2 comm通信宏与grafect步进编程方法
twido plc的comm通信宏指令是用一条宏指令代表一组列表语言指令来实现复杂的功能。plc通过通信方式控制变频器,需要编写大量的功能性程序块。采用一般的modbus通信字表的形式编写,程序冗长不易阅读。使用comm通信宏指令,编程时不需要编写通信交换用的字表,使用一条宏指令即可(例如:c_wrnw 0 2)。功能码0x10(改写多个内部字)的modbus通信字表[3]:[page]
例如,启动5#变频器正转,转速设定30.00hz(内部表示为3000):功能码0x10的modbus通信字表与comm宏指令对比。
为了方便程序的调试,编程时采用twido plc的grafect步进编程语言。该语言是将控制分成了多个“步”和“步”与“步”之间的转换条件的一种语言。把每一“步”是看作是控制系统的工作状态,对于整个系统而言,工作状态分为稳态和瞬态。稳态即系统可以稳定存在的状态,瞬态即系统从一个稳态向另一个稳态转换时的过渡状态,瞬态可以是一个空白状态。变频器的运行是一个稳态,该状态下系统完成对运行参数的读取,同时扫描是否有使系统向其他稳态转换的输入信号。变频器的启动是一个瞬态,它是变频器由待机向运行转换时的过渡状态。因此,编程时将瞬态(功能性程序块)单独编写在一个“步”里面,将稳态下要完成的工作编写在另一个“步”里面。grafect步进语言的使用简化了系统的逻辑设计,方便了程序的调试,为系统功能的扩展奠定基础。一旦有需要即可按模块化的方法开发新功能,参见图6。
图6 变频器工作状态转换图(方框为稳态,椭圆为瞬态)
4.3 plc与变频器modbus通信程序
ev2000变频器的运行控制字(内部地址:0x3200)和运行状态字1、2(内部地址:0x3300,0x331f)的具体含义如表1所示:
表1 ev2000控制字和状态字1、2的具体含义
下面是twido plc 与ev2000的部分通信程序:
... 程序初始化
-*- 2 变频运行状态、停止状态、故障状态
ld %m10 实时读取各项参数。
mps
and %m0
r %m0
mpp
and [%mw241=0]
[c_rdnw 0 2]
...
-*- 3 变频启动和变频调速
ld %m0
[%mw46 :=16#01c7]
ldn %m0
[%mw46 :=16#01c0]
ld 1
[%mw47 :=%mw7]
ld [%mw47>0]
and [%mw47<=16#1388]
[c_wrnw 0 2]
...
-*- 4 变频停止和故障复位
ld %m1
[%mw24 :=16#00c5]
ld %m2
[%mw24 :=16#0380]
ld %m1
or %m2
[c_wr1w 0]
...
5 结束语
本文介绍了一种集变频器实时控制和运行参数实时监测于一体的变频器通信控制技术。当plc与多台变频器组网时,可对modbus总线进行分时复用,以避免通信冲突。系统采用的plc与变频器来自不同厂商,因此也对来自不同厂商的智能设备进行通信组网有一定借鉴意义。系统采用通信控制方式,线路维护简单。
上一篇:ABB变频器与西门子PLC之间的通信方法
下一篇:工业控制的现场总线技术
推荐阅读最新更新时间:2024-05-02 23:01