基于RS-485总线的分布式故障诊断系统
址,长度由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) 故障信息的采集与有序存储
故障信息的采集可以借用“事件触发”机制来描述,当故障发送的瞬间,程序立即采取措施,将该故障的相关信息记录下来,在本方案中,我们采用了触点上升沿调用子程序的编程手法,来进行这项工作,在要求程序反应更为灵敏的场合,可以采用中断处理的方法来完成。
无论是使用中断处理还是普通扫描上升沿方式来捕捉故障,要建立一个完整的故障信息诊断发布系统,更为重要的是要有一个灵活实用的存储机制。在这种机制下,针对故障的发生、排除都应有相应的程序操作与之对应,为此,我们建立了一个较简单的数据结构形式,来配合这些数据操作,结构如图2所示
![](../img/eep/emb/emb-67254p4vsh1q3rtm.jpg)
图2 数据结构
在图2中,每一站的故障记录数都根据实际情况规定1个最大值,每1个故障记录都规定为固定长度,这样,每个plc内都为下辖每个操作站设置了一个固定长度的存储表,同时,对应故障的发生与消除,有相应的子程序来进行数据表的操作,添加或删除故障记录。
(2) 故障信息的发布显示
显示器的内部寄存器已经预先链接到其显示画面中,这样只要plc通过通讯将当前应显示的故障记录信息写入内部寄存器,就可达到信息发布的目的。如果操作站发生翻页操作,则在plc接收到该信号后,它将下一页的故障信息写入到显示器的内部寄存器,实现翻页功能。
由于在同一时刻plc只能与1台显示器通讯,因此信息的刷新实际上是一种轮询机制,从第一台操作站开始,当所有的显示器都更新过一遍后,这一段时间可以称为刷新时间,rs-485串行通讯的通讯速率并不太高,所以为了改善刷新时间过长的状况,我们采取了一次通讯发送多条记录的方式,使用户在翻页时不会感到很明显的延迟。
3 结束语
rs-485是大多数工业现场总线的基础,它实现起来具有成本低,实施简便等显著优点,但又兼有速度较低、实时性不高等缺陷,虽如此,对于人机交互不甚频繁而终端较多的情况仍有较高使用价值。
RS-485总线故障诊断系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)