欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    光伏电站远程数据采集监控中心系统设计.doc

    • 资源ID:63856479       资源大小:67KB        全文页数:19页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    光伏电站远程数据采集监控中心系统设计.doc

    摘 要能源是推动人类进步的动力引擎,为了社会的进步国家(部落)的繁荣昌盛,人类不断在自己的家园里探索各种各个样的能源,所以煤炭、石油、核电、水利和风力已成为当今世界人类主要依赖的能源,可是无限量的煤炭、原油等不可以生的能源的破费,虽然在社会文明上做出了重大的贡献,但随之带给我们的还有严重的恶果,比如:雾霾、癌症的频发、水污染等等。太阳能的有效利用将有可能改变现状,在国家的大力推动下太阳能发电站在快速的增加,在这能源大会战中,“光伏电站远程监控系统”将会成为太阳能产业的高速发展有效工具。故对光伏电站数据采集的研究有着举足轻重的意义。通过自己的创新和紧密结合客户需求设计开发的“光伏电站远程监控系统”能够为客户提供科学便捷光伏电站管理策略,客户只需在PC计前就能知道光伏电站的整个运行状态。根据该系统提供的光伏电站数据(设备故障信息、设备正常工作下的采集信息、气象信息等)对电站进行维护,及发电效益进行评估。本文主要讨论光伏电站远程数据采集监控中心系统设计,本系统可分数据采集、数据按相应设备协议解析、数据入库、数据呈现四大模块构成。应用VC+、MFC开发,采用UPD通信与下位机通信实现数据传输,应用多线程、线程池机制实现对多个设备进行管理,同时以加载DLL(协议动态链接库)的形式实现对不同设备的协议的管理,方便协议开发的同时极大的提高了软件的可扩展性。完成系统设计,进行各个功能分模块测试验证。分析测试报告,到达预期要求。对毕业论文工作进行总结,对系统不足之处加以完善,继续对该课题进行深入研究。关键词:远程数据采集监控中心系统,VC+/MFC,UDP,多线程,DLL1绪论1.1课题研究背景及目的1.1.1课题研究背景现如今国家乃至世界都已经意识到太阳能的重要性,各国都在大力扶持光伏产业。在这种光伏电站大举建设下,市场对光伏电站监控系统的需求也越来越大,接触的一些意向客户也明确提出功能需求。通过自己的创新和紧密结合客户需求设计开发的“光伏电站远程监控系统”能够为客户提供科学便捷光伏电站管理策略,客户只需在PC计前就能知道光伏电站的整个运行状态。根据该系统提供的光伏电站数据(比如遥测、遥信、遥控及遥调等设备故障信息、设备正常工作下的采集信息、气象信息)对电站进行维护,及发电效益进行评估。穹顶之下“光伏电站远程监控系统”将会迎来广阔的市场,也将对环保事业有着重要意义。1.1.2课题研究目的能源是推动人类进步的动力引擎,为了社会的进步国家(部落)的繁荣昌盛,人类不断在自己的家园里探索各种各个样的能源,所以煤炭、石油、核电、水利和风力已成为当今世界人类主要依赖的能源,由于社会的不断进步经济要求不断的提升,从而对能源的需求大大增加,无限的煤炭、煤油等不能再生的能源的破费。消耗的大量能源在社会文明上做出了重大的贡献,但随之带给我们的还有污浊的溪水、雾霾笼罩的苍穹和癌症的频发等等污染严重的恶果。为了我们赖以生存的环境不受破坏,探索新型能源的脚步不能停,太阳能可以改变这一切,汉能董事长曾这样描述太阳能对人类能源的需求:“在不久的将来人们将不会在担心能源不足的问题,能源将会过剩”。在国家的大力推动下太阳能发电站快速的增加,在这能源大探索的征途中,“光伏电站远程监控系统”将有效的促进光伏产业的高速发展。应用VC+、MFC、socket编程及应用多线程、线程池机制技术实现对于采集中心系统的设计,同时以加载DLL(协议动态链接库)的形式实现对不同设备的协议的管理,方便协议开发的同时极大的提高了软件的可扩展性。运用计算机科学技术为社会做出贡献。1.2国内太阳能远程监控系统发展状况光伏产业诞生以来,我国就十分重视该清洁能源的发展,并作出对策扶持光伏产业的发展壮大。然而一个光伏电站的运营管理急需一套科技化,信息化的能源监控系统来实现一体化管理。当前海内的远程光伏电站及分布式光伏电站监控体系中具备实践的工程意义的方案有:无线方式(采用gprs、wifi、zigbee、irda红外、blueteeth通信);有线方式(采用profibus总线、工业rs485总线、工业以太网、Modern电话线、can总线)。本文论述的太阳能监控系统是一般采用RS485转工业以太网的形式通过3G无线传输实现数据传输,将监控智能设备上的运行数据上传至电站监控数据采集中心。1.4术语及定义pas:数据采集中心。Pascomfig:数据库配置工具。Bct:挂载设备工具。Modbus: Modbus是由Modicon在1979年创造的,是全世界第一个实际用于工业级现场的总线协议。1.5采集中心运行环境Ø 操作系统:Win XP, Windows 7,win 8 (64位);Ø 电脑硬件配置:CPU Pentium 4 以上内存 512M 以上主板可能使用DCD8072硬盘 1G以上Ø 软件需求:MicroSoft Visual Stduio 2010 、MicroSoft VC6.0Win sql server 2008, 2005MFC运行库函数暂时使用ms sql server 2008数据库Ø 通讯配置:普通以太网终端设备2监控中心设计使用的C+关键技术2.1多线程技术2.1.1线程的概念线程(Thread)(1)线程可两分为个组成部分:线程的堆与栈:它用于寄存线程在运行时所需的全部参数和局部变量。操作系统的内核对象:是操作系统对线程的管理和寄存线程的记录数据的地址。(2)新创线程时,当前线程的内核对象随之被生成。这个对象是windows用来处理线程的数据结构不代表线程自己,线程的相关记录数据就是用这个数据结构来保存的。(3)线程总是创建于某个进程中。线程的地址空间是操作系统从进程的地址空间中分配的。创建与被创的线程所处的地址空间是一样的。所以,进程中的所有数据信息和其他线程数据对于新创线程都是可见的。这使得一个进程中的多个线程间的通信变得非常方便。(4)线程所需要的内存很少,由于线程中唯有内核对象及一个堆栈并且存留的统计数据较少所以线程所需的开销相对于进程开销少,从编程的空间效率上出发,多线程是我们解决问题的首选方案。(5)时间片指的是操作系统给各个进程运行时划分的时间段,他们极短的时间段。windows以循环的机制分配时间片给相应的线程,得到时间片的进程即可从等待状态切换为运行状态,否则该进程仍将处于挂起的等待。由于操作系统分配的时间片相当短,在这短暂的时间片里和现在计算机高速计算的速度中,人们的感觉中是分辨不出线程运行的向后顺序的,就好像是线程同时在运行。当需要暂停某个线程时,可使用Sleep()函数,它使自己处于等待状态,但它是耗着cpu不做事,这时使得别的线程就不能占用cpu,windows会认为该线程还在运行,不会让出系统资源。(6)当一台计算机配置了多个CPU或者单个CPU双核以上,多个线程就能实现并发,单线程与多线程的工作模型如图1所示:2.1.2线程同步线程在同一进程中对共享数据原子访问的机制便可成为线程的同步。事件、临界区、信号量、互斥量等是编程人员常用的同步对象。适用于在同一个进程内实现有限制的访问共享的数据的应该是临界区。线程与线程之间要实现同步,我们就得借助系统的内核对象来时想线程操作的同步。有多线程开发经验的人都知道常使用内核对象有事件、信号量和互斥量,这些内核对象在任何时间里都只能有一个状态那就是信号态或者无信号态。系统中的线程在等待内核对象时,若内核对象是无信号态,系统将挂起该线程,知道其等待的内核对象切换为有信号态,这时该线程才有机会恢复执行状态,否则将一直等下去直到进程结束。内核对象有无信号态的等待函数有:DWORD WaitForSingleObject();WaitForSingleObject函数返回值DWORD WaitForMultipleObjects(DWORD nCount, /*number of obj*/CONST HANDLE *lpHandles,/*Object pointer array*/BOOL bWaitAll,/*wait until all objects into a signal state?*/DWORD dwMilliseconds/*INFINITE表示持续等待*/)1、互斥量(Mutex)用于实现多线程的同步需要使用到的API函数有:CreateMutex(),ReleaseMutex(),WaitForSingleObject();首先利用CreateMutex()新创互斥量内核对象,该对象可以实现多个进程间的数据访问同步,在对共享数据访问结束的时候,则需要调用ReleasMutex()函数释放对互斥量的控制权。函数解析:HANDLE CreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes,/*用来决定线程的安全性,通常为NULL*/BOOLbInitialOwner,/*真表示该线程将获得其创建给互斥量的所有权,否则未获得所有权*/LPCTSTRlpName/*Name of mutex*/);BOOL ReleaseMutex(HANDLE hMutex);/释放句柄2、事件(Event)与多线程事件与信号量和互斥量不同,他们通常用于实现对共享数据的访问控制,而事件只有在某一动作完成时才发送信号。事件的对象有手动重置事件与自动重置事件,前者可用于同时为多个线程发送信号;后者则仅仅对单个线程发送信号。当多个线程同时执行WaitForMultipleObjects或者WaitForSingleObject来获取一个自动重置事件时,在这个自动重置事件转换为信号态时,在多个等待线程中将会有一个线程被唤醒并执行相应的代码段,同时该事件又自动转换为无信号态,剩下的线程将持续处于等待状态。由次看来,自动重置事件与互斥量的作用相似。WaitForSingleObjectWaitForMultipleObjects不能实现将手动重置事件自动重置为无信号态,只有利用API函数才可以实现手动重置事件状态的装换。所以,处于有信号态的手工重置事件,将激活所有处于等待状态的线程。函数解析:HANDLE CreateEvent( /创建事件LPSECURITY_ATTRIBUTES lpEventAttributes,/The safety property of the event object, usually set to NULLBOOL bManualReset,/Event type(自动/手动重置)BOOL bInitialState,/The initial value of the signal stateLPCTSTR lpName/The name of the event, NULL said the anonymous);对于信号态的设置有两个API函数调用可设置,BOOL SetEvent(HANDLE /BOOL ResetEvent(HANDLE hEvent);他们都适用于自动重置事件对象和手工重置事件对象的信号态的设置,前者是将信号态设置为有信号态,后者则是将事件信号态设置为无信号态。其中自动重置事件不需要利用ResetEvent,因为在调用WaitForMultipleObjects或者WaitForSingleObject函数返回之前,系统会将其事件对象切换成无信号态。最后在事件对象使用完之后,利用CloseHandle函数来实现回收处理,将其关闭。3、临界区(Critical Section)与多线程临界区顾名思义,其将为用户划分代码区域,取得该区域的进入权将可以对区域内的共享数据进行访问,当区域内正被当前他线程使用时,别的线程想要进到该区域内只有等候当前线程离开临界区的时候才可以获取进去临界区的权限,相反只有一直等候下去。这样就可以实现对共用的数据同时访问了。需要注意的就是临界区只可以在单个进程之使用。使用临界区我们需要定义一个CRITCALSECTION临界区对象,调用InitializeCriticalSection对该对象进行初始化,调用EnterCriticalSection的位置说明临界区的保护代码起点,同时指将进到该临界区,当动作完成之后我们必须调用LeaveCriticalSection离开临界区,使得临界区处于空置状态,便于其他访问者访问,在临界区完成其职责时可利用DeleteCriticalSection将该对象解除。4、信号量(Semaphore)与多线程信号量内核对象相当于系统对线程的资源计数器。当WaitForSingleObject被线程调用时,操作系统同时将接收到一个信号量对象,并判断该对象的资源计数是否大于0,大于0的话,系统就会将其减1并唤醒响应的进程。否则进程将持续等待状态,直到有其他线程释放该对象为止。5、互斥量、临界区、事件三个同步对象的区别事件对象和互斥对象能实现在多个进程之中的各个线程之间完成数据同步,但他们的速度相对于临界区显得稍慢。一般情况下在编写多线程程序时当需要到线程的同步机制时,首先应该想到的是临界区,使用临界区我们需要定义一个CRITCALSECTION临界区对象,利用InitializeCriticalSection对该对象进行初始化,利用EnterCriticalSection的位置说明临界区的保护代码起点,同时指将进入该临界区,当操作完成之后我们必须利用LeaveCriticalSection走出临界区,使得临界区处于空置状态,便于其他访问者访问,在临界区完成其职责时可利用DeleteCriticalSection解除对象。成对使用,记忆方便,用起来相对简单,但是易出现死锁状态,在编程时需要注意防止死锁的发生。6、消息实现线程间的通讯在线程间传送消息时我们通常使用PostThreadMessage函数来实现线程之间的消息传送。BOOL PostThreadMessage(DWORDidThread,/The message is transmitted by thread IDUINTMsg,/消息WPARAMwParam,/附加参数LPARAMlParam/附加参数);执行该函数后,消息将被放进消息发送进程的消息队列之中,并马上返回。这时候执行的线程便可以执行GetMessage或PeekMessage从消息队列中获取消息,根据消息的类型使相应动作到触发。我们可以自己定义我们想要的相信消息: 宏定义消息代码:#define WM_XXX WM_USER+2 做消息映射:如 ON_MESSAGE(WM_TXXX, OnXXX) 声明消息函数:如afx_msg LRESULT OnXXX(); 消息响应函数的实现。2.2 socket网络编程技术2.2.1 TCPTCP的工作模式:2.2.2 UDPUDP的工作模式:2.2.3 TCP与UDP区别TCP的特点会影响到套接口函数的使用,使得TCP的套接口程序与UDP的套接口程序存在较大的区别。1、 TCP是面向链接个工作模式,指的是在发送数据之前要建立好连接,发送数据完毕之后还要关闭连接。UDP则没有建立连接和关闭连接的过程。在是否建立连接方面,TCP就好比打电话,需要先建立通话,才能进行交流;UDP则类似于发短信。2、 TCP是全双工的通信模式,这样使得TCP在关闭连接的时候套接字函数的调用流程显得比较复杂,双方的连接都必须单独的关闭,单一的一方关闭并不影响另一方的数据连续传输。3、 TCP是可靠的传输协议,而UDP则是不可靠的传输协议。TCP实现可靠传输主要依赖确认和重传方式,TCP在发送数据是都会为每个数据编排编号,同时启动一个超时计时器,另一方接收到数据是并会返回一个确认信息,若久久未接受到数据则继续等待,当计时器时间超时,发送方则会重新发送原来的数据。UDP的可靠传输需要程序员来完成。4、 TCP以字节流的传输数据,UDP则是以数据报的格式传输数据。2.3动态链接库技术2.3.1相关概念动态链接库 简称DLL动态链接库是对类或者函数方法的封装,可实现应用程序模块化开发管理,同时也可以对程序代码的隐藏,编译后将生成一个独立的以DLL为后缀名的文件,它是不可执行的库文件类型,不能相应消息。在相应的应用程序模块中DLL的函数调用,才能实现动态链接库带给程序员需要实现的功能。做为windows程序开发的程序员都知道动态链接库(DLL)包含了所用的Windows API。其中User32.dll、Kernel32.dll和GDI32.dll中三个DLL文件是windows核心的文件,Kernel32.dll中实现了对于windows的内存、进程和线程的管理的每个函数,User32.dll中实现了对户界面任务中创建窗口和传送消息的每一个函数封装;GDI32.dll则实现windows的文本显示和图形的绘画的每个函数的封装。我们通常可以在C:windowsSystem32目录下找到这三个文件。简单的描述动态链接库就是它对函数的封装,在DLL中课将这些函数分为内部函数和导出函数。其中内部函数指的是非导出函数,他共DLL内部调用的程序;而导出函数则是对外部应用程序提供的调用接口,供给应用程序运行时动态调用。导出出表中包含着导出函数,这些函数是动态链接库中是能够被外部应用程序运行时调用的函数名。相对于静态链接而言,动态链接库,是程序运行时动态链接的。动态库:DLL开发者一般会为应用到动态链接库的应用程序提供引入库及动态链接库(.lib/.dll文件两个文件)。这里的.lib文件和静态链接库中的.lib文件是不同的,在这里的.lib文件仅内含动态链接库中的变量的符号名和导出的函数,.dll文件中则内含实际的数据和函数。在应用程序编译链接时,将.lib文件链接,动态链接库中的函数和数据并没有被复制到应用程序的进程空间里,只有运行的应用程序需要到动态链接库中的相应函数去实现功能好似,才调用LoadLibrary()函数,实现动态链接库的加载,这时就可以调用DLL中的导出函数了。可带来的好处:ü 开发使用编写语言多样化;ü 可实现基于原平台的二次开发,提高应用程序的可扩展性;ü 便于项目模块化管理;ü 在空间上能实现节省。静态库:以二进制形式将数据和函数编译.lib文件。当应用程序需要使用到该静态链接库的时候,可在工程设置中设置对该.lib文件的引用,在应用程序编译链接的时候,编译器和链接器会将该库中的数据和函数复制该应用程序的相应的模块中,最终生成可执行文件(.exe文件),既我们需要发布的应用程序。可带来的好处:不需要包含函数库中所有的代码函数,可执行程序可以使用标准的函数集;不足之处:当两个以上的应用程序运行时都.lib中的函数时,这时候操作系统就必须复制多份函数代码的副本,从而使得内存的使用率降低。可执行文件(EXE)和动态链接库(DLL)的对比:执行可执行文件时,系统会为其分配一个独立的进程空间,动态链接库是不能被独立运行的,而是在动态链接课的导出函数被相应的应用程序调用时,系统将为DLL生成一个副本,并将其加载到相应的应用程序进程空间之中,一份代码的副本将可以为多个应用程序所共享。动态链接库中还可以包括一个导出表,用于存放该动态链接库对外部应用程序提供函数调用接口。2.3.2 动态链接库的开发方法、声明和实现调用1、通常DLL使用MFC和Win32的2种编写。2、DLL导出函数的声明的三种方式:ü _declspec(dllexport) ü Externü .def文件3、使用DLL实现类中部分成员函数或者整个类的导出:部分成员函数的导出:在需要导出的类成员函数的定义前之前添加关键字_declspec(dllexport)整个类的导出:在需要导出的类的定义的关键字class的后面添加关键字_declspec(dllexport)4、 两种调用DLL的实现方式:以下的DLL两种加载方式都必须要求对外部函数类型的预先声明,才能对动态链接库的成功调用。但还需要注意这两种的声明的方式是不同的。ü 显式调用(加载):使用到的windows API函数有LoadLibrary()、GetProcessAddress()和FeeLibrary();首先调用LoadLibrary()函数实现动态链接库的加载,再调用GetProcessAddress()获得取动态链接库导出函数或者导出类的指针,在用户调用实现相应功能并不在使用DLL中的函数功能时,需要要将动态链接库卸载,在最后则调用FreeLibrary()将DLL卸载。ü 隐式调用(链接):该方式有两种实现方案,一是需在创建的工程中添加相应的.lib的引用;二是在相应头文件添加#pragma comment ( lib, "Dll1.lib " )语句 3常用设备通讯协议说明与开发3.1modbus通讯协议3.1.1modbus简介通过该协议监控板与主控板之间进行通信,包括查询数据和发送命令。本通信采用应答方式,由监控板发起请求(发送遥测、遥控信息),主控板执行请求或返回数据。从机(主控DSP)地址设置默认为0x01;从机(电池)地址设置默认为0x02通过该协议监控板与mppt控制板进行通信,包括查询数据和发送命令。该通信采用应答方式,由监控板发起请求(发送遥测、遥控信息),mp pt板执行请求或返回数据。从机(mppt板)地址默认设置如下:地址范围:01150x01,第一台控制器;0x02第二台控制器;0x03第三台;0x04第四台;0x05第五台;0x06,第六台;0x07第七台.。以上三设备之间通信采用双总线结构进行通信,太阳能控制器与逆变器之间不通信。3.1.2接口方式RS485接口:异步,半双工;如图1所示为监控板接波特率:为1200bps、2400 bps、4800 bps、9600 bps、19200 bp等数据长度: RTU模式时为8位、ASCII模式时为7位奇偶校验位:可设置为奇校验、偶校验或者无校验停止位:1位3.2通讯协议开发3.2.1协议开发流程获取协议文本阅读分析协议文本整理指令文本和测点表通过串口打指令完成代码和指令测试接入设备验证协议动态库3.2.2分析协议文档1、获取通信参数通信方式:RS232 或RS485数据帧格式:波特率、数据位、校验位、停止位等2、了解信息帧格式如:Modbus 协议格式再如:电总协议格式3、 功能码与指令与功能码对应的数据区格式主机发送子机应答3.2.3整理指令文本和测点表1、整理功能码与指令指令:01 03 00 00 00 02 C4 0B 地址码 功能码 起始地址 个数 校验码返回指令:2、整理测点表3.2.4协议运行流程及DLL协议开发接口函数1、协议数据流程图2、接口函数与轮询机制Int GetDeviceTypeId()Int GetCommandCount()Int MakePackage(int cmdNum, char *buff, int &len, USHORT &cmd)Int MakeCtrlPackage(int pointNum, float value, char *buff, int &len, USHORT &cmd, int deviceId)bool CheckComplite(char* desBuff, const char* srcBuff, int len, int deviceId)LPMapPointInfo AnalysePackage(char *buff, short cmd, int deviceId)4 光伏电站系统总体说明4.1整体说明Ø 开发意图:为整个管理系统提供通信接口以及后台数据处理平台,接收下层设备发送的数据,为上层应用提供数据支持.Ø 应用目标:作为分布式光伏电站运营管理系统的数据采集和存储 中心。Ø 作用范围:通过无线或有线网络能安全可靠的接收NPM太阳能控制器发送来的数据,并存储到数据库。Ø 产品构架:分布式光伏电站运营管理系统如图1 所示,现所定义的产品是这个系统的一个组成部分,既“远程监控系统”,该产品接收安装在发电站“智能电源控制系统”采集发送来的数据,并存储于数据库中,为上层应用(PC端、移动端)提供数据支持。Ø 用户特点:属于后台数据处理部分,无需操作人员,软件部分更新较慢,数据采集频度高,需要通信工程人员进行网络通信维护,与数据库开发人员进行数据库的维护。Ø 假设与依赖关系:l 可信性假设:(1) 数据传输,数据访问的安全性技术数据智能分析能力.(2) 控制系统提供与网络接口,网络与服务器接口实现(3) 控制系统与服务器相互通信(4) 数据库储存数据的实时性l 依赖关系是:(1)为上层应用层提供数据(2)依赖于下层传输层的数据采集4.2设计策略扩展策略不同网络通信接口,如GPS, GPRS, 以及TCP, UDP等不同协议通信通信方法。扩展硬件功能测试,函数接口,应用DLL实现对协议的封装,建立二次开发平台。复用策略首先对于整个系统而言,其可移植性强,其次是设计的一些类抽象,函数功能分离,模块化等均能实现代码复用。折衷策略:由于是网络数据获取,尽量利用本地服务器内存,硬盘等优势以提升时间,系统设计同时应用了线程池技术实现对CPU的高效利用,提高用户效率,主控系统硬件采集数据以网络方式作为本项目系统的输入,输出项目是客户端的页面显示,数据以一定格式存储进数据库,设计数据库设计问题,应结合数据设计方法进行。4.3网络架构使用以太网,能满足局域网与广域网的数据收发要求,主要以TCP/IP,或UDP/IP进行,主控系统以此完成与服务器的通信4.4应用蓝图4.5基本设计概念和处理流程5数据采集中心总体设计5.1 功能设计一览图本文主要说明“中心采集软件”设计与实现,其下的功能模块如图13所示:5.2 具体功能设计5.2.1功能实现设计Ø 网络通信模块(SED设备任务管理)1、数据发送接口2、数据接收接口3、网络通信配置接口4、子模块的简单类图及流图如图14、15所示Ø 数据库模块(数据库任务管理)1、使用ADO技术与数据库连接2、SQL查询语言实现数据入口3、数据导出文件接口4、数据导出到内存接口Ø 数据解析模块(动态库任务管理)1、获取接收缓存区数据并判断数据完整性2、参照设备厂家给的设备协议文档,进行数据翻译3、将完整翻译的数据集安设备编号与测点编号组合成的的index为引索添加到全局MAP中,供入库模块提取数据。Ø 资源及定时任务管理1、设置对设备轮询的时间2、程序运行结束时释放所有对象资源5.2.2系统维护设计为了系统维护的方便,主要才用了动态链接库技术,搭建了基于原系统之上的二次开发平台,使得系统移植性、兼容性强,任何有需求监控的光伏电站到可以部署上去,而系统只需针对该电站采用的的设备进行协议的开发即可。数据采集是采用多任务管理,即多线程及线程池机制,不需要考虑电站过大设备过多使得系统承受不了的局限。5.2.3界面(UI)设计1、设备初始化、设备数据加载与加载如图16所示2、采集软件向链路串口服务器请求链接,并链接成功 如图17所示3、采集中心向已建立链接的设备轮询下发指令,并接受设备响应数据 如图18所示:4、PC端WEB呈现 如图19所示6系统测试1、测试环境的配置(1)一般地,单元测试、集成测试环境与开发环境相同。(2)一般地,系统测试、验收测试环境与运行环境相同或相似(更加严格)。2、测试结果基本完成预期效果,如当设备在线是,其前面的图标我绿色,若设备掉线的前面图标为红色。

    注意事项

    本文(光伏电站远程数据采集监控中心系统设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开