Wincc 7.5 SP2使用VBS脚本动态趋势弹窗功能的实现

news/2026/1/21 21:10:11/文章来源:https://www.cnblogs.com/fishingsriver/p/19514042
现场计算机运行WINCC项目程序,生产希望在工艺画面上点击实时数据弹出趋势窗口,显示当前数据的趋势。我在家里测试了一下,还是容易实现的。
在WINCC7.5SP2新建一个项目程序,新建内部变量Rand1和Rand2,都是32位无符号数,内部变量TrendName是文本变量8位字符集,用于存储当前变量名,TrendTagName是文本变量8位字符集,用于存储变当前变量归档中变量名,TrendWinName是文本变量8位字符集,用于存储趋势控件窗口标题栏名字。
在变量记录中添加Rand1和Rand2。
写一段全局VBS动作脚本,让Rand1和Rand2随机变化,周期为1s。
Option Explicit
Function action
Dim Rand1,Rand2
Set Rand1=HMIRuntime.Tags("Rand1")
Set Rand2=HMIRuntime.Tags("Rand2")
Rand1.Write (Rand1.Read *2848 +1) Mod 100
Rand2.Write 80+ ((Rand2.Read *2848 +1) Mod 10)
End Function
新建画面Main,用于显示实时数据。
Main画面放置输入输出域控件,分别显示Rand1和Rand2,调整好字体大小。
Main画面放置画面窗口控件,名字叫做PopTrend,默认不显示。部分属性如下(不一定需要全部一致):
可调整尺寸:是
可移动:是
边框:是
标题:是
可以最大化:否
可关闭:是
前景:否
滚动条:否
调整大小:是
调整画面:否
图片缩放模式:均匀
画面名称:PopTrend.pdl
缩放因子:100
新建画面PopTrend,放置趋势控件和ruler控件,定义好尺寸。
趋势控件的名字叫做trend,ruler控件数据源来自trend
trend控件的常规选项卡打开画面选项组勾选“开始更新”、“显示标尺”、“加载归档数据”,其他的可默认,编辑状态下不添加变量归档中的变量。
ruler控件不显示工具栏,减小占用空间。
PopTrend画面打开事件写下面的vbs脚本
Sub OnOpen()                   
Dim trend,TrendTagName,TrendName,TrendWinName
Set trend=ScreenItems("trend")
Set TrendTagName=HMIRuntime.Tags("TrendTagName")
Set TrendName=HMIRuntime.Tags("TrendName")
Set TrendWinName=HMIRuntime.Tags("TrendWinName")
trend.TrendIndex=0
trend.TrendRemove =trend.TrendName 
trend.TrendAdd= TrendName.Read 
trend.TrendTagName =TrendTagName.Read 
trend.TrendTrendWindow="趋势窗口 1"
trend.TrendTimeAxis="时间轴 1"
trend.TrendValueAxis="数值轴 1"
trend.Caption=TrendWinName.Read 
End Sub
Main画面rand1数据显示的输入输出域鼠标点击事件写下面的vbs脚本:
Sub OnClick(Byval Item)    
Dim PopTrend,TrendTagName,TrendName,TrendWinName
Set PopTrend = ScreenItems("PopTrend")
Set TrendTagName=HMIRuntime.Tags("TrendTagName")
Set TrendName=HMIRuntime.Tags("TrendName")
Set TrendWinName=HMIRuntime.Tags("TrendWinName")
TrendTagName.Write "过程值归档\Rand1"
TrendName.Write "Rand1"
TrendWinName.Write "Rand1的趋势"
PopTrend.Visible=False
PopTrend.Visible=True
End Sub
Main画面rand2数据显示的输入输出域鼠标点击事件写下面的vbs脚本:
Sub OnClick(ByVal Item)  
Dim PopTrend,TrendTagName,TrendName,TrendWinName
Set PopTrend = ScreenItems("PopTrend")
Set TrendTagName=HMIRuntime.Tags("TrendTagName")
Set TrendName=HMIRuntime.Tags("TrendName")
Set TrendWinName=HMIRuntime.Tags("TrendWinName")
TrendTagName.Write "过程值归档\Rand2"
TrendName.Write "Rand2"
TrendWinName.Write "Rand2的趋势"
PopTrend.Visible=False
PopTrend.Visible=True
End Sub
wincc项目管理器计算机属性的启动服务中,勾选全局脚本运行系统和变量记录运行系统。
保存、运行,点击Main画面上两个输入输出域,就可以在趋势弹窗中显示对应变量的趋势图了。rand1和rand2变化范围不一样,一个是0-100,一个是80-90,由于在PopTrend画面的趋势控件中,数值轴默认勾选了“自动”,因此无论是哪一个变量的趋势,都可以看出明显的波动。
在运行阶段观察尺寸、字体大小等显示效果,不断调整,就可以得到满意的显示效果了。
这一篇练习本来先写在新浪博客,写完了点击提交,告诉我有敏感词,不说是哪里,让我自己反省自查,真是神经病!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026最新车膜/车衣品牌优选超佩车膜!隐形车衣/改色车衣/汽车贴膜全覆盖,更适配中国环境,品质与服务双优之选

