监控组态软件与PLC应用.ppt
第七章监控组态软件与PLC应用总体设计,第一节自动售货机PLC控制与监控组态设计一、仿真系统组成本仿真系统由上位机和下位机两部分组成。上位机利用PC机,下位机利用松下的FP1系列可编程控制器FP1-C24。上位机内装北京力控组态软件FORCECONTROL2.6和松下编程软件FPWIN-GR。组态软件FORCECONTROL用以制作仿真画面、编写仿真程序并与下位机进行通信。FPWIN-GR是松下可编程序控制器与PC机联机的编程支持工具,利用它可以实现程序输入、程序注释、程序修改、程序编译、状态监控和测试以及设置系统寄存器和PLC各种参数等。,二、自动售货机功能分析1.自动售货机的基本功能售货机基本功能对投入的货币进行运算,并根据货币数值判断是否能购买某种商品,并做出相应的反应。2.仿真实验系统中售货机的分析售货机的全部功能是在上位机上模拟的,其部分硬件由计算机软件模拟代替。如钱币识别系统可以用按压某个“仿真对象”输出一个脉冲直接给PLC发布命令。,1)实验状态假设a自动售货机只售8种商品;b.自动售货机可识别10元、5元、1元、5角、1角硬币;c.自动售货机可退币10元、5元、1元、5角、1角硬币;d.自动售货机有液晶显示功能;f.实验中售货机忽略了各种故障以及缺货等因素。2)一次交易过程分析a.初始状态由电子标签显示各商品价格,显示屏显示友好界面,此时不能购买任何商品。b.投币状态按下投币按钮,显示投币框,按下所投币值,显示屏显示投入、消费、余额数值,当所投币值超过某商品价格时,相应商品选择按钮发生变化,提示可以购买。c.购买状态按下可以购买的“选择”按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。d.退币状态按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。,三、设计任务的确定上位机与下位机之间的任务分工上位机主要用来完成仿真界面的制作工作;下位机则主要用来完成PLC程序的编写。在进行PLC程序的编写时需要先分配PLC的I/O点,确定上、下位机的接口。然后,对上位机和下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计。一方面,仿真的自动售货机接受PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由界面所提供的命令语言来完成的。,四、程序设计部分1.程序设计说明仿真程序的编写利用了力控组态软件FORCECONTROL2.6。下位机程序的编制则是利用松下PLC专用编程软件FPWIN-GR完成的。2.PLC程序设计把一次交易过程分为几个程序块运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。,1)运行初期电子标签价格的内部传递程序的设计仿真系统运行初期的任务①要由PLC向仿真画面相应对象传递已经存储好的价格;②给投入显示、消费显示及余额显示寄存器清零;③给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令F0,同时在上位机FORCECONTROL中,必须定义相应的变量,来实现与PLC程序的对接。,电子标签价格内部传递变量表,运行初期电子标签价格的内部传递程序,,,系统初始化时,通过运行初期闭合继电器R9013在第一次扫描时将数值传递给上位机。通过指令F0给WR1~WR11及SV0~SV4赋初值。,2投币过程每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样的币值。投币过程变量表,投币过程梯形图,在上图中,当按下投入一角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去。投入一角要使投入显示、余额显示都相应增加相同数值,加法由16位加法指令F20实现的。投入五角、一元、五元、十元,原理同上。,3价格比较过程价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,提示可以购买。这里用选择灯来代表此信号。价格比较过程变量表,价格比较梯形图,本图中,在程序执行过程中,R9010始终保持闭合,是16位数据比较指令,F60用来比较余额和商品的价格,R900A是大于标志,R900B是等于标志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。,4)选择商品过程当投入的币值可以购买某种商品时,按下相应的“选择”按钮即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格比较,判断是否能继续购买。出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。,选择商品过程变量表,选择商品梯形图,选择商品梯形图续上图),在选择商品的过程中一是要使商品出现在出货框中,二是要实现内部货币的运算。如按下选择01商品键,相当于给R205加一个信号(只接受一次脉冲,所以用DF微分指令),当Y0接通(01商品灯亮)时,则系统显示可以购买01商品。由于取01商品R230是常闭触点,故Y8输出,代表在出货框中出现01商品,购买成功。当按下取01商品按钮时,R230断开,不能输出Y8,代表01商品被取走。内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,显示消费的币值。加法由F20指令实现,减法由F25指令实现。,5)退币过程在退币过程中,最主要的是要完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要给程序中使用到的某些寄存器重新赋零。退币过程变量表,退币过程梯形图,退币过程在按下退币按钮(即R20F接通)时执行,同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。F32是除法指令,第一次将余额的币值除以1000,商存储于SV0中,作为退币10元的输出值。余数则存储于特殊数据寄存器DT9015中,下次将不能被1000(10元)整除的余数除以500(5元),商存储于SV1中,余数继续下传,直至被1角除过,由于所投币值最小是1角,并且商品价格也确定在整角,所以最终能被1角整除。在程序的初始化时曾给WR13、WR15、WR17、WR19和WR20赋零,WR13、WR15、WR17、WR19和WR20是程序的中间量。退币过程结束后,PLC要将寄存器中的数值置回原定的初值0,完成一次交易,防止下一次交易时出错。,数据初始化梯形图,程序中分别将投入显示、消费显示、余额显示、10元存储、5元存储、1元存储、5角存储和1角存储清零,还将中间量WR13、WR15、WR17、WR19和WR20清零。,五、仿真界面的设计1.售货机背景的设计售货机背景是一个不动的画面,可以利用图片处理的方法按照制定样式的功能画出售货机的整体。,2.显示屏部分的设计,图中的欢迎字符是可以闪烁变化的,‘aaaa’字符可以用来显示系统的时间。交易过程中的币值显示画面如下图,3.电子标签的设计电子标签用来显示程序中传递上来的价格,其中要有可以定义的字符,设计出的标签为。其中的字符‘J.03’表示可以显示03商品价格的变量。4.按钮的设计“选择”按钮的设计要反映出可以购买和不可购买时的差异,所以其中也要有可以变化的字符。设计如右图,其中字符‘选择’在满足条件以后可以闪烁变色。按钮均可以动作。,5.投退币提示框的设计投、退币提示框中要有可以投入的硬币、确认按钮以及框架,其中硬币、确认按钮和字符‘a’均是可以定义的变量。6.出货框的设计出货框出货框中要有01至08商品的示意图以及框架。其中的商品在满足条件后可以出现,鼠标点击后可以消失,是可定义的变量。,投币提示框,退币提示框,出货框,六、仿真界面中各变量的定义仿真程序上的各部分若实现仿真功能,就必须定义成相应的变量,再与PLC程序中的软继电器相匹配,这样才能实现PLC的控制功能。1.中间变量中间变量的作用域为整个应用程序,不限于单个窗口。中间变量适于作为整个应用程序动作控制的全局性变量、全局引用的计算变量或用于保存临时结果。该仿真实验系统中有3个中间变量⑴poiwindows该变量是控制显示屏的。poiwindows1显示屏进入投币交易状态;poiwindows0显示屏返回初始欢迎状态。⑵poiwinJB该变量是控制投币框的。poiwinJB1显示投币框;poiwinJB0投币框消失。⑶poiwinTB该变量是控制退币框的。poiwinTB1显示退币框,poiwinTB0退币框消失。,2.数据库变量当要在界面上显示处理数据库中的数据时,需要使用数据库变量。一个数据库变量对应数据库中的一个点参数。数据库变量的作用域为整个应用程序。数据库变量有三种实型数据库变量、整型数据库变量和字符数据库变量。仿真系统中有56个整型数据库变量,分别对应PLC程序中的56个软继电器。3.仿真界面与PLC程序的配合定义⑴初始状态poiwindows0显示屏显示初始欢迎状态。以01商品为例,电子标签中的字符‘J.01’对应的变量JG01.PV与PLC程序中的地址WR4相匹配,WR4中存储的数据为250,如何让字符显示2.50元呢,方法在开发系统(Draw)中,双击字符‘J.01’,来到“动画连接”画面,选择“数值输出”中的“模拟”项,键入‘JG01.PV/100’即可,由250到2.50实际是计算机来完成的。其它的价格也是如此显示的。,动画连接画面,⑵投币状态当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢双击汉字“投币”,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在“动作描述”框中作如下定义按下鼠标时,poiwinJB1,poiwinJB这个变量是控制投币框的,当poiwinJB1时,出现钱币和提示框;poiwinJB0,钱币和提示框隐藏。下面分别定义提示框和钱币以及“确认”按钮。双击提示框,来到“动画连接”画面,选择“显示/隐藏”项,定义poiwinJB1时显示,各硬币也用同样的方法定义,“确认”按钮也同样定义,这样就使在按下汉字“投币”时,变量poiwinJB1,从而出现投币框,以及硬币等。定义了投币框的显示状态,用鼠标点击代替了实际过程中的钱币投入动作,最重要的任务是投币运算,下面介绍钱币的定义方法。,以十元为例双击十元硬币,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义按下鼠标时,poiwindows1;TR100.PV1;释放鼠标时,TR100.PV0;动作描述画面下图所示。,动作描述画面,其中poiwindows1,是让显示屏不再显示友好界面,来到交易界面;TR100.PV1时给PLC发出一个接通信号,由于TR100.PV对应的PLC地址是R204,使得R204继电器导通,转而执行相应的加十元程序。同样定义其它钱币,注意其对应的PLC软继电器。最后还要定义“确认”按钮。要实现的功能是按下“确认”按钮时,所有的钱币以及投币提示框均消失。这里作如下定义双击“确认”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中作如下定义按下鼠标时,poiwinJB0;poiwinJB0时,所有的钱币以及投币提示框均消失,这是由计算机控制的内部变量。,投币以后,显示屏要及时反映出投币情况,同时“选择”指示也要相应变化(闪烁、变色)。下面来定义显示屏和“选择”按钮。显示屏要显示3种数据,分别为投入显示、消费显示、余额显示。三种显示均用力控软件自带的附件数码管来显示。先在工具箱中点击“选择子图项”,在子图库中找到仪表中的数码管,放在显示屏中,作为投入显示,再复制两个,分别作为消费显示、余额显示。双击数码管来到数码管属性设置画面,在表达式中作如下定义poiTR001.PV/100,poiTR001.PV连接的是PLC程序中的WR1软继电器,是用来存储投入显示数据的,除以100同样是为了PLC数据计算的方便。这样就可用数码管来显示投入的币值。同样定义消费显示,余额显示。,数码管的属性设置画面如图所示,,“选择”按钮要根据余额的数值发生闪烁和变色。定义过程如下双击“选择”按钮,来到“动画连接”画面,在“颜色相关动作”中选择“闪烁”项,分别定义属性和频率,在变量选择项中选择相应的指示灯变量。以01商品的选择指示灯为例,在变量选择项中选择D01.PV1,满足条件时指示灯变色。这样就定义好了投币状态的上位机仿真变量,配合PLC程序可以实现投币功能。,下图是一幅投币时的画面,投入6.60元,还未买商品,注意看显示屏的显示以及选择按钮的变化,此时还不能购买06号商品(价格12元)。,⑶购买状态定义了投币状态,就可以购买商品了。当选择指示灯变色以后,按下它,将会在出货口处出现我们要买的商品。以01商品为例定义“选择”按钮双击“选择”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义按下鼠标时XZ01.PV1;释放鼠标时,XZ01.PV0。XZ01.PV与PLC程序中的R205相对应,按下可以购买商品的选择键,转而执行相应的PLC程序同时消费显示增加相应的币值,余额显示减少相应的币值,此时还要在出货口处出现相应的商品。,用“显示/隐藏”功能来定义在出货口中出现的商品。双击出货口处的小商品,来到“动画连接”画面,选择“显示/隐藏”项,定义CX01.PV1时显示。定义画面下图所示。,,出货口框架的隐藏/显现是用程序来控制的。当有一种商品出现在出货口,就会显示框架;当全部商品均消失后框架隐藏。程序如下图所示。图中R210是控制出货口框架是否出现的继电器。,⑷退币状态当按下“退币”按钮时,PLC要进行退币运算。所以按下“退币“按钮就要与PLC通讯,执行退币计算。下面来定义退币按钮。双击“退币”按钮,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,动作描述为按下鼠标,poiwinJB0;poiwinTB1;Tenter.PV1。释放鼠标,Tenter.PV0;内部变量poiwinJB0是让投币框消失,poiwinTB1是让退币框出现,Tenter.PV与PLC程序中的R20F对应。退币框中要有五种硬币,还要有表示硬币个数的数字。由于计算中采用的算法使得退币时按照币值大小顺序退币,例如退五元,只退一个五元,而不退五个一元。定义表示硬币个数的变量只用一位数即可。在退币时,要退出的硬币及个数显示,而不退的硬币隐藏。,以十元为例,定义钱币时,双击十元硬币,出现动画连接画面,选择“显现/隐藏”项,在“可见性定义”对话框中作如下图的定义。,其它硬币定义方法同上。,,定义钱币个数双击十元硬币个数字符“a”,出现“动画连接”画面,选择“数值输出”中的“模拟”项,作下图的定义。,同时钱币个数也要定义是否隐藏,定义方法和定义钱币相同。,定义“确认”键时,按下”确认”键,代表取走了所有硬币,完成此次交易,因此退币“确认”键的定义很重要。双击“确认”键,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述栏中定义如下按下鼠标poiwinTB0;功能退币框消失;TuiBiok.PV1;功能给PLC信号,闭合R0,完成数据的初始化;poiwindows0;功能显示屏显示友好界面。,为了防止在未取走商品时退币,按下“确认”键后又不能返回原始状态。在描述中加入以下一段程序,强行抛掉已经购买的商品。CX01.PV0;CX02.PV0;CX03.PV0;CX04.PV0;CX05.PV0;CX06.PV0;CX07.PV0;CX08.PV0;,,释放鼠标时,TuiBiok.PV0。只是给PLC一个微分信号,不能将R0永远置为1。还有一点要注意,“确认”键也要有隐藏的时候,定义方法同钱币。定义退币框架按下“退币”按钮后就会出现退币框架。可以这样定义双击退币框架,来到“动画连接”画面,选择“显现/隐藏”项,在“可见性定义”表达式中定义poiwinTB1时显现即可。,七、数据连接1.定义I/O设备数据库是从I/O驱动程序中获取过程数据的,而数据库同时可以与多个I/O驱动程序进行通信,一个I/O驱动程序也可以连接一个或多个设备。下面创建I/O设备。,1在Draw导航器中双击“实时数据库”项使其展开,选择“I/O设备驱动”项使其展开,在展开项目中选择“PLC”项双击使其展开,然后继续选择厂商名“松下电工”并双击使其展开后,选择项目双击并按下图定义。,2单击“完成”按钮返回,在“松下电工”项目下面增加了一项“PLC001”。如果要对I/O设备“PLC001”的配置进行修改,双击项目“PLC001”,会再次出现PLC001的“I/O设备定义”对话框。若要删除I/O设备“PLC001”,用鼠标右键单击项目“PLC001”,在弹出的右键菜单中选择“删除”。2.数据连接刚刚创建了一个名为“PLC001”的I/O设备,而且它连接的正是假想的PLC设备。现在的问题是如何将已经创建的多个数据库点与PLC联系起来,以使这些点的PV参数值能与I/O设备PLC进行实时数据交换,这个过程就是建立数据连接的过程。,由于数据库可以与多个I/O设备进行数据交换,所以必须指定哪些点与哪个I/O设备建立数据连接。为方便起见,将数据列表整理成如下表所示。,数字I/O表,(续上表),模拟I/O表,,3.运行保存所有组态内容,然后关闭所有力控程序,包括Draw、DbManager等。将自动售货机的PLC程序下传到PLC装置中并让其执行,切换到离线状态,然后再次启动力控工程管理器,选择本工程,并单击“进入运行”按钮启动整个运行系统。在运行中,可以按照实际自动售货机的功能来操作,以检验所编程序的正确与否。,