立式储备粮仓温度和湿度监测仪设计.doc_第1页
立式储备粮仓温度和湿度监测仪设计.doc_第2页
立式储备粮仓温度和湿度监测仪设计.doc_第3页
立式储备粮仓温度和湿度监测仪设计.doc_第4页
立式储备粮仓温度和湿度监测仪设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

邵阳学院毕业设计(论文)1.引言1.1 选题意义“国以民为本,民以食为天”,有粮则安,无粮则乱。粮食问题处理得好坏,对国计民生关系极大1。粮食的数量、质量与安全直接关系到国民经济发展和社会稳定的大局。粮食问题始终是党中央、国务院密切关注的重点问题。虽然我国粮食产量高居世界榜首,但是我国人均占有粮食的比率与世界发达国家相比水平还很低,而且每年在储存过程中因霉变,害虫侵蚀而损耗的粮食约占总产量的6%以上,在品质上造成的劣变损耗更难以统计2。所以,采用先进的科学技术来确保粮食储藏的安全,降低储藏的成本,延缓粮食品质变化,做好粮食储备工作,为促进经济稳定发展创造良好的基础,将有十分重要的意义。在粮食的储藏过程中,粮仓内温湿度、粮堆内部的温度等粮食情况的变化直接影响和反映粮食的品质和变化趋势。在谷物冷却、机械通风、环流熏蒸、温湿度测控等“四项”储粮新技术中,温湿度测控是基础,是粮食储藏成败的关键,它是各项储粮技术运行状态的观察者和运行结果的真实反映者。温湿度测控系统准确性、可靠性直接关系到储粮技术的运用和应用效果3。粮仓内温湿度测控系统是利用现代电子和计算机技术,在粮食储存过程中能实现对粮食的变化情况实时检测、对实时检测数据进行分析与预测、以及对异常情况提出处理建议和控制措施等的智能化自动控制系统,它为科学及安全储粮提供了技术保证和科学依据。在现有粮仓内温湿度测控系统的基础上,优化我国现有粮仓内温湿度测控系统的产品种类,研究建立适应我国国情的粮仓内温湿度测控系统,使我国的粮仓内温湿度测控系统在粮食储存中发挥更大的作用具有巨大的理论意义和现时意义。因此,本文设计了一种基于单片机的粮仓内温湿度测控系统,监测仪通过RS-485串行口与上位机通信。1.2 国内外粮仓内温湿度测控系统的研究现状早期的粮仓内温湿度测控是完全由人员通过人手的感觉来判断粮温的高低和变化的,工作量大,可靠性差。随着计算机技术、电子技术的不断发展,计算机的应用范围日益扩大,计算机被应用于粮仓内温湿度测控系统4。目前国内己有数十家企业生产粮仓内温湿度测控系统产品,尽管品种繁多,系统外观各异,但它们的检测电路和检测过程基本相同5。这些现有系统一般都采用热敏电阻温度传感器和电容式湿度传感器,由分线器(温湿度仪)的转化把传感器的变化量转化为0-5V变化的电压,并由其多选一模拟开关选通,然后传到测控分机进行A/D转换得到温度(湿度)值。这种方法由于分线器(温湿度仪)既要完成电阻(电容)到电压的转换,又要完成多路的选通,需要有多个芯片来完成,从而使分线器(温湿度仪)体积较大、连线复杂,故障率较高。更为严重的是由于其A/D转换和非线性校正在测控分机中进行,模拟信号在分线器(温湿度仪)和测控分机之间传输时受到引线长度、电源电压的影响较大,也极易受到外来干扰信号的影响,普遍存在系统不够稳定,温、湿度检测值漂移严重等问题。所有这些在很大程度上限制了粮仓内温湿度测控系统在我国的大面积推广应用。与国内生产的粮仓内温湿度测控系统产品相比,以美国、加拿大为代表的产粮大国粮仓内温湿度测控系统技术已经发展到了很成熟的地步:高科技数字式温、湿度传感器广泛应用于粮仓内温湿度测控系统中;除了完成温、湿度检测功能外,一些数字温、湿度传感器还可以同时完成预置范围报警,温、湿度补偿等功能;在通信网络上它们一般采用无线方式。由此构成的粮仓内温湿度测控系统,结构简单,安装、维修方便,检测数据稳定性好。由于数字式温、湿度传感器直接输出数字量,从而解决了温、湿度信号的长距离传输问题及传输过程中因干扰和衰减而导致的精度降低的问题。但由于这种粮仓内温湿度测控系统价格较高,也难以在我国大面积的推广。1.3 本文的主要研究内容由上文国内外粮仓内温湿度测控系统的现状可见,目前国内的粮情测控系统存在着误差大、系统稳定性差。而国外的粮仓内温湿度测控系统尽管性能较好,但由于价格过高,不适合在我国大量使用。本文设计了一种基于单片机的粮仓内温湿度测控系统。该系统在保持我国现有系统价格低廉的前提下,相比现有粮仓内温湿度测控系统具有结构简单、易于安装、运行稳定可靠、抗干扰能力强、检测精度高等优点。为粮仓内温湿度测控自动化在我国的推广、普及提供了一种切实可行的解决方案。本文的第一章在分析当前国内外粮仓内温湿度测控系统的现状与优缺点的基础上,确定了研究的重点和设计的目标。第二章对系统的硬件设计做了详细的概述。第三章采用VB6.0+Access数据库编写,即用VB6.0为前台开发工具,用Access作后台数据库平台,作为系统软件的前台开发。第四章对系统可能存在的干扰因素设计了相对应的硬件抗干扰系统和软件抗干扰系统。2.系统的硬件设计及方案选择2.1系统的方案选择方案一:基于MSP430F1232的温湿度检测系统。本方案采用分别设计温度和湿度采样电路的方法,将继承温度传感器AD590采集得到的电流信号和湿度传感器HM1500采集到的电压信号转换为给定范围内的电压信号。然后由单片机MSP430F1232的AD采样端口将该电压信号读入,如果温度小于门限值或者湿度大于门限值就给出报警信号。门限值可以通过按键进行设定。同时,系统还可以通过中断方式按给定协议将采集到的温湿度值传给上位机。方案二:系统在现场采用温湿度传感器采集现场的温湿度信号,转换成标准电流信号输送给显示仪表,该显示仪表具有RS-485通讯和现场显示功能,通过RS-485通讯信号将温湿度值传送到上位机的接收装置。温湿度传感器采用的是数字化温湿度传感器LTM8901。下位单片机用的是AT89C51,AT89C51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。在这两种方案中,选择了方案二作为此次课题的研究方案,数字化温湿度传感器LTM8901,使用了全新的生产工艺,具备数字化、网络化的特点,实现高精度、高互换性、方便的现场校准/安装,是经济性、方便性和先进性的统一。相对与方案一的温度传感器与湿度传感器是分开的,数字化温湿度传感器LTM8901更为方便。传感器与传感器之间可联网,也可以单只使用。使得系统更简单,更具兼容性,更易扩展。RS-485收发器采用平衡发送和差分接收来实现通信,在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号还原成TTL信号,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,传输信号能在千米以外得到恢复;另外,RS-485总线支持犯个外挂点,完全满足粮仓内远距离、多节点的要求。2.2 系统的总体结构及功能粮仓内温湿度测控系统组成如图所示,图2.1为系统总体框图。按照系统要达到的控制目的,本控制系统是由四个部分组成:(1)信号采集、输入部分:主要实现传感器对温、湿度数据的采集,处理并将处理后的数据传至下位机;开关量即键盘的信号输入。(2)输出及控制部分:报警信号的输出,控制执行机构对温湿度进行控制。(3)通讯部分:包括TTL-RS485转换及RS485-RS232转换两部分,二者共同完成温湿度数据传至上位机整个过程。(4)计算机部分:计算机主要完成参数设置、数据存储、处理及管理功能。图2.1 控制系统总体框图2.3 温湿度采集模块2.3.1数字化温湿度传感器LTM8901简介数字化温湿度传感器LTM89016是全新概念的温湿度传感器,采用了智能线性化技术,使用了全新的生产工艺,具备数字化、网络化的特点,实现高精度、高互换性、方便的现场校准/安装,是经济性、方便性和先进性的统一。传感器与传感器之间可联网,也可以单只使用。使得系统更简单,更具兼容性,更易扩展。LTM8901使用数字化技术,使得系统精度不受传输影响:无需A/D等繁琐电路,数据由传感器出来直接进入采集器,系统可能发生故障的环节少,便于维护。LTM8901不是简单的湿敏元件,而是传统湿敏元件与湿度变送器的融合体,本身具有很强的抗静电、抗干扰、抗反接等保护能力,而且具有很强的结露恢复能力,并对腐蚀性气体有一定的抵御能力。LTM8901只需5V供电,峰值电流为9mA,极低的功耗符合节电、低热的环保要求,并且极为逼近国家电子产品安全级防爆5V、5mA的标准。LTM8901的技术特性: 可现场数字化校准 工作温度范围:-25+60 湿度测量分辨率:0.5%RH 湿度测量量程:1%99%RH 湿度测量精度:3%RH 回差:2.0%RH(典型值) 年漂移:0.5%RH(典型值) 响应时间:5s(典型值) 工作电压范围:4.55.5V 温度测量分辨率:0.0625 温度测量精度:0.5 温度测量范围:-25+60 接线方式:螺旋端子 功耗:5V/9.0mA2.3.2 LTM8901硬件设计LTM8901采用单总线网络,由VDD、DATA、GND三条线组成。其中上位机(在本系统中指的是下位机即单片机)与其通讯所用的数据线DATA为双向总线,所有数据的收发,均通过这条总线来完成。这也是“单总线”一词的由来。每个LTM8901的单总线接口部分为OC门结构,因此,这条总线上可以挂接多个LTM8901,共享同一条数据线。LTM8901总线接口有两种:单线接口,双线接口。(1)单线接口单线接口比较简单,上位机CPU只需有一个双向的I/0引脚,按图2.2的电路连接,即可与ITU通讯。由于CPU类型不同,其FO引脚驱动能力亦有区别。同时为了保护CPU,总线长度不要超过5M。(2)双线接口当LTM8901需要连接较长距离时,采用双线接口方式。此种接线方式需两个FO引脚。电路如图2.3所示。CPU由IN端读入总线电平信号,由OUT端控制总线电平。本系统采用双线接口,IN端接I/O口的P1.1,OUT接P1.0。选择ITU总线电缆应考虑以下几点: (1)电容:要求线路线间电容越小越好,应100pF/m。总线较长时,应70pF/m。(2)电阻:要求线路两端线间电阻越小越好,优先选用线路截面积较大的电缆。总线较长时,应4/100m。(3)类型:推荐使用四芯屏蔽双绞线(两个单独线对,每对均为双绞线)。推荐接线方式:DAIA与GND为一个线对,VCC与GND为一个线对,两个GND端在LTM8901端子处接在一起。在现场环境较恶劣的情况下,屏蔽层应妥善接大地。(注:屏蔽层不可与GND接在一起)。图2.2 LTM8901单线接口图2.3 LTM8901双线接口2.3.3 LTM8901通讯协议(1)工作方式 CPU处于主控工作模式,LTM8901模块收到CPU命令后,采取相应的动作。如未收到CPU命令,LTM8901模块处于空闲模式6。(2)命令类型LTM8901通讯协议中,命令共有两种类型。一种为单脉冲式,如启动命令;一种是字符命令式,如读取命令(00H)。单脉冲式为一个时间较长的负脉冲。字符命令式是由8个BITO或BITI时序脉冲组成的脉冲串,用于表示字符的八个位值(1个字节byte)。(3)启动转换命令上位机发出如图2.4所示的250s350s的负脉冲,即为启动命令。同时此命令可检测总线上是否存在LTM8901。图2.4 启动命令时序TSTL-上位机拉低,持续时间为TSTL,然后,再把I/0脚置为1,通过外接上拉电阻R,将总线拉至VCC电平。TSTH-8901在检测到启动命令后,延时TSTH。后,发出应答脉冲。若无8901,则不会有TPRE脉冲出现。TPRE-8901的应答脉冲,告知上位机,至少有一个8901存在。若在总线上有多个8901,多个8901可以同时发出PRE脉冲,因此,此脉冲为多个8901的PRE脉冲“线与”的结果。上位机可以检测这个脉冲来判断总线上是否有8901存在。启动命令发送后,须根据转换时间,延时一段时间然后再读取数据。典型值为:850ms(8901)。(4)位脉冲时序ITU是以电平及脉宽的不同表示每一位(BIT)是“0”还是“1”(详见BIT0、BIT1时序),由8个位(BIT)组成的脉冲串代表一个字节,由此组成命令或数据。每一个字节的命令,由8个位(BIT)组成,有BITO及BITI两种基本时序,有8个BIT0或BIT1可组成一个字节。BIT0时序图2.5 BIT0时序每个BIT0时序点长度TSLOT100s,其中:T00为60s70s,T01补足剩余时间。BIT1时序图2.6 BIT1时序每个BIT1时序总长TSLOTI00s,其中T10为:2030s T11补足剩余时间。(5)LTM8901命令集8901模块的通讯协议比较简单,由以下命令组成:表2.1 LTM8901命令集命令语法命令描述发250350us低脉冲启动转换命令00H数据读取命令8NH低4位数据输出命令,N为数据N:0FH9NH高4位数据输出命令,N为数据N:0FH数据读取命令(00H)上位机须发出一个3字节的命令,然后读取4个字节的数据。发送及读取数据,均从最低位开始。3字节命令定义为:ADDRCOMMAND CHECKSUMADDR-ITU的地址。有效范围为:00H1FH(031)COMMAND-命令符。范围:00FFH具体命令与ITU类型有关。其中:当COMMAND=00H时,为通用的读取数据命令。CHECK-SUM:为前两个字节的校验便于ITU检测数据的正确性。每一个字节的命令,由8个位(BIT)组成,若有BIT0及BIT1两种基本时序,有8个BIT0或BIT1可组成一个字节。每个BIT时序点长度TSLTO100s。命令发送上位机发送的命令由3个字节组成。每个字节发送完成后,应延时至少一个TSLOT时间,再发送下一个字节。图2.7命令发送时序数据接收上位机3个字节命令发送完毕后,上位机释放总线,立刻转入等待接受ITU数据状态。ITU顺序接收3个字节,经检验无误后,ITU会延时150200s后(此段时间为预留给上位机转入接受状态所用),连续发送4个字节一组的数据至上位机。如ITU为单点类型的,上位机与ITU只经过一次操作循环:上位机发送命令上位机接收数据。如ITU为多点类型的,上位机须延时4.5-5ms后再重复上述操作循环,次数与ITU所测点数相同即可。例LTM8901需要两个操作循环,以把温度或湿度两个物理量值取上来。上位机收到(ITU发送)的4个字节,顺序为:TYPE-DATAL-DAIAH-CHECKSUM每个字节由前面所述的BITO及BITI时序组成。图2.8接受字节时序每个字节的发送均由LSB开始,共计48+3=35个负脉冲。 (6)操作流程图上位机访问ITU LTM8901流程图如下:图2.9 访问LTM8901流程图2.4 数据传输模块计算机通信方式分为:串行通信与并行通信。(1)串行通信:数据一位一位地发送,1根发送线,1根接收线,地线,共3根;特点:硬件方便,适合距离远,速度要求不高的场合;串行通信又分同步串行通信和异步串行通信;(2)并行通信:一次传输8(16、32)Bit,8根数据线,1根控制线,1根状态线,地线,共n根;特点:速度快,适合近距离传输,如计算机并口,打印机。按通信进行的过程,分为:单工、半双工、全双工通信方式。(1)单工方式:一端是发送端,另外一端是接收端,信号只能从一端传到另一端;(2)半双工发式:每端口由一个发送器和接收器,通过开关连接在线路上,数据可以双方交换,但不能同时发送和接收;(3)双工方式:通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。2.4.1通讯总线选择本系统采用的总线方式是RS-485总线7816。通常控制系统中采用的总线方式有RS-232,RS-422,RS-485总线标准。RS-232接口是PC机通用接口,也是目前最常用的串行接口标准,广泛用于计算机之间、计算机与外设器件之间的数据通信。但RS-232接口属于单端信号传送,这种传送存在共地噪声且不能抑制共模干扰。它的最大缺点是通信距离短,一般只适用于几m以内的通信,只有每米电缆的电容量有所减少,通信距离才能有所增长;RS-232接口另一缺点就是传输数据慢。对于本温湿度测控系统来说,通常PC机和智能终端域智能温湿度传感器相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大功率的控制设备启动或切断,要保证下位机的数据高速、及时、准确地传送至PC机,显然RS-232接口是不能满足此类系统要求的。在温室测控系统中,总线需要支持多个外挂点,以便根据用户的需要随时增加环境测控点。相对RS-232标准来说,RS-422总线标准虽然延长了传输距离,大大增强了抗共模干扰能力,但是电路上只允许有一个发送器且一个发送器不能驱动多个负载设备的缺点不能满足多节点的要求,显然RS-422总线也不适合。RS-485收发器采用平衡发送和差分接收来实现通信,在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号还原成TTL信号,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,传输信号能在千米以外得到恢复;另外,RS-485总线支持犯个外挂点,完全满足温室远距离、多节点的要求。在温湿度测控系统中,总线需要支持多个外挂点,以便根据用户的需要随时增加环境测控点。相对RS-232标准来说,RS-422总线标准虽然延长了传输距离,大大增强了抗共模干扰能力,但是电路上只允许有一个发送器且一个发送器不能驱动多个负载设备的缺点不能满足多节点的要求,显然RS-422总线也不适合。RS-485收发器采用平衡发送和差分接收来实现通信,在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号还原成TTL信号,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,传输信号能在千米以外得到恢复;另外,RS-485总线支持犯个外挂点,完全满足粮仓内远距离、多节点的要求。另外,当前比较新型的智能化设备或智能化仪表多采用现场总线接口比较流行的有FF、CAN、PROFIBUS、LONWORKS、HART等,这种总线接口给出了数据通信协议标准,更大程度的保证了信号的可靠传输,完善了信号的出错处理能力,但是组成这种现场总线网络需要计算机上配备相应的总线适配卡,价格较贵,一般在几千元左右910。另外,各智能仪表或测控模块内要有相应的总线控制器以组成总线接口,由于各现场总线都有优缺点,都有成功的实例,所以短时间内难以形成统一的标准。这使得总线接口不会统一,且要在市场上找到某种现场总线接口的智能仪表很困难,不像RS-485接口己成为标准通信接口。即便有,这种智能仪表的价钱也很贵。因此,如果想使用智能仪表构建分布式测控系统,通讯采用现场总线形式,系统的成本就会很高。因为RS-485的远距离、多节点、抗干扰能力强以及传输线成本低的特性,所以本系统PC机与单片机之间的通信采用RS-485总线方式。2.4.2通讯接口的硬件设计实际应用中,由于大多数普通PC机只有常用的RS-232串行通信口,而不具备RS-485通信接口,因此,为了实现RS-485协议的串行通信,必须在PC机侧配置RS-232/RS-485接口转换电路11。RS-485通讯硬件电路如图所示,在该电路中,使用了一种RS-485接口芯片SN75LBC184,它采用单一电源VCC,电压在+3+5.5V范围内都能正常工作。与普通的RS-485芯片相比,它不但能抗雷电的冲击而且能承受高达 8kV片内集成4个瞬时过压保护管,可承受高达400V的瞬态脉冲电压。提高防止雷电损坏器件的可靠性。对一些环境比较恶劣的现场的静电放电冲击,因此,它能显著可直接与传输线相接而不需要任何外加保护元件。该芯片还有一个独特的设计,当输入端开路时,其输出为高电平,这样可保证接收器输入端电缆有开路故障时,不影响系统的正常工作。另外,它的输入阻抗为RS-485标准输入阻抗的2倍(24k),故可以在总线上连接64个收发器1213。芯片内部设计了限斜率驱动,使输出信号边沿不会过陡,使传输线上不会产生过多的高频分量,从而有效扼制电磁干扰。为了增强电路的抗干扰性肩旨,本电路图中,采用了两只高速光电耦合器6N137、HCPL2630,转换延时为75ns,前者为单通道光耦,负责隔离单片机接收端;后者为两通道光耦,对单片机的发送端和SN75LBC184的T引脚进行隔离,以及对收发控制口和单片机系统进行隔离,让单片与SN75LBC184之间完全没有了电的联系,提高了工作的可靠性。基本原理为:当单片机P0.7=0时,光电藕合器的发光二极管发光,光敏三极管导通,输出高电压(+5V),选中SN75LBC184的DE端,允许发送。当单片机P0.7=l时,光电耦合器的发光二极管不发光,光敏三极管不导通,输出低电压(0V),选中SN75LBC184的RE端,允许接收141516。图2.10 485通讯电路2.4.3通讯可靠性设计(1)在RS-485总线构筑的半双工通信系统中,在整个网络中任意时刻只能有一个节点处于发送状态并向总线发送数据,其他所有节点都必须处于接收状态。如果有2个节点或2个以上节点同时向总线发送数据,将会导致所有发送方的数据发送失败。因此,在系统各个节点的硬件设计中,应首先力求避免因异常情况而引起本节点向总线发送数据而导致总线数据冲突。本系统采用的是AT89C51,因其在系统复位时,I/O口都输出高电平,如果把I/O口直接与RS-485接口芯片的驱动器使能端DE相连,会在CPU复位期间使DE为高,从而使本节点处于发送状态。如果此时总线上有其他节点正在发送数据,则此次数据传输将被打断而告失败,甚至引起整个总线因某一节点的故障而通信阻塞,继而影响整个系统的正常运行。考虑到通信的稳定性和可靠性,在每个节点的设计中应将控制RS-485总线接口芯片的发送引脚设计成DE端的反逻辑,即控制引脚为逻辑“l”时,DE端为“0”;控制引脚为逻辑“0”时,DE端为“1”。在图2.10中,将CPU的引脚P0.7通过光电耦合器驱动DE端,这样就可以使控制引脚为高或者异常复位时使SN75LBC184始终处于接收状态,从而从硬件上有效避免节点因异常情况而对整个系统造成的影响。这就为整个系统的通信可靠奠定了基础。(2)在图2.10中,VDIVD4为信号限幅二极管,其稳压值应保证符合RS-485标准,VD2和VD3取12V,VD1和VD4取7V,以保证将信号幅度限定在-7+12V之间,进一步提高抗过压的能力。考虑到线路的特殊情况(如某一节点的RS-485芯片被击穿短路),为防止总线中其他分机的通信受到影响,在SN75LBC184的信号输出端串联了2个20的电阻R1和R2,这样本机的硬件故障就不会使整个总线的通信受到影响。在应用系统工程的现场施工中,由于通信载体是双绞线,它的特性阻抗为120左右,所以线路设计时,在RS-485网络传输线的始端和末端应各接1个120的匹配电阻(如图2.10中的R14、R16),以减少线路上传输信号的反射。(3)对于由单片机结合RS-485组建的测控网络,应优先采用各节点独立供电的方案,同时电源线不能与RS-485信号线共用同一股多芯电缆。RS-485信号线宜选用截面积 0.75mm2以上的双绞线而不是平直线。(4)SN75LBC184在接收方式时,A、B为输入,R为输出;在发送方式时,D为输入,A、B为输出。当传送方向改变一次后,如果输入未变化,则此时输出为随机状态,直至输入状态变化一次,输出状态才确定。显然,在由发送方式转入接收方式后,如果A、B状态变化前,R为低电平,在第一个数据起始位时,R仍为低电平,CPU认为此时无起始位,直到出现第一个下降沿,CPU才开始接收第一个数据,这将导致接收错误。由接收方式转入发送方式后,D变化前,若A与B之间为低电压,发送第一个数据起始位时,A与B之间仍为低电压,A、B引脚无起始位,同样会导致发送错误。克服这种后果的方案是:主机连续发送两个同步字,同步字要包含多次边沿变化(如55H,0AAH),并发送两次(第一次可能接收错误而忽略),接收端收到同步字后,就可以传送数据了,从而保证正确通信。(5)为了更可靠地工作,在RS-485总线状态切换时需要适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时 0.5ms左右的时间,再发送有效的数据,数据发送结束后,再延时 0.5ms,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。2.5 开关量输入模块该装置共有4个独立的输入端口,每个端口均可向系统输入电平信号。对应于微处理器AT89C51的P1口 (P1.4-P1.7)输入,微处理器AT89C51的P1口输入端口电路与系统的数字电路部分共用同一+5V电源,如图2.11所示。当按键S2断开时,+5V电源经上拉电阻R44将电路中的A点置于高电平;当按键S2闭合时,A点与数字地短接为低电平。电路中的74HC14为施密特反相触发器1718。图2.11输入端口电路2.6输出控制模块2.6.1硬件电路设计本系统的输出控制控制信号由单片机发出,通过光电隔离,驱动继电器,既而控制执行机构来调节环境的温湿度。输出控制总体框图如图2.12,电路图如图2.13。在单片机应用系统中,由于输出设备往往需大电压或者电流来控制,而单片机系统输出的开关量大多为TTL电平,这种电平一般不能直接驱动外部设备开启或关闭。另一方面,许多外部设备,如大功率电机,接触器等在开关过程中会产生很强的电磁干扰信号,如果不加以隔离,可能会使微机控制系统造成误动作或损坏。因此,在接口设计处理时,一要放大,二要隔离。本系统采用的是光电耦合器进行隔离。光电耦合器由发光源和受光器两部分组成,并封闭在同一不透明的管壳内由绝缘的透明树脂隔开。发光源引出的管脚为输入端,受光器引出的管脚为输出端。光电耦合器的封装形式有管型,双列直插式和光导纤维连接等形式。光电耦合器的发光源常用砷化镓红外发光二极管,受光器常用光电三极管、光敏晶闸管和光敏集成电路等。图2.12 输出控制总体框图图2.13 输出控制电路光电耦合器具有如下特点19:首先,光电耦合器的信号传递采取电光电的形式,发光部分和受光部分不接触,因此具有很高的绝缘电阻,可以达到1010以上。并能承受2000V以上的高压,因而被耦合的两个部分可以自成系统,也不需要“共地”,绝缘性和隔离性都很好,能够避免输出端对输入端可能产生的反馈和干扰。其次,光电耦合器的发光二极管是电流驱动器件,动态电阻很小,对系统内外的噪音干扰信号形成低阻抗旁路,所以具有很强的抑制噪声干扰的能力。最后,光电耦合器作为开关应用时,具有耐用、可靠性高和速度快等优点,响应时间一般为数s以内,高速型光电耦合器的响应时间有的甚至小于10ns。本系统采用的是TLP521系列光电耦合器,其限流电阻为330,集电极上拉电阻去3.3k。该测控系统拥有的8个独立输出端口均采用了交流固态继电器SSR来实现控制回路(输入端)的弱电信号与负载回路(输出端)的强电负载驱动之间数字地与模拟地的隔离及信号耦合。交流固态继电器SSR(Solid State Relays)是一种无触点通断电子开关,为四端有源器件。其中两个端子为输入控制端,另外两端为输出受控端,中间采用光电隔离,作为输入输出之间电气隔离(浮空)。在输入端加上直流或脉冲信号,输出端就能从关断状态转变成导通状态(无信号时呈阻断状态),从而控制较大负载。整个器件无可动部件及触点,可实现相当于常用的机械式电磁继电器一样的功能。与机械继电器MER相比,固态继电器没有任何可动的机械部件,工作中也没有任何机械动作:固态继电器由电路的工作状态变换实现“通”和“断”的开关功能,没有电接触点,所以它有一系列机械继电器不具备的优点,即工作高、可靠、长寿命(有资料表明固态继电器的开关次数比一般机械继电器高几百倍);无动作噪声;耐振、耐机械冲击;安装位置无限制;很容易用绝缘防水材料灌封做成全密封形式,而且具有良好的防潮防霉防腐性能;在防爆和防止臭氧污染方面的性能也极佳。因此在微机控制系统中得到了广泛的应用,大有取代电磁继电器之势。故本系统采用的是交流固态继电器20。由于AT89C51单片机上电时,其I/O口处于输入状态,为了保证单片机复位时,继电器不出现误动作,设计时采用低电平有效的输出方式,并在初始化时将I/O口输出电平置成高电平。这样,当单片机复位并上电后,光耦不导通,继电器就不会动作;当需要继电器动作时,可以给单片机相应I/O口置低电平即可。当输入为低电平时,光耦导通,且输出为高电平,此时,晶体三极管9013饱和导通,继电器吸合;当输入为高电平时,三极管截止,继电器则释放,完成了信号的传送过程。其中,并联的二极管IN4001起保护作用,当三极管由导通变为截止时,继电器线圈产生很高的反电势,以继续维持电流,由于该反电势一般很高,容易造成三极管的击穿,加入二极管后,为该反电势提供了放电回路,从而保护了三极管。执行机构选用开窗机构和排风扇,通过这样的组合实现粮仓内的温湿度控制。3 测控系统的软件设计3.1 系统总体设计及功能介绍本系统软件具有良好的人机交互界面,方便操作。主要有系统功能模块、实时数据显示模块、历史数据处理/查询模块、报表输出模块、数据采集设置模块、帮助文件六大模块。监控软件总体设计框图如图3.1。图3.1 监控软件总体设计框图系统功能模块:本模块完成通讯检查、用户重新登录功能,用户还可以在此建立用户账户和密码,但是只有管理员才有资格删除用户。实时数据显示模块:实时以曲线形式显示监测温、湿度数据;还可以显示执行机构的状态。历史数据处理/查询模块:给出历史数据的表格,及历史趋势曲线,统计量(最大值、最小值、平均值),还可进行更深层的统计分析:可以由用户自由设定查询条件对历史数据进行查询;也可导出数据到文件,以文本或表格方式保存;根据用户需求,以表格方式打印数据,亦可打印曲线图。报表输出模块:用户可以根据需要打印日、月、年报表。数据采集设置模块:在此设置采集时间间隔:温、湿度值的上、下限;下位机的编号;校对时间。帮助文件模块:该模块包含了软件简介、使用注意事项及故障排查、各部分详细的使用说明。3.2 系统开发平台及开发工具前台开发工具的选择直接影响到系统的速度和质量,作为软件的前台开发工具,Visual Basic(以下简称VB)具有能进行复杂的数据处理、能较快的数据采集和处理速度、支持面向对象技术、能访问和操纵数据库等特点,对数据库访问和操纵包括提供多种数据表现形式、能产生复杂的报表,具有图形处理能力等功能。另外VB和Access数据库都是微软公司的产品,它们之间互相支持,在编程过程中可以使用VB丰富的特性集来完成系统的功能。为便于联网,该系统软件采用VB6.0+ Access数据库编写,即用VB6.0为前台开发工具,用Access作后台数据库平台。因此软件可以兼容win9x、win2000、winxp、win2003,可以根据用户需要进行联网测试,软件采用“即见即会”的操作界面,使任何人,只要了解Windows的基本操作,无需长时间培训就可掌握操作方法。3.2.1 系统前台开发工具的功能及特性可视化的VB程序设计语言,是比尔.盖茨及众多开发人员挚爱的开发工具,VB已经经历了很多次的改进,其目的就是使VB能更简单快捷地用于设计、编写和调试出优秀的面向对象的应用程序。VB引用了Windows的三大核心技术,即可视化技术、面向对象的方法和事件驱动程序设计。使用可视化程序设计方法,程序员无需编写大量代码去描述界面元素(如常见的按钮,文本框)的外观和位置,只要把预先建立的界面元素用鼠标施放到屏幕上适当的位置即可。面向对象技术是Windows技术的精髓,也是VB的关键技术。在VB中对象称为控件,就是用户界面上任意元素,包括窗体(界面窗口)、按钮、文本框等。对象的数据就是控件的各种属性,如窗体的标题、按钮的大小、文本框的字体等,它们可以在建立时定义,也可在执行过程中动态改变,这使VB设计呈现无比的灵活性,可以生成动态界面。对象的操作就是控件能实施的各种方法,如窗体的移动等,正如面向对象技术本身的意义一样,VB中面向对象方法的运用,规范和简化了VB应用程序的数据管理和操作管理。事件驱动程序设计是面向对象技术的一部分,VB的程序设计是事件驱动程序设计。在VB中事件就是能被对象所识别的动作,如鼠标单击、键盘输入、窗体载入等,事件过程就是动作对象对事件的反应。同样,和事件驱动程序设计技术本身的意义一样,事件驱动程序设计使VB应用程序具有较强的交互性,并简化了大型VB应用程序设计的程序分解工作。可视化、面向对象和事件驱动是VB的三大基本技术,也是关键技术。VB易学的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和面向对象的程序设计等特点,已广泛地应用于各个领域。采用VB开发数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,完全能够满足系统功能的要求的数据采集速度、其较强的数据处理能力和简单灵活的编程风格,可大大缩短开发周期,减少开发费用,减轻编程人员的设计负担,无疑是一种理想的选择。利用ActiveX控件MSComm能十分方便地开发出使用计算机串口的计算机通信程序。特别是VB6.0中的新增数据库工具包括数据视图(Data view)、查询设计器(Query Designer)、数据计器(Data Report Designer)等,更给VB插上了翅膀。3.2.2 后台数据库工具及其特性随着数据库应用的日益广泛,数据库市场呈现非常繁荣的景象,各软件公司纷纷推出自己的数据库应用系统,比较流行的数据库有Oracle、Sybase、Informix、Microsoft SQL server、DBase、Paradox、Visual FoxPro、Access等。这些关系型数据库以其功能强大,操作简单、使用方便、开发成本低等特点占据市场份额最大。Access的核心是数据库连接性引擎技术Microsoft Jet(Joint Engine Technology),而 Microsoft Jet对Access进行了优化,用Jet访问Access可以获得更高的效率。最大优点是支持网络环境的应用,如管理用户组及安全性等。Access数据库文件不仅包含传统意义上的表,还包括操作或控制数据库的其他对象,如查询、窗体和报表等。Access的这些特性使它成为许多数据库应用系统的首选。本系统采用Access作为后台数据库的更重要原因有两个,一是它与VB使用相同的数据库引擎 Microsoft Jet,系统可以建立既包括Access组建又包括VB组建的应用程序,提高系统的稳定性,充分发挥两者各自的优点:二是系统统一使用Access作为系统开发后台数据库,以便将来联网管理。3.3 数据库设计3.3.1 概述数据是一种极为重要的资源,人们的一切活动都离不开数据,尤其是需要存取大量的数据,并将其组织成易于读取的格式。这种要求通常可以通过数据库管理系统(DBMS)实现。DBMS是指在操作系统支持下为数据库建立、使用和维护而配置的庞大软件。如Microsoft SQL Server或 Microsoft Access等。利用数据库管理系统提供的一系列命令,用户可以建立各种数据库文件和辅助操作文件,定义数据以及对数据进行各种操作,比如增加、删除、更新、查找和输出等。用户使用的各种数据库命令以及应用程序的执行,都要通过数据库管理系统来实现。此外,DBMS还承担数据库的维护工作。数据库管理系统隐藏了数据如何在数据库中存放之类的低级细节,使用户可以抽象地、逻辑地使用数据,而不考虑文件的具体操作和数据链接关系的维护。目前,经典的数据库管理系统有:层次数据库系统、网状数据库系统和关系数据库系统(RDBMS)。关系数据库以其结构简单、理论基础结实、数据独立性高以及提供非过程性语言等优点而成为当今实用系统的主流。关系数据库系统一般分为两类,一类是客户/服务器数据库,如Microsoft SQL Server、Oracle和Sybase等;另一类是桌面数据库,如Access、FoxPro、DBase等。一般而言,桌面数据库主要用于小型的、单机的数据库应用程序,客户用民务器数据库主要适用于那些大型的、多用户的数据库管理系统。Microsoft Access属于桌面数据库管理系统。它使用单个数据库文件,该文件包含了与数据库相关的所有本地表。其数据库引擎Jet负责实现本地表的引用完整性,当改变受限字段的值时,Jet能保证在字段级和表级的域完整性。Access打破了后端/前端界限,使所有的应用代码、对象(如表单和报表)以及表都可以存储在同一个数据库文件中。数据库是指包含数据库表的一个或多个文件,它是数据管理系统的最基本组成单元。对于Microsoft Access数据库来说,就是.m曲文件。数据库本质上都是被动的,它包含数据,但它不对数据进行任何操作,对数据的操作由数据库引擎来完成。而数据库引擎Jet一般被包含在一组动态链接库DLL文件中。在运行时,DLL文件被链接到 Visual Basic程序。它把应用程序的请求翻译成对.mdb文件的物理操作。它真正读取,写入和修改数据库,并处理所有内部事务。3.3.2 数据库的访问Visual Basic6.0提供了很多访问Microsoft Access2000数据库(实际应用中应转化为早期版本的数据库 Microsoft Access97,否则不可使用)的方法,常用的有Data控件、数据访问对象DAO(Data Access Objects)和ActiveX数据对象ADO(ActiveX Data Objects)等。Data控件可以不需要任何编程而访问数据库,但这种方法灵活性较差,对数据库操作局限性较大,是一种初级方法。数据访问对象DAO是全面控制数据库的完整的编程接口,是通过程序访问数据库的对象结构。尽管需要更多的代码,但利用DAO可以访问数据库中的所有对象,Data控件的所有功能都可以通过它提供给程序,而且更加灵活。DAO模型,它是设计关系数据库系统结构的对象类的集合。DAO允许在程序中生成各种对象,通过对象变量来访问数据库,在程序中经常用到如下的代码为:Dim dbmy As DatabaseDim rsmy As Record setSpath = APP. Path &“DatabaseName.mdb”Set dbmy = Open Database(spath,False,Ture)Set rsmy = dbmy. Open Record set(“TableName”,dbOpenTable)ActiveX数据对象ADO是Microsoft提供的一种面向对象、与语言无关的数据访问应用编程接口。它提供了多语一言的访问技术,包括 Visual Basic,Visua1C+,VBA,VBScript等。ADO的最主要优点是易于使用、速度快、内存支出少和磁盘遗迹小。这种访问数据库的方法简化了代码并使程序员不必亲自检索和更新数据的底层结构和机制,它赋予程序员很大的灵活性,因为可以使用同样的对象、属性和方法来处理各种不同的数据库格式。本系统把ADO作为前端开发工具来存取Microsoft及Access2000数据库。ADO实质是一个相当复杂的数据模型,包含连接对象、命令对象、记录集对象、字段对象、错误对象等对象和对象集合,其中最重要的对象和集合有Connection、Record set、parameters等。其操作和维护数据库基本功能有:(1)运行选择查询;(2)通过一个数据库集合进行迭代,或通过一个记录集中的记录进行迭代;(3)运行实际的查询(包括更新、删除和附加的查询);(4)改变数据库组件的结构;(5)检测数据库访问所产生的错误。Global cn As New ADODB .ConnectionPublic mpath As StringSub init Data base()Mpath=App. PathIf Right(mpath,1) “”Then mpath = mpath &“”Mlink=“Provider=Microsoft.Jet,OLEDB.3.51;”Mlink= Mlink+“Persist Security Info=False;”Mlink= Mlink+“data sourer=”+mpath+“databaseName.mdb”cn.OpenMlinkEnd Sub另外,VisualBasic6.0是最流行的数据库应用程序开发工具之一,它具有强大的数据库功能,用户可以使用它提供的数据控件和数据存取对象,非常方便地对数据库进行增加、删除、修改、查询、排序、统计等常规数据库操作。而且, Microsoft Access2000和Visual Basic6.0共享同样的数据库引擎Jet,由这两个系统产生的最终数据库文件是相同的,并且Microsoft Access2000对建立数据库对象有更高级的和更容易使用的界面,与Visual Basic6.0可视化的界面设计方法能够很好的配合使用。3.3.3 本系统数据库的设计数据库在整个系统中占有相当重要的地位,是控制信息收集和存储的容器。数据库的建立是功能模块构建的基础,是人机信息交流的场所。在本温室控制系统在中使用了五个数据库文件来储存这些信息。主要

温馨提示

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

评论

0/150

提交评论