西门子WinCC的C脚本——对象的事件任务

news2024/10/6 2:26:44

 

1、 全局脚本编辑器;

2、 对象的属性任务;

3、 对象的事件任务。

本文探讨一下用C脚本来实现对象的事件任务。

一、例程说明引文:博途工控人平时在哪里技术交流博途工控人社群

如图1所示,为本例程的运行画面。本例程实现以下功能:

画面主要由两个对象构成,输入/输出域关联一个内部变量(temp1),并实时显示其值。按钮("点击+1")则响应鼠标点击事件,每点击一下按钮,temp1自增1。按钮的实现响应通过C脚本来实现。

图1 事件任务实例

二、配置输入/输出域

图2 输入/输出域

输入/输出域的配置不做过多介绍,如图2所示。将其输出值与内部变量temp1关联,并配置成"有变化时"更新即可。

三、编写C脚本,响应按钮事件

如图3所示,在按钮的"事件"选项卡中,为"鼠标动作"事件配置事件响应,选择"C动作",即为C脚本。点击即可进入C动作脚本编辑窗口,如图4所示。

这即是C脚本的入口之一:事件任务入口。

图3 按钮动作

图4 动作脚本

在图4所示的脚本编辑窗口中,编写合适的C代码。本例程实现的功能比较简单,当按钮被点击后,即触发了按钮的事件响应动作,完成以下任务:

1、 通过函数GetTagDouble读取内部变量"temp1"的当前值,并赋值给变量i(由于"temp1"定义为32为浮点数,因此,这里局部变量i声明为double型);

2、 i自增1;

3、 当i>10时,令i=0。该代码的目的是限制"temp1"的值,不让其无限制的增大;

4、 通过函数SetTagDouble将当前i值赋值给内部变量"temp1",即实现每点击一次按钮,"temp1"自增1的功能。

代码比较简单,不做详细介绍。其中GetTagDouble和SetTagDouble时WinCC的内部函数,其具体用法,留待以后集中讨论。

通过C脚本实现的事件响应动作,编译无误后,其符号为带字母C的绿色闪电,如图5所示。

图5 按钮的C动作

四、小结

我们知道,一个动作要被执行,必须有相应的触发器。本例中的按钮事件动作的触发器即为鼠标的点击动作,鼠标点击按钮一次,动作被触发一次,动作内的代码就会执行一次;再次点击,则再次执行。

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

驼子以为,要想理解脚本动作的执行过程,从事件任务响应开始学起是个不错的选择,它无需我们额外的分配触发器,却能很清晰的捋顺动作的执行过程。

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

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

相关文章

大数据 Hive - 实现SQL执行

文章目录 MapReduce实现SQL的原理Hive的架构Hive如何实现join操作小结 MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。 但是对于经常需要进行大数据计算的人&#xff…

没经验没资金,适合穷人创业项目的低成本生意

什么人可以赚到钱呢?不管你怎么都赚不到,那归根结底是因为你身边没有明白人。像我们普通人一没经验二没资金三没人脉,该如何创业呢? 第一点,如果你不知道干什么,就做黄牛,只当渠道,只…

Web前端篇——ElementUI之el-scrollbar + el-backtop + el-timeline实现时间轴触底刷新和一键返回页面顶部

ElementUI之el-scrollbar el-backtop el-timeline实现时间轴触底刷新和一键返回页面顶部。 背景:ElementUI的版本(vue.global.js 3.2.36, index.css 2.4.4, index.full.js 2.4.4) 废话不多说,先看动…

猫头虎分享已解决Bug || Error: ImagePullBackOff (K8s)

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

(二)Explain使用与详解

explain中的列 sql语句: EXPLAIN SELECT * from user WHERE userId=1340; 执行结果: 1. id列 id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。 id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行…

python股票分析挖掘预测技术指标知识之蜡烛图指标(6)

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包。 我们已经初步的接触与学习其中数…

7.27 SpringBoot项目实战 之 整合Swagger

文章目录 前言一、Maven依赖二、编写Swagger配置类三、编写接口配置3.1 控制器Controller 配置描述3.2 接口API 配置描述3.3 参数配置描述3.4 忽略API四、全局参数配置五、启用增强功能六、调试前言 在我们实现了那么多API以后,进入前后端联调阶段,需要给前端同学提供接口文…

软件测试|Python中的变量与关键字详解

