您现在的位置是:首页 > 医疗

PLC控制在中药智能配药系统中的应用

2019-12-24 20:57:16

中药智能配药系统工作的过程是:首先通过医院内部局域网将在终端电脑上开出的处方传至药房配药主控计算机,然后由主控计算机在查询药品数据库的基础上形成配药指令并下达给配药机器,完成配药过程。同时,主控计算机在配药机器终端的液晶显示屏上显示患者信息,并驱动打印机输出处方的综合信息,将处方综合信息连同配药机器输出的配好的分帖包装中药一起交付患者使用。

中药智能配药系统的控制系统可分为机电控制系统和上位机软件控制系统,其结构框图如图1所示。


1 机电控制系统

  机电控制系统为分层分布式结构,采用上位机+下位机+集成电路板的技术进行综合控制。其电路系统结构框图如图2所示。具体介绍如下:


  (1)上位机使用PC机,负责管理级和监控调度级的控制。上位机不采用工控机的原因是因系统对于界面、数据库处理及网络联系等均有较高的要求。上位机的主要功能是将人机界面输入的二进制编码信息通过RS-232串口传送给下位机,并对下位机的工作状况进行实时监控,完成药方打印和液晶显示。另外,它与药品管理信息系统之间的信息交互,是通过医院内部的局域网来进行并采用TCP/IP协议实现的。

  (2)下位机负责设备级控制。其功能是接收并解码上位机发送的二进制配药信息,然后根据配药信息选定所需药品,驱动相应集成电路板进行下药控制,并驱动机械手进行定位、取出药品、包装成袋,连同打印药方一起交付患者。下位机之所以采用PLC而没有选择价格相对低廉的单片机,原因之一是为了满足中药配药机对高速运作的要求,X轴导轨和Y轴导轨均采用伺服电机驱动,而单片机对伺服电机的控制能力相对较差,很难做到精确控制;原因之二是中药智能配药系统对可靠性的要求很高,而单片机的稳定性与PLC相比要差一些,且容易受到外界电磁的干扰。

  (3)下药直流电动机的控制采用以ALTERA公司的ACEX1KACEX1K芯片为核心的集成电路板来完成。在该芯片中集成了在Max+plus II开发系统中用VHDL语言编写的控制、计数和定时功能。该电路板的功能是接收从PLC发来的命令和药品质量数,控制电动机的转数,在0.07g/转的精度下完成规定重量的下药。由于本系统使用了多达420个下药直流电机,因此采用可减少I/O点数及PLC布线的集成电路板。该系统的所有下药电机由28块集成电路板分别控制,每块集成电路板控制的下药部分相对独立。这样,检查和维修不受位置限制,具有较高的可靠性和性价比。

  1.1 PLC控制

  1.1.1 PLC配置

  本系统PLC配置采用OMRON公司的C200HEC200HE型PLC,并在其基础上扩展了一个16点继电器型开关量输出模块C200H-OC225、一个32点晶体管型开关量输出模块C200H-OD215、两个16点开关量输入模块C200H-ID212和一个四轴位置控制模块C200HE-NC413。各模块的作用为:

  (1)两个输入模块用来接收配药机器中各种接触器的位置反馈或动作的故障反馈,对其配置无特别要求;

  (2)两个输出模块发出指令,用来操作配药机器。继电器型开关量输出模块驱动电流大,但不能频繁动作,因此用来控制所有电磁阀和各种直流电机、步进电机;晶体管型开关量输出模块则正好相反,且其输出为TTL电平,具有可以与其它集成电路接口的优点,用来驱动集成电路完成下药操作。

  (3)四轴位置控制模块用来控制四轴(X、Y、Z、U)互相独立的两个伺服电机和三个步进电机。在X、Y轴上分别配置了两个伺服电机,而三个步进电机由于工作时间互相错开,全部配置在U轴上。另外,X、Y轴上各有左右限位开关和原点接近开关3个,Z轴有原点接近开关1个,这样,共7个接近开关接到C200HENC413上。该模块以不超过10ms的响应时间从PLC内存取得命令,在500kp/s的高频脉冲下与PLC内存数据建立映射关系,完成通过修改内存数据定位伺服电机和步进电机的位置以及通过内存数据反馈伺服电机和步进电机的位置情况的功能。

  1.1.2 伺服电机控制电路

  在本系统中,配置了两个OMRON公司的SMARTSTEP A伺服系统,对X、Y轴完成定位操作,具体控制电路如图3所示。其中包括四轴位置控制模块C200HE-NC413、通用控制电缆R88A-CPU002S、伺服驱动器R7D-AP04H、伺服电机R7M-A40030-BS1(为带制动器的带键直轴圆柱形电机)。图中,CN1代表伺服驱动器,CN2代表与伺服电机同轴的分辨率为2000脉冲/转的光学增量型编码器用连接器,它可以完成从驱动器到伺服电机的具有位置反馈和速度反馈的闭环控制。在伺服电机中,M代表电机本身,E代表编码器,B代表动力制动器。由于固定脉冲代表固定距离,因此当伺服电机接收到控制系统发出的若干条脉冲指令后,就可以完成预定的定位。在本系统中,设置电机的分辨率为5000脉冲/转(0.072度/步),伺服电机连接的同轴减速器比例为3:1,其带动导轨移动的速率为60mm/转。因此,伺服电机带动导轨移动的速率为20mm/5000脉冲。伺服电机控制电路的控制原理为:位置控制单元从设备处得到各种控制信号,并根据不同药罐间的距离与20mm/5000脉冲的数据大致算出映射到四轴位置控制模块NC413NC413在PLC中的脉冲数据;然后通过通用控制电缆输出高速脉冲给伺服驱动器,由其驱动伺服电机,使之根据误差反馈自动微调该数据,最终达到精确定位的目的。

  1.1.3 步进电机控制电路  步进电机驱动器与C200HE-NC413的连线类似于图3中伺服电机驱动器与C200HE-NC413的连线,而步进电机驱动器与步进电机间的连线则如图4所示。本系统中控制机械手摆动的步进电机采用STONE公司的86BYG250B,驱动器采用STONE公司的混合式步进电机驱动器SH20806CSH20806C;控制送袋与推袋的两个步进电机采用SANYO公司的103H548103H548,驱动器采用STEP公司的四相混合式步进电机细分驱动器ST4HB03XST4HB03X。步进电机的控制类型为不具有位置反馈功能的开环控制,控制方法为在确定运动起点与终点的基础上,将位移或角度改变以200脉冲/转(0.18度/步)为分辨率转变为脉冲数,写入映射在NC413NC413中的内存位置,从而控制步进电机完成定位。


  1.2 系统工作步骤

  系统中有各种电机、限位、定位用传感器以及与真空气泵连接的电磁阀,可以完成取空药袋、打开空药袋及封装、输送药袋等功能,其工作时序见图5。


  1.3 PLC程序实现

  利用OMRON的编程软件CX-Programmer完成梯形图的编写,程序包括如下六个模块:

  (1)初始化模块,其功能是将PLC的内存单元初始化,进行电气部分的归零操作,目的是为配药系统进行运转做好准备,防止误操作对系统造成不可挽回的破坏;

  (2)接收模块,其功能是接收上位机界面中输入的二进制编码的信息(包括药品种类、数量、贴数等),存入预先定义的内存单元;

  (3)发送模块,其功能是将药品种类、数量等按照数据库与伺服电机结构中已定义的方式分别转变为下药直流电机位置和转动圈数,并发送到集成电路板,完成下药操作;

  (4)反馈模块,其功能是接收来自集成电路板的直流电机转动停止(即规定重量下药动作完成)的反馈信号;

  (5)控制模块,其功能是在确定下药过程完成后,驱动机械手完成取空药袋、打开空药袋、定位及集药等任务,并驱动药袋封口装置动作,触发直流电动机带动皮带转动,送出药品;(6)故障处理模块,其功能是接收各处传感器反馈的接近或故障信号,随时停止系统的配药动作,以进行故障处理。

  此外,在发送模块和控制模块中建立时间联系,使得在一次多贴药配药过程中,下一贴药的下药、取空药袋动作与上一贴药的封口、传输动作并行进行,缩短了配药时间。

