百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

理想和现实的比较——这也许是每个工程师都会遇到的问题

bigegpt 2025-02-16 19:54 7 浏览

这是一个概念满天飞的时代,工程师们一边做着项目,一边担心跟不上技术的更新迭代。而如何高效解决当下的项目问题,始终是工程师们面临的首要任务。今天就为大家分享一个小例子。让我们看看如何借助 IT 技术更好解决 OT 项目中遇到的问题。

背景信息

所谓:

  • OT(Operation Technology) 是操作运行技术
  • IT(Information Technology) 是信息技术

OT 与 IT 融合简单来讲就是将两者结合起来,使企业的运转更加高效。深入的探讨,超出笔者的能力范围。但是有这个理解也可以帮助我们扩展解决问题的思路。比如:理想趋势和实际趋势的比较问题。我们就可以完全借助于 IT 的现有技术,在 SCADA 软件中轻松实现。先来看个运行效果图:

视频中的功能是在西门子全新的可视化平台 WinCC Unified 中,通过自定义 Web 控件(Custom Web Control简称:CWC)的方式集成 ECharts 实现的。其中:

  • 自定义 Web 控件(CWC)是 WinCC Unified 提供的一个选项。使用该选项,用户可以基于 Web 技术创建新控件或者加载现有的外部控件到 WinCC Unified 项目中
  • ECharts 是一款基于 JavaScript 的数据可视化图表库。提供直观、生动、可交互的数据可视化图表。最初由百度团队开源,现为Apache基金会的项目

在 WinCC Unified 中可以通过集成 CWC 的方式把 ECharts 集成到项目中。

下面将展开介绍在 WinCC Unified 项目中集成 CWC 的组态步骤,以及实现 CWC 和 WinCC Unified 运行系统之间数据交互的关键点。最终发布的 CWC 将支持以下功能:

  • 显示两组数据的对比效果
  • 定义图表显示的颜色
  • 设定图表显示的样式为曲线或棒图
  • 定义理想值和当前值的数据源
  • 定义位置信息的数据源

开发环境如下:

完成开发需要具备的知识点:

  • WinCC Unified 的组态
  • CWC 的背景知识
  • Microsoft Visual Studio Code(简称:VS Code)的简单使用
  • 简单了解 HTML5 和 JavaScript 的网页编程

组态步骤

2.1 创建CWC文件夹结构

创建一个文件夹。

该文件夹中包含三部分内容,分别是:

  • json文件 "manifest.json",用于编辑控件发布的信息
  • 文件夹 "assets",用于存放CWC在WinCC Unified中显示的图标
  • 文件夹 "control"。该文件夹中包含一个js文件夹和一个index.html文件。在js文件夹中包含 "webcc.min.js" 和 "echarts.min.js "二个需要引用的文件。此外,还需要创建一个 js 文件(本例中为trends.js),用于实现数据的连接和交互功能

使用 VS Code 打开该文件夹,看到的结构如下图所示。

其中:

  • "webcc.min.js"文件包含WinCC Unified 的接口信息。建立连接后,便可以在应用中访问"manifest.json"文件中定义的数据。通过SIOS链接可以下载"webcc.min.js"文件。
  • "echarts.min.js"文件可以通过 ECharts 的官方网站下载
  • "trends.js"为用户自己开发的 JavaScript 脚本。用于实现WinCC Unified 和 ECharts 之间的数据交互

2.2 manifest.json 文件

在 VS Code 中编辑 manifest.json 文件。

manifest.json 文件包含 mver 和 control 两部分内容。其中 mver 为 manifest 的版本信息。control 中包含控件安装和使用的必要信息。Control 部分:guid 为 WinCC Unified 中引用的 CWC的名称(必须符合8-4-4-4-12 模式的命名规则)。如下图所示。

为了实现 CWC 和 WinCC Unified 程序之间的双向通讯。

