图5 运行初期电子标签价格的内部传递程序
在梯形图程序图5中,系统初始化时,通过运行初期闭合继电器R9013在第
一次扫描时将数值传递给上位机。给WR1-WR11及SV0-SV4赋初值,赋值功能通过高级指令FO实现。至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍它们的作用。 (2).投币过程
在投币的过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样币制。先建立变量表,在编写程序。变量表如表2所示。对应的梯形图程序如图7所示。
表2 投币过程变量表
在图中,当按下投入1角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去。投入1角要投入显示、余额显示都相应增加相同数值,加法是由16位加法指令E20来实现的。投入5角、1元、5元、10元,原理同上。 (3)价格比较过程
价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,
图7 投币过程梯形图
提示可以购买。这里只要选择灯来代表此信号。所建立的变量表如表3所示。 表 3 价格比较过程变量表
根据变量表和控制要求编写的程序如图8所示。
在梯形图8中,为了实现数据的实时比较,用了一个特殊内部继电器R9010,在程序执行过程中,R9010始终保持闭合,F60是16位数据比较指令,用它来比较余额和商品的价格,R900A是大于价格,R900B是等于标志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。
R9010
F60 CMP , WR3 , WR4
R900A Y0 R900B
R9010
F60 CMP , WR3 , WR5
R900A Y1
R900B
R9010
F60 CMP , WR3 , WR6
R900A Y2 R900B R9010
F60 CMP , WR3 , WR7 R900A
Y3 R900B
R9010
F60 CMP , WR3 , WR8
R900A Y4 R900B
R9010
F60 CMP , WR3 , WR9
R900A Y5
相关推荐: