基于Lua脚本的动态复杂报警实现方法技术

技术编号:24455364 阅读:53 留言:0更新日期:2020-06-10 15:23
本发明专利技术公开了一种基于Lua脚本的动态复杂报警实现方法,包括计算机和检测区域AREA1,AREA1中设有设备A和设备B,设备A和设备B均设有属性点attitude1和属性点attitude2;设定时间段区间[T1‑T2];计算机中安装有报警配置模块、规则转换模块、引擎加载模块、计算处理模块和应用处理模块;包括如下步骤:报警配置模块将用户在物联网平台配置页面的报警配置的内容转换为JSON格式的数据;规则转换模块将JSON格式的数据内容转换为Lua脚本,转换完成后,发送JSON格式的数据内容给引擎加载模块;本发明专利技术具有提供了灵活的扩展和定制功能,降低了二次开发成本和维护成本的特点。

Implementation of dynamic complex alarm based on Lua script

【技术实现步骤摘要】
基于Lua脚本的动态复杂报警实现方法
本专利技术涉及物联网监控
,尤其是涉及一种基于Lua脚本的动态复杂报警实现方法。
技术介绍
JSON:(JavaScriptObjectNotation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。JavaScript:是一种直译式的脚本语言,在网页上使用,用来给网页增加逻辑功能。Node.js:是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。HTML:超文本标记语言(HyperTextMarkupLanguage)是一种用于创建网页的标准标记语言。Lua:是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。C++:是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。动态:是指报警配置变更,可及时通知规则转换模块。复杂报警:含时间、历史数据、同一设备的多属性点数据、多台设备的多属性点数据、多种组合关系的报警配置。传统的工业监控系统的报警主要是利用SCADA(SupervisoryControlAndDataAcquisition,数据采集监控)系统的阈值报警机制实现预警报警分析。在SCADA系统中,对每个监测参数设置高值、高高值、低值和低低值四个限值:如果监测参数值在低值和高值之间,则是正常的,如果监测参数值在低值和低低值之间、高值和高高值之间,则需要预警,如果监测参数值大于高高值,或监测参数值小于低低值则需要报警。上述监控报警技术只能进行阈值报警,无法实现含时间段、多设备、不同属性点阈值相关联的报警应用,在应用初期满足了基本的应用需求,然而随着智能化、精细化管理要求的提高及设备接入云平台,设备之间的关联性的增加,该技术方案已经无法满足应用需要。另外,自主研发的监控系统的报警增加了置缓值和变化率,但无法满足时间段内的某个设备的报警应用,并需软件统一发布,才可实现配置变更时动态变更报警规则,而且规则转换模板扩展不方便,需要更改原有的应用程序。而在互联网企业里兴起的物联网解决方案,提供了事件报警和阈值报警规则,但其中报警对象只针某个时间内某个设备的某个属性,无法满足对不同时间段,不同设备的不同属性点,多种组合关系的复杂报警应用。
技术实现思路
本专利技术的专利技术目的是为了克服现有技术中的物联网解决方案无法满足对不同时间段,不同设备的不同属性点,多种组合关系的复杂报警应用的不足,提供了一种基于Lua脚本的动态复杂报警实现方法。一种基于Lua脚本的动态复杂报警实现方法,包括计算机和检测区域AREA1,AREA1中设有设备A和设备B,设备A和设备B均设有属性点attitude1和属性点attitude2;设定时间段区间[T1-T2];计算机中安装有报警配置模块、规则转换模块、引擎加载模块、计算处理模块和应用处理模块;包括如下步骤:(1-1)报警配置模块将用户在物联网平台配置页面的报警配置的内容转换为JSON格式的数据;(1-2)规则转换模块将JSON格式的数据内容转换为Lua脚本,转换完成后,发送JSON格式的数据内容给引擎加载模块;(1-3)引擎加载模块根据接收到的JSON格式的数据内容,读取Lua脚本,得到Lua脚本的内容,将Lua脚本的内容发给计算处理模块;(1-4)计算处理模块接收到Lua脚本的内容后,将Lua脚本的内容存入计算机的内存里,利用实时值获取函数calcore.get_devicelist_data({’A’,’B’})获得设备的实时值,调用on_data(devs)函数,对实时值进行逻辑计算处理,将得到的设备的实时值、当前时刻、报警描述、报警名称和报警产生后的操作列表发送给应用处理模块;(1-5)应用处理模块根据操作列表做出更新数据、下发控制、设备联动、拍摄报警现场照片或发送短信通知用户的处理。本专利技术使用了Lua脚本语言,将报警配置转换为对应的Lua脚本,报警需求变更时,仅更改对应生成的Lua脚本即可,不需要修改原有的报警处理模块,提供了灵活的扩展和定制功能,降低了二次开发成本和维护成本。本专利技术动态的将物联网平台中的设备报警配置,转换成对应的Lua脚本,然后加载Lua脚本,调用相关内部库函数,处理解析实时数据,当数据满足报警条件,立即向报警应用模块推送报警信息。其中设备报警的配置,不仅仅是一个设备的简单阈值配置,可包含时间、历史数据、同一设备的多属性点数据、多台设备的多属性点数据、多种组合关系等的报警配置。本专利技术既保留了原有阈值配置的简单报警功能实现,又增加了时间、历史数据、同一设备的多属性点数据、多台设备的多属性点数据、多种组合关系等的复杂报警功能实现,满足物联网监控系统多种不同报警需求功能的实现。作为优选,(1-1)包括如下步骤:报警配置模块使用HTML页面展示配置内容,运用JavaScript将用户报警配置转换为JSON格式数据,将JSON格式的用户报警配置的数据上传给后台配置中心;用户报警配置包含时间、历史数据、同一设备的多属性点数据、各台设备的多属性点数据、组合关系和用户自定义的脚本;用户在物联网平台配置页面,进行报警配置:添加报警,设置报警名称为AREA1_ALARM1,选择报警监测时间段为T1-T2,设置报警条件1,选择设备A,页面显示当前设备的属性点,选择填写算法表达式单选框,填写表达式attitude1>YesterdayAverage(attitude1)*k;设置报警条件2,选择设备B,页面显示当前设备的属性点,选择阈值设置单选框,设置attitude2的上限值C1和下限值C2,产生报警处理,选择短信通知,用户点击确定按钮,完成配置。作为优选,(1-2)包括如下步骤:将JSON格式的报警配置转换为Lua脚本,将Lua脚本中的算术运算、逻辑运算、时间计算和设备属性点数据类型处理分别写一个对应的Lua脚本模板,内存中缓存各个脚本模板,当读取配置中的数据符合对应的脚本模板时,则将所述脚本模板添加至正在生成的Lua脚本文件中。作为优选,(1-3)包括如下步骤:引擎加载模块收到JSON格式的数据内容后,获得脚本文件夹目录和脚本文件名,如果脚本文件名内容为空,则不处理;如果脚本文件名存在,则依次读取对应的Lua脚本文件,将文件内容缓存至脚本文件数组中,直到读取结束;完成脚本文件的读取后,发送脚本文件数据给计算处理模块。作为优选,(1-4)包括如下步骤:计算处理模块收到Lua脚本的内容后,获得AREA1_ALARM1的Lua脚本,并通过计算处理模块执行Lua脚本:利用实时值获取函数calcore.get_devicelis本文档来自技高网
...

【技术保护点】
1.一种基于Lua脚本的动态复杂报警实现方法,其特征是,包括计算机和检测区域AREA1,AREA1中设有设备A和设备B,设备A和设备B均设有属性点attitude1和属性点attitude2;设定时间段区间[T1-T2];计算机中安装有报警配置模块、规则转换模块、引擎加载模块、计算处理模块和应用处理模块;/n包括如下步骤:/n(1-1)报警配置模块将用户在物联网平台配置页面的报警配置的内容转换为JSON格式的数据;/n(1-2)规则转换模块将JSON格式的数据内容转换为Lua脚本,转换完成后,发送JSON格式的数据内容给引擎加载模块;/n(1-3)引擎加载模块根据接收到的JSON格式的数据内容,读取Lua脚本,得到Lua脚本的内容,将Lua脚本的内容发给计算处理模块;/n(1-4)计算处理模块接收到Lua脚本的内容后,将Lua脚本的内容存入计算机的内存里,利用实时值获取函数calcore.get_devicelist_data({’A’,’B’})获得设备的实时值,调用on_data(devs)函数,对实时值进行逻辑计算处理,将得到的设备的实时值、当前时刻、报警描述、报警名称和报警产生后的操作列表发送给应用处理模块;/n(1-5)应用处理模块根据操作列表做出更新数据、下发控制、设备联动、拍摄报警现场照片或发送短信通知用户的处理。/n...

【技术特征摘要】
1.一种基于Lua脚本的动态复杂报警实现方法,其特征是,包括计算机和检测区域AREA1,AREA1中设有设备A和设备B,设备A和设备B均设有属性点attitude1和属性点attitude2;设定时间段区间[T1-T2];计算机中安装有报警配置模块、规则转换模块、引擎加载模块、计算处理模块和应用处理模块;
包括如下步骤:
(1-1)报警配置模块将用户在物联网平台配置页面的报警配置的内容转换为JSON格式的数据;
(1-2)规则转换模块将JSON格式的数据内容转换为Lua脚本,转换完成后,发送JSON格式的数据内容给引擎加载模块;
(1-3)引擎加载模块根据接收到的JSON格式的数据内容,读取Lua脚本,得到Lua脚本的内容,将Lua脚本的内容发给计算处理模块;
(1-4)计算处理模块接收到Lua脚本的内容后,将Lua脚本的内容存入计算机的内存里,利用实时值获取函数calcore.get_devicelist_data({’A’,’B’})获得设备的实时值,调用on_data(devs)函数,对实时值进行逻辑计算处理,将得到的设备的实时值、当前时刻、报警描述、报警名称和报警产生后的操作列表发送给应用处理模块;
(1-5)应用处理模块根据操作列表做出更新数据、下发控制、设备联动、拍摄报警现场照片或发送短信通知用户的处理。


2.根据权利要求1所述的基于Lua脚本的动态复杂报警实现方法,其特征是,(1-1)包括如下步骤:
报警配置模块使用HTML页面展示配置内容,运用JavaScript将用户报警配置转换为JSON格式,将JSON格式的用户报警配置的数据上传给后台配置中心;用户报警配置包含时间、历史数据、同一设备的多属性点数据、各台设备的多属性点数据、组合关系和用户自定义的脚本;
用户在物联网平台配置页面,进行报警配置:
添加报警,设置报警名称为AREA1_ALARM1,选择报警监测时间段为T1-T2,设置报警条件1,选择设备A,页面显示当前设备的属性点,选择填写算法表达式单选框,填写表达式attitude1>YesterdayAverage(attitude1)*k;设置报警条件2,选择设备B,页面显示当前设备的属性点,选择阈值设置单选框,设置attitude2的上限值C1和下限值C2,产生报警处理,选择短信通知,用户点击确定按钮,完成配置。


3.根据权利要求2所述的基于Lua脚本的动态复杂报警实现方法,其特征是,(1-2)包括如下步骤:
将J...

【专利技术属性】
技术研发人员:林杨平何琦枫王陈淼杨振伟姜雪明唐飞婷
申请(专利权)人:浙江浙大中控信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1