中海创WEB组态水污染处理组态实战案例

简介: 使用中海创WEB组态产品,完成组态效果,下面以"水污染处理"为例,用海创微联采集设备数据上传到阿里云,中海创web可视化开发端获取阿里云的数据进行展示以及反馈变更的设备数据到阿里云。

使用中海创WEB组态产品,完成组态效果,下面以"水污染处理"为例,用海创微联采集设备数据上传到阿里云,中海创web可视化开发端获取阿里云的数据进行展示以及反馈变更的设备数据到阿里云。

1574067697.png

水污染处理的组态看板如下图所示:
20191122_163128.gif

水污染处理的具体工艺流程如下:
1574409643.png
这个组态实现的功能有:

  • 数据展示
  • 水管水流等级控制

前期准备

阿里云

中海创物联网

一、创建产品设备和规则引擎

我们打开阿里云,注册一个账号并登录,进入阿里云物联网平台。
1573525571.png

1.1 产品创建

在左边设备管理中找到产品,创建后点击保存。
1573525482.png

然后打开创建的产品,点击功能定义,根据实际设备的数据在自定义功能中添加原水池水位、厌氧池温度、厌氧池orp等。
1573525679.png

1573525794.png

1.2 设备创建

接着我们在产品中添加一个设备。
1573526310.png

创建完成后有弹窗显示设备的三个唯一标识,点击一键复制,备用。
1573526515.png

此时查看设备状态是未激活状态,查看设备,在设备运行状态中也能看到需要采集的数据暂时为空。
1573526634.png

1573526700.png

1.3 规则引擎创建

1.3.1 创建

1573526968.png

1.3.2 设置规则
  • 处理数据

    1573527331.png

  • 转发数据

    1573527559.png

  • 启动

    1573527638.png

二、数据采集和上传

登录海创web可视化开发平台,点击“服务开发”,选择项目(提示:创建的微服务要和组态看板在同一个项目下,数据绑定的时候才可以选到对应的微服务),创建微服务“ali水污染处理”。从左边的节点列表中拖出海创IOT、阿里云IOT、function、switch和调试节点,按下图连接,注意节点连线的端口
1574410383.png

2.1 节点配置

关于各个节点的配置说明请参考文档海创微联

  • 定时器

    1574402953.png

  • function

    阿里云或者海创云节点接收数据格式相似,两者之间可以直接传递数据,由于本次组态看板中的报表和折线图需要设备所有的数据,所以以下的function是将接收的阿里云的数据进行整合后存储,再传递给可视化平台。

1574410206.png

  • 阿里云IOT

    1574301816.png

  • switch

    添加switch的原因在于阿里云IOT下发的数据有两个包,一个是设备数据包,另一个是创建规则引擎产生的包,我们需要的是设备数据包

1574410879.png

1573529016.png

  • 可视化平台

    根据阿里下发的数据可知,我们需要产品设备数据包里的items对象,这里存储着设备数据。

用于接收:
1574403837.png
用于反馈:
此节点不需要编辑,连接即可。
1574404083.png

  • 调试

    用于显示当前连接的节点下发的数据内容,默认显示msg.payload,便于调试和查看数据。

1574404398.png
全部完成后点击部署。
1573530142.png

1574404617.png

返回阿里云查看数据状态,说明连接成功。
1573530311.png

1573530403.png

三、web可视化数据绑定和反馈

3.1 创建应用

创建一个组态看板“ali水污染处理”,如下:
1573530684.png

3.1 绘制图标

创建应用后,点击“在线编辑”进入,在“设计”栏新建一个文件夹“水污染处理”,用于存放自己设计的图标,这里选择几个图标进行举例说明:

3.1.1 按钮

1、在“水污染处理”文件夹下新建一个图标“按钮”,选择圆角矩形拖拽至编辑框中并设置属性
1573538875.png
将文字拖拽至编辑框并设置属性
1573539375.png
选择矩形,点击“事件处理”,选择按下和离开,编辑脚本
1573539490.png

  • 按下事件
data.a('Reset_bc', 'rgb(142,194,250)');//data指的是当前的矩形,表示设置矩形的背景色
data.a('Reset_pc', 'rgb(97,163,232)');//表示设置矩形的渐进色
  • 离开事件
