首页 理论教育 WinCC组态软件工程应用技术-脚本基础

WinCC组态软件工程应用技术-脚本基础

时间:2023-11-06 理论教育 版权反馈
【摘要】:为此,将触发器与动作相链接以构成对动作进行调用的触发事件。图10-3 C脚本中函数和动作的工作原理与函数相比,动作可以具有触发器。表10-2 函数和动作的区别2.函数、动作、触发器的分类函数和动作的范围如图10-4所示。表10-3 项目函数、标准函数和内部函数的特征对比动作的分类1)局部动作局部动作用于独立与画面的后台任务,例如打印日常报表、监控变量或执行计算等。图10-6 触发器类型1)非周期性触发器这些触发器包括指定的日期和时间。

WinCC组态软件工程应用技术-脚本基础

1.函数、动作、触发器的关系

函数是一段代码,可在多处使用,但只能在一个地方定义。WinCC包括许多函数。此外,用户还可以编写自己的函数和动作。函数一般由特定的动作来调用。

动作用于独立于画面的后台任务,例如打印日常报表、监控变量或执行计算等。动作的功能一般通过调用特定的函数来实现,动作的执行由触发器启动。

触发器用于在运行系统中执行动作。为此,将触发器与动作相链接以构成对动作进行调用的触发事件。没有触发器的动作不会执行。

WinCC的C脚本中函数和动作的工作原理如图10-3所示。

978-7-111-50543-3-Chapter10-4.jpg

图10-3 C脚本中函数和动作的工作原理

与函数相比,动作可以具有触发器。也就是说,函数在运行时不能由自己来执行。由此可见,函数和动作之间存在一定的差异。函数和动作的区别见表10-2。

表10-2 函数和动作的区别

978-7-111-50543-3-Chapter10-5.jpg

2.函数、动作、触发器的分类

函数和动作的范围如图10-4所示。

978-7-111-50543-3-Chapter10-6.jpg

图10-4 函数和动作的范围

(1)函数的分类

1)项目函数(Project Functions)

如果在C动作中经常需要相同的功能,则该功能可以在项目函数中公式化。在WinCC项目的所有C动作中都可以按照调用其他函数一样的方式来调用项目函数。

项目函数只能在项目内使用,其存储路径为WinCC项目目录的子目录“\library”中,并在相同文件夹中的ap_pbib.h文件内定义。

项目函数可用于:

①其他项目函数。

②全局脚本动作。

③图形编辑器的C动作中以及动态对话框内。

④报警贿赂功能中的报警记录。

⑤启动和释放归档时以及换出的循环归档时的变量记录中。

使用项目函数相对于在C动作中创建完成的程序代码具有以下优点:

①编辑的中心位置:项目函数的改变会影响所有正在使用该函数的C动作。如果没有使用项目函数,则必须手动修改所有相关的C动作,这不但可以简化组态,而且可以简化维护和故障检测工作。

②可重用性:一旦一个项目函数编写完并进行了广泛的测试,则它随时都可以再次使用,无需附加新的组态或新的测试。

③画面容量减少:如果并不是在对象的C动作中直接放置完整的程序代码,则画面容量将减少。这可以使画面打开的速度更快,并且在运行系统中性能更佳。

2)标准函数(Standard Functions)

标准函数包含用于WinCC编辑器、报警、存档等多方面的函数,其存储路径为WinCC项目目录的子目录“\aplib”中。

标准函数可用于:

①项目函数。

②其他标准函数。

③全局脚本动作。

④图形编辑器的C动作中以及动态对话框内。

⑤报警贿赂功能中的报警记录。

⑥启动和释放归档时以及换出的循环归档时的变量记录中。

3)内部函数(Internal Functions)

内部函数是C语言常用函数,它们是标准的C函数,用户不能对其进行更改,也不能创建新的内部函数。其存储路径为WinCC安装目录的子目录“\aplib”中。

内部函数可用于:

①项目函数。

②标准函数。

③动作。

④图形编辑器的C动作中以及动态对话框内。(www.xing528.com)

项目函数、标准函数和内部函数的特征不尽相同,参见表10-3。

表10-3 项目函数、标准函数和内部函数的特征对比

978-7-111-50543-3-Chapter10-7.jpg

(2)动作的分类

1)局部动作

局部动作用于独立与画面的后台任务,例如打印日常报表、监控变量或执行计算等。局部动作的存储路径为WinCC项目目录的“\<computer_name\Pas”子目录中。

局部动作可指定给单独的计算机。因此,可以确保只在服务器上打印报表。

2)全局动作

全局动作用于后台任务,例如打印日常报表、监视变量或执行计算等。局部动作的存储路径为WinCC项目目录的“\Pas”子目录中。

与局部动作相反,全局动作在客户机-服务器项目的所有项目计算机上执行。在单用户项目中,全局动作和局部动作之间不存在任何区别。

局部动作和全局动作在特征上的区别见表10-4。

表10-4 局部动作和全局动作在特征上的区别

978-7-111-50543-3-Chapter10-8.jpg

此外,动作由为其组态的触发器启动。为了使动作得以执行,全局脚本运行系统必须包含在启动列表中,启动步骤如下:

①在WinCC项目管理器的计算机快捷菜单中选择“Properties(属性)”,弹出“计算机属性”对话框。

②单击“Startup(启动)”标签。

③选择“Global Script Runtime(全局脚本运行系统)”选项,如图10-5所示。

978-7-111-50543-3-Chapter10-9.jpg

图10-5 计算机属性启动列表

④单击“确定”按钮关闭对话框。

注意:如果在计算机的启动列表中选中了全局脚本运行系统,则一旦项目启动,属于该计算机的所有全局动作和所有局部动作都将被激活。

(3)触发器分类

触发器类型如图10-6所示。

978-7-111-50543-3-Chapter10-10.jpg

图10-6 触发器类型

1)非周期性触发器

这些触发器包括指定的日期和时间。由此类触发器所指定的动作将按所指定的日期的时间来完成。

2)周期性触发器

这些触发器包括指定的时间周期和起始点。周期性触发器有下列类型:

①默认周期:第一个时间间隔的开始点与运行系统的开始点一致。间隔时间由周期确定。

②每小时:间隔时间的开始点按分钟和秒钟指定。间隔时间是一小时。

③每日:间隔时间的开始点由时间(小时、分钟和秒)来指定。

④每周:间隔时间的开始点由星期(星期一、星期二等)和时间来指定。间隔时间是一个星期。

⑤每月:间隔时间的开始点由日期和时间来指定。间隔时间是一个月。

⑥每年:间隔时间的开始点由日、月和时间来指定。间隔时间是一年。

3)变量触发器

这些触发器包括一个或多个变量的详细规范。每当检测到这些变量的数值发生变化时,都将执行与此类触发器相关联的动作。

可为每个变量定制如何查询变量值,既可以选择具有制定周期的周期轮询,也可以选择系统检测到变量值变化后立即做出反应。

根据查询方法的选择,有可能是变量发生变化,而系统没有检测到这种变化。在这种情况下,动作将不会执行。

如果动作仅与一个触发器相关联,例如,周期性触发器和变量触发器。在此情况下,无论两个触发事件之一何时发生,动作都将执行。如果两个事件同时发生,则动作将按先后顺序执行两次。如果两个变量触发器在同一时刻启动,则动作将只执行一次。

在发生动作的另一次调用之前,应该完成对动作的处理,否则,将导致队列溢出。

提示:如果计划在每个时间发生时不执行动作,则要为动作制定一个条件来控制其随时间的进一步运行。如果不进一步执行动作,则可以用一个<值>return来终止此动作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