4.2 基础数据模型
4.2.1 基础数据模型
使用和设计是工业产品的一体两面,作为设计者,我们需要从用户需求出发,穿越过去,然后构建出产品的骨架。本小节,我会带着大家从用户的需求出发,构建出产品的基础数据模型。
我们的抓手是两款保护产品:用电端过流保护和变压器差动保护。用电端过流保护适用于用户端电气设备保护,其工作原理类似保险丝,如果电流大于特定值且持续超过特定时间,发出开出命令并跳开断路器。
变压器为多侧电力设备,一般为两侧或三侧,用于实现不同等级电压的转换,如110kV转为10kV。变压器差动保护工作原理是所有侧的电流相加理论上为0(实际运行中有一定的不平衡电流),因此如果各侧电流之和大于允许不平衡电流且保持特定时间,变压器保护会发出开出命令跳开断路器各侧断路器,以保护昂贵的变压器设备。
这两款产品工作原理中都有相似的描述:电流值大于设定值且保持一段时间,其中电流值被称为模拟量输入值,常用AI表示。类似的,电压、功率、相角等都是模拟量输入值,AI一般为浮点数类型,通过采样或计算获得。
外部加入0.5A的电流,我们期望对应的电流模拟量也为0.5。但计算机内部实现时,电流值是通过AD采样回路获取的,如果为12位采样,可能0.5A对应300这样的一个整数。如何将300换算成0.5呢,就需要一个转换系数。
因为批量生产的硬件存在细微差异,因此设备出厂前需要进行检验,其中设定转换系数就是很重要的一环。系数因为依赖硬件特性,一般在出厂时设定,后期很少修改。
微机保护需要监视它所保护的各种电器设备运行工况,如断路器的分合状态等。这类电气量是布尔变量,因此习惯性称之为数字量输入,常用DI表示。
过流保护检测到电力系统发生过流时,首先驱动自己的继电器出口,然后通过外部回路驱动断路器断开。继电器出口是布尔变量,因此习惯称之为数字量输出、开入量输出或开出,常用DO表示。
类似于DI和DO,和AI对应的就是AO了。模拟量输出变量最常用于PLC控制回路,如依据锅炉反应温度控制油量阀等。在微机保护产品中,AO变量常用于调解变压器温度水位等。
AI、DI、DO、AO合在一起,构成了工业PLC控制的基础组件。
◇◇◇
再回顾过流保护产品的工作原理,电流值大于特定值且保持一段时间,其中这些电流特定值和时间被称之为定值。定值是由用户依据现场运行工况计算后输入的,因此需要保存在设备中,掉电不能丢失。
定值有一个很重要的特性,必须同时写入。如过流保护中的电流和时间定值,如果一个一个依次写入,容易发生保护误动,这是绝对不允许的。定值写入过程中需要短暂的闭锁保护出口,会影响保护实时性,也需要充分考虑。后续我们会探讨如何构建定值数据模型和接口。
在电力系统运行过程中,保护动作跳闸是非常重要的事情,需要运行人员尽快分析跳闸原因,排除异常后继续恢复运行。为了便于运行人员分析问题,微机保护跳闸后,会产生一条报告信息,详细记录跳闸的时间、原因,跳闸时的电气量大小等。
动作报告信息一般构建成环形缓冲区,并掉电保持。类似于动作报告,用户操作记录、开入变位记录也是构建成环形缓冲区,并掉电保持。他们除了单条信息的描述结构存在差异外,组织方式完全一致,本书后续将其统称为报告类数据结构。
动作报告仅能记录简单动作原因,为了分析一些复杂的电力系统故障,需要抓取故障发生时刻前后一段时间的采样数据,在电力行业这类数据模型习惯性称之为扰动数据。对扰动数据的分析需要专业人员使用专业工具,堪称现场故障分析的核武器,在各行各业中经常有类似的策略。
微机保护装置是一款设备,为了便于用户操作巡检,设备面板上有液晶、按键和led等基础元素。led一般有两种颜色,红色和绿色,红色表示各种保护动作信号,绿色表示运行或报警信号。绿色led是实时显示的,发生报警时点亮,报警解除后熄灭。为了便于用户在跳闸后分析问题,红色led一旦点亮就要求保持,直到用户分析完故障原因并触发信号复归按钮后才熄灭。
目前工业设备组网已经是基本需求了,这就要求微机保护设备具备各种通讯规约功能,而基于通讯规约也会衍生出特定的逻辑功能需求。AI、DI、AO增加通讯功能后成为遥测、遥信和遥调功能。电力行业对远程控制断路器的准确度要求很高,误操作不仅会导致异常停电,也会给运维人员带来生命危险。为了基于通讯规约构建100%要求的远程断路器控制操作,电力行业衍生出“预置——反较——执行”的遥控操作。遥测、遥信、遥控、遥调合成四遥。
如上,AI、AO、DI、DO、系数、报告、定值、扰动数据、led、信号复归和四遥,构成了微机保护装置最基本的数据模型。
4.2.2 高级数据模型
除了基础数据模型,可能还会有一些基于基础数据模型的衍生模型。这类数据模型被我们称之为高级数据模型,本节我们继续从用户的需求出发,去构建微机保护装置的高级数据模型。
- 历史数据模型
AI数据是实时变化的,为了分析一段时间内的设备运行工况,如地铁机车一天的工作状态,需要以固定时间间隔对AI进行采样记录,这称之为历史数据模型。
历史数据模型一般对AI和DI进行采样记录。因为记录时间长,数据量比较大,一般存储在外部flash中。
- 趋势分析
大型电机在启动过程中,一开始启动电流会比较高,然后会慢慢的降到额定运行状态,如下图所示。
为了设定恰当的过流定值,需要抓取电机启动过程的详细运行工况。用历史数据模型时间间隔太大,用扰动数据模型时间太短,为此我们构建了一种新的数据模型:趋势分析模型。
趋势分析模型首先需要一个触发条件,发生触发条件后,以适当的时间间隔记录AI电气量。趋势分析模型一般也是仅对AI和DI采样,数据量也比较大,需要存储在外部flash中。
- 遥测越限
AI值时时刻刻在发生变化,处于正常范围内不需要关心,但一旦越过了正常范围就需要运维人员参与了。为了表达AI值超出合理范围这个状态信息,我们构建了遥测越限数据模型。
AI越限值一般有四个边界,上越限、上上越限、下越限、下下越限。因为并非所有的AI越限都用足这四个边界,因此需要额外增加四个使能标志。
AI越限相当于将AI数据模型转化为DI和报告数据模型,其组织结构同报告类数据模型。
- 累加量和电度
累加量模型中最典型的值就是电度了,我们知道对有功功率进行累加就是有功电度,对无功功率进行累加就是无功电度。
累加操作易持续放大误差,为了减少误差,需要在AI值精度和时间精度两方面下功夫。提升AI精度的最佳策略是算数平均,提升时间精度侧重于充分考虑累积误差。
基于基本电度模型,还可以构建出分时电度和电度冻结两个数据模型。分时电度数据模型是按照尖、峰、平、谷四种运行工况分别统计电度,不同情况下电费不同,有助于引导大家错峰用电。电度冻结用于记录特定时刻的电度值,如记录每天零点零时零分的电度值,就可以比较每天的用电量了。
累加量需要增加调整和清零接口。
- 保护元件
前文我们提及,微机保护的一个特征是可用一套硬件实现很多种保护逻辑。在产品研发中,为了让设备具有更大的实用性,我们经常在一款产品中集成很多的保护逻辑,现场按照用户的需求选择投入。这样的策略带来了新问题,就是产品的定值数量非常多,甚至高达到几百个,给用户使用带来复杂度。
为了解决这个问题,一种策略是将定值按保护逻辑进行分组,未投入的保护逻辑其定值干脆对用户不可见。
保护逻辑的另外一层价值是软件模块复用,如某保护逻辑需要断路器状态、Ia电流作为输入条件,直接硬编码会导致代码因缺乏灵活性而难以复用。一种策略是构建虚拟输入节点,然后在保护逻辑投入时才关联到真实电气量上。
此时一个新的抽象组合出现了,它包含输入、定值、输出三类虚拟节点,能够完成一段独立的保护判断逻辑,我们经常将这一抽象概念称之为保护元件。
- 计数器
计数器有点类似于遥测的累加量,不过是对事件进行累加。计数器一般有两个DI输入,一个用于计数,一个用于复位。计数一般有三种模式:上升沿计数、下降沿计数和跳变计数。
计数器常用于记录某一件事件发生的次数,因此需要掉电保持。对外可以通过遥测方式通讯远传。
4.2.3 数据字典
前文阐述编程规范时,提到需要构建数据字典,而依据用户需求提炼数据模型,恰好是构建数据字典的起点。
我们团队的数据字典构建如下:
序号 | 名称 | 字典 | 备注 |
---|---|---|---|
1 | 数字量输入 | di,DI | 全小写或全大写,不允许混杂 |
2 | 模拟量输入 | ai,AI | |
3 | 数字量输出 | do,DO | |
4 | 模拟量输出 | ao,AO | |
5 | 系数 | coeff | |
6 | 报告类数据 | report | |
7 | 保护动作报告 | tripReport | trip在前,防止“名词+动词”命名冲突 |
8 | 保护告警报告 | alarmReport | alarm在前,防止“名词+动词”命名冲突 |
9 | 遥信变位 | soe,SOE | SOE是顺序事件记录的缩写,全大写或全小写,不允许混杂。 |
10 | 操作事项 | operaReport | |
11 | 定值 | setting | |
12 | 扰动数据 | disturb | disturbance一词的缩写。 |
13 | 信号复归 | signalRst | Rst为reset的缩写 |
14 | 遥控 | YK | 汉语拼音yao kong的缩写,行业习惯用法。仅允许大写。 |
15 | 遥调 | YT | 汉语拼音yao tiao的缩写,行业习惯用法。仅允许大写。 |
15 | 历史数据模型 | history | |
16 | 趋势分析 | trend | |
17 | 遥测越限 | overLimit | |
18 | 累加量和电度 | acc | accumulation一次的缩写 |
19 | 分时电度 | timeAcc | acc在后,防止同“名词+动词”命名冲突 |
20 | 电度冻结 | frozenAcc | |
21 | 保护元件 | element | |
22 | 计数器 | counter |
特点如下:
- 用到一些大家约定俗称的汉语拼音缩写,如四遥。
- 较短的缩写不允许大小写混杂,主要是AI,DI之类。为了满足匈牙利命名规范,如果起始字符是小写,后续也是小写,如果起始字符大写,后续也是大写。
- 尽量不要使用相同的词根,如果难以避免,差异部分置前,如acc和frozenAcc,这样在后期采用“名称+动词”命名规范定义函数时,不易冲突。否则我们会将accFrozen当做acc类的一个类成员函数。
这个数据字典我们团队已使用较长历史时间了,限于专业英语水平和历史原因,可能很多词根选择的并不恰当。但可以保证一点,如果熟悉了上述词根,书写、阅读、审核代码时,能省去不少麻烦。
——————————————
返回目录
我是小马儿,一个渴望良知与灵魂的嵌入式软件工程师,欢迎您的陪伴与同行,如需最新版PDF电子书,或期望深入交流,可加我个人微信nzn_xiaomaer,需备注“异维”二字。
4.2 基础数据模型相关推荐
- 阿里巴巴大数据实践—阿里巴巴的数据模型实践综述
来源:数智化转型俱乐部 阿里巴巴集团很早就已经把大数据作为其战略目标实施,而且其各个业务也非常依赖数据支撑运营,那么阿里巴巴究竟采取何种方法构建自己的数据仓库模型呢?阿里巴巴的数据仓库模型建设经历了多 ...
- 重温《数据库系统概论》【第一篇 基础篇】【第1章 绪论】
时隔两年,重温数据库,再次学习人大教授王珊.萨师煊的<数据库系统概论>,别有一番滋味在心头,或许这就是软件"不归路"上的感悟吧,又一次打开课本,记忆犹新,在已经学习过大 ...
- 阿里大数据之路:数据模型篇大总结(收藏)
第1章 大数据领域建模综 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战. 数据模型强调从业务.数据存取和使用角度合理存储数据. 数据模型方法,以便在性能.成本.效率之间取得最 ...
- 阿里数据仓库-数据模型建设方法总结(全)
来源:大数据与机器学习文摘 五分钟学大数据 本文约20000字,建议阅读25分钟 本文介绍了大数据领域建模的方法. 一.大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面 ...
- 网络与信息安全基础知识--网络安全
说在前面: 本系列文章专注于软考备考复习内容梳理,文章内容是对教材中知识点和考点的提炼,备考过程中可以有针对的进行复习,减少阅读量,有的放矢. 导航目录: 一.网络安全概述 二.网络的信息安全 1.信 ...
- 阿里数据模型建设方法总结
一.大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战. 数据模型强调从业务.数据存取和使用角度合理存储数据. 数据模型方法,以便在性能.成本.效率之间取得最佳 ...
- 大学计算机技术知识大全,大学计算机全章节重点基础知识归纳大全.doc
大学计算机全章节重点基础知识归纳大全 PAGE \* MERGEFORMAT 18 大学计算机基础重点归纳 第一章:计算机概论 19646年,第一台计算机,ENIAC 计算机分类(6):巨型,小巨型, ...
- 《大数据之路:阿里巴巴大数据实践》第二篇 数据模型篇-读书笔记
目录 8.大数据领域建模综述 8.1 为什么需要数据建模 8.2 关系数据库系统和数据仓库 8.3 从OLTP和OLAP系统的区别看模型方法论的选择 8.4 典型的数据仓库建模方法论 8.4.1 ER ...
- 《语义网基础教程》学习笔记(二)
二.RDF概述(參考http://zh.transwiki.org/cn/rdfprimer.htm) 1.本体: 一个本体是一个概念体系(conceptualization)的显式的形式化规范. 一 ...
最新文章
- MySQL基础篇:用户和权限管理
- 什么是Java Marker Interface(标记接口) 1
- 替罪羊树—BZOJ3224: Tyvj 1728 普通平衡树
- 客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
- [EXCEL高级应用与数据分析].沈浩.扫描版 百度云盘
- PR转场FilmImpact 蓝屏 error699966
- 联想锁屏壁纸缓存文件夹目录
- 到底还有没有月薪3万以下的程序员?程序员工资真的这么高?
- 微软放弃的游戏被他们复活了:Windows经典「三维弹球」现实版,CAD建模、Arduino编程、数控机床打造,硬核致敬童年...
- java生成图章到word_JAVA不使用POI给Word文档添加水印
- 第一节 函数与极限——映射与函数
- 高通骁龙处理器最新的排名
- GL(m)的拓扑结构,泡利矩阵暂记
- 解决谷歌翻译不能使用的问题(2023.01.14)
- 服务器修改上传图片大小限制,修改IIS7默认上传大小限制
- buuoj Pwn writeup 106-110
- Debug究竟是什么意思?
- 熟练使用计算机进行备课,教师信息技术能力提升工程总结
- 主机远程虚拟机linux,如何使用SSH来远程连接Linux虚拟主机?
- flash 与分解:分解百度MP3图片墙