




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
函授2008专升本计算机科学与技术本部毕业(设计)论文.ii.自弹滚压式血泵毕业论文目 录第一章 自弹滚压式血泵的应用11.1自弹滚压式血泵的背景11.2自弹滚压式血泵需要解决的问题11.3自弹滚压式血泵的解决方案1第二章 自弹滚压式血泵系统结构32.1系统基本结构32.2物理实现3第三章 MODBUS协议53.1协议内容53.2通信过程6第四章 硬件实现74.1选型74.1.1 上位机选型74.1.2 下位机及相关部件选型74.2 上位机硬件实现84.3 下位机硬件实现84.3.1 A/D取样电路实现84.3.2 D/A输出电路实现94.3.3 I/O输出/输入电路实现104.3.4 断电报警电路实现104.3.5 停泵报警电路实现114.3.6 臭氧浓度调节电路实现11第五章 软件实现135.1 单片机与触摸屏地址对应关系135.2 功能码定义135.3 校验码生成155.4 上位机软件实现185.4.1 上位机的程序应用185.4.2 上位机初始化195.4.3 预充处理程序205.4.4 臭氧血液混合处理程序205.4.5 臭氧浓度处理程序245.4.6 报警处理程序265.5 下位机软件实现285.5.1 下位机的程序应用285.5.2 下位机初始化295.5.3 数据接收、发送处理程序305.5.4 数据包处理程序345.5.5 A/D取样处理程序405.5.6 D/A输出处理程序425.5.7 血泵流量纠正程序42第六章 总结45参考文献46基于MODBUS协议的医用臭氧治疗仪的设计与实现第46页第一章 医用臭氧治疗仪的应用1.1 医用臭氧治疗仪的背景利用臭氧对病毒性肝炎治疗在临床上的应用已越来越广泛,并已取得很好的治疗效果。医用臭氧治疗仪将为病毒性肝炎患者提供一套与免疫激活气血混合器配套使用的臭氧免疫调节系统,该系统可以根据肝病治疗的需要,将医用级氧气精确而稳定的制成治疗所需臭氧浓度,经过免疫激活气血混合器的将血液和臭氧充分混合激活、活化后的血液回输到人体,起到病毒杀灭、提高人体干扰素、免疫调节、激活红细胞代谢、激活免疫活性细胞、激活人体抗氧化酶系统的作用。1.2 医用臭氧治疗仪需要解决的问题 医用臭氧治疗仪(以下简称治疗仪)是将一定量的人体血液引到体外,与一定比例的医用臭氧气体混合后,回输到人体的自动治疗过程。在治疗过程中要分别对医用臭氧气体的浓度、人体的血压、血液循环管路中的气泡进行监测。一旦参数偏离设定值,治疗仪将发出声光报警信号,提醒医务人员进行处理。另外治疗仪的相关参数和功能要符合医疗器械的电气安全标准。例GB9706.1医用电气设备通用安全要求及GB9706.2医用电气设备 血液透析、血液透析滤过和血液滤过设备的安全专用要求等提出血泵停泵报警、设备断电报警要求。1.3 医用臭氧治疗仪的解决方案触摸屏与单片机通过Modbus协议进行通信。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境,大大降低了产品的制造成本。如图1-1 图1-1 触摸屏与单片机通信示意图本文以AT89s52单片机和人机电子有限公司的eView MT5600T型触摸屏为例,应用到医用臭氧治疗仪的通信程序的开发过程。首先介绍医用臭氧治疗仪的总体结构,第三章MODBUS协议的通信原理及通信接口的选择。第四章介绍了硬件的实现,包括上位机的选型、下位机的选型、下位机的各单元电路的实现。第四章介绍了医用臭氧治疗仪的软件实现,包括上下位机的地址对应、功能码的定义、校验码的生成、上位机各软件实现、下位各软件实现。其中上位机重点介绍了初始化、预充程序、臭氧血液混合程序、深度处理程序、报警处理,下位机重点介绍了初始化、数据接收、发送程序、数据包处理程序、A/D取样程序、D/A输出程序、血泵流量纠正程序等等。第二章 医用臭氧治疗仪系统结构2.1 系统基本结构实现触摸屏与单片机的通讯,主要是解决通讯协议的问题。本文使用开放的Modbus通讯协议,以触摸屏作主站,单片机作从站。eView触摸屏本身支持Modbus通讯协议,如果单片机也支持Modbus协议,就可以进行通信了。本系统可以利用触摸屏自带的串口与单片机进行通信。如图2-1所示: 图2-1 系统基本结构 其中人机界面(HMI)负责与接受用户命令,控制程序的运行。显示与程序相对应的图形界面。MCU1:作为从站1通过COM0与HMI相连。负责系统的信号输出。包括血泵电机的流量调节、各个电磁阀的打开和关闭、报警信号的动作、臭氧浓度电机的调节等。MCU2:作为从站2通过COM1与HMI相连。负责系统的信号输入采集。包括人体血压、氧气压力、血液管路的气泡信号、臭氧浓度等。2.2 物理实现目前,可以通过下列三种方式实现Modbus通信。以太网上的TCP/IP;各种介质上的串行链路上传输;ModbusPLUS,一种高速令牌传递网络。选择何种实现方式主要是依据他所连接的设务所处的地位。一般采用标准的232口、485接口、422接口。由于rs232的传输距离为30m,治疗仪的体积不大,不可能超过30m,因此可以选用rs232通信方式来提供对Modbus的硬件支持。将AT89S52单片机串口(RXD、TXD)经过MAX232芯片将TTL电平转换为RS232电平,再与eView触摸屏PLCRS-232接口相连,即完成了硬件连接。eView触摸屏PLCRS-232接口的管脚2为TXD,管脚3为RXD。图2-2为该系统串行接口的电路图。图2-2 系统串行接口电路图第三章 MODBUS协议Modbus协议是OSI模型第七层上的应用层文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。互联网组中已经保留TCP/IP系统端口502用以访问Modbus,Modbus协议已经成为一种流行的工业控制传输标准。3.1 协议内容Modbus协议定义了消息与格式和内容的公共格式,主要采用命令/应答方式,每一种命令文都对应着一种应答文,命令文由主站发出,当从站收到后,就发出相应的应答文进行相应。Modbus的信息帧包括站点、字节长度、功能码、操作地址、操作数据、CRC校验值等。在Modbus系统中有两种有效的传递模式即ASCII和RTU模式。内容格式及字符长度如表3-1:表3-1 两种有效传递模式ASCII模式传输格式RTU模式传输格式STD启始字符START超过10ms之静止时段ADR 1通讯地址:8-bit 地址包含了2个ASCII码ADR通讯地址:8-bit地址ADR 2CMD 1指令码: 8-bit 地址包含了2个ASCII码CMD指令码: 8-bit 指令CMD 0DATA (N-1)资料内容:n*8-bit资料包含了2n个ASCII码,n=25,最多50个ASCII 码.DATA (N-1)资料内容:n*8-bit资料n=25.DATA 0DATA 0LRCCHK 1校验值: 8-bit 地址包含了2个ASCII码CRC CHR LOW16-bit校验值由2个8-bit字符组成LRC CHK 0CRC CHK HIGHEND 1结束符:END1=CR(0DH),END0=LF(OAH)END超过10ms之静止时段END 0由于RTU模式传输位数少,使用方便,本治疗仪采用RTU模式进行传输。3.2 通信过程 Modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称Master),其它设备作为从机(称Slaver),主机不需编号,从机必须编号。协议定义了主机查询及从机应答的信息帧格式。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。当主机收到这一信息时,会重新发送请求信息。校验方式分为LCR(传送数据为ACSII时)校验或CRC(传送数据为二进制时)校验,这里采用CRC校验方式。信息传输为异步方式,并以字节为单位。主从站之间通讯的字格式如表3-2所示。表3-2 通讯的字格式字格式(串行数据)10位二进制起始位1位数据位8位奇偶校验位无第四章 硬件实现4.1 选型4.1.1 上位机选型作为上位机必须要有良好的人机交互环境,并且上位机必须要支持Modbus通讯协议,而且要提供相应的串行通信接口(rs232)。eView的MT5620T触摸屏本身支持Modbus通讯协议,并且提供2个串行通信接口。具体参数如图4-1所示: 图4-1 MT5620触摸屏参数4.1.2 下位机及相关部件选型作为下位机必须要支持Modbus通讯协议,而且要提供相应的串行通信接口(rs232)。另外能够采集相关的A/D、D/A、I/O信号。AT89S51单片机内含一个串行口,能够支持Modbus通讯协议,通过相应的A/D、D/A芯片能够完成模拟信号、数字信号的采集和输出。A/D转换芯片的选择:医用臭氧治疗仪在治疗过程中需要采集的数字信号有臭氧深度信号(0100ug/ml),氧气压力信号(0500Kpa),静脉压信号(-100 Kpa+100 Kpa),所以10位的A/D转换芯片完全能够满足精度要求。选择TLC1543A/D转换芯片。D/A转换芯片的选择:医用臭氧治疗仪在治疗过程中需要对血泵电机进行控制,血泵电机的转速范围在(2.0转48.0转),其中每一转中要分成10档,故D/A转换的芯片要选择10位。选择TLC5615转换芯片能够满足要求。4.2 上位机硬件实现由于eView的MT5620T触摸屏是厂家集成在一起的触摸式显示屏,并提供相应的编程软件。如下图4-2所示图4-2 MT5620T触摸屏4.3 下位机硬件实现4.3.1 A/D取样电路实现TLC1543芯片一共有11路(A0A10)10位A/D信号输入,在这里只用是三路分别是A0、A1、A2。其中A3A5作为备用。芯片的CLOCK、DIN、DOUT、CS分别与单片机相连。芯片的基准电压采用高精度的可调三端稳压器LM336-5Z。基准电压的好坏直接影响取样的精度和稳定性。具体线路如图4-3所示。其中臭氧浓度信号、氧气压力信号、静脉压信号的最大值都在4.7v,故将基准电压调在4.7v即可。图4-3 A/D取样电路4.3.2 D/A输出电路实现TLC5615芯片有一路10位D/A信号输出,通过软件设置能够输出两倍的基准电压。芯片的DIN、SCLK、CS与单片机的引脚相连。芯片的基准电压采用高精度的可调三端稳压器LM336-5Z。基准电压的好坏直接影响取样的精度和稳定性。D/A输出线路如图4-4所示。由于血泵电机的驱动信号在0v2.2v范围内变化,血泵电机驱动线路如图4-5所示。利用芯片的倍压功能,故将基准电压调在1.2v即可。图4-4 D/A输出电路 图4-5 血泵电机驱动电路4.3.3 I/O信号输入/输出实现由于输出电路中有继电器的存在,必须做好隔离。单片机的输出信号经反相器后通过三极管驱动后,作用=继电器动作。具体电路如图4-6所示。由于输入信号中不存在强的干扰信号,可以与单片的引脚直接相连。 图4-6 I/O信号输入/输出电路4.3.4 断电报警电路实现医用臭氧治疗仪在治疗过程中是将血液引出体外与臭氧相混合,在治疗过程中一当断电必须发出声音报警,提醒医务人员及时将血液输出体内。报警声音必须持续1min 。断电报警电路独立与其它电路单独工作,如图4-7所示。接口J2与总电源开关的输入端相连,有电源输入时,断电器吸合,电路对电容C2进行充电。当外界电源断电时,继电器断开,电容C2通过蜂鸣器进行放电。调节电容C2的大小可以调节报警时间。图4-7 断电报警电路4.3.5 停泵报警电路实现医用臭氧治疗仪在引血过程中血泵停止工作,将引起血栓。将对病人的治疗产生危险。只需将电机的运转信号取样后进行比较即可。如图4-8图4-8 停电报警电路4.3. 6 臭氧浓度调节电路实现臭氧浓度调节原理如图4-9所示。臭氧浓度的高低是通过改变输入到高压发生器的电压高低来调节。输入电压的调节是通过调压器来实现。转动安装在调压器上方的直流电机,就可以改变调压器的大小。当臭氧检测仪检测的浓度高于设定的浓度,CPU发出反转信号,使调压电机反转,调压器输出电压降低,高压发生器输出电压减少。从而使臭氧的浓度降低,与设定值相等。线路图如图4-10所示。图4-9 臭氧浓度调节原理图4-10 臭氧深度调节线路第五章 软件实现软件实现包括:初始化关键字,包括波特率设置,数据位数、停止数、奇偶校验模式等,总线上所有的master及slave的以上设置应完全一致。Modbus编程主要需要处理好校验码的生成及数据包的处理。5.1 单片面与触摸屏地址的对应关系eView触摸屏只支持Bit和Word地址类型,而实际的单片机或其它控制器还有Byte、Double Word等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换。触摸屏画面元件读取地址的设备类型有LW、0x、1x、3x、4x、RWI、RW等选项。其中,LW表示该元件读取的是触摸屏内部的地址,如其它元件的地址;0x表示读取的是控制器的输出信号;1x表示读取的控制器的输入信号;3x和4x指控制器的寄存器地址类型,其中4x是可读可写的,3x是只读的;RWI、RW都是触摸屏的内部地址,起辅助作用。使用这些读取地址的设备类型,触摸屏即可显示或设定控制器寄存器或I/O口的数值。以“数值输入”元件为例,通过“小键盘”输入数据即可设置单片机寄存器或I/O口的数值。如果启动了“触发地址”,那么当被触控时,输入的数据就被存放到了指定的单片机地址中。5.2 功能码定义数据处理及发送模块执行Modbus协议功能码对应的运用。eView触摸屏与单片机以Modbus协议通信,用到的Modbus功能码如表5-1所示。表5-1 通信程序用到的功能码功能码eView地址名称含义作用010x读开关量输出读取一路或多路开关量输出状态034x读保持寄存器读取一个或多个保持寄存器的数据050x 、1x写开关量输出强置一路继电器的“分/合”输出163x 、4x预置多寄存器把具体的数据装入一组连贯的保持寄存器以Modbus功能码03为例来说明触摸屏及单片机的实际通信数据格式。如单片机地址编号为01H,触摸屏需要查看单片机中地址为0031H的寄存器的值,发送命令格式如表5-2所示。 表5-2 触摸屏发送数据结构数据段名称数据值地址01功能码03读取地址高位00读取地址低位31读取数据个数高位00读取数据个数低位01CRC校验码高位D5CRC校验码低位C5假设单片机中地址为0031H的寄存器中断为05H,则单片机的回复命令如表5-3所示。表5-3 单片机应答数据结构数据段名称数据值地址01功能码03读取字节数02寄存器数据高位00寄存器数据低位05CRC校验码高位78CRC校验码低位475.3 校验码生成根据传输模式的不同,系统需要产生不同的校验码,ASCII模式采用LRC校验,而RTU采用CRC校验。实现这两种方法的函数均可以在相关资料中找到。下面是用C语言设计的CRC校验,而产生的返回值CRC16即为回传之校验码。/* Table Of CRC Values for high-order byte */uchar code auchCRCHi = 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40 ; /* Table of CRC values for low-order byte */uchar code auchCRCLo = 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40 ;uint crc16(uchar *puchMsg,uchar usDataLen) / puchMsg message to calculate CRC upon / usDataLen quantity of bytes in message uchar uchCRCHi = 0xFF ; / high byte of CRC initialized uchar uchCRCLo = 0xFF ; / low byte of CRC initialized uint uIndex ; / will index into CRC lookup table while (usDataLen-) / Pass through message buffer uIndex = uchCRCHi *puchMsg+ ; / calculate the CRC uchCRCHi = uchCRCLo auchCRCHiuIndex ; uchCRCLo = auchCRCLouIndex ; return (uint)(uchCRCLo) =patop)|(pain=r_zldxtime-1)lw210_w=1;lw211_w=0; /增加部分-不保压的程序 if(lw210_r=1)/达到顶血时间 lw211_w+; if(lw211_r=0) / w_page=10;/设置本画面的号码 jyfe_flag=1;yxfe_flag=1;/进行输液 syfe_flag=0;hsfe_flag=0; ybdg_flag=1;/电逆时针运行 / o3exit_flag=1;o3exitin_flag=0;/臭氧排放阀关闭 if(lw211_r=2)/延时2S / o2fe_flag=0;/氧气阀关闭 / o3fe_flag=0;bout0_flag=0;/臭氧阀关闭,制气阀关闭。 xhfe_flag=0;/循环阀打开 / ybdg_flag=1;/电逆时针运行 if(lw211_r=4)/延时2S run_flag=1;lw210_w=2;lw211_w=0;/泵运行 if(lw210_r=2)/是否到达治疗循环时间 if(pausekey_flag=1)bo3power_flag=0;/如是暂停将臭氧电源关闭 elsebo3power_flag=1; if(door_flag=1)|(pausekey_flag=1)run_flag=0;/泵盖有没有打开,打开则停泵 else run_flag=1; lw211_w+; lw220_w=lw211_r;/循环时间计数 if(lw211_r=r_zlxhtime-1)lw210_w=3;lw211_w=0; if(lw210_r=3)/治疗循环时间到 lw211_w+; if(lw211_r=0) run_flag=0;/停泵 o3out_flag=1;o3outin_flag=0; o3exit_flag=0;o3exitin_flag=1;/臭氧排放阀打开 if(lw211_r=2)/延时2S o3out_flag=1;o3outin_flag=0;/臭氧输出阀关闭,进行保压。/增加 o3fe_flag=1;bout0_flag=1;/臭氧阀打开,制气阀打开. o3jc_flag=0;/臭氧检测关闭 bo3power_flag=0;sbdg_flag=0;/臭氧电源和冷却水泵关闭 if(lw211_r=4)/延时2S o2fe_flag=0;/氧气阀关闭 o3fe_flag=0;bout0_flag=0;/臭氧阀关闭,制气阀关闭。 / xhfe_flag=0;/循环阀打开 / ybdg_flag=1;/电逆时针运行 if(lw211_r=6)/延时4s syfe_flag=1;jyfe_flag=0;/输液阀动作,加液阀打开 。 lw210_w=6;lw211_w=0; if(lw210_r=6)/是否达到治疗循环倒转时间 lw211_w+; if(lw211_r=r_zlxhdztime-1) xhfe_flag=1;jyfe_flag=1;/循环阀动作,加液阀动作。 /o3exit_flag=1;o3exitin_flag=0;/臭氧排放阀关闭 lw210_w=7;lw211_w=0; if(lw210_r=7) tsmusic_flag=1; lw210_w=0;lw211_w=0;/步进标志位清零 w_page=11;/进入回血画面 return 0;5.4.5 臭氧浓度处理程序先对下位机送来的数字信号转换成臭氧浓度。后将实际的臭氧浓度与设定相比较,当高于设定值向下位机送出反转信号。低于设定值向下位机送出正转信号。相等向下位机送出停转信号,并发出提示音。程序代码如下:#include macrotypedef.h#include math.h/臭氧浓度比较程序int MacroEntry()/w_o3bjvalue=o3daout; o3jcstop=0; / lw211_w+; / w_temp=o3daout; / w_o3bjvalue=(unsigned short)(r_temp*200/1024);if(lxyin_flag=0)|(rxyin_flag=0) bnddgl_flag=0;bnddgr_flag=0; anddgl_flag=0;anddgr_flag=0; /tsmusic_flag=1; / equal_flag=1; goto uno3cont1; if(r_o3bjvalue=o3set)/取样值等于设定值 bnddgl_flag=0;bnddgr_flag=0; anddgl_flag=0;anddgr_flag=0; /tsmusic_flag=1; equal_flag=1; goto uno3cont1; if(r_o3bjvalueo3set)/取样值大于设定值 if(r_o3bjvalue=o3set+1)|(r_o3bjvalue=o3set+2)/*tsmusic_flag=1;*/ equal_flag=1;goto uno3cont1; bnddgl_flag=0;bnddgr_flag=1;/10 anddgl_flag=0;anddgr_flag=1; tsmusic_flag=0; goto uno3cont;/o3jcstop=1; if(r_o3bjvalueo3set)/取样值小于设定值 if(o3set=r_o3bjvalue+1)|(o3set=r_o3bjvalue+2)/*tsmusic_flag=1;*/ equal_flag=1;goto uno3cont1; bnddgl_flag=1;bnddgr_flag=0;/01 anddgl_flag=1;anddgr_flag=0; tsmusic_flag=0; goto uno3cont;/o3jcstop=1; /else bnddgl_flag=0;bnddgr_flag=0;uno3cont: o3jcstop=1;uno3cont1: ; return 0;5.4.6 报警处理程序在这里一共有5种报警要进行处理,分别是回输气泡报警、静脉压力报警、限位报警、血泵停转报警、断电报警。其中断电报警独立与其它报警。需要上位机处理的只有另外4种报警。回输气泡报警:当血液回路中有气泡产生时,治疗仪必须停泵、阻断回输管路、产生声光报警。画面如图5-5所示: 图5-5 气泡报警画面静脉压力报警:当静脉压超出设定的压力限值,将产生报警。治疗仪必须停泵、产生声光报警。画面如图5-6所示: 图5-6 压力报警画面限位报警:当调压器超出调节范围时,将产生报警,提醒用户进行处理。画面如图5-7所示: 图5-7 限位报警画面血泵停转报警:在治疗过程中当血泵意外停止时,系统自动进入停泵报警画面。画面如图5-8所示: 图5-8 血泵停转报警画面5.5 下位机软件实现5.5.1 下位机的程序应用下位机做为从机,要识别来自主机的信号是不是给自己。将与COM0相连的MCU作为0号从机, #define SlaveID 0x00。与COM1相连的MCU作为1号从机, #define SlaveID 0x01。触摸屏与单片机的通信程序采用单片机C语言编写。编译工具选择keil编译器。程序共分三大模块,即初始化模块、数据接收发送模块以及数据处理模块。主程序流程图如图5-9所示。开始SFR及Modbus变量初始化接收主机数据结束与从机ID吻全CRC校验正确完成功能码的相应功能 N Y N Y 图5-9 单片机端的程序流程图5.5.2 下位机初始化下位机的初始化包括对MCU的串口传输的设置、Modbus变量。传输波特率为9600,8位数据位,1位停止位,无校验。程序代码如下:void initSFR(void) SCON=0x50; / uart mode is 01,start bit + 8 bit data +stop bit : peer to peer communication TMOD=0x11; /* T/C1定义为方式1 */ TL1=0x3C; /* 置初值 */ TH1=0xB0; PCON=0x00; TR1=0; RCAP2H=0XFF; RCAP2L=0XD9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北广播电视天线工四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北农业技术员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江苏-江苏环境监测工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水利机械运行维护工五级(初级工)历年参考题库典型考点含答案解析
- 焊工安全知识培训目的
- 2025年事业单位工勤技能-广西-广西医技工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东计算机操作员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东房管员四级(中级工)历年参考题库典型考点含答案解析
- 2020-2025年安全员之A证(企业负责人)通关题库(附答案)
- 2025年事业单位工勤技能-北京-北京计算机文字录入处理员五级(初级工)历年参考题库典型考点含答案解析
- 2025年秋季开学全体教师大会校长讲话:践行“六个学会”做学生生命中的那束光
- 建筑施工材料采购投标方案(技术标)
- 电梯维护保养规则(TSG T5002-2017)
- 河北2023年邯郸银行内部审计人员招聘考试参考题库含答案详解
- 简思plc状态帧使用说明书
- GB/T 4668-1995机织物密度的测定
- GB/T 29256.5-2012纺织品机织物结构分析方法第5部分:织物中拆下纱线线密度的测定
- GB/T 27021.1-2017合格评定管理体系审核认证机构要求第1部分:要求
- GB/T 1410-2006固体绝缘材料体积电阻率和表面电阻率试验方法
- FZ/T 07010-2021绿色设计产品评价技术规范针织服装
- 科幻小说《三体》内容简介读书分享会ppt图文课件
评论
0/150
提交评论