一种用于微电网数据采集系统的通道管理实现方法
【专利摘要】本发明提供了一种用于微电网数据采集系统的通道管理实现方法,根据抽象提炼的各种通讯设备的通用属性与操作,确定通用的通讯设备类,根据通用通讯设备类的定义与串口通讯、网络TCP通讯、网络UDP通讯、串口服务器通讯的实现方法,确定各个通讯设备子类;确定通讯设备类实例化,生成各个通讯设备子类的实例,并统一以通讯设备类的对象返回。本发明在分析了各种微电网通讯设备通讯方式的实现方法后,抽象提炼出通用通讯设备类,统一对外提供诸如打开设备、关闭设备、监测连接状态、读数据、写数据等的接口函数,大大降低了对数据采集软件编程的难度,提高了软件的通用性、稳定性,同时便于维护,也有很好的可扩展性。
【专利说明】
一种用于微电网数据采集系统的通道管理实现方法
技术领域
[0001] 本发明属于微电网系统技术领域,涉及到微电网数据采集系统的通道管理实现方 法。
【背景技术】
[0002] 近年来,随着分布式发电与储能技术的发展,微电网在国内外得到广泛应用。微电 网接在用户侧,具有低成本、低电压、低污染等特点,它既可与大电网联网运行,也可在电网 故障或需要时与主网断开单独运行。微电网不仅解决了分布式电源的大规模接入问题,充 分发挥了分布式电源的各项优势,还为用户带来了其他多方面的效益。微网将从根本上改 变传统的应对负荷增长的方式,在降低能耗、提高电力系统可靠性和灵活性等方面具有巨 大发展潜力。
[0003] 微电网数据采集系统作为微电网监视、运行控制与能量管理软件的基础功能,要 与逆变器、变流器、微网测控保护装置、模式控制器以及电池管理系统等各类设备、子系统 进行通讯获取数据,面临多种通信信道的选择。有串口方式、网络方式,串行通讯方式又分 232、422、485多种接线方式,网络通讯方式下可能采用局域网、广域网,又可能采用TCP协 议、UDP协议等。串口与网络两种通讯方式还可以通过串口服务器设备进行转换。另外,在 Wind〇WS、Unix等多个操作系统平台上,每种通道的访问实现方式又有所不同。一般的数据 采集软件根据通讯设备的类型和操作系统类型,结合具体的通讯协议独立开发程序,在软 件的稳定性、扩展性、代码的重用性、应对需求变更的自适应调节能力、易维护性等方面存 在比较大的欠缺。
【发明内容】
[0004] 有鉴于此,本发明提出一种用于微电网数据采集系统的通道管理实现方法,在总 结了大量已有应用成果的基础上,对微电网数据采集通讯方式应用做了进一步改进、归纳 和扩展,形成了一种用于微电网数据采集系统的跨平台、跨通讯方式的通用通道管理方法, 加强软件功能的通用和可定制特性。
[0005] 为达到上述目的,本发明的技术方案是这样实现的:一种用于微电网数据采集系 统的通道管理实现方法,实现步骤如下:
[0006] (1)根据抽象提炼的各种通讯设备的通用属性与操作,确定通用的通讯设备类,该 通讯设备类以动态链接库的方式对外提供;
[0007] (2)根据通用通讯设备类的定义与串口通讯、网络TCP通讯、网络UDP通讯、串口服 务器通讯的实现方法,确定各个通讯设备子类;
[0008] (3)确定通讯设备类实例化,生成各个通讯设备子类的实例,并统一以通讯设备类 的对象返回。
[0009] 进一步的,步骤(1)所述通讯设备类的通用接口函数包括:
[0010] open连接函数,用于解析通讯设备名称,打开通讯设备连接;
[0011] close连接函数,用于关闭通讯设备连接;
[0012] read函数,用于从通讯设备端口读入一定长度的数据写入缓冲区;
[0013] write函数,用于从缓冲区读取一定长度的数据写入通讯设备端口;
[0014] 10控制函数,用于控制通讯设备I/O属性;
[0015] Check函数,用于监测通讯设备连接状态。
[0016] 更进一步的,所述通用接口函数以纯虚函数、动态链接库导出函数的方式存在。
[0017] 进一步的,步骤(2)所述通讯设备子类包括串口、网络TCP、网络UDP、串口服务器。
[0018] 更进一步的,所述串口通讯设备子类中增加了串口的专用属性,定义了串口的专 用结构,实现不同操作系统平台下适应于串口访问的各个接口函数。
[0019] 更进一步的,所述网络TCP通讯设备子类中增加了网络TCP的专用属性,实现不同 操作系统平台下适应于网络TCP访问的各个接口函数,分别实现连接网络的客户端与网络 监听的服务端。
[0020] 更进一步的,所述网络UDP通讯设备子类中增加了网络UDP的专用属性,实现不同 操作系统平台下适应于网络UDP访问的各个接口函数。
[0021] 更进一步的,所述串口服务器为虚拟串口方式,不必增加新的子类处理,直接调用 串口通讯设备子类;所述串口服务器为TCP模式,网络TCP通讯设备子类增加子类,该增加的 子类中设置端口偏移量属性,各个接口函数无需重新实现,用于串口服务器的调用。
[0022] 相对于现有技术,本发明所述的一种用于微电网数据采集系统的通道管理实现方 法具有以下优势:
[0023] 本发明采用面向对象技术,在分析了各种微电网通讯设备通讯方式的实现方法 后,抽象提炼出通用通讯设备类,统一对外提供诸如打开设备、关闭设备、监测连接状态、读 数据、写数据等的接口函数,使得微电网数据采集系统的前置通讯软件(或其它上层应用的 使用者)不必关心具体的操作系统平台与通讯设备类型,只需简单的调用这些接口,通讯设 备类的对象会自动匹配到各自具体的实现方法。这样,大大降低了对数据采集软件编程的 难度,提高了软件的通用性、稳定性,同时便于维护,也有很好的可扩展性。
【附图说明】
[0024] 构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0025] 图1为本发明的实施例中通讯设备类类图。
【具体实施方式】
[0026] 需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互 组合。
[0027] 下面将参考附图并结合实施例来详细说明本发明。
[0028]本发明具体实现步骤如下:
[0029] 第一步:根据抽象提炼的各种通讯设备的通用属性与操作,确定通用通讯设备类 CComDev,该类以动态链接库的方式对外提供。
[0030] 通讯设备的通用属性包括:
[0031] int Devld; //设备标识符
[0032] QSuint8 State; //设备状态
[0033] char DevName[DEV_NAMELEN]; //设备名称
[0034] 其中,QSuint8 以及下文中 QSuintl6,QSintl6,QSuint32,QSint32 等为统一定义的 跨平台数据类型。
[0035] 通讯设备类的通用接口包括:
[0036] 解析通讯设备名称,打开通讯设备连接
[0037] virtual int Open(char*devname,DevSetting*setting = NULL) =0;
[0038] 关闭通讯设备连接
[0039] virtual int Close(void) =0;
[0040] 从通讯设备端口读入一定长度的数据写入缓冲区
[0041] virtual int Read(void*buf, int len, int TimeOut = 0) = 0;
[0042] 从缓冲区读取一定长度的数据写入通讯设备端口
[0043] virtual int ffrite(void*buf, int len, int TimeOut = 0) = 0;
[0044] 控制通讯设备I/O属性
[0045] virtual int IoCtl(CTRLCMD cmd,int&mode)=0;
[0046] 监测通讯设备连接状态
[0047] virtual int Check(void) =0;
[0048] 这些接口函数以纯虚函数、动态链接库导出函数的方式存在。
[0049] 第二步:根据通用通讯设备类的定义与串口通讯的实现方法,确定串口通讯设备 子类 CSerialDev。
[0050] 增加专用属性:
[0051] HANDLE hFile;
[0052]定义专用结构:
[0054]然后实现不同操作系统平台下适应于串口访问的各个接口函数。
[0055] 第三步:根据通用通讯设备类的定义与网络TCP通讯的实现方法,确定网络TCP通 讯设备子类CTcpDev。
[0056]增加专用属性:
[0058]然后实现不同操作系统平台下适应于网络TCP访问的各个接口函数,根据 ServerFlag属性分别实现连接网络的客户端与网络监听的服务端。其中I〇Ctl()在该子类 中不适用。
[0059] 第四步:根据通用通讯设备类的定义与网络UDP通讯的实现方法,确定网络UDP通 讯设备子类⑶dpDev。
[0060] 增加专用属性:
[0061] struct sockaddr_in Remote_Addr;//对方地址
[0062] 然后实现不同操作系统平台下适应于网络UDP访问的各个接口函数,其中IoCtlO 在该子类中不适用。
[0063] 第五步:根据串口服务器在微电网数据采集系统中两种实际应用方式确定串口服 务器通讯的实现方式。在虚拟串口的方式下,不必增加新的子类处理,直接调用CSerialDev 即可。在串口服务器配置为TCP模式下,调用增加的CTcpDev的子类CSerialServer。该类中 设置端口偏移量属性如下。
[0064] Port_0ffset = 4000 ;
[0065] 各个接口函数无需重新实现。
[0066] 第六步:确定通讯设备类实例化的方法。
[0067] CCommDev*CreateAComDev(QSuint32devtype)
[0068] 其中,devtype参数代表串口、网络TCP、网络UDP、串口服务器等各个通讯设备类 型,在该方法中,生成各个通讯设备子类的实例,并统一以CCo_Dev基类的对象返回。
[0069] 本实施例中通讯设备类的类图如图1所示。
[0070] 本发明采用面向对象技术,在分析了各种微电网通讯设备通讯方式的实现方法 后,抽象提炼出通用通讯设备类,统一对外提供诸如打开设备、关闭设备、监测连接状态、读 数据、写数据等的接口函数,使得微电网数据采集系统的前置通讯软件(或其它上层应用的 使用者)不必关心具体的操作系统平台与通讯设备类型,只需简单的调用这些接口,通讯设 备类的对象会自动匹配到各自具体的实现方法。这样,大大降低了对数据采集软件编程的 难度,提高了软件的通用性、稳定性,同时便于维护,也有很好的可扩展性。
[0071] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种用于微电网数据采集系统的通道管理实现方法,其特征在于,实现步骤如下: (1) 根据抽象提炼的各种通讯设备的通用属性与操作,确定通用的通讯设备类,该通讯 设备类以动态链接库的方式对外提供; (2) 根据通用通讯设备类的定义与串口通讯、网络TCP通讯、网络UDP通讯、串口服务器 通讯的实现方法,确定各个通讯设备子类; (3) 确定通讯设备类实例化,生成各个通讯设备子类的实例,并统一以通讯设备类的对 象返回。2. 根据权利要求1所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,步骤(1)所述通讯设备类的通用接口函数包括: open连接函数,用于解析通讯设备名称,打开通讯设备连接; close连接函数,用于关闭通讯设备连接; read函数,用于从通讯设备端口读入一定长度的数据写入缓冲区; write函数,用于从缓冲区读取一定长度的数据写入通讯设备端口; 10控制函数,用于控制通讯设备I/O属性; Check函数,用于监测通讯设备连接状态。3. 根据权利要求2所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,所述通用接口函数以纯虚函数、动态链接库导出函数的方式存在。4. 根据权利要求1所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,步骤(2)所述通讯设备子类包括串口、网络TCP、网络UDP、串口服务器。5. 根据权利要求4所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,所述串口通讯设备子类中增加了串口的专用属性,定义了串口的专用结构,实现不同 操作系统平台下适应于串口访问的各个接口函数。6. 根据权利要求4所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,所述网络TCP通讯设备子类中增加了网络TCP的专用属性,实现不同操作系统平台下 适应于网络TCP访问的各个接口函数,分别实现连接网络的客户端与网络监听的服务端。7. 根据权利要求4所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,所述网络UDP通讯设备子类中增加了网络UDP的专用属性,实现不同操作系统平台下 适应于网络UDP访问的各个接口函数。8. 根据权利要求4所述的一种用于微电网数据采集系统的通道管理实现方法,其特征 在于,所述串口服务器为虚拟串口方式,不必增加新的子类处理,直接调用串口通讯设备子 类;所述串口服务器为TCP模式,网络TCP通讯设备子类增加子类,该增加的子类中设置端口 偏移量属性,各个接口函数无需重新实现,用于串口服务器的调用。
【文档编号】G06F9/44GK105867943SQ201610246783
【公开日】2016年8月17日
【申请日】2016年4月19日
【发明人】赵学臣
【申请人】天津天大求实电力新技术股份有限公司