论文部分内容阅读
【摘要】将DLMS/COSEM标准协议应用于三相智能电表中,有效地实现了电表的易扩展和互操作特性,本文从三相智能电表硬件入手,结合DLMS/COSEM标准协议,探讨三相智能电表各接口类的实现、软件平台设计、寄存器实现及通信协议的实现。市场调研结果表明,将DLMS/COSEM标准协议应用于三相智能电表在降低系统开发工作量、满足日常需求方面表现为极大的优势。
【关键词】DLMS/COSEM标准协议;三相智能电表;实现
我国传统电能表通信协议主要采用面向电表的设计方法,该协议具有对系统、仪表开发要求度低、原理简单等优点,但与其他设备集成时,编制特定驱动程序是其存在的较大弊端。与传统电能表通信协议采用的设计方法不同,DLMS/COSEM标准协议具有扩展性、独立性、兼容性、可实现不同设备系统之间互操作和互联性等优点,同时,为了适应智能电网未来发展法相,将DLMS/COSEM标准协议应用于智能电表实现了双向数据通信、双向多费率计量功能、远程通信控制继电器通断功能以及防窃电功能等智能化功能。目前,DLMS/COSEM标准协议已被纳为国际标准,广泛应用于电能表的自动抄表系统及计量系统数据采集等。
1.三相智能表硬件组成和接口类实现
三相智能表硬件组成主要包括核心管理平台、电压采样网络、开关电源模块、继电器控制、电流互感器、专用计量芯片71M6515、FLASH、EEPROM、实时时钟模块、通信模块、显示电路、点阵液晶驱动、开端盖、强磁场监测、LED指示灯、按键以及其他相关的外围电路。核心管理平台主要通过SPI接口读取计量芯片的数据,对三相有功和无功电能量进行计算。专用计量芯片71M6515计算三相采样电压、电流信号相关数据,并得到有功功率、有功能量、无功功率、无功能量、视在功率、视在能量、视在电能、电压、电流、频率、功率因数等。FLASH主要用于存储曲线数据。实时时钟模块主要提供精确的时间。点阵液晶驱动则显示数据信息。三相智能电表可支持低压电力线载波、近红外、RS485、GPRS等多种通信方式。
DLMS/COSEM标准协议的实现主要有通信协议实现和接口类实现两方面组成。通信协议的实现主要是规定数据交换方式和访问数据方式,DLMS/COSEM通信协议包括应用层协议、链路层协议及ASN.1抽象语法的描述。被访问的对象属性按照ASN.1抽象语法和属性数据类型描述为字节串数据,根据链路层协议和应用层协议组成帧,最后,将帧数据传至主机。接口类主要定义电能表通信接口上的功能,三相智能电表实现的接口类型主要有寄存器类、扩展寄存器类、数据类、时钟、需量寄存器、通用集、脚本表、特殊日表、SAP分配表、单操作时间表、活动日历、连接LN、HDLC类、继电器等14个接口类。其中,数据类属于类1,其只具有逻辑名和值两个属性。逻辑名主要用来标示对象名称,具有唯一性,而值用来标识该对象的值。将类1实例化,可得到掉电次数,这由逻辑名和值这两个属性就能表示。寄存器类有逻辑名、值和换算单位三个属性。值标识对象的量,换算单位标识对象单位及换算关系,由此可以说,寄存器类可实例化成电能量数据对象。不同的接口类属性不一样,因此,接口类实例化之后对象功能就不一样。也就是说,从上述接口类选择想要实现的对象就可以组成特定功能的电能表。
2.三相智能表软件平台设计
可扩展性、跨平台移植对于三相智能表极为重要,基于此,设计实现具有消息处理和任务调度功能的软件平台。三相智能表利用分层软件设计架构,基于微处理器建立驱动层,驱动层主要包括设备初始化、配置及操作功能接口。三相智能表的功能模块均建立在此驱动层之上,通过驱动程序实现设备访问,这种功能模块间接进行硬件操作最终实现硬件平台无关化设计。三相智能表通过虚拟内核管理消息队列和任务,最终实现系统的易扩展性。
3.寄存器类的实现
如上文所说,不同属性接口实例化之后的对象功能不一样,我们以寄存器类为例,具体说明其实现过程。通信抄表包括COSEM对象的属性,每个类均定义一个含自己类所有属性的基本结构体数据类型,这样有助于方便地管理数据,可以为通信协议的实现提供良好环境。可以依据寄存器类属性个数和类型定义寄存器类基本数据的类型,具体如下:“unsigned char OBIS[6] /*逻辑名*/”、“unsigned long Data /*数据*/”、“unsigned char Unit /*单位*/”、“signed char Scaler /*量程*/”等。此外,为了确保寄存器在掉电之后计量数据不至于丢失,因此分配8个字节的EEPROM保存计量数据,其中4个字节用来存放整数,其余4个字节用来掉电的时候保存数据。从EEPROM频率及电能量数据安全问题出发,RAM区的结构体变量数据累加到60KWh的时候,将以KWh为单位的整数部分保存在EEPROM中,剩余的小数部分则保存在RAM区结构体变量之中。当发生电表掉电,存在RAM区数据至另外的4字节EEPROM,上电之后只需要读取掉电前保存的数据。当更新LCD显示或抄读寄存器类对象数据的时候,EEPROM中加上RAM区数据就是该对象的值,这种保存数据的方法极大地确保了数据的安全。
4.通信协议的实现
DLMS/COSEM通信协议模型为应用层、数据链路层、物理层。该通信协议可在多种物理介质如双绞线、网络及无线等上面工作,不受上层数据通信规定的约束。
通信协议的实现主要依靠通信协议软件,其主要包括消息处理模块、应用层联接模块及协议栈模块三部分。协议栈模块是三相智能电表和外界数据交互的窗口,其作为任务被系统内核调度,实现链路层服务、发送数据请求消息和解析数据通讯请求等。链路层服务负责确保传输数据的可靠性,其服务主要有地址校验、数据CRC校验、帧长校验和长数据帧拆包和组包,同时链路层服务负责向应用层提供链路传输服务,提前为数据的交互做好准备。在协议栈接收到主机要求建立应用层联接请求,将消息发送到连接到LN,其对数据消息解析,并协商约定数据通信配置参数。建立应用层连接之后,协议栈把发送数据请求信息至目的类,在目的类完成被请求对象的属性编码后,将编码数据回发至协议栈,待协议栈进行封装处理数据后,通过串口发送到主机。串口在收到数据后进行合法性的判断,之后解析控制域帧类型,再依据帧的类型进行相应模块的处理。
按消息来源可将消息分为任务模块间的消息、主机和电表通信消息两种,这两种消息的处理流程无太大差别,都主要有读操作、写操作和动作操作。一般在消息在读、写、动作时要首先判断被访问对象是否存在,如果被访问对象不存在,系统自动返回失败,同时提示返回对象不存在。此外,从数据安全性考虑,三相智能电表设置了4种权限访问方式:无密码、低级密码、高级密码和终极密码。对象的操纵权限可以根据需要进行设置,若当前访问没有操作权限则返回失败,且提示权限不够。最后,消息处理完成之后会后,被访问类的主函数要将访问结果以消息的形式发回至协议栈。
5.结语
DLMS/COSEM标准协议应用于三相智能电表中不仅解决了三相智能电表可扩展性和跨平台移植存在的问题,而且极大地降低了开发工作量。在这样一个对电能表功能要求不断提高的市场条件下,将DLMS/COSEM标准协议应用于三相智能电表有极为广阔的发展前景。目前,该三相智能表广泛应用于东南亚各市场,反映良好。
【关键词】DLMS/COSEM标准协议;三相智能电表;实现
我国传统电能表通信协议主要采用面向电表的设计方法,该协议具有对系统、仪表开发要求度低、原理简单等优点,但与其他设备集成时,编制特定驱动程序是其存在的较大弊端。与传统电能表通信协议采用的设计方法不同,DLMS/COSEM标准协议具有扩展性、独立性、兼容性、可实现不同设备系统之间互操作和互联性等优点,同时,为了适应智能电网未来发展法相,将DLMS/COSEM标准协议应用于智能电表实现了双向数据通信、双向多费率计量功能、远程通信控制继电器通断功能以及防窃电功能等智能化功能。目前,DLMS/COSEM标准协议已被纳为国际标准,广泛应用于电能表的自动抄表系统及计量系统数据采集等。
1.三相智能表硬件组成和接口类实现
三相智能表硬件组成主要包括核心管理平台、电压采样网络、开关电源模块、继电器控制、电流互感器、专用计量芯片71M6515、FLASH、EEPROM、实时时钟模块、通信模块、显示电路、点阵液晶驱动、开端盖、强磁场监测、LED指示灯、按键以及其他相关的外围电路。核心管理平台主要通过SPI接口读取计量芯片的数据,对三相有功和无功电能量进行计算。专用计量芯片71M6515计算三相采样电压、电流信号相关数据,并得到有功功率、有功能量、无功功率、无功能量、视在功率、视在能量、视在电能、电压、电流、频率、功率因数等。FLASH主要用于存储曲线数据。实时时钟模块主要提供精确的时间。点阵液晶驱动则显示数据信息。三相智能电表可支持低压电力线载波、近红外、RS485、GPRS等多种通信方式。
DLMS/COSEM标准协议的实现主要有通信协议实现和接口类实现两方面组成。通信协议的实现主要是规定数据交换方式和访问数据方式,DLMS/COSEM通信协议包括应用层协议、链路层协议及ASN.1抽象语法的描述。被访问的对象属性按照ASN.1抽象语法和属性数据类型描述为字节串数据,根据链路层协议和应用层协议组成帧,最后,将帧数据传至主机。接口类主要定义电能表通信接口上的功能,三相智能电表实现的接口类型主要有寄存器类、扩展寄存器类、数据类、时钟、需量寄存器、通用集、脚本表、特殊日表、SAP分配表、单操作时间表、活动日历、连接LN、HDLC类、继电器等14个接口类。其中,数据类属于类1,其只具有逻辑名和值两个属性。逻辑名主要用来标示对象名称,具有唯一性,而值用来标识该对象的值。将类1实例化,可得到掉电次数,这由逻辑名和值这两个属性就能表示。寄存器类有逻辑名、值和换算单位三个属性。值标识对象的量,换算单位标识对象单位及换算关系,由此可以说,寄存器类可实例化成电能量数据对象。不同的接口类属性不一样,因此,接口类实例化之后对象功能就不一样。也就是说,从上述接口类选择想要实现的对象就可以组成特定功能的电能表。
2.三相智能表软件平台设计
可扩展性、跨平台移植对于三相智能表极为重要,基于此,设计实现具有消息处理和任务调度功能的软件平台。三相智能表利用分层软件设计架构,基于微处理器建立驱动层,驱动层主要包括设备初始化、配置及操作功能接口。三相智能表的功能模块均建立在此驱动层之上,通过驱动程序实现设备访问,这种功能模块间接进行硬件操作最终实现硬件平台无关化设计。三相智能表通过虚拟内核管理消息队列和任务,最终实现系统的易扩展性。
3.寄存器类的实现
如上文所说,不同属性接口实例化之后的对象功能不一样,我们以寄存器类为例,具体说明其实现过程。通信抄表包括COSEM对象的属性,每个类均定义一个含自己类所有属性的基本结构体数据类型,这样有助于方便地管理数据,可以为通信协议的实现提供良好环境。可以依据寄存器类属性个数和类型定义寄存器类基本数据的类型,具体如下:“unsigned char OBIS[6] /*逻辑名*/”、“unsigned long Data /*数据*/”、“unsigned char Unit /*单位*/”、“signed char Scaler /*量程*/”等。此外,为了确保寄存器在掉电之后计量数据不至于丢失,因此分配8个字节的EEPROM保存计量数据,其中4个字节用来存放整数,其余4个字节用来掉电的时候保存数据。从EEPROM频率及电能量数据安全问题出发,RAM区的结构体变量数据累加到60KWh的时候,将以KWh为单位的整数部分保存在EEPROM中,剩余的小数部分则保存在RAM区结构体变量之中。当发生电表掉电,存在RAM区数据至另外的4字节EEPROM,上电之后只需要读取掉电前保存的数据。当更新LCD显示或抄读寄存器类对象数据的时候,EEPROM中加上RAM区数据就是该对象的值,这种保存数据的方法极大地确保了数据的安全。
4.通信协议的实现
DLMS/COSEM通信协议模型为应用层、数据链路层、物理层。该通信协议可在多种物理介质如双绞线、网络及无线等上面工作,不受上层数据通信规定的约束。
通信协议的实现主要依靠通信协议软件,其主要包括消息处理模块、应用层联接模块及协议栈模块三部分。协议栈模块是三相智能电表和外界数据交互的窗口,其作为任务被系统内核调度,实现链路层服务、发送数据请求消息和解析数据通讯请求等。链路层服务负责确保传输数据的可靠性,其服务主要有地址校验、数据CRC校验、帧长校验和长数据帧拆包和组包,同时链路层服务负责向应用层提供链路传输服务,提前为数据的交互做好准备。在协议栈接收到主机要求建立应用层联接请求,将消息发送到连接到LN,其对数据消息解析,并协商约定数据通信配置参数。建立应用层连接之后,协议栈把发送数据请求信息至目的类,在目的类完成被请求对象的属性编码后,将编码数据回发至协议栈,待协议栈进行封装处理数据后,通过串口发送到主机。串口在收到数据后进行合法性的判断,之后解析控制域帧类型,再依据帧的类型进行相应模块的处理。
按消息来源可将消息分为任务模块间的消息、主机和电表通信消息两种,这两种消息的处理流程无太大差别,都主要有读操作、写操作和动作操作。一般在消息在读、写、动作时要首先判断被访问对象是否存在,如果被访问对象不存在,系统自动返回失败,同时提示返回对象不存在。此外,从数据安全性考虑,三相智能电表设置了4种权限访问方式:无密码、低级密码、高级密码和终极密码。对象的操纵权限可以根据需要进行设置,若当前访问没有操作权限则返回失败,且提示权限不够。最后,消息处理完成之后会后,被访问类的主函数要将访问结果以消息的形式发回至协议栈。
5.结语
DLMS/COSEM标准协议应用于三相智能电表中不仅解决了三相智能电表可扩展性和跨平台移植存在的问题,而且极大地降低了开发工作量。在这样一个对电能表功能要求不断提高的市场条件下,将DLMS/COSEM标准协议应用于三相智能电表有极为广阔的发展前景。目前,该三相智能表广泛应用于东南亚各市场,反映良好。