全自动摆药机出药模块设计及在医院中的应用

王婷婷

北京积水潭医院 信息网络中心,北京 100035

[摘 要]为解决西药房手工操作劳动繁重,效率低的问题,本文设计通过单片机实现了储药柜自动出药模块。该出药模块通过STM32单片机对各出药单元进行控制,其工作原理是利用电磁铁驱动储药槽翻板使药盒进入升降机,通过传送带将药盒送入指定位置实现出药。本设计合理可行,为药房自动化系统提供了一种可行的出药模块设计方法。

[关键词]全自动摆药机;STM32单片机;药盒;自动出药

引言

1 系统结构设计

随着科技不断发展的今天,自动化技术已经渗透到各个应用的领域。在医学领域自动化技术得到了广泛的发展,其中药房自动化技术也得到了飞速的发展。我国是人口大国,城市人口密度较高。这对医疗机构造成了一定的压力,药房取药经常需要排队。有些大型的医院已经开始引进药房自动化系统,在一定程度上提高了药房取药的效率,不但降低了人员带来的失误风险而且减少了病人排队等药的时间。药房自动化系统也将药房的员工从繁重的劳动中解放出来。本文针对系统中的出药模块设计进行说明,详细地阐述了自动出药模块的自动化控制系统。

本系统主要完成把储药槽中对应药方中的药快速地输送到药房出药口,因此系统首先能够接收药房计算机指令。为了提高系统的可靠性,减少发生故障及运行成本,系统在进行出药设计中要尽量减少运动部件的数量。出药系统要能够适应药房多层设计的储药柜。

自动出药模块在药房自动化系统中占有重要的地位,其主要构成结构,见图1。

图1 自动摆药机系统构成

其中药房计算机通过以太网总线向出药模块发送指令。在接收到指令后,摆药机根据指令判断出药方所需药品的具体位置,即药品在储药柜中所处的行及列。摆药机通过升降机确定行的位置,列的位置对应的推拉式电磁铁驱动储药槽前端的翻板把药品送入升降机的传送带上。当所有药品准备完毕后,升降机的传送带工作将药品传送到指定的出药口。药品再通过自身重量通过螺旋式滑梯传送到药师的工作台。

2 系统开发

2.1 系统硬件设计

出药模块采用单片机进行控制,型号是意法半导体的STM32系列型号,主要电路简要介绍如下。

系统STM32的MCU最小系统部分,见图2,主要是各部分的引脚定义和电源及震荡电路。其中震荡电路采用外部8 MHz晶振,在MCU时钟系统中通过初始化生成168 MHz的频率供系统使用。MCU选择的型号为STM32F407ZET6,这款芯片采用ARM体系中的Cortex M4内核,带有FPU和DSP指令集。它拥有112个通用I/O口,完全满足本系统的I/O分配。其中使用了32个I/O作为药盒出药光电检测输入,10个I/O作为升降机行位置检测输入。因此每个储药柜总共可摆放320种药品可供选择。7个I/O作为扩展输出用于控制推拉式电磁铁。除此之外还有以太网、报警、升降机控制所需要的I/O等。

电路板供电部分,见图3。系统通过开关电源供给电路12 VDC。12 VDC用于推拉式电磁铁,5 VDC和3.3 VDC用于电路中的芯片供电。lm2596是常见的稳压电源芯片,是降压型电源管理芯片,他能输出3 A的驱动电流。图中LM2596T-5.0将直流12 V电压变换成直流5 V电压,再经AMS1117-3.3输出MCU使用的3.3 V直流电压。

以太网扩展部分,见图4。STM32F4内部自带网络MAC控制器,因此只需要外加一个PHY芯片,即可实现网络通信功能。系统选择LAN8720A芯片作为系统的PHY芯片,LAN8720A是低功耗高性能的10/100M以太网传输模块,该芯片采用RMII接口与STM32F4通信,占用的I/O口少。它和一片HR91105A(RJ45头)一起组成一个10M/100M自适应网卡。通过此网卡可以接收药房计算机发送的指令。

电路扩展I/O,见图5。由于储药柜设计了32列的储药槽,因此升降机前端共需要32个推拉式电磁铁。系统通过4片74HC138对I/O进行了扩展,因此只需要消耗7个MCU的I/O即可实现32路I/O输出。通过设置E1、E2、EN1、EN2的电平选择不同的74HC138芯片,A、B、C的电平决定了选择不同的管脚输出。图5显示了其中的两片扩展电路芯片。

升降机的动力通过伺服电机实现,我们采用松下小惯量MSMA082A1G型交流伺服电机,额定输出功率为750 W。配合使用MSDA083A1A型伺服驱动器进行驱动。伺服驱动器手册中给出的脉冲接口电路方式,见图6。单片机接口电路,见图7,端子P6的2脚用于脉冲控制,3脚用于正反转控制。