随着汽车保有量的持续增长,汽车贴膜已成为保护爱车、提升用车体验的重要选择。从隐形车衣到改色贴膜,市场需求日益多元化。在2026年的汽车膜市场中,ClearPro超佩车膜凭借其本土化适配技术、自有全产业链实力与完善的…

了解FLIR 偏振相机

在机器视觉的实际应用中,材料表面的反光问题是一个常见的技术挑战。无论是透过车窗进行车内监测,还是对高反光材料进行表面检测,传统成像技术往往受到眩光和反射的干扰。传统偏振成像方案的特点// 多相机系统方案采用偏光分束镜配合多个相机的…

低代码平台重构:Flutter组件库与鸿蒙分布式能力融合实践 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一键了解Dalsa ML 16K三线彩色、四线黑白线扫相机

Teledyne DALSA 公司推出的高速、高性能16K三线彩色 CMOS相机,其性能出色,满足工业领先彩色图像应用的要求。基于 Teledyne DALSA 独有的 CMOS 线扫描技术,可传输优质的彩色图像。型号分辨率色度行频接口像素尺寸ML-FC-16K02T16384*3Color25k…

UART寄存器分类介绍

一、UART 寄存器的核心分类通用 UART 模块的寄存器通常分为控制类、状态类、数据类、配置类4 大类,不同 MCU 的寄存器名称可能不同,但功能一致。二、通用 UART 寄存器详解1. 数据寄存器(Data Register)功能:存储待发送…

前沿技术!AI应用架构师的AI模型版本管理最佳实践前沿应用

AI应用架构师的AI模型版本管理最佳实践:从理论到实践 摘要 在AI应用快速发展的今天,模型版本管理已成为AI应用架构师面临的核心挑战之一。随着企业AI应用从实验阶段走向生产环境,如何有效地管理模型版本、确保模型的可追溯性、可重现性和可…

初学者必知的 Python 库函数

在学习 Python 的初期,很多新手会被各种“魔法方法”和内置函数搞得眼花缭乱。但其实,掌握几个常用又实用的库函数,就能让你的代码更简洁、高效。今天我们就从一个看似简单却极其常用的字符串方法 —— .join() 开始,聊聊初学者应…

第 473 场周赛Q1——3726. 移除十进制表示中的所有零

题目链接:3726. 移除十进制表示中的所有零(简单) 算法原理: 解法:一次遍历 1ms击败82.82% 时间复杂度O(N) 思路很简单,先将这个数转化成字符串,遍历的过程中判断是否是0,如果不是0&a…

C语言:从底层到AI的编程核心

从1960年的ALGOL 60 到1970年的BCPL再到1971年的B语言,编程也从计算机设计者的个人工作逐渐转变到专门的一项工作,C语言的发展,无疑给这个行业注入了核心,至此,C语言作为一门可以从底层控制用到用户界面的编程语言得到…

