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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-03-18 10:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

运行系统脚本

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

函数

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

系统函数

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

用户自定义函数

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

局部脚本

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

VBS/VBScript

Visual Basic Script 的缩写形式

应用运行系统脚本

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

f20c7924-8631-11eb-8b86-12bb97331649.png

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

自定义函数或局部脚本?

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

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

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

系统函数

● 函数列表

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

● 用户自定义函数

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

● 函数列表

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

f3223b82-8631-11eb-8b86-12bb97331649.png

● 用户自定义函数

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

f509517e-8631-11eb-8b86-12bb97331649.png

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

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

● 组态函数列表

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

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

● 编写新函数

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

值以实现数值的转换。

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

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

自定义函数的组织

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

● 项目树

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

● 函数列表

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

● 用户自定义函数

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

局部脚本 (RT Professional)

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

● 动态化对象

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

颜色。

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

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

局部脚本的属性

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

● 预定义名称

● 预定义参数

● 预定义返回值(可选)

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

● 不具有触发器

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

触发器

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

WinCC 支持以下触发器:

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

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

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

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

f60f70c6-8631-11eb-8b86-12bb97331649.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 中的变量值。变量值并不定期更新,这与从变量映像中读取的情况不同。

f98acd36-8631-11eb-8b86-12bb97331649.png

fcb2b564-8631-11eb-8b86-12bb97331649.png

运行系统脚本

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 V6
    +关注

    关注

    0

    文章

    2

    浏览量

    5008

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LUA例程-常用的回调函数使用说明

    详细说明LUA脚本函数功能和对应的应用实例。对于LUA脚本编程有很大的帮助和提高技能。
    发表于 11-24 16:43 0次下载

    探索操作系统底层的关键接口

      在linux中,将程序的运行空间分为内核空间与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程序不能访问内核数据,也无法使用内核函数。当用户进程必须访问内核或使用某个内核函数时,就得使用
    的头像 发表于 11-08 12:42 578次阅读

    关于系统链接脚本的介绍

    一、队伍介绍 本篇为蜂鸟E203系列分享第四篇,本篇介绍的内容是系统链接脚本。 二、如何实现不同的下载模式? 实现三种不同的程序运行方式,可通过makefile的命令行指定不同的链接脚本
    发表于 10-30 08:26

    【技术分享】正确编写SysV Init脚本以实现Systemd兼容(上)

    嵌入式的ubuntu系统如何写好SysVInit脚本呢?与system服务又有什么差别呢?一起随着文章来探究吧。问题背景许多传统Linux服务仍使用SysVInit脚本(/etc/init.d
    的头像 发表于 10-28 11:45 533次阅读
    【技术分享】正确编写SysV Init<b class='flag-5'>脚本</b>以实现Systemd兼容(上)

    直流滤波器 保障直流系统稳定运行的关键

    在电力和电子领域,直流系统有着广泛的应用,从常见的电池供电设备,到大型的工业直流电源系统,直流电凭借其稳定的特性发挥着重要作用。然而,直流系统运行过程中也会面临各种干扰问题,直流滤波
    的头像 发表于 10-22 10:47 268次阅读

    LuatOS脚本开发入门:嵌入式运行框架全解析!

    想搞懂LuatOS如何运行Lua脚本?本文深入剖析其嵌入式运行框架,涵盖虚拟机加载、任务协程、系统初始化等关键环节,适合初学者。 一、LuatOS 编程起步 1.1 底层固件怎么启动
    的头像 发表于 09-26 17:45 247次阅读
    LuatOS<b class='flag-5'>脚本</b>开发入门:嵌入式<b class='flag-5'>运行</b>框架全解析!

    嵌入式开发新选择:LuatOS脚本框架入门教程

    LuatOS正成为嵌入式开发的新趋势!本教程带你从基础入手,全面了解其基于Lua的脚本开发模式与轻量级运行框架。 一、LuatOS 编程起步 1.1 底层固件怎么启动 LuatOS 脚本
    的头像 发表于 09-26 17:34 294次阅读
    嵌入式开发新选择:LuatOS<b class='flag-5'>脚本</b>框架入门教程

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统之应用开机自启

    inittab文件:第5行指定了系统启动进入的默认运行级别为5;第9行是sysinit action,init程序会首先执行该进程;第12行在单用户模式下需要执行的操作;然后22-28就是系统不同的
    发表于 06-26 13:40

    迅为RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入

    迅为RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入
    的头像 发表于 05-29 14:05 827次阅读
    迅为RK3568开发板驱动指南GPIO子<b class='flag-5'>系统</b>GPIO子<b class='flag-5'>系统</b>API<b class='flag-5'>函数</b>的引入

    迅为RK3568驱动指南GPIO子系统 GPIO操作函数实验

    迅为电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1039次阅读
    迅为RK3568驱动指南GPIO子<b class='flag-5'>系统</b> GPIO操作<b class='flag-5'>函数</b>实验

    开疆智能Profinet转ModbusTCP网关连接WINCC配置案例

    Wincc上位机软件开疆智能Profinet转ModbusTCP网关通过Modbus TCP/IP通信,将PLC集到的参数通过Profient转ModbusTCP网关在 Wincc画面上显示。
    的头像 发表于 05-17 10:48 1052次阅读
    开疆智能Profinet转ModbusTCP网关连接<b class='flag-5'>WINCC</b>配置案例

    树莓派新手必看!在树莓派上编写和运行 Shell 脚本

    在本教程中,我将讨论Shell脚本的基础知识、它们的用途以及如何在RaspberryPi上编写和运行Shell脚本。什么是Shell脚本?Shell
    的头像 发表于 03-25 09:28 881次阅读
    树莓派新手必看!在树莓派上编写和<b class='flag-5'>运行</b> Shell <b class='flag-5'>脚本</b>!

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

    的,被称为 sysvinit。 这是人们最熟悉的 init 系统。,SysVinit 运行非常良好,概念简单清晰。 它主要依赖于 Shell 脚本,Service 开发人员只需要编写启动和停止
    发表于 02-11 11:24

    电梯运行远程监测系统的革新与应用

    在现代都市生活中,电梯作为垂直交通工具,其安全性、可靠性和效率直接关系到人们的日常生活质量及公共安全。随着物联网技术、大数据分析及云计算等先进技术的飞速发展,电梯运行远程监测系统应运而生,为电梯管理
    的头像 发表于 02-08 10:52 618次阅读

    Linux从零到精通:最简单的Shell脚本入门教程

    通过简单的命令和脚本,实现对系统的灵活控制和自动化管理。 shell脚本前言 shell脚本入门 shell变量基础 shell变量子串 shell数值运算 条件表达式 流程控制语句
    的头像 发表于 12-05 09:56 2305次阅读
    Linux从零到精通:最简单的Shell<b class='flag-5'>脚本</b>入门教程