中海创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

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

目录
相关文章
|
10天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
12天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
186 45
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
54 1
|
1月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
70 1
|
1月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
67 2
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
169 3
|
24天前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
1月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
34 7