分享

西门子WinCC画面组态——脚本系统及C脚本的简单介绍

 金玉满堂jjnla8 2020-04-16

WinCC中的对象实现动态化的方法有很多种,比如:对象的动态属性可以通过动态对话框、C动作、VBS动作以及变量连接等实现;而对象的事件响应则可以通过C动作、VBS动作以及直接连接等实现。原则上,我们在配置画面对象时,尽量选择最简单的方式,即能用直接连接的,就尽可能不用脚本来实现。但在做一些中、大型项目时,要实现一些较为复杂的功能时,脚本就显得很有必要了。

WinCC的支持C脚本和VBS脚本。脚本本质上是一段用C或VB编写的代码,用以实现一些特定的功能。这里,我们简单介绍一下C脚本的概念。如图1所示,为WinCC脚本的分类。

1、函数和动作

函数和动作本质上都是一段代码。如图1所示,函数分为嵌入函数和用户函数。嵌入函数用户只能使用,不能修改;而用户函数则可由用户根据实际需要创建和修改,用户函数又分为项目函数、标准函数和DLL函数,它们各自的用法我们将在后面逐步展开讨论。

动作由用户自己创建,必要时可以进行口令保护,防止未经授权的人对其进行修改和查看。动作要想执行,必须至少为其分配一个触发器。

动作分为全局动作和局部(本地)动作。在客户机-服务器项目中,全局动作在项目中所有计算机中都可执行;而局部动作则只能在对其进行分配的计算机上执行。当你创建的是单用户项目时,全局动作和局部动作之间就没有太大的差别了。

2、脚本的执行过程

图2所示,为脚本的执行过程。WinCC脚本的核心是动作。动作通过触发器触发来相应事件或改变画面中对象的属性等;函数则是一段特定功能的代码,它本身并不能参与到WinCC的动态响应中去,动作在需要的时候,调用某个函数来实现既定功能。

一个动作触发后,会执行其对应的代码,在该代码中,可能会调用到其他C代码编写的函数,相当于子程序。

3、触发器

如图3所示,为触发器的类型。一个动作可以由定时器触发,也可以用变量触发。定时器触发又可分为循环触发和非循环触发;而变量触发则可以选择在某一变量值发生变化的时候触发动作,也可以选择采用'循环监视变量值'的方式。它们的区别留待以后慢慢展开。

一个动作可以同时分配若干个触发器,任何一个触发器有效了,动作就将被执行;而且,动作要想被执行,必须至少分配一个触发器。

4、编写C脚本的3个入口

编写C脚本的3个入口:

a、 全局脚本编辑器(图4):函数、与画面无关的全局脚本动作。全局脚本编辑器中的动作要触发执行,除了分配触发器外,还需打开'全局脚本运行系统'。在项目下的计算机属性中,'启动'选项卡下即可打开,如图5所示。(注意:这里的全局脚本运行系统,指的是在全局脚本编辑器里编辑的动作,包括全局动作和局部动作)。

b、 属性任务(图6)

需要循环或变量来触发脚本

c、 事件任务(图7)

通过事件来触发脚本

属性任务和事件任务从脚本编辑到功能实现上看起来区别不大,但在WinCC中它们属于不同的2类脚本。在WinCC中,用3个不同的线程来处理C脚本的,这3个线程分别对应全局脚本动作、属性任务和事件任务。3个线程互不影响,类似于在Windows中打开多个应用程序,而应用程序之间互不影响。

了解脚本线程是很有重要的,其重要性我们留待探讨线程堵塞的时候再具体分析。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多