(一)进入“历程管理”
“历程管理” 应用有三个菜单版块,分别是:历程项目、历程记录、和导出记录。
历程跟其他应用一样,也是通过创建历程项目,来捕捉历程,包括历程的开始、历程的过程以及历程的结束。
打开创建历程项目看一下:
通过这个画面可以看到,除了基本的历程项目的一般属性外,历程项目的核心还是在历程项目的脚本上。
和其他的应用一样,历程管理应用的脚本,也提供了交互式界面化和脚本编辑两种方式。
我们添加一个 “历程项”,从这里可以看到其中的逻辑关联关系:
- 历程管理(应用),是管理历程项目的;
- 历程项目,由一个或多个 “历程项”构成;
- 每个历程项,都有一个编码、中文名称和英文名称;
- 每个历程项的起始标志,是一个 “事件标识”;
- 每个历程项的结束标志,也是一个 “事件标识”;
- 每个历程项,可以选择是否启动 “防抖动” 功能;
- 每个历程项,可以选择一个附加输出,即某FV的某个统计方法的在历程持续期间的统计计算结果。
我们可以用一张图来表示历程:
事件 A 和 B,是历程开始和结束的标志,这里说的 “事件”,是对象的事件。也就是说,对象的映射表里面需要有这个事件的定义。
(二)规划历程项目
要用好历程,首先就要规划好历程。我们希望用历程来做什么呢?是希望掌握什么信息?还是希望解决什么问题?这些是需要弄清楚的问题。
回到佳华电站,电站工程师们最关心的是气缸缸温超限的问题:
瓦斯发电机组有 A/B 两组气缸,A/B 各组有8个缸,共16个。
机组运行正常的气缸温度,应该是 635°C~660°C 的范围。
只要其中任何一个气缸温度超过660°C,机组就出现缸温超高限报警,也就是 “高温报警” ;其中任何一个气缸温度低于 635°C,机组就会出现缸温超低限报警,也就是 “低温报警”。
缸温超限(气缸温度低于635°C 或超过660°C)的因素很多,而且机理也非常复杂,但主要的原因是由于空燃比与机组运行状态的不匹配。简单地说,就是空气、燃气的比例不合适,或者比例虽然合适,但与机组当前的运行情况不一致。
一般来说,只要机组出现缸温超限报警,无论是高温报警还是低温报警,这个时候就需要采取一些措施让缸温恢复正常。如果缸温超限的时间过长,则会导致机组工作异常,比如发电不正常,严重的还会导致机组停机,甚至气缸损坏(俗称烧缸)情况的发生。尤其是当出现多个气缸同时出现缸温超限的情况,一旦不能尽快恢复缸温,对机组来说就是一个很大的风险。
因此,缸温超限的过程是非常值得去研究的。机组A/B缸温超限报警,从报警开始到报警结束,这个期间就构成一个“缸温超限报警历程”。
我们希望研究的问题有几个:
- “缸温超高限” 历程,也就是 “高温报警” 历程的持续时间,即历程的时长;
- “缸温超高限” 历程持续期间,缸温超高限的气缸个数;
- “缸温超低限” 历程,也就是 “低温报警” 历程的持续时间,即历程的时长;
- “缸温超低限” 历程持续期间,缸温超低限的气缸个数;
- “高温报警” 历程持续期间,机组有功功率的离散程度,也就是标准差是多少;
- “低温报警” 历程持续期间,机组有功功率的离散程度,也就是标准差是多少;
- “高温报警” 历程持续期间,空燃比与机组匹配情况如何;
- “低温报警” 历程持续期间,空燃比与机组匹配情况如何。
这些研究题目非常重要,也只有在 MixIOT 平台上,利用 “历程管理” 应用,上述问题才有可能得以研究。
首先,需要来定义 “缸温超限”,无论是超高限,还是超低限。
这是我们之前就定义好的机组对象,该对象的映射表是这样的:
为了定义历程,需要定义历程的起始事件和结束事件,而原先的机组对象并没有这些事件,所以这个对象并不适用于历程的分析研究。
我们有两个方法来解决这个问题:一个是修改原先的机组对象(映射表);另一个是重新创建一个历程研究的对象。
绝大多数使用者,都会采取前者,也就是修改原有定义好的机组对象。但必须指出,这个方法虽然简单,却并非是一个最好的方法,我们并不鼓励大家这样做。
在此,我们明确建议重新创建一个对象,尽管这个对象与之前的对象有很多FV是重叠的。事实上,这是一个鼓励使用者养成的习惯,遇到新的需求新的问题,不是去修改之前创建好的对象,而是重新创建需要的对象。
接下来,就按创建新的对象的方式进行。
首先,根据前面说的8个要研究的问题,这个对象有这些FV是我们需要的(用红色标注出来):
除此以外,还需要补充几个其他的 FV。
首先考虑,用什么方法来定义超限。其实有一个好方法,就是这样来定义:
LA1,如果A1缸温超低限,LA1=1,否则,LA1=0;
HA1,如果A1缸温超高限,HA1=1,否则,HA1=0。
LB1,如果B1缸温超低限,LB1=1,否则,LB1=0;
HB1,如果B1缸温超高限,HB1=1,否则,HB1=0。
LA2,如果A2缸温超低限,LA2=1,否则,LA2=0;
HA2,如果A2缸温超高限,HA2=1,否则,HA2=0。
LB2,如果B2缸温超低限,LB2=1,否则,LB2=0;
HB2,如果B2缸温超高限,HB2=1,否则,HB2=0。
那么,他们之间的计算关系就很明确了:
LA=LA1+LA2+LA3+LA4+LA5+LA6+LA7+LA8;
HA=HA1+HA2+HA3+HA4+HA5+HA6+HA7+HA8;
LB=LB1+LB2+LB3+LB4+LB5+LB6+LB7+LB8;
HB=HB1+HB2+HA3+HA4+HA5+HA6+HA7+HA8;
LA/LB,分别代表A组/B组气缸超低限的个数;
HA/HB,分别代表A组/B组气缸超高限的个数。
也就是说,如果 LA/LB,HA/HB 都正常,那么缸温就是正常的;如果 LA=2,则表示此时A组气缸有2个缸温超低限;如果 HB=3,则表示此时B组气缸有3个缸温超高限。
我们可以进一步用:
L=LA+LB;
H=HA+HB。
那么可以:
用 L=1 作为气缸缸温超低限历程(低温报警历程)的起始,而用 L=0 作为低温报警历程的结束;
同理,用 H=1 作为气缸缸温超高限历程(高温报警历程)的起始,而用 H=0 作为高温报警历程的结束。
这个映射表可以这样来写,分成几个部分。
第一部分,这是与原有机组对象一致的对象,所以沿用原有的FV名字:
第二部分,这是跟缸温超低限相关的部分:
第三部分,跟缸温超高限相关部分:
第四部分,跟事件相关部分:
整个映射表脚本是:
与原来机组对象一致
LA1~LA8,计算A组气缸单个气缸超低限
LB1~LB8,计算B组气缸单个气缸超低限
LA / LB L
HA1~HA8,计算A组气缸单个气缸超高限
HB1~HB8 计算B组气缸单个气缸超高限
HA / HB H
事件定义
历程起始结束
这个映射表,前面写了这么多,其实就是为了最后的4个事件,因为我们需要用这4个事件去构造历程。实际上,这个脚本是可以简化的:
我们就命名为 “缸温超限历程” 映射表。
回到 “对象管理”,创建这个历程对象。
创建映射表:
确定后,保存这个映射表:
然后还要去创建对象。
添加数据终端:
确定保存这个对象:
这样,佳华1#机组作为缸温超限历程研究对象,就创建完成了。
这个研究是要针对SERG集团旗下所有电站和所有机组的,所以,还需要为所有的机组创建历程研究对象。佳华电站的机组,都可以使用相同的映射表:
我们完成了佳华所有机组的历程研究对象的创建,其他的对象也是一样的。
创建好了这些对象,再回到“历程管理”应用。
(三)创建历程项目
有了缸温超限历程的研究对象,就可以开始创建历程项目了。进入 “历程项目” 版块,来创建历程对象:
先为佳华电站的1#机组历程研究对象创建历程项目,这个历程的名字就用 “佳华1#机组缸温超限”。
这里可能有个疑问,超限实际上有两个,“超低限(低温报警)历程”和“超高限(高温报警)历程”。
那为什么不再细分了呢?实际上,这是历程应用的一个特点,我们可以把超低限和超高限两种不同的历程都放在同一个历程项目里面。
历程项目名称是“佳华机组缸温超限”,别名用 Quo-JH。
在对象选择里面,把佳华5台机组的对象也勾选好。
接下来就是重头戏,我们需要创建两个历程项,分别是“缸温超低限(低温报警)历程” 和“缸温 超高限(高温报警)历程”。这就是为什么在历程类型里面,要勾选 “报警” 类型。
先创建一个 “缸温超低限(低温报警)” 的历程项:
这个 “气缸低温报警” 历程项:
- 历程项编码,Quo-L;
- 中文名称,“气缸低 “Quo_L_Begins” 事件,这是在对象的映射表里面定义了的;
- 历程结束的标志,是 “Quo_L_End” 事件,这也是在对象的映射表里面定义了的;
- 防抖动,实际上是指最短历程时长限制。也就是说,在某种情况下,即便出现了历程起始事件(Quo L _Begins)和历程结束事件(QuoL_Ends),但这个过程的时长很短,没有到指定的 “防抖动” 时长,则这个过程将不被记录为一个历程;
- 附加历程统计输出,是可以在每个历程项里面,指定一个 FV 以及某个统计方法,伴随这个历程的结果一并输出。这个FV(S29)是机组有功功率,统计方法是标准差。这正是我们需要获得的计算结果。
同理,我们可以创建一个 “气缸高温报警” 的历程项:
确定,保存这个历程项目:
创建完成 “佳华机组缸温超限历程” 项目后,随时可以启动这个项目:
历程项目启动后,就开始正常运行。
一旦我们设定的历程研究对象的数据出现符合历程起始条件的事件,也就是一旦该对象的数据里面有 “Quo_L_Begins” 或者 “Quo_H_Begins” 的时候,“历程管理” 应用就会自动开始捕捉这个历程,这时历程的状态是 “Open(开放)”,直到这些对象数据里面出现符合历程结束条件的事件(也就是 “Quo_L_Ends” 或 “Quo_H_Ends”)的时候,这个历程的状态就变成了 “Close(关闭)”。
我们可以在 “历程记录” 菜单版块里面来查询历程的结果。
可以查询 “持续历程”:
这是在查询的时候,状态还是 Open(开放)的历程,也就是这些历程还在持续,并未结束。
在这个视图列表中可以看到,正在持续的历程项都有哪些,对应的对象是哪一个。列表中的 “开始时间”,是这个历程开始的时间,也就是出现符合该历程项所定义的起始条件的那一个时刻。
“持续时长” 是该历程项从开始到查询的时刻的时长。
最后一项 “统计结果”,就是该历程项的附加统计输出,也就是 “S29(机组有功功率)在该历程开始到查询时刻的标准差”,这是在创建历程项的时候配置的。
需要说明的是,这个 “统计结果” 未必是最终的结果,因为这个历程还在持续。
除了查询未结束状态的历程,还可以查询已经完结的历程:
这些历程的状态都是 Close(关闭),说明这些都是曾经的历程,在查询的时候,这些历程已经结束。
列表中,除了 “历程项的编码”、“名称”、“类型”、“状态” 等这些属性外,还有历程的开始时间以及该历程的时长。
最后一列,就是我们所配置的附加输出的统计结果。这是定格在该历程完结后的,在整个历程 持续过程中的统计结果,因为这个历程已经尘埃落定,所以这个结果是不会再改变的。
如果需要把历程数据拿出去研究,可以把数据导出。
点击右上角的 “导出”,我们可以选择某个历程项目、历程项目中的某个或某些历程项编码、某些对象以及某个时间段的历程数据结果,保存到指定的文件名。
导出的结果,可以在 “导出记录” 里面看到:
可以下载已经导出的文件,拿回去慢慢分析研究。