时间:2024-05-04
万欢,魏雯,赵展,贾作文,肖烨
(苏州工业职业技术学院,江苏苏州,215104)
本文提出了一种区域型全自动药库系统设计,是基于Cortex M3内核的32位微控制器,并与ESP8266相互连接,形成一个局域性网络结构的配送系统。通过Netty进行同步或者异步的网络调配,作为服务端的网络通信框架,能够提供高可靠性与高性能的网络服务[1]。基于该系统,实时的通过网络进行药品订单的自动配送,整个配送传输过程无需人为干预,仅需通过客户端进行操作。配送运输通过AGV小车进行及时准确的送药任务,能够通过服务端程序监控所有AGV小车配送的动态信息,减少了医生与患者的接触,避免人工配送时产生的风险,进一步保障医生与患者的健康与安全。
区域型全自动药库系统以安全、便捷为主,能够在新冠疫情之下,对药品隔离运输,有效隔离病毒,减少中途因常规送药而产生不必要的传染因素。在此基础上该系统将全院互联网络一体化,能够使用服务器进行同一调配AGV小车,使用WIFI网络进行节点通信,并使用服务器处理捡药系统与运输路线规划;实时监测整体运行情况,在紧急情况能够按紧急等级进行优先分配送药;并且能够促进智慧医疗现代化的发展,保障多方的安全与利益,系统总体框图如图1所示。
图1 系统总体框图
硬件系统主要包括三个部分,分别是药品运输车辆AGV小车,自动取药仓库,道路车辆检测。AGV小车通过STM32F103最小系统板控制整个小车的运行与取药送药行动,小车上配备WIFI模块整个系统通过无线模式与服务器进行通信;行进部分采用PWM控制电机转动,采用场效应管H桥式的电机驱动模块,能够输出正向与反向电压驱动大功率直流电机,保障驱动一定负载的电机[2]。自动取药仓库同样采用STM32F103最小系统进行控制电机进行出药操作,同样该取药仓库采用WIFI模块与服务器进行通信。道路车辆检测拟采用红外模块感应车辆精确位置,确保整个系统正常运行。系统总硬件电路如图2所示。
该系统方案采用STM32F103RTE6控制,该芯片拥有128KB的内部flash,20KB的SRAM,三个通用定时器与一个高级定时器。并支持包括SPI、I2C、USART、CAN等通信协议,49个通用IO口,两个16通道的ADC,主频72MHz能够支持大部分的逻辑运算,并能够运行实时操作系统,进一步优化阻塞式运行模式。通过外围电路来实现对电机的驱动和电机状态判断,通过行驶道路上布置的传感器以及车身上的传感器来对车辆自身状态与道路状态进行判断并实时反馈至服务器做出相应判断,通过出药系统的传感器与车辆反馈并服务器下发指令进行出药操作等。
直流电机驱动电路设计需要对输出电流和输出电压进行匹配,该项决定输出功率的大小;需要对电机驱动效率测试,提高驱动效率减少发热量,减少不必要的电力浪费;控制端与输出端的主从关系,电机线圈产生的感应电流对控制短的影响;电压波动对电源稳定性的影响;是否能够精确控制转速,能够改变方向也同样是电机驱动电路的重要指标。
图2 系统总硬件电路原理图
图3 H桥驱动原理图
通过场效应管驱动直流电机的电路采用常见的H桥驱动电路,H桥作为一个典型的直流电机驱动控制电路,能够采用集成芯片或者分立元件,由于驱动四个行进电机需要较高的电流需求,所以采用分立元件,防止IC因功率过大烧毁。通过H桥并能够对电机进行多种状态操作,如正转、反转、停止、制动,H桥电路需要对每个桥臂进行精确控制,防止因为同侧同时导通导致MOS管烧毁。通过对两种情况的比较,MOS-H桥型的电机驱动电路能够作为本设计AGV小车电机的驱动电路,通过各样详细参数的比较MOS管更加适配[3],H桥驱动电路如图3所示。
软件系统分为三个部分,分别是底层单片机系统,服务器控制系统与控制软件。底层单片机需药分别对STM32最小系统进行设计,实时检测车辆运行状态,通过控制电机驱动确保运行的稳定性,并反馈道路状况给予服务器进行路况分析;通过ESP8266的系统设计保障整个通信系统的稳定性。服务器控制系统通过TCP/IP协议接收局域网中各个设备发来的信息,控制整个系统,完成药品运输任务。控制软件为医生使用的控制端,为需要分配药品的患者进行配药;后端药库管理人员可以通过控制端进行检测药库剩余药量,并及时补充。整个系统仅需人工操作电脑,将系统数据归一化,完善自动药库系统。
根据一种区域型全自动药库系统的功能需求进行程序设计,服务器程序设计使用常见的操作系统Windows,采用Java与Netty框架设计的服务程序,处理接收来的数据并反馈,支持一定数量的并发。服务器程序主要通过通道进行相关数据传输,进行处理客户端与AGV小车传送的数据,并进行分析处理。
Netty是基于NIO的一种框架,NIO相对传统IO,是一种同步且非阻塞式IO,相比传统流传输,缓冲区具有更大的优势,不仅增加了处理过程中的灵活性,而且可以确保数据的安全性,确保不丢失,进一步增加TCP/IP的稳定性[4]。同时NIO采用的多路复用器,不需要像Socket那样每创建一个连接创建一个线程,能够能更加有效的利用CPU的资源,同时通过缓冲区的Buffer分配,在一定数据量的情况下,使用JAVA的自动回收机制,进一步减少内存的浪费,所以Netty更适合为服务器的软件通信框架,服务流程总体框图如图4所示。
图4 服务程序总体框图
客户端程序与服务端相对应,在本设计中客户端为医疗从业者使用,能够通过对图形界面进行选择发送命令,使服务器控制AGV小车进行取药与运输的操作。在本程序中主要涉及两个方面一个是图形界面的设计,另一个是与服务器的数据交互设计,客户端处理流程如图5所示。
图5 客户端处理流程图
图形界面设计使用JavaFX框架,JavaFX在Java8中集成在jdk之中,java11之后则采用独立的JavaFX的SDK。传统的Java图形开发需要依赖AWT等窗口工具包,在JavaFX中拥有丰富的图形与媒体API,并且JavaFX完全由Java编写,在使用该类库开发时不需要额外链接其他框架,便于学习且开发周期较短。
使用JavaFX开发无需像传统窗口工具包只能够通过代码来进行布置,通过额外的Scene Builder可以实现图形化开发,能够通过实时的界面调节进行布局的修改。其能够高效的设计图形界面,数据交互同样与服务器使用同一种通信方式的网络框架。
使用传感器采集一组数据,数据为char型8位,在正常运行中至少存在两点位于循迹线上,循迹线上的检测点值常高于其他循迹点值,在干净的面板上其他循迹点不会出现异常高值,为应变复杂环境,循迹判断前需要进行高斯滤波,将可疑点进行滤除,避免在姿态判断中出现误判现象。
电机驱动采用PWM技术,PWM全称为脉宽调制波形如图6所示,通过数字量对模拟设备驱动进行控制,使用PWM控制电机能够有效的控制车辆行驶速度,减少突然停顿与突然运行等情况。
图6 PWM波形拟真图
本设计是基于物联网技术与无线通信技术的一种局域型全自动药库系统。药品运输车辆采用STM32芯片作为控制电路,使用H桥驱动电机运行,并通过ESP-12E进行无线通信与服务器进行交互。服务系统则通过Windows端使用Netty和Java构建基于TCP/IP的服务器程序。服务器程序依赖客户端设备发送请求命令,进行分析、规划并向运输车辆发出控制命令、规划车辆取药与送药所需路径根据具体等级安排运输顺序,并且能够接收车辆实时的工作状态。客户端使用者一般为医护人员,医护人员通过患者具体情况选择药品,并选择输送至患者所在床位或房间。同样,客户端能够通过服务器接收各设备的具体运行情况,达到实时监管的作用。
通过构建物联网系统框架,控制AGV车辆运输药品,使其在区域中运输药品更加便捷,减少了医生与患者的接触,避免人工配送时产生的风险,保障了医生与患者的健康与安全。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!