图2 CPU部分电路

图3 电源电路

图4 以太网电路

图5 推拉式电磁铁控制电路

图6 伺服驱动器脉冲接口模式

图7 伺服驱动器驱动电路

单个推拉式电磁铁驱动电路,见图8。由于储药柜有32列的储药槽,因此在升降机的前端安装有32个推拉式电磁铁并一字排开。电路通过光耦隔离后利用MOSFET控制电磁铁。由于电磁铁是感性负载因此在电磁铁断电的瞬间会产生较大的感应电流,二极管D6正是起到释放感应电流的作用。系统中控制传送带驱动继电器也采用此电路,继而继电器驱动交流接触器控制传送带电机的起动和停止。图中只列出了其中的一路。

报警电路和用于调试用的JTAG电路,见图9。当系统出现故障时,除了在药房计算机上显示故障文本外,在现场进行可以有蜂鸣器报警。

图8 推拉式电磁铁驱动电路

图9 报警电路和调试JTAG电路

MCU上电复位电路和输入检测电路,见图10,输入电路用于检测储药槽出药计数。这里未列出升降机行位置检测,原理与图10中基本类似。

图10 输入和复位电路

MCU与12864液晶显示器的接口电路,见图11。本系统的液晶使用ST7920控制器,采用并行控制方式。显示器体积小、功耗低、显示操作简单。

图11 液晶接口电路

按键输入接口电路,见图12。MCU的I/O口通过电源进行上拉。因此当检测到低电平时,就表示有按键被按下。

2.2 系统软件设计

系统的程序是在德国KEIL公司的RealView MDK软件下进行编写的,使用的软件版本为MDK5.11a,该版本采用uVision IDE集成开发环境,是目前针对ARM处理器较为流行的软件,使用十分的方便。

图12 键盘输入电路

软件系统首先进行时钟的初始化工作,Cortex M4的时钟较为复杂,因此这里要介绍时钟初始化中的两个函数如下:

代码中RCC和FLASH是MDK中定义的结构体,变量retry可以防止因各种原因造成HSE无法完成准备而使程序卡死。

程序中对I/O的操作应用了位带的功能,Cortex-M3内核的ARM芯片,支持位带(bit band)操作,Cortex-M4内核继承了此功能,位带操作是把每个比特“膨胀”成一个32 位的字。通过访问这个32位字的地址达到操作比特位的作用。例如本程序中输出驱动电磁铁的过程用到如下指令:

PBout(6)=0;

PBout(5)=0;

PBout(4)=0;

PBout(3)=0;

PBout(2)=1;

其中PBout(n)是头文件中定义的一个宏,定义如下:

#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n)。

宏BIT_ADDR(addr, bitnum)定义了位带的操作,在头文件中对其进行了详细的定义和描述。在实际的程序中我们将以上描述的多条指令定义成子程序供主程序调用。

程序在使用中经常会用到延时函数,例如液晶显示和键盘消抖等的程序中都用到多次。这里介绍一下本程序中是如何实现的。Cortex-M4内核包含了一个SysTick定时器,它是一个24位的倒计数定时器,当从设定值减到0时将从RELOAD寄存器重新装载定时初值。利用STM32的内部SysTick来实现延时,既不占用中断,也不占用系统定时器。本系统采用168 MHz的系统时钟,而SysTick的频率为系统频率的8分频。因此SysTick的频率为21 MHz,即SysTick每减1用时1/21 μs,因此我们一直统计SysTick的计数变化,例如定时50 μs则计数直到变化了50×21,说明定时达到50 μs。初始化及延时函数定义如下:

程序中tempamp;0x01用于判断SysTick定时器是否处于开启状态,可以防止SysTick被意外关闭导致的死循环。

3 全自动摆药机的设计结果以及实践应用体会

全自动摆药机实物图,见图13。通过在我院一段时间的实践应用,具体的应用体会简述如下。

图13 全自动摆药机实物图

3.1 提高摆药准确性

摆药机实现了药品的动态管理。当药品数量低于设置的库存低限时,可提示药师加药、避免发生缺药情况。同时,系统可以协助把关,当加药位置错误时,摆药机在分包装过程中会拒绝加药,不仅避免了投药差错,而且机器完成摆药后药师需要再次核对,大大提高了摆药的准确性,保证了患者的用药安全。

3.2 减少差错,保障用药安全

与传统手工摆药相比,摆药机摆药减少了药师由于情绪、状态、环境等人为因素的影响,使差错率大大降低,更好地保障了用药安全。

