如何创建一个脚本(创建脚本的技巧与窍门)

1为什么通过一个内部变量的“数值变化”事件所触发的脚本不执行?如果使用一个内部变量调用另一个内部变量,例如,数值变化时,执行一个脚本。安全机制会防止该脚本的执行。安全功能防止连续的循环。举例内部变量

1 为什么通过一个内部变量的“数值变化”事件所触发的脚本不执行?

如果使用一个内部变量调用另一个内部变量,例如,数值变化时,执行一个脚本。安全机制会防止该脚本的执行。

安全功能防止连续的循环。

举例

内部变量“HMI_Tag_01”的属性里, 在“更改数值”事件下对内部变量“HMI_Tag_02”进行置位。

在内部变量“HMI_Tag_02”的“更改数值”事件下调用一个脚本。

结果: 脚本不执行。

注意

因为这个循环断路器,用户只能依靠直接输入值来改变内部变量的值触发脚本的执行。

补救

使用控制器的一个外部变量。

2 在脚本中如何访问数组中的单个元素?

数组中的单个元素可以通过数组名并指明数组位置的方法进行访问。 -> SmartTags(“数组名”)(数组位置)

举例 (数组型外部变量)

Dim Tag_01 ‘内部脚本变量

Tag_01 = SmartTags(“DB10_HMI_Data”)(2)

局部脚本数组(该数组只在脚本中可用)相同的选择方法。如果是多维局部数组,使用逗号分隔单个数组的维度。

举例 (内部数组变量)

Dim HMI_Data(10,10) ‘内部脚本数组变量

Dim Tag_01 ‘内部脚本变量

Tag_01 = HMI_Data(0, 5)

注意

当使用“具有控制器连接的数组”,建议在脚本开始处复制这些数组到“内部脚本变量”,在后续脚本编程中以内部变量使用这些数组。

在脚本结尾处,数值必须从内部变量写回到外部数组变量中。

3 如何高效地在控制器和本地脚本 之间反复拷贝过程变量数组?

将过程变量数组拷贝到脚本中,需要逐个拷贝数组元素,例如通过循环。而将本地脚本数组拷贝到过程变量数组,可以直接通 过一个指令。

举例

‘CPU_Array 是过程变量数组

Dim local_array(10)

Dim i

‘从 CPU 拷贝到脚本:

For i = 0 To 9

local_array(i) = SmartTags(“CPU_Array”)(i)

Next

‘ 拷贝回 CPU:

SmartTags(“CPU_Array”) = local_array

4 在 WinCC flexible 中如何访问动态链接库?

在 WinCC flexible 中无法使用动态链接库(DLL)。

5 如何确定当前鼠标的位置?

为了读取当前鼠标的位置,必须访问操作系统的 API (应用程序访问接口)。

VB 脚本不支持通过动态链接库访问操作系统的 API 。作为替代,当前鼠标的位置可以通过自行编写的能够访问操作系统 API 的 ActiveX 控件读取。

注意

在 WinCC flexible 中使用的 ActiveX 控件必须在“开放程序接口平台”(OPP)上创建。

6 为什么通过 WinCC flexible “MsgBox” 命令不能在脚本中使用?

由于安全因素 “MsgBox” 命令在 WinCC flexible 中被禁用。

7 在脚本中如何将十六进制数赋给变量?

十六进制数的数值在 WinCC flexible 脚本编辑器中用前缀 “&h” 进行转换。

实例

Dim Tag_01

Tag_01 = &h45E ‘定义十进制数值“1118”

8 如何在脚本中显示或隐藏单个图层?

使用图层工作是 WinCC flexible 工程软件开发系统的一项功能。这些图层在 WinCC flexible 工程软件中作为组态帮助能够被显示或隐藏。这项功能在 WinCC flexible 运行系统中是可用的。

补救

在相应对象的“属性>动画>可见性”根据变量值改变对象的可见和隐藏。

9 在脚本中如何连接字符串?

连接符 “&” 能够用于将字符串连接起来。

实例

Dim Tag_01, Tag_Text_01, Tag_Text_02, Tag_Text_03

Tag_01 = Tag_Text_01 & Tag_Text_02 & Tag_Text_03

10 在脚本中两个字符串之间如何插入一个通配符(空格)?

为了在两个文本间插入一个空格,例如,使用两个引号“ ”。空格的数量取决于引号“ ”之间的距离。再次使用连接运算符“&”链接下一个字符。

实例 1

Dim Tag_01, Tag_Text_01, Tag_Text_02, Tag_Text_03

Tag_01 = Tag_Text_01 & ” “ & Tag_Text_02 & ” “ & Tag_Text_03

实例 2

文本中插入一个控制变量作为索引“machine index”,通过脚本输出报警消息。

ShowSystemAlarm “Machine” & “_” & SmartTags(“Tag_MachineIndex”) & ” ” & “must be checked”

结果

Machine_15 must be checked

11 在脚本中如何组态一个返回值?

“函数”类型脚本必须有返回值。

在脚本的“属性>常规>设置”标签,下拉菜单选择“函数”。

在“参数”菜单项定义哪个变量传送到脚本中。

组态将已分配的一个变量的值或者动作作为当前脚本的返回值。

如何创建一个脚本(创建脚本的技巧与窍门)

当通过一个按钮调用脚本,参数放置在属性里(“Param_01” 和 “Param_02”),附加给一个变量作为“返回值”参数。

12 如何通过脚本改变线性对象的长度?

在线性对象中“高度”和“宽度”参数是只读的。

获取水平和垂直位置,可以使用矩形替代线性对象并通过在脚本中的属性动态更新。

13 什么原因可导致系统达到它的最大嵌套层数?

例如,如果一个脚本在另一个脚本中通过数值变化被二次调用,根据这样原则的调用会达到最大的嵌套层数。

一个反复调用自身的脚本,在被一个递归脚本调用时这样现象同样可以很快的达到。

补救

检查脚本的处理,如果必要,减少脚本的嵌套。


本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
投稿

怎么替换pdf中的一页(pdf怎样替换页面)

2023-5-17 11:10:48

投稿

如何延长手机的续航时间(延长手机续航的几个小妙招)

2023-5-17 11:11:27

搜索