单片机仿真PLC控制在护理床驱动模块中的应用*
2013-08-16宣伯凯
李 露 ,杨 鹏 ,2,宣伯凯 ,2
(1.河北工业大学 控制学院,天津 300130;
2.智能康复装置与检测技术教育部工程研究中心,天津 300130)
多功能护理床作为医疗器械,已被广泛地应用于医院、疗养院、养老院等众多领域。不仅提高了病人的自理能力,同时也减轻了护理人员的工作强度[1]。因此,针对医疗护理床的应用需求,提出了一种基于CAN总线的多功能电动护理床。该护理床基于模块化的思想,分为驱动控制模块、生理参数采集模块、显示模块等,各模块之间通过CAN总线进行通信。本文主要针对驱动控制模块进行研究。
本设计用AT90CAN128来仿真PLC控制,能结合单片机控制和PLC控制的优点。单片机控制作为嵌入式系统的核心技术,具有高可靠性和高性价比,且成本低廉;PLC控制中的逻辑梯形图编程与继电接触控制电路原理图相似,抗干扰性强且简单易学[2]。
驱动模块以一片AT90CAN128单片机作为核心控制单元,继电器及其外围电路组成驱动器,分别驱动5个电机,带动护理床床体的可调部位运动,分别完成背部升降、腿部屈伸、左右侧翻等动作。
软件设计采用了PLC的循环扫描的编程思想,提高了程序执行的可靠性。通过护理床这些多体位的变换,可以减少各种由于长期卧床所带来的并发症,如褥疮等,有利于受护理人的肌体健康。
1 CAN网络通信
本系统中CAN总线作为通信网络的结构如图1所示。
图1 护理床CAN网络结构
把CAN总线应用在护理床控制系统中,组成多主站的分布式控制系统,取代了传统电动床采用的集中式控制结构及主从式网络结构,克服了传统护理床可扩展性、可维护性以及抗单点故障能力较差的缺点[3]。护理床系统采用这种总线型网络拓扑结构,便于实时监测,及时处理事件。例如当生理参数检测模块检测到病人的生理信息后能够把数据进行采样,并通过自己的CAN接口实时地将本节点的数据发送到CAN总线。其他模块如显示模块,及时通过匹配地址从总线上接收信息并显示结果。
由于在AT90CAN128内部已经集成了CAN总线协议控制器,且完全兼容CAN2.OA和2.0B标准协议,所以在设计硬件电路时就没有必要外扩,只需添加CAN总线收发器就能完成通信[4]。CAN通信接口电路中选用ATA6660控制CAN总线通信过程的数据传输。经过实验测试,无论是稳定性还是传输的正确性方面都达到了很好的效果。
2 护理床驱动模块硬件结构
护理床驱动模块的控制芯片采用ATMEAL公司的AT90CAN128,AT90CAN128是一个高性能、低功耗的 8位单片机,具有128 KB在系统可重复编程Flash,64个引脚,52个I/O口,用一个单片机完全可以同时控制5路驱动机构工作。驱动模块整体框图如图2所示。
图2 驱动模块整体框图
驱动模块在运行时,一方面接收CAN总线的报文信息,经过分析处理,驱动床体运动;另一方面还加入了按键输入模块,更方便直接地实现不同位姿。运动机构所采用的是直流线性驱动器。该线性执行器将普通直流电机的转动通过适当的机械结构转化成直线推杆的伸缩运动,从而驱动起居床的各个关节运动,帮助病人实现自己无法完成的动作。当电动床运动到达极限位置时,电动床的限位传感器可以给控制提供一个卡位信号[5]。
2.1按键输入电路
驱动模块的输入电路采用结构简单、电路配置灵活的独立按键构成。由单片机的 PB0~PB7和 PF1~PF2十个I/O口作为输入口,10个按键的状态分别对应护理床的十种功能。包括:(1)背部上升/下降;(2)腿部弯曲/伸展;(3)左/右翻身;(4)床体上升/下降;(5)便孔开/合。按键未按下时,输入的是高电平;当按下按键时电压就通过开关加到I/O口,输入的是低电平。
2.2继电器输出电路
以上各位姿之间的转换和完成均采用机械式继电器驱动电机的正反转来实现,它可靠性高,控制功率大。如图3所示,单片机的 I/O口通过控制光耦(TIL113)的通断来控制继电器。同时,将电机逻辑控制信号经过光耦隔离器,可以将高低电平信号(5 V和 24 V)隔离,增强了系统的抗干扰性。
图3 驱动模块输出电路
由于电路本身的特点,即电机的两个端子接到两个继电器的公共端,而继电器的常闭触点接地,常开触点接电源,避免了由继电器触点的抖动而造成的短路。此外,加入了正反控制信号的互锁保护电路,最后信号经继电器模块驱动电机带动负载。
继电器线圈并联反向二极管,用来提供继电器线圈的放电回路,从而起到保护线圈的目的。在电机的两端并接阻容吸收电路,用以缓冲电机起停或反向时的电流。
3 护理床驱动模块软件设计
软件设计采用了仿真PLC的循环扫描工作方式。PLC工作时,将采集到的输入信号状态存放在输入映象区对应的位上,PLC在执行用户程序时所需输入/输出的数据取用于输入/输出映像区,而不与外部设备发生关系[6]。为了配合这种工作方式,采用单片机系统中的I/O数据寄存器对应PLC中的输入/输出映象寄存器,存放现场数据和运算处理结果。
3.1软件整体设计
在输入采样阶段(即按键扫描),单片机以扫描方式按顺序将I/O接口的开关量输入信号(按键信号)读入对应的输入映象寄存器(单片机各输入I/O对应的数据寄存器)中寄存起来(输入刷新);逻辑控制程序处理阶段,单片机按顺序进行逻辑程序的运算与处理,并根据结果刷新输出映象寄存器(单片机各输出I/O数据寄存器)的内容;在输出控制阶段,将输出映象寄存器中的状态以控制信号的形式送到输出接口电路,从而控制外部负载。软件整体流程如图4所示。
图4 软件整体流程
采用这种工作方式,在一个程序循环周期内,即使实际输入信号状态发生变化,也不会影响到单片机程序的正确执行,从而提高了程序执行的可靠性。
3.2位置控制
位置控制程序即对应了PLC中的逻辑梯形图。位置控制程序一方面接收控制键盘指令,另一方面要保证电机能准确地完成相应的动作,即使在程序复位等非正常状态下也能保证电机本身、护理床和病人的安全。设置可靠的限位、动作互锁等都可以起到保护作用[7]。本护理床动作操作也有相应的互锁限制,例如,侧翻未到水平位置,即处于侧翻中间状态时,需要一个标志位标明床面状态。此时,床体若要进行其他动作,通过判断此标志位来决定是否可以动作。本系统动作互锁可简单归结为主要以下几点:
(1)起背状态时不能左右侧翻;
(2)落腿状态时不能左右侧翻;
(3)上下升降时不能左右侧翻;
(4)坐便器打开时不能左右侧翻;
(5)左右侧翻时,背部或腿部不能上升,坐便器不能打开。
位置逻辑控制程序的流程图如图5所示。
图5 位置逻辑控制流程图
本设计硬件电路简单紧凑、调试方便、可靠性高,解决了护理床的自动控制问题,满足了受护理人对多种体位的要求;软件上采用仿真PLC的编程方式,避免了使用者的误操作,提高了系统的抗干扰性;护理床整体系统采用CAN总线通信方式,使得系统本身具有了很强的移植性和模块化功能。从实际的运行情况来看,床面的各种姿势都能满足预期要求,并能有效地避免操作人员的误动作。验证了控制方案和通信策略的实用性和可靠性,显现出广阔的市场前景。
[1]田志宏,白稳峰.残障人生活起居床控制系统的设计[J].计算机测量与控制,2011,19(3):579-582.
[2]俞国亮.一种用Atmel89c2051仿真PLC控制的方法[J].微计算机信息,2005(9):130-132.
[3]杨鹏,王晓雷,许晓云,等.基于 CAN总线的电动护理床控制系统研究[J].控制工程,2008,15(6):699-702.
[4]柳吉龄,张宇河,张洁.基于CAN总线的运动控制系统的设计[J].计算机测量与控制,2005,13(7):683-685.
[5]曹爱萍,刘卫国,韩英桃.电动医疗床用无刷直流电机控制系统[J].微电机,2005(3):56-57.
[6]陈宇,段鑫.可编程控制器基础及编程技巧[M].广州:华南理工大学出版社,2002.
[7]汪烨,多功能电动护理床控制系统研制[J].制造业自动化,2009(6):70-72.