毕业设计(论文)-基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计.docx_第1页
毕业设计(论文)-基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计.docx_第2页
毕业设计(论文)-基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计.docx_第3页
毕业设计(论文)-基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计.docx_第4页
毕业设计(论文)-基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计.docx_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淮 阴 工 学 院毕业设计说明书(论文)作 者:学 号:系 (院):自动化学院专 业:测控技术与仪器题 目:基于虚拟仪器技术化工企业排放废水质量在线监测系统软件设计指导者: 评阅者: 2016年06月毕业设计说明书(论文)中文摘要本文主要介绍了无线传感器节点和GPRS无线传输数据的实现,基于虚拟仪器技术化工企业废水质量的检测,传感器节点采用温度传感器、PH传感器、溶解氧传感器和浊度传感器,通过GPRS模块向云端发送测量到的废水中的温度、PH、溶解氧、浊度等参数,上位机LabVIEW则调取云端数据进行处理并采取相应的控制,从而达到远程实时监测和控制的功能。本设计主要应用于企业废水质量参数监测,对监测的数据进行相应处理并建立温度、浊度、溶解氧、PH的数据库信息。同时设定温度、浊度、溶解氧、PH的参数阈值,当采集到的参数超过所设定的阈值范围时,上位机监测界面就会及时报警提醒相关工作人员。该系统传感器节点可以进行拓展,上位机用户可以随时对系统软件进行修改以满足新的需求,更新速度快、开发和维护费用低,具备极高的社会效益和经济效益,有非常高的推广实用价值。关键词:实时监测,传感器节点,GPRS, LabVIEW, 上位机全套设计加扣 3012250582毕业设计说明书(论文)外文摘要Title The Software Design of Chemical Enterprises Discharge Waste Water Quality Monitoring System Based on Virtual Instrument TechnologyAbstractThis paper describes the wireless sensor nodes and GPRS wireless data transmission, the use of a temperature sensor, PH sensors, dissolved oxygen sensors and turbidity sensors are based on waste water quality of virtual instrument technology to detect chemical companies, the sensor node sends a measurement to the cloud through GPRS module to the waste water temperature, PH, dissolved oxygen, turbidity and other parameters, the PC LabVIEW is retrieved cloud data processing and take appropriate control, so as to achieve real-time monitoring and remote control functions. This design is mainly used in the monitoring of waste water quality parameters, the monitoring data to establish a database of information and corresponding processing temperature, turbidity, dissolved oxygen, PH. At the same time the set temperature, turbidity, dissolved oxygen, PH parameter threshold, when the collected parameter exceeds the set range, the PC interface will monitor the timely warning to remind the relevant staff. The system sensor nodes can be expanded, the PC user can at any time modify the software system to meet new needs. With update speed, low development and maintenance costs, the system has high social and economic benefits, very high practical promotion value.Keywords:Real-time Monitoring, Sensor Nodes, GPRS,LabVIEW,Position Machine淮阴工学院毕业设计说明书(论文)第I页共I页目 录1、绪论11.1课题研究的背景及意义11.2本课题的主要工作及要求12 总体方案设计221 检测原理222 系统网络结构图223 无线传感器网络节点224 采集模块32.4.1 温度传感器32.4.2浊度传感器42.4.3 PH传感器42.4.4溶解氧传感器52.5 Arduino开发板52.6无线传输模块73.系统的软件设计83.1总体流程图83.2节点软件设计93.2.1总体设计流程93.2.2数字信号软件设计103.2.3模拟信号软件设计133.2.4节点程序133.3网络云平台193.4 上位机软件设计213.4.1上位机流程图223.4.2上位机主界面233.4.3上位机监测界面243.4.4历史数据的查询263.4.5 数据输出274、传感器参数284.1温度传感器标定284.2溶解氧传感器标定294.3 PH传感器标定304.4浊度传感器标定305、软件调试31结 论35致 谢36参 考 文 献37淮阴工学院毕业设计说明书(论文)第34页 共35页1、绪论目前,环境问题是影响世界各国可持续发展的一个重要因素,水环境的污染日益严重,不仅严重影响人们的健康,还加速了水资源的短缺。众所周知,中国的水资源非常的缺乏,是世界13个缺水国家之一。生命最初诞生于水中。水是生命的物质基础。水不仅是维持生命所不可缺少的,也是我们在生活中所不可或缺的物质。但是,随着人类经济活动加剧,工业生产,化工企业的发展,社会经济的繁荣,在消耗了大量能源的同时,将大量的工业废水和城市生活污水不经处理排入水中,水污染日益严重。水污染对水体周围的环境和各种微生物等都存在非常大的危害。久而久之,也会威胁到人类的安全与健康。所以,我们必须要重视水环境污染。1.1课题研究的背景及意义传统的环境水质监测工作主要都是以人工现场采样、实验室仪器分析为主。虽然在实验室中分析手段完备,但实验室监测存在不能及时反映污染变化状况、采样误差大、监测频次低、监测数据分散等缺陷,难以满足人们有效的进行水环境管理的需求。而实现了废水质量的在线监测,只需经过几分钟的数据采集,水源地的水质信息就可发送到环境分析中心的服务器中。只要观察到有某种污染物的浓度发生了异常的变化,环境监管部门就可以立刻采取相应的措施,取样具体分析,可快速而准确地获得水质监测数据1.2本课题的主要工作及要求本课题是以云服务为平台,利用GPRS技术、虚拟机技术,设计一种集监测、显示与报警为一体的远程实时监测系统。其主要内容有以下几个方面。(1)深入化工企业对工业废水进行研究,了解工业废水主要的污染成分,选择各类合适传感器类型;(2)构建无线传感器网络。在化工企业废水排放口以及相关区域布置无线传感器节点,节点监测数据通过设置在监测区域内的GPRS模块,将监测数据定时传至云服务平台,最后在上位机中实时显示与监测,并将数据存入到数据库;(3)如果监测节点上传的数据超过规定的标准值时,上位机会发出报警并显示废水具体的排放情况。云服务器也会触发报警机制,进行简单的报警,提醒管理人员及时查找和分析原因,从而采取相应控制措施。2 总体方案设计21 检测原理本课题采用了单片机技术、无线网络传输技术、传感器技术和集成技术,对水环境进行实时监测温度、氧含量和PH值参数变化等信息,通过传感器感测信号,通过数据打包发送到上位机,并在上位机监测界面上显示实时数据。22 系统网络结构图本系统主要由无线传感器网络节点(负责采集节点周围水域温度、溶解氧浓度、PH、浊度等数据)、网络云平台和上位机监测中心(对上传的数据进行数据融合并直观显示数据)等几部分组成。无线传感器节点安装在企业废水排放池,对池中的废水实现PH、温度、浊度、溶解氧进行检测,将得到的参数经无线传感网络传输到网络云平台,然后上位机调用网路云平台数据,对数据进行分析、处理、超限报警和控制,因此系统的设计较为简单明了,化工企业废水质量远程监测网络结构如图1所示。.无线传感节点1无线传感节点2无线传感节点N GPRS上位机监测中心GPRSGPRS云服务平台图1 化工企业废水质量远程监测网络结构2.3 无线传感器网络节点无线传感器网络节点需要完成信息采集和数据传递的功能,节点在结构上可分为五个模块:电源模块、控制报警模块、数据采集模块(传感器数据采集)、数据处理模块(单片机处理系统)和无线传输模块(SIM808无线传输系统)。本设计采用AVR单片机Atmega328p的Arduino开发板作为微处理器,传感器分别采用DS18B20温度传感器、浊度传感器、PH传感器、溶解氧传感器检测温度、浊度PH和溶解氧,无线传输模块采用SIM808开发板作为与云平台实现数据传输。无线传感器节点如图2所示。GPRS通信模块 数据采集模块SIM808模块电源模块SIM卡电路GPRS天线控制模块报警模块数据处理模块(Arduino)溶解氧传感器温度传感器浊度传感器PH值传感器图2 无线传感器节点24 采集模块2.4.1 温度传感器DS18B20是最常用的一种温度传感器,它具有抗干扰能力强、体积小、硬件开销低、精度高、数字信号输出等特点。DS18B20采用的是一线通信接口,通信时只要接一条口线就可以通信多个点的能力,不同于之前的分布式传感器需要多点接口,应用时不需要接外部的元件,可以直接用数据总线供电,电压的范围为3.0 V到5.5 V,测量的温度最低为-55 最高为+125 。用DS18B20进行温度测量之前,必须要先完成ROM的设定,否则记忆功能和控制功能就没法使用。首先提供以下功能命令:读ROM、ROM匹配、搜索ROM、跳过ROM、报警检查。如果在之前已经使DS18B20成功的完成了温度的测量,测量到的数据存储在DS18B20内部的存储器中。存储器能完整的确定一线端口的通讯,数据开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来获取这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数据的完整性。高速寄存器RAM是由8个字节的存储器组成。用读寄存器的命令能读出第九个字节,这个字节可以对前面的八个字节进行校验。DS18B20外形结构图如图3所示。图3 DS18B20外形结构图2.4.2浊度传感器检测溶液浑浊度的传感器如图4所示。图4 浊度传感器该浊度传感器输出为模拟电压输出0到5V,工作电压为5V,工作电流为50mA,工作时响应时间小于500ms。该传感器输出的是模拟信号,所以输出端连接在Arduino的PC1口进行数据采集。2.4.3 PH传感器检测溶液PH值的传感器,如图5所示。图5 E-201-C型PH传感器该传感器输出方式为模拟电压信号输出1695mV到3832mV,工作电流为5mA到10mA,检测浓度范围为PH0到PH14,响应时间小于5s,稳定时间小于60s。该传感器输出的是模拟信号,所以输出端连接在Arduino的PC3口进行数据采集。2.4.4溶解氧传感器检测溶液溶解氧含量的传感器,如图6所示图6 罗素501ORP溶解氧传感器该传感器输出的是模拟电压信号,电极的电位为245mV到270mV,电极的参比电极内阻小于10 k,电极的稳定性为8mV/24h。该传感器输出的是模拟信号,所以输出端连接在Arduino的PC2口进行数据采集。2.5 Arduino开发板Arduino是一款方便上手、便捷灵活的开源电子原型平台,具有以下特点:1、含有开放的源代码,程序开发可免费下载也可以根据紫的要求自己编写或修改。2、内部含有低价格的AVR系列的微处理器。3、烧录方式支持ISP在线烧录,可以把新的 Bootloader 固件烧入到AVR芯片。有了Bootloader之后,可以通过串口或者串口转RS232线更新固件。5、支持多种互动程序。Arduino开发板的处理器核心为AVR系列的Atmega328p单片机,Atmega328p内部含有 32KB的闪存容量1KB的 EEPROM存储器容量,20MHz的时钟频率,I2C, SPI, USART的接口类型,最小1.8V 电源电压最大5.5V电源电压,32个IO口,2KB RAM存储器, 23个输入/输出线数,8个模数转换器输入数,20MHz速度,32KB程序存储器容量内部含有振荡器。Arduino界面如图7所示。 图7 Arduino界面Arduino编程采用Arduino语言1、声明变量及接口名称(例如:int ledPin=13;)。2、Setup():函数在程序开始时使用,可以初始化变量、接口模式、启用库等(例如:pinMode(ledPin,OUTUPT);)。3、loop():在setup()函数之后,一个循环函数。Arduino基本函数1、PinMode:定义接口为输入或输出型接口,在setup()函数里使用。2、DigitalWrite:置位,把数字端口的值置高或者置低。3、DigitalRead:读出数字接口的值。4、AnalogWrite:给一个接口写入模拟值(PWM波)。对于 ATmega168芯片的Arduino(包括Mini或BT),该函数可以工作于3,5,6,9,10和11号接口。老的ATmega8芯片的USB和Serial Arduino仅仅支持9,10和11号接口。5、AnalogRead:读取ADC端口转的值,把一个模拟值转换为数字值6、delay():延时函数,delay(1000)为一秒。7、Serial.begin(波特率)-设置串行每秒传输数据的速率(波特率)。在同计算机通讯时,要是用相同的波特率才能通讯,在Setup()函数里使用8、Serial.read():读取持续输入的数据。9、Serial.print:串行口的数据输出。Serial.print(数据)默认为十进制等于Serial.print(数据,DEC)。10、Serial.println:串行口的数据输出,在输出最后跟随一个回车和一个换行符。这个函数所取得的值与 Serial.print()一样。2.6无线传输模块YIXIN_SIM808_A模块是一款高性能工业级的GSM/GPRS/GPS三合一模块(开发板)。YIXIN_SIM808_A模块采用SIMCOM公司的工业级四频(全球通用)GSM/GPRS/GPS模块:SIM808,GSM/GPRS的工作频段四频为:GSM850、EGSM900、DCS1800、PCS1900MHz,适用于全球各地区,可以低功耗实现语音、短信、彩信、数据和传真信息的传输。同时SIM808还具有全球卫星定位GPS功能,适用于各类GPS定位导航应用。其性能稳定,外观精巧,性价比高。SIM808采用工业标准接口,内嵌TCP/IP协议,可以低功耗实现语音、短信(SMS)、数据和传真信息的传输。同时SIM808还具有全球卫星定位GPS功能,适用于各类GPS定位导航应用。SIM808如图8所示SIM808 GPRS通信需要用到的指令 :(1)AT+CGCLASS:用于设置移动台类别。(2)AT+CGDCONT:用于设置PDP上下文。 (3)AT+CGATT,用于设置附着和分离GPRS业务。 (4)AT+CIPCSGP:用于设置CSD或GPRS链接模式。(5)AT+CLPORT,用于设置本地端口号。(6)AT+CIPSTART:用于建立TCP连接或注册UDP端口号。 (7)AT+CIPSEND:用于发送数据。(8)AT+CIPSTATUS:用于查询当前连接状态。 (10)AT+CIPSHUT:用于关闭移动场景。 图8 SIM808开发板3.系统的软件设计3.1总体流程图Y开始初始化数据采集节点数据处理数据无线发送上位机数据获取是否超过报警界?限返回控制信号,界面报警节点收到控制信号,执行控制过程N图9 系统总体流程图系统总体流程图如图9所示,本设计上位机采用LabVIEW,节点不断地对检测区的废水参数进行采集,数据经过Arduino处理,从SIM808向云端发送,上位机设定检测周期,等待到检测时间就向云端获取数据,判断数据是否超过报警界面,如果超过界限,上位机就会返回报警和控制信号,并且上位机报警灯也会亮,节点接收到了控制信号就会立即采取控制措施,打开阀门等一系列动作。3.2节点软件设计3.2.1总体设计流程Arduino初始化后处于等待数据采集阶段,将采集到的数据按照特定格式发送给无线传输模块,SIM808处于接收状态,等到Arduino数据传到SIM808,则向无线云平台传输数据。Arduino流程图如图10所示。NY开始初始化向温度传感器发送接收数据请求等待各传感器发送数据对数据进行数据处理向SIM808发送发送指令向SIM808发送获取指令等待SIM数据返回是否收到信号?报警灯闪,控制阀门灯亮的程度图10 Arduino软件流程图首先对Arduino初始化,Arduino采用的是上电复位,给Arduino上电即完成初始化,初始化完成后,Arduino向温度传感器发送接收数据请求,然后处于等待传感器数据传输的状态,直到所有传感器检测完成向控制板发来数据后,Arduino对收到的数据进行处理标定,然后向SIM808发送无线传输指令,同时不断地对SIM808进行获取信号请求,如果检测到有控制信号,就执行控制和报警操作(电磁阀控制和报警灯点亮)。3.2.2数字信号软件设计温度传感器输出为数字信号,信号输出连接在Arduino的PB2引脚,DS18B20软件设计如下:初始化:(1) 把数据线拉高置1;(2) 延时几个s;(3) 数据线拉到低电平0;(4) 延时750s(延时范围为480s至960s);(5) 数据线拉高置1;(6) 延时,等待(如果初始化已经成功,会在15到60s内产生一个由DS18B20返回的低电平。根据这个状态可以来确定是否初始化成功,但是不能无限的等待,否则程序会进入死循环,应该要进行超时控制)。(7) 若CPU接收到了数据线上返回的低电平,再做个延时,延时的时间从第五步发出的高电平算起至少应该要480s。(8) 最后再次将数据线拉高1后结束。DS18B20的初始化函数Void DS18B20_Init(void)Uchar x=0;DQ=1;Delay10us(9);/约90sDQ=0;Delay10us(80);/约800sDQ=1;Delay10us(37);/约370s读操作:(1)将数据线拉高1;(2)延时2s;(3)将数据线拉低0;(4)延时3s;(5)将数据线拉高1;(6)延时5s;(7)读取数据线上的状态,得到1个状态位,然后进行数据处理;(8)延时60s。DS18B20读1个字节函数uchar DS18B20 _ Rbyte(void)uchar i=0;uchar dat =0;for(i=8;i0;i-)DQ = 0;dat = 1;DQ = 1;If(DQ)dat | = 0x80;Delay10us(5);/约54sreturn(dat);写操作:(1) 先将数据线置低电平0;(2) 延时时间为15s;(3) 按从低到高的顺序依次发送字节(每次只发送一个字节);(4) 延时时间为45s;(5) 将数据线拉到高电平1;(6) 重复以上操作一直到所有的字节全部发送完为止;(7) 最后将数据线拉高。DS18B20写一个字节函数Void DS18B20 _ Wbyte(uchar dat)uchar i = 0;for(i=8;i0,i-)DQ=0;DQ=dat&0x01;Delay10us(5);/约54sDQ=1;dat=1;3.2.3模拟信号软件设计浊度传感器、PH传感器、溶解氧传感器输出信号都为模拟信号,Atmega328p单片机内部含有8个模数转换的I/O口,采集数据时只需要把三种传感器的数据端接到Arduino板子的PC1、PC2、PC3接口,软件设计时直接读取PC1、PC2、PC3端口的数据就能对三种传感器发送的数据进行采集。1、浊度传感器的数据输入及处理程序:int val = analogRead(zdPin); double zd = 6.3-val*4.9*1.367*0.001;2、溶解氧传感器的数据输入及处理程序:int val2 = analogRead(rjyPin); double rjy = val2*4.9*0.005-2.5;3、PH传感器的数据输入及处理程序:int val3 = analogRead(PHPin); double PH = -val3*0.02753+21.530;3.2.4节点程序Arduino的编程代码如下:#include #define zdPin A1 /zd引脚配置#define rjyPin A2 /rjy引脚配置 #define PHPin A3 /PH引脚配置#define PHPin A4 /预留A引脚配置#define PHPin A5 /预留B引脚配置OneWire ds(10); / 连接arduino10引脚/* SIM808的网络配置及发送指令 */String str = AT+CGCLASS=Brn;String str1 = AT+CGDCONT=1,IP,CMNETrn;String str2 = AT+CGATT=1rn;String str3 = AT+CIPCSGP=1,CMNETrn;String str4 = AT+CLPORT=TCP,2000rn;String str5 = AT+CIPSTART=TCP,3,80rn;String str6 = AT+CIPSENDrn;Stringstr7=POST/devices/776354/datapointsHTTP/1.1rnapi-key: IOHbMfkGhNgn5 =aAR5ucU7DW3E=rnHost:rnContent-Length:;String str8 = id:wd,datapoints:value:;String str9 = id:zd,datapoints:value:;String str10 = id:rjy,datapoints:value:;String str11 = id:PH,datapoints:value:;String str12 = rn; String str13 = rnrndatastreams:;/* 设置波特率、发送网络配置 */void setup(void) Serial.begin(9600);/设置波特率为9600delay(100);Serial.println(str); /发送str字符串delay(100);Serial.println(str1);/发送str1字符串delay(100);Serial.println(str2);/发送str2字符串delay(100);Serial.println(str3);/发送str3字符串delay(100);Serial.println(str4); /发送str4字符串delay(100); /* 主循环程序 */void loop(void)int KK;byte i;byte present = 0;byte type_s;byte data12;byte addr8;float celsius, fahrenheit;/定义温度值/* 向DS18B20发送接收数据请求 */ds.reset();/ds18b20重置函数ds.select(addr);/ds18b20地址选择ds.write(0x44,1); /写入数据delay(2000); present = ds.reset();ds.select(addr); ds.write(0xBE);/* 依次读取温度传感器发来的八位数据 */for ( i = 0; i 9; i+)/读取八位数据 datai = ds.read();/* 将读取到的八位数据储存在寄存器raw中 */unsigned int raw = (data1 8) | data0;if (type_s) raw = raw 3;if (data7 = 0x10) raw = (raw & 0xFFF0) + 12 - data6; Elsebyte cfg = (data4 & 0x60);if (cfg = 0x00) raw = raw 3; else if (cfg = 0x20) raw = raw 2; else if (cfg = 0x40) raw = raw =10)KK=189;else KK=188;int val3 = analogRead(PHPin);/读取PH传感器数值double PH = -val3*0.02753+21.530;Serial.println(str5);delay(100); Serial.println(str6);delay(2000);Serial.print(str7);/输出str7字符串Serial.print(KK);Serial.print(str13);Serial.print(str8);Serial.print(celsius); /输出温度值Serial.print(,);Serial.print(str9);Serial.print(zd);/输出浊度值Serial.print(,);Serial.print(str10);Serial.print(rjy);/输出溶解氧值Serial.print(,);Serial.print(str11);Serial.print(PH);/输出PH值Serial.print();Serial.print(str12);delay(100);Serial.write(0x1a);delay(100);/* 向SIM808发送获取指令 */int allnum=0;int numzu10; Serial.print(AT+CIPSENDrn);delay(100);Serial.print(GET /devices/3013763/datapoints HTTP/1.1rn);Serial.print(api-key:uac2iLHuJH=VgrGNRa4jhvCHj=8=rn);Serial.print(Host:rn);Serial.print(rn);Serial.print(rn);delay(2);Serial.write(0x1a);/*在获取到的数据中提取控制信号和报警信号*/while(surekh!=)surekh=char(Serial.read();i=1;while(i0)surekh= char(Serial.read();ctl += surekh;delay(1);if(surekh=)i-;else if(surekh=)i+;for(int j= 0;jctl.length();j+)if(ctlj=& ctlj+1=i & ctlj+2=d & ctlj+3=)numzuallnum=j;allnum+; b=ctlnumzu0-4;/* 执行报警模块 */ if(b=1) digitalWrite(7,HIGH);/输出高电平,报警digitalWrite(5,Low);/输出低电平,打开电磁阀 Serial.println(b); ElsedigitalWrite(7,LOW);/低电平,不报警digitalWrite(5,HIGH);/高电平,关闭电磁阀Serial.println(b);Serial.println(b);ctl=;Serial.flush();3.3网络云平台本设计采用的是中国移动物联网开放平台OneNet作为网络云平台,接收无线网络传送的数据。中国移动物联网开放平台OneNet基于物联网技术和产业特点打造的开放平台和生态环境,能够有效降低各类物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。OneNet平台支持各类传感网络和通信网络。图11 中国移动互联网开发平台首页图12 中国移动互联网开放平台工程界面要在该平台上使用,就要接入OneNet,首先要在OneNet平台上进行注册用户、创建设备等一系列准备工作,然后要通过网络和OneNet服务器建立TCP连接,最后将数据按照一定的协议(比如:EDP、RestFul API)打包上传至OneNet平台,从而实现设备终端接入。注册好用户后,需要创建一个项目用来监控你所需要上传到云端的数据,并把它归类于区分,在建好项目之后,要依次添加设备、添加Apikey、添加触发器。每个Apikey对应一个节点,而每个数据流对应单独的一个采集参数(温度、PH、溶解氧和浊度),这样一个基本的云平台才算建立好了。图13 云端项目基本信息图14 云平台数据展示界面3.4 上位机软件设计上位机调试采用的是LabVIEW(Laboratory Virtual Instrument Engineering Workbench),LabVIEW是美国国家仪器(NI)公司自行研制的一种强大的程序开发环境,其类似于C语言和Basic语言开发环境一样,有着可以完成大多数编程任务的函数库,各类函数库有这各种不一样的功能。但是,LabVIEW也和其它的计算机语言有着明显的不同,其它的计算机语言基本上都是基于文本的语言产生的代码,而LabVIEW使用的是图形化的编程语言G编写程序,程序是以框图的形式产生的,其开发环境集成了各种应用所需要的工具,帮助使用者解决问题和不断创新还能提高生产力。LabVIEW语言程序开发环境中VI程序由前面板和后面板组成,前面板主要有显示控件,人机用户操作界面和输入控件等控件来构成,是VI程序的交互式输入和输出端口,输入控件是VI的后面板程序框图提供数据的输入装置,显示控件则是显示后面板程序框图或生成的数据的输出装置,后面板便是程序框图,所有的数据源的处理都在程序框图中传送处理分析的,前面板的输入控件和显示控件都能在后面板中一个对象端点与之相对应,输入控件对象的端点便是在VI程序框图中的数据流源点,而显示控件对象的端点便是VI程序框图中的数据流终点。每个控件端口之间的连线是其数据通道,数据都是单线流动的,也可以是从单一的数据源端口流向一个或多个接收目的端口,但是注意数据源的数据类型是否与接收端接收的数据类型一样,不一样的数据类型不能使数据源数据流动。3.4.1上位机流程图开始初始化窗体事件接收数据是否超过警戒上下限?N上位机报警Y发出控制信号 图15 上位机报警流程图3.4.2上位机主界面图16主界面前面板本VI采用了属性节点控件、连接字符串控件、当前VI路径控件、创建路径控件、打开VI引用控件、调用节点控件、关闭引用控件等控件组合成的主界面。图17主界面程序框图3.4.3上位机监测界面上位机监测界面分为自动监测界面和手动监测界面,采用选项卡方式进行切换。如图18所示图18 自动检测界面自动/手动界面切换选项卡和手动/自动检测切换的开关采用的是滑动开关控制的条件结构,选项卡及切换开关程序框图如图19所示。图19 选项卡及切换开关程序框图数据采集采用Labview提供的TCP协议从中国物联网云端提取数据。本模块程序框图如图20所示,从左到右依次用打开TCP连接控件、写入TCP数据控件、读取TCP数据控件、关闭TCP连接控件、匹配正则表达式控件等控件组合,根据我们云端数据的协议及地址ID等信息从云端提取数据。图中与打开TCP连接控件连接的“3”为服务云端地址,“80”为远程端口,获取云端数据点是通过HTTP GET请求在URL中携带参数的形式实现的。本设计中HTTP请求代码:GET/devices/776354/datapointsHTTP/1.1api-key:IOHbMfkGhNgn5=aAR5ucU7=DW3E= Host:其中“776354”是设备ID,“IOHbMfkGhNgn5=aAR5ucU7=DW3E=”是设备APIKey,其余都是固定格式。“2000000”是读取的字节,“3000”指的是超时毫秒,“d*-dd-ddsdd:dd:dd” 指的是匹配正则表达式控件的正则表达式,即获取到的数据中与时间匹配的字符串。图20 云端采集数据程序框图3.4.4历史数据的查询图21 历史查询界面图22 历史查询程序框图此模块采用了当前VI路径控件、创建路径控件、读取文本文件控件、关闭文件控件,以及一个While循环来实现历史数据的查询。测得的四个参数数据采用比较方式输出布尔量,若超过设置的阈值则输出true,则对应参数的报警灯会亮,并且然后采用或门将所有的布尔量进行或运算,然后将布尔量转换为(0,1),从而控制是否响报警声音。图23 报警灯图24 报警程序框图图25 报警声音程序框图报警声音用于数据超过设定的阈值报警;报警声音由1400Hz、1500Hz和1600Hz的正弦波叠加而成,如图25所示。3.4.5 数据输出图26 数据输出图27 数据输出程序框图此模块采用的控件较多:包括格式化写入字符串控件、当前路径控件、创建路径控件、创建文件控件、设置文件位置控件、写入文本文件控件以及关闭文件控件等。在当前路径下,打开一个名为history的已有文本文件,如文件不存在则创建一个名为history的文本文件,系统获取监测数据,利用格式化写入字符串控件在history文本文件的末尾写入新的监测数据字符串数据,即在保存原有的监测数据基础上,系统自动写入新的监测数据,方便工作人员的查看及以后的查询或打印。4、传感器参数正常开启节点,得到每个传感器上传上来的数值,需要对其进行标定。4.1温度传感器标定本设计采用的是DS18B20温度传感器,检测过程中,我们配置了不同温度的5杯溶液,分别对应的温度为26度、32度、36度、44度、56度的液体,对其分别进行温度检测,得到的数据如下。表1 温度数据表测量数据414514574705753896实际温度()263236444756图28 温度拟合曲线根据上述的数据得出,溶解氧传感器的标定关系为y=16.05x-2.086。4.2溶解氧传感器标定本设计采用501针型ORP复合电极,该电极是由指示电极铂金丝和银氯化银参比电极复合而成。我们分别在冷开水、自来水、空气等不同的水环境中用溶解氧传感器进行测量,得到了如下数据。表2 溶解氧数据表不同水环境测量数据参考溶氧量mg/L冷开水878,884,923,9701.5-2.5河水、自来水、矿泉水等1233,1300,1451,1464,1473,1481,15583.5-5.5空气中1747,1749,17926.5分别取三种水环境中得到数据的平均值,和参考溶解氧量的中间值作为标定参数,得到的拟合曲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论