基于RS-485总线的分布式故障诊断系统
扫描二维码
随时随地手机看文章
1 rs-485总线概述
在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在rs-422标准的基础上,eia研究出了一种支持多节点、远距离和接收高灵敏度的rs-485总线标准。
rs-485收发器采用平衡发送和差分接收,即在发送端,驱动器将ttl电平信号转换成差分信号输出;在接收端,接收器将差分信号转换成ttl 电平,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mv的电压,使传输信号能在千米以外得到恢复。根据rs-485标准,rs-485 收发器的最大传输速率为10mbps,最大电缆长度为4000英尺,总线上能连接32个收发器(sipex公司的sp485r允许在一条总线上连接400 个收发器),广泛适用于远距离、多站式、分时通讯系统。在要求通信距离为几十米到上千米时,由于rs-485总线仅需用一对双绞线即可实现多站联网构成分布式系统,且设备简单、价格低廉,使得eia rs-485成为工业应用中数据传输的首选标准。
当前自动控制系统中常用的网络,如现场总线can、profibus、interbus-s、cc-link以及arcnet的物理层都是基于rs- 485标准的。
2 系统方案
本系统应用于某汽车喷涂生产线,生产线控制系统按照工艺分布划分为5个区,分别由5台三菱q系列plc控制,plc间以三菱 melsecnet/h数据链路联网。在整个车间内5个控制区内,分别又被细分为数个子区域,累计共有73个子区,每1个子区设1个操作站。操作站的主要功能是对本子区内的设备运行状况进行监测,当有故障发生时,应有详细的故障诊断信息。方案要求简示如图1。
图1 系统方案简示
通过对方案要求的仔细分析,综合比较计算机终端和工业触摸屏等常用的操作界面设备,最终决定采用一种带rs485通讯功能的汉字显示设备dp210,这种显示设备带有专有通讯协议,外部指令可与其进行通讯读取或改变其内部寄存器的值,从而改变显示屏上与该寄存器链接的文字内容。这样硬件方案基本确定,每台 plc端增加串口通讯模块qj71c24来进行rs485串行通讯,每个操作站配备一台上述汉显示设备,用以动态显示设备状态信息。
2.1 dp210简介
dp210是一种适用于简单用户界面的终端操作设备,内部带有128个字寄存器,它可以显示中英文字符或数字,并有简单图形显示功能。
dp210内置有rs422通讯功能,可作为从站以专有通讯协议与外部智能设备进行通讯,在通讯过程中,外部设备通过专门指令可改变其内部任意字寄存器的值,从而改变屏上的显示内容,实时显示现场设备信息。
(1) dp210通讯协议
外部设备可通过串行通讯读取或改变dp210内部的128个字寄存器的值,通讯过程中,plc充当主站(master),dp210充当从站 (slaver),主站发起通讯,向从站发送读/写指令,从站在正确接收到该指令后,将根据指令要求返回一帧确认信息。
协议采用二进制通讯方式,格式如下所述:
读指令(读dp210内部字寄存器的值)
plc端发送帧:node no. `r` address length sum
dp210端返回帧:
node no. status address length data sum
写指令(写dp210内部字寄存器的值)
plc端发送帧:
node no. `w` address length data sum
dp210端返回帧:
node no. status sum
node no. : dp210显示器站号,范围1-255
command : `r`/`w` 分别用来区分读/写寄存器,在通讯帧中用16进制数52h或57h表示
address : 要读写的寄存器(mw)开始地址号(0-127)
length : 要读写的寄存器个数(1-128)
data : 从dp210读出或写入到dp210寄存器中去的值
sum : 和校验(前面所有字节值的和与100h取模后的值) (若值为5ah,则忽略该值)
status : 返回通讯状态。意义如下: 0—正常;1— 地址错误;2—长度错误;3—地址范围超限(开始地址+长度 >128);4—指令错误。
2.2 plc串行通讯技术
三菱各系列plc均有用于实现串行通讯的通讯模块,该种模块既可用于计算机监控plc,又可用于实现plc系统与外部智能设备的自由协议通讯,具有很广泛的实用性。本方案中所采用的q系列串行通讯模块qj71c24就是这一类模块中最强的一款,它体积小巧而且功能强大,通讯速率最高可达 115200bps,而且q系列plc有专用于该模块自由协议通讯的高级指令,能方便快捷地实现与外部设备的串行通讯。
三菱q系列plc串行通讯专用指令主要有接收、发送指令,可进行ascii通讯,也可进行二进制通讯,还有用于清除通讯缓冲区的清除指令,下面对这3条指令的用法作简要介绍:
(1) 发送指令:g.output ux xx1 xx2 xx3
ux:用来发送数据的串行通讯模块所在的地址
xx1:发送指令控制参数区开始地址,占用连续3个字寄存器
xx2:待发送数据存储的开始地址,长度由xx1中参数指令
xx3: 用来存储指令执行后的结果(成功或失败),占用连续2个位寄存器
(2) 接收指令:g.input ux xx1 xx2 xx3
ux:用来接收数据的串行通讯模块所在的地址
xx1:接收指令控制参数区开始地址,占用连续4个字寄存器
xx2:用来存储收到数据的寄存器开始地址
xx3:用来存储指令执行后的结果(成功或失败),占用连续2个位寄存器
(3) 清除指令:zp.cset ux xx1 xx2 xx3 xx4
ux:要进行清除操作的串行通讯模块所在的地址
xx1:要清除的通讯通道号
xx2:清除指令控制参数区开始地址
xx3:备用
xx4:用来存储指令执行后的结果(成功或失败),占用连续2个位寄存器
2.3 程序实施简述
综合整个方案要求,程序主要可分为2大部分:故障信息的采集与有序存储、故障信息的发布显示。
(1) 故障信息的采集与有序存储
故障信息的采集可以借用“事件触发”机制来描述,当故障发送的瞬间,程序立即采取措施,将该故障的相关信息记录下来,在本方案中,我们采用了触点上升沿调用子程序的编程手法,来进行这项工作,在要求程序反应更为灵敏的场合,可以采用中断处理的方法来完成。[!--empirenews.page--]
无论是使用中断处理还是普通扫描上升沿方式来捕捉故障,要建立一个完整的故障信息诊断发布系统,更为重要的是要有一个灵活实用的存储机制。在这种机制下,针对故障的发生、排除都应有相应的程序操作与之对应,为此,我们建立了一个较简单的数据结构形式,来配合这些数据操作,结构如图2所示
图2 数据结构
在图2中,每一站的故障记录数都根据实际情况规定1个最大值,每1个故障记录都规定为固定长度,这样,每个plc内都为下辖每个操作站设置了一个固定长度的存储表,同时,对应故障的发生与消除,有相应的子程序来进行数据表的操作,添加或删除故障记录。
(2) 故障信息的发布显示
显示器的内部寄存器已经预先链接到其显示画面中,这样只要plc通过通讯将当前应显示的故障记录信息写入内部寄存器,就可达到信息发布的目的。如果操作站发生翻页操作,则在plc接收到该信号后,它将下一页的故障信息写入到显示器的内部寄存器,实现翻页功能。
由于在同一时刻plc只能与1台显示器通讯,因此信息的刷新实际上是一种轮询机制,从第一台操作站开始,当所有的显示器都更新过一遍后,这一段时间可以称为刷新时间,rs-485串行通讯的通讯速率并不太高,所以为了改善刷新时间过长的状况,我们采取了一次通讯发送多条记录的方式,使用户在翻页时不会感到很明显的延迟。
3 结束语
rs-485是大多数工业现场总线的基础,它实现起来具有成本低,实施简便等显著优点,但又兼有速度较低、实时性不高等缺陷,虽如此,对于人机交互不甚频繁而终端较多的情况仍有较高使用价值。