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

2024-01-09 08:44

本文主要是介绍西门子WinCC的C脚本——对象的事件任务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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动作

四、小结

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

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

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

这篇关于西门子WinCC的C脚本——对象的事件任务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/586543

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

golang 对象池sync.Pool的实现

《golang对象池sync.Pool的实现》:本文主要介绍golang对象池sync.Pool的实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收的压力,下面就来介绍一下,感兴趣的可以了解... 目录sync.Pool的用法原理sync.Pool 的使用示例sync.Pool 的使用场景注意sync.

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1

Java实例化对象的​7种方式详解

《Java实例化对象的​7种方式详解》在Java中,实例化对象的方式有多种,具体取决于场景需求和设计模式,本文整理了7种常用的方法,文中的示例代码讲解详细,有需要的可以了解下... 目录1. ​new 关键字(直接构造)​2. ​反射(Reflection)​​3. ​克隆(Clone)​​4. ​反序列化