基于单片机的电子清纱器网络监控系统的实现
其具有很高的实时性要求;同时还要实现相应的动作控制(如对有害纱疵的切除等)以及后级单片机系统的实时处理,显示、统计等功能,又决定了该装置的多任务性。这样在保证原系统的实时性和多任务性的同时,加入现场设备层的通信软件在编写时就有了一定的特殊性。我们借鉴Windows编程的原理,在单片机编程中进入消息概念,进行基于消息的多任务机制编程。从机的监控软件主要流程如图4所示(主要对通信部分说明)。
图4 从机监控软件主要流程图(左—主程序 ,右—T0中断程序通信部分)
其中:主程序主要完成上电自检、消息巡检、按照消息队列组织通信信息体、数据发送、功能键散转、验校设备等工作。为了保证系统的实时性,必须减少中断服务的时间占用,因此在中断程序中只做简短的消息标志处理和必要工作。大量的消息响应工作则利用中断的间隙进行处理。
T0中断每0.5毫秒产生一次,该段程序是整个从机任务的管理员,是现场设备程序的核心。T0主要完成总线上数据的接收和判断、采用时间片算法完成对纱线信号采集器的通信控制、车速的采集、产质量记录等任务。值得说明的是,为了保证从机的实时性,没有采用常规的中断通信接收或等待查询的接收编程方式,而是结合T0中断时间的周期性和异步串行数据传输的特点,定时做数据接收端的扫描,完成数据的接收(这部分程序占时不应大于60个机器周期,否则影响主程响应的实时性);当主程监测到有完整数据包到来标志后,进行数据包的流向、地址以及正确性分析并置欲发送信息的装配标志;同样当主程巡检消息队列时发现信息装备标志后,则分析主机命令、装备信息、建立发送标志,并以消息的形式通知主程用查询方式发送数据包。这样做不仅可以提高中断的响应速度,又不影响数据的处理和其他任务的执行。很好的解决了多中断实时数据响应与数据处理耗时之间的矛盾,从而提高了系统的实时性。
由于8251 USART芯片没有数据帧和地址帧的区分功能,也就是说总线上的所有从机必须监听所有在总线上的数据,这样会由于各从机时时监听数据,严重影响系统的实时性。为了解决这个矛盾,我们定义了完备的通信协议,其中加入了地址码、数据流向标志和双帧长等通信规约,以帮助主、从机迅速判断数据包的流向,完整性以及是否做处理的标志,当从机接收到非自己的数据包或错包时,根据各种消息标志快速退出通信处理过程。同时T0中的数据扫描避免了简单利用多中断机制在监听大量随机总线数据时,频繁的中断对整个软件时间片划分的破坏,以及由于接收数据的随机性使得查询接收方式不可行的缺点,从而最大限度的保证了系统实时性。
4 监控层软件设计
监控层软件作为现场总线系统监控软件是在Windows 2000 Sever 、Delphi 6.0 以及 SQL Sever 2000的环境下开发而成。主要由通信组态模块、权限管理模块、系统动态监控模块、报表管理模块、现场LED条屏显示管理模块、Intranet/Internet接入模块(预留模块)六部分组成。由于这类监控软件编制方法趋于成熟规范,在此仅在建立该现场总线系统软件参考模型的基础上,对数据组织的核心模块——通信组态模块的一些特殊处理加以说明。
众所周知,现场总线技术的不断发展,出现了多种现场总线,且各具特色;同时我们也看到不同的现场总线有着不同的应用领域,尚不存在一种能解决所有工业问题的现场总线;即便是同一类型产品,也存在着用不同的现场总线实现的可能性;同时多种现场总线集成在一个系统中,让不同的总线充分发挥各自的优势可以更好地共同完成控制任务。因此,在工业系统中必然会出现多种现场总线并存的局面。这就为监控层系统软件对多种现场总线的兼容性、扩充性提出了更高的要求。为了适应这样的发展趋势,我们在系统软件(监控层软件)设计时构造如下的参考模型,一定程度上解决了多种现场总线并存于一个系统的问题,使系统软件具有了较好的可扩展性。目前,该系统软件主要是针对在纺织企业中广泛使用的普通络筒系列电子清纱器(RS-485现场总线,自定协议)设计;考虑行业发展方向,软件同时对自动络筒系列的电子清纱器(CAN现场总线)以及其他现场总线协议设备具有良好的兼容性。
现场总线电子清纱器网络监控系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)