简介 在Python编程中,变量和关键字是非常重要的概念。它们是构建和控制程序的基本要素。本文将深入介绍Python中的变量和关键字,包括它们的定义、使用方法以及一些常见注意事项。 变量 变量的定义 变量是用于存储数据值的名称。在Python中&#xff0…

java每日一题——输出9x9乘法表(答案及编程思路)

前言: 打好基础,daydayup! 题目:输出下图9x9乘法表 编程思路:java只能输出行,不能输出列,所以考虑好每一行输出的内容即可 public class demo {public static void main(String[] args) {for (int i 1; i…

静态网页设计——清雅古筝网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1T64y1K7Zn/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

物理机与vm文件共享与传输的设置方法

今天跟各位小伙伴,分享一下物理机与vm虚拟机文件共享与传输的设置方法,以供大家参考! 一、物理机与虚拟机文件共享设置方法 第一步:先关闭虚拟机(客户机) 第二步:选择编辑虚拟机设置 第三步&am…

Java研学-Servlet3.0文件上传下载

一 文件上传 1 介绍 用户选择本地文件资源保存到服务器上,Servlet需要将二进制数据以文件保存到服务器磁盘中,再将磁盘路径保存到数据库中 2 项目搭建 创建web项目,并添加对应jar包(JSTL) 3 API HttpServletRequest 方法–从请求中解析上…

mysql使用load data导入数据

windows环境,使用bat脚本sql脚本 bat脚本 echo off ::调用数据入库sql脚本 set hour%time:~0,2% if "%time:~0,1%"" " set hour0%time:~1,1% set now%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2% echo %now% ::数据库地址…

【Python机器学习】朴素贝叶斯分类器

朴素贝叶斯分类器是与线性模型非常相似的一种分类器,它的训练速度往往更快,但是泛化能力比线性分类器稍差。 朴素贝叶斯分类器高效的原因是:通过单独查看每个特征来学习参数,并从每个特征中收集简单的类别统计数据。 scikit-lea…

C盘突然满了,怎么清理

方法一 winr 输入%tem%按回车键,出现的这些都是缓存文件可以按删除键删掉 方法二 winr 输入cleanmgr按回车键,选择清理的盘符,这里选择C盘,点击确定删除 方法三 在系统设置里手动删除 找到电脑里面的设置选项,找…

径向基函数插值

一、径向基函数的定义 如果 ∣ ∣ x 1 ∣ ∣ ∣ ∣ x 2 ∣ ∣ ||x_1||||x_2|| ∣∣x1​∣∣∣∣x2​∣∣,那么 ϕ ( x 1 ) ϕ ( x 2 ) \phi(x_1)\phi(x_2) ϕ(x1​)ϕ(x2​) 的函数 ϕ \phi ϕ 就是径向函数,即仅由 r ∣ ∣ x ∣ ∣ r||x|| r∣∣…

汽车雷达:实时SAR成像的实现

摘要: 众所周知,点云成像是目前实现汽车雷达感知最流行的方案,尤其是采用多级联实现的4D点云成像雷达,这是目前最有希望实现产品落地的技术方案之一。 今天重点分享关于汽车雷达SAR成像相关技术内容,这也证实了4D点云成像雷达并不一定就是汽车雷达成像唯一的方案,在业内…

Pytorch常用的函数(六)常见的归一化总结(BatchNorm/LayerNorm/InsNorm/GroupNorm)

Pytorch常用的函数(六)常见的归一化总结(BatchNorm/LayerNorm/InsNorm/GroupNorm) 常见的归一化操作有:批量归一化(Batch Normalization)、层归一化(Layer Normalization)、实例归一化(Instance Normaliza…

【Linux驱动】Pinctrl子系统 | GPIO子系统 | 基于子系统的LED驱动程序

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🛷Pinctrl子系统🥅设备树中的Pinctrl子系统 🛷GPIO子系统…

ComfyUI报错AttributeError: module ‘cv2.gapi.wip.draw‘ has no attribute ‘Text‘

ComfyUI在安装comfyui-reactor-node插件,然后启动之后突然报错: AttributeError: module cv2.gapi.wip.draw has no attribute Text 这是怎么回事呢? 于是四处搜寻答案。 总之就是opencv-python版本的问题导致的。 我将有可能解决办法的方法进行了总结。 下面列出所有解…