APP下载

一种基于激光测距的自动化药房库存盘点方法设计

2017-06-10栗俊艳梁晨艳

导航与控制 2017年3期
关键词:激光测距药盒机械手

弓 靖,栗俊艳,梁晨艳,赵 磊

(中国航天科技集团第十六研究所,西安710100)

一种基于激光测距的自动化药房库存盘点方法设计

弓 靖,栗俊艳,梁晨艳,赵 磊

(中国航天科技集团第十六研究所,西安710100)

针对自动化药房储药柜的药品快速盘点问题,设计了一种将激光测距传感器固定安装在机械手上,通过激光测距技术计算药盒数量的方法。采用贝加莱控制系统作为执行机构,上位机软件采用C#作为开发平台,二者采用MODBUS协议通信进行实时信息。上位机采用等代价搜索法对盘点储位进行路径优化,通过RS485通信获取激光测距返回数值来计算储药位药盒数量。实际运行结果表明,该系统可以实现自动化药房的快速盘点问题,并且可靠性高,大大降低了药房盘点的劳动强度。

自动化药房;库存盘点;激光测距;ModBus通信;等代价搜索

0 引言

近年来,医院药房坚持以患者为中心,药师的工作内容从传统的操作型向知识技术服务型转变[1-2]。传统的盘点统计由于医院药房药品的种类、数量较多,出、入库频繁,药房工作人员都将面对成千上万的处方单和出、入库单据,工作量大,出错率高,信息化程度不高。

科技进步使自动化控制技术在多个领域广泛应用。20世纪90年代初,随着现代药品管理思想的推广,诸多发达国家开始了关于药房自动化建设的研究[3],自动化药房已经成为医院药房发展的必然趋势[4],药品盘点作为医院药房药品管理的一个重要环节直接反应了药品的管理质量[5]。因此,采用自动的方式进行盘点,使药师从繁杂的体力劳动解放出来,投入到对门诊和住院患者的用药指导和监督上,具有重要意义。

1 系统设计

系统结构如图1所示,结构部分由储药柜、机械手、激光测距仪构成。储药柜由药槽底板、隔板、传动组件组成,药槽底板水平放置在储药装置内部,多个隔板平行的插在药槽底板上,形成多个宽度可调节的药槽。机械手设计为二轴机械手及左右上药机构,在左右上药机构各安装一只激光测距仪。机械手X向、Y向分别采用800W和400W贝加莱伺服电机控制,定位精度高于0.5mm。机械手和储药柜的位置固联起来,保证机械手或储药柜的移动不导致相对位置的改变。激光测距仪固定安装在机械手上,盘点过程中激光测距仪随机械手移动到达目标储位,测量固定位置(安装位置)到药盒的位置。

图1 系统结构图Fig.1 Diagram of system structure

图2 控制系统结构图Fig.2 Structure diagram of control system

自动化药房控制系统结构如图2所示,控制层采用贝加莱控制系统。贝加莱可编程计算机控制器PCC是一种面向运动控制、过程控制和网络控制的专用控制系统,是集标准PLC、数控系统和工业计算机的性能特点与一体的智能控制器,其模块化的硬件和软件结构可根据设计者的控制需求组合成具有厂家应用特点的专用控制系统。控制系统软件开发采用Automation Studio平台,CPU采用X20CP1583,通过POWERLINK实时以太网总线与伺服驱动器进行数据交换。

上位机开发主要分为人机交互界面和数据库设计,数据库采用SQL 2008建立[6],用来存储储药柜中每个储位信息、药品信息、位置信息等。人机交互界面采用C#软件开发[7],主要实现了整个系统的后台管理,并实现了与PLC的通信以及激光测距传感器的通信;与PLC控制系统采用ModBus TCP/IP协议建立实时通信,传递工作指令,并接受控制系统反馈。

2 上位机软件系统设计

上位机软件系统的流程图如图3所示,自动化药房管理系统登录后,建立与PLC控制系统的实时通信,实时传递上位机的盘点指令信息以及获取机械手的状态信息。在自动化药房设计中,设计全盘点和药品盘点2种方式。全盘点即所有储位的盘点方式;药品盘点顾名思义按照药品进行盘点,操作人员在人机操作界面上选择需要盘点的药品名称,上位机会自动根据所选药品在数据库中筛选盘点的储位。当上位机发送盘点指令,上位机对指令进行分析,规划盘点路径。在机械手空闲状态下到达规划第一个储位,程序发送测距指令,获取有效数据后根据距离和该储位的药盒宽度信息计算药盒数量并更新数据库中药品盘点数量。

软件系统的关键技术主要包括激光测距、实时通信模块和测距路径规划模块。

2.1 激光测距传感器通信

图3 软件逻辑流程图Fig.3 Flowchart of software logic

