您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > wincc弹出控制面板
Wincc之通用面板控制在一个大型的项目中可能会需要控制几十个阀门或者十几个电机类,这些阀门或者电机控制方式都是相同的。如果我们为每一个阀门或者电机都制作一个控制面板来控制,也是可以的只是工作过程要繁琐些。下面介绍2种控制方法,第一种是为每一个阀门或者电机配置一个控制画面,第二种是制作一个通用的控制画面,然后在主画面中通过C脚本调用这个画面。这个方法都可以实现控制,各有优缺点,第一种控制方法优点:在主画面上可以同时调出几个不同水泵或者阀门的控制面板。缺点:需要制作大量的控制面板。第二种控制方法优点:只要需要制作一个控制面板即可。缺点:制作过程有一定的复杂性。根据自己的兴趣爱好采取适合自己控制方式,下面详细介绍这2种控制过程的制作。第一种方法:每一个控制对象配置一个控制面板1、先写好自己的控制程序,此处以简单的启保停为例,首先建立一个通用的FC块。如下图所示:FC块建好之后在OB1里面调用,并为每个管脚赋予合适地址,如下图所示:M0.0为1#设备的启动M1.0为2#设备的启动M0.1为1#设备的停止M1.1为2#设备的停止M0.2为1#设备的输出M1.2为2#设备的输出至此一个简单的实验程序就建立完毕了,下面开始组态wincc信息。首先建立一个项目,然后建立一个主画面和N个控制面板画面(N=你的控制对象的个数)。画面建立好后,开始建立变量,我实用的连接方式是MPI连接,需要进行简单参数设置后即可建立变量,此处不做演示。变量建立后就可以与画面做关联。如上图所示为1#、2#电机的启停及运行信号作变量连接。变量作好关联后,在主画面中组态你想要的控制对像,在主画面中需要调用画面窗口控件,具体操作方法如下图:点击画面窗口控件后,在主面上用鼠标拖出合适大小即可。为画面窗口关联1#、2#控制面板。具体操作方法如下图:对准画面窗口后鼠标右击选择属性,即可弹出如图对话框,在这个对话框里可以设置一些必要的属性。根据自己的需要进行相关的设置,1#、2#配置方法相同。设置完毕后点击运行效果如下图:第一方法配置到此就结束了。第二种方法配置第二种方法需要用到脚本,这对于初学者可能有一定难度。变量建立和第一种方法就有所不同了,第一种方法是在变量管理器里面一个一个建立的独立变量,第二种方法就需要用到结构变量了。不知道有没有细心的,有没有发现刚才的程序地址问题?第一个控制对象实用的地址范围为:M0.0到M0.2,第二个控制对象实用的地址范围却从M1.0到M1.2。第二控制对象的地址为什么要从M1.0开始呢?为什么不是从M0.3到M0.6呢?最开始我也是不理解,不明白为什么要这样做,后来到wincc里面建立结构变量时我就明白这是为什么了,原来wincc建立结构变量时会一个结构变量最少占据一个字节。据个例子:本例中,一共需要建立三个变量,启动、停止、输出,再建变量时,数据类型选择你刚才建立的结构变量类型,设置好其他参数,点击确实我们会看到自己生成了带有前缀的三个变量,然后你再建立第2个变量时,填号名称,选择好你刚才建立的结构变量,如果你上一个变量是从MB0这个字节开始的,那么你的第2个变量就必须从MB1字节开始,那么第1个变量就占用了MB0中的其中1个位,第二个变量也要从MB1或者其他字节开始。这就是为什么程序里面的第2个控制对象的地址为什么从M1.0开始的原因的,上面这段文字可能说的不是怎么清楚,自己可以动手试试,建立几个结构变量看看就知道怎么回事了。1、建立结构变量建立结构变量时注意变量类型,开关量改为BOOL型,其他数据格式就改为其他数据格式。2、建立变量名称填写你需要的名称,数据类型选择你刚才建立的结构变量的名称,地址一定要填写一定要和程序对应起来。建立结构变量时,建立的顺序也需要和程序里面用到的顺序对应起来。如上图所示变量就建立完毕了。3、建立通用控制面板通用控制面板组态完毕后,需要再操作按钮后面连接变量,在填写变量时,只需要填写变量的后面部分即可比如:“1#电机.启动”我们填写“启动”就可以了,前面的前缀不用填写,确定时会提醒你变量没有建立,问你是否建立,无须理会直接忽略。如下图所示按照上述方法建立其他变量连接。4、主画面组态这个方法需要用到大量的脚本,具体脚本附在最后。1#、2#电机建立好连接后,点击保存运行查看效果。静态没有运行时效果如下图:运行后效果如下:到此第2种方法也介绍完毕了,第二种方法好处是不用建立太多的控制面板,不好就是过程太过于复杂,凡事都是有利有弊看自己适合那种就采用那种吧!本人也是刚用wincc不久,对于wincc更多的高级技巧也是一头雾水,希望结交wincc这方面高手(收费的算了)。知识固然重要,但共享更重要,也许你的一句简单提醒可以让其他人少走不少冤枉路,有的时候一个人对于一个问题可能苦思几天也无结果,他人一句简单提醒也许就豁然开朗。工业自动化界朋友们,把知识共享起来,为中国的工业发展尽一份力量!附:程序中所用到的C脚本代码#defineTagText反应塔破碎机2//窗口标题#defineTagPrefix109M.//变量前缀#defineObjectName画面窗口3//窗口名称longintHoehe,Breite,xCursor,yCursor;//窗口位置变量xCursor=x+25;//Return-Type:longint水平位置偏移yCursor=y+10;//Return-Type:longint垂直位置偏移Breite=GetWidth(lpszPictureName,ObjectName);//获取画面高度Hoehe=GetHeight(lpszPictureName,ObjectName);//获取画面宽度if(xCursor(1920-Breite))SetLeft(lpszPictureName,ObjectName,1280-Breite);elseSetLeft(lpszPictureName,ObjectName,xCursor);if(yCursor(1080-Hoehe))SetTop(lpszPictureName,ObjectName,800-Hoehe);elseSetTop(lpszPictureName,ObjectName,yCursor);SetVisible(lpszPictureName,画面窗口2,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口4,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口1,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口5,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口6,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口7,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口8,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口9,0);//Return-Type:BOOL关闭画面SetVisible(lpszPictureName,画面窗口10,0);//Return-Type:BOOL关闭画面SetPictureName(lpszPictureName,ObjectName,Pad01.PDL);SetTagPrefix(lpszPictureName,ObjectName,TagPrefix);//Return-Type:BOOL传递变量前缀SetPropChar(lpszPictureName,ObjectName,CaptionText,TagText);//传递窗口标题SetVisible(lpszPictureName,ObjectName,1);//Return-Type:BOOL打开画面写于:安徽合肥2014年8月4日星期一工控小子闯天下能力有限,文章中有错的地方欢迎指正,以便于我改正。QQ:892714424(感悟人生)
本文标题:wincc弹出控制面板
链接地址:https://www.777doc.com/doc-2806184 .html