0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

WINCC使用系统函数和运行系统脚本

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PCL自动化 2021-03-10 15:59 次阅读

使用系统函数和运行系统脚本

运行系统脚本 (Panels, RT Advanced, RT Professional)

运行系统脚本

指代用户自定义函数和局部脚本中所有活动的通用术语。

函数

指代系统函数和用户自定义函数的通用术语。

系统函数

系统函数是所有随 WinCC 一同提供的函数。系统函数可应用在函数列表、用户自定义函数或局部脚本中。

用户自定义函数

用户自定义函数是指在“脚本”编辑器中编写的函数。为了更准确的加以说明,本文档中使用术语“用户自定义 VB 函数”和“用户自定义 C 函数”。

局部脚本

局部脚本是指在使用的位置直接创建的脚本(例如对象属性),并且具有周期性或非周期性触发器。为了更准确的加以说明,本文档中使用术语“局部 VB 脚本”和“局部 C 脚本”。

VBS/VBScript

Visual Basic Script 的缩写形式

应用运行系统脚本

下图可作为应对编程任务的决策指南:

o4YBAGBIfa6AftGXAABhWeZt9D8721.png

WinCC RT Advanced 和面板不支持局部脚本。

自定义函数或局部脚本?

使用用户自定义的函数或者使用局部脚本完成编程任务,这取决于应用目的并最终取决于用户自定义函数或局部脚本的数量。

局部脚本可用于各种后台活动,例如日常打印或记录、变量的监视或者计算的执行。

通过自定义函数,只需创建一次就可以在项目中重复使用代码。需要时,只需调用相应的自定义函数即可,而无需多次输入代码。这样代码将更加清晰并易于维护。

系统函数

● 函数列表

发生特定事件时,可通过函数列表来执行组态的系统函数。

● 用户自定义函数

如果 HMI 设备支持用户自定义函数,可以将系统函数与用户自定义函数代码中的指令和条件结合使用。这样,便可以根据特定的系统状态来执行自定义函数。此外,还可以计算系统函数的返回值。利用返回值可以执行测试函数,继而影响函数流。

● 函数列表

组态函数列表时,从按类别排序的选择列表中选择系统函数:

● 用户自定义函数

如果在用户自定义函数中使用系统函数,可以在选择列表中进行选择。要打开选择列表,请使用快捷键或单击 。

用户定义的函数 (Panels, RT Advanced, RT Professional)

自定义函数可用于以下情况:

● 组态函数列表

在自定义函数中,自定义函数和系统函数可以按一定的条件来执行,还可以重复执

行。然后将该用户自定义函数添加到函数列表中。

● 编写新函数

自定义函数仅在定义它们的项目中有效。对于用户自定义函数,可定义传送参数和返回

值以实现数值的转换。

在函数列表中只能使用属于同一种编程语言的用户自定义函数。选择的首个用户自定义函

数将决定随后在该函数列表中可选择的是 VB 函数还是 C 函数。

自定义函数的组织

通过“脚本”编辑器创建自定义函数。更多信息,请参见““脚本”编辑器 (页 7082)”。自定义函数保存在项目中。要保护用户自定义函数,请设置专有技术保护。

● 项目树

用户自定义函数显示在项目树的“VB 脚本”(VB scripts) 或“C 脚本”(C scripts) 下。

● 函数列表

用户自定义函数显示在函数列表的“VB 函数”(VB functions) 或“C 函数”(C functions) 下。

● 用户自定义函数

如果在用户自定义函数中使用系统函数,可以在选择列表中进行选择。要打开选择列

表,请使用快捷键或单击 。

局部脚本 (RT Professional)

可将局部脚本用于以下操作:

● 动态化对象

可使用局部脚本确定运行系统中某对象属性的值。例如,通过此方法可根据变量值更改

颜色。

● 在任意时间点执行任务。

可使用局部脚本规划工作,例如在每天换班交接时打印输出日志。

局部脚本的属性

在使用的位置直接创建局部脚本。局部脚本具有以下属性:

● 预定义名称

● 预定义参数

● 预定义返回值(可选)

● 只能在使用的位置进行更改

● 不具有触发器

● 调用自定义函数、系统函数

触发器

