PCM嵌入式软件概要设计V10.docx
- 文档编号:13614209
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:20
- 大小:315.96KB
PCM嵌入式软件概要设计V10.docx
《PCM嵌入式软件概要设计V10.docx》由会员分享,可在线阅读,更多相关《PCM嵌入式软件概要设计V10.docx(20页珍藏版)》请在冰点文库上搜索。
PCM嵌入式软件概要设计V10
分布式能源箱变测控装置规约转换模块项目
软件(系统/概要)设计说明书
项目令号:
承担部门:
微网所
编制:
亮
E-mail/Tel:
审核:
会审:
批准:
国电自动化股份
软件系统/概要设计文档修改记录
日期
版本
作者
修改容
2015.03.23
1.0
亮
初始版本。
描述PCM嵌入式软件的系统概要设计。
注1:
每次更改归档文件(指纳入配置基线的文件)时,需填写此表。
注2:
文件第一次归档时,“更改理由”、“主要更改容”栏写“无”。
摘要
本文对分布式能源箱变测控装置规约转换模块(简称规约转换模块,PCM)的嵌入式软件的总体架构设计进行描述。
PCM配套的配置工具主要牵涉到数据库设计和界面设计,不包含在本文档的叙述围。
PCM以数据采集、转发为核心功能,嵌入式软件在架构设计上采用了数据中心模式。
为保证数据转发效率,采用共享存方式的实时数据库设计。
为减小系统模块的耦合,给系统扩展留有足够空间,系统采用多进程方式独立实现各子功能。
各子功能模块通过进程访问接口(PAI)进行通信,通信方式包括信号量和共享存两种。
为提高软件的兼容性,系统设计了硬件抽象层(HAL)模块和数据库访问接口(DAI)模块,将硬件平台和数据库的操作进行了统一封装。
为提高系统的稳定性,设计了守护进程模块。
守护进程通过信号量握手来监控实时数据库进程、通信规约进程等其他进程的运行状况,可以在被监视的进程发生异常时对其及时修复。
第1篇概述3
1.1围3
1.2设计依据3
1.3术语、定义和缩略语3
1.3.1术语、定义3
1.3.2缩略语4
第2篇系统总体设计4
2.1体系结构概述4
2.2系统体系结构5
2.3标准化设计6
2.3.1模块标准化设计6
2.3.2接口标准化设计6
2.3.3界面格式6
2.3.4编码约定7
2.3.5注释约定7
2.4系统版本规划8
2.5系统处理流程9
2.6子系统说明10
2.6.1实时数据库RDB10
2.6.2历史数据库HDB10
2.6.3通信规约模块11
2.6.4辅助模块11
2.6.5守护进程模块11
2.6.6网关模块12
2.7系统数据结构设计12
2.7.1逻辑结构设计要点12
2.7.2物理结构设计要点12
2.7.3数据与子系统关系12
2.8开发和运行环境12
2.8.1硬件环境12
2.8.2软件环境13
2.8.3外购件分析13
2.9可靠性设计13
2.10可测试性设计13
2.11安全性设计14
2.12出错处理设计14
2.13设计依据与需求跟踪14
第3篇系统运行说明15
3.1配置说明16
3.2系统应用方式16
3.3代码目录说明16
第4篇技术方案总结16
4.1关键技术问题说明17
4.2技术复用说明17
第5篇总体进度计划17
5.1项目分解18
5.2完成时间18
第6篇参考文献19
6.1参考文献19
第1篇概述
1.1围
本文件规定了分布式能源箱变测控装置规约转换模块(简称PCM)的软件总体设计及使用的关键技术等,主要围绕PCM的嵌入式软件进行阐述。
PCM的配置工具并不在本文档中进行说明。
1.2设计依据
GB/T13729-2002远动终端通用技术条件
DL/T630-1997交流采样远动终端技术条件
DL5002-2005地区电网调度自动化设计技术规程
DL5003-2005电力系统调度自动化设计技术规程
DL/T559-2007220kV-500kV电网继电保护装置运行整定规程
DL/T5103-199935kV-110kV无人值班变电所设计规程
DL/T5149-2001220-500kV变电所计算机监控系统设计技术规程
DL/T872-2004小接地电流系统单相接地保护装置
DL/T860.3-2004变电站通信网络和系统第3部分总体要求
DL/T667-1999远动设备及系统第5部分-传输规约第103篇-继电保护设备信息接口配套标准
DL/T634.5101-2002远动设备及系统第5-101部分:
传输规约基本远动任务配套标准
DL/T634.5104-2002远动设备及系统第5-104部分:
传输规约采用标准传输协议子集的IEC60870-5-101网络访问
1.3术语、定义和缩略语
1.3.1术语、定义
本文件应用了以下术语和定义:
配置数据库存储工程配置的数据库,文件形式,由配置工具产生
历史数据库存储历史事件的数据库,文件形式,非易失存储
实时数据库存储实时数据的数据库,处于存中,掉电消失
进程OS进行资源分配和调度的基本单位,可理解为动态的程序。
共享存可被多个进程共享的物理存,进程间共享数据最快的方法
前端规约进程PCM和前端装置之间的通信规约进程
后端规约进程PCM和后台综自系统之间的通信规约进程
守护进程PCM中启动、监视、控制其他进程的进程
配置工具主机端运行的App,负责配置数据库相关的操作
网关进程PCM上运行的网关进程,负责调试功能相关的用户交互
硬件抽象层对PCM底层硬件操作进行封装的库,方便跨平台移植
1.3.2缩略语
本文件应用了以下缩略语:
PCMProtocolConvertModule规约转换模块
HDBHistoryDataBase历史数据库
CDBConfigurationDataBase配置数据库
RDBReal-timeDataBase实时数据库
HALHardwareAbstractLayer硬件抽象层
PAIProcessAccessInterface进程访问接口
DAIDatabaseAccessInterface数据库访问接口
第2篇系统总体设计
2.1体系结构概述
PCM的主要功能是数据采集转发。
在嵌入式软件的系统设计中,主要采用数据中心架构,辅助以适配器方式的接口模块。
PCM中,数据中心角色由RDB扮演,监视方向和控制方向的信息都需要经过RDB的中转,实现通信规约的转换,继而实现系统部的通信。
HAL、PAI和DAI是PCM功能模块中的公用模块,他们的具体接口见相应的设计文档。
他们实际上扮演了针对系统硬件平台、数据库操作、进程间通信的适配器角色。
通过这3个模块,可以将系统的其他功能模块实现功能解耦,提高了系统的可维护性。
具体的体系结构参见图1.
2.2系统体系结构
图1PCM嵌入式软件系统结构示意图
系统具有三个数据库:
RDB、HDB和CDB。
CDB由配置工具离线产生,以文件形式提供了工程项目中的各相关配置;RDB是存形式的数据库,存放的是微网系统中的实时SCADA信息;HDB是文件形式的数据库,存放的是符合特定条件的SCADA历史信息。
HAL封装了PCM底层硬件的驱动操作,为调用者提供了统一、便捷的硬件访问接口,使得其他功能模块与具体的硬件隔离,提高了软件的可移植性。
DAI封装了数据库的驱动操作,使得调用者无需关注具体的SQL、数据库连接等操作,将数据库的表结构与具体应用隔离开来,为开发后期可能出现的数据库移植、表结构更改留下余地。
PAI封装了进程间通信接口,它一方面将复杂的进程间通信封装成易调用的库函数,另一方面也提供了类似于面向对象设计中接口适配器的功能,方便应用的开发和调整。
前端通信规约模块通过HAL与微网系统中其他装置进行通信,获取系统的SCADA信息,并通过PAI接口将其传入RDB保存。
后端通信规约模块通过PAI访问RDB,将系统的SCADA信息以特定规约的数据单元格式进行封装,通过HAL转发至微网系统的后台综自系统。
通用网关接口模块由Web服务器调用,为用户提供数据查询、数据修改、装置控制等PCM相关的调试功能。
守护进程模块负责监控其他进程的运行状态,在出现异常情况时进行恢复处理,保证PCM系统的正常稳定运行。
2.3标准化设计
2.3.1模块标准化设计
由于RDB、HAL、DAI、PAI牵涉到具体的数据库表设计和平台底层硬件操作封装,CGI模块与具体的网页请求绑定,因此上述模块无法进行模块标准化。
但是通信规约模块的数据处理部分可以进行标准化,供其他产品项目使用。
2.3.2接口标准化设计
本系统将对HAL、DAI、PAI的接口进行标准化,为项目后期的平台移植、数据库调整、功能扩展等情况预留兼容性操作空间,以提高同系列产品的研发质量和效率。
2.3.3界面格式
PCM的界面主要有两部分:
配置工具和Web页面。
配置工具负责产生配置数据库,其界面设计需结合配置数据库的设计进行设定,不在本文档说明围。
Web页面主要向用户提供PCM的在线调试功能,其主要页面及各页面涉及的功能见下图。
图2Web系统页面功能设计
2.3.4编码约定
建议在编程开发时采用应用型匈牙利命名法。
2.3.5注释约定
无。
2.4系统版本规划
各子模块的版本应采用x.yy形式。
x表示大版本号,在设计未做大的调整的情况下应保持x不变,仅在模块的设计发生大的变化、接口进行调整、研发阶段改变(α阶段、β阶段)时修改,且以步长为1递增;y表示小版本号,在开发者进行bug修正、算法调整等不影响与其他模块接口的情况下,以步长为1递增。
x初步定为1~3,1表明研发阶段,2表明系统测试阶段,3表示发布阶段。
2.5系统处理流程
图3系统处理流程
图3描述了PCM从上电到运行的大致过程,基本涵盖了图1中的所有功能模块。
由于CGI模块由Web服务器调用,且主要以函数库的形式向Web服务器提供接口,故而未在图中进行描述。
CGI模块具体包含的接口不在本文档的说明围,请参见其设计文档。
2.6子系统说明
2.6.1实时数据库RDB
RDB是PCM中存储实时SCADA信息的功能模块。
在监视方向上,前端通信规约进程将采集的SCADA信息存入RDB,由后端通信规约进程取出后,以另一种规约格式进行封装后转发至综自后台;在控制方向上,则进行上述操作的逆操作。
由于PCM——前端装置和PCM——后台系统之间通常采用不同速率的物理通信方式,RDB实际上还起到同步异步时钟域的作用。
RDB要同时处理多个通信规约进程的访问,它的关键质量属性是性能,特别是数据存取速度。
系统设计方案考虑了以下两点来保证RDB的性能属性:
1.PCM系统采用多进程方式的设计,且RDB牵涉大量数据的交互,因此在设计方案中采用进程间通信技术中速度最快、适合大规模数据交互的共享存技术来作为RDB的实现技术。
2.RDB主要保存系统的点表信息,点表信息在确定后基本不会改变,那么在数据存储的组织上,方案建议RDB采用数组方式而不是链表方式来组织信息的存放。
这样虽然牺牲了动态增添点表的能力,但是保证了信息存取的速度——对RDB中点信息的访问,只要通过特定的算法计算出数组下标即可一步定位到所需数据。
2.6.2历史数据库HDB
HDB记录PCM在运行过程中接收到的特定SCADA信息,例如SOE事件、遥控操作等,这些特殊SCADA信息来自于RDB。
HDB的关键质量属性是安全性,还要考虑对RDB性能的影响。
HDB的安全性主要是指它的容只能由RDB写入,且一旦写入就不可修改删除。
HDB在实现上是以文件形式存在,由HDB管理进程管理。
HDB管理进程应仅在需要写入信息时将HDB文件的属性设为可写,其余时间都设为只读。
由于HDB以文件形式存在,写操作相对写存来说是低速的。
为避免对RDB的性能影响,方案设计建议HDB管理进程配备写缓冲。
在写入历史信息时,RDB将信息推送至写缓冲,由HDB管理进程负责将信息写入文件。
配备写缓冲还可以防止突发历史信息的丢失。
2.6.3通信规约模块
通信规约模块负责采集、转发系统SCADA信息,分为前端通信规约模块和后端通信规约模块。
换句话说,每个通信规约都有client和server两种工作模式。
通信规约模块负责PCM上一个特定物理通信端口的数据通信。
在PCM系统设计中,通信规约模块应负责各种ASDU数据的分析,并实现为保证通信质量所规定的一系列通信保障措施。
工程应用的多样性决定了通信规约模块的关键质量属性是可扩展性。
通信规约模块的可扩展性体现在规约参数的可定制方面。
由于每个规约实例对应的参数都不一样,且规约参数是通过配置工具在CDB中定制的,那么它不包含在本文说明围。
具体请参见CDB设计文档和配置工具设计文档。
2.6.4辅助模块
辅助模块主要指硬件抽象层HAL、数据库访问接口DAI和进程访问接口PAI。
辅助模块的引入主要是为了降低PCM软件与平台硬件、操作系统、数据库系统的耦合,为系统扩展、平台移植预留空间。
辅助模块的关键质量属性是可扩展性和可移植性。
在可扩展性方面,方案建议辅助模块采用C++的多态技术实现,这样可以方便地扩展已有接口,不影响前期使用已有接口的模块;另外,与具体硬件操作、操作系统函数调用、具体数据库表结构的访问也应封装在辅助模块中,使得辅助模块具有接口适配器的作用,这样在更换底层软件、跨平台移植、修改表结构、功能模块并行开发的时候,只需修改相应的辅助模块即可,不会对其他模块产生影响。
2.6.5守护进程模块
守护进程模块负责监视PCM运行中的通信规约进程、RDB管理进程、HDB管理进程等多个进程的运行状态,在异常情况发生时,通过特定处理来保证系统继续正常运行。
守护进程模块是系统可靠性的根基,它的关键质量属性是可靠性。
方案设计中,为保证守护进程的可靠性做了两方面的工作。
一方面,守护进程的功能被压缩到最低,它只负责其他进程的加载、注册和监视,并对异常进程进行统一的kill——restart操作,这就使得代码的实现复杂度大为降低,减少了出错的可能;另一方面,方案设计守护进程由主进程进行监视,一旦发生异常,将采用比kill——restart更高级别的系统重启方式来彻底消除隐患。
2.6.6通用网关接口模块CGI
CGI模块主要负责处理PCM的在线调试功能,它和系统中的其它模块相对独立,由PCM中的Web服务器调用。
从使用角度来看,CGI模块是给Web服务提供特定功能的函数库。
由于PCM的在线调试功能可以修改RDB和CDB中的部分信息,因此CGI模块的关键质量属性是安全性。
为保证CGI模块的安全性,方案设计采用基于角色的访问控制机制。
任何用户在使用网页登录PCM进行相关操作前,都需要验证其身份。
此外,用户的身份信息在CDB中应以密文形式保存。
2.7系统数据结构设计
2.7.1逻辑结构设计要点
数据结构的设计与数据库表结构有关。
具体请参见项目相关的数据库表设计文档及相关功能模块的设计文档。
2.7.2物理结构设计要点
参见项目相关的数据库表设计文档和功能模块设计文档。
2.7.3数据与子系统关系
具体请参见相关功能模块的设计文档。
2.8开发和运行环境
2.8.1硬件环境
开发本软件系统所需的硬件环境为:
Inteli3处理器、2GRAM、80G硬盘。
本软件系统对实际运行环境的最低要求为:
ARM9处理器400MHz、64MROM、64MRAM或同级别工控机。
2.8.2软件环境
●操作系统:
Linux核2.6.32.2;
●数据库系统:
MySql5.0;
●开发工具:
Qt4.8.2、PHP5.5、JavaScriptECMA5;
●编译器:
gcc/g++4.3.3、arm-linux-gcc4.4.3;
●虚拟机:
VMWareWorkstation8.0;
●Web服务器:
Apache2.4
软件可运行于虚拟机系统上,经过PC机的交叉编译后,运行于ARM9平台。
2.8.3外购件分析
暂无。
2.9可靠性设计
软件设计在两方面对可靠性进行了保障。
首先,软件系统被划分为多个功能模块,每个功能模块以单独进程方式运行,通过进程间通信技术进行信息交互。
某个进程在发生异常时,不会影响到其他进程,使得问题能被有效控制隔离。
其次,系统设计了守护进程模块,能够对各个运行的进程进行主动监测。
一旦异常发生,守护进程会采取终止异常进程、重新加载功能模块的方式进行错误恢复。
守护进程本身也被监视,一旦发生异常会采用设备重启的方式来恢复整个PCM系统。
2.10可测试性设计
在测试方面建议采用自底向上的方法,这样能够尽可能多地发现设计和实现上的错误。
首先,每个功能模块(类/库函数)都需要进行单元测试。
单元测试包括库函数使用的子函数、类包含的成员函数,主要关注函数的输入输出、异常处理是否在落在设计围之。
在子函数、成员函数测试通过的基础上,完成对整个功能模块(类/库函数)功能的测试。
其次,在单元测试的基础上,对多个功能模块进行合成测试。
合成测试主要测试模块之间接口的正确性和完备性。
再次,在合成测试的基础上,对所有功能模块进行整合,进行系统测试。
系统测试主要测试软件的功能是否完备,是否满足软件需求的可追踪性。
系统测试需要在真实的物理平台上运行软件系统。
2.11安全性设计
PCM运行于相对封闭的电力系统网络环境中,其安全性主要体现在加密、安全审计和访问控制上。
加密方面,用户信息在CDB中不是以明文形式存放,而是用户信息的密文形式。
在需要的时候,用户输入口令,由PCM进程进行验算核对。
在访问控制方面,PCM软件采用基于角色的访问控制策略,用户使用浏览器访问PCM时,需要提供身份信息,并且在通过Web页面进行特定操作,例如重启设备、人工置数、修改点表信息时,都会被网关进程进行权限验证。
安全审计方面,PCM的HDB模块会有一些关键操作的记录,例如遥控操作、人工置数、设备重启等,且这些记录对用户是只读的,能够在需要的时候提供审计证据。
2.12出错处理设计
模块的调试信息输出应受到统一控制。
在系统软件运行于调试版本时,对于一般的逻辑错误,模块将出错信息输出至PCM系统控制台(Linux的console),用户通过SSH工具、Telnet工具可以访问这些调试信息。
对于严重的进程异常,由守护进程实行kill——restart操作完成错误恢复。
2.13设计依据与需求跟踪
需求说明书中的4.1.9和4.1.10是配置工具相关,不属于本文档说明围。
需求说明书对应章节
需求编号及名称
总体设计对应章节
4.1.1
SR-PCMES-F-0010PCMES的上电初始化
2.5
4.1.2
SR-PCMES-F-0020SCADA信息采集转发
2.1、2.5、2.6.3
4.1.3
SR-PCMES-F-0030日志记录及查看
2.1、2.3.3、2.6.2
4.1.4
SR-PCMES-F-0040PCM出厂测试
2.3.3
4.1.5
SR-PCMES-F-0050基于角色的访问控制机制
2.3.3、2.6.6、2.11
4.1.6
SR-PCMES-F-0060灾难自恢复
2.2、2.5、2.6.5、2.9、2.12
4.1.7
SR-PCMES-F-0070实时数据库访问管理
2.2、2.5、2.6.1、2.6.4
4.1.8
SR-PCMES-F-0080在线调试功能
2.2、2.3.3、2.6.6
第3篇系统运行说明
3.1配置说明
PCM的配置定制具有高度灵活性,与具体的工程应用有关。
PCM在运行前,首先应当由配置工具生成CDB,描述采用的通信规约、系统设备、通道参数等,并由配置工具将CDB及相关的规约库模块下载至PCM。
配置工具相关描述不在本文档围,请参见相关设计文档。
PCM运行后,由守护进程加载各通信规约进程,并按照CDB中的描述进行通信端口初始化、通信规约定制等操作。
3.2系统应用方式
PCM可应用到需要进行Modbus、IEC61850-5-103等电力系统通信规约转换的工程应用项目中。
配置工程师需要通过配置工具提供PCM所需的CDB,CDB中应包含系统的装置、通道、点表等工程相关信息。
第4篇技术方案总结
4.1关键技术问题说明
系统设计和开发过程中,需要掌握如下关键技术:
1)Linux进程间通信技术,包括信号量、Socket和共享存;
2)网络通信,Socket编程,Linux下的串口、网口驱动;
3)关系数据库设计及访问、XML技术;
4)Web服务器相关配置,JavaScript、PHP;
5)C++、Qt编程;
6)嵌入式Linux的移植、定制。
关系数据库的设计是项目的关键所在,需要关注表结构的设计是否涵盖所有系统需求。
若开发至后期进行表结构调整,将会对项目质量产生较大影响。
在系统设计上,尽管使用DAI模块封装具体的表结构访问操作,可以减小这种风险发生时的影响,还是需要在设计阶段对数据库进行较多关注。
Linux进程间通信技术是各功能模块配合运行的关键。
RDB模块主要采用共享存技术,守护进程模块主要采用信号量技术。
Qt编程需要了解信号——槽机制,并熟悉Qt封装的相关库函数的使用;
Web服务器方面需要熟悉Apache的配置,AJAX异步通信技术和JavaScript的页面应用。
4.2技术复用说明
无。
第5篇总体进度计划
5.1项目分解
1.数据库表结构设计。
先决条件:
无
2.配置工具开发测试,先决条件:
1
3.嵌入式软件开发
1)主程序。
先决条件:
无
2)Modbus通信规约模块。
先决条件:
1、3-7)、3-9)
3)IEC60870-5-103通信规约模块。
先决条件:
1、3-7)、3-9)
4)实时数据库管理RDB模块。
先决条件:
1
5)历史数据库管理HDB模块。
先决条件:
1、3-7)
6)守护进程模块。
先决条件:
1。
7)硬件抽象层模块HAL。
先决条件:
5。
8)数据库访问接口DAI。
先决条件:
1、5。
9)进程间通信访问接口PAI。
先决条件:
3-4)、3-6)
4.Web服务
1)Web页面。
先决条件:
无。
2)Web网关进程。
先决条件:
3-8)、3-9)、4-1)
5.硬件平台定制、第三方工具安装移植、启动脚本编写。
先决条件:
硬件平台确定或VMWare+Linux安装完成。
上述项目分解中,3-7)、3-8)、3-9)具体需要哪些接口可以由相关模块在开发过程中提出,并开会讨论确定。
由于CDB需要通过配置工具产生,所以配置工具的开发会对嵌入式软件的某些功能模块开发产生影响。
本文档将配置工具开发列入项目任务。
项目任务的开发顺序见上述先决条件。
5.2完成时间
1.数据库表结构设计:
2周/人。
2.配置工具开发测试:
3周/人。
3.嵌入式软件开发
1)主程序:
1天/人。
2)Modbus通信规约模块:
4周/人。
3)IEC60870-5-103通信规约模块:
6周/人
4)实时数据库管理RDB模块:
3周/人
5)历史数据库管理HDB模块:
2周/人
6)守护进程模块:
3天/人
7)硬件抽象层模块HAL:
接口随项目需要添加,预计1周/人
8)数据库访问接口DAI:
接口随项目需要添加。
预计1周
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCM 嵌入式 软件 概要 设计 V10