eclipse4.7 droolsjbpm-tools-distribution-7.46.0.Final.zip

eclipse4.7 工作流插件droolsjbpm-tools-distribution-7.46.0.Final.zip网络不好,就没法子直接更新,经常中断下载离线安装包,更新

ARM汇编基础

GNU汇编语法 GNU 汇编语法适用于所有的架构,并不是 ARM 独享的, GNU 汇编由一系列的语句组成, 每行一条语句,每条语句有三个可选部分,如下: label: instruction commentlabel 即标号&#xf…

2026年想找高质量简历模板就来这7个网站

在求职过程中,一份“长得好看”且专业的简历永远是第一块敲门砖。 无论你是追求极简商务风的金融精英,还是需要展示创意的设计师,一个高质量的简历模板都能帮你省去繁琐的排版时间,直接提升简历的“颜值”和阅读体验。很多人空有满…

7款AI工具助力学术论文高效撰写的详细解析

工具核心特点速览 工具名称 核心优势 适用场景 数据支撑 aibiye 全流程覆盖降重优化 从开题到答辩的一站式需求 支持20万字长文逻辑连贯 aicheck 院校规范适配模板化输出 国内本硕博论文框架搭建 覆盖90%高校格式要求 秒篇 3分钟文献综述生成 紧急补文献章节 知…

基于栅格地图的人工势场法动态路径规划:探索与实践

基于珊格地图的人工势场法 动态路径规划 路径规划算法 地图好修改 自己研究编写的Matlab路径规划 可自行设置起始点,目标点,自由更换地图。 ——————————————————— 可以和A*和RRT融合 动态障碍物 在机器人领域,路径规划始终…

主流简历模板平台测评:5大工具,覆盖从创意到技术的全场景求职

在2026年的数字化招聘中,简历已从单向的展示材料,演变为必须同时适配招聘官阅读与ATS(申请人追踪系统)筛选的“双向工具”。选择专业模板的核心价值在于通过优化信息呈现,直接提升简历的通过效率,具体依据如…

Java面试场景:深入探讨Spring Boot与微服务架构应用

Java面试场景:深入探讨Spring Boot与微服务架构应用 场景描述 在一家互联网大厂的面试场景中,小白程序员“超好吃”面试Java开发岗位。面试官是一位严肃但不失温和的技术专家,整个面试过程由三轮提问组成,涉及Spring Boot、微服务…

天然蛋白纯化技术:原理与核心层析策略

天然蛋白纯化技术:原理与核心层析策略天然蛋白纯化是从复杂生物样本中获取具有完整天然构象与生物活性蛋白质的关键生物化学技术。与重组蛋白表达系统获得的蛋白质相比,天然蛋白直接来源于生物组织或体液,其翻译后修…

Matlab 中用蒙特卡洛算法模拟电动汽车充电负荷

在matlab中用蒙特卡洛算法对电动汽车充电负荷进行模拟,可自己修改电动汽车数量,论文复现。 参考论文:基于V2G的电动汽车充放电优化调度策略 有注释简单易懂,可随意调整参数。 最近在研究电动汽车充电负荷相关问题,发现基于蒙特卡洛…

揭秘主流AI大模型的系统提示词,助你掌握AI核心技术

文章介绍了7个热门开源项目,重点分享了主流AI大模型(如ChatGPT、Claude、Gemini)的系统提示词合集,这些隐藏提示词对AI行为起关键引导作用。同时推荐了电子书转有声书、项目管理、AI嵌入数据库、生成式BI工具和微虚拟机等实用工具,为开发者提…

我基于大模型写了个Telegram群反垃圾广告机器人

我基于大模型写了个Telegram群反垃圾广告机器人一、为什么要做这个Bot 维护Telegram群组的朋友应该都遇到过类似问题:群里突然冒出一堆广告,机器人批量加群发垃圾信息,正常讨论都被打断。最头疼的是,管理员每天要花…