data.a('Reset_bc', '#1080bb');//data指的是当前的矩形,表示设置矩形的背景色
data.a('Reset_pc', 'rgb(97,163,232)');//表示设置矩形的渐进色
  • 数据绑定并保存

    1573540093.png

效果图:

20191112_143448.gif

3.1.2 水管

将管道拖拽至编辑框并设置属性

1573541774.png

设置拐弯:

20191112_150228.gif

3.1.3 公共图标复制并使用

公共图标能修改的属性比较少,如果你想引用一个图标,同时要添加自己的一些特色进去,可以选择将这个图标复制到自己的文件夹里再去更改属性、保存(例如:你想更改这个图标的颜色)
20191112_144343.gif

3.2 页面排版

在“ali水污染处理”页面,将准备好的素材全部拖入调整。
1573625489.png

3.2.1 组合块

获取组合块标签后,能获取块内所有图标的属性,或者通过简单的脚本去设置图标属性,方便图标的统一管理,例如:要实现多个图标的显示隐藏如下:
20191113_160516.gif

3.3 页面功能介绍

3.3.1 点击按钮切换页面

将同一个页面的图标组成块后,设置块的标签,在监听视图事件方法内控制对应块的显示和隐藏,具体代码参考用户脚本。
1573633039.png

例如,点击主页面按钮,对应的脚本为:

if(tagName=='one'){//如果单击主页面按钮
    zy.s("2d.visible",true);//主页面块显示
    history.s("2d.visible",false);//实时数据页面块隐藏
    dataTable.s("2d.visible",false);//数据报表页面块隐藏
    PAnalysis.s("2d.visible",false);//工艺解析页面块隐藏
    Anim.resume();//水管流动和风扇转动继续
}
3.3.1 主页面
  • 数据显示

    我们需要对组态界面的所有展示数据进行设备数据绑定,以原水池水位为例:

    • 绑定设备

      1573542902.png

    • 绑定字段

      1573543014.png

  • 水管流动和数据反馈
    • 设置标签

给每根水管设置标签:
lin0-line12

1573627219.png

1573627127.png

    • “确定”按钮绑定设备并且添加脚本

      1574233259.png

3.3.2 实时数据页面
  • 下拉框

    绑定设备后,在改变事件里添加脚本:

dm.lineChart.a('seriesData')[0].name=newValue;//将newValue的值赋值给折线图的标签
if(oldValue!=newValue &&newValue!=''){//如果下拉选择的是新值
    var lineData = '';
    for(key in waterNew[0]){//循环遍历waterNew[0]对象
        if(key==newValue){//如果waterNew[0]的key和下拉值相同
             lineData = waterNew[0][key];//将key的值赋值给lineData
        }
    }
    var time = util.formatDate(new Date(),'mm:ss');//获取当前时间的分秒
    dataInsert(dm,lineData,time);//调用方法,将当前获取的值插入折线图Y轴数据,具体定义请查看用户脚本
    dm.lineChart.iv();//强制刷新折线图
}
    • 效果

      20191113_145417.gif

  • 折线图

    绑定设备和字段后,在属性“数据参数”的数据插入前添加脚本

1573628732.png

    • 脚本
function(val){
    waterNew.push(val);//将获取到的所有设备数据存入waterNew数组
    var selectName=dm.Dropdown.a('hc.value');//下拉框选择的设备属性名称
    var lineData = '';
    for(key in val){
        if(key==selectName){//如果名称和val里的属性名称一致
             lineData = val[key];//将这个属性对应的值赋给lineData
        }
    }
    var time = util.formatDate(new Date(),'mm:ss');//获取当前时间分秒
    dataInsert(dm,lineData,time);//调用方法
    //折线图接收Y轴的数据格式如下,更改数据后再返回值
    var insertDatas=[
        {
            "name": selectName,
            "type": "line",
            "data": dataY,
            "smooth": true,
            "areaStyle": {}
        }
    ]
    return insertDatas;
}
3.3.3 数据报表页面

