APP
手机站
蓝蜂脚本二次开发平台是运行在网关和组态页面上的二次开发工具,通过此工具可实现网关脚本和页面脚本的编写,用于快速实现项目中的复杂业务场景和功能。为用户提供更多的功能拓展和数据展现样式。比如: 数据统计、报警联动,自动化控制、画面动效等功能。
脚本功能分为网关脚本和页面脚本,下面分别介绍一下二者的具体功能
2.1 网关脚本
网关脚本介绍
适用于在网关上进行低代码开发的脚本工具,可在网关上快速实现复杂的业务场景(网关现有标准功能不具备的)
可实现数据统计分析、数据处理、联动控制、协议解析等自定义功能。
网关脚本特点:
1自由灵活
2.快速实现
3.功能扩展
网关脚本功能拓扑图
2.2 页面脚本
功能介绍
页面脚本运行在组态页面中的工具,通过页面脚本在组态页面中实现动画效果、绑定数据等、批量调参等操作,让组态页面灵活多变,可视化效果更丰富
实现 运输带、流水线、一键开启阀门、批量调参等
页面脚本特点:
1.编写简单
2.控件属性可控
3.结果可视化
页面脚本功能拓扑图
l 大数据统计,比如:数据日报、周报、月报、设备运行时长、统计流量等
l 跨设备点对点数据传输
l 平台监控数据的同时,通过MQTT转发数据
l 定时、周期性、多条件下的设备启停
l 批量参数控制,一键即可开启多个阀门、泵站、写入参数等
l 报警联动设备,报警即关闸,正常可开闸
l 存储车间产量,记录,计算能耗成本
1.轻松解决问题
脚本功能是免费,实现复杂业务或功能,无需定制化开发,几行代码就搞定
2. 降低平台负载
脚本程序独立运行在网关内,不会增加云平台服务器压力,巧妙的脚本还可以降低云平台的计算负载
3.云边协同
组态和网关都可运行脚本,能够共同处理业务,实现云边协同
4.开放性高
开放大量API函数,支持多种运行环境,非常适合进行二次开发
5.简单易学习
使用JavaScript作为编程语言,上手容易,简单学习即可编写脚本
6.支持并发执行
一台网关可同时运行多个脚本程序,举例:进行数据统计的同时也可实现MQTT数据转发
5.1统计空压机运行时长
场景描述:
统计空压机设备的运行时长,记录一天中空压设备开启的时间和累计运行总时长
解决方案:
空压机设备PLC接入EG20网关作为监测模块,同时配合EMCP物联网云平台进行设备监测
1. 云平台创建对应设备,作为空压机处理器监控设备
2. 登录EMCP物联网云平台,创建空压设备,可命名为空压控制设备,添加对应的驱动,和配置网关
3. 创建两个内部变量:今日运行时长: equip_run_todayl_time和累计运行总时长:equip_run_total_time,用于存储设备运行数据
4. 创建设备变量:run_state, 作为空压机开启的变量点,根据厂商提供的点位表设置好对应的数据类型和寄存器地址。
5. 在后台管理功能>>脚本管理中,创建一个脚本,执行策略选择周期执行,执行间隔60秒
6. 编写如下脚本程序,通过脚本程序判断空压机是否开启,开启后记录对应时间,关闭则不记录,最终实现记录今日和累计运行时长
signalArray.forEach(function(signal){
//判断空压机是否开机
if(signal.key=='run_state' && Number(signal.value)==1){
signalArray.forEach(function(signal2){
if(signal2.key == 'equip_run_todayl_time'){
if(new Date().getHours()===0 && new Date().getMinutes()===0 && new Date().getSeconds()===0){
//每天0时,将今日设备运行数据置为0
API.writeSignalValue('equip_run_todayl_time','0')
}else{
//空压机开机状态下,计算并将运行时长写入内部变量
API.writeSignalValue('equip_run_todayl_time',Number(signal2.value)+1)
}
}
if(signal2.key == 'equip_run_total_time'){
API.writeSignalValue('equip_run_total_time',Number(signal2.value)+1)
}
})
}
})
}
5.2 污水站定时开闸放水
场景描述:
污水处理站需要每周一10点定时执行开关闸放水一个小时 。
解决方案:
污水站PLC接入EG20网关作为监测模块,同时配合EMCP物联网云平台进行设备监测
1. 云平台创建对应设备,作为污水站处理器控制设备
2. 登录EMCP物联网云平台,创建污水站梳理控制设备,添加对应的驱动,和配置网关
3. 创建变量,pool_switch,作为污水站开闸控制的变量点
4. 在后台管理功能>>脚本管理中,创建一个脚本,设置运行环境为:条件执行,表达式为:#{hour}==10 || #{hour}==11,执行频次为单次执行
5. 编写如下脚本程序,即可实现开关闸(pool_switch)每周一10点定时开启进行放水,11点关闭
具体代码示例如下:
function main(signalArray){
if(new Date().getDay()==1){
if(new Date().getHours()==10){
//满足条件后,向pool_switch 变量写入数值1,执行开闸操作
API.writeSignalValue("pool_switch","1")
}else if(new Date().getHours()==11){
//不满足条件,向pool_switch 变量写入数值1,执行关闸操作
API.writeSignalValue("pool_switch","0")
}
}
5.3 一键关闭多个卷帘门
场景描述:
农业大棚控制卷帘门比较多,需要组态页面中逐一手动开启卷帘门开关,操作比较繁琐,客户需要点击组态中一个控件,对5个卷帘门同时进行开启或关闭操作
解决方案:
1. 组态编辑中,放入一个按钮控件,一个输入框控件,按钮用于执行写入数值操作,输入框用决定写入数值,输入1,点击按钮可以进行闸门开启,输入0,点击按钮可进行闸门关闭
2. 定义好5个变量,分辨代表卷帘门的控制变量,举例:可设置变量名称为:['变量1','变量2','变量3','变量4','变量5'],每个变量代表一个闸门。
3. 点击按钮控件,勾选单击时间,选择脚本选项,进行编写脚本代码,逻辑是点击按钮执行输入框的值,并向对应变量进行写入数值操作
具体脚本代码如下
function click(API){
//通过控件ID获取到输入控件的值
const value = API.getWidgetById(741).value
const arr = ['变量1','变量2','变量3','变量4','变量5']
arr.forEach((name, index) => {
setTimeout(() => {
//执行写值操作
API.writeValueByName(name,value).then(resp => {
console.log(name + '写入变量成功!')
}).catch(err => {
console.log(name + '写入变量失败!')
})
},100*index)
})
}
问题1:
脚本功能收费吗?
解答:
脚本功能是免费的,已开放给全部客户
问题2:
脚本功能入口在哪里?
解答:
网关脚本功能入口位于:后台管理>>设备管理>>新增/编辑设备>>脚本管理,您可以创建和编辑脚本
页面脚本功能入口位于:后台管理>>设备管理>>新增/编辑设备>>组态页面管理>>右上角设置>>页面管理功能,可编写页面脚本代码
问题3:
为什么提示我暂不支持脚本功能
解答:
1.您的账户必须开启脚本编辑权限,如果未开启,则无法使用
2.您的网关必须满足以下两个条件,才可以创建脚本功能
1)目前仅EG20型号网关支持脚本功能,其他网关后期会陆续支持
2)网关固件版本必须大于3.0及以上
如果以上条件有任意一个不满足,则在脚本管理功能中会提示暂不支持,您可以可咨询您的商务人员了解详情
问题4:
数据中心是否可使用脚本
解答:
数据中心可使用脚本功能,可在数据中心组态页面中编辑页面脚本。
问题5:
网关断电/离线后脚本还能运行吗?
解答:
如果网关离线,则脚本可运行,如果网关断电,则脚本不可运行
问题6:
关闭组态页面后,页面脚本还能运行吗?
解答:
关闭组态页面后,页面脚本不可运行
问题7:
我有脚本需求,但是自己不会写脚本怎么办?
解答
如果您有相关脚本方面的应用需求,欢迎联系蓝蜂物联网商务人员进行沟通洽谈,我们将积极与您对接,竭诚为您解决问题。