论文部分内容阅读
【摘要】本文从嵌入式系统、软件,以及系统的设计和实现这三个方面对嵌入式电力监控系统的研究与实现进行阐述。
【关键词】嵌入式;电力监控系统;研究;实现
中图分类号:X924文献标识码: A
一、前言
嵌入式技术在许多的系统中都得到了应用,为了更好的进行电力监控,我们需要对嵌入式技术在电力监控系统中的使用进行研究。
二、嵌入式系统
1.嵌入式系统的定义
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。用于实现对其他设备的控制、监视和管理等功能,它通常嵌入在主要设备中运行。
2.嵌入式系统的几个发展阶段
嵌入式系统的出现至今已经有30多年的历史,近几年来,计算机、通信、消费电子的一体化趋势日益明显,嵌入式技术已成为一个研究热点。纵观嵌入式技术的发展过程,大致经历4个阶段:
第一阶段是以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。
第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
第三阶段是以嵌入式操作系统为标志的嵌入式系统。
第四阶段是以Intemet为标志的嵌入式系统。
嵌入式系统技术日益完善,32位微处理器在该系统中占主导地位,嵌人式操作系统已经从简单走向成熟,它与网络、Internet结合日益密切,因而,嵌入式系统应用将日益广泛。
三、软件
系统的正常运行离不开软件的配合, 不同的计算机上各自运行相应的用电监测和管理程序, 完成相应的工作。
1.工控机
工控机的实时监控程序用C 语言和汇编语言编写, 主要功能有:
(1)及时采集现场的数据, 并控制采样的时间,做到不重复, 不丢失;
(2)对原始数据进行计算处理, 生成用电数据源, 供上位机使用;
(3)监测现场的运行情况, 根据信号的类型和大小, 发送相应的报警或控制信号;
(4)完成工控机与工控机, 工控机与上位机的通信。
2.上位机
运行数据库管理程序, 其中嵌入一部分C 语言和×86 汇编语言, 采用中断和查询结合的方式完成数据的处理、通信和控制等功能。上位机可运行数据库和窗口式的界面, 数据的处理功能较强, 可以对大量数据进行更严密的分析和处理, 使操作人员得到更直观及精密加工的数据。其主要功能有:
(1)接受工控机送来的用电数据, 处理后生成用电数据库;
(2)数据库的运行、维护和管理;
(3)向工控机发送各项控制命令, 协调整个系统的运作;
(4)良好的人机接口, 便于人机交流。
目前在微机上常用的DBMS , 由于处理能力强,人机界面好, 使用方便, 因而得到广泛的应用。但它们都不是实时处理系统, 当数据处理对时间有苛刻要求的时候, 例如要显示瞬时功率时, 则往往不能胜任。为了解决这个问题, 我们在运行DBMS 的同时, 在系统中还嵌入许多实时处理程序, 以提高整个系统的实时性能, 做到既利用数据库的强大功能, 又能满足实时信号的处理。经过实际测试和用户一段时间的使用, 效果良好。在使用中未发现丢失数据、反应不灵敏、重复计算等问题, 达到了预期的设计目标。
四、系统的设计和实现
1.系统结构及模块的划分
嵌入式电力监控系统是对已有基于桌面的电力监控组态系统(YSS2000)的一个扩充,原系统由设备开发子系统,工程开发子系统和实时监控子系统系统3部分组成。设备开发子系统和上程开发子系统组成了监控系统的组态开发环境;而实时监控子系统则负责对现场设备的监测和控制。设备开发子系统用于开发设备库,设备库以抽象设备为基本单位存储不同型号的设备信息,设备信息包括设备的基本信息、窗口信息、变量信息和报文信息等;工程开发子系统用于开发具体的工程实例,工程实例足以监控现场为模型组建的物理环境的一种软件模拟,工程中将设备实例化为子站,作为工程组成的基本单位。工程实例可以直接投运于运行监控子系统对现场设备进行实时监控。工程实例信息以XML形式存储在硬盘上。
嵌入式电力监控系统读入工程实例对现场中的设备进行数据监控和报警。嵌入式监控系统分为初始化和运行两个阶段,初始化阶段中系统从文件和数据库中载入用户在工程开发系统中的建立的组态数据,并构建实时数据库结构;而在运行阶段,通过启动定时器和通信线程系统完成显示的更新和数据的实时更新。
系统和现场设备之间的数据交换是双向进行的。一方面系统需要及时的读取现场设备的数据,另一方面系统需要向现场设备发送数据进行功能控制和参数调整。图1中的箭头代表数据的流向。系统町根据数据流划分为表示层、业务逻辑层和通信层。
图1系统数据流示意图
本系统基于软件组件技术,以功能的不同划分不同的组件,组件的功能大小决定了组件的粒度。组件化的设计的系统结构如图2所示:
图2功能体系结构
各组件的功能及设计简要描述如下:
(1)工程信息组件:读取组态的工程实例,把解析好的工程信息保存在内存中供其它组件使用。
(2)子站状态查看组件:查看子站状态,完成子站登陆卸载挂牌摘牌功能。
(3)数据字典组件:实现实时数据和历史数据查看功能。
(4)通信组件:通信组件是整个系统的数据来源,它向下与各个子站通信,收发报文,完成四遥功能;向上为实时数据服务组件提供变量的实时值,以及接收从其他组件发送过来的遥控和遥调指令;
(5)实时数据服务组件:系统数据处理、组织、管理的核心,是监控变量的索引表,检索并提供用户指定的实时数据。考虑到数据的实时性要求,系统采用内存作为数据库存储单元来存储工作数据。
(6)持久数据服务组件:存储变量以及日志,并提供对数据的相關操作。
(7)界面组件:主要提供监控界面、四遥操作,通过实时数据服务获取要监视的数据。
(8)报警组件:用于处理各种报警,以组态好的方式输出报警;
(9)数据发布组件:本组件通过使用各种协议适配器与外部系统进行数据交互。
(10)系统事件查看组件:完成系统日志,历史报警等历史数据的查看。
(11)双机各份组件:为增加系统的可用性和可靠性设计该组件,双机备份组件支持主从模式和互备模式。
2.组件的设计
各组件的接口需要继承下面的公共接口,用伪C++语言描述:
Class ELC_Interface
{
Public:
Virtual bool Start(int ParamsCount,char*Params[])=0;
Virtual bool Stop(void)=0;
Virtual bool Initialize(int ParamsCount,char*Params[])=0;
Virtual bool Destroy(void)=0;
};
各组件必须实现该接口的这四个方法,Start方法用来开启该组件提供的服务,而Stop用来停止提供组件的服务,Initialize用来完成组件能够提供服务前的一些初始化工作,如内存的申请、工程信息的加载,在系统加载组件时调用,Destroy用来释放组件占有的资源,在组件退出系统时调用。
另外一个组件需要实现的接口是:
Class ELC_Factory
{
Public:
Void*CreateInstance(char*ClassName)=0;
};
这是一个用于创建对象的接口,采用工厂模式,使类的实例化延迟到子类。组件除了要实现上述接口外还要实现自己能够对外提供的服务接口。为了保证组件的可重用性,组件的接口一旦确定小再改变。在各个组件内部采用单件模式,使各组件在整个系统的运行过程中只存在一个实例。
五、结语
总的来说,在电力监控系统中应用嵌入式技术,可以极大地提高电力系统的稳定性,并提高其抗干扰能力。
参考文献
[1]彭洲红,马国强,吴金勇,徐健健 嵌入式电力监控系统的研究与实现 [J] 《工业控制计算机》 -2011年4期-
[2]赵丽敏,岳宁 基于ARM9的嵌入式电力监控系统的设计与实现 [J] 《电子技术应用》 ISTIC PKU -2010年4期-
[3]朱君,史浩山,陈丁剑 嵌入式电力监控系统中温备份技术的研究与实现 [J] 《测控技术》 ISTIC PKU -2011年2期-
[4]方海,吴健,张蕴 监控系统的设计与实现 [J] 《微型电脑应用》 ISTIC -2010年12期-
【关键词】嵌入式;电力监控系统;研究;实现
中图分类号:X924文献标识码: A
一、前言
嵌入式技术在许多的系统中都得到了应用,为了更好的进行电力监控,我们需要对嵌入式技术在电力监控系统中的使用进行研究。
二、嵌入式系统
1.嵌入式系统的定义
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。用于实现对其他设备的控制、监视和管理等功能,它通常嵌入在主要设备中运行。
2.嵌入式系统的几个发展阶段
嵌入式系统的出现至今已经有30多年的历史,近几年来,计算机、通信、消费电子的一体化趋势日益明显,嵌入式技术已成为一个研究热点。纵观嵌入式技术的发展过程,大致经历4个阶段:
第一阶段是以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。
第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
第三阶段是以嵌入式操作系统为标志的嵌入式系统。
第四阶段是以Intemet为标志的嵌入式系统。
嵌入式系统技术日益完善,32位微处理器在该系统中占主导地位,嵌人式操作系统已经从简单走向成熟,它与网络、Internet结合日益密切,因而,嵌入式系统应用将日益广泛。
三、软件
系统的正常运行离不开软件的配合, 不同的计算机上各自运行相应的用电监测和管理程序, 完成相应的工作。
1.工控机
工控机的实时监控程序用C 语言和汇编语言编写, 主要功能有:
(1)及时采集现场的数据, 并控制采样的时间,做到不重复, 不丢失;
(2)对原始数据进行计算处理, 生成用电数据源, 供上位机使用;
(3)监测现场的运行情况, 根据信号的类型和大小, 发送相应的报警或控制信号;
(4)完成工控机与工控机, 工控机与上位机的通信。
2.上位机
运行数据库管理程序, 其中嵌入一部分C 语言和×86 汇编语言, 采用中断和查询结合的方式完成数据的处理、通信和控制等功能。上位机可运行数据库和窗口式的界面, 数据的处理功能较强, 可以对大量数据进行更严密的分析和处理, 使操作人员得到更直观及精密加工的数据。其主要功能有:
(1)接受工控机送来的用电数据, 处理后生成用电数据库;
(2)数据库的运行、维护和管理;
(3)向工控机发送各项控制命令, 协调整个系统的运作;
(4)良好的人机接口, 便于人机交流。
目前在微机上常用的DBMS , 由于处理能力强,人机界面好, 使用方便, 因而得到广泛的应用。但它们都不是实时处理系统, 当数据处理对时间有苛刻要求的时候, 例如要显示瞬时功率时, 则往往不能胜任。为了解决这个问题, 我们在运行DBMS 的同时, 在系统中还嵌入许多实时处理程序, 以提高整个系统的实时性能, 做到既利用数据库的强大功能, 又能满足实时信号的处理。经过实际测试和用户一段时间的使用, 效果良好。在使用中未发现丢失数据、反应不灵敏、重复计算等问题, 达到了预期的设计目标。
四、系统的设计和实现
1.系统结构及模块的划分
嵌入式电力监控系统是对已有基于桌面的电力监控组态系统(YSS2000)的一个扩充,原系统由设备开发子系统,工程开发子系统和实时监控子系统系统3部分组成。设备开发子系统和上程开发子系统组成了监控系统的组态开发环境;而实时监控子系统则负责对现场设备的监测和控制。设备开发子系统用于开发设备库,设备库以抽象设备为基本单位存储不同型号的设备信息,设备信息包括设备的基本信息、窗口信息、变量信息和报文信息等;工程开发子系统用于开发具体的工程实例,工程实例足以监控现场为模型组建的物理环境的一种软件模拟,工程中将设备实例化为子站,作为工程组成的基本单位。工程实例可以直接投运于运行监控子系统对现场设备进行实时监控。工程实例信息以XML形式存储在硬盘上。
嵌入式电力监控系统读入工程实例对现场中的设备进行数据监控和报警。嵌入式监控系统分为初始化和运行两个阶段,初始化阶段中系统从文件和数据库中载入用户在工程开发系统中的建立的组态数据,并构建实时数据库结构;而在运行阶段,通过启动定时器和通信线程系统完成显示的更新和数据的实时更新。
系统和现场设备之间的数据交换是双向进行的。一方面系统需要及时的读取现场设备的数据,另一方面系统需要向现场设备发送数据进行功能控制和参数调整。图1中的箭头代表数据的流向。系统町根据数据流划分为表示层、业务逻辑层和通信层。
图1系统数据流示意图
本系统基于软件组件技术,以功能的不同划分不同的组件,组件的功能大小决定了组件的粒度。组件化的设计的系统结构如图2所示:
图2功能体系结构
各组件的功能及设计简要描述如下:
(1)工程信息组件:读取组态的工程实例,把解析好的工程信息保存在内存中供其它组件使用。
(2)子站状态查看组件:查看子站状态,完成子站登陆卸载挂牌摘牌功能。
(3)数据字典组件:实现实时数据和历史数据查看功能。
(4)通信组件:通信组件是整个系统的数据来源,它向下与各个子站通信,收发报文,完成四遥功能;向上为实时数据服务组件提供变量的实时值,以及接收从其他组件发送过来的遥控和遥调指令;
(5)实时数据服务组件:系统数据处理、组织、管理的核心,是监控变量的索引表,检索并提供用户指定的实时数据。考虑到数据的实时性要求,系统采用内存作为数据库存储单元来存储工作数据。
(6)持久数据服务组件:存储变量以及日志,并提供对数据的相關操作。
(7)界面组件:主要提供监控界面、四遥操作,通过实时数据服务获取要监视的数据。
(8)报警组件:用于处理各种报警,以组态好的方式输出报警;
(9)数据发布组件:本组件通过使用各种协议适配器与外部系统进行数据交互。
(10)系统事件查看组件:完成系统日志,历史报警等历史数据的查看。
(11)双机各份组件:为增加系统的可用性和可靠性设计该组件,双机备份组件支持主从模式和互备模式。
2.组件的设计
各组件的接口需要继承下面的公共接口,用伪C++语言描述:
Class ELC_Interface
{
Public:
Virtual bool Start(int ParamsCount,char*Params[])=0;
Virtual bool Stop(void)=0;
Virtual bool Initialize(int ParamsCount,char*Params[])=0;
Virtual bool Destroy(void)=0;
};
各组件必须实现该接口的这四个方法,Start方法用来开启该组件提供的服务,而Stop用来停止提供组件的服务,Initialize用来完成组件能够提供服务前的一些初始化工作,如内存的申请、工程信息的加载,在系统加载组件时调用,Destroy用来释放组件占有的资源,在组件退出系统时调用。
另外一个组件需要实现的接口是:
Class ELC_Factory
{
Public:
Void*CreateInstance(char*ClassName)=0;
};
这是一个用于创建对象的接口,采用工厂模式,使类的实例化延迟到子类。组件除了要实现上述接口外还要实现自己能够对外提供的服务接口。为了保证组件的可重用性,组件的接口一旦确定小再改变。在各个组件内部采用单件模式,使各组件在整个系统的运行过程中只存在一个实例。
五、结语
总的来说,在电力监控系统中应用嵌入式技术,可以极大地提高电力系统的稳定性,并提高其抗干扰能力。
参考文献
[1]彭洲红,马国强,吴金勇,徐健健 嵌入式电力监控系统的研究与实现 [J] 《工业控制计算机》 -2011年4期-
[2]赵丽敏,岳宁 基于ARM9的嵌入式电力监控系统的设计与实现 [J] 《电子技术应用》 ISTIC PKU -2010年4期-
[3]朱君,史浩山,陈丁剑 嵌入式电力监控系统中温备份技术的研究与实现 [J] 《测控技术》 ISTIC PKU -2011年2期-
[4]方海,吴健,张蕴 监控系统的设计与实现 [J] 《微型电脑应用》 ISTIC -2010年12期-