WINCC8.0脚本调试方法

前言

   WINCC是西门子推出的过程可视化系统(SCADA),是基于PC的HMI系统,兼容WINDOWS各种系统,除了强大的图形系统之外,WINCC还具有在线历史趋势、报警记录、用户管理、用户归档等高级功能,而且WINCC还提供了Visual Basic Script(VBS)脚本、C语言脚本和Visual Basic for Applications(VBA)脚本的支持。其中VBS和C脚本可以在运行界面中执行脚本调试。

     在写脚本过程中,经常会出现各种错误,特别是刚接触WINCC或者VBS不是很熟悉,VBS本身编译条件并本身很严禁有些错误不能通过编译计时发现而在脚本执行过程中无法正常执行,这样脚本的调试就很重要了,能让我们快速的发现问题所在提高效率。这里主要介绍使用脚本里面自带的Trace(VBS)Msgbox和printf(C)进行调试

博途工控人平时在哪里技术交流博途工控人社群

博途工控人平时在哪里技术交流博途工控人社群

注意事项:新建项目后先在计算机属性里面找到启动,勾选全局脚本运行系统。否则脚本无法运行

图片

1、VBS脚本调试

1.1使用Trace函数可以在画面的脚本诊断窗口输出相应的内容。使用方法:HMIRuntime.Trace Hello,Hello就是想要输出的内容,不过内容仍然要遵守VBS脚本的语法规则。画面脚本诊断窗口的插入方法见附图:

图片

    

智能对象里面选择:应用程序窗口,然后在画面编辑器工作区域拖动鼠标,选择一个合适的矩形大小,松开鼠标后弹出窗口内容对话框,选择全局脚本,点击确定,然后弹出模板对话框选择GSC Diagnostics 点击确定。然后在属性窗口里面设置相应的属性下面测试一下Trace函数:

新建按钮命名为Hello TRACE在单击鼠标选择VBS动作如下图:

图片

通过脚本输出“Hello”文字:   

图片

下面的脚本是Hello Trace按钮的脚本,全局脚本诊断里面显示的就是关于脚本里面的vbCrlf,vbCrLf是Visual Basic(VB,一种编程语言)中的一个字符串常数,即“Chr(13) & Chr(10)”(回车符与换行符连接在一起),是换行的意思其他常用的常数: 

保存,运行效果如下:   

图片

          

Msgbox指令的使用方法如下:

图片

运行效果    

图片

          

2、C脚本调试

C脚本的诊断输出使用printf()函数,函数的使用格式如下:printf("<格式化字符串>", <参量表>);仍然上面的例子输出一行字符串:

图片

    

图片

          

在使用printf进行格式话输出的时候,在进行格式化输出的时候,都是“%”字符开始,使用的规定符如下:

3、总结

利用Trace和printf函数,可以在诊断窗口输出变量的值、对象的属性、函数返回结果、字符常量等,如果脚本有错误,在诊断窗口里面也能够输出相关信息,在上面的的文档里面有介绍。

图片

在做比较复杂功能的时候,如果脚本代码较多,测试过程中无法正常执行,可以在不确定的代码行使用Trace(printf)输出一个内容做标记,看看执行到哪里不执行了,使用这种方法比使用msgbox(Messagebox)函数使用对话框来调试要方便很多。根据提示内容,可以看出出现错误的画面名称、函数对象、第几行,错误的内容等,这样就能很快的分析判断错误位置和原因,提高编

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

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

相关文章

华为OD机试真题-考古学家-2023年OD统一考试(C卷)

题目描述: 有一个考古学家发现一个石碑,但是很可惜,发现时其已经断成多段,原地发现n个断口整齐的石碑碎片。为了破解石碑内容,考古学家希望有程序能帮忙计算复原后的石碑文字组合数,你能帮忙吗? 输入描述: 第一行输入n,n表示石碑碎片的个数。 第二行依次输入石碑碎片上…

什么是PHP的SOLID原则?

SOLID 是面向对象编程&#xff08;OOP&#xff09;中的五个设计原则的首字母缩写&#xff0c;这些原则有助于创建可维护、灵活且可扩展的软件。以下是 SOLID 原则的概述&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle - SRP&#xff09;&#xff1a; 一…

[Angular] 笔记1:开发设置 , 双向绑定

1 设置开发环境 1.1 安装 node 下载 node&#xff0c;因为要使用 npm 工具&#xff0c;教程中使用 Angualr 14, 最新版 node 20 用不了&#xff0c;安装 node 16 就可以。 1.2 安装 Angular CLI Angular CLI 是用于创建 Angular 工程的工具集&#xff0c;使用如下命令&…

(第61天)多租户架构(CDB/PDB)

背景介绍 Oracle 的 CDB 和 PDB 是 Oracle 12C 及以上版本中引入的新概念,用于管理多租户数据库环境。 Oracle 数据库是商业数据库领域中的翘楚,其强大的功能和高可靠性备受企业用户追捧。而随着云计算和大数据时代的到来,Oracle 也不断推出新的技术以适应这些变化。CDB 技…

我为什么要当程序员?

