WinCC 中对 VBS 进行单步执行调试

以前应该写过文章给各位展示如何在WinCC 中通过自身控件对脚本(C、VBS)进行脚本诊断和排错。但是也有用户反馈说在编写了一些相对复杂的脚本后,WinCC自身控件无法做到单步调试,也会影响脚本的诊断调试效率。如果能够对WinCC 中的脚本程序设置断点进行单步执行调试就能更高效的完成脚本诊断调试。

工控人加入PLC工业自动化精英社群

接下来就给各位举个简单的栗子介绍一下如何通过“Microsoft Visual Studio 2008”进行 WinCC画面VBS 和全局 VBS 的单步执行调试。

回顾

WinCC 自身的控件“应用程序窗口”可以输出脚本执行中的一些错误并帮助定位错误,也可以通过 Trace 语句在该窗口中输出一些程序中的执行结果来帮助调试。具体操作:

1.在画面中插入“应用程序窗口”并设置其属性:

在弹出的“窗口内容”选择中选择“全局脚本”:

之后弹出的“模板”中选择“GSC Diagnostics”

2. VBS 代码中使用“HMIRuntime.Trace”语句,输出调试时希望看到的结果,例如:

HMIRuntime.Trace 1 & vbNewline

HMIRuntime.Trace Now & vbNewline

HMIRuntime.Trace "变量 a 的值:" & HMIRuntime.Tags("a").Read & vbNewline

HMIRuntime.Trace "变量 b 的值:" & HMIRuntime.Tags("b1").Read & vbNewline

HMIRuntime.Trace 2 & vbNewline

HMIRuntime.Trace 可以输出常数值、字符串以及 WinCC 变量读取值等等。

运行画面点击按钮执行这段代码后,画面中的“应用程序窗口”控件会输出以下结果:

由于 Trace 中都增加了“& vbNewline”(换行),因此每条 Trace 语句都会换行输出。

通过这个控件也可以获取到代码执行中的一些错误,例如上图红框中部分。在编写代码时误将变量名“b”输入成了“b1”,导致产生了一个未知变量的错误。那么通过这个错误指示也可以在代码中快速修正错误。

通过“Microsoft Visual Studio 2008”进行 WinCC画面 VBS 和全局 VBS 的单步执行调试

安装步骤:

在WinCC 基本包安装光盘中提供了 “Microsoft Visual Studio 2008” 的安装程序。

1. 插入 WinCC 安装光盘(以 WinCC V8.0 为例)

进入“InstData\VSRedist\Setup”文件夹。

2. 双击执行“vs_ideredist.exe”

3. 执行“vside.enu”进行安装。如果有 D 盘分区,上一步完成后会在 D 盘生成安装包(如果没有 D 盘会在 C 盘生成安装包):

该程序需要用到 .NET Framework 3.5 ,通常新的操作系统例如 Win11 中不再自动安装 .NET 3.5 ,因此需要联网安装,或进行离线安装。

未联网时会出现无法安装的情况:

.NET Framework 3.5 离线安装(加载操作系统安装 DVD ISO 文件):

以管理员身份运行“CMD”

输入安装命令:

Dism/online/enable-feature/featurename:NetFX3/All /Source:D:\sources\sxs /LimitAccess

“D:”为安装光盘盘符。

.NET Framework 3.5 安装成功后可重新执行“vside.enu”进行安装:

安装成功后即可在开始菜单所有应用中找到“Microsoft Visual Studio 2008”:

“Microsoft Visual Studio 2008”进行 WinCC画面 VBS 和全局 VBS 的单步执行调试步骤

1. 画面 VBS 设置断点单步执行:

激活 WinCC 画面后,打开 “Microsoft Visual Studio 2008”并创建文件:

选择“Windows Script Host”:

2. 附加进程

选择 WinCC 画面运行系统进程:

3. 设置断点

双击想要调试并且正在运行的画面,在代码窗口中点击希望设置断点的代码行。

4. 点击 WinCC 画面中的按钮进行脚本单步调试

在 “Microsoft Visual Studio 2008” 中可以逐步执行脚本,并且可以在下方的立即窗口中输入“?变量名”,回车后即可输出查看变量值,便于对脚本的调试。

