Page 71 - 《橡塑技术与装备》2020年1期(1月上半月橡胶)
P. 71

新技术与新产品                                             梁帅 等·基于 WINCC 的轮胎硫化机圆盘曲线的实现


                创建和修改,用户函数又分为项目函数、标准函数和                           执行,必须至少分配一个触发器。
                DLL 函数。
                    动作由用户自己创建,必要时可以进行口令保护,                        3 WinCC 圆盘曲线的实现
                防止未经授权的人对其进行修改和查看。动作要想执                               利用 WinCC 自带的 WINCC FunctionTrendContr
                行,必须至少为其分配一个触发器。                                  ol 控件,可实现直角曲线功能,但不能实现圆盘曲线
                    动作分为全局动作和局部(本地)动作。在客户机 -                      的显示。为实现圆盘曲线功能,我们需要做以下工作:
                服务器项目中,全局动作在项目中所有计算机中都可                              (1)将记录的数据转换成极坐标形式
                执行 ;而局部动作则只能在对其进行分配的计算机上                              将一天 24 个小时平均分布到圆盘图中,然后根据
                执行。当创建的是单用户项目时,全局动作和局部动                           系统时间将当前时刻转换为极坐标形式。再将 PLC 读
                作之间就没有太大的差别了。                                     取的实时数据转换成对应的当前时刻极坐标形式。C
                2.2 脚本的执行过程                                       脚本如下所示 :
                    图 2 为脚本的执行过程。WinCC 脚本的核心是动                        #include "apdefap.h"
                作。动作通过触发器触发来实现相应事件或改变画面
                中对象的属性等。函数则是一段特定功能的代码,它                               int gscAction( void )
                本身并不能参与到 WinCC 的动态响应中去,动作在                            {
                需要的时候,调用某个函数来实现既定功能。                                  // WINCC:TAGNAME_SECTION_START
                                                                      / /  sy n t a x:  #d e fi n e   T a gNa m e In Ac t i o n
                                                                  "DMTagName"
                                                                      // next TagID : 1
                                                                      // WINCC:TAGNAME_SECTION_END
                              图 2 脚本的执行过程                             // WINCC:PICNAME_SECTION_START

                    一个动作触发后,会执行其对应的代码,在该代                             // syntax: #define PicNameInAction
                码中,可能会调用到其他 C 代码编写的函数,相当于                         "PictureName"
                子程序。                                                  // next PicID : 1
                2.3 触发器                                               // WINCC:PICNAME_SECTION_END
                    触发器的类型如图 3 所示。一个动作可以由定时                           short a1,b1,c1,year,month,week,day,hour,minute
                器触发,也可以用变量触发。定时器触发又可分为循                           ,second,msecond;
                环触发和非循环触发 ;而变量触发则可以选择在某一                              double a, b,c,d,e,f,g,h,i,j,k,e0,f0,g0,e1,f1,g1,e2,
                变量值发生变化的时候触发动作,也可以选择采用 "                          f2,g2,e3,f3,g3,e4,f4,g4,e5,f5,g5,e6,f6,g6,e7,f7,g7;
                循环监视变量值 " 的方式。
                                                                      // 获取系统时间
                                                                      a1=GetTagWord("hour"); //Return-Type: WORD
                                                                      b1=GetTagWord("minute");  / / R e t u r n - T y p e :
                                                                  WORD
                                                                      c1=GetTagWord("second");  / / R e t u r n - T y p e :
                                                                  WORD


                                                                      a  =  a1*3600+b1*60+c1;   // 当前时刻转换成 0 点
                                                                  开始的秒数 ;
                               图 3 触发器的类型
                                                                      e=3.14;  // 定义 e 的值为 π
                    一个动作可以同时分配若干个触发器,任何一个                             f=a/86400;  // 当前时刻在一天中占的比例 ;
                触发器有效了,动作就将被执行,而且,动作要想被                               c=0.5*e-2*f*e;   // 当前时刻在圆盘图中的弧度 ;


                2021     第   47 卷                                                                      ·19·
                      年
   66   67   68   69   70   71   72   73   74   75   76