龙虾养殖远程监控系统——数据采集模块

龙虾养殖远程监控系统——数据采集模块

ID:28299859

大小:122.04 KB

页数:43页

时间:2018-12-09

上传者:U-25918
龙虾养殖远程监控系统——数据采集模块_第1页
龙虾养殖远程监控系统——数据采集模块_第2页
龙虾养殖远程监控系统——数据采集模块_第3页
龙虾养殖远程监控系统——数据采集模块_第4页
龙虾养殖远程监控系统——数据采集模块_第5页
资源描述:

《龙虾养殖远程监控系统——数据采集模块》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

龙虾养殖远程监控系统——数据采集模块编号淮安信息职业技术学院毕业论文题目龙虾养殖远程监控系统的设计与实现——数据采集上位机软件模块杨正丽31082008计算机科学与工程系软件技术310820王志勃讲师学生姓名学号系部专业班级指导教师顾问教师摘要二〇一〇年六月II摘要摘要 基于CAN总线的龙虾养殖远程监控系统是针对江苏盱眙龙虾养殖基地而设计的一套高效精细化养殖系统。采用高效现代化设施农业改造是实现精细化养殖,提高特色水产养殖经济效益的必由之路。根据本项目作业范围大的特点,系统采用了CAN总线作为现场总线,配合多种传感器技术和远程控制技术,实现了对现场的数据采集和电气设备控制。在此基础上开发了一整套用于监控和数据处理的智能化龙虾养殖管理系统。基于CAN总线的龙虾养殖远程监控系统集数据采集、视频监控、软件控制等多种技术于一体,是一个综合性、应用性比较强的项目。分别由计算机科学与工程系和电子系教师承担指导,两系学生共同完成。项目总体分为四个模块:数据采集上位机软件模块、远程监控软件模块、环境数据采集硬件模块和视频监控模块组成。本篇论文主要完成龙虾养殖远程监控系统中上位机数据采集模块功能的设计与实现。在该模块中通过CAN总线实现了对现场多种传感器的数据读取,同时根据系统的设定自动或手动的启动养殖水域的各种电气设备。在这个过程中依赖CAN远程控制卡提供的DLL驱动,实现了数据的读取与设备控制。上位机数据采集模块使用C#语言进行开发,模块系统基于C/S架构。关键词:CAN总线数据采集C#三层模型龙虾养殖监控I目录目录摘要..............................................................................................................................I目录............................................................................................................................II第一章 前言..................................................................................................................11.1项目开发背景与意义...........................................................................................11.1.1项目开发背景.................................................................................................11.1.2项目开发意义.................................................................................................11.2龙虾养殖国内外情况调查...................................................................................21.2.1龙虾养殖国外情况.........................................................................................21.2.2龙虾养殖国内情况.........................................................................................21.3项目技术关键与本模块工作任务.......................................................................31.3.1项目技术关键.................................................................................................31.3.2本模块工作任务.............................................................................................3第二章系统总体设计................................................................................................4 2.1系统总体功能概述...............................................................................................42.2CAN总线网络拓扑设计.......................................................................................52.3软件模块总体设计...............................................................................................62.4视频监控模块总体设计.......................................................................................6第三章数据采集控制模块的概要设计....................................................................83.1数据采集控制模块的需求分析..........................................................................83.1.1运行环境需求分析........................................................................................83.1.2系统功能及角色需求分析............................................................................83.2数据库设计..........................................................................................................93.2.1数据库相关技术............................................................................................93.2.2数据表的设计..............................................................................................113.3 主要研究方法....................................................................................................13第四章数据采集与控制模块的详细设计..............................................................144.1详细设计规范....................................................................................................144.1.1程序编码规范...............................................................................................144.1.2数据库命名规范..........................................................................................154.1.3术语规范......................................................................................................154.2CAN设备初始化................................................................................................164.2.1CAN数据采集卡初始化.............................................................................164.2.2CAN远程模块初始化.................................................................................194.3系统功能的实现................................................................................................224.3.1数据采集模块主界面设计..........................................................................224.3.2 历史数据的显示..........................................................................................254.3.3其他功能......................................................................................................28第五章总结与展望..................................................................................................31II目录致谢...........................................................................................................................32参考文献.......................................................................................................................33附录1软件著作权......................................................................................................34附录2项目开发过程照片..........................................................................................35III第一章前言第一章前言1.1项目开发背景与意义1.1.1项目开发背景 “盱眙龙虾”是一种淡水龙虾,学名克氏螯虾,俗称“小龙虾”原产于欧美国家,20世纪中期传入我国并大量繁殖。小龙虾早在18世纪时,就成为欧洲和美洲人的重要食物,欧美市场小龙虾需求量大,自给能力不足,我国一直是小龙虾的出口国,但近几十年来,中国人也开始大规模消费小龙虾,自然龙虾资源不断枯竭,为了缓解供需矛盾,上世纪八十年代初开始研究小龙虾生物学特性,人工繁殖,人工养殖及加工,国内外建立了大量的小龙虾养殖场,开始大规模人工养殖小龙虾,几十年来,由于人们对小龙虾的研究,基本上停留在对小龙虾生物学特性的认知层面,对于龙虾养殖管理技术的研究投入不足,尤其是在现代计算机控制技术和多种信息采集技术突飞猛进,计算机技术迅速向各行各业渗透的今天,龙虾养殖业的发展尚未有效地与计算机技术结合,这不能不说是一种缺陷。不失时机地把龙虾规模化养殖与信息化管理技术结合起来,迅速提升龙虾养殖产业管理技术水准,以现代装备手段,推动龙虾养殖产业长足发展,是龙虾人工繁殖、养殖技术进一步发展的重要任务。本项目旨在建设“盱眙龙虾规模化养殖与信息化管理技术相结合的数字监控系统”它是把现代成熟的计算机控制技术和多种信息采集技术,系统地应用到大规模龙虾养殖产业工作中,其实质是把龙虾养殖这个新兴产业与计算机现代高科技手段相结合,以现代测控技术为实施农业服务,形成技术集成创新,引领龙虾养殖管理技术的发展趋势。1.1.2项目开发意义实施“5000亩盱眙龙虾规模化养殖与信息化管理技术开发应用” 项目,为了促进盱眙龙虾成虾养殖和繁殖工作向集约化方向发展,将盱眙龙虾养殖技术与基于计算机技术的信息化管理技术相结合,实现龙虾养殖稳产、高产、保产、保收、保增长、保效益的目的。本项目不是要研究龙虾养殖技术本身,也不是要研究计算机技术本身,它是把计算机和多种信息采集设备及应用技术结合到龙虾养殖业工作中,完成两种现有技术的集成。大莲湖龙虾养殖基地位于江苏省淮安市盱眙县河桥镇大莲湖村境内,连片龙虾养殖面积6000多亩,精养水面3000余亩,是目前江苏省规模最大的专业化淡水龙虾养殖基地,5000亩盱眙龙虾规模化养殖与信息化管理技术开发应用,有利于建设规模更大、养殖水平更高的盱眙龙虾精细化养殖示范基地,有利于推动数字农业技术进步,增强盱眙龙虾品牌的高科技含量。有利于加快建设盱眙龙虾现代综合性专业化养殖体系,有利于推动中国小龙虾养殖乃至于推动世界小龙虾养殖产业发展。1淮安信息职业技术学院毕业设计论文1.2龙虾养殖国内外情况调查1.2.1龙虾养殖国外情况 国外研究淡水螯虾的历史很早,可以追溯到一百多年前,国外养殖小龙虾的历史大概有六十到七十年,但从二十世纪七十年代后发展非常迅速。北美是淡水螯虾分布最多的地区,约有四百多个种类。在那里淡水螯虾已经成为重要的水产资源,特别是美国,1978年美国国家研究委员会强调发展淡水小龙虾的养殖,其养殖产量占美国甲壳类水产动物养殖产量的90%以上。仅路易斯安那州1985年的龙虾养殖面积就超过4.8万公顷,产量达8000吨,产值七千万美元。美国淡水螯虾养殖单产高的达到每公顷4000多公斤。主要的养殖种类是克氏螯虾,也就是我们常说淡水小龙虾或小龙虾,此外还有原螯虾属、太平螯虾属等。小龙虾养殖方式有粗放养殖、混养和池塘强化养殖,较多的是与水稻的轮作和混作。墨西哥2003年淡水螯虾的产量为3000多吨,主要品种是克氏螯虾,此外还有从澳大利亚引进的红螯虾。澳大利亚20世纪60年代后期开始淡水小龙虾养殖和研究工作,主要养殖种类是麦龙螯虾、红螯虾和雅比螯虾。此外还有其他种类虾属。养殖有三种形式:一是湖泊、水库粗放养殖,不用管理和投喂,平均单产为每公顷水面1000公斤;二是池塘精养,平均单产每公顷约3千公斤至4千公斤;三是采取封闭系统工厂化强化养殖,单产则更高。欧洲对淡水螯虾的开发则更早,20世纪初的捕捞产量就相当高。20世纪60年代后,瑞典、芬兰、法国、奥地利、英国、波兰、德国和一些前苏联国家从国外引进一些抗病能力强的优良种类,如20世纪70年代引进宽大太平螯虾、土耳其螯虾、克氏原螯虾。80年代初,英国、西班牙、法国等欧洲国家先后从澳大利亚引进马龙螯虾。90年代又从澳大利亚引进红螯螯虾,积极发展小龙虾养殖,恢复螯虾资源。瑞典从1969年连续18年向湖泊、河流和围堰中投放大量太平螯虾的虾苗和种虾。由于需求量大,欧洲每年仍要进口大量的淡水螯虾,2002年仅瑞典就进口了5000吨以上[1]。1.2.2龙虾养殖国内情况中国淡水螯虾的养殖种类主要是我们现在普遍食用的克氏螯虾,我们习惯称之为“小龙虾” 1991年我国小龙虾的年产量在4.06万吨以上,接近美国,成为世界淡水螯虾的生产大国。2004年中国淡水螯虾的总产量在20万吨以上,仅江苏省的产量就达到9.06万吨,成为世界上淡水螯虾产量最大的国家。江苏盱眙最早从1991年开始出口淡水螯虾加工产品,至2004年全国出口淡水螯虾加工产品达一万吨以上,我国不仅成为世界淡水螯虾的产量大国,也是世界淡水螯虾的出国大国。二十世纪九十年代末,江苏盱眙的许建忠先生针对淡水螯虾的性味开发出了专门用来烧制克氏原螯虾(淡水小龙虾)的龙虾调料——十三香。国内龙虾养殖研究也取得了比较大的进步,通过研究淡水螯虾的生殖生理过2第一章前言程,达到增产增收的目的。湖北省水产科学所研究控制光照、控制水温、控制水位、改善水质、加强投喂的综合措施,人工诱导红螯虾和克氏小龙虾同步产卵,规模化繁殖获得很好的效果。淡水螯虾人工批量繁殖工作仍将是今后一段时间世界淡水螯虾产业的工作热点。一些水产科研人员研究了淡水螯虾与一些掠食性鱼类的生存关系,淡水螯虾对多种沉水植物的利用及相互影响等。1.3项目技术关键与本模块工作任务1.3.1项目技术关键 该项目是集软件开发、数据采集与设备控制、视频监控、智能传感应用于一体的综合项目,其中涉及到多学科知识领域。同时,项目需要结合养殖现场的具体情况进行调试与应用。在项目开发过程中重点要解决以下关键技术问题。第一,传感器数据采集信号与控制指令的网络传输问题;第二,上位机数据采集与控制系统开发问题;第三,Web远程访问技术;第四,视频监控与系统集成问题。1.3.2本模块工作任务本模块主要完成上位机数据采集与控制软件系统的设计,面向CAN总线硬件接口编程,主要完成功能如下。第一,完成数据采集与控制平台软件的设计;第二,负责初始化CAN系统模块,并根据软件设计要求实时采集CAN前端模块连接的智能传感器数据,主要包括环境温度、湿度、大气压力、光照强度、风向、水中含氧量、PH值等数据信息;第三,根据采集数据状态,手动或自动启动设备控制程序,实现对养殖现场电气设备的具体操控(给水水泵、排水水泵、增氧机等);第四,数据保存与历史记录查询。3淮安信息职业技术学院毕业设计论文第二章系统总体设计2.1系统总体功能概述 基于CAN总线的龙虾养殖远程监控系统主要分为三大功能:现场环境因子的数据采集;养殖现场的电器设备控制;养殖区域的视频监控,系统采用CAN总线实现对各种采集数据和控制数据的传输。系统中心设立上位机与Web服务器,上位机中运行系统监控程序,负责数据采集与控制指令的发出。Web服务器负责体统系统的远程访问与控制,同时兼顾视频监控系统的图像处理。系统功能示意图如图2.1所示。图2.1系统功能示意图在项目设计和实施中,将系统分为前端数据采集和上位机数据处理、Web服务器三层框架结构。前端主要对龙虾养殖环境因子进行数据采集,其中主要包括池塘的水温、水中溶解氧指标、PH值、空气温度、大气压力、空气湿度、光照度等环境数据。同时,配合闭路监控系统实时图像采集,直观观察养殖现场的情况。在上位机的控制端,根据采集到的环境因子结合专家系统进行分析,并通过系统自动控制养殖场的增氧机、注水水泵和排水水泵进行相应的调节。在上位机和远端传感器间通过CAN总线进行信号传递。第三层为Web远程表示层,可以通过互联网在远程实时监控养殖现场的生产情况,包括视频情况。表2.1数据采集与控制项目4第二章系统总体设计图2.2系统总体架构图2.2CAN总线网络拓扑设计 系统采用一整套CAN总线接收控制卡、前端数据A/D转换模块和数字量输出模块,分别实现对传感器的数据采集,远端继电器板单元动作控制,进而控制现场电气设备。图2.3CAN总线拓扑结构PCI控制卡总线宽度32位,同步工作频率可达到33MHz,最高传输速率为132MB/S,设计标准中考虑了负载,即使扩展卡超过了负载的最大值,系统也5淮安信息职业技术学院毕业设计论文能正常工作。并且提供数据和地址奇偶校验功能,保证了数据的完整性和准确性。CAN接口通讯协议采用CAN2.0B(PeliCAN)兼容CAN2.0A,符合ISO/ISO11898规范。通讯距离最长为10公里,很好的适应了大范围的池塘养殖的环境要求。近距离的最高传输速率能够达到1Mbps。本项目中根据具体硬件的特点,将CAN通讯协议帧分为两种[2],一种是标准帧,另一种为扩展帧。2.3软件模块总体设计在本项目中上位机系统由两部构成,分别是数据采集控制监控系统和互联网信息远程监控系统。上位机的数据采集控制系统采用.NetFrameWork3.0平台框架,主要完成对CAN接口卡的初始化和数据采集与现场电机设备控制。将实时采集的数据保存到服务器的数据库中。根据养殖专家领域知识形成的龙虾养殖专家库的经验,判断比较采集数据,自动开启池塘的增氧机、给水水泵或排水水泵。 Web信息平台系统采用Struts1.2为系统框架,Tomcat6.0为Web服务器,结合FushionChar开源图表技术,实现了对养殖场情况的动态远程监控。系统基于CAN硬件接口的底层动态链接库can_pci.dll进行编程[3]。2.4视频监控模块总体设计视频监控硬件模块由HK-DVR8XXH系列PC式数字硬盘录像机、高速球摄像机、键盘、声光报警、红外对射、烟感、路由器等构成。专业视频监控软件经过设置后可在本地或Internet上巡视虾塘的状态。1)采用基于网络、面向远程设备的控制技术数据采集技术,将环境温度、湿度、大气压力、光照、虾池视频图像等实时数据采集设备所获得的数据与计算机控制等技术有机结合,建立龙虾养殖基地数字监控系统。2)计算机实现72小时实时数据资料备份,当龙虾出现生病或死亡时,可以随时回放,便于调查研究发生的原因。3)在办公室实现对视频图像采集探头360度环绕调节,近、远程定点聚焦或图象放大,有效查看工作人员不易到达的虾池区域。4)计算机显示屏可1~16画面切换虾池视频监控图像,实现远程集中监控,当发生紧急情况时,便于实时进行人工干涉。5)龙虾易患烂鳃病、黑鳃病、烂尾病、聚缩虫病、纤毛虫病等常见病,在6第二章系统总体设计大规模人工养殖环境下,由于养殖区域大,养殖环境复杂,以及人工探察时,龙虾易受惊吓潜入水中,难以较早发现虾病,一旦发现,虾病情况通常已比较严重,本项目的项目特色和创新在于,开发应用一种视频监控技术,探索早期侦查虾病的有效手段。 6)龙虾有群殴、相互蚕食的习性,在成虾性成熟早期以及繁殖、打洞做窝、争抢食物时尤其严重,往往造成大规模死亡,利用视频监控信息,对龙虾群殴及时实施人工干预的经验。7)优质的养虾环境是天然的沼泽池塘,这种环境水源丰足,水草植被茂盛,通常也道路泥泞,人工监控困难,工作量巨大,为养殖人员提供数字监控手段,在办公室就可以全面掌控龙虾养殖情况。8)种虾及虾苗养殖经济效益高,技术要求高,养殖难度大,数字监控技术的应用,防止偷盗事件,可以为高附加值养殖业保驾护航。9)通过网络,用电脑或手机上网,实现异地远程监控。7淮安信息职业技术学院毕业设计论文第三章数据采集控制模块的概要设计3.1数据采集控制模块的需求分析明确数据采集与控制模块的各方面需求,准备设计各个组件逻辑,最终实现对环境数据的数据采集、信息存储、数据分析与设备控制。3.1.1运行环境需求分析上位机将部署在龙虾养殖现场附近的主控机房中,距离数据采集前端模块约有1公里左右,使用CAN总线实现与远程数据采集与控制模块的通信[4]。软件将面临的运行环境如下。硬件环境:PC机或工控机,2G内存,500G以上硬盘;CAN总线数据采集卡PCI8110采集板;SQLServer2005数据库;NetFrameWork3.0框架平台;can_pci.dll接口API;CAN接口帮助文档等。 软件环境:WindowsXP操作系统;3.1.2系统功能及角色需求分析上位机数据采集与控制系统设计主要完成以下六大功能:1、CAN设备的初始化主要完成对CAN数据采集板驱动的加载,对远程数据采集模块[5]、设备控制模块状态的读取,以判断远程模块是否工作正常。2、用户与权限管理管理创建新用户,创建角色,分配用户的权限。同时完成用户登录与用户系统退出等工作。3、数据采集与实施显示本单元的功能主要负责完成读取前端的数据采集模块所采集的各种数据(温度、湿度、水温、溶解氧、PH值、风向、大气压力、光照等)。并把数据实时的显示在软件系统的用户界面上。4、现场设备控制根据现场采集数据情况,可以通过软件自动或操作员手动的开启或关闭相关设备(增氧机、注水水泵和排水水泵),从而调节龙虾养殖环境的状态。5、数据备份与还原对运行中的数据库进行必要的数据备份,可使用指定的数据库备份文件还原数据。6、历史记录查看可根据操作者的选择,指定时间和养殖池塘进行历史数据查看。 8第三章数据采集模块的概要设计初巡巡始检检化采控接集制口模模板块块用用权权户户限限登管设分录理定配池历数塘史据信记导息录出维查护看数数采据据集读实周取施期显设示定注排增水水氧水水机泵泵控控控制制制数数据据库库备还份原图3.1系统总体功能框图本系统的角色分为两种,一种是系统管理员。系统管理员负责维护系统的正常运行,一般项目运行之初有技术人员负责完成,交付用户使用后,系统在正常运行过程中不需要使用系统管理员角色登录。另一种角色为普通用户,普通用户能够使用除了用户管理、角色创建以为的所有功能。图3.2系统管理员角色及对应操作3.2数据库设计数据库是系统运行的基础,将实时采集的数据保存到系统数据库中,有利于对历史数据的分析与查询。本系统采用了SQLServer2005为数据平台。3.2.1数据库相关技术SQL全称是结构化查询语言(StructuredQuery Language),最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQLserver这些大型的数据库管理系统,还是像VisualFoxPro、PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。9淮安信息职业技术学院毕业设计论文SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。SQL同时也是数据库文件格式的扩展名。SQL语言包含4个部分,数据查询语言(SELECT语句)、数据操纵语言(INSERT,UPDATE,DELETE语句)、数据定义语言(如CREATE,DROP等语句)、数据控制语言(如COMMIT,ROLLBACK等语句)。 数据库顾名思义是存储数据的仓库。只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放的。当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。要是下定义的话,就应该是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库包含关系数据库、面向对象数据库及新兴的XML数据库等多种,目前应用最广泛的是关系数据库,若在关系数据库基础上提供部分面向对象数据库功能的对象关系数据库。在数据库技术的早期还曾经流行过层次数据库与网状数据库,但这两类数据库目前已经极少使用。数据库管理(DatabaseAdministration)是有关建立、存储、修改和存取数据库中信息的技术,是指为保证数据库系统的正常运行和服务质量,有关人员须进行的技术管理工作。负责这些技术管理工作的个人或集体称为数据库管理员(DBA)。数据库管理的主要内容有:数据库的建立、数据库的调整、数据库的重组、数据库的重构、数据库的安全控制、数据的完整性控制和对用户提供技术支持。数据库的设计只是提供了数据的类型、逻辑结构、联系、约束和存储结构等有关数据的描述,这些描述称为数据模式。要建立可运行的数据库,还需进行下列工作:(1)选定数据库的各种参数,例如最大的数据存储空间、缓冲决的数量、并发度等。这些参数可以由用户设置,也可以由系统按默认值设置。(2)定义数据库,利用数据库管理系统(DBMS)所提供的数据定义语言和命令,10第三章数据采集模块的概要设计定义数据库名、数据模式、索引等。 (3)准备和装入数据,定义数据库仅仅建立了数据库的框架,要建成数据库还必须装入大量的数据,这是一项浩繁的工作。在数据的准备和录入过程中,必须在技术和制度上采取措施,保证装入数据的正确性。计算机系统中原已积累的数据,要充分利用,尽可能转换成数据库的数据。3.2.2数据表的设计1、用户信息表11淮安信息职业技术学院毕业设计论文12第三章数据采集模块的概要设计3.3主要研究方法在开发过程中严格遵循软件工程设计模式,具体设计过程如下:图3.3系统开发过程控制方法13淮安信息职业技术学院毕业设计论文第四章数据采集与控制模块的详细设计4.1详细设计规范在系统详细设计之初,按照IT行业编码规范要求,统一制定项目详细设计规范,在开发过程中严格按照此规范要求进行开发。4.1.1程序编码规范?变量/方法名 必须采用有意义的英文单词或英文单词组合作为变量名称,首字母小写,第二个单词首字母大写。例如healthInfo是一个符合规范的名称,a,arr等则不符合规范。?静态全局变量静态全局变量采用全部大写字母进行名。?常量采用首字母大写的英文单词或英文单词组合表示常量。例如PI,Connection等。?类/接口采用首字母大写的英文单词或英文单词组合表示类。例如DBOperator等?if语句等的写法:if()){//….}缩进4个空格(用Tab键缩进)?“=”号左右各留一个空格如stringpersonalName=“张三”;?逻辑表达式在逻辑运算符两侧各留一个空格如if(password==“12345”&&name==“admin”)?文件注释每个文件头应有注释,包括以下内容:/***项目名称:盱眙5000亩龙虾养殖远程监控系统${project_name}*开发单位:淮安信息职业技术学院计算机系 *开发人员:王志勃(用开发者的姓名代替)*编码日期:${date}${time}*文件名称:${file_name}**/14第四章数据采集与控制模块的详细设计?方法注释/***本方法实现对baseinfo表提取个人系统编号*/publicStringgetSysId(){}?语句注释DBConcon=newBDCon();//创建数据库连接对象4.1.2数据库命名规范本系统采用SQLServer2005为数据库平台,现对数据库对象进行命名规则说明:?表表名要用有实际意义的英文单词命名,若单词名字太长,可以做适当缩写。?主键主键命名由表名_主键字段名_PK进行命名。如:PERSONBASEINFO_PERSONSYSID_PK。 ?外键外键命名由本表名_主表名_FK进行命名。如:PERSONBASEINFO_FAMILYID_FK。?数据字典系统中所有的数据字典表命名为:DICT_表名。如:DICT_Dep,为部门字典表。?存储过程系统中的存储过程命名:PROC_过程名。如:PROC_JOIN,分页存储过程。?序列系统中序列的命名:SEQU_序列名。?触发器系统中触发器的命名:TRIG_触发器名。4.1.3术语规范表4-1术语定义或解释表//方法体15淮安信息职业技术学院毕业设计论文4.2CAN设备初始化4.2.1CAN数据采集卡初始化1.CAN总线数据采集卡说明 KPCI-8110适用于PC/286/386/486/586/及各种工控机,兼容机(PCI总线)的长距离,高传输速率,多站点的CAN总线通讯板,采用光电隔离技术,使用两根线每路可连接110个工作站。2.主要技术参数PCI局部总线性能:总线宽度32位,同步工作频率可达到33MHz,最高传输速率为132MB/S。使用方便,能够实现自动配置,实现设备的即插即用。可靠性高,标准中考虑了负载,即使扩展卡超过了负载的最大值系统也能正常工作。提供数据和地址奇偶校验功能,保证了数据的完整性和准确性16第四章数据采集与控制模块的详细设计2.2CAN接口主要技术指:通讯协议采用2.0B(PeliCAN)兼容CAN2.0A,符合ISO/ISO11898规范。通讯距离最长10Km。传输速率最高1Mbps。电源电压为5V±10%,隔离电压1000V。CAN接口为孔型DB9,符合CiA标准2.3电源功耗:(不使用外部电源)+5V(±10%)≤400mA2.4。工作温度0℃~70℃,相对湿度0%~95%(不凝露),存贮温度-55℃~+85℃。3.CAN数据采集卡的外观与使用图4.1CAN数据采集卡的外观系统基于CAN硬件接口的底层动态链接库can_pci.dll进行编程。下面是初始化CANPCI控制卡的部分核心代码[6]。[DllImport("\can_pci.dll",EntryPoint="CAN_Open")] staticexternBooleanCAN_Open(intmindex);[DllImport("\can_pci.dll",EntryPoint="CAN_Reset")]staticexternBooleanCAN_Reset(intmindex);[DllImport("\can_pci.dll",EntryPoint="CAN_Init")]staticexternBooleanCAN_Init(intmindex,Byte[]config);[DllImport("\can_pci.dll",EntryPoint="CAN_Trans")]staticexternBooleanCAN_Trans(intmindex,byte[]config,intwtimeout);[DllImport("\can_pci.dll",EntryPoint="CAN_Recv")]staticexternBooleanCAN_Recv(intmindex,byte[]config,intrtimeout);publicvoidopenChannel(Bytestation_,Bytechannel)17淮安信息职业技术学院毕业设计论文//打开can通道{longdata,data1;Byte[]canbuff=newByte[11];Bytefunc;Byte[]canbuff1=newByte[5];Bytesetout1,setout2;Bytestation=station_;func=8; //置输出数据指令为&h8setout1=channel;//设定输出通道1置位setout2=0x0;//设定输出通道9置位data=cframe(station,func);data=data&0xFFFF;data1=(data&0xFF00)/256;canbuff1[0]=2;//第一字节填入本帧数据场长度canbuff1[1]=(byte)data1;canbuff1[2]=(byte)(data&0xFF);canbuff1[3]=setout1;//要输出的1-8通道数据内容canbuff1[4]=setout2;//要输出的9-16通道数据内容}publiclongcframe(Bytestation1,Bytefunc1)//处理转发帧的信息头{longa1,b1;a1=(station1*32)&0xFF0;b1=func1;b1=(b1*4096)&0xF000;returna1|b1;} 18第四章数据采集与控制模块的详细设计4.2.2CAN远程模块初始化在本系统中共使用了两种类型的CAN远程模块:分别是K8512模拟量数据采集和K8520开关量输出模块。图4.2CAN远程数据采集与控制模块在系统启动时,首先要初始化CAN总线采集卡,之后通过CAN总线采集卡初始化远程CAN模块,检查其状态信息。下面的代码是对远程CAN模块的初始化与设备检查。//--------以下是模拟量采集的功能方法------使用多通道-------publicdouble[]read_chan(Bytestation_no){Byte[]tarr1=newByte[6];Byte[]tarr2=newByte[5];intcth,ctl;19淮安信息职业技术学院毕业设计论文longfv,dv,df;fv=10000;//量程为-10v的fv和df设定df=0;dv=65535;//16位测量精度,位测量精度dv值为:Byte[]canbuff=newbyte[11]; longdata,data1;Bytefunc;Byte[]canbuff1=newbyte[4];//设定模块站址为Bytestation=station_no;//进行多通道的数据采集func=0x6;//读模块单通道数据指令为&h5,多通道为x6data=cframe(station,func);data=data&0xFFFF;data1=(data&0xFF00)/256;canbuff1[0]=0;canbuff1[1]=(byte)data1;canbuff1[2]=(byte)(data&0xFF);if(CAN_Trans(0,canbuff1,10)==false){//下发指令帧Console.WriteLine("@@@@@@@@@"+canbuff[3]);}else{//下发完指令后,接收第一帧数据。从-11字节 if(CAN_Recv(0,canbuff,100)){//接收模块返回帧//判断是否是第一帧if((canbuff[1]&0xF0)==0x60&&(canbuff[0]&0xF)==0x9){for(intt=0;t<4;t++)20第四章数据采集与控制模块的详细设计{ctl=canbuff[3+t*2];cth=canbuff[4+t*2];read_result[t]=ctl+cth*256;read_result[t]=((read_result[t]&dv)/dv*fv-df)/1000;Text4(i).Text=Format(CStr(((value(i)Anddv)/dv*fv-df)/1000),"#####0.000")}//接收第二帧数据。从-11字节if(CAN_Recv(0,canbuff,100)){ //判断是否是第二帧if((canbuff[1]&0xF0)==0x60&&(canbuff[0]&0xF)==0xA){for(intt=0;t<4;t++){ctl=canbuff[3+t*2];cth=canbuff[4+t*2];read_result[t+4]=ctl+cth*256;//Text4(i).Text=Format(CStr(((value(i)Anddv)/dv*fv-df)/1000),"#####0.000")}}//判断是否是第二帧结束}//接收第二帧结束}//判断是否是第一帧结束}//接收第一帧结束}//判断下发指令是否成功,结束!21淮安信息职业技术学院毕业设计论文4.3系统功能的实现4.3.1数据采集模块主界面设计 图4.3数据采集与控制模块主界面在主界面上一共分为四个区域:1)、环境数据采集与显示系统对虾池周边的环境因子进行数据采集,其中包括室外温度、室内温度、环境湿度、引用水PH值、室内环境含氧量、大气压力、日照强度、环境风向。图4.4数据采集显示区2)、环境数据24小时曲线显示与数据库存储图4.5数据曲线显示系统对虾池周边的环境因子进行数据采集同时,利用图像24小时显示其曲22第四章数据采集与控制模块的详细设计线变化情况。3)、现场设备控制系统提供了对养虾池塘现场设备的控制功能。在虾池中通常有三种设备:降温风扇、降温淋浴、换气扇。根据现场采集数据情况,可以手动开启某个虾池的现场设备,并设定工作时间。图4.6设备控制面板4)、菜单工作区系统提供了对常用操作的快捷方式,可以使用下面的菜单与工具条进行快速控制与操作。 图4.7菜单与工具面板主界面的实现代码:1、系统主方法publicMainForm(){InitializeComponent();//获得工作区的大小inti=Screen.PrimaryScreen.WorkingArea.Height;inti=Screen.PrimaryScreen.WorkingArea.Width;//获得窗口的大小inti=this.Width;intj=this.Height;this.addNameToTree();//为TreeView初始化//启动系统时间Timer//启动公共Timerthis.dateTimeTxt.Text=this.getSysTime();//设置系统时间.this.sysTime_timer.Enabled=true;this.comm_timer.Enabled=true;this.setReadTime();//初始化k8110板卡OnOf_Controlcontrol=newOnOf_Control();//设置夺取数据的间隔时间23 淮安信息职业技术学院毕业设计论文control.DeviceInital();}2、数据库连接类设计classConnectDB{publicConnectDB(){}publicstaticSqlConnectiongetConnection(){//(1)建立SqlConnection对象以连接数据库SqlConnectionconn=newSqlConnection("DataSource=localhost;InitialCatalog=Aquiculture;PersistSecurityInfo=True;UserID=sa;Password=123456");//(2)建立SqlCommand对象SqlCommandmysqlcommand=mysqlconnection.CreateCommand();//(3)设置SqlCommand对象的CommandText属性mysqlcommand.CommandText="SELECT*FROMyouydatabasetablename";//(4)打开SqlConnection对象mysqlconnection.open();//(5)运行SELECT语句SqlDataReadermysqldatareader =mysqlcommand.ExecuteReader();//(6)用SqlDataReader对象读行mysqldatareader.Read();//(7)显示SqlDataReader对象中的数值yourtextbox.Text=mysqldatareader["ID"].ToString();//ID是你数据库中的一项列名//(8)关闭SqlDataReader对象mysqldatareader.Close();//(9)关闭SqlConnection对象mysqlconnection.Close();returnconn;}}3、数据曲线的显示privatevoidtreeView1_AfterSele(objectsender,TreeViewEventArgse)24第四章数据采集与控制模块的详细设计{//清空曲线图,防止两个池塘的信息的两条曲线重叠this.clearControlsInTabPage();//当树的节点选中发生变化时选项卡的第一个为默认选项卡this.tabControl1.SelectedIndex=0; //得到被选中的PoolIDintpoolID=int.Parse(this.getPoolID());//判断池塘开启,告知用户boolstatu=this.isUsed(poolID);if(statu==true){stringpoolName=this.treeView1.SelectedNode.Text;//得到被选中的池塘Namethis.tellUserStart(poolName);//开启所有控件this.getDataByPoolID(poolID);//获得池塘信息,并在页面显示this.getCommData();//获得公共信息,并在页面显示this.paintCommZedGraph();//描绘公共环境曲线图this.paintPoolZedGraph(poolID);//描绘有关池塘曲线图}else{//停用所有控件this.tellUserStop();//并且清空曲线图//在每次树选中节点变化时都要清空曲线图,//这里无需在清空,在树被选中节点改变时已清空}}4.3.2历史数据的显示 点击菜单中的【池塘管理】中的【查看池塘指标信息】会弹出池塘监控信息的历史记录。选择池塘名称下列表中的对应池塘,同时选择查看日期,会将池塘的监控信息历史记录显示在下面的对话框和图表中。25淮安信息职业技术学院毕业设计论文图4.8数据历史记录显示1、加载曲线方法privatevoiddateTimeCbo_SelectedIndexChanged(objectsender,EventArgse){this.clearControlsInTabPage();//清空6个选项卡内容防止发生重叠intpoolID=selectPoolIDByName(poolNameCbo.Text);//查找所选中池塘的IDstringtestDate=dateTimeCbo.Text.ToString().Trim();//获得时间ArrayListdataList=getPoolData(poolID,testDate);//得到要显示的数据集(池塘信息)this.setValueForDG(dataList);//为GradeView添加数据源ArrayListnewList=doDataList(dataList);this.paintPoolZedGraph(newList);//描绘池塘数据曲线图ArrayListcommDataList=getCommDate(testDate);//得到要显示的数据(公共信息) this.setValueForDG2(commDataList);26第四章数据采集与控制模块的详细设计//为GradeView2添加数据源ArrayListnewCommDataList=getLastCommData(commDataList);this.paintCommZedGraph(newCommDataList);//描绘公共数据曲线图}2、数据提取方法privateArrayListgetCommDate(stringtime){ArrayListlist=newArrayList();SqlConnectionconn=ConnectDB.getConnection();stringsql="select*fromCommonDatawhereconvert(char(10),TestDate,120)=@TestDateorderbyTestDateasc";SqlCommandcmd=conn.CreateCommand();cmd.CommandText=sql;cmd.Parameters.Add(newSqlParameter("@TestDate",SqlDbType.DateTime,20));cmd.Parameters["@TestDate"].Value=time;try {conn.Open();SqlDataReaderreader=cmd.ExecuteReader();while(reader.Read()){CommDatacommData=newCommData();commData.Temperature=float.Parse(reader[1].ToString());commData.Humidity=float.Parse(reader[2].ToString());commData.Atmospheric=float.Parse(reader[3].ToString());commData.Lum=float.Parse(reader[4].ToString());commData.WindDirect=reader[5].ToString();commData.TestDate=reader[6].ToString();list.Add(commData);}27淮安信息职业技术学院毕业设计论文}catch(Exceptione){ Console.Write("在GetCommData中查找公共指标出错请及时处理:"+e.Message);}conn.Close();Console.WriteLine("(某日)公共数据(未整理)组的大小:"+list.Count.ToString()+"结束");returnlist;}4.3.3其他功能1)、管理模块本模块功能用于管理、记录现场传感器模块信息,以及各个模块的节点信息。添加模块:点击菜单中的【设备设置】中的【模块管理】,选中其中的【添加模块】操作,实现对新模块的添加管理。图4.9添加模块信息删除模块:点击菜单中的【设备设置】中的【模块管理】,选中其中的【删除模块】操作,实现对现有模块的删除管理。图4.10设置模块类型修改模块信息:点击菜单中的【设备设置】中的【模块管理】,选中其中的【更改模块】操作,实现对现有模块信息的修改管理。28第四章数据采集与控制模块的详细设计 图4.11设置模块对应池塘2)、管理节点节点是每个模块中独立的数据采集点(输入)或现场电气设备的开关控制点。一般一个模块中包括8——16个节点。添加节点:点击菜单中的【设备设置】中的【节点管理】,选中其中的【添加节点】操作,实现对新节点的添加管理。图4.12添加模块中的节点删除节点:点击菜单中的【设备设置】中的【节点管理】,选中其中的【删除节点】操作,实现对原有节点的删除操作。图4.13节点对应的设备更改节点:点击菜单中的【设备设置】中的【节点管理】,选中其中的【更改节点】操作,实现对原有节点信息的修改操作。29淮安信息职业技术学院毕业设计论文图4.14节点归属模块3)、设定采集间隔时间本项功能实现对系统数据采集采样间隔时间的设定,由于本系统所采集数据在全天中的变化不是很大,同时对实时性的要求也不高,建议将采集间隔时间设定为15分钟采集一次。点击菜单中的【设备管理】中的【设定采集时间间隔】图4.15数据采集间隔时间设定30 总结与展望第五章总结与展望在该项目的设计、开发与现场实施过程中学习到了很多课程内学不到的知识与技能。同时对项目开发过程也有了比较深的体会与把握。首先,在技术框架上学习到了.Net平台的三层架构的应用。将系统分为三个层次,便于对用户界面的控制与后台编码的控制。在数据采集平台的开发过程中还使用了开源的图表显示软件。更重要的是在项目开发过程中严格按照软件工程的设计思想完成过程控制,从系统的需求分析到系统的概要设计,到系统的详细设计与编码实现,都严格遵循编码规范。到最后的项目打包,现场的部署与调试。这个过程中所获得的经验是在课堂上得不到的。其次,本次项目中涉及到了对硬件底层设备的控制编程。这部分内容对应于软件技术专业的学生来说有一点陌生。在开发过程中我认真的学习硬件设备的使用说明书,详细研究通信协议的定义,理解每一个接口函数的参数定义以及返回值的特性。在这即将毕业走向工作岗位之际,我要继续加强专业技能的学习,不断提高自身职业素质。在项目开发过程中我体会到,技术不是万能的。学会一种解决问题的方法才是永久的,在今后的工作中要学会这个分析问题的方法。31致谢致谢 在论文完成之际,我首先向关心帮助和指导我的王志勃老师表示衷心的感谢并致以崇高的敬意!这是一个综合性比较强的大项目,项目组成员由连个系统的教师组成(计算机科学与工程系和电子系),学生也是来自连个不同的系部,这就要求在项目开发过程中紧密配合。在项目开发与论文撰写工作中,遇到了很对技术上和方法上的问题,等能得到王老师和其他项目组教师的悉心指导。我们软件组既要能够根据需要设计好系统的平台界面,又要对控制设备有一定的了解。能够熟练的使用硬件设备的API接口函数,去控制现场的设备。面向硬件接口编程是我们在课程中没有学到的新问题。王志勃老师以其渊博的学识、严谨的治学态度、求实的工作作风和他敏捷的思维给我留下了深刻的印象,我将终生难忘。再一次向他表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助!在学校的学习生活即将结束,回顾两年多来的学习经历,面对现在的收获,我感到无限欣慰。为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!在我即将完成学业之际,我深深地感谢我的家人给予我的全力支持!最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!32参考文献参考文献[1].万隆生态龙虾.国外小龙虾产业的历史及现状. http://www.ailongxia.com/a/cultivation/technology/2010/0829/294.html,2010-08-29[2].北京科瑞兴业科技公司.光隔离智能CAN总线通讯卡使用说明书,2007-08-20[3].北京科瑞兴业科技公司.K85-CAN模块硬件使用说明书,2009-02-10[4].阳宪惠主编.现场总线技术及其应用[M],清华大学出版社,2006.12[5].邬宽明主编.CAN总线原理和应用系统设计[M],北京航空航天大学出版社1996-11[6].王志勃,宗宏森,毕艳茹.基于CAN总线技术的龙虾养殖监控系统设计与实现,电脑知识与技术,2009-1233附录附录1软件著作权图1软件著作权证书34附录附录2项目开发过程照片35附录36

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