阿七毕业于上海一所大学的管理学院&#xff0c;在读期间没写过一行 Java 代码。 管理学院&#xff0c;你出来能干啥呀&#xff1f;什么公司&#xff0c;会让你一个刚毕业的学生当管理呢&#xff1f;所有我们学院的同学&#xff0c;很多都跨科目考研、出国、创业。 家里没钱的…

【leetcode】链表总结

说明&#xff1a;本文内容来自于代码随想录 链表基本操作 https://leetcode.cn/problems/design-linked-list/ 删除节点 https://leetcode.cn/problems/remove-linked-list-elements/description/&#xff0c;删除节点&#xff0c;虚拟头节点。定义两个节点&#xff0c;分别…

『OPEN3D』1.5.2 动手实现点云栅格/体素最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 NEARBY6实现的voxel可视化 一种NEARBY14实现的可视化voxel

【LeetCode每日一题】152. 乘积最大子数组

题目&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续子数组&#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 思路 由于做了53. 最大子数组和 下意识觉得求出所有元素的以该元素结尾的连续…

QuPath学习 ② HE scripts

文献中详细介绍了处理H&E scripts的详细过程&#xff0c;计算H&E染色的全切片中的肿瘤基质百分比。 步骤&#xff1a; 1.将相关幻灯片添加到QuPath项目中。 2.对于项目中的每张幻灯片&#xff0c;围绕一个有代表性的肿瘤区域绘制一个注释。 3.运行“Estimate _ bac…

LeetCode190. Reverse Bits

文章目录 一、题目二、题解 一、题目 Reverse bits of a given 32 bits unsigned integer. Note: Note that in some languages, such as Java, there is no unsigned integer type. In this case, both input and output will be given as a signed integer type. They sho…

【Flink-Sql-Kafka-To-ClickHouse】使用 FlinkSql 将 Kafka 数据写入 ClickHouse

【Flink-Sql-Kafka-To-ClickHouse】使用 FlinkSql 将 Kafka 数据写入 ClickHouse 1&#xff09;需求分析2&#xff09;功能实现3&#xff09;准备工作3.1.Kafka3.2.ClickHouse 4&#xff09;Flink-Sql5&#xff09;验证 1&#xff09;需求分析 1、数据源为 Kafka&#xff0c;定…

每日一博 - Cache Miss Attack

文章目录 概述解决思路缓存空值键并设置短期 TTL&#xff08;生存时间&#xff09;使用布隆过滤器 伪代码1. 缓存空值键并设置短期 TTLa. 缓存空值键b. 设置短期 TTL 2. 使用布隆过滤器a. 集成布隆过滤器b. 查询布隆过滤器 进一步优化系统性能的建议 概述 在缓存管理中&#x…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 4. 模型生成1&#xff09;模型导入及调用2&#xff09;相关代码&#xff08;1&#xff09;布局文件&#xff08;2&#xff…

bug-ku--计算器

F12 maxlength"1" 限制的是你能输入几位数 改成3就行 来那个数相相加就能输入了 flag{464f5f406e7e182014500fc49f7aedfc}

Mysql和Oracle的区别

MySQL 和 Oracle 是两种常用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它们有许多相似之处&#xff0c;也有一些显著的不同点。 相同点&#xff1a; 关系型数据库&#xff1a; MySQL 和 Oracle 都是关系型数据库&#xff0c;采用表&#xff08;table&a…

Vue3+Ts项目——登录页面跳转到首页

前言&#xff1a;根据我上篇所实现的左边菜单栏之后&#xff0c;需要登录成功跳转home页面。主要分为三步。 第一步&#xff1a;创建三个ts文件结合pinia缓存登录信息和token src\api\userTypes.ts 就是个接口类方便页面和另一个ts文件数据传递&#xff0c;其实也可以不用 …

【异步绘制】UIView刷新原理 与 异步绘制

快捷目录 壹、 iOS界面刷新机制贰、浅谈UIView的刷新与绘制概述一.UIView 与 CALayer1. UIView 与 CALayer的关系2. CALayer的一些常用属性contents属性contentGravity属性contentsScale属性maskToBounds属性contentsRect属性 二.View的布局与显示1.图像显示原理2.布局layoutSu…

【UE】在蓝图中修改材质实例的参数的两种方式

目录 方式一、通过“在材质上设置标量/向量参数值”节点实现 方式二、通过“设置标量/向量参数值”节点实现 方式一、通过“在材质上设置标量/向量参数值”节点实现 1. 在材质中设置了两个参数 2. 创建材质实例 3. 创建一个蓝图&#xff0c;对静态网格体赋予材质实例 在事件…

【C++初阶】类与对象(上)

类与对象&#xff08;上&#xff09; 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符4.2 封装 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小7.2 结构体内存对齐规则 8.this指针8.1 this指针的引出8.2 this指针的特性…

C语言——高精度减法

相较于高精度加法&#xff0c;高精度减法会有一些不同&#xff0c;如果是num1 - num2的话&#xff0c;如果num1 > num2时&#xff0c;也就是结果为正时&#xff0c;只需要对每一位进行按位相减&#xff0c;如果不够就向下一位借位&#xff1b;但是如果是num1 < num2时&am…