温湿传感器批量检定系统的上位机设计

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:yongqingf
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:主要阐述了自动站温湿度传感器数据采集及处理系统的软件设计,分析了其功能、结构、界面设计,介绍了数据的采集、存储、查询、证书打印等的实现算法。经实践验证,该系统提高了传感器的检定速度,节省了检定人力。
  关键词:温湿传感器批量检定系统;软件设计;用户界面;数据管理
  目前对于国内气象站温度、湿度及气压传感器的检定主要还是依靠自动站采集器,通过采集器监控软件显示传感器读数,由于受自动站采集器通道的限制,各传感器的批量检定还不能实现,校准数据和证书还是以人工输入为主,在这种条件下使得传感器的检定耗时长、占用人力多[1]。为了改善这种状况,在VC6.0环境下使用MSComm通信控件和SQL Sever 2000数据库技术,开发了自动站温湿度传感器数据采集及处理系统,实现多路温湿传感器的数据批量采集,实现对于温湿传感器的批量检定。
  1 软件的主要功能、结构和界面设计
  本系统主要通过对温湿度传感器的数据采集,实现对温湿传感器批量检定。整个系统在Visual C++ 6.0环境下开发,总共包括五大模块:温湿度传感器数据检测模块、温湿度传感器数据存储模块、温湿度传感器合格与否自动判定模块、温湿度传感器数据查询模块、相关证书的打印模块。
  软件的各功能菜单采用统一格式的用户串口界面。其中,屏幕显示的是以下几个方面:⑴主界面,由背景界面和主菜单组成;⑵点击检测菜单时,显示温湿度传感器的信息界面,所填的信息包括所测传感器的信息和标准器的信息。⑶该系统的查询功能可对检测数据和检测结论分别查询。
  2 数据的采集、存储和查询
  2.1 串口通信实现数据的批量采集
  串行通信应用广泛,在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息[2]。在Visual C++ 6.0环境下,一般使用控件‘MSComm’控件进行串行通信开发。通过MSComm控件,上位机也可以实现对下位机的操作,比如实时显示数据,更改需要检测的传感器个数等。
  2.1.1 检测数据的实时显示
  该系统要求每隔3秒钟一次显示1号,2号,…,n号传感器所检测的温度/湿度数据,即要求实现数据的实时显示。具体算法为:设置一个3秒定时器,每隔3秒向下位机发送一个数据,用于通知单片机需要几号传感器的测量值,并且根据不同的数据告知单片机需要的是温度值,还是湿度值,进而可以区别测量温湿度的值。在本系统中,当需要传感器检测的温度值时,上位机会向下位机发送0xF0-0xF7;需要传感器检测的湿度值时,上位机会向下位机传送0xF8-0xFF。下位机根据上位机的数据,选择输出不同的传感器的温度/湿度值。上位机接受到数据之后,显示在相应的编辑框中。
  2.1.2 传感器有效个数的更改
  执行更改需要检测的传感器个数的程序,具体的算法:根据用户在下拉列表中选择的个数,调用CWnd中的子函数GetDlgItem()和EnableWindow()函数使得被选中的所有的传感器相应的编辑框有效。
  2.2 SQL-Server 2000数据库实现数据的存储和查询
  SQL-Server 2000是微软公司开发的中型数据库,它的可视化方面做得很好,在安全性等方面功能非常强大,并且有微软的强大技术支持。连接和使用SQL Server数据库有多种不同方法,包括ODBC,DAO和RDO等。ADO是Microsoft的主要数据访问方法,故本系统采用ADO方法。ADO与OLE DB是Microsoft的Universal Data Access(UDA)策略中的关键组件。OLE DB定义一组COM接口,包括数据访问服务。ADO是个高级对象模型,将OLE DB提供的数据提供给应用程序。UDA(universal data access,通用数据访问,也叫全局数据访问)是microsoft为企业应用范围内各种类型信息存取所制定的一项新战略,它提供对多种数据源进行存取的一致界面。
  利用Microsoft OLE DB Provider for SQL Server(SQLOLEDB),可不必访问另一ODBC API和驱动器层,可以直接访问数据源。要使用这个数据提供者,经连接字符串的Provider变元设置为SQLOLEDB。
  与DAO和RDO等数据访问库相比,ADO对象模型很简单,主要有五个对象,可以实例化更多底层集合和对象。Connection对象,表示打开的数据源连接;Command对象,可以对SQL Server执行命令;Recordset对象,是从SQL Server返回的一组记录,但Recordset对象还提供了客户机应用程序中读取、更新和操纵数据的机制[3]。本系统较多使用了Recordset对象对数据库进行操作;Record对象,表示层次式机构中存放的数据,Record对象也可表示Recordset中的行,利用这个对象可以管理文件系统中的目录和文件,或e-mail系统中的文件夹与消息。
  本系统共需要三个表格:温湿传感器的信息(HTSensorI nfo)、温湿传感器湿度检测数据(HTHSensorData)、温湿传感器温度检测数据(HTTSensorData),每個表格中包含所需要存储的各个变量。这三个表格同在HTSensor数据库中。
  使用SQLOLEDB连接SQL Server数据库,连接字符串如下:
  "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=HTSensor";
  2.2.1 数据的存储
  对于数据库的存储主要有两个方面,一个是在没有数据的情况下进行数据的插入,另一个是原来存在数据,则进行数据的更新。   插入数据用到的是SQL Server中的INSERT语句,例如:
  "INSERT INTO HTSensorInfo(ChuChangNum,… …,Conclusion)VALUES(+ChuChangNum+,… …,+Conclusion+)";
  更新数据用到的是SQL Server中的UPDATE语句,例如:
  "UPDATE HTSensorInfo SET SensorName=+SensorName+,… …,Conclusion=+Conclusion+WHERE ChuChangNum=+ss+";//ss是参变量。
  2.2.2 数据的查询
  数据的查询主要用到了Visual C++的三个控件:ADO Data控件;DataGrid控件;DataCombo控件。
  ⑴ADO Data控件:使用ADO Data控件可以快速地创建一个到数据库的连接,并且它调用Recordset对象提供对存储在数据库中的数据的访问,并允许从一个记录移动到另一个记录,显示和操纵记录数据。ADO Data可以执行大部分对数据库的操作,但是它不能够显示数据库中的数据,一般会和数据察觉控件搭配使用,比如DataGrid控件、DataCombo控件、DataList控件。当ADO Data控件中的当前记录发生变化时,数据查询控件中的数据也随之发生变化。
  本文中,对于每个用到的数据表格都关联了相应的ADO Data控件。这样,就可以实现了将数据库中的数据与数据察觉控件相联系,显示数据库中的数据。
  ⑵DataGrid控件:DataGrid控件以表格的形式显示结果集中的数据,它需要ADO Data控件提供数据源。与关练了数据库中相关表格大ADO Data控件相结合,DataGrid控件中便可以显示测量的数据。
  ⑶DataCombo控件:DataCombo控件是数据绑定组合框。其外表是一个组合框的形式,它与一般的组合框的不同之处在于它需要一个ADO Data控件指定数据源,并且使用数据源中的一个字段填充。而这个字段将是显示在这个组合框中的内容。鉴于本系统的查询要求,本系统用到的所有DataCombo控件都是和数据源中的仪器编号相联系。
  本系统中的查询界面由数据查询和检验结论查询两部分组成。使用两个Adodc控件分别为DataCombo控件和DataGrid控件提供数据。利用SELECT语句实现查询功能。举例如下:
  CString strSql="SELECT Sensor_id,ChuChangNum AS 出厂编号,… …,Time AS检校时间FROM HTSensorInfo";
  3 调用EXCEL实现数据、证书的输出打印
  因为证书有一定的格式,所以实现证书的打印,用到的算法为:预先设定好相应的模板,在Visual C++环境中调用一定格式的Excel表格进行数据的导出、证书的打印等。
  在Visual C++中根据模板创建EXCEL的程序为:
  COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
  if (!m_App.CreateDispatch("Excel.Application",NULL))
  {
  AfxMessageBox("创建Excel服务失败!");
  return;
  }
  m_App.SetVisible(false);
  //利用模板文件建立新文档
  char path[MAX_PATH];
  GetCurrentDirectory(MAX_PATH,path);
  CString strPath = path;
  strPath += "\\"+moban;//‘moban’为参变量。‘moban’不同,创建出的EXCEL表格便不相同。
  m_Books.AttachDispatch(m_App.GetWorkbooks(),true);……
  4 结束语
  该系统集数据采集、数据存贮、证书打印于一体,适用于铂电阻温度表、气压传感器(模拟信号输出)、湿度、風向(模拟信号输出)传感器的批量校准,为自动气象站传感器室内检定、校准发挥了重要作用。
  [参考文献]
  [1]李光忠.基于单片机的温湿度检测系统的设计[D].山东大学,2007.
  [2]李长林,高洁.Visual C++串口通信技术与典型实例[M].北京:清华大学出版社.2006,20-25.
  [3]孙鑫.VC ++深入详解[M].北京:电子工业出版社.2008,752-767.
