当前位置: 首页 > news >正文

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

现场计算机运行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.jsqmd.com/news/280256/

相关文章:

  • 2026最新车膜/车衣品牌优选超佩车膜!隐形车衣/改色车衣/汽车贴膜全覆盖,更适配中国环境,品质与服务双优之选
  • 了解FLIR 偏振相机
  • 低代码平台重构:Flutter组件库与鸿蒙分布式能力融合实践 - 详解
  • 一键了解Dalsa ML 16K三线彩色、四线黑白线扫相机
  • UART寄存器分类介绍
  • 前沿技术!AI应用架构师的AI模型版本管理最佳实践前沿应用
  • 初学者必知的 Python 库函数
  • 第 473 场周赛Q1——3726. 移除十进制表示中的所有零
  • C语言:从底层到AI的编程核心
  • eclipse4.7 droolsjbpm-tools-distribution-7.46.0.Final.zip
  • ARM汇编基础
  • 2026年想找高质量简历模板就来这7个网站
  • 7款AI工具助力学术论文高效撰写的详细解析
  • 基于栅格地图的人工势场法动态路径规划:探索与实践
  • 主流简历模板平台测评:5大工具,覆盖从创意到技术的全场景求职
  • Java面试场景:深入探讨Spring Boot与微服务架构应用
  • 天然蛋白纯化技术:原理与核心层析策略
  • Matlab 中用蒙特卡洛算法模拟电动汽车充电负荷
  • 我基于大模型写了个Telegram群反垃圾广告机器人
  • 揭秘主流AI大模型的系统提示词,助你掌握AI核心技术
  • 金融大模型落地提速170%,2025前三季度数据揭秘银行、证券、保险应用趋势与厂商竞争格局
  • 35岁程序员必看!大模型转型全攻略+学习资源,收藏这篇就够了!
  • P8145 [JRKSJ R4] kth
  • AI助力学术写作:7款工具使用指南与示例
  • CodeFuse大模型学习手册:从自然语言到代码的精准转化,小白也能快速上手(值得收藏)
  • AI应用开发进入工程时代:从千问到评测革命的完整指南(建议收藏)
  • 2026年1月AI搜索优化服务商哪家靠谱?技术vs交付能力vs效果三维测评
  • 2个月构建医学知识库:RAG技术实战全解析 | 程序员必看的大模型应用指南
  • 学术论文AI写作:7款工具操作技巧与案例解析
  • AI智能体架构全景解析:从基础到应用的完整指南