西门子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

相关文章

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资