版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/2/21
第3章应用基本指令编程
应用基本指令编程,是PLC应用的重要方面。本章主要从介绍编程的方法和技巧开始,再从按空间原则和时间原则编程展开,最后介绍一些编程例子。本章的主要内容如下:图3-1(b)3.1
编写PLC程序的方法和技巧3.2按空间原则编程3.3按时间原则编程3.4编程实例2023/2/223·1编写PLC程序的方法和技巧3.1.1编制梯形图的一些基本要求
1.梯形图中每一逻辑行从左到右排列,以触点与左母线联接开始,以线圈与右母线联接结束。2.逻辑电路并联时,宜将串联触点多的电路放在上方,如图3-1所示。(a)(b)图3-12023/2/233.逻辑电路串联时,宜将并联电路放在左方,如图3-2所示。
(a)(b)图3-24.线圈输出时,能用纵接输出的,就不要用多重输出,如图3-3所示。(a)(b)图3-35.用基本指令编程,不可以出现“双线圈”现象。
2023/2/24(a)(b)2023/2/253.1.2一些常见电路的PLC程序编写方法
1.闪烁电路
用两个定时器,可以组成一闪烁电路,或称多谐振荡器,如图3-5所示。2.延时断开电路用一扳把开关X0及定时器T0,可以组成延时断开电路,如图3-6所示。2023/2/263.二分频电路
图3-7为由定时器和计数器构成的二分频电路。
图3-7
图中,初始脉冲M8002使C0复位清零。接通X0,则T0、T1构成脉宽为1s的脉冲发生器。C0的设定值K=2,则Y0接通2次,Y1才接通1次,构成二分频电路。如果将C0K2改为C0K4,则构成四分频电路。2023/2/274.长时间延时电路可以用定时器和计数器构成长时间延时电路,如图3-8所示。图中按下X0后,延时4个小时,Y0得电。图中按下X0后,延时4个小时,Y0得电。图3-82023/2/285.三相异步电动机Y—△降压起动电路图3-9为三相异步电动机Y—△降压起动电路。Y起动时,KM1、KM3得电;延时后,KM1、KM2得电,为△正常运行。电路逻辑如下:电路逻辑电路逻辑的简化图3-92023/2/29按上式,得梯形图如3-10所示。注意,I/O图中继电器KM2、KM3要互锁。将继电接触控制电路改换成PLC控制方式时,注意:编制PLC程序,不一定是对继电接触控制电路的“直译”,而是按其电路逻辑的变换。因此,编写程序时,要先写出电路逻辑,再进行简化。(a)I/O分配(b)梯形图图3-102023/2/210
如果将继电接触电路的常闭按钮(如FR、SB1),在I/O分配图中接成常闭形式(如图3-11a所示),其梯形图就应如图3-11(b)所示对电路中联锁的器件(如图3-10、图3-11中的KM2、KM3),不仅要在梯形图中实现电气联锁,而且在I/O连接图中也要实现电气联锁。(a)I/O的分配(b)梯形图图3-112023/2/2113·2按空间原则编程在很多工程中都会遇到按空间原则进行控制的问题。按空间原则编写PLC程序,一般要用到行程开关。行程开关受压(或受撞击),其常闭触点断开,而常开触点接通。之后,触点复位。编程时要注意这个特点。下面,用几个例子说明按空间原则编程的特点。
例3-1图3-12为行程开关控制的电动机正反转电路,图中行程开关SQ1、SQ2作为往复运动控制用,而SQ3、SQ4作为极限位置保护用。试编写PLC控制电路图。图3-12
图3-13a)I/O图2023/2/212图3-13为图3-12的梯形图.图中使用了MC/MCR指令。图3-13b)梯形图2023/2/213例3-2某组合机床的液压动力滑台的工作循环如图3-14所示。电磁阀动作顺序如表3-1所示。试编写PLC控制程序,要求能实现单周和连续工作状态及返回原位,延时10s后又能自动循环工作。图3-14滑台工作循环图3-15(a)为I/O分配图,图中X0为起动按钮,X4为停止按钮,X5为单周/连续选择开关,当开关QS闭合,为自动循环工作状态;当开关QS断开,为单周工作状态。图3-15(b)为梯形图。图中M0为主控点。图3-15(a)I/O分配图2023/2/214图3-15(b)梯形图如执行图3-15(b)程序,当碰击行程开关SQ2时,YA3闭合,但当离开行程开关SQ3时,YA3又接通,因此无法进入工进状态。其原因是在这类行程开关中,当档板压行程开关,则常开接通,常闭断开,而当档板离开行程开关,则常开复位继开,而常闭复位接通。2023/2/215如果将图3-15(b)改为图3-16,利用辅助继电器M1、M2则能实现对图3-14的控制。但这类步进控制式过程,最好用步进顺控的方法,或用位移位指令SFTL或SFTR来编程,见后述。图3-162023/2/2163·3按时间原则编程很多实际控制问题,都与时间有关。按时间原则编程,要用到定时器。定时器的使用,要注意它的时间设定及其触点控制的支路,常有两种方式,如图3-17所示。图中(a)为定时器与驱动线圈分开编程方式;图(b)为定时器与驱动线圈混合编程方式,各个动作在一个逻辑行中完成,使用纵接或多重输出。对于含有多个定时器的驱动电路,采用图(a)方式为好。(a)(b)图3-172023/2/217例3-3有四台电机,M1、M2、M3、M4,顺序起动,反顺序停止。起动时的顺序为M1→M2→M3→M4,时间间隔分别为3s、4s、5s。停止时的顺序为M4→M3→M2→M1。时间间隔分别为5s、4s、3s。为维修方便,每台电机可单独起动,单独停止,试画出I/O分配图以及梯形图。
本题I/O分配图如图3-18(a)所示,梯形图如图3-18(b)所示。图中T0、T1、T2为起动时的时间设定,T3、T4、T5为停止时的时间设定。当按X0接通,M0得电,Y1、Y2、Y3、Y4顺序得电,电机顺序起动。当X1接通时M1得电,Y1、Y2、Y3、Y4反顺序失电,电机反顺序停止。Y1、Y2、Y3、Y4、分别有单独检修的起动和停止控制。当M0得电时,单独检修电路不能工作。只有当M0失电时,单独检修电路才能工作。例如对电机Y1,当M0失电,M0=1,按X2,Y1得电;按X3,Y1失电。余类推。图3-18a)I/O分配图2023/2/2182023/2/219图3-18b)四台电动机顺序工作控制的梯形图2023/2/220例3-4电机M1、M2、M3工作时序如图3-19所示。要求(1)按起动按钮,运行100个循环,自动停止,(2)之后再按起动按钮,又能自动循环工作。(3)任何时刻按下停止按钮,都能顺序完成一个完整的循环才停止。
图3-19电机M1、M2M3、M4工作时序编程时,先将工作时序图的各时段记作T0、T1、T2,…,再编写程序。由图3-19知,本题目含定时器的时间的设定,循环,计数器的清零、计数及复位。电机M1一次起停,M2二次起停,M3三次起停。它们的逻辑关系为2023/2/221按上式及图3-19时序图可编得梯形图如图3-20所示。2023/2/222图3-20梯形图中的X0为起动按钮,X1为停止按钮。第18逻辑行中的T6,起到控制循环的作用。当程序运行到T6,延时2s时间到,T6为OFF,则T0、T1、…T6均失电,T6的常闭触点又闭合,T0、T1、…,T6又顺次得电,开始另一循环。每执行T6一次,计数一次。当C0当前值得于100,C0常闭断开,程序结束,但同时又使计数器C0复位,准备下一次循环。程序的第0逻辑行中(M1+T6)是为了响应“顺序完成一个完整的循环才停止”而设计。第11逻辑行中(M8002+C0+X0·X2)为C0清零控制,其中X2为当X1按下急停后要重新计数或继续计数的切换。2023/2/223例3-5三台电机的工作时序如图3-21所示。要求①有停止、起动按钮,完成100个循环之后,再按起动按钮,又能重新循环工作;②用计数器来控制时间。图3-21电机M1、M2、M3的工作时序本题的关键是用计数器来控制时间。用计数器来完成时间的控制,一般先要设置一个一定时间的连续脉冲,然后再对此脉冲的个数进行计数,从而达到时间控制的目的。图3-22为编制的梯形图。梯形图中X0为起动按钮,X2为停止按钮。T0产生一连续5s的脉冲,C1、C2、C3、C4分别对脉冲个数计数,利用脉冲个数再依据工作时序图对Y1、Y2、Y3控制。C0为对循环次数控制。当C0达到设完值,循环结束。注意图中对计数器清零复位采用三种清零方式:起始清零,达到计数设完值复位清零及急停复位清零,即RSTC0=M8002+C0+X22023/2/224图3-222023/2/2253·4编程例子试设计一声光报警电路,要求按起动按钮后,报警灯亮0.5s,灭0.5s,闪烁100次。这段时间蜂鸣器一直在响。100次到达,停5s后又重复上述过程,如此反复三次,结束。之后再按起动按钮,又能进行上述工作。2023/2/226图3-25球磨机工作的I/O图和梯形图2023/2/227例3-8十字路口交通灯控制,如图3-26所示。
控制要求如下(1)车行道:横向绿(G)灯亮30s→绿灯闪3次,各次1s→黄灯(Y)亮2s→红灯(R)亮35s;纵向红灯(R)亮35s→绿灯(G)亮30s→绿灯闪3次,每次1s→黄灯亮2s。
(2)人行道:横向绿灯(G)亮30s→绿灯闪5次,每次1s→红灯(R)亮35s;
纵向红灯(R)亮35s→绿灯(G)亮30s→绿灯闪5次,每次1s。2023/2/228按题目要求得交通灯的工作时序如图3-27所示。图3-27
由交通灯工作时序图,可编制梯形图如图3-28所示。梯形图中采用了MC、MCR语句,作为主控。第6行至第35行为时间的设定,其中T6、T7产生连续1s的脉冲。第39行至第49行为车横道G、Y、R灯,第53行至第64行为车纵道R、G、Y灯。第67行为人行横道绿灯。第74行为人行纵道绿灯。第81行为报警灯,即当车行横道纵道同为红灯或绿灯,人行横道和纵道同为红灯或绿灯,报警。2023/2/229
注意第39行、第57行、第67行和第74行灯的连续得电与闪烁的编程。其中第39行(M0·T0)为连续得电控制,(T0·T6·T1)为闪烁的控制。2023/2/2302023/2/231例3-9电镀生产线的PLC控制设该生产线由电镀槽、回收槽、清水槽,行车线,升降吊钩,行程开关等组成,如图3-29所示。图中A为原位,工件放于此处。工件与吊钩挂好之后,使吊钧上升。上升到顶,碰行程开关SQ2,上升停止;行车右行,碰SQ3,吊钩下降;到最低位碰SQ1,工件停于电镀槽中,电镀300s。吊钩上升,碰SQ2,停30s让镀液滴下。之后,右行到SQ4,吊钩下降,碰SQ1,在回收槽中停40s;吊钩上升,碰SQ2,停20s。之后,右行到SQ5,吊钩下降,碰SQ1,在清水槽中停30s;吊钩上升,碰SQ2,停20s。之后,右行,碰SQ6,吊钩下降,碰SQ1,将已镀工件放在B处,运走。然后吊钩上升,碰SQ2,行车左行,退回最左边碰SQ7,吊钩下降,回到A位置。然后再挂工件进行第二次循环工作。图3-29电镀生产线示意图2023/2/232由上述生产流程要求,选用PLC的I/O分配如图3-30所示
电镀生产线程序如图3-31所示。图中用定时器T0、T1、T2、T3设定各步停止等待的时间,而T4为已镀工件放到B位置卸下的时间。Y1为吊钩升,Y2吊钩降,Y3右行,Y4左行。在Y1的控制中,除起动按X10上升以外,其余均是当T0、T1、T2、T4延时到达时上升。Y3右行,也是条件右行。例如第二次右行是当T1到达时开始,右行碰SQ4(X4)停止。SQ4一旦被碰合,立即驱动吊钩下降(Y2动作),到底端碰SQ1(X1),下降停止。图3-30I/O分配图2023/2/2332023/2/2342023/2/235第4章步进顺序控制4·1步进阶梯指令和步进顺控状态转移图4·2单流程的步进顺控4·3分支流程的步进顺控4·4步进顺控的编程例子2023/2/2364·1步进阶梯指令和步进顺序状态转移图4.1.1步进顺控指令
步进顺控指令有两个:步进阶梯指令STL和返回指令RET。指令的助记符及功能如表4-1所示:4.1.2状态转移图状态转移图又称为状态流程图,它是一种表明步进顺控系统的控制过程功能和特性的一种图形。图4-1为一简单的状态转移图。图中S0为初始状态,用双线方框表示。它由M8002驱动。当PLC由STOP→RUN切换瞬间,初始化脉冲M8002使S0置1。其它状态元件用方框表示。方框间的线段表示状态转移的方向,习惯上由上至下或从左到右。线段间的短横线表示转移的条件。与状态框连接的横线和线圈等,表示状态驱动负载。图4-1状态转移图2023/2/2374.1.3步进阶梯图与指令表
图4-1的步进阶梯图与指令表如图4-2所示。2023/2/238图4-2从STLS0到RET为步进顺序控制部分,称为SFC,而第0行与最末一行END为基本逻辑指令梯形图部份。
返回指令RET接于最末一状态元件子母线下,单独成一逻辑行。图4-1图4-2的原理如下:当PLC开始运行(RUN),初始脉冲M8002使初态S0置1。当按起动按钮X0,状态从S0转移到S20,S20置1,而S0复位到零。S20状态为1,驱动Y0。当转移条件X1接通,状态转移到S21,S21置1,而S20复位为零,Y0线圈失电。S21状态为1,驱动Y1及定时器T1,延时3s到,转移条件T1常开触点接通,状态转移到S22,而S21复位为零,Y1、T1失电。S22状态为1,驱动Y2。当转移条件X2接通,状态转移到S23,而S22复位为零,Y2失电。S23状态为1,驱动Y3及T2。T2延时时间5s到,T2常开触点闭合,状态转移返回S0,初始化状态S0又置位。当X0又接通,另一循环动作开始。2023/2/2394.1.4SFC编程注意的问题
应用SFC编程,要注意以下几个问题:(1)在SFC状态转移中,状态的地址号不能重复使用。例如,不能出现两个或两个以上的S20或S21等。每步用一个状态元件号。(2)STL触点右方,可以看成提供一状态子母线。此子母线可直接通过触点完成驱动或置位功能。与子母线连接的触点用LD、LDI指令。(3)在不同步之间,可输出同一个软元件(如Y、M等),如图4-3(a)所示。线圈Y1、Y2可以在相邻的状态或不相邻的状态中输出。但定时器却不能在相邻的状态中输出,如图4-3(b)所示。因为在相邻状态输出的定时器相当于其定时线圈通电不断开,当前值不能复位。但如T1在不相邻的状态中输出,则仍然是允许的。(a)线圈Y、M可以连续输出图4-32023/2/240图4-3(b)定时器T不能连续输出
(4)在STL状态子母线的输出,要满足“先驱动,后转移”的原则,因此不能连成如图4-4(a)中形式,而要连成如图4-4(b)的形式。图4-4STL状态后母线的输出2023/2/241
(5)在状态内使用基本逻辑指令,除了MC/MCR不能使用,MPS/MRD/MPP的使用应注意者外,其余均可使用。如图4-5所示,在STL状态子母线直接并联输出触点线圈,连续使用LD指令则可。但在触点X0后并联输出触点线圈,则要用到MPS/MRD/MPP指令。图4-52023/2/2424·2单流程的步进顺控
单流程步进顺控是指其状态转移图从开始到结束一步一步转移和执行的。工程上大多数的工位控制,都属于这种情况。解决这类问题,通常是根据工程或题设条件,画出状态转移图,再编写步进梯形图,检查其逻辑是否符合题设条件。
例4-1四台电机M1、M2、M3、M4顺序控制。起动时按M1→M2→M3→M4顺序起动,时间间隔分别为3s、4s、5s。停止时,按M4→M3→M2→M1顺序停止,时间间隔分别为5s、4s、3s。起动时如发现某台电机有故障,则按停止按钮,这台电机立即停止,其他电机按反顺序停止。例如发现M3起动过程有故障,按停止按钮,M3立即停止,延时4s以后,M2停止,再延时3s,M1停止。试用步进顺控方法编程。
图4-6为状态转移图.当起动正常时,四台电动机按Y1→Y2→Y3→Y4顺序和设定的时间间隔起动。当正常停止时,按X1,则四台电动机按Y4→Y3→Y2→Y1顺序和设定的时间间隔停止。
2023/2/243图4-6四台电动机起动停止状态转移图2023/2/2442023/2/245图4-7四台电动机顺序起动步进梯形图2023/2/246
例4-2设计一声光报警电路。要求按起动按钮后,报警灯亮0.5s,熄0.5s,工作100次。这段时间蜂鸣器一直在响。100次到达,停10s之后重复上述过程。如此反复三次,结束。之后。再按起动按钮,又能进行工作。本例要用到计数器、定时器,其中T0、T1组成闪烁电路,闪烁周期为1s。T2用来设定两次报警的中间停止时间。C0用来记录闪烁次数,而C1用来记录循环的次数。X0为起动按钮,Y0为报警灯,Y1为蜂鸣器。图4-8为报警电路的工作流程图。图4-8中,初始脉冲使初态S0置1,对C1清零。按起动按钮X0,状态转移到S20。警灯Y0亮,置蜂鸣器Y1响。延时5s到,状态转移到S21。S20复位,灯熄灭。S21置1,C0计数1次。T1延时时间到,而C0未达到设定100次,状态向上跳到S20,使警灯又亮5s,之后熄灭5s。一直到C0达到100次,状态转移到S22,蜂鸣器停止,同时Y1=1,驱动状态转移到S23,延时10s,C1计数1次,并对C0清零。延时10s时间到,但C1未达到设定值3次,状态跳转到S20进行第二次循环。一直到C1达3次。T2延时时间到,状态返回初态S0,过程结束。图4-9为报警电路的步进阶梯图。图4-8报警电路状态转移图2023/2/2472023/2/248图4-9报警电路步进阶梯图
图4-9中,S20和S21两状态构成了闪烁电路。注意由两状态元件构成的闪烁电路与由两定时器构成的闪烁电路的不同,以及状态间的跳转与转移。2023/2/2494·3分支流程的步进顺控4.3.1选择性分支选择性分支流程的特点是各分支状态的转移由各自条件选择执行。不能进行两个或两个以上的分支状态同时转移。图4-10为选择性分支流程图
从图中看到,一开机,初始脉冲M8002使初态置1。接通起动按钮,状态转移到S20,使S20置1,驱动Y0,同时等待状态转移。当X1闭合,状态转移到S21;当X11闭合,状态转移到S31;当X21闭合,状态转移到S41。但X1、X11、X21不能同时闭合,它们可以是机械联锁或是电气联锁。当某一分支条件满足,某一分支工作。例如,当X1闭合,S21置1,驱动Y1。当条件X2满足闭合,状态转移到S22,Y2得电,当X3闭合,状态转移到S50。同理,当X11或X21闭合,则流程沿第二分支或第三分支进行。选择性分支流程的特点是(1)分支时是先分支后条件;(2)会合时是先条件后汇合。(3)各分支不能同时进行。图4-9选择性分支流程图2023/2/2502023/2/251图4-11选择性分支的步进阶梯图注意图中第7步是选择性分支的“分”。顺序写“SETS21”、“SETS31”“SETS41”。第18步是对SETS21的响应,第28步是对SETS31的响应,第38步是对SETS41的响应。第48步是选择性分支的“合”。2023/2/2524.3.2并行性分支并行性分支的特点是当条件满足,源的状态同时向各并行支路转移。各分支完成各自的状态转移,才汇合向下一状态转移。图4-12为并行性分支的流程图。
从图可以看到,当初始脉冲M8002使S0置1后,接通X0,则状态平行地同时转移到S20、S30、S40。程序先对S20响应(STLS20),再对S30响应,再对S40响应。当这三个并行性分支同时达到各支路的最后一个状态,也就是说,当STLS21、STLS31、STLS41同时为1时,接通按钮X31,状态才会转移到S50。也就是说,并行性分支的特点是分支时先条件后分;汇合时先合后条件。图4-11选择性分支的流程图图4-13为其步进阶梯图。2023/2/253图4-132023/2/2544.3.3多层次的分支结构多层次的分支结构是指从选择性分支转移到另一个选择性分支,或从并行性分支转移到另一个并行性分支,或从选择性分支转移到并行性分支,或从并行性分支转移到选择性分支。发生这种转移的时候,在两层之间必须有一作用状态元件。如果程序中缺此状态元件,那就应选择取一个编号偏离得较大的状态元件作为虚拟态。以保证两层分支电路的汇合与分支之间有一作用元件,如图4-14所示。图中S100即为虚拟态,它是选择性分支的作用元件,又是并行性分支的起始元件,满足选择性分支的“合”条件和并行性分支的“分”条件。图4-14两层分支的流程图2023/2/2552023/2/2562023/2/257图4-15两层分支状态的步进阶梯图
程序中从第7行到第45行是选择性分支,用S100作为虚拟作用状态元件。从第48行到第77行是并行性分支。只有当三个分支同时到达最后一个状态元件(即S24、S34、S44均置1,且X6为ON)才汇合。满足并行性分支的汇合原则。2023/2/2584.3.4状态间的跳转和复位从一个状态向上或向下的直接转移,或向系列外的转移,均称为跳转。如图4-16(a)、(b)(c)所示。(a)向下跳转(b)向上跳转(c)向系列外跳转图4-16状态间的跳转图4-17状态元件的条件复位当条件满足,也可对一个状态元件或多个状态元件复位。如图4-17所示。图中(a)为对单状态元件的复位,用RST;(b)为对多个状态元件的复位,用ZRST。ZRST为成批复位指令。2023/2/2594.3.5利用同一信号进行状态转移
将上升沿检测指令作用于特殊辅助继电器M2800,则可以利用同一信号高效率地进行状态转移。M2800的特性是当M2800线圈得电后,能使具备通电条件且离线圈最近的一个触点接通,如图4-18所示。图4-18中,初始脉冲M8002使S0置1,Y0得电。当X0第1次接通,M2800线圈得电,第8行M2800上升沿脉冲使S20置1,Y1得电。当X0第2次接通,第14行M2800上升沿脉冲使S21置1,Y2得电。按此规律,S20、S21、S22…将顺次置1,Y0、Y1、Y2,…将顺次被驱动。2023/2/2604.3.6步进顺控中连续、单周和单步的运行控制
步进顺控中的连续控制是指程序周而复始地循环工作,单周控制是指每执行完一次循环动作后便停止,单步是指每按一次单步执行按钮,程序便执行一步。要完成这种控制,常要用到下列下列特殊辅助继电器:M8000(RUN监视),M8040(禁止转移),M8046(STL有效),M8047(STL动作)。
图4-19为步进顺控中连续、单周和单步的运行控制例子。图中Y0、Y1、Y2、Y3为喷水头的控制线圈。
图(a)为流程图,
图(b)为步进阶梯图。图中X0为起动按钮,X1、X2为扳把开关。按X0,当X1=OFF,X2=OFF时为连续;当X1=ON,X2=OFF为单周,每周要按X0;当X2=ON为单步,每执行一步,按一次X0。图4-17a)流程图2023/2/261
图4-19梯形图2023/2/2624·4步进顺控的编程例子
例4-3彩灯工作。要求:①红灯亮1s,之后红灯灭,绿灯亮2s,之后绿灯灭,黄灯亮3s;②之后,三灯全亮,3s后全灭;③停1s后,步骤①、②循环5次;④之后红绿灯闪烁,亮1s、灭1s;红灯亮时、绿灯灭、红灯灭时、绿灯亮,闪烁10次;⑤之后,绿黄灯闪烁,过程与④相同;⑥停2s之后,再返回①,循环5次。用步进顺控编程。
本例中有3个输出:Y1(红灯)Y2(绿灯)Y3(黄灯)按彩灯工作要求,可得图4-20流程图。图中从S20至S24为第一次循环,用C0记录其循环次数。从S25至S26为第二次循环———红绿灯闪烁。用C1记录循环次数。从S27至S28为第三次循环。用C2记录其循环次数10次,大循环5次用C3记录,以S29驱动。当T9到达,而C3未达5次,程序转向到S20,进行第二次大循环。当T9到达,而C3达到设定的5次,则返回S0初态。2023/2/263图4-20彩灯流程图2023/2/2642023/2/2652023/2/266图4-21彩灯工作步进梯形图2023/2/267例4-4十字路口交通灯的步进控制
十字路口交通灯控制的示意图和时序图见图3-26和图3-27示。本题应用SFC方法来编写。令车道为一支,人行道为一支,它们构成并行性分支。
其流程图如图4-22所示。初始脉冲M8002对初态S0置1后,接通X1,则状态同时转移到S20和S30。S20置1,驱动车横道绿灯G,车纵道S2灯R,延时30s,状态转移到S21。S21和S22构成闪烁电路,绿灯闪烁3次,状态转移到S23,车横黄灯Y亮2s。之后,状态转移到S24,使车纵道红灯R熄灭,车纵道绿灯G亮,车横道红灯R亮,延时30s后,转向回到S21,车纵道绿灯闪烁3次,之后,状态转移到S25,车纵道黄灯亮2s。
同理,S30置1,驱动人横道绿灯G、人纵道红灯R。延时30s后,人横道绿灯闪烁5次。之后,状态转移到S33,使人纵道红灯R熄灭,人纵道绿灯G亮,人横道红灯R亮。延时300s,转向回到S32,人纵绿灯G闪烁5次。之后,状态转移到S34,使人纵道绿灯G熄灭。
两并行支路汇合,返回状态S0。此时由于X1已闭合,又同时驱动S20和S30,并令其置1,开始另一次循环2023/2/268图4-22十字路口交通灯SFC流程图2023/2/269十字路口交通灯的步进梯形图如图4-23所示。2023/2/2702023/2/271图4-23十字路口交通灯步进梯形图2023/2/272例4-5大小铁球分类传送系统(本题取材于FX2N编程手册)
大小铁球分类传送系统如图4-24所示。图中CY1为电磁铁机械臂,它可以下降、上升、左行、右行、吸引和释放。机械臂左右移动用电动机M驱动、电磁铁上限位和下限位分别由行程开关SQ3和SQ2控制,左限位行程开关为SQ1。当机械臂下降未达低限,行程开关SQ2处于断开位置,吸引大球。当机械臂下降到达低位,SQ2常开闭合,吸引小球。图4-24大小铁球分类传送系统2023/2/273大小铁球分类传送系统的I/O分配如图4-25所示。
大小铁球分类传送的状态转移图如图4-26所示。图中采用了选择性分支方式设计。小铁球为一支,大铁球为一支,两支联锁。当Y0得电下降,SQ2受碰击,使X2闭合,则吸引小铁球。当X2未闭合,而下降计时T0时间到,则吸引大铁球。铁球在传送过程中,电磁铁不允许释放,只有待机械臂到达收集铁球容器位置并下降至低位,才允许释放。为此,使用了SET和RST指令。图4-25I/O图图4-26状态转移图2023/2/274图4-27为大小铁球分类的步进梯形图2023/2/275图4-27大小铁球分类传送的步进梯形图2023/2/276例4-6用步进梯形图的方法编写实现广告牌字体闪光控制,分别用Y0,Y1,Y2,Y3,Y4,Y5控制灯光,使“欢迎你好朋友”六个字明亮闪烁,控制流程如下表。表中+为得电,空白为不得电。图4-28为例4-6的步进梯形图。当PLC上电后,初始脉冲使S0置1,按起动按钮X0,状态转移到S20,使Y0得电,延时1s后,使S21置位,之后,顺次使Y1、Y2、Y3、Y4、Y5得电1s。当运行到第55行,使Y0~Y5同时得电,为了节省程序步,因此使用了数据传送指令MOV,将十进制数K63送K2Y0(即将63送到从Y7~Y0共8个软元件中),使Y0~Y5得电。M0V指令的意义和用法见第5章。2023/2/2772023/2/2782023/2/279运行图4-28程序,当执行到S29状态T9接通时,程序返回到S20状态,循环不断。如何使程序停止?一般在步进顺控中要使程序停止,必须设置一个出口,如图4-29所示。图中增加了一个扳把开关X3。当(T9·X3)为1,状态转到S30,执行ZRST指令,使S20~S30成批复位,程序结束。图4-29步进梯形图的出口2023/2/280
第5章应用指令5·1应用指令概述5·2程序流程指令(FNC00~09)5·3传递及比较指令(FNC10~19)5·4算术及逻辑运算指令(FNC20~29)5·5循环及移位指令(FNC30~39)5·6数据处理指令(FNC40~49)5·7高速处理指令(FNC50~59)5·8方便指令(FNC60~69)5·9外部I/O设备指令(FNC70~79)5·10外部串联接口设备控制指令(FNC80~89)5·11浮点运算指令(FNC110~147)5·12时钟运算指令(FNC160~169)5·13格雷码变换指令(FNC170~171)5·14触点比较指令(FNC224~246)5.15编程例子2023/2/281FX系列应用指令可分为程序流向控制指令,数据传送和比较指令,算术与逻辑运算指令,移位和循环指令,数据处理指令,方便指令,及外部输入输出处理和通讯指令等。FX系列的应用指令冠以FNC符号。例如FX0S系例PLC的应用指令编号为FNC00-FNC67;FX0N系列PLC的应用指令编号为FNC00-FNC79;FX2N系列PLC的应用指令编号为FNC00-FNC246,见附录A所示。本章以FX2N系列PLC为例,介绍一些应用得较为广泛的应用指令。5.1应用指令概述应用指令由指令助记符、功能号、操作数等组成。在简易编程器中输入应用指令时,是以功能号输入的,在编程软件中是以指令助记符输入的。应用指令的一般形式如表5-1所示。2023/2/282说明如下:1.助记符和功能号如上表所示,助记符MOV(传送数据)的功能号为FNC12。每一助记符表示一种应用指令,每一指令都有对应的功能号。2.操作元件(或称操作数)有些应用指令只有助记符,但大多数应用指令在助记符之后还带有1~5个操作元件。它的组成部份有:(1)源操作元件(S.),有时源不止一个,例如有(S1.)、(S2.),S后面有(.),表示可使用变址功能。(2)目标操作元件(D.),如果不止一个目标操作元件时,用(D1.)、(D2.)表示。(3)K、H为常数,K表示十进制数,H表示十六进制数。(4)功能助记符后有符号P的,例如MOVP,表示具有脉冲执行功能。脉冲执行功能是指允许相应指令被控制输入触点的上升沿所驱动。该指令在一个扫描周期内执行。(5)应用指令助记符前有符号D的,例如DMOV,表示处理32位数据,而不标D的,只处理16位数据。例如(6)在本章以后的叙述中,用M0V(P)表示既可执行MOV,又可执行MOVP指令;用DM0V(P)表示既可执行DMOV,又可执行DMOVP指令。2023/2/2833.位软元件和字软元件只有ON/OFF状态的元件,称为位软元件,如X、Y、M、S等;其它可处理数字数据的元件,例T、C、D、V、Z等,称为字软元件。但位软元件由Kn加首位位软元件号的组合,也可以组成字软元件。位软元件以4位为一组组合成单元。K1~K4为16位运算,K1~K8为32位运算。例如K1X0,表示以低位X0开始的X3~X0的4位位元件组成字元件数据。K4M10表示以低位M10开始的M25~M10的16位位元件组成字元件数据。K8M100表示以低位M100开始的位元件M131~M100组成的32位数据。例如K2X0表示由X7~X0组成的八位元件,如果这八位元件的状态为则其数值为十进制的91。PLC常常用到的数制有二进制,十进制和十六进制。2023/2/2845.2序流程指令(FNC00~09)程序流程控制指令包含程序的条件跳转、中断、调用子程序、循环等。5.2.1条件跳转(CJ)1.条件跳转CJ指令的助记符及功能如表5-2所示2.格式,如图5-1所示。图5-1条件跳转3.说明:(1)如图5-1所示,当X0接通,程序跳转到P0所指的程序行执行。当X0断开,程序不跳转,顺序执行。(2)可允许多个CJ指令使用相同的指针,如图5-2所示。当X0或X2接通,均可跳到P0所指的程序行。2023/2/285图5-2程序多次跳转条件跳转指令常用在选择性地执行程序等情况。如手动程序与自动程序的选择,以及初始化程序与工作程序的选择等。图5-3为两种工作状态选择的程序。当X6接通,执行CJ指令,程序跳转到P0所指的程序行。由于X6=0,不跳转到P1,而直接执行第11行,当X2接通,Y2得电,程序结束。当X6断开,不执行CJ指令,直接执行第4行,当X0接通,Y0得电。由于此时X6=1,执行CJ指令,程序跳转到P1所指的程序行,程序结束。图5-3两种工作程序的选择2023/2/2865.2.2调用子程序和子程序返回(CALL,SRET,FEND)1.调用子程序指令的助记符及功能如表5-3所示:2.使用格式如图5-4所示。图5-4调用子程序
2023/2/2873.说明
(1)当X1接通,CALL指令被驱动,程序转移到指针P1所指的程序行执行,一直到子程序返回指令SRET,然后立即返回到调用子程序CALL指令的下一指令,再继续执行主程序。(2)CALL指令的P指针以及子程序必须放在主程序结束指令FEND之后。(3)可以多次调用子程序,子程序可嵌套,嵌套层数不能大于5层,每个子程序都必须以SRET结束。
例5-1报警电路。要求起动之后,灯在闪,亮0.5s,灭0.5s,蜂鸣器在响。灯闪烁30次之后,灯灭,蜂鸣器停,间歇5s。如此进行三次,自动熄灭。试用调用子程序方法编写。
编写时,将重复的动作,即灯在闪蜂鸣器在响作为子程序,放在FEND之后。而调用子程序CALL放在主程序之中。例5-1的程序如图5-5所示。
图中Y0为灯,Y1为蜂鸣器。从第0行到第38行为主程序。从第39行到第66行,为子程序。主程序中,M0是调用子程序的控制触点,每次M0接通,调用子程序一次,本题共调用三次。注意在子程序中,使用了T192、T193定时器,这种定时器在执行线圈指令时或执行END指令时计时。如果计时达到设定值,则执行线圈指令或END指令时,输出触点动作。因此当子程序执行到SRET返回到第18行执行之后。Y0、Y1仍为ON,不停止。为此,设置了成批复位指令ZRST,或REF(输入输出刷新)指令,使Y0、Y1失电之后再返回第18行执行2023/2/288图5-5
2023/2/289例5-2试用调用子程序的方法编写3台电动机Y0、Y1、Y2每隔10s顺序起动的控制程序。
程序编写如图5-6所示
图中使用了成批复位指令ZRST和二进制数加1指令INC。一开机,初始脉冲令M0、M1复位。按起动按钮X0,M0得电,驱动10s定时间隔定时器T0,每次当T0触点闭合,调用子程序1次。第1次调用子程序,由于M0=M1=1,故M10置1,令Y0得电。之后执行INC指令,K1M0加1,即M0=1。第2次调用子程序,由于M0=M1=1,故M11置1,令Y1得电。之后执行INC指令,K1M0又加1,即M1=1。第3次调用子程序,由于M0=1,M1=1,故M12置1,令Y2得电。之后执行INC指令,K1M0又加1,即M1=1,M0=1,使M0、M1复位。于是Y0、Y1、Y2每隔10s顺序起动。2023/2/290图5-62023/2/2915.2.3中断(IRET,EI,DI)1.中断指令的助记符及功能如表5-4所示:2.中断的意义和方式中断是在主程序的执行中使程序中断而去执行中断程序的一种工作方式。它分为输入中断、定时器中断和计数器中断三种方式。(1)输入中断输入中断是中断信号由输入端子送入而进入中断程序的工作方式。输入中断指针I如下所示:I□0□不可重复使用1为上升沿中断,0为下降沿中断常置输入号0~5,对应的输入为X0~X5,每个输入只能用一次。中断程序由中断指针入口,到中断返回指令IRET结束。例如中断指针I101的意义为当程序执行到X1时转到中断指针I101的程序行执行,一直到IRET为止,之后返回主程序。中断程序编写在主程序结束之间,如图5-7所示。2023/2/292图5-7中断指令
图中一开始为允许中断。当X1从OFF→ON且保持ON,程序跳到指针I101处执行中断程序,执行第13行将K100送到D1,然后返回主程序,对定时器T0计时。当计时达到D1当前值K100时,T0触点闭合,Y0得电。2023/2/293(2)定时器中断
定时器中断用于需要指定中断时间执行中断程序的地方,主要用于高速处理或每隔一定时间执行的程序等问题。定时器的中断指针为I□□□
10~99ms,任选其中一个值6,7,8(不能重复标号)定时器中断由编号为I6,I7,I8三个专用定时器中的一个,在10~99ms中任选一个作为中断设定时间,每隔此设定时间中断一次,例如I650,即每隔50ms,在标号I650之后对程序执行中断,直到执行IRET指令返回原状态,如图5-8所示。图5-8定时器中断图5-8中按X1,M3得电,定时器中断,执行中断指针I650每隔50ms使D加1。直到当D0的当前值等于1000,M3失电。2023/2/294(3)计数器中断
计数器中断用于与高速计数器当前值比较的结果(执行高速计数器比较置位指令)而中断执行中断程序的场合。计数器中断指针为:I0□0不可重复使用1~6(计数器中断6点)计数器中断如图5-9所示。图5-9计数器中断图中,执行第3步,将K1000与C255的当前值比较,当C255的当前值由999变到1000时,驱动计数器中断器I010(梯形图表示为I10),执行计数器中断程序。2023/2/2953.说明(1)E1与FEND之间或EI与DI之间为允许中断范围。DI与EI之间为禁止中断范围。(2)如果特殊辅助继电器M8050~M8059为ON,则禁止各对应输入编号进行中断,见附录特殊辅助继电器。图5-10中,如果M8051为OFF,按住X1,执行中断程序,运行情况如图5-7一样。如果按X10,M8051接通,则按X1,程序也不执行中断。(3)如果有多个依次发出的中断信号,则优先级按发生的先后为序,发生越早则优先级越高,若同时发生多个中断信号时,则中断标号小的优先级高。(4)中断程序在执行过程中,不响应其他的中断(其他中断为等待状态)。不能重复使用与高速计数器相关的输入,不能重复使用I000与I001相同的输入。(5)可编程控制器平时处于禁止中断状态。如果EI-DI指令在扫描过程中有中断输入时,则执行中断程序(从中断标号到IRET之间的程序)。图5-102023/2/2965.2.4监视定时器(WDT)
1.监视定时器指令的助记符及功能如表5-5所示:
2.格式如图5-11所示。图5-11WDT指令用法3.说明(1)WDT指令是在控制程序中刷新警戒定时器的指令。如果执行程序的扫描周期时间(从0步到END或FEND指令之间)达200ms,则PLC将停止运行。这时应将WDT指令插到合适的程序步中刷新警戒时钟,以便程序得以继续运行直到END。例如将一个扫描周期为240ms的程序分为2个120ms程序。如图5-11(a)所示,在这两个程序之间插入WDT指令。(2)如果希望每次扫描周期时间超过200ms,则可用移动指令MOV把限制值写入特殊数据寄存器D8000中,如图5-11(b)所示。2023/2/2975.2.5循环(FOR,NEXT)
1.循环指令的助记符及功能如表5-6所示2.FOR-NEXT的格式,如图5-12所示。3.说明(1)进入循环指令FORn,n取值范围为1~32767。循环结束命令NEXT,无操作数。命令FOR-NEXT必须成对使用,缺一不可。(2)图5-12为单循环,执行完程序1,进入循环语句,对程序2执行循环10次后,执行程序3结束。FOR-NEXT指令可以嵌套,它主要用于某些操作需反复进行的场合。FOR-NEXT指令最多只能嵌套5层。如因循环次数过多,程序运行时间大于200ms,请注意使用WDT命令。
图5-12循环指令2023/2/298(3)图5-13为双重循环的例子。当X0闭合,接通PLC电源,程序转到P1执行。当X0断开,接通PLC电源,程序执行双重循环,执行结果为Z=50,D0=49。之后,执行定时器指令。当T0的当前值等于设定值D0,T0触点接通,Y0得电。图5-13双重循环2023/2/2995.3.1数据比较(CMP)
1.数据比较指令的助记符及功能,见5-7表所示。2.格式如图5-14所示。3.说明(1)图5-14的意义为:当X0接通,执行比较CMP指令,将源(S1.)与(S2.)比较,比较的结果放到以M0开始的三位连续位元件(M0~M2)中。当源(S2.)D10的当前值<源(S1.)K120,M0为ON;当源(S2.)D10的当前值=源(S1.)K120,M1为ON;当源(S2.)D10的当前值>源(S1.)K120,M2为ON。编制CMP指令时,通常(S1.)为定值,(S2.)为动值(2)当X0断开,不执行CMP指令,M0开始的三位连续位元件(M0~M2)保持其断电前的状态。图5-142023/2/2100例5-3
图5-15为指令CMP的应用例子。按X0及X2,问当按X1为8次,10次,16次,灯Y0、Y1、Y2哪个亮?图5-15例5-3图
比较指令CMP工作时,其控制触点必须一直闭合。因此设置X2,用M0自锁实现。当X1闭合8次,K10>C0当前值,Y0得电;当X1闭合10次,K10=C0当前值,Y1得电;当X1闭合16次,K10<C0当前值,Y2得电。2023/2/2101
例5-4如图5-16(a)所示,按X0,D1的当前值为100。之后D1每秒加1,但程序不会停止。试改写程序,使D1大于200时,程序停止加1运算。(a)(b)图5-16CPM指令使用例子5.3.2区间比较(ZCP)1.区间比较指令的助记符及功能,如表5-8所示:2023/2/21022.格式如图5-17所示3.说明(1)当指明目标(D.)为M3时,则M3、M4、M5自动被占用。图5-17的意义为:X0闭合,执行ZCP指令。当源(S.)C20的当前值<源(S1.)K100时,M3为ON;当源(S1.)K100≤源(S.)C20当前值≤源(S2.)K105,M4为ON;当C20当前值>K105时,M5为ON。(2)当ZCP的控制触点X0断开,不执行ZCP指令,M3~M5保持其断电前状态。如果拟清除比较的结果,要用复位指令。图5-18为ZCP指令使用例子。图中C1每秒计数1次。当C1当前值<K20时,M10为ON;当K20≤C1当前值≤K30时,M11为ON;当C1当前值>K30时,M12为ON。
图5-18ZCP指令使用例子2023/2/21035.3.3传送(MOV)
1.数据传送指令的助记符及功能,如表5-9所示:2.格式如图5-19所示。图5-19MOV指令3.说明(1)如图5-19所示,执行第0行、第6行,MOV指令意义为:当X0闭合,将源(S.)K150传送到目标(D.)D0;当X1闭合,将T2的当前值传送到D10。传送时K150自动作二进制变换。(2)当32位传送时,用DMOV指令,如图5-19的第12行。源位为D3、D2,目标位为D7、D6。D3、D7自动被占用。2023/2/2104例5-5试读图5-20,当按X0,则Y0、Y1、Y2、Y3,哪个有输出?图5-20例5-5图
由图5-20可见,当按X0,则将K3传送到K1M0,则M0、M1为ON,故Y0、Y1得电。若要Y0、Y1失电时,按X1,使M0~M3成批复位。
例5-6用MOV指令编写电动机Y-△降压起动程序。
图5-21为用MOV指令编写的电动机Y-△降压起动梯形图。图中X0为起动时按钮,X1为停止按钮。当X0闭合时,将K5送到K1Y1,则Y1,Y3得电,为电动机Y起动。延时6s后,将Y3复位,再延时1秒,将K3送K1Y1,于是Y1,Y2得电,为电动机△正常运行。按X1,将K0送K1Y1,则Y1,Y2失电,电动机停止。2023/2/21055.3.4移位传送(SMOV)1.移位传送指令的助记符和功能如表5-10所示:2023/2/2106
3.说明(1)SMOV指令带5个参数,它的意义是:将源(S.)的二进制数(16位二进制数)以BCD码表示从其第m1起将低m2位的BCD数码向目标(D.)从其第n位开始传送。并将其变为二进制数。(2)图5-23的执行过程是:X0闭合,将十进制数3268送到D1,D1的当前值为3268。X1闭合,将源D1从第4位(103位,)开始将低2位(103位、102位)的数送到目标D2的第3位(103位)开始的低2位(即102和101位)中。目标D2未获传送的位保持不变。因此,执行图5-23的SMDV指令后,D2的当前值为320。如图5-24所示。图5-24移位传送2023/2/21075.3.5取反(CML)1.取反指令的助记符和功能如表5-11所示:图5-25取反命令3.说明(1)CML指令的意义是将源(S.)的二进制各位取反,结果存放到目标(D.)元件。即源中“1”,变“0”;“0”,变为“1”。再送目标。图5-26取反命令的应用2023/2/2108(2)执行图5-26,X0闭合,将K9传送给D0,D0的二进制数为1001。X1闭合,将源的二进制数据取反送到目标K1M0中,即M1为1,M2为1,故Y1、Y2得电。
(3)如目标元件位数小于源位数,则仅对应于目标元件的位数取反。5.3.6块传送(BMOV)1.块传送的助记符和功能如表5-12所示:图5-27块传送指令3.说明(1)如图5-27所示,BMOV指令有两个操作数,当X0闭合,将源(S.)D0开始的n个(n=4)数据D0、D1、D2、D3依次送到目标(D.)D10、D11、D12、D13中去。当X1闭合,以K1M0开始的两组数据,即M0、M1、M2、M3以及M4、M5、M6、M7依次送到K1Y3开始的两组数据(即Y3、Y4、Y5、Y6以及Y7、Y8、Y11、Y12)中去。2023/2/2109(2)但当源的单元数目n超过目标的数目,仅送到实际的目标单元中去,如图5-28所示。图中合上X3,接通X0,则D10为15,又接通X1,则Y3、Y4、Y5、Y6得电。图5-28块传送的例(3)当M8024为ON时,BMOV指令传送方向反转,如图5-29所示。图5-29数据传送方向反转2023/2/21105.3.7多点传送(FMOV)
图5-30多点传送3.说明(1)FMOV指令的意义为将源(S.)的数据传送到目标(D.)为首址的连续n位元件中去。(2)图5-30中,接通X0,则将K100同时送到D0~D7共8个元件中。接通X1,则将K0同时送到C0~C4共5个计数器中,令各计数器清零。2023/2/21115.3.8数据交换(XCH)图5-31数据交换指令3.说明(1)XCH的意义为将目标(D1.)与目标(D2.)的数据交换。(2)如图5-32所示。接通X0,将K120送D1,K50送D3。再接通X1,则D1与D3交换了数据,D3变为120,D1变为50。注意,所交换的两数必须为同类数据,且当使用连续执行性型指令时,每个扫描周期都要进行数据交换。图5-32数据交换例子2023/2/21125.3.9求BCD码和求BIN码(BCD,BIN)
1.求BCD码和BIN码指令的助记符和功能如表5-15所示3.说明(1)BCD命令的意义是将源(S.)的二进制数转换成为BCD码,送到目标(D.)。BCD指令可用于驱动7段显示管。BIN命令的意义是将源(S.)的BCD码转换成二进制数,送到目标(D.)。如果使用BCD命令时,源是十进制数,则会自动转换成二进制数,再变成BCD码。但使用BIN命令,而源为非BCD码,则出错。2023/2/21135.4算术及逻辑运算指令(FNC20~29)算术及逻辑运算包括二进制的加、减、乘、除以及逻辑字的与、或、异或等内容5.4.1二进制的加、减、乘、除运算(ADD,SUB,MUL,DIV)
1.二进制的加、减、乘、除运算的助记符和功能如表5-16所示:图5-35ADD、SUB、MUL、DIV指令格式2023/2/2114
3.说明(1)ADD指令的意义是:源(S1.)+源(S2.)→目标(D.),是代数相加,且必须为同一元件。图5-36中,执行ADD指令,D1+D3→D10。若计算结果为0,M8020置ON;若计算结果超过32767(16位)或2147483687(32位),借位标志M8022置ON;若结果小于-32767(16位)或-2147483687(32位),借位标志M8021置ON。如果目标元件的位数小于计算结果的位数,则仅写入相应的目标元件的位。例如计算结果为25(十进制)其二进制数为11001,如目标为K1Y0,则只有Y3、Y0被置1。(2)SUB指令的意义是D1—D3→D11,是代数运算。其运算结果的借位情况与(1)相同。(3)MUL指令的意义是D1×D3→D12,为代数运算。若D1、D3为16位,其运算结果为32位,目标元件D12表示低16位地址,D13放高16位地址。若D1、D3为32位,则目标D12为低16位地址,此时(D2,D1)×(D4,D3)→(D15,D14,D13,D12)。(4)DIV指令的意义是:D1/D3→D16,为代数运算。若D1、D3为16位,则商放D16,余数放D17。若D1、D3为32位,则商和余数均为32位,目标元件D16为存放商的首址,即D17、D16存放商,而比目标元件高3位的元件存放余数,即D19、D18存放余数。(5)执行图5-36运算结果得:D10=60;D11=20;D12=800;D16=2。图5-362023/2/21155.4.2二进制数加1和减1运算(INC,DEC)1.二进制加1和减1运算的助记符和功能见表5-17所示:2023/2/21163.说明(1)INC指令的意义为目标(D.)当前值D1+1→D1。在16位运算中,+32767加1则成32768;在32位运算中,+2147483647加1则成为-2147483648。(2)DEC指令的意义为目标元件(D.)当前值D10-1→D10。在16位运算中,-32768减1则成+32767;在32位运算中,-2147483648减1则成为+2147483647。(3)若用连续指令时,INC和DEC指令都是在各扫描周期都做加1运算和减1运算。因此,在图5-38中,X1和X2都使用上升沿检测指令。每次X1闭合,D1当前值加1;每次X2闭合,D2当前值减1
例5-7运行图5-39程序,讨论Y0~Y3得电情况。按X0第1次闭合,Y0得电;第2次,Y1得电;第3次,Y1、Y0得电;第4次,Y2得电;第5次,Y2、Y0得电;第6次,Y2、Y1得电;第7次,Y2、Y1、Y0得电;第8次,Y3得电。如此下去,一直到第15次,Y3、Y2、Y1、Y0得电,第16次,Y3、Y2、Y1、Y0全失电。运行中间若按X1,则Y0~Y4失电。
图5-39例5-7梯形图2023/2/21175.4.3逻辑字与、或、异或运算(WADD,WOR,WXOR)
1.逻辑字的与、或、异或运算的指令助记符与功能见表5-18所示:2.格式如图5-40所示。3.说明(1)WAND指令的意义是将两源(S1.)、(S2.)相与,送目标(D.)。“与”的逻辑式为:Y=A·B,其运算逻辑为:1AND1=1;0AND1=01AND0=0;0AND0=0。2023/2/2118(2)WOR指令的意义是将两源(S1.)、(S2.)相或,送目标(D.)。“或”的逻辑式为:
Y=A+B,其运算逻辑为:1OR1=1;0OR1=11OR0=1;0OR0=0(3)WXOR指令的意义是将两源(S1.)、(S2.)相异或,送目标(D.)。“异或”的逻辑式为:Y=AB+AB,其运算逻辑为:1XOR1=0;0XOR1=11XOR0=1;0XOR0=0图5-41逻辑运算(4)图5-41运算的结果为:接通X1,D1、D2“与”运算,D10的结果为20。接通X2,D1、D2“或”运算,D11的结果为30;接通X3,D1、D2“异或”运算,D12的结果为10图5-42“与”指令用于屏蔽某元件(5)逻辑“与”指令WAND还常用于屏蔽某元件数值的高位或低位。如图5-42所示,图中接通X0,将十六进制数H1268送D0,接通X1,将H00FF和D0进行“与”运算,运算结果送D10,D10为H0068,屏蔽了高位。2023/2/21195.4.4求补码(EEG)1.求补码指令的助记符和功能如表5-19所示图5-43求补码3.说明
(1)NEG指令的意义是将目标(D.)位的数取反,即“1”→“0”,“0”→“1”,然后将取反后的结果加1再送目标(D.)。此时,目标(D.)的数的符号改变,但数值不变。
如图5-43所示,接通X0,D0的数值为1000,其二进制数为“0000001111101000”,各位取反加1后得“1111110000011000”,即为(-1000)。若目标(D.)为负数,使用NEG指令,即是求得其绝对值。
(2)若使用连续执行型指令,则每扫描周期都会执行NEG指令一次。2023/2/21205.5循环及移位指令(FNC30~39)循环及移位指令包括循环右移,循环左移;带进位右移、左移;位右移,位左移,字右移,字左移等指令。5.5.1循环右移和循环左移(ROR,ROL)
1.循环右移和循环左移的助记符和功能如表5-20所示:3.说明(1)ROR指令的意义为:每执行一次X10,目标元件(D.)中的位循环右移n位,最终从低位被移出的位同时存入到进位标志M8022中。(2)ROL指令的意义为:每执行一次X20,目标元件(D.)中的位循环左移n位,最终从高位被移出的位同时存入到进位标志M8022中。2023/2/2121(3)执行图5-45,当X0闭合,D10的值为245。图5-46给出运行的情况,图(a)中,当X1闭合1次,执行ROR指令1次,D10右移3位。此时D10=-24546。同时进位标志M8022为“1”。当X1再闭合1次,再执行ROR指令1次,D10右移3位。此时D10=-11261。同时进位标志M8022为“1”。图(b)中,当X2闭合,执行ROL指令1次,D10的各位左移2位,此时D10=980。同时进位标志M8022为“0”。当X2再闭合,再执行ROL指令1次,D10的再左移2位,此时D10=3920。同时进位标志M8022为“0”。图5-45循环右移和循环左移
图5-46图5-45执行情况2023/2/21225.5.2带进位循环右移和循环左移(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论