在运行系统中执行局部脚本时需要使用触发器。触发器可以在创建局部脚本时自动确定,也可以由项目经理指定。

WinCC 支持以下触发器:

● 非周期性触发器,例如,规划单次终止运行系统以进行维护工作。

● 周期性触发器,例如,规划一项启动日常日志打印的作业。

● 事件,例如,单击按钮时。

下表列出了不同类型的触发器:

pIYBAGBIfc6APtjoAACprSroSN8127.png

触发器可用于以下编辑器:

● 调度程序

首先需要在调度程序中组态触发器。然后将该触发器连接到局部脚本或函数列表。

● 画面

要对对象属性做动态化处理,首先应在相应画面的属性列表中组态局部脚本。

在创建局部脚本时会自动确定触发器。可更改该触发器,例如可更改为变量触发器。

关于函数列表的基础知识

原理

针对对象(例如画面对象或任务等)的事件来组态函数列表。可以将函数列表精确地组态到每个事件上。可用事件取决于所选择的对象和HMI设备。

组态函数列表

通过从下拉列表中选择系统函数和自定义函数来组态函数列表。系统函数根据类别排列在选择列表中。

在函数列表中只能使用属于同一种编程语言的自定义函数。选择的首个用户自定义函数将决定随后在该函数列表中可选择的是用户自定义 VB 函数还是用户自定义 C 函数。哪些编程语言可用取决于所选的 HMI 设备。

步骤

要组态函数列表,请按如下步骤进行操作:

1. 打开对象所在的编辑器。

2. 选择对象。

3. 在巡视窗口中单击“属性 > 事件”(Properties> Events)。选择要对其组态函数列表的事件。

4. 在巡视窗口的下拉列表中标记“<添加函数>”() 条目。

5. 从选择列表中选择所需的系统函数或用户自定义函数。也可输入该系统函数或用户自定义函数的名称。

系统函数或自定义函数已输入到函数列表中。

6. 如果该系统函数或自定义函数具有参数,则为参数选择合适的值。

7. 如果要向函数列表中添加其它系统函数或用户自定义函数,请重复步骤 4) 到步骤 6)。

函数列表组态已经完成。除了组态的事件,函数列表的状态也显示在巡视窗口中。在运行系统中发生组态的事件时,函数列表从上至下执行一遍。

更改系统函数或自定义函数的顺序

1. 在函数列表中选择所需的系统函数或自定义函数。

2. 然后在巡视窗口中单击相应的方向箭头,直到该系统函数或自定义函数移动到所需位置。

“脚本”编辑器 (Panels, RT Advanced, RT Professional)

“脚本”编辑器具有诸如自动完成和语法突出显示等功能,有助于用户自定义函数的创建。

可以使用“指令”(Instructions) 任务卡插入频繁使用的指令的代码模板。

访问 HMI 变量 (Panels, RT Advanced, RT Professional)

通过 VBS 或 C,可访问项目中已创建的 HMI 变量。可在运行系统中通过用户自定义函数更改或读取 HMI 变量的值。

还可创建局部变量,作为计数器或缓冲器。每个局部变量都必须经过初始化,以防止由于错误写入局部变量而导致的错误。

HMI 变量

● WinCC Runtime Advanced 和面板

在变量映像中创建的变量值将保存在用户自定义函数中。然后,会将变量值更新为设置周期时间。用户自定义函数首先会访问上一个周期中读取的变量值。

如果变量名称与项目中 VBS 的命名约定匹配,则可按如下方式在用户自定义函数中使用该变量。

'VBS_Example_03

If BeltDriveOilTemperature > 100 Then [instruction]

如果项目中的变量名称与 VBS 命名约定不匹配,则必须通过“SmartTags”列表引用该变量。在以下示例中,变量名称包含“&”字符,其不符合 VBS 的命名约定。

'VBS_Example_04

SmartTags("Test&Trial")= 2005

● WinCC Runtime Professional

访问功能与在 HMI 设备中使用 WinCC Runtime Advanced 和面板进行访问相同。还可以以异步方式访问变量值。PLC 中的变量值以异步访问方式直接访问。在局部脚本或用户自定义 C 函数中按如下方式访问变量值:

– SmartTags 列表 (VBS)