3.3 提高口服药的摆药速度

应用摆药机前,口服药品使用较多的病区药房手工摆药时间为15~30 min,应用系统后只需5~10 min;门诊西药房手工摆药时间为2~3 min,应用系统后只需1~2 min,大大缩短了护士、病人的等候时间,可保证患者及时用药,效率提高了2~3倍。

3.4 避免污染

摆药机完成药房口服药品的分包装工作,使药品分装符合环境及卫生条件的要求,摆药全过程密封操作,避免了药品污染。

3.5 摆药机存在的不足

摆药机与其诸多优势不相适应的是成本问题。摆药机的固定成本和运行成本均较高,这成为制约药品调剂实现自动化的主要因素。

4 结束语

通过STM32单片机控制的全自动出药模块是一种低成本实现自动取药设备有效方式。系统在使用后明显提高药品调配效率,能在很大程度上缩短病人取药时间、提高药品发放的准确性,将传统发药模式下的后台调配人员解放出来。

我院病区药房以及近两年门诊西药房全自动摆药机的使用,不仅使患者用药得到保障,提高了摆药的准确性,避免了药品污染,又可以帮助药师降低劳动强度,提高了工作效率,还能够大大降低摆药时的差错率,提升了医院的药学服务水平。得到患者、护士及药师的广泛好评,提高了医院的整体服务水平。摆药机具有的先进摆药模式保证了患者的用药安全,是今后医院药房发展的趋势。

[参考文献]

[1] 刘军,张洋,严汉宇,等.精通STM32F4(寄存器版)[M].北京:北京航空航天大学出版社,2015.

[2] 蒙博宇.STM32自学笔记[M].2版.北京:北京航空航天大学出版社,2014.

[3] 意法半导体(中国)投资有限公司.RM0090参考手册[EB/OL].(2013-2).http://www.stmcu.org/document/list/index/category-150.

[4] 意法半导体(中国)投资有限公司.PM0214编程手册[EB/OL].[2016-4].http://www.stmcu.org/document/list/index/category-179.htm.

[5] 意法半导体(中国)投资有限公司.RM0368参考手册[EB/OL].(2015-5).http://www.stmcu.org/document/ detail/index/id-214642.htm.

[6] 意法半导体(中国)投资有限公司.DS10086编程手册[EB/OL].(2014-02-19).http://www.stmcu.org/document /detail/index/id-214864.htm.

[7] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.

[8] 泽雷尔.嵌入式系统的C程序设计[M].北京:机械工业出版社,2002.

[9] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.

[10] 蒙博宇.STM32自学笔记[M].2版.北京:北京航空航天大学出版社,2014.

[11] 曾碰华,吴静冰,郑若菲.呼吸机湿化器不同加水方法的效果评价与分析[J].中国现代药物应用,2010,4(15):239-240.

[12] 百度文库.LM2596中文资料[EB/OL].(2010-8-15).http://wenku.baidu.com/view/44c441c52cc58bd63186bdab.html.

[13] 豆瓣小组.推拉式电磁铁工作原理[EB/OL].(2015-4-2).https://www.douban.com/group/topic/73784187/.htm.

[14] 360doc.MOSFET的10种驱动电路图[EB/OL].(2012-11-20).http://www.360doc.com/content/12/1120/21/9342219_249176609.shtml.

[15] 百度文库.12864液晶中文资料[EB/OL].(2010-5-28).http://wenku.baidu.com/view/4b6bbd5f804d2b160b4ec046.html.

[16] 松下电器产业株式会社.Panasonic交流伺服电机驱动器驱动器MINASA系列使用说明书[S].

Design and Application of Automatic Dispensing Machine Module in Hospital

WANG Tingting
Information Center, Beijing Jishuitan Hospital, Beijing 100035, China

Abstract:In order to solve the problem of heavy labor and low efficiency of manual operation in Western pharmacy, the present study designed an automatic medicine storing cabinet module based on single chip microcomputer (SCM). The automatic medicine machine module was controled by using STM32 SCM, whose working principle was to use electromagnet to drive the tank to turn the medicine box into the lift, and deliver the medicine box to the designated place by the conveyor belt. The design is reasonable and feasible. It can provide a feasible method for design of drug delivery module.

Key words:automatic medicine dispensing machine; STM32 single chip microcomputer; medicine box; automatic discharging

[中图分类号]R952

[文献标识码]B

doi:10.3969/j.issn.1674-1633.2017.11.023

[文章编号]1674-1633(2017)11-0092-06

收稿日期:2017-07-04

修回日期:2017-07-12

作者邮箱:630169039@qq.com

本文编辑 袁隽玲