资源描述
编号
淮安信息职业技术学院
毕业论文
题 目
龙虾养殖远程监控系统的设计与实现——数据采集上位机软件模块
学生姓名
杨正丽
学 号
31082008
系 部
计算机科学与工程系
专 业
软件技术
班 级
310820
指导教师
王志勃 讲师
顾问教师
二〇一〇年六月
摘 要
基于CAN总线的龙虾养殖远程监控系统是针对江苏盱眙龙虾养殖基地而设计的一套高效精细化养殖系统。采用高效现代化设施农业改造是实现精细化养殖,提高特色水产养殖经济效益的必由之路。根据本项目作业范围大的特点,系统采用了CAN总线作为现场总线,配合多种传感器技术和远程控制技术,实现了对现场的数据采集和电气设备控制。在此基础上开发了一整套用于监控和数据处理的智能化龙虾养殖管理系统。
基于CAN总线的龙虾养殖远程监控系统集数据采集、视频监控、软件控制等多种技术于一体,是一个综合性、应用性比较强的项目。分别由计算机科学与工程系和电子系教师承担指导,两系学生共同完成。项目总体分为四个模块:数据采集上位机软件模块、远程监控软件模块、环境数据采集硬件模块和视频监控模块组成。
本篇论文主要完成龙虾养殖远程监控系统中上位机数据采集模块功能的设计与实现。在该模块中通过CAN总线实现了对现场多种传感器的数据读取,同时根据系统的设定自动或手动的启动养殖水域的各种电气设备。在这个过程中依赖CAN远程控制卡提供的DLL驱动,实现了数据的读取与设备控制。上位机数据采集模块使用C#语言进行开发,模块系统基于C/S架构。
关键词:CAN总线 数据采集 C#三层模型 龙虾养殖监控
目 录
目 录
摘 要 I
目 录 II
第一章 前言 1
1.1项目开发背景与意义 1
1.1.1项目开发背景 1
1.1.2项目开发意义 1
1.2龙虾养殖国内外情况调查 2
1.2.1龙虾养殖国外情况 2
1.2.2龙虾养殖国内情况 2
1.3项目技术关键与本模块工作任务 3
1.3.1项目技术关键 3
1.3.2本模块工作任务 3
第二章 系统总体设计 4
2.1系统总体功能概述 4
2.2CAN总线网络拓扑设计 5
2.3软件模块总体设计 6
2.4视频监控模块总体设计 6
第三章 数据采集控制模块的概要设计 7
3.1 数据采集控制模块的需求分析 7
3.1.1 运行环境需求分析 7
3.1.2 系统功能及角色需求分析 7
3.2 数据库设计 8
3.2.1 数据库相关技术 8
3.2.2 数据表的设计 10
3.3 主要研究方法 12
第四章 数据采集与控制模块的详细设计 13
4.1 详细设计规范 13
4.1.1程序编码规范 13
4.1.2 数据库命名规范 14
4.1.3 术语规范 14
4.2 CAN设备初始化 15
4.2.1 CAN数据采集卡初始化 15
4.2.2 CAN远程模块初始化 18
4.3 系统功能的实现 21
4.3.1 数据采集模块主界面设计 21
4.3.2 历史数据的显示 24
4.3.3 其他功能 27
第五章 总结与展望 30
致 谢 31
参考文献 32
附录1 软件著作权 35
附录2 项目开发过程照片 36
39
第一章 前言
第一章 前言
1.1项目开发背景与意义
1.1.1项目开发背景
“盱眙龙虾”是一种淡水龙虾,学名克氏螯虾,俗称“小龙虾”原产于欧美国家,20 世纪中期传入我国并大量繁殖。
小龙虾早在18世纪时,就成为欧洲和美洲人的重要食物,欧美市场小龙虾需求量大,自给能力不足,我国一直是小龙虾的出口国,但近几十年来,中国人也开始大规模消费小龙虾,自然龙虾资源不断枯竭,为了缓解供需矛盾,上世纪八十年代初开始研究小龙虾生物学特性,人工繁殖,人工养殖及加工,国内外建立了大量的小龙虾养殖场,开始大规模人工养殖小龙虾,几十年来,由于人们对小龙虾的研究,基本上停留在对小龙虾生物学特性的认知层面,对于龙虾养殖管理技术的研究投入不足,尤其是在现代计算机控制技术和多种信息采集技术突飞猛进,计算机技术迅速向各行各业渗透的今天,龙虾养殖业的发展尚未有效地与计算机技术结合,这不能不说是一种缺陷。不失时机地把龙虾规模化养殖与信息化管理技术结合起来,迅速提升龙虾养殖产业管理技术水准,以现代装备手段,推动龙虾养殖产业长足发展,是龙虾人工繁殖、养殖技术进一步发展的重要任务。
本项目旨在建设“盱眙龙虾规模化养殖与信息化管理技术相结合的数字监控系统”它是把现代成熟的计算机控制技术和多种信息采集技术,系统地应用到大规模龙虾养殖产业工作中,其实质是把龙虾养殖这个新兴产业与计算机现代高科技手段相结合,以现代测控技术为实施农业服务,形成技术集成创新,引领龙虾养殖管理技术的发展趋势。
1.1.2项目开发意义
实施“5000亩盱眙龙虾规模化养殖与信息化管理技术开发应用”项目,为了促进盱眙龙虾成虾养殖和繁殖工作向集约化方向发展,将盱眙龙虾养殖技术与基于计算机技术的信息化管理技术相结合,实现龙虾养殖稳产、高产、保产、保收、保增长、保效益的目的。本项目不是要研究龙虾养殖技术本身,也不是要研究计算机技术本身,它是把计算机和多种信息采集设备及应用技术结合到龙虾养殖业工作中,完成两种现有技术的集成。
大莲湖龙虾养殖基地位于江苏省淮安市盱眙县河桥镇大莲湖村境内,连片龙虾养殖面积6000多亩,精养水面3000余亩,是目前江苏省规模最大的专业化淡水龙虾养殖基地,5000亩盱眙龙虾规模化养殖与信息化管理技术开发应用,有利于建设规模更大、养殖水平更高的盱眙龙虾精细化养殖示范基地,有利于推动数字农业技术进步,增强盱眙龙虾品牌的高科技含量。有利于加快建设盱眙龙虾现代综合性专业化养殖体系,有利于推动中国小龙虾养殖乃至于推动世界小龙虾养殖产业发展。
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年全国出口淡水螯虾加工产品达一万吨以上,我国不仅成为世界淡水螯虾的产量大国,也是世界淡水螯虾的出国大国。二十世纪九十年代末,江苏盱眙的许建忠先生针对淡水螯虾的性味开发出了专门用来烧制克氏原螯虾(淡水小龙虾)的龙虾调料——十三香。
国内龙虾养殖研究也取得了比较大的进步,通过研究淡水螯虾的生殖生理过程,达到增产增收的目的。湖北省水产科学所研究控制光照、控制水温、控制水位、改善水质、加强投喂的综合措施,人工诱导红螯虾和克氏小龙虾同步产卵,规模化繁殖获得很好的效果。淡水螯虾人工批量繁殖工作仍将是今后一段时间世界淡水螯虾产业的工作热点。一些水产科研人员研究了淡水螯虾与一些掠食性鱼类的生存关系,淡水螯虾对多种沉水植物的利用及相互影响等。
1.3项目技术关键与本模块工作任务
1.3.1项目技术关键
该项目是集软件开发、数据采集与设备控制、视频监控、智能传感应用于一体的综合项目,其中涉及到多学科知识领域。同时,项目需要结合养殖现场的具体情况进行调试与应用。在项目开发过程中重点要解决以下关键技术问题。
第一, 传感器数据采集信号与控制指令的网络传输问题;
第二, 上位机数据采集与控制系统开发问题;
第三, Web远程访问技术;
第四, 视频监控与系统集成问题。
1.3.2本模块工作任务
本模块主要完成上位机数据采集与控制软件系统的设计,面向CAN总线硬件接口编程,主要完成功能如下。
第一, 完成数据采集与控制平台软件的设计;
第二, 负责初始化CAN系统模块,并根据软件设计要求实时采集CAN前端模块连接的智能传感器数据,主要包括环境温度、湿度、大气压力、光照强度、风向、水中含氧量、PH值等数据信息;
第三, 根据采集数据状态,手动或自动启动设备控制程序,实现对养殖现场电气设备的具体操控(给水水泵、排水水泵、增氧机等);
第四, 数据保存与历史记录查询。
第二章 系统总体设计
第二章 系统总体设计
2.1系统总体功能概述
基于CAN总线的龙虾养殖远程监控系统主要分为三大功能:现场环境因子的数据采集;养殖现场的电器设备控制;养殖区域的视频监控,系统采用CAN总线实现对各种采集数据和控制数据的传输。系统中心设立上位机与Web服务器,上位机中运行系统监控程序,负责数据采集与控制指令的发出。Web服务器负责体统系统的远程访问与控制,同时兼顾视频监控系统的图像处理。系统功能示意图如图2.1所示。
图2.1 系统功能示意图
在项目设计和实施中,将系统分为前端数据采集和上位机数据处理、Web服务器三层框架结构。前端主要对龙虾养殖环境因子进行数据采集,其中主要包括池塘的水温、水中溶解氧指标、PH值、空气温度、大气压力、空气湿度、光照度等环境数据。同时,配合闭路监控系统实时图像采集,直观观察养殖现场的情况。在上位机的控制端,根据采集到的环境因子结合专家系统进行分析,并通过系统自动控制养殖场的增氧机、注水水泵和排水水泵进行相应的调节。在上位机和远端传感器间通过CAN总线进行信号传递。第三层为Web远程表示层,可以通过互联网在远程实时监控养殖现场的生产情况,包括视频情况。
表2.1 数据采集与控制项目
采集数据项目
水温
大气压力
PH值
光照度
溶解氧
空气湿度
环境温度
风向
控制数据项目
增氧机
注水水泵
排水水泵
图 2.2 系统总体架构图
2.2CAN总线网络拓扑设计
系统采用一整套CAN总线接收控制卡、前端数据A/D转换模块和数字量输出模块,分别实现对传感器的数据采集,远端继电器板单元动作控制,进而控制现场电气设备。
图 2.3 CAN总线拓扑结构
PCI控制卡总线宽度32位,同步工作频率可达到33MHz,最高传输速率为132MB/S,设计标准中考虑了负载,即使扩展卡超过了负载的最大值,系统也能正常工作。并且提供数据和地址奇偶校验功能,保证了数据的完整性和准确性。CAN接口通讯协议采用CAN2.0B(PeliCAN)兼容CAN2.0A,符合ISO/ISO11898规范。通讯距离最长为10公里,很好的适应了大范围的池塘养殖的环境要求。近距离的最高传输速率能够达到1Mbps。本项目中根据具体硬件的特点,将CAN通讯协议帧分为两种[2],一种是标准帧,另一种为扩展帧。
表 1 缓存区分配:(标准帧)
buffer
0
1
2
3
4
5
6
7
8
9
内容
功能码1
功能码2
D0
D1
D2
D3
D4
D5
D6
D7
表 2 缓存区分配:(扩展帧)
buffer
0
1
2
3
4
5
6
7
8
9
10
11
内容
功能码1
功能码2
功能码3
功能码4
D0
D1
D2
D3
D4
D5
D6
D7
2.3软件模块总体设计
在本项目中上位机系统由两部构成,分别是数据采集控制监控系统和互联网信息远程监控系统。上位机的数据采集控制系统采用.Net FrameWork3.0平台框架,主要完成对CAN接口卡的初始化和数据采集与现场电机设备控制。将实时采集的数据保存到服务器的数据库中。根据养殖专家领域知识形成的龙虾养殖专家库的经验,判断比较采集数据,自动开启池塘的增氧机、给水水泵或排水水泵。
Web信息平台系统采用Struts1.2为系统框架,Tomcat6.0为Web服务器,结合FushionChar开源图表技术,实现了对养殖场情况的动态远程监控。系统基于CAN硬件接口的底层动态链接库can_pci.dll进行编程[3]。
2.4视频监控模块总体设计
视频监控硬件模块由HK-DVR 8XXH系列PC式数字硬盘录像机、高速球摄像机、键盘、声光报警、红外对射、烟感、路由器等构成。专业视频监控软件经过设置后可在本地或Internet上巡视虾塘的状态。
1)采用基于网络、面向远程设备的控制技术数据采集技术,将环境温度、湿度、大气压力、光照、虾池视频图像等实时数据采集设备所获得的数据与计算机控制等技术有机结合,建立龙虾养殖基地数字监控系统。
2)计算机实现72小时实时数据资料备份,当龙虾出现生病或死亡时,可以随时回放,便于调查研究发生的原因。
3)在办公室实现对视频图像采集探头360度环绕调节,近、远程定点聚焦或图象放大,有效查看工作人员不易到达的虾池区域。
4)计算机显示屏可1~16画面切换虾池视频监控图像,实现远程集中监控,当发生紧急情况时,便于实时进行人工干涉。
5)龙虾易患烂鳃病、黑鳃病、烂尾病、聚缩虫病、纤毛虫病等常见病,在大规模人工养殖环境下,由于养殖区域大,养殖环境复杂,以及人工探察时,龙虾易受惊吓潜入水中,难以较早发现虾病,一旦发现,虾病情况通常已比较严重,本项目的项目特色和创新在于,开发应用一种视频监控技术,探索早期侦查虾病的有效手段。
6)龙虾有群殴、相互蚕食的习性,在成虾性成熟早期以及繁殖、打洞做窝、争抢食物时尤其严重,往往造成大规模死亡,利用视频监控信息,对龙虾群殴及时实施人工干预的经验。
7)优质的养虾环境是天然的沼泽池塘,这种环境水源丰足,水草植被茂盛,通常也道路泥泞,人工监控困难,工作量巨大,为养殖人员提供数字监控手段,在办公室就可以全面掌控龙虾养殖情况。
8)种虾及虾苗养殖经济效益高,技术要求高,养殖难度大,数字监控技术的应用,防止偷盗事件,可以为高附加值养殖业保驾护航。
9)通过网络,用电脑或手机上网,实现异地远程监控。
第三章 数据采集模块的概要设计
第三章 数据采集控制模块的概要设计
3.1 数据采集控制模块的需求分析
明确数据采集与控制模块的各方面需求,准备设计各个组件逻辑,最终实现对环境数据的数据采集、信息存储、数据分析与设备控制。
3.1.1 运行环境需求分析
上位机将部署在龙虾养殖现场附近的主控机房中,距离数据采集前端模块约有1公里左右,使用CAN总线实现与远程数据采集与控制模块的通信[4]。软件将面临的运行环境如下。
硬件环境:PC机或工控机,2G内存,500G以上硬盘;
CAN总线数据采集卡PCI8110采集板;
软件环境:Windows XP操作系统;
SQL Server2005数据库;
Net FrameWork3.0框架平台;
can_pci.dll接口API;
CAN接口帮助文档等。
3.1.2 系统功能及角色需求分析
上位机数据采集与控制系统设计主要完成以下六大功能:
1、 CAN设备的初始化
主要完成对CAN数据采集板驱动的加载,对远程数据采集模块[5]、设备控制模块状态的读取,以判断远程模块是否工作正常。
2、 用户与权限管理
管理创建新用户,创建角色,分配用户的权限。同时完成用户登录与用户系统退出等工作。
3、 数据采集与实施显示
本单元的功能主要负责完成读取前端的数据采集模块所采集的各种数据(温度、湿度、水温、溶解氧、PH值、风向、大气压力、光照等)。并把数据实时的显示在软件系统的用户界面上。
4、 现场设备控制
根据现场采集数据情况,可以通过软件自动或操作员手动的开启或关闭相关设备(增氧机、注水水泵和排水水泵),从而调节龙虾养殖环境的状态。
5、 数据备份与还原
对运行中的数据库进行必要的数据备份,可使用指定的数据库备份文件还原数据。
6、 历史记录查看
可根据操作者的选择,指定时间和养殖池塘进行历史数据查看。
数据采集与控制模块功能
CAN端口初始化
用户与权限管理
数据采集与显示
现场设备控制
数据备份
历史记录查询
初始化接口板
巡检采集模块
巡检控制模块
用户登录
用户管理
权限设定
数据读取
数据实施显示
采集周期设定
权限分配
注水水泵控制
排水水泵控制
增氧机控制
数据库备份
数据库还原
池塘信息维护
历史记录查看
数据导出
图 3.1 系统总体功能框图
本系统的角色分为两种,一种是系统管理员。系统管理员负责维护系统的正常运行,一般项目运行之初有技术人员负责完成,交付用户使用后,系统在正常运行过程中不需要使用系统管理员角色登录。另一种角色为普通用户,普通用户能够使用除了用户管理、角色创建以为的所有功能。
图 3.2 系统管理员角色及对应操作
3.2 数据库设计
数据库是系统运行的基础,将实时采集的数据保存到系统数据库中,有利于对历史数据的分析与查询。本系统采用了SQL Server2005为数据平台。
3.2.1 数据库相关技术
SQL全称是结构化查询语言(Structured Query Language),最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle 、Sybase、Informix、SQL server这些大型的数据库管理系统,还是像Visual FoxPro、PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。SQL同时也是数据库文件格式的扩展名。SQL语言包含4个部分,数据查询语言(SELECT语句)、数据操纵语言(INSERT, UPDATE, DELETE语句)、数据定义语言(如CREATE, DROP等语句)、数据控制语言(如COMMIT, ROLLBACK等语句)。
数据库顾名思义是存储数据的仓库。只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放的。当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。要是下定义的话,就应该是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库包含关系数据库、面向对象数据库及新兴的XML数据库等多种,目前应用最广泛的是关系数据库,若在关系数据库基础上提供部分面向对象数据库功能的对象关系数据库。在数据库技术的早期还曾经流行过层次数据库与网状数据库,但这两类数据库目前已经极少使用。数据库管理(Database Administration)是有关建立、存储、修改和存取数据库中信息的技术,是指为保证数据库系统的正常运行和服务质量,有关人员须进行的技术管理工作。负责这些技术管理工作的个人或集体称为数据库管理员(DBA)。数据库管理的主要内容有:数据库的建立、数据库的调整、数据库的重组、数据库的重构、数据库的安全控制、数据的完整性控制和对用户提供技术支持。数据库的设计只是提供了数据的类型、逻辑结构、联系、约束和存储结构等有关数据的描述,这些描述称为数据模式。
要建立可运行的数据库,还需进行下列工作:
(1)选定数据库的各种参数,例如最大的数据存储空间、缓冲决的数量、并发度等。这些参数可以由用户设置,也可以由系统按默认值设置。
(2)定义数据库,利用数据库管理系统(DBMS)所提供的数据定义语言和命令,定义数据库名、数据模式、索引等。
(3)准备和装入数据,定义数据库仅仅建立了数据库的框架,要建成数据库还必须装入大量的数据,这是一项浩繁的工作。在数据的准备和录入过程中,必须在技术和制度上采取措施,保证装入数据的正确性。计算机系统中原已积累的数据,要充分利用,尽可能转换成数据库的数据。
3.2.2 数据表的设计
1、用户信息表
表3-1 UserInfo表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
UserId
Int
Y
N
2.
UserName
VARCHAR
20
N
3.
Password
VARCHAR
50
N
2、采集时间间隔表
表3-2 TimeSpace表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ID
int
Y
N
2.
TimeSpace
float
N
3.
SetTime
Datetime
N
3、池塘信息表
表3-3 PoolInfo表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
PoolID
int
Y
N
2.
PoolNum
VARCHAR
20
N
3.
PoolName
VARCHAR
20
N
4.
Memo
VARCHAR
255
5.
Available
Bit
N
4、池塘数据采集信息表
表3-4 PoolData表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ID
Int
Y
N
2.
WaterTemperature
float
N
3.
PH
float
N
4.
Oxygen
float
N
5.
TestDate
Datetime
N
6.
PoolID
Int
Y
N
5、节点信息表
表3-5 NodeList表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
NodeID
Int
Y
N
2.
NodeNum
VARCHAR
50
N
3.
NodeType
VARCHAR
20
N
4.
ModelID
Int
Y
N
6、采集控制模块信息表
表3-6 ModelList表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ModelID
Int
Y
N
2.
ModelName
VARCHAR
20
N
3.
ModelType
VARCHAR
20
N
4.
PoolID
Int
Y
N
7、历史信息表
表3-7 Memory表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ID
int
Y
N
2.
ContentT
VARCHAR
255
N
3.
TestDate
Datetime
N
8、设备状态信息检查表
表3-8 DeviceCheck表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ID
Int
Y
N
2.
NodeID
Int
Y
N
3.
TestDate
Datetime
N
9、公共数据采集信息表
表3-9 CommonData表
序号
字段名
字段描述
类型
长度
主键
外键
空
备注
1.
ID
Int
Y
N
2.
Temperature
float
N
3.
Humidity
float
N
4.
Atmospheric
float
N
5.
Lum
float
N
6.
WindDirect
VARCHAR
20
N
7.
TestDate
Datetime
N
3.3 主要研究方法
在开发过程中严格遵循软件工程设计模式,具体设计过程如下:
需求分析
系统体系结构设计
系统详细设计
数据库模型创建
项目平台DEMO开发
项目编码实现
系统测试与应用
基于C/S框架的数据采集模块
调查数据采集功能的需求
设计整体系统架构,实现项目任务分解
详细设计系统接口,开发规范
根据需求与系统设计,建立数据模型
项目原型开发,进一步调整需求
设计可视化操作界面,整合各个模块功能
测试,发布项目
图3.3系统开发过程控制方法
第四章 数据采集与控制模块的详细设计
第四章 数据采集与控制模块的详细设计
4.1 详细设计规范
在系统详细设计之初,按照IT行业编码规范要求,统一制定项目详细设计规范,在开发过程中严格按照此规范要求进行开发。
4.1.1程序编码规范
² 变量/方法名
必须采用有意义的英文单词或英文单词组合作为变量名称,首字母小写,第二个单词首字母大写。
例如healthInfo是一个符合规范的名称,a, arr等则不符合规范。
² 静态全局变量
静态全局变量采用全部大写字母进行名。
² 常量
采用首字母大写的英文单词或英文单词组合表示常量。例如PI,Connection等。
² 类/接口
采用首字母大写的英文单词或英文单词组合表示类。例如DBOperator等
² if语句等的写法:
if ()) {
//….
}
缩进4个空格(用Tab键缩进)
² “=”号左右各留一个空格
如string personalName = “张三”;
² 逻辑表达式在逻辑运算符两侧各留一个空格
如if (password == “12345” && name == “admin”)
² 文件注释
每个文件头应有注释,包括以下内容:
/**
* 项目名称:盱眙5000亩龙虾养殖远程监控系统 ${project_name}
* 开发单位:淮安信息职业技术学院 计算机系
* 开发人员:王志勃(用开发者的姓名代替)
* 编码日期:${date} ${time}
* 文件名称:${file_name}
*
*/
² 方法注释
/**
*本方法实现对baseinfo表提取个人系统编号
*/
public String getSysId(){
//方法体
}
² 语句注释
DBCon con = new BDCon(); //创建数据库连接对象
4.1.2 数据库命名规范
本系统采用SQL Server2005为数据库平台,现对数据库对象进行命名规则说明:
² 表
表名要用有实际意义的英文单词命名,若单词名字太长,可以做适当缩写。
² 主键
主键命名由表名_主键字段名_PK进行命名。
如:PERSONBASEINFO_PERSONSYSID_PK。
² 外键
外键命名由本表名_主表名_FK进行命名。
如:PERSONBASEINFO_FAMILYID_FK。
² 数据字典
系统中所有的数据字典表命名为:DICT_表名。
如:DICT_Dep,为部门字典表。
² 存储过程
系统中的存储过程命名:PROC_过程名。
如:PROC_JOIN,分页存储过程。
² 序列
系统中序列的命名:SEQU_序列名。
² 触发器
系统中触发器的命名:TRIG_触发器名。
4.1.3 术语规范
表 4-1 术语定义或解释表
序号
术语名称
术语定义
1
总体结构
软件系统的总体逻辑结构。为—树形的功能模块结构图。
2
外部接口
本软件系统与其他软件系统之间的接口,接口设施可以是中间件。接口描述包括:传输方式、带宽、数据结构、传输频率、传输量、传输协议
3
数据结构
数据结构包括:数据库表的结构、其他数据结构等
4
概念数据模型CDM
关系数据库的逻辑设计模型,叫做概念数据模型;主要内容包括—张逻辑E-R图及其相应的数据字典
5
物理数据模型PDM
关系数据库的物理设计模型,叫做物理数据模型。主要内容包括一张物理表关系图及其相应的数据字典
6
视图
在基表或其他视图之上建立的一张虚表,叫做视图,它具有物理表的许多性质,在数据处理和授权上很有用
7
角色
数据库中享有某些特权操作的用户,叫做角色。角色的权利通过授权来实现
8
子系统
具有相对独立功能的小系统叫做子系统;一个大的软件系统可以划分为多个子系统,每个子系统可由多个模块或多个部件组成
9
模块
具有功能独立、能被调用的信息单元叫做模块。
10
内部接口
软件系统内部各子系统之间、各部件之间、各模板之间的接口,叫做内部接口。接口描述包括:调用方式、入口信息、出口信息等
11
相关文件
指当本文件内容变更后,可能引起变更的其他文件。如需求分析报告、计细设计说明书、测试计划、用户手册
12
参考资料
指本文件书写时用到的其他资料。如各种有关规范、模板、标准、准则
4.2 CAN设备初始化
4.2.1 CAN数据采集卡初始化
1.CAN总线数据采集卡说明
KPCI-8110适用于PC/286/386/486/586/及各种工控机,兼容机(PCI总线)的长距离,高传输速 率,多站点的CAN总线通讯板,采用光电隔离技术,使用两根线每路可连接110个工作站。
2. 主要技术参数
PCI局部总线性能:总线宽度32位,同步工作频率可达到33MHz,最高传输速率为132MB/S 。使用方便,能够实现自动配置,实现设备的即插即用。可靠性高,标准中考虑了负载,即使扩展卡超过了负载的最大值系统也能正常工作。提供数据和地址奇偶校验功能,保证了数据的完整性和准确性
2.2 CAN接口 主要技术指:通讯协议采用2.0B(PeliCAN)兼容CAN2.0A,符合ISO/ISO11898规范。通讯距离最长10Km。传输速率最高1Mbps。电源电压为5V±10% ,隔离电压1000V。 CAN接口为孔型DB9,符合CiA标准
2.3 电源功耗:(不使用外部电源) +5V(±10%)≤400mA 2.4。工作温度0℃~70℃,相对湿度0%~95%(不凝露), 存贮温度-55℃~+85℃。
3. CAN数据采集卡的外观与使用
图4.1CAN数据采集卡的外观
系统基于CAN硬件接口的底层动态链接库can_pci.dll进行编程。下面是初始化CAN PCI控制卡的部分核心代码[6]。
[DllImport("\\can_pci.dll", EntryPoint = "CAN_Open")]
static extern Boolean CAN_Open(int mindex);
[DllImport("\\can_pci.dll", EntryPoint = "CAN_Reset")]
static extern Boolean CAN_Reset(int mindex);
[DllImport("\\can_pci.dll", EntryPoint = "CAN_Init")]
static extern Boolean CAN_Init(int mindex, Byte[] config);
[DllImport("\\can_pci.dll", EntryPoint = "CAN_Trans")]
static extern Boolean CAN_Trans(int mindex, byte[] config, int wtimeout);
[DllImport("\\can_pci.dll", EntryPoint = "CAN_Recv")]
static extern Boolean CAN_Recv(int mindex, byte[] config, int rtimeout);
public void openChannel(Byte station_, Byte channel)
//打开can通道
{ long data, data1;
Byte[] canbuff = new Byte[11];
Byte func;
Byte[]
展开阅读全文