其他文献
据媒体报道,近日福建省科技厅批准建设的四个省重点实验室中,厦大占两个,分别是“福建省特种先进材料重点实验室”和“福建省半导体材料及应用重点实验室”。至此,在2003年获批建
现如今,我国汽车自动化生产线中包括两个环节的内容,其中一个是焊装车间,另一个是涂装车间。焊装车间和涂装车间都在汽车自动化生产线上发挥着不可取代的作用。焊装车间和涂
做好广播电视设施保护是一项长期而又复杂的工作,需要各级各部门的高度重视和共同协作,形成齐抓共管的良好局面,现就目前广播电视设施保护提几.点建议和看法。
数控机床是广泛应用于工业生产中复杂的机械加工设备,本文从数控机床的安装、调试、维护等方面进行了简要的阐述,并结合实例分析了在机床安装、维护方面中常见的问题,从而减
由于高职院校学生生在面对陌生的环境时,自我调节和适应环境的能力不强,出现了一些令人担扰的负面心理现象:孤独、焦虑、彷徨、苦闷烦躁等,影响大学生身心健康和正常发展。认真分
本文结合电厂非全相运行事故案例调查,对发变组非全相运行事故制定应急措施,最大幅度的降低因发变组非全相运行造成的损失,充分提高发电过程中的安全性和可操作性。
文章从市场经济发展和艺术设计教育的关系出发,分析了现行教学管理模式实施中存在的学生综合能力的培养以及怎样突破"校园围墙"走向社会实践的不适应问题,探讨了以"线"、"块"
在社会生产技术进步的进程中,汽车在人们生活中的重要作用不言自明。汽车方便了人们的出行,但是与之伴随的是汽车安全事故的频发。当前我国汽车驾驶和道路交通安全方面法律体
《江苏省职业教育课程改革行动计划》于2005年11月05日进入全面实施阶段,本文从计算机信息技术中职教育着手,介绍了新课程改革中的"任务驱动"教学法在实践中的应用,并对方法本
腐败主要是行政官员滥用其掌握的行政权力而产生的.要遏制腐败,就要限制行政权力的滥用.文章从对行政权力的正确行使和制约等方面探讨了消除腐败的途径.