您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子Wincc画面编辑组态实例
从小白到新手,从入门到放弃O(∩_∩)O1西门子Wincc新手入门1.西门子Step7和Wincc通讯搭建1.1Step7新建一个项目1.2建立和Wincc的通讯1.3画面编辑及测试2.Wincc画面制作--窗口的使用2.1整体规划2.2画面切换2.3画面下拉菜单跳转画面2.3画面弹出窗口3.Wincc画面制作--动态变化3.1多个位置变化3.2位置动态变化3.3驱动跟踪4.Wincc画面制作--报警4.1WinccAlarmControl控件使用4.2语音报警5.Wincc画面制作---C脚本的使用5.1调用同一个窗口画面实现不同的指令功能5.2对按钮做密码保护5.3截取字符串5.4数据限幅5.5保存数据至TXT文件使用环境:Win732位操作系统Step7V5.5S7-PlcsimV5.4WinccV7.2以上均为破解版O(∩_∩)O~从小白到新手,从入门到放弃O(∩_∩)O21.西门子Step7和Wincc通讯搭建1.1Step7新建一个项目:打开Step7,新建一个S7-300站,简单做一个硬件配置,此处以CPU315-2PN/DP为例,此CPU可以通过MPI,DP或者以太网用S7-PLCSIM模拟,如下:在OB1中简单添加一段程序:下载到PLCSIM就可以仿真了,在下图的Modify可以任意赋值:M0.0通时,把MD100赋值给MD200,不通是赋给MD204从小白到新手,从入门到放弃O(∩_∩)O31.2建立和Wincc的通讯新建一个Wincc的工程,打开变量管理:选择“添加新的驱动程序”-S7ProtocolSuite,然后新建一个TCP/IP连接当然,建立MPI或者Profibus都是可以的,此处我是通过TCP建立STEP7和PLCSIM通讯的,因此Wincc也通过以太网通讯。在TCP/IP属性选择PLCSIM(TCP/IP)并且在NewConnection_1的属性根据实际填写参数,IP就是CPU的IP,机架号0,插槽2,如下:从小白到新手,从入门到放弃O(∩_∩)O4设置完成后,在右边添加变量,一个BOOL量,2个浮点数,名字可以和Step7中定义的不同,但地址就是在Step7中建立的变量地址:从小白到新手,从入门到放弃O(∩_∩)O51.3画面编辑及测试新建一个画面,并设置为启动画面编辑画面,此处新建了一个输入输出域,在它的输入输出属性的输出一栏编写代码,并设置触发器:当M0.0触发时,显示MD200,否则显示MD204点击设置触发器从小白到新手,从入门到放弃O(∩_∩)O6同理,对闪烁进行设置:最后,通过仿真测试效果:下图是M0.0不同的情况,MD200为40,MD204为50,那么此时画面应该显示50并且不闪烁:至此,Wincc和PLC通过仿真器建立好通讯了,接下来所有的测试例子均基于此。此处1.3仅用来测试通讯,可以直接PASS掉。当MD200或者MD204大于100时闪烁从小白到新手,从入门到放弃O(∩_∩)O72.Wincc画面制作--窗口的使用2.1整体规划新建主画面,并作为起始画面。另外,设置画面最大最小等,如下设置:然后,对主画面MainScreen进行编辑。右击,选择此选项1.右击计算机2.选择属性3.选择图形运行系统4.选择需要的参数从小白到新手,从入门到放弃O(∩_∩)O8此处整体大小根据自己电脑来设置,我们分为上中下三块,分别连接UP.PDL,Middle.PDL以及Down.PDL,同样的,这些画面需要新建。然后对每个画面进行编辑,这里每个画面的大小需设置成和在MainScreen里面画面窗口的大小一致。1.新建画面窗口1,调整大小1.1在窗口属性连接UP.PDL2.新建画面窗口2,调整大小UP.PDLMiddle.PDLDown.PDL3.新建画面窗口3,调整大小2.1在窗口属性连接Middle.PDL3.1在窗口属性连接Middle.PDL中间画面Middle.PDL从小白到新手,从入门到放弃O(∩_∩)O9此时,运行效果图如下:当然,这个画面窗口对象也可以嵌套使用,比如下面我们在中间画面上再加一个画面窗口:上画面UP.PDL下画面Down.PDL从小白到新手,从入门到放弃O(∩_∩)O10此时运行效果如下:这个就是整体框架,后续所有的画面切换都基于此。此例中我们都是切换的中间画面(对象名称:画面窗口2),当然其它画面窗口也是同样道理。中间画面Middle.PDL同样的,新建画面窗口连接Middle_Up.PDL中间上画面Middle_Up.PDL红色框:对象名称:画面窗口1(在ManiScreen.PDL上),连接UP.PDL黄色框:对象名称:画面窗口2(在ManiScreen.PDL)上,连接Middle.PDL它又包含了紫色框:对象名称:画面窗口1(在Middle.PDL上),连接的Middle_Up.PDL绿色框:画面窗口3(在ManiScreen.PDL)上,连接Down.PDL从小白到新手,从入门到放弃O(∩_∩)O112.2画面切换我们在上文的Bottom.PDL画面已经做了5个按钮,下面通过5个按钮来实现画面间的切换,并且在切换时,我们可以选择需要切换的画面,此例中,UP.PDL和Bottom.PDL是不会改变的,只改变Middle.PDL。首先,新建5个画面,简单做下编辑,同理,这个大小需要设置成和主画面中的中间画面大小一致,因为我们接下来就是要把中间画面切换。然后依次对每个按钮编写如下代码:画面1的C代码从小白到新手,从入门到放弃O(∩_∩)O12画面2的C代码中间主画面的C代码画面3的C代码从小白到新手,从入门到放弃O(∩_∩)O13以下对部分代码说明:#definePIC_0MainScreen.pdl#definePIC_1MainMiddle.PDLOpenPicture(PIC_0);SetPictureName(PIC_0,画面窗口2,PIC_1);效果如下,以2个画面为例:画面4的C代码定义主画面和需要跳转的画面,方便后面复制粘贴^-^打开PIC_0,也就是MainScreen.PDL这个是切换画面:设定画面窗口2的填充画面为PIC_1前面已经说过我们的MainScreen是有上中下三部分组成的,画面窗口2就是中画面的对象名称画面窗口2的对象名称从小白到新手,从入门到放弃O(∩_∩)O14这里我们看到上和下画面是固定不变的,中间画面改变了,由于我们的中间画面上又嵌套了一个画面,因此我们也可以让中间画面的上画面在切换时不发生改变。点击画面1点击画面2从小白到新手,从入门到放弃O(∩_∩)O15我们稍微改下画面3,如下:最后效果图如下:在HMI3上也加个画面窗口,连接Middle_Up.PDL启动画面从小白到新手,从入门到放弃O(∩_∩)O16画面3多了中间的上画面画面4从小白到新手,从入门到放弃O(∩_∩)O172.3画面下拉菜单跳转画面以主画面按钮为例,现在点击主画面会弹出下拉框选择2个中一个画面跳转。点击主画面按钮,跳出菜单框,再点击隐藏:我们需要新建1个画面Manu1,并且在MainScreen加一个画面窗口,连接到Manu1。然后更改主画面按钮的代码,使其点击一下跳出菜单,再点击一下隐藏,最后在跳出的菜单选择需要跳转的画面(新建Menu1和Menu2作为菜单1和菜单的画面)。修改按钮,看上去像下拉菜单^-^跳出的2个子菜单从小白到新手,从入门到放弃O(∩_∩)O18Manu1,这个的大小需要和MainScreen里面新建的Manu1画面窗口一致此位置决定了点击跳出菜单栏的位置,因此想要弹出在主画面按钮的上方,这个窗口就要计算好位置窗口对象名字按钮代码:取代之前跳转画面,改为显示菜单栏获取Manu1状态若状态为1,则隐藏,反之则显示从小白到新手,从入门到放弃O(∩_∩)O19分别对菜单1和菜单2按钮进行编程,以菜单1按钮为例:效果如下:隐藏Manu1菜单栏在MainScreen上把Menu1显示在中画面上Manu1和Manu2,因为最终也是显示在主画面的中画面上,因此大小需要和Middle.PDL这个窗口对象大小一致从小白到新手,从入门到放弃O(∩_∩)O202.4画面弹出窗口上文第四点其实也提到过,这里再单独举个例子。新建画面如下:我们此例在HMI1中制作,因此在HMI1中添加一个按键及窗口对象:按钮窗口对象,连接到Mesbox1.PDL这个画面窗口的对象名称,我们定义为MessgeBox,编程要用到从小白到新手,从入门到放弃O(∩_∩)O21对按钮添加C代码:SetTagChar(Name1,弹出窗1);这里我们定义了一个内部变量为Name1,给Name1赋值为弹出窗1,这个可以写静态值无需连接变量,下文会讲SetVisible(PIC_0,MessgeBox,1);在PIC_0画面显示窗口对象名称为MessgeBox的画面关于变量连接,可以参考我的另一篇----------Step7及Wincc新手入门教程。对画面窗口参数设置:正常隐藏弹出框的标题开启弹出框允许关闭连接的画面从小白到新手,从入门到放弃O(∩_∩)O22效果图如下:此时弹出框的位置为前面添加的画面窗口的位置,如果要改变的话,我们需要更改画面窗口的位置或者用函数来定位。这里就是用的背部变量来改变名字,可以直接写,就不需要写SetTagChar函数此处可直接写名称从小白到新手,从入门到放弃O(∩_∩)O231.改变此画面窗口的位置,弹出框就相应改变2.添加此段代码来改变位置获取当前窗口X,Y轴位置,然后在这个基础上调整再次赋给画面窗口,实际上就是方法1的调整画面窗口位置效果如下:从小白到新手,从入门到放弃O(∩_∩)O243.Wincc画面制作--动态变化3.1多个位置变化如下所示,给圆三个位置,分别为上中下,当前位置为(X=330,Y=460),当上位置信号触发,Y就变为300,中间位置触发Y变为380,不在任意一个位置Y变成530,且圆变成红色,其它三个位置为绿色。在属性的位置Y添加代码如下:此为Wincc添加的变量和PLC的变量方法不再赘述从小白到新手,从入门到放弃O(∩_∩)O25主要说下表达式含义:'HMI_UpPos'+2*'HMI_MidPos'+4*'HMI_DownPos'虽然每个变量都是BOOL量,但是在选择数据类型的时候我们可以选择模拟量:然后对此定义范围,如下我们看到有5个范围:0---------------不在任意一个位置,定义Y=5301---------------就是当HMI_UpPos变量为1时,也就是在上位置,定义Y=3002---------------就是当HMI_MidPos变量为1时,也就是在中位置,定义Y=3803--------------不在任意一个位置,定义Y=5304---------------就是当HMI_DownPos变量为1时,也就是在下位置,定义Y=460其它--------------表达式的值不等于上述任意值,Y=530那么问题来了,既然只有3个位置,数值范围可以取“等于1”“等于2”“等于4”和“其它”4项吗,而不是上述的6项,测试了下,发现不行,只有4项的话“等于0”和“等于3”不会默认属于其它里面,也就无法显示在本来对于的位置。同样的,对颜色变化做相应处理:数值范围共6项,若去掉0和3,会发现当表达式等于0或3的时候达不到要求……从小白到新手,从入门到放弃O(∩_∩)O26效果如下:1.当上位置信号触发时对于的位置及颜色2.当中位置信号触发时对于的位置及颜色3.当下位置信号触发时对于的位置及颜色4.此为上和中信号同时触发时的状态其它错误情况状态也是如此从小白到新手,从入门到放弃O(∩_∩)O273.2位置动态变化还是以上述圆为例,希望它可以从下面直线的一端走到另一端(X位置从330到1130)。在程序中添加如下代码:效果不做成动态没法体现,将就看下:3301130方便观察,我们强制一个初始值330给一个初始值330,然后以1秒的速度往前走30,直到过了1200,在回到330MD
本文标题:西门子Wincc画面编辑组态实例
链接地址:https://www.777doc.com/doc-5667703 .html