– 带有 Read-/Write 方法的 Tags 列表 (VBS)

– GetTag 函数 (C)

– SetTag 函数 (C)

当调用方法或用户自定义函数时,立即读取 PLC 中的变量值。变量值并不定期更新,这与从变量映像中读取的情况不同。

运行系统脚本

PLC 数组元素的索引可以任何数字开头。但在 WinCC 中,始终从 0 开始索引。例如,PLC 变量“Array [1..3] of Int”映射到 WinCC 中的“Array [0..2] of Int”。在脚本中访问数组时,须注意正确的索引顺序。

访问带有动态名称的 HMI 变量(WinCC Runtime Advanced 和面板)

用户自定义 VB 函数通过变量名称访问变量值。可以以这样一种方式来指定变量名称,即变量名称在用户自定义函数运行时构成。

如果只是在画面中调用用户自定义 VB 函数且其中的 HMI 变量还用在其它位置,例如,在 I/O 字段中使用,则出于性能方面的原因,应将该 HMI 变量组态为“操作时循环”采集模式。

如果访问用户自定义 VB 函数且当前显示的画面中未使用 HMI 变量,则将 HMI 变量组态为“循环连续”采集模式。这样可确保该变量的当前值始终可用。

示例:更换在 HMI 设备上当前显示的操作模式。

在本示例中,使用系统函数“SetDeviceMode”在 HMI 设备上切换“在线”和“离线”模式。也可在 HMI 设备上显示当前设置的操作模式。

已经创建一个画面。

在该示例中需要一个 HMI 变量和一个文本列表以及下列设置:

HMI 变量:

OperatingMode 无 Bool

文本列表:

ShowOperatingMode Bit (0/1) 1: 操作模式:“在线”0: 操作模式:“离线”

步骤

1.创建上面所示的“OperatingMode”HMI 变量。

2.创建上面所示的“ShowOperatingMode”文本列表。

3. 打开画面并插入一个可将操作模式改为“在线”的按钮。

4. 在巡视窗口中单击“属性 > 事件”(Properties> Events)。选择“按下”事件。

5. 对“按下”事件组态系统函数“SetDeviceMode”。该系统函数可在“设置”下的选择列表中找到。

6. 为“模式”参数选择“在线”条目。

7. 对“按下”事件组态系统函数“SetBit”。该系统函数可在“位处理”下的选择列表中找到。

8. 从选择列表中为参数“变量”选择 HMI 变量“操作模式”。

9. 在过程画面中添加一个可将操作模式改为“离线”的按钮。

10.重复步骤 4 至 7。为“模式”参数选择“离线”条目。组态系统函数“ResetBit”代替系统函数“SetBit”。

中间结果

在运行系统中可使用这两个按钮切换 HMI 设备的操作模式。

想要在 HMI 设备的输出域中显示当前设置的操作模式。

步骤

1. 在过程映像中创建“符号 I/O 域”。在巡视窗口中单击“属性 > 属性”(Properties>

Properties)。

2. 在“常规”(General) 组中进行如下设置:

– 选择“输出”作为“模式”。

– 选择文本列表“显示操作模式”作为“文本列表”。

– 选择“操作模式”作为“变量”。

结果

使用按钮更改操作模式时,始终显示 HMI 设备上当前设置的操作模式。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WinCC
    +关注

    关注

    6

    文章

    204

    浏览量

    47957
  • 脚本函数
    +关注

    关注

    0

    文章

    4

    浏览量

    1806