5. 全局 VBS 附加进程调试:

工控人加入PLC工业自动化精英社群

全局 VBS 动作被触发后,同样可以进行逐步执行进行调试,也可以在立即窗口中输出查看变量值,便于对脚本的调试。

有了“Microsoft Visual Studio 2008”的加持,对一些逻辑复杂易出错的脚本调试将会有巨大的帮助。

工控人加入PLC工业自动化精英社群

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

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

相关文章

在Linux中从视频流截取图片帧(ffmpeg )

Linux依赖说明: 说明: 使用到的 依赖包 1. ffmpegsudo apt update sudo apt-get install ffmpeg2. imagemagick (选装) (检测图像边缘信息推断清晰度,如果是简单截取但个图像帧>用不到<)sudo apt-get install imagemagick备注: 指令及相关参数说明核心指令: (作用: 执…

WRF-LES与PALM微尺度气象大涡模拟、PALM静态数据预备、PALM驱动数据预报、PALM模拟

查看原文>>>WRF-LES与PALM微尺度气象大涡模拟及ChatGPT在大气科学领域应用 针对微尺度气象的复杂性&#xff0c;大涡模拟&#xff08;LES&#xff09;提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟&#xff0c;这些过程往往与天气…

Parsec无法使用、访问、连接、被墙、被封、800报错解决方案 完美平替软件

最近Parsec出现无法使用、报错等问题&#xff0c;话不多说先上解决办法 方案一&#xff1a;在%appdata%/Parsec/config.txt中&#xff0c;添加代理 app_proxy_address 127.0.0.1 app_proxy_scheme http app_proxy true app_proxy_port 你的http代理端口 方案二&#xff1a;…

计算机网络 第2章 物理层

文章目录 通信基础基本概念信道的极限容量编码与调制常用的编码方法常用的调制方法 传输介质双绞线同轴电缆光纤以太网对有限传输介质的命名规则无线传输介质物理层接口的特性 物理层设备中继器集线器一些特性 物理层任务&#xff1a;实现相邻节点之间比特&#xff08;0或1&…

嘿嘿 解决了Dev C++ 中文乱码(有效版)

这是博主第一篇博客&#xff01;记录一下博主的小小小小解决史&#xff01; 很早就下载用了Dev c &#xff0c;但现在隔了很长时间没去用过了再次打开发现出现中文乱码的现象&#xff01;在网站上翻阅了许久&#xff01;终于解决了问题&#xff01;困扰了许久&#xff01; ——…

Java easypoi导出word表格显示

1.成品 2.依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi…

LabVIEW制系统开发流程介绍

在开发一个LabVIEW电机控制系统时&#xff0c;尤其是涉及多种类型的电机并需实现本地与远程控制时&#xff0c;合理的开发顺序是确保项目高效完成且返工最少的关键。下面介绍如何按照系统需求分阶段开发&#xff0c;从而保障开发的速度与质量&#xff0c;减少返工的风险。 开发…

RAG+Agent在实际业务落地案例分享+项目推荐

RAG+Agent在实际业务落地案例分享+项目推荐 大模型架构的经典分层,即:应用层、工具层、模型层 & AI Infra: 应用层 - 大模型应用:主要以 RAG&AI Agent 初代的模式透出,主要的落地场景包括内部数据分析 - GBI 即生成式 BI、研发辅助提效 - 生成式 Code、面向外部用…

《垃圾回收的算法与实现》-算法-摘抄

本文是书籍《垃圾回收的算法与实现》的摘抄&#xff0c;不涉及算法源码及步骤讲解模块。 预备 对象由头(header)和域(field)构成。 头&#xff1a;对象中保存对象本身信息的部分&#xff0c;主要含有以下信息&#xff1a;对象的大小和种类。 域&#xff1a;对象使用者在对象…

Veeam中国区“十年换四帅”

数据保护厂商Veeam登顶了&#xff01; 傲视群雄 8月&#xff0c;Gartner《2023年全球企业备份和恢复软件市场份额分析报告》显示&#xff0c;Veeam市场占有率居所有厂商中的第一位——其市场份额为15.1%&#xff0c;收入为15亿美元&#xff0c;2023年相比2022年增长11.8%。 数据…

深度学习(七)-计算机视觉基础

计算机视觉 计算机视觉在广义上是和图像相关的技术总称。包括图像的采集获取&#xff0c;图 像的压缩编码&#xff0c;图像的存储和传输&#xff0c;图像的合成&#xff0c;三维图像重建&#xff0c;图像增强&#xff0c;图像修复&#xff0c;图像的分类和识别&#xff0c;目…

Adobe Illustrator非矢量图片的交集利用剪切蒙版实现

AI不支持对于非矢量图片的交集处理&#xff0c;但是可以通过剪切蒙版类似地实现需求。 如下图&#xff0c;字母F是一张PNG图片&#xff0c;为位图文件&#xff08;非矢量&#xff09;。 现在我需要将这种图片与黑色的矩形求交&#xff1a; 将两个目标全部选中&#xff0c;鼠标…

安宝特案例 | AR如何大幅提升IC封装厂检测效率?

前言&#xff1a;如何提升IC封装厂检测效率&#xff1f; 在现代电子产品的制造过程中&#xff0c;IC封装作为核心环节&#xff0c;涉及到复杂处理流程和严格质量检测。这是一家专注于IC封装的厂商&#xff0c;负责将来自IC制造商的晶圆进行保护、散热和导通处理。整个制程繁琐…

Mysql Innodb存储引擎原理—链接如下

Mysql Innodb存储引擎| ProcessOn免费在线作图,在线流程图,在线思维导图 ProcessOn是一个在线协作绘图平台&#xff0c;为用户提供强大、易用的作图工具&#xff01;支持在线创作流程图、思维导图、组织结构图、网络拓扑图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。同…

探索有向图与无向图中深度优先搜索(DFS)的边类型——3×3 网格分析

探索有向图与无向图中深度优先搜索(DFS)的边类型——33 网格分析 一、基本概念二、有向图中的 DFS 边类型分析三、有向图 DFS 的 C 代码实现在图的深度优先搜索(DFS)过程中,边的分类对于理解算法的执行流程及其复杂性至关重要。在有向图和无向图中,DFS 过程中遇到的边可以…

基于单片机的水产养殖饲料自动投喂系统

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图系统框架图设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机…

【鸿蒙 HarmonyOS NEXT】使用屏幕属性display:获取屏幕宽高

✨本人自己开发的开源项目&#xff1a;土拨鼠充电系统 ✨踩坑不易&#xff0c;还希望各位大佬支持一下&#xff0c;在GitHub给我点个 Start ⭐⭐&#x1f44d;&#x1f44d; ✍GitHub开源项目地址&#x1f449;&#xff1a;https://github.com/cheinlu/groundhog-charging-syst…

Java笔试面试题AI答之单元测试JUnit(3)

文章目录 13. 什么是注释以及它们如何在JUnit中有用&#xff1f;什么是注释&#xff08;Annotation&#xff09;&#xff1f;注释在JUnit中的用途 14. 解释如何测试”受保护”方法&#xff1f;1. 使用子类2. 同一包内直接测试3. 反射&#xff08;在支持的语言中&#xff09;4. …

正点原子阿尔法ARM开发板-IMX6ULL(三)——汇编LED驱动实验-上

文章目录 一、原理分析1.1 对于IMX6ULL的IO初始化1.2 IO的复用&#xff08;MUX&#xff09;1.3 电气属性寄存器&#xff08;PAD&#xff09;1.3.1 SRE(bit0)1.3.2 DSE(bit5:3)1.3.3 SPEED(bit7:6)1.3.4 ODE(bit11)1.3.5 PKE(bit12)1.3.6 PUE(bit13)1.3.7 PUS(bit15:14)1.3.8 HY…

(java+Seleniums3)自动化测试实战

一.web自动化测试基础 密码的加密处理--是在前端JavaScript 二.selenium IDE录制 打开火狐浏览器&#xff1a; 点击 寻找更多附加组件 输入&#xff1a; 选择&#xff1a; 跳转&#xff1a;点击 安装完成&#xff0c;打开之后是这个页面&#xff1a; 录制一个新的测试用例在一个…