这个页面能实时查看所有数据的变更情况,表格绑定设备后,属性“行数据”再绑定字段即可。
1573631631.png

3.3.1 工艺解析页面

通过这个页面你能实了解水污染处理工艺流程的整体信息,没有配置难点,这里不介绍了。

3.4 用户脚本

1573551803.png

中海创可视化开发平台不仅提供丰富的可视化看板素材,还有强大的2D、3D编辑平台,现提供以下几个简单点的组态看板功能供大家参阅:
锅炉控制系统
20191121_154717.gif
海创进料系统
20191121_155135.gif
换热站远程监控系统
20191121_155135.gif

想要了解更多欢迎登陆中海创物联网

目录
相关文章
|
8天前
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
18 6
【RF案例】Web自动化测试弹窗处理
|
9天前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`<select>` 和 `<option>`)、文本域(`<textarea>`)、标签解释(`<label>`)、各类按钮(`<button>`)及表单重置功能、无语义布局标签(`<div>` 和 `<span>`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
8天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
22 11
|
8天前
|
前端开发
前端web入门第四天】03 显示模式+综合案例热词与banner效果
本文档介绍了HTML中标签的三种显示模式:块级元素、行内元素与行内块元素,并详细解释了各自的特性和应用场景。块级元素独占一行,宽度默认为父级100%,可设置宽高;行内元素在同一行显示,尺寸由内容决定,设置宽高无效;行内块元素在同一行显示,尺寸由内容决定,可设置宽高。此外,还提供了两个综合案例,包括热词展示和banner效果实现,帮助读者更好地理解和应用这些显示模式。
|
11天前
|
JavaScript 前端开发
【前端web入门第一天】03 综合案例 个人简介与vue简介
该网页采用“从上到下,先整体再局部”的制作思路,逐步分析并编写代码实现个人简介页面。内容涵盖尤雨溪的背景、学习经历及主要成就,同时介绍其开发的Vue.js框架特点。代码结构清晰,注重细节处理,如使用快捷键提高效率,预留超链接位置等,确保最终效果符合预期。
|
20天前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
44 0
|
20天前
|
开发者 前端开发 开发框架
JSF与移动应用,开启全新交互体验!让你的Web应用轻松征服移动设备,让用户爱不释手!
【8月更文挑战第31天】在现代Web应用开发中,移动设备的普及使得构建移动友好的应用变得至关重要。尽管JSF(JavaServer Faces)主要用于Web应用开发,但结合Bootstrap等前端框架,也能实现优秀的移动交互体验。本文探讨如何在JSF应用中实现移动友好性,并通过示例代码展示具体实现方法。使用Bootstrap的响应式布局和组件可以确保JSF页面在移动设备上自适应,并提供友好的表单输入和提交体验。尽管JSF存在组件库较小和学习成本较高等局限性,但合理利用其特性仍能显著提升用户体验。通过不断学习和实践,开发者可以更好地掌握JSF应用的移动友好性,为Web应用开发贡献力量。
31 0
|
20天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
43 0
|
20天前
|
开发者 C# UED
如何轻松将WinUI控件引入Web应用?Uno Platform实战攻略——从环境搭建到性能优化,一探究竟!
【8月更文挑战第31天】Uno Platform 通过支持 WebAssembly,将 WinUI 控件无缝带入 Web,为多平台开发提供了新途径。本文介绍如何在 Web 中使用 WinUI 控件,包括环境搭建、控件使用、性能优化、样式调整及测试调优,助力开发者打造高质量跨平台应用。
37 0
|
20天前
|
前端开发 开发者 Apache
揭秘Apache Wicket项目结构:如何打造Web应用的钢铁长城,告别混乱代码!
【8月更文挑战第31天】Apache Wicket凭借其组件化设计深受Java Web开发者青睐。本文详细解析了Wicket项目结构,帮助你构建可维护的大型Web应用。通过示例展示了如何使用Maven管理依赖,并组织页面、组件及业务逻辑,确保代码清晰易懂。Wicket提供的页面继承、组件重用等功能进一步增强了项目的可维护性和扩展性。掌握这些技巧,能够显著提升开发效率,构建更稳定的Web应用。
53 0