原文标题:WINCC 使用系统函数和运行系统脚本

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何优化智能系统运行效率

    智能系统,无论是在工业自动化、智能家居还是个人设备中,都扮演着越来越重要的角色。随着技术的发展,用户对智能系统的期望也在不断提高,这要求系统必须具备更高的运行效率。 二、影响智能
    的头像 发表于 10-29 10:02 148次阅读

    Linux计划任务crontab运行脚本不正确的问题

    写好的程序希望在崩溃之后能够自启动,于是利用linux的crontab功能,添加一个计划任务,每分钟执行一个脚本查看需要监控的进程是否还在,如果不在则启动之,否则不做任何事情。这么一个简单的脚本在crontab中运行和在shel
    的头像 发表于 10-23 13:36 309次阅读

    WinCC 7.5入门指南

    WinCC 7.5入门指南
    发表于 10-21 10:37 3次下载

    如何由系统函数求频率响应

    频率响应函数表征了测试系统对给定频率下的稳态输出与输入的关系,可以通过系统函数(或称为传递函数)来求解。以下是由
    的头像 发表于 10-18 09:32 504次阅读

    什么叫系统的频率响应函数?它和传递函数有何关系

    系统的频率响应函数(Frequency Response Function, FRF)是描述线性时不变(Linear Time-Invariant, LTI)系统在不同频率下输入和输出之间关系的数学
    的头像 发表于 10-18 09:29 906次阅读

    执行shell脚本的方式包括什么

    执行Shell脚本的方式有很多种,以下是一些常见的方法: 直接运行脚本文件 在命令行中,可以直接使用脚本文件的路径来运行脚本。例如: ./script. sh 这种方式需要确保
    的头像 发表于 08-30 15:17 271次阅读

    怎么由系统函数判断滤波器的类型

    不同的应用场景。 系统函数的定义 系统函数,也称为传递函数,是描述线性时不变(LTI)系统输入和
    的头像 发表于 08-15 10:30 1421次阅读

    楼宇自动化系统:BACnet转OPC UA协议网关与WinCC系统的无缝集成

    利用BACnet转OPC UA协议网关实现楼宇设备与WinCC系统的对接可以实现更高效地数据集成、精准的环境监控以及提升楼宇设备的智能化管理和控制,我们一起来详细了解吧。 一、什么是BACnet转
    的头像 发表于 08-13 15:59 378次阅读
    楼宇自动化<b class='flag-5'>系统</b>:BACnet转OPC UA协议网关与<b class='flag-5'>WinCC</b><b class='flag-5'>系统</b>的无缝集成

    钡铼空调协议转Modbus网关BL120AC实现设备对接WinCC系统

    WinCC系统需要与各种空调协议设备进行数据交换的项目中,钡铼空调协议转Modbus网关BL120AC是如何实现将各类的空调设备数据对接到WinCC系统的呢?本文将带你一探究竟! 首
    的头像 发表于 08-06 12:03 208次阅读
    钡铼空调协议转Modbus网关BL120AC实现设备对接<b class='flag-5'>WinCC</b><b class='flag-5'>系统</b>

    如何优化HLS仿真脚本运行时间

    需求:由于自己目前一个 HLS 仿真脚本需要运行 1个多小时,先打算通过打印时间戳的方式找出最耗时的部分,然后想办法优化。
    的头像 发表于 02-23 09:29 636次阅读

    系统内存和运行内存的区别

    系统内存和运行内存都是计算机中重要的概念,它们在计算机的存储和运行方面起着不可或缺的作用。虽然它们与计算机存储和运行息息相关,但是它们具有不同的功能和实现方式。接下来我将详细介绍
    的头像 发表于 01-15 16:32 3119次阅读

    系统函数怎么判断低通高通

    判断一个系统函数是低通还是高通,可以通过多种方法和指标来进行分析。下面将介绍常用的几种判断方法,并详细解释每种方法的原理和应用。 频率响应分析法 通过分析系统函数的频率响应特性,可以判
    的头像 发表于 01-12 11:06 3106次阅读

    Linux系统中调用脚本的常见方法

    在linux系统中有多种方法可以在系统启动后调用脚本,接下来介绍几种常见的方法
    的头像 发表于 12-13 18:16 1002次阅读

    javascript运行在什么的脚本语言

    avaScript 是一种运行在客户端的脚本语言,也是目前最流行的脚本语言之一。它可以嵌入到 HTML 页面中,通过浏览器来解释和执行。这意味着它不需要独立的编译器,而是由浏览器动态执行,因此它是
    的头像 发表于 12-03 11:33 817次阅读

    js脚本怎么在浏览器中运行

    在浏览器中运行JavaScript脚本是一种常见的方式,因为JavaScript是一种在Web浏览器中执行的脚本语言。下面是一个详细的,最少1500字的文章,介绍如何在浏览器中运行
    的头像 发表于 11-27 16:46 2731次阅读