激光测距仪采用型号为S85-MH-5-Y03,精度为0.1mm,量程范围为20mm~119200mm,采用RS485串口通信编程。在工业控制中,SerialPort类广泛地应用于串口通信程序的设计中。在利用SerialPort类进行串口编程时,首先在程序代码起始位置加入包含SerialPort类的命名空间Using System.IO.Ports,然后定义SerialPort类实例,设置通信端口号,波特率、数据位、停止位和校验位分别为115200、8、1、None。采用应答式与传感器进行对话,发送数据为5位,命令中第3位为节点号,在传感器界面上设置节点号为“0”,发送数据格式如表1所示。

表1 数据发送格式Table 1 Data transmission format

返回数据格式为3个字节的一串数据,数据格式如图4所示。

图4 数据返回格式Fig.4 Data return format

每个字节的前2位表示数据开始,当接受数据为3个字节,并且这3个字节起始两位分别为01、10和11,则认为数据有效。测距的数值为如图4所示的剩余16位组成的二进制数,“10 101101 111001”转换为十进制为11129(单位:mm)。

2.2 PLC与上位机实时通信

软件系统除了提供人机操作界面,还兼顾与下位机实时通信的功能,系统采用多线程技术实现窗体线程与通信线程同时运行。操作系统为每个运行线程安排一定的CPU时间,通过一种循环的方式为线程提供时间片,线程在自己的时间内运行。因为时间片相当短,因此感觉多个线程同时运行[8]。System.Threading命名空间提供一些可以进行多线程编程的类和接口,在用户登录后系统启动通信线程,创建并启动线程的代码如下:

CommuThread为线程的入口函数,在该函数中实现PLC与上位机的实时通信,包括往PLC对应地址写上位机信号以及读取相应地址的信号。在该部分设计中,定义全局公有数组arr_read[400]和arr_write[500]分别代表读数据数组和写数据数组,随着线程的运行以非常短的周期循环往PLC读写数据。定义401~405为写地址,写的内容为激光传感器到达储位对应机械手的X坐标、Y坐标以及用左右哪个上药机构到达;定义411~412为读地址,读的内容为机械手到位信号和机械手反馈X坐标、Y坐标以及反馈的上药机械手号,该部分独立于窗体线程单独运行。在窗体程序中,需要通信只需对数组arr_read[400]和arr_write[500]进行操作即可,例如定义读取机械手到位信号状态地址为501,直接获取arr_read[501]的值即获取机械手是否到位。

2.3 测距路径规划模块

在盘点时,上位机根据用户选择的盘点方式对筛选出的储位进行排列形成链表,以便程序后续依次发送给PLC。在全盘点模式下,采用S形路线进行盘点。在药品盘点模式下,由于所选药品所在储位为非连续的、没有规则的,因此需要给出一种排列机制使得机械手不走弯路,快速完成盘点。设计将储药柜背面即上药一面的左下角作为坐标原点,向右X向递增,向上Y向递增,每个储位的坐标保存在数据库中。盘点时从机械手零位出发,遍历所有符合要求的储位,最终回到机械手零位。假设机械手在运行过程中运动速度恒定,忽略升降速部分。因此使得盘点效率最优的问题归结为从机械手零位出发,连接所有盘点储位的最短路径问题。

该问题同著名的“旅行商”问题类似,都是从起点出发,经过每个结点恰好一次,最终返回起点。目前为止没有有效的计算旅行商问题的有效算法,宽度优先搜索算法是解决这类问题通用的最直接的算法。该算法罗列所有种路径的可能,N个储位就会有N种路径,这是一种费时的算法,并不是一种优秀的算法。本文采用等代价搜索法来确定一条最短路径,该算法对宽度优先搜索进行了部分优化,用来解决寻找从起始节点到目标节点具有最小代价路径问题,算法步骤如下:

假设盘点有A、B、C、D、E这5个储位,5个储位间两两距离如图5(a)图所示,图5(b)~图5(e)为等代价搜索法构造最优路径的过程。

图5 等代价搜索法构造最优路径过程图Fig.5 Search method of uniform-cost search process

3 PLC控制系统软件设计

PCC的系统软件采用分时多任务机制构筑应用软件的运行平台,应用程序的运行周期和程序长短无关,仅由操作系统的循环周期决定。将应用程序的扫描周期同真正外部的控制周期区分开来,满足了真正实时控制的需求。PCC的应用程序由多任务模块构成,给项目应用软件的开发带来了很大便利。

程序设计通信任务模块、轴控制任务模块以及盘点任务模块来完成盘点功能控制,这些任务以2ms的周期进行不断扫描。在通信模块中,程序将上位机写给PLC的信息批次拷贝到连续地址段中,同时将PLC反馈给上位机的数据写到相应地址,以便上位机实时读取;轴控制程序主要调用贝加莱ACP10功能块实现电机运动控制;盘点任务的控制逻辑如图6所示。在系统上电后,程序对各轴进行轴网络初始化,并且自动回零,回零完毕后在零位等待命令。当上位机发送盘点命令,程序在检测信号正确的前提下设置轴参数,设置运动方式为绝对位置方式,根据上位机信号设置绝对位置、速度、加速度、减速度,通过轴控制程序驱动电机到目标位置。

