鹿红超,高志慧,魏 来
(北京航空航天大学 机械工程及自动化学院,北京 100191)
对系统进行分布式控制逐渐成为工业控制领域中的主流。DCS[1]将系统的控制功能分散在各单个计算机上实现,当某台计算机出现故障时并不会导致系统其他功能的丧失,具有较高的可靠性。上层监控系统只需负责信息的处理,将处理后的信息与底层计算机进行数据交换,而不需要实现底层机构的具体控制,控制结构简单,易于维护。
单片机[2]具有较高的可靠性以及处理功能强大、易于实现模块化等优点,常用在底层机构的控制上。在工业控制系统[3]中,PC 机常作为上位机进行数据的处理和控制信息的交换,单片机作为下位机控制机构的运动及信息的采集,并将采集的信息作初步处理后发送至上位机进行进一步的处理。在上位机PC 与单片机通信方式中,常通过RS232 串口来实现PC 与多个单片机的一对一通信[4]。
立体药库[5]是一种新型的自动化仓储系统,可以实现异形包装药品的自动存取。
本研究以多个单片机为底层控制单元,以上位机PC 为上层信息处理系统,设计一种小型的DCS 控制系统,以实现立体药库存取药品的运动。其中单片机外围电路由显示单元、控制单元、通信单元等组成。显示单元用来显示药品的出药数量;控制单元用来控制电机的正反转、高低速及启停运动;通信单元用来初步处理收集到的信息并将信息发送至上位机PC。上位机PC 则对将收到的信息进一步处理判断,然后发送控制信息给下位机。
立体药库主要用来实现异形包装药品的存取,它由前后排货架、储药盒、升降平台及升降平台上并排的10 个执行机构组成。执行机构由单相交流电机提供动力,通过控制电机的正、反转实现货架上储药盒的取出与送回。在存取药品过程中,升降台运动到指定层,执行机构正转,将药盒取至升降台上,然后升降台运动到出药口所在层,执行机构继续正转,将药盒送至出药口,等待药品拿出;药品拿出后,药盒返回原来所在的位置,此时电机反转。该立体药库可以同时存取10 个储药盒。其结构如图1 所示。
图1 立体药库结构
在传统的控制方法中,系统一般是通过一个PLC[6]作为控制元件来对10 个执行机构进行高低速、正反转和启停控制,以达到快速存取药品的目的。
系统控制结构如图2 所示。
图2 PLC 控制系统结构图
对于单相交流电机,系统一般通过调速器对其进行驱动控制。每个调速器在驱动执行机构正反转、高低速及启停的运动过程中需要至少5 个I/O 点,所以对于10个或更多的执行机构就需要PLC 扩展较多的I/O 模块。且在运动时PLC 既需要控制10 个执行机构的运动,又要采集10 个执行机构的位置信息,且同时要对这些信息进行处理,这就增加了PLC 运行的负担。当执行机构数量更多时,可能会导致PLC 内部程序逻辑异常复杂,而且若某个执行机构出现故障时会导致整个控制系统无法使用。所以传统的控制方法灵活性差,控制复杂,成本高,难以实现立体药库模块化扩展[7]的控制需求。
由于单片机成本低廉,可靠性高,控制简单,常用来作为底层运动部件控制器。在该设计中,单片机外围电路由显示模块、通信模块、控制模块、信号采集模块等组成。多个单片机通过RS485 总线与上位机PC 进行通信。
在该系统中,以上位机PC 作为主站,多个单片机为从站,构成了一个小型的主从式集散系统。系统通过RS485[8]总线进行通信,PC 使用转换模块将RS232 信号转换为RS485 信号。由于单片机数据信号电平为TTL电平,PC 机与单片机通信时需要MAX487 芯片进行信号电平转换。该通信方式可以对单片机的数量进行扩展,消除了I/O 点数量的限制,最多可以驱动128 个单片机。
PC 与单片机串行通信的连接框图如图3 所示。
图3 PC 与单片机通信连接框图
3.2.1 显示电路
显示电路主要显示所出药品的数量,主要由两个七段共阴极数码管和译码器74LS240,反相译码器ULN2003 组成,显示电路如图4 所示。
图4 显示电路
LED 数码管采取共阴极接法,数据显示为动态显示方式。输入位经译码器译码后输出相应位驱动LED数码管。数码管的位选信号由单片机的P2.0~P2.1 输出,ULN2003 译码后选通相应的数码管,高电平有效。
3.2.3 通信电路
通信电路用来与上位机进行通信。由于单片机输出信号为TTL 电平,而通信过程中所需电平为RS485 电平,研究者需要通过MAX487 将TTL 电平转换为RS485 电平才能与实现与上位机的数据交换。通信电路如图5 所示。
图5 通信电路
3.2.4 控制电路
控制电路用来控制单相交流电机的高低速、正反转和启停运动[9]。在该设计中,由于单相交流电机的速度随着驱动器输入电压的增加而增加,而驱动器输入电压的值是通过改变驱动器上的电阻来实现的,系统通过输入不同的电阻值来改变单相交流电机的速度。该设计通过单片机输出位P1.0~P1.2 控制继电器的通断来实现对驱动器的控制。继电器1 常开触点接驱动器开关输入点实行电机的启停运动,继电器2 的常闭触点和常开触点接不同的输入电阻值控制电机的高、低速,继电器3 的常闭触点和常开触点接CW 及CCW 输入端实行对电机的正、反转控制。
3.2.5 传感器输入电路
传感器用来检测储药盒所在的位置,并将该位置信息传入到单片机进行进一步的处理。传感器输入信号为开关量,输入引脚为P2.4~P2.5。单片机通过检测引脚电平的变化判断传感器是否感应到信号并做出相应的动作。
在PC 与单片机通信的过程中,PC 作为主站,启动并控制每一次通信[10-11]。多个单片机作为从站,接收主站发送的信息并做出应答。每个单片机都有一个不同的站号,PC 通过发送不同的站号来选择所需要的单片机。
在单片机的初始化过程中,本研究首先置SM2 为1,使单片机可以实现多机通信。单片机工作于通信模式2。由于PC 不能像单片机一样发送第九位数据TB8,这就需要PC 发送的第9 位奇偶校验位具有TB8位的功能,才能实现PC 与多个单片机一对一的通信。所以本研究在PC 发送地址时强制奇偶校验位为1,而在发送数据时强制奇偶校验位为0。
PC 与单片机的通信过程如下:
(1)PC 首先向单片机发送地址信息。
(2)单片机接收到PC 发送的地址信息后,执行串口通信中断程序,与自己的从站地址相比较,若发送的地址与从站地址相同,则返回地址应答信号并置SM2 为0;若不同则退出中断。
(3)当PC 接收到单片机发送的地址应答信号后,判断该应答信号是否正确,若正确则开始发送数据,否则继续发送地址信息。
(4)单片机接收到数据信息后,执行串口中断服务程序,并发送数据应答信号,并置SM2 为1。
(5)当PC 接收到正确的数据应答信号后,继续选择下一个单片机,并发送信息。
本研究对立体药库分别采用PLC 控制和基于单片机的DCS 控制两种控制方案进行模拟出药实验,分析两种控制方案下系统的出错率及平均运行时间。其中,出药总时间为:
式中:T1=t1+t2+…+ti+…tn,ti—单个处方正常运行出药的时间,T1—试验所有处方正常运行总时间,T2—系统故障后排除故障的总时间,T3—人工操作总时间。
单个处方出药平均时间为:
式中:n—处方总数。
试验过程如下:
(1)对立体药库分别采用传统PLC 控制和基于单片机的DCS 控制进行运行实验。由上位机向控制系统随机发送1 000 个处方,其中每种处方含5 种药品。
(2)记录每个处方正常运行的起始时间和终止时间,求出单个处方运行的时间ti。
(3)对系统出现故障未能正常出药的处方,记录该处方的出药时间。出药时间包括系统出现故障及排除故障的时间。
(4)记录每次处方出药后人工取药的时间,求出人工操作的总时间T3。
(5)统计出不同控制方式下所有处方出药的总时间和处方出错数量,求出处方平均运行时间和出错率。
统计结果如表1 所示。
表1 处方结果统计表
结果表明:系统采用基于单片机的DCS 控制提高了系统的稳定性,使系统出错率比采用传统PLC 控制低0.2%;同时该控制方法提高了系统的出药效率,处方平均时间比传统PLC 控制少4.5 s。
通过分析可知,在上位机向单片机发送药品信息的过程中,系统采用基于单片机的DCS 控制,只需将处方中药品所在的位置信息分别发送到各自的单片机,各单片机收到信息后则并行完成执行机构的运动控制及位置信息的采集等动作,并将采集后的信息发送至上位机进行进一步的处理,单片机之间互不影响。而系统采用传统PLC 控制时,当上位机向PLC 发送药品的位置信息后,PLC 需要控制多个执行机构的运动,同时对各机构的位置信息进行采集并进行相应处理。随着执行机构增加,它们之间的逻辑关系也会更加复杂。这就增加了PLC 的运行负担,降低了系统的稳定性。所以系统采用基于单片机的DCS 控制,大大提高了系统的稳定性和运行效率。
该设计构建了一个小型的DCS 系统,即多个执行机构的运动分别由各个单片机控制完成,而单片机只需将运动信息与PC 进行数据交换,避免了直接由一个PLC控制多个执行机构出现的编程复杂、可靠性低等弊端,提高了出药效率。同时系统可以根据需要扩展最多128个执行机构,提高了系统的灵活性。该方法操作简单、成本低廉,可以与调速器集成实现模块化控制。
(Reference):
[1]程武山.分布式控制技术及应用[M].北京:科学出版社,2008.
[2]赵建领.51 系列单片机开发宝典[M].2 版.北京:电子工业出版社,2012.12.
[3]张德江.计算机控制系统[M].北京:机械工业出版社,2011.
[4]董国增.MCS-51 单片机接口及应用实验和训练指导[M].2 版.北京:机械工业出版社,2009.
[5]赵雪峰.自动化药房关键技术研究[D].北京:北京航空航天大学机械学院,2010.
[6]霍 罡.欧姆龙PLC 应用系统设计实例精解[M].北京:电子工业出版社,2010.
[7]吴秋明,和卫星,陈晓平.基于RS485 总线的PC 与多单片机间的串行通信[J].微计算机信息,2006(23):143-145.
[8]王锦标,等.计算机控制系统[M].2 版.北京:清华大学出版社,2011.
[9]牛宗超.徐 森.基于M051 的单相交流异步电机调速控制系统设计[J].电工研究,2012(10):64-65.
[10]童奇波,仇荣刚.RS485 通信在隔膜纸成型插入机中的应用[J].轻工机械,2011,29(4)47-50.
[11]吴兴中,欧青立.一种PC 与单片机多机RS232 串口通信设计[J].国外电子测量技术,2009,28(1):74-76.