[发明专利]利用表达式解析实现工业现场底层设备监测管理的方法有效
申请号: | 201310005335.8 | 申请日: | 2013-01-07 |
公开(公告)号: | CN103914027A | 公开(公告)日: | 2014-07-09 |
发明(设计)人: | 谢京雷;孔晓阳;王剑;沈春锋;代真虎 | 申请(专利权)人: | 上海宝信软件股份有限公司 |
主分类号: | G05B19/418 | 分类号: | G05B19/418 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中 |
地址: | 201203 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 表达式 解析 实现 工业 现场 底层 设备 监测 管理 方法 | ||
技术领域
本发明涉及计算机技术领域,具体地,涉及一种利用表达式解析实现工业现场底层设备监测管理的方法。
背景技术
工业现场的底层设备监测管理中,统计系统是实时数据库系统中数据统计分析子系统的核心子模块。通常情况下,统计系统从底层设备采集所需的数据,然后根据用户(一般是现场底层设备管理人员)配置的表达式进行解析并进行计算,把计算结果存储起来做进一步的统计分析,最终的统计分析结果可以用来辅助现场设备管理人员实施、或者直接对底层设备进行相应的控制操作。从这一过程可见,对用户配置的表达式的“解析”是关键一步,而实现表达式解析的算法和实现时使用的数据结构则制约着统计系统的运行性能。
现有表达式解析的方法,主要包括以下步骤:
第一步:检验用户配置的表达式的合法性
通常情况下,用户配置的表达式由“操作符”和“操作数”组成。对于统计系统解析的表达式而言,操作数可以是监测单元(所谓监测单元,即指一个底层设备采集点,例如:管道A的流量)的名称(例如:PIPEA-FLOW-A),也可以是用于辅助计算的立即数(例如:10)。在表达式合法性检验的过程中,首先要从待检验表达式中识别出操作符和操作数,然后再检验该表达式是否符合规定。
在现有技术中,表达式中的操作符均是预先定义的运算符,这些操作符很容易被统计系统识别,而表达式中包含的操作数则是多种多样的,不容易被识别。因此,在表达式的解析过程中,统计系统通常将表达式中的操作符当作操作数之间的分隔符来识别表达式所包含的操作数。
例如,用户配置的表达式是(Tag1+Tag2)*Tag3,其中包括的操作符有:+,*,(,),包含的操作数(也就是三个监测单元的名称)有:Tag1,Tag2,Tag3。由于这些操作符被预先定义,便于识别,所以将这些操作符作为操作数Tag1,Tag2,Tag3的分隔符,就可以从表达式中识别出操作符和操作数。
第二步:将表达式从中缀表达式转换成后缀表达式
通常情况下,在表达式的计算过程中均是使用堆栈来存储所述操作数和操作符的,因此,为了方便堆栈的存储、加快表达式的计算速度,需要将用户配置的中缀表达式转换成后缀表达式。中缀表达式到后缀表达式的转换方法与计算机编译原理,计算机数据结构等经典教科书中描述的相同,在这里就不再详细描述了。
例如,将上述表达式(Tag1+Tag2)*Tag3转成后缀表达式是Tag1Tag2+Tag3*,在经过中缀表达式到后缀表达式的转换之后,统计系统会将后缀表达式按照转换后的顺序存放在堆栈中,从栈顶到栈底依次是:Tag1,Tag2,+,Tag3,*。如下表所示:
第三步:根据后缀表达式计算表达式的结果
在完成后缀表达式的转换后,统计系统在进行表达式解析时,就可以立即将存储在堆栈中的操作数替换成实际监测到的数据,并快速完成表达式的计算。
上述现有方案中存在如下问题:如果操作数中包含已经预先定义的操作符,按照现有的方式去解析表达式会出错。例如,用户配置的表达式是(Tag1-Rate+Tag2-Rate)*Tag3,其中Tag1-Rate和Tag2-Rate是监测单元的名称,按照现在的策略会解析生成如下的堆栈:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海宝信软件股份有限公司,未经上海宝信软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310005335.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于网络指纹识别电气防误闭锁系统
- 下一篇:一种工位旋转精确定位控制装置