【编者按】网学网单片机毕业设计频道为大家收集整理了“自动排液监测系统“提供大家参考,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | |||||
3 系统实现 该自动排液监测系统的三个组成部分在实现功能上互相协调,能完成排液监测过程的所有操作。原有的LYLCA-III(Ⅳ)节电型自动排液系统保持原有体系结构不改变,正常执行原有的自动排液功能。在这个基础上主要改进系统,引入微机实时监测控制。通过单片机实现实时采集信号,控制电磁阀的通断;通过电脑监测现场,随时反映现场信息,以便改善工人工作环境,防止有害物质对人体的伤害。系统工作原理如图3-1所示。
图3-1 系统工作原理图 系统上位机由一台(PC586以上)微机构成,软件采用Visual Basic编程,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经LYLCA-III (IV)节电型自动排液系统送到现场。予置数值可以分别显示在 PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测信号经过LYLCA-III (IV)节电型自动排液系统,也可以实时显示在本系统的检测数字表头上和PC机的界面上。如此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。下面将分单片机和PC机两个方面分别介绍该系统的实现情况。 3.1 单片机工作原理和实现过程 从系统原理图上可见,本系统关键的硬件部分是单片机系统的设计,上位机PC机则直接利用它的RS-232串行口即可。上位PC机通过串行口RS-232得到系统的工作情况后,通过用户界面在微机中反映出来,同时上位机根据设定的参数指示下位单片机做出相应的反应,控制电磁阀动作。在生产现场,检测杆内安装了传感器,通过对传感器的检测来判断水位置,从而下位机即可控制电磁阀通断。 本系统采用CPU为AT89S51的单片微机,AT89S51是ATMEL公司生产的带4K字节闪速可编程可擦除只读存储器(EEPROM)的8位单片机,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单、方便等优点,而且完全兼容MCS51系列单片机的所有功能[18]。该单片机系统的工作流程是这样的:AT89S51单片机利用自身具有的串行通信口,直接接收PC机传送下来的串行数据,然后将所接收的各组数据通过并行口输出,送到数据锁存器,最后将锁存的数据送到D/A转换器进行数模转换并通过运算将模拟信号输出,同时显示在相应的予置数字表上。现场返回的信号通过隔离,经过A/D转换器和数据锁存器变成单片机所需的并行数字信号送到单片机的数据存储单元中,再由串行口返送到PC机上,同时显示在PC机界面和本系统相对应的检测数字表上以便于设置和实际情况相对比。 单片机AT89C2051采用MCS51系列的汇编语言编程。它有一个标准的串行口,有4种工作方式,其中方式1是标准的10位异步通信方式,10位数据和PC机的标准串口相对应,由串行口控制寄存器SCON设置状态,其字节地址为98H。如下式所示: SMO SM1 SM2 REN TB8 RB8 T1 R1 本系统中AT89S51串口控制器SCON设置为50H, SMO, SM1为0, 1,即为串行工作方式 1, REN为1,即允许串口接收.另外,还应使AT89C2051的中断允许寄存器IE的开放或禁止所有中断位EA为1,开放或禁止串行通道中断位ES为1,即允许串行口中断。AT89S51的并行口PO和P2分别作为八位数据的输入和输出口。 单片机程序设计过程中,首先进行初始化,设置好相应串口通信的端口地址,为采集信号作准备。当现场的传感器发送水位位置信号,单片机作出判断,有四种特殊情况要进行特别处理.当水位位置处于气液分离器水位下报警点、水位下控制点、水位上控制点和水位上报警点,这四个水位都是相当危险的水位位置。这时单片机传送相应控制信号给PC机,PC机端工作人员收到信号,必须马上进行手动控制,立即进行处理。 工作流程图如3-2所示。 单片机工作过程中,首先判断生产现场的传感器到达信号是否为水位下报警点,如果不是,继续往下判断是否是其他三种水位情况;如果是,则进入发送状态,并计算发送数据长度,然后发送警告数据,当数据没发完,则一直发数据,直到发送完毕为止。这时,PC机端收到警告信号,工作人员必须高度注意界面信息,随时采取相应手动控制方式。 此时,单片机要继续返回判断是否是水位下控制点,如果不是,继续往下判断是否是水位上控制点的两种情况;如果是,则进入发送数据状态,重复刚才的发送操作。当PC机端收到 “手动关闭阀门”的信号后,立即关闭阀门,此时水位不再下降,会慢慢上涨。
3.2.7系统测试 主要实现在本机上模拟测试与单片机的通信功能。 当水位处于正常去时,进行自动排液监测,由单片机自动控制;当水位处于异常区时,存在超高或超低两种可能。超高或超低的判断,通过输入的一次排液量来比较,超过排液量的+5或-5则认为是超高或超低,超过排液量的+3或-3则认为是中等偏上或中等偏下。当超高或超低时,系统会连续发出报警音,同时界面上也会做出相应的反应,提醒操作人员特别注意,要进行紧急处理,是手动打开阀门还是关闭阀门,必须立即做出判断。 水位计算:根据主窗体中排液文本框中输入的一次排液量的数字进行增减。如果超过排液量的5米以上,则认为是超高;如果超过排液量的2米以上,则认为是中等偏上;如果低于输入量的5米以下,则认为是超低;如果低于输入量的2米以下,则认为是中等偏下。可设置如下: a=5+Val(Form3.Text1.text) b=2+Val(Form3.Text1.text) c=Val(Form3.Text1.text)-2 d=Val(Form3.Text1.text)-5 Option1.Caption=a+”米以上” Option2.Caption=b+”-”+a+”米水位” Option3.Caption=c+”-”+b+”米水位” Option4.Caption=d+”-”+c+”米水位” 在测试过程中,需要进行通信控制,通过引发MScomm控件的OnComm事件来驱动判断。一但串口发生通信事件或产生错误,依据产生的事件和错误,MScomm控件为CommEvent属性赋予不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的代码,进行相应的处理。当MScomm控件的Input属性读取到“正在自动排液……”字符串时,说明系统处于正常水位,正在自动排液状态,此时主界面中会有相应的显示,当Input读取到“!”信号,说明系统处于手动打开阀门状态,主系统中将显示“正在手动打开阀门……” ;当Input读取到“*”信号,说明系统正处于手动关闭阀门状态。其代码如下所示: Dim str As String str=MScomm1.Input If str =”正在自动排液……” Then Label2.Caption=str ElseIf str=”!” Then Label2.Caption=”正在手动打开阀门……” ElseIf str=”*” Then Label2.Caption=”正在手动关闭阀门……” End If 根据显示标签中显示的内容不同,进行不同的操作和相应的报警处理。 | |||||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | |||||
本文选自计算机毕业设计http://myeducs.cn |