1、可编程控制器应用技术三菱FX2N系列PLC教学课件项目项目4 43 3 自动售货机的程序控制1、区间复位指令又叫什么指令?它的作用是什么? 答: 区间复位指令也称为成批复位指令经常用在主程序开始处,起到对所有数据寄存器、计数器或定时器进行初始清零的作用。 2、编码指令和解码指令有什么关系?一、复习提问一、复习提问: 答: 编码指令是解码指令的反过程 。二、情景模拟:二、情景模拟:退 币 钮取 物 口退 币 口5 角1 元5 元灯亮:投币不足灯闪:无货灯亮:无币找零2 . 5 元1 . 5 元3 元3 . 5 元投 硬 币 口可 乐牛 奶纯 水酸 奶S E D GL 1L 2 本课题自动售货机是
2、通过四则运算及逻辑运算指令来实现。系统示意图如下。 控制功能要求如下:控制功能要求如下:1)按下投币口按钮5角、1元、5元,数码显示投币金额为0.5、1.0、5.0。2)显示金额减去所买货物金额后,数码显示余额,可以一次多买,直到金额不足,灯L1亮提示余额不足。3)当投币余额不足时,如果继续投币则可连续购买。4)投币金额超过十元,L1灯闪烁,数码管显示低两位,但可以继续正确购物。 5)购物4秒后,如果没有再操作,则取物口灯亮,有余额则退币口灯亮。6)如不买货物,按退币钮则退出全部金额、数码显示为零,退币口灯亮。(1)加法指令1 1、指令讲解、指令讲解三、知识准备:三、知识准备:(2)减法指令(
3、3)乘法指令(4)除法指令(5)加1指令(6)减1指令 1)该指令的助记符、指令代码、操作数、程序步如表4-3-1所示。指令名称助记符指令代码位数操作数范围程序步S1S2D()加法ADDADD(P)FNC20(16/32)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnS、T、C、D、V、ZADD、ADDP7步DADD、DADDP13步表4-3-1 加法指令(1)加法指令)加法指令 2)指令梯形图 ADD加法指令是将指定的源元件中的二进制数相加,结果送到目标元件中去。ADD加法指令的说明如下图。图4-3-2 加法指令举例3)指令说明 当执行条件X000由OFF O
4、N时,DIO+D12D14。运算是代数运算,如5+(-8)= -3。 ADD加法指令有3个常用标志。M8020为零标志,M8021为借位标志,M8022为进位标志。如果运算结果为0,则零标志M8020置1;如果运算结果超过32767(16位)或2147483647(32位),则进位标志M8022置1,如图4-3-3所示;如果运算结果小于-32768(16位)或-2147483648(32位),则借位标志M8021置1。1111111111111111 51 41 31 21 11 09876543210符 号 位 : 0 为 正 1 为 负20+21+22+23+24+25+26+27+28+
5、29+210+211+212+213+214=32767 在32位运算中,被指定的字元件是低16位元件,而下一个元件为高16位元件。 源操作数和目标操作数可以用相同的元件号。若源和目标元件号相同而采用连续执行的ADD、(D)ADD指令时,加法的结果在每个扫描周期都会改变。图4-3-3 16位数据运算范围(2)减法指令 1)该指令的助记符、指令代码、操作数、程序步如表4-3-4所示。 指令名称助记符指令代码位数操作数范围程序步S1S2D减法SUBSUB(P)FNC21(16/32)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnS、T、C、D、V、ZSUB、SUBP
6、7步DSUB、DSUBP13步表4-3-4 减法指令2)指令梯形图 SUB减法指令是将指定的源元件中的二进制数相减,结果送到指定的目标元件中去。 SUB减法指令如下图。图4-3-5 减法指令举例 当执行条件X000由OFFON时,D10-D12D14。运算是代数运算,如5 -( -8)=13。 各种标志的动作、32位运算中软元件的指定方法、连续执行型和脉冲执行型的差异等均与加法指令相同。3)指令说明(3)乘法指令1)该指令的助记符、指令代码、操作数、程序步如表4-3-3所示。指令名称助记符指令代码位数操作数范围程序步S1S2D乘法MULMUL(P)FNC22(16/32)K、H、KnX、KnY
7、、KnM、KnS、T、C、D、ZKnY、KnM、KnS、T、C、DMUL、MULP7步DMUL、DMULP13步表4-3-3 乘法指令2)指令梯形图 MUL乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。MUL乘法指令如图4-3-6所示,它分16位和32位两种情况。图4-3-6 乘法指令举例3)指令说明 当为16位运算、执行条件X000由OFFON时,DOD2D5,D4。源操作数是16位,目标操作数是32位。当DO=8,D2=9时,D5,D4=72。最高位为符号位,O为正,1为负。 当为32位运算、执行条件X000由OFFON时,D1,DOD3,D2D7,D6,D5,D4
8、。源操作数是32位,目标操作数是64位。当D1,DO=238,D3,D2=189时,D7、D6、D5、D4=44982。最高位为符号位,O为正,1为负。 如将位组合元件用于目标操作数时,限于K的取值,只能得到低位32位的结果,不能得到高位32位的结果。这时,应将数据移入字元件再进行计算。 用字元件作目标操作数时,也不能对作为运算结果的64位数据进行成批监视。在这种场合下,建议用浮点运算,最高位是符号位,V、Z不能用于D目标元件。(4)除法指令 1)该指令的助记符、指令代码、操作数、程序步如表4-3-4所示。指令名称助记符指令代码位数操作数范围程序步S1S2D除法DIVDIV(P)FNC23(1
9、6/32)K、H、KnX、KnY、KnM、KnS、T、C、D、ZKnY、KnM、KnS、T、C、DDIV、DIVP7步DDIV、DDIVP13步表4-3-4 除法指令2)指令梯形图 DIV除法指令是将指定的源元件中的二进制数相除,s1为被除数,S2为除数,商送到指定的目标元件D中去,余数送到D的下一个目标元件。DIV除法指令使用说明如图4-3-7所示。它分16位和32位两种情况。图4-3-7 除法指令举例3)指令说明 当为16位运算、执行条件X000由OFFON时DOD2D4。当DO=19、D2=3时,D4=6,D5=1。V、z不能用于D中。 当为32位运算、执行条件X000由OFFON时,D
10、1、DOD3、D2,商在D5、D4,余数在D7、D6中。V和z不能用于D中。 除数为0时,运算错误,不执行指令。若D指定位组合元件,得不到余数。 商和余数的最高位是符号位。被除数或除数中有一个为负数时,商为负数;被除数为负数时,余数为负数。(5)加1指令 1)该指令的助记符、指令代码、操作数、程序步如表4-3-5所示。 指令名称助记符指令代码位数操作数范围程序步D加1INCINC(P)FNC24(16/32)KnX、KnY、KnM、KnS、T、C、D、ZINC、INCP3步DINC、DINCP5步表4-3-5 加1指令2)指令梯形图 加1指令的说明如图4-3-8所示。当XOOO由OFFON变化
11、时,由D指定的元件DIO中的二进制数加1。图4-3-8 加1指令举例3)指令说明 若用连续指令时,每个扫描周期加1。16位运算时-3276 7再加1就变为 -32768,但标志不置位。同样,在32位运算时,+2147483647再加1就变为 -2147483647,标志也不置位。(6)减1指令 1)该指令的助记符、指令代码、操作数、程序步如表4-3-6所示。指令名称助记符指令代码位数操作数范围程序步D减1DECDEC(P)FNC25(16/32)KnX、KnY、KnM、KnS、T、C、D、ZDEC、DECP3步DMUL、DMULP5步表4-3-6 减1指令2)指令梯形图 减1指令的举例如图4-
12、3-9所示。当X001由OFFON变化时,由D指定的元件DIO中的二进制数减1。图4-3-9 减1指令举例3)指令说明 若用连续扫描指令时,每个扫描周期减1。在16位运算时,-32768再减1就变为+32767,但标志不置位。同样,在32位运算时,-2147483648再减1就变为+2147483647,标志也不置位 。四、任务实施四、任务实施1 1、 控制系统程序分析控制系统程序分析: :1)由于自动售货机具有求和、求减等运算功能,因此首先要定义好各数据寄存器的功能。D10:投入钱币的总额,投入钱币作加运算,购买物品作减运算。D20:投入钱币总额的十位数字。D21:投入钱币总额的个位数字。2
13、)使用比较指令,当投入钱币数总额10元时,L1灯闪烁;投入钱币0(M32=1),表示没有购物,则取币口灯Y1亮;若这时有购物行为(M60=1),且投过币(M61=1),且余额不小于0( M30),则退物口灯Y2亮。1S后数额显示为零,再1S后退币口灯或退物口灯熄灭。 4)如果购物4秒后,没有任何操作,则M50也置1,若这时投过币(M61=1),且余额0(M32=1),表示没有购物,则取币口灯Y1亮;若这时有购物行为(M60=1),且投过币(M61=1),且余额不小于0( M30),则退物口灯Y2亮。1S后数额显示为零,再1S后退币口灯或退物口灯熄灭。 2、控制系统的程序设计、控制系统的程序设计
14、(1) I/O 的分配(见表的分配(见表4-3-7)输入功能说明输出功能说明X001投币口(5角)Y010A1X002投币口(1元)Y011B1X003投币口(5元)Y012C1X004购货按钮(1.5元)Y013D1X005购货按钮(2.5元)Y014A0X006购货按钮(3元)Y015B0X007购货按钮(3.5元)Y016C0X000退币钮Y017D0Y002取物口灯Y001退币口灯Y000L1表4-3-7 自动售货机I/0分配 (2)编写程序,并下载到)编写程序,并下载到PLC (见图(见图4-3-10)图4-3-10 自动售货机梯形图【程序说明】1、使用D10作为投入钱币的数据寄存器
15、。若按下X001表示投入5元,再按下X003则又投入50元,然后按下可乐选择按钮X005,则D10=5+50-25=30,见图4-3-11。图4-3-11 程序说明12、使用两位数码管显示余额,使用除法指令将十位及个位数分开,再使用BCD转换指令驱动输出。若D10余额为30,D20=D10/10=3,D21=0,则两位数据显示为30,见图4-3-12。图4-3-12 程序说明23、系统安装及调试、系统安装及调试(1)首先应弄清楚系统的输入和输出,可按照图4-3-13在触摸屏上放置程序所需观察的输入和输出器件,建立好PLC与触摸屏的连接,并定义好各输入输出器件,为程序的调试和监控作好准备。图4-
16、3-13 自动售货机监控界面(2)根据图4-3-14 PLC系统I/O分配图完成PLC的输入输出接线,并检查有无断路及短路现象,运行程序,观察PLC输出信号是否能满足控制要求。调试程序直至系统正常工作。PLCLNC O M2 2 0 VX 0X 1S B 0FUX 2X 3X 4X 5X 6X 7S B 1S B 2S B 4S B 5S B 6S B 7Y 1 4Y 1 5Y 1 6Y 1 7eD0cA0B0fdC0gbC D 4 5 1 124VLTBILEVSSaV D DVD DY 1 0Y 1 1Y 1 2Y 1 3eD1cA1B1fdC1gbC D 4 5 1 1LTBILEVSS
17、aV D DVD DS B 3Y 0Y 1Y 2COM1COM2COM3图4-3-14 自动售货机PLC系统I/O分配图五、拓展练习五、拓展练习例:用乘除法指令实现灯组的移位点亮循环。有一组灯15个,分别接到输出Y000-Y007及Y010-Y016上,要求:当X000为ON时,灯正序每隔1S单个移位,并循环;当X000为OFF时,灯反序每隔1S单个移位至Y000为ON,停止。1.I/O分配(见表4-3-9)输入元件作用输入继电器输出元件作用输出继电器启动X000组灯(15个)Y000Y007Y010-Y016表4-3-9 输入输出分配表2、梯形图(见图4-3-15)图4-3-15 例梯形图思考与练习思考与练习: FX2N系列PLC具有较强的数学指令集,除了整数四则运算指令外,在一些要求较高的场合下使用浮点数运算,可以有效提高控制精度,更好地提高产品合格率。浮点数是指带有有限位小数的有理数,如-10.8、0.00、25.01 等。整数运算时,得到的结果是一个整数,并且计算结果中的小数部分将被忽略。例如:用整数运算时,100333。浮点运算时,得到的结果是一个浮点数,计算结果中的小数部分将保留下来。例如:用浮点运算时,100.03.0=33.33333333。