图6 PLC控制逻辑流程图Fig.6 Flowchart of PLC control logic

4 实验验证

如表2所示,在软件中查询某药品有6个存储货位。机械手从零点出发,到达每一个货位的顺序按照等代价搜索法排序。本项目设计的激光测距仪安装位置到药槽最前端为1462mm,用于计算药盒总长度的数值为1462减去测量值。例如测距为498mm,那么存储药盒的总长度为964mm,每个药盒的长度为80mm,可计算出在该货位药槽的药盒为12个。

经过多次人工盘点与激光盘点进行比较,盘点差异小于0.5%,证明该盘点方法能够有效地减少人力。

5 结论

医院自动化药房的建设主要是为了改变药师的劳动模式,提高医院的药品管理水平。本文在自动化药房快速发药设备基础上结合激光测距技术开发了盘点模块,重点研究了激光测距传感器的通信、实时通信模块建立以及盘点路径优化问题,成功实现了储药柜药品的自动盘点功能。项目实时可以减轻药师盘点的劳动强度,并且能够提高医院的药品管理质量。

表2 实验数据表Table 2 Sheet of experimental data

[1]张石革,马国辉.论药师职责转型的时代使命与其必然性[J].中国药房,2006,17(2):84.ZHANG Shi-ge,MA Guo-hui.Responsibility transformation of pharmacists and its necessity[J].China Pharmacy,2006,17(2):84.

[2]汪萌,白少华,李菁.自动化建设对医院药房的发展影响[J].中国药业,2013,22(2):51.WANG Meng,BAI Shao-hua,LI Qing.The influence of automation construction on the development of hospital pharmacy[J].China Pharmaceuticals,2013,22(2):51.

[3]Subramanyan G S,Yokoe D S,Sharnprapai S,et al.Usingautomated pharmacy records to assess the management of tuberculosis[J].Emerging Infectious Diseases,1999,5(6):788-791.

[4]赵陶丽.药房自动化是医院药房发展的必然趋势[J].首都医药,2009,16(24):31.ZHAO Tao-li.Pharmacy automation is the inevitable trend of the development of hospital pharmacy[J].Capital Medicine,2009,16(24):31.

[5]彭海莹,季波.我院门诊西药房药品盘点方法的实施及讨论[J].中国药房,2004,15(12):728-729.PENG Hai-ying,JI Bo.Implementation and discussion of drug inventory method in western hospital of outpatient department[J].China Pharmacy,2004,15(12):728-729.

[6]明日科技.SQL Server从入门到精通[M].北京:清华大学出版社,2012.StarQ.SQL Server from entry to proficiency[M].Beijing:Tsinghua University Press,2012.

[7]王小科,徐薇.C#从入门到精通[M].北京:清华大学出版社,2011.WANG Xiao-ke,XU Wei.C#from entry to proficiency[M].Beijing:Tsinghua University Press,2011.

[8]孙鑫,余安萍.VC++深入研究[M].北京:电子工业出版社,2006.SUN Xin,YU An-ping.VC++depth study[M].Beijing:Electronics Industry Press,2006.

Design of Automated Pharmacy Stock Inventory Method Based on Laser Ranging

GONG Jing,LI Jun-yan,LIANG Chen-yan,ZHAO Lei
(The 16thInstitute,China Aerospace Science and Technology Corporation,Xi'an 710100)

According to the problem of speedy stocktaking of drug which stored in cabinet of automated pharmacy,a kind of method which counts by laser ranging sensor fixed installation on mechanical hand is designed.The PC software adopts C#as development platform,and B&R as control system which communicates with PC by MODBUS communicates protocol.The PC optimizes the path of counting by a method of uniform cost search,and gets counting number by laser ranging sensor which communicates with PC by RS485 communication protocol.The practical running results show that the system with high reliability can realize rapid automated pharmacy inventory problems,and reduce the labor intensity of the pharmacy inventory greatly.

automated pharmacy;stock inventory;laser ranging;ModBus communication;uniform cost search

TP273.3

A

1674-5558(2017)01-01299

10.3969/j.issn.1674-5558.2017.03.004

弓靖,女,硕士,工程师,研究方向为自动化设备上位机软件。

2016-08-04

猜你喜欢

激光测距药盒机械手
应用电子药盒辅助肺结核患者服药管理的实施情况研究
基于机器视觉的开关操纵机械手研究
便携药盒有四怕
人体体感感知机械手设计与实现
拆弹帮手
基于单片机控制机械的压铸机械手优化设计
基于回波强度的激光测距误差补偿算法研究
便携药盒有四怕
基于激光测距的汽车防撞警示系统设计
激光测厚技术专利申请分析