根据需要可以在 Control 部分设置:methods、events或properties。本例中仅需要定义 properties 参数即可。
在 properties 中定义的接口有:CurrentData、DisplayType、IdeaData 和 Position。其中 DisplayType中包含:CurrentColor、CurrentTitle、CurrentType、IdeaColor、IdeaTitle 和 IdeaType。最终当项目中引用控件时,在属性界面中看到的CWC接口如下图所示。

2.3 Index.html 文件

Index.html 文件是 CWC 的入口。在 VS Code 中编辑 Index.html文件。为了交换数据需要在这里建立 ECharts 到 WinCC Unified 服务的连接。因此这里需要引用 js 文件夹中的文件。本例中调用的 js 文件如下所示:

通常在部分引用。

此外 ECharts 推荐在 HTML 中定义有宽度和高度的父容器。因此,本例中在 HTML 中先定义了一个

节点。图标的容器高度为固定值300px,宽度为页面100%。当页面的宽度改变时,通过调用ECharts 实例的 resize 事件,改变图表的大小。Index.html 的具体代码如下图所示。

2.4 CWC 和 WinCC Unified 的数据交换

CWC 是通过 webcc.min.js 中提供的 API 对象 WebCC 实现的数据交换。本例中使用脚本 trend.js 调用实现该功能。脚本 trend.js中通过调用 WinCC.start 判断 CWC 和 WinCC Unified 之间是否建立连接。在连接成功的情况下进行控件的初始化和动态赋值操作。动态赋值通过订阅方式实现。ECharts 通过 setOption 函数实现参数的设定。
样例中为 ECharts 的 xAxis 传递了Position 参数,为 ECharts 的yAxis 传递了实际值和理想值的相关参数。

注意:最终发布 CWC 控件时可以把 .js文件压缩为.min.js文件。这样能减少脚本的体积,提升加载速度。同时 min.js 脚本可读性差,还可以起到保护知识产权的作用。

2.5 在 TIA Portal 项目中部署 CWC

完成 CWC 的开发后,需要把代码打包成 TIA Portal 可以识别的控件。然后在项目中引用。具体的步骤如下:

1.把 assets,control和 manifest.json 压缩为一个 ZIP 文件。使用 manifest. json 文件中的 guid 作为文件的名称。并且 guid 前后需要加上大括号。如下图所示:

2. 将生成的 CWC 压缩文件存放到特定的路径下。如果在特定的项目中使用,直接存放到项目路径的"\UserFiles\CustomControls"文件夹中即可。

3. 如果需要在所有的项目下使用,需要将 CWC 放置在 TIA Portal的安装路径中,默认安装的情况下路径为:
"C:\Program Files\Siemens\Automation\Portal

Vxx\Data\Hmi\CustomControls\"。
Vxx中的xx代表Unified软件的版本号。

4. 如果以上路径中特定的文件夹不存在,手动创建即可。

5. 打开 WinCC Unified 的项目,在“工具箱->我的控件”中执行刷新,就可以看到发布的 CWC 。如下图所示:

6. 最后在画面中添加 CWC 。根据需要配置属性。如下图所示:

2.6 调试 CWC

目前可以使用浏览器的开发者控制台进行调试。例如,使用 Chrome 浏览器时,可以通过 F12 打开 Chrome 的开发者控制台。具体的步骤如下:

1. 使用 F12 打开开发者控制台

2. 在打开的界面中选择“来源”页

3. 在左侧移动鼠标时,当移动到和 CWC 对应的位置时,CWC 会高亮显示

4. 导航到特定的文件就可以进行调试

如下图所示:

提示:不同浏览器的调试方式会有所不同。

欢迎访问西门子技术论坛-官方技术论坛-自动化系统技术交流社区-西门子工业技术支持中心-西门子中国,获取更多信息。欢迎关注~每天更新小知识,带您一起不断学习进步,也进入头条号首页,查看TA的服务,各类网站功能模块,在这里都能找到!

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...