2 上位机软件控制系统

  上位机软件控制系统包括药品信息数据库和人机对话界面,前者主要存储医院的药品信息,包括名称、数量、价格、药性、有效期等;后者则与数据库建立连接,可以实现查询、开处方、药品管理、处方管理、打印、液晶显示等功能。其流程图如图6所示。


  2.1 工控组态软件FIX32

  FIX32是美国 IntelluTIon公司开发的基于视窗的大型应用软件,包含动态显示、报警、趋势、控制策略、控制网络通信等组件。在本系统中,应用FIX32编写了主界面和系统运行的动态模拟显示程序。

  (1)主界面是上位机与下位机之间的连接桥梁,其功能是与VB编写的界面建立联系,激活配药控制界面和药品管理界面。

  (2)系统运行动态模拟显示的实现方式是首先在FIX32的DRAW模式下画出整个配药系统的模拟图,包括静止物体及各种动作显示,设定限位与故障反馈警报;然后在FIX32中对I/O点进行组态,并在数据库中建立各药罐、各动作I/O类型及其在下位机PLC中的地址。这样,当PLC中的程序开始运行时,相应地址中的模拟量或开关量便发生变化。这种变化可在配药系统动作的同时显示到动态模拟界面,使动态模拟同步进行。在配药系统封闭运行的情况下,其作用之一是可以从动态模拟画面中实时观察到系统的运作情况,之二是可在系统发生可反馈性故障时在第一时间得到提示,快速完成对故障的调整。

  2.2 界面编辑软件VB

  该部分软件包括取药与加药两个模块,均具有权限控制功能,用户需输入密码,可保证系统的安全性。VB界面框架图如图7所示。


  取药模块的主要任务是与ACCESS数据库取得联系,将需要的药品名、数量、贴数等通过FIX32传入下位机中,完成取药操作。其中,在数据库中的药品名采用拼音查询,数量与贴数则可多次修改。同时,VB还要向液晶屏输出患者及处方信息,并完成处方打印。

  在取药模块中进行了取药任务优化处理算法的设计,其目的是在医生开药顺序任意的情况下完成最短时间的配药过程。由于机械手在X、Y轴伺服电机的控制下的匀速行走速度为1m/s,因此时间最短即为行走路线最短,这个问题等价于典型的旅行商(TSP)问题。在本系统中,420个药罐分为前后两面各14行等距排列,每一面中又分左右两侧各7行,每行15个。此外,药罐位置每单位Y轴坐标与三个单位X轴坐标相同,且机械手对前后两面的取药由步进电机摆动控制。经过简单计算可以确定本系统中实际节点应为66个。采用新的禁忌遗传算法在VB中编程,该算法对多节点系统设置禁忌步长和松弛步长。引入张弛效应,与传统遗传算法相比,减小了可行解空间,提高了收敛速度。

  加药模块为药品管理员专用,主要任务是从界面中修改数据库中货存药品的所有信息。

  对散装中药实现定量配置的中药智能配药系统在控制方法上有多种创新,具有良好的人机界面,能在足够短的时间内对指定药方完成配药。该系统通过了上海市科委主持的专家鉴定,达到国内领先、国际先进的水平,在运行中情况良好,可靠性和安全性都得到了验证。