《可编程控制器程序设计语言.ppt》由会员分享,可在线阅读,更多相关《可编程控制器程序设计语言.ppt(145页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、可编程控制器程序设计语言 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望1.梯形图(Ladder Diagram)程序设计语言 nLAD图形指令有3个基本形式:触点、线圈、指令盒(1)触点:bitbit常开触点常闭触点n触点符号代表输入条件如外部开关,按钮及内部条件等。CPU运行扫描到触点符号时,到触点位指定的存储器位访问(即CPU对存储器的读操作)。该位数据(状态)为1时,表示“能流”能通过。计算机读操作的次数不受限制,用户程序中,常开触点,常闭触点可以使用无数
2、次。2.语句表(Statement List)程序设计语言 n 语句表程序设计语言是用布尔助记符来描述程序的一种程序设计语言。n 语句表程序设计语言具有下列特点n(1)采用助记符来表示操作功能,具有容易记忆,便于掌握的特点;n(2)在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;n(3)用编程软件可以将语句表与梯形图可以相互转换。n例如,图7-1中的梯形图转换为语句表程序如下:n网络1 nLD I0.0nO Q0.0nAN T37n=Q0.0nTON T37,+50n网络2nLD I0.2n=Q0.1图7-1 梯形图3.顺序功能流程图(Sepuential
3、Function Chart)程序设计 n顺序功能流程图程序设计是近年来发展起来的。顺序功能流程图的控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于程序的分工设计和检查调试。顺序功能流程图的主要元素是步、转移、转移条件和动作。如图7-2所示。步2步1步3动作动作动作转移条件转移条件起动条件图7-2 顺序功能流程图n顺序功能流程图程序设计的特点是:n(1)以功能为主线,条理清楚,便于对程序操作的理解和沟通;n(2)对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间;n(3)常用于系统的规模校大,程序关系较复杂的场合;n(4)只有在活动步的命令和
4、操作被执行,才对活动步后的转换进行扫描,因此,整个程序的扫描时间要大大缩短。4.功能块图(Function Block Diagram)程序设计语言 n 功能块图程序设计语言是采用逻辑门电路的编程语言,有数字电路基础的人很容易掌握。功能块图指令由输入、输出段及逻辑关系函数组成。流动。图4-3 功能块图4.2 基本位逻辑指令与应用 4.2.1 基本位操作指令介绍 n 位操作指令是PLC常用的基本指令,梯形图指令有触点和线圈两大类,触点又分常开触点和常闭触点两种形式;语句表指令有与、或以及输出等逻辑关系,位操作指令能够实现基本的位逻辑运算和控制。n n 1.逻辑取(装载)及线圈驱动指令LD/LDN
5、 (1)指令功能nLD(load):常开触点逻辑运算的开始。对应梯形图则为在左侧母线或线路分支点处初始装载一个常开触点。nLDN(load not):常闭触点逻辑运算的开始(即对操作数的状态取反),对应梯形图则为在左侧母线或线路分支点处初始装载一个常闭触点。n=(OUT):输出指令,对应梯形图则为线圈驱动。对同一元件只能使用一次。n 指令格式如下图。图7-4n 梯形图 语句表n 网络1 n LD I0.0 /装载常开触点n =Q0.0 /输出线圈n 网络2n LDN I0.0 /装载常闭触点n =M0.0 /输出线圈图 n n 7-4 LD/LDN、OUT指令的使用n说明:n1)触点代表CPU
6、对存储器的读操作,常开触点和存储器的位状态一致,常闭触点和存储器的位状态相反。用户程序中同一触点可使用无数次。n如:存储器I0.0的状态为1,则对应的常开触点I0.0接通,表示能流可以通过;而对应的常闭触点I0.0断开,表示能流不能通过。存储器I0.0的状态为0,则对应的常开触点I0.0断开,表示能流不能通过;而对应的常闭触点I0.0接通,表示能流可以通过。n2)线圈代表CPU对存储器的写操作,若线圈左侧的逻辑运算结果为“1”,表示能流能够达到线圈,CPU将该线圈所对应的存储器的位置位为“1”,若线圈左侧的逻辑运算结果为“0”,表示能流不能够达到线圈,CPU将该线圈所对应的存储器的位写入“0”
7、用户程序中,同一线圈只能使用一次。n(3)LD/LDN,=指令使用说明:nLD、LDN 指令用于与输入公共母线(输入母线)相联的接点,也可与OLD、ALD指令配合使用于分支回路的开头。n“=”指令用于Q、M(内部标志位存)、SM(特殊标志位存)、T、C、V、S(顺序控制继电器)。但不能用于输入映像寄存器I。输出端不带负载时,控制线圈应尽量使用M或其它,而不用Q。n“=”可以并联使用任意次,但不能串联。n如下图。n图-5n nnLD I0.0=M0.0 =Q0.0n2.触点串联指令A(And)、AN(And not)(1)指令功能nA(And):与操作,在梯形图中表示串联连接单个常开触点。nAN
8、(And not):与非操作,在梯形图中表示串联连接单个常闭触点。n3.触点并联指令:O(Or)/ON(Or not)(1)指令功能nO:或操作,在梯形图中表示并联连接一个常开触点。n ON:或非操作,在梯形图中表示并联连接一个常闭触点。(2)指令格式如图7-6所示 n 梯形图 语句表n 网络1n LD I0.0n O I0.1 n ON M0.0n =Q0.0n 网络2n LDN Q0.0n A I0.2n O M0.1n AN I0.3n O M0.2n =M0.1n n 图7-6(3)O/ON指令使用说明:nO/ON指令可作为并联一个触点指令,紧接在LD/LDN指令之后用,即对其前面的L
9、D/LDN指令所规定的触点并联一个触点,可以连续使用。n若要将两个以上触点的串联回路与其它回路并联时,须采用OLD指令。nON操作数:I、Q、M、SM、V、S、T、C。n4.电路块的串联指令ALD(1)指令功能nALD:块“与”操作,用于串联连接多个并联电路组成的电路块。(2)指令格式如图7-7所示n ALD梯形图LD I1.0 /装入常开触点O I1.1 /或常开触点LD I1.2 /装入常开触点O I1.3 /或常开触点ALD /块与操作=Q0.0 /输出线圈语句表图7-7 ALD指令使用n(3)ALD指令使用说明:n并联电路块与前面电路串联连接时,使用ALD指令。分支的起点用LD/LDN
10、指令,并联电路结束后使用ALD指令与前面电路串联。n可以顺次使用ALD指令串联多个并联电路块,支路数量没有限制。如图7-8所示。nALD指令无操作数。ALDALDLD I0.0ON I0.3LD I0.1 O I0.4ALDLD I0.2O I0.5 ALD=Q0.0图7-8 ALD指令使用n5.电路块的并联指令OLD(1)指令功能nOLD:块“或”操作,用于并联连接多个串联电路组成的电路块。n(2)指令格式如图7-9所示。n 图7-9 OLD指令的使用OLDOLDLD I0.0 /装入常开触点A I0.1 /与常开触点LD I0.2 /装入常开触点 A I0.3 /与常开触点 OLD /块或
11、操作 LDN I0.4 /装入常闭触点A I0.5 /与常开触点OLD /块或操作=Q0.0 /输出线圈n6.逻辑堆栈的操作n S7-200系列采用模拟栈的结构,用于保存逻辑运算结果及断点的地址,称为逻辑堆栈。S7-200系列PLC中有一个9层的堆栈。n(1)指令的功能n堆栈操作指令用于处理线路的分支点。在编制控制程序时,经常遇到多个分支电路同时受一个或一组触点控制的情况如图7-10所示,若采用前述指令不容易编写程序,用堆栈操作指令则可方便的将图7-10所示梯形图转换为语句表。n nLPS(入栈)(Logic Push)指令:LPS指令把栈顶值复制后压入堆栈,栈中原来数据依次下移一层,栈底值压
12、出丢失。nLRD(读栈)(Logic Read)指令:LRD指令把逻辑堆栈第二层的值复制到栈顶,2-9层数据不变,堆栈没有压入和弹出。但原栈顶的值丢失。nLPP(出栈)(Logic Pop)指令:LPP指令把堆栈弹出一级,原第二级的值变为新的栈顶值,原栈顶数据从栈内丢失。nLPS、LRD、LPP指令的操作过程如图7-10所示。n 图7-10n7.置位/复位指令 S/R(1)指令功能n置位指令S:使能输入有效后从起始位S-bit开始的N 个位置“1”并保持。n复位指令R:使能输入有效后从起始位S-bit开始的N 个位清“0”并保持。(2)指令格式如表7-1所示,用法如图7-11所示 n n 表7
13、-1 S/R指令格式 STLLAD S-bitS S-bit,N()N R-bitR S-bit,N()N 网络1 LD I0.0 S Q0.0,1 网络2 LD I0.1 R Q0.0,1图7-11 S/R指 令的使用(3)指令使用说明:n对同一元件(同一寄存器的位)可以多次使用S/R指令(与“=”指令不同)。n由于是扫描工作方式,当置位、复位指令同时有效时,写在后面的指令具有优先权。n操作数N为:VB,IB,QB,MB(内部标志位字节),SMB(特殊标志位字节),SB,LB,AC,常量,*VD,*AC,*LD。取值范围为:0255。数据类型为:字节。n操作数S-bit为:I,Q,M,SM,
14、T,C,V,S,L。n数据类型为:布尔。n置位复位指令通常成对使用,也可以单独使用或与指令盒配合使用。【例4-2】图7-12所示的置位、复位指令应用举例及时序分析。如图7-13所示。网络1LD I0.0S Q0.0,1网络2LD I0.1R Q0.0,1图4-12 S/R指令的使用n I0.0I0.1Q0.0图4-13 S/R指令的时序图(4)=、S、R 指令比较。如图4-14所示。图4-14 =、S、R指令比较(a)梯形图(b)语句表(a)(b)LD I0.0=Q0.0S Q0.1,1R Q0.2,2(c)时序图8.脉冲生成指令 EU/EDn(1)指令功能EU指令:在EU指令前的逻辑运算结果
15、有一个上升沿时(由OFFON)产生一个宽度为一个扫描周期的脉冲,驱动后面的输出线圈。ED指令:在ED指令前有一个下降沿时产生一个宽度为一个扫描周期的脉冲,驱动其后线圈。(2)指令格式 n脉冲生成指令 EU/EDn(1)指令功能nEU指令:在EU指令前的逻辑运算结果有一个上升沿时(由OFFON)产生一个宽度为一个扫描周期的脉冲,驱动后面的输出线圈。nED指令:在ED指令前有一个下降沿时产生一个宽度为一个扫描周期的脉冲,驱动其后线圈。(2)指令格式如表7-2 用法如图4-15,时序分析如图4-16所示。图4-15 EU/ED指令的使用参见P64网络1LD I0.0 /装入常开触点EU /正跳变=M
16、0.0 /输出网络2LD M0.0 /装入S Q0.0,1 /输出置位网络3LD I0.1 /装入ED /负跳变=M0.1 /输出网络4LD M0.1 /装入R Q0.0,1/输出复位扫描周期I0.0M0.0I0.1M0.1Q0.0图4-16 EU/ED指令时序分析nEU.ED程序及运行结果分析如下:程序及运行结果分析如下:nI0.0的上升沿,经触点(EU)产生一个扫描周期的时钟脉冲,驱动输出线圈M0.0导通一个扫描周期,M0.0的常开触点闭合一个扫描周期,使输出线圈Q0.0置位为1,并保持。nI0.1的下降沿,经触点(ED)产生一个扫描周期的时钟脉冲,驱动输出线圈M0.1导通一个扫描周期,M
17、0.1的常开触点闭合一个扫描周期,使输出线圈Q0.0复位为0,并保持。(3)指令使用说明 nEU、ED指令只在输入信号变化时有效,其输出信号的脉冲宽度为一个机器扫描周期。n对开机时就为接通状态的输入条件,EU指令不执行。nEU、ED指令无操作数。4.2.2 基本位逻辑指令应用举例 n图图1717 1.起动、保持、停止电路起动、保持、停止电路LD I0.0O Q0.0AN I0.1=Q0.0CPU224I0.0I0.11M2ML+DC24V1LQ0.0SB1SB2AC220VKMI0.0I0.1Q0.0输入映像寄存器起动停止.I0.0I0.1Q0.0输出映像寄存器LD I0.0O Q0.0AN
18、I0.1=Q0.0CPU224I0.0I0.11M2ML+DC24V1LQ0.0SB1SB2AC220VKMI0.0I0.1Q0.0输入映像寄存器起动停止I0.0I0.1Q0.0输出映像寄存器 0 0ONONONONON1OFF图19LD I0.0O Q0.0AN I0.1=Q0.0CPU224I0.0I0.11M2ML+DC24V1LQ0.0SB1SB2AC220VKMI0.0I0.1Q0.0输入映像寄存器起动停止I0.0I0.1Q0.0输出映像寄存器 0 1OFFOFFOFFOFFOFF0图20n2.比较电路n 如图7-22所示,该电路按预先设定的输出要求,根据对两个输入信号的比较,决定某
19、一输出。若I0.0、I0.1同时接通,Q0.0有输出;I0.0、I0.1均不接通,Q0.1有输出;若I0.0不接通。I0.1接通,则Q0.2有输出;若I0.0接通,I0.1不接通,则Q0.3有输出。LD I0.0=M0.0LD I0.1=M0.1LD M0.0A M0.1=Q0.0LDN M0.0AN M0.1=Q0.1LDN M0.0A M0.1=Q0.2LD M0.0AN M0.1=Q0.3图7-22 比较电路n3.微分脉冲电路n(1)上升沿微分脉冲电路n如图7-23所示。PLC是以循环扫描方式工作的,PLC第一次扫描时,输入I0.0由OFFON时,M0.0、M0.1线圈接通,Q0.0线圈
20、接通。在第一个扫描周期中,在第一行的M0.1的常闭接点保持接通,因为扫描该行时,M0.1线圈的状态为断开。在一个扫描周期其状态只刷新一次。等到PLC第二次扫描时,M0.1的线圈为接通状态,其对应的M0.1常闭接点断开,M0.0线圈断开,Q0.0线圈断开,所以Q0.0接通时间为一个扫描周期。M0.0Q0.0一个扫描周期图4-23 上升沿微分脉冲电路LD I0.0AN M0.1=M0.0LD I0.0=M0.1LD M0.0=Q0.0n(2)下降沿微分脉冲电路 n 如图 7-24所示。PLC第一次扫描时,输入I0.0由ONOFF时,M0.0接通一个扫描周期,Q0.0输出一个脉冲。图4-24 下降沿
21、微分脉冲电路I0.0M0.0Q0.0一个扫描周期LDN I0.0AN M0.1=M0.0LDN I0.0=M0.1LD M0.0=Q0.04.分频电路 用PLC可以实现对输入信号的任意分频。图7-25是一个2分频电路。参见P67 将脉冲信号加到I0.0端,在第一个脉冲的上升沿到来时,M0.0产生一个扫描周期的单脉冲,使M0.0的常开触点闭合,由于Q0.0的常开触点断开,M0.1线圈断开,其常闭触点M0.1闭合,Q0.0的线圈接通并自保持;n第二个脉冲上升沿到来时,M0.0又产生一个扫描周期的单脉冲,M0.0的常开触点又接通一个扫描周期,此时Q0.0的常开触点闭合,M0.1线圈通电,其常闭触点M
22、0.1断开,Q0.0线圈断开;n直至第三个脉冲到来时,M0.0又产生一个扫描周期的单脉冲,使M0.0的常开触点闭合,由于Q0.0的常开触点断开,M0.1线圈断开,其常闭触点M0.1闭合,Q0.0的线圈又接通并自保持。n以后循环往复,不断重复上过程。由图7-25可见,输出信号Q0.0是输入信号I0.0的二分频。n LD I0.0 n EUn =M0.0n LD M0.0n A Q0.0n =M0.1n LD M0.0n O Q0.0n AN M0.1n =Q0.0n n 图4-25 分频电路n5.抢答器程序设计n(1)控制任务:n有3个抢答席和1个主持人席,每个抢答席上各有1个抢答按钮和一盏抢答
23、指示灯。参赛者在允许抢答时,第一个按下抢答按钮的抢答席上的指示灯将会亮,且释放抢答按钮后,指示灯仍然亮;此后另外两个抢答席上即使在按各自的抢答按钮,其指示灯也不会亮。这样主持人就可以轻易的知道谁是第一个按下抢答器的。该题抢答结束后,主持人按下主持席上的复位按钮(常闭按钮),则指示灯熄灭,又可以进行下一题的抢答比赛。n工艺要求:本控制系统有4个按钮,其中3个常开S1、S2、S3,一个常闭S0。另外,作为控制对象有3盏灯H1、H2、H3。(2)I/O分配表I0.0 S0/主持席上的复位按钮 (常闭)I0.1 S1/抢答席1上的抢答按钮 I0.2 S2/抢答席2上的抢答按钮 I0.3 S3/抢答席3
24、上的抢答按钮输出Q0.1 H1/抢答席1上的指示灯Q0.2 H2/抢答席2上的指示灯Q0.0 H3/抢答席3上的指示灯 图4-26 抢答器程序设计(3)程序设计n抢答器的程序设计如图7-26所示。n本例的要点是:本例的要点是:n如何实现抢答器指示灯的“自锁”功能,即当某一抢答席抢答成功后,即使释放其抢答按钮,其指示灯仍然亮,直至主持人进行复位才熄灭;n如何实现3个抢答席之间的“互锁”功能。4.2.3编程注意事项及编程技巧 n1.梯形图语言中的语法规定n(1)程序应按自上而下,从左至右的顺序编写。n(2)同一操作数的输出线圈在一个程序中不能使用两次,不同操作数的输出线圈可以并行输出。n(3)线圈
25、不能直接与左母线相连。如果需要,可以通过特殊内部标志位存储器SM0.0(该位始终为1)来连接,如图7-28所示。n(4)适当安排编程顺序,以减少程序的步数。图4-27 输出线圈不能串联n n (a)不正确 n (b)正确n 图4-28 线圈与母线的连接n1)串联多的支路应尽量放在上部,如图7-29所示。n图4-29 串联多的电路应放在上面n2)并联多的支路应靠近左母线,如图7-30所示。n (a)电路安排不当 (b)电路安排正确n 图4-30 并联多的电路应靠近左侧母线n3)触点不能放在线圈的左边。n4)对复杂的电路,用ALD、OLD等指令难以编程,可重复使用一些触点画出其等效电路,然后再进行
26、编程,如图7-31所示。n (a)复杂电路 (b)等效电路n 图4-31 复杂电路编程技巧n2.设置中间单元n 在梯形图中,若多个线圈都受某一触点串并联电路的控制,为了简化电路,在梯形图中可设置该电路控制的存储器的位,这类似于继电器电路中的中间继电器。n3.尽量减少可编程控制器的输入信号和输出信号n 如果几个输入器件触点的串并联电路总是作为一个整体出现,可以将他们作为可编程控制器的一个输入信号,只占可编程控制器的一个输入点。如果某器件的触点只用一次并且与PLC输出端的负载串联,不必将它们作为PLC的输入信号,可以将它们放在PLC外部的输出回路,与外部负载串联。n4.外部联锁电路的设立。为了防止
27、控制正反转的两个接触器同时动作造成三相电源短路,应在PLC外部设置硬件联锁电路。n5.外部负载的额定电压。PLC的继电器输出模块和双向晶闸管输出模块一般只能驱动额定电压AC 220V的负载,交流接触器的线圈应选用220V的。4.3 定时器指令 4.3 定时器指令 4.3.1 定时器指令介绍 nS7-200系列PLC的定时器是对内部时钟累计时间增量计时的。每个定时器均有一个16位的当前值寄存器用以存放当前值(16位符号整数);一个16位的预置值寄存器用以存放时间的设定值;还有一位状态位,反应其触点的状态。1.工作方式 nS7-200系列PLC定时器按工作方式分三大类定时器。其指令格式如表7-3所
28、示。表4-32.时基 n按时基脉冲分,则有1ms、10ms、100ms 三种定时器。不同的时基标准,定时精度、定时范围和定时器刷新的方式不同n(1)定时精度和定时范围n定时器的工作原理是:n 使能输入有效后,当前值PT对PLC内部的时基脉冲增1计数,当计数值大于或等于定时器的预置值后,状态位置1。n n最小计时单位为时基脉冲的宽度,又为定时精度;从定时器输入有效,到状态位输出有效,经过的时间为定时时间,即:定时时间=预置值时基。当前值寄存器为16bit,最大计数值为32767,可见时基越大,定时时间越长,但精度越差。表4-4 定时器的类型n(2)1ms 10ms 100ms定时器的刷新方式不同
29、n1ms定时器每隔1ms刷新一次与扫描周期和程序处理无关即采用中断刷新方式。因此当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。n10ms 定时器则由系统在每个扫描周期开始自动刷新。由于每个扫描周期内只刷新一次,故而每次程序处理期间,其当前值为常数。n100ms定时器则在该定时器指令执行时刷新。下一条执行的指令,即可使用刷新后的结果,非常符合正常的思路,使用方便可靠。但应当注意,如果该定时器的指令不是每个周期都执行,定时器就不能及时刷新,可能导致出错。3.定时器指令工作原理 n(1)通电延时定时器(TON)指令工作原理n使能端(IN)输入有效时,定时器开始
30、计时,当前值从0开始递增,大于或等于预置值(PT)时,定时器输出状态位置l,当前值的最大值为32767。n 使能端无效时,定时器复位。通电延时定时器工作原理分析通电延时定时器工作原理分析 图-32 n当I0.0接通时即使能端(IN)输入有效时,驱动T37开始计时,当前值从0开始递增,计时到设定值PT时,T37 状态位置1,其常开触点T37接通,驱动Q0.0输出,其后当前值仍增加,但不影响状态位。当前值的最大值为32767。n当I0.0分断时,使能端无效时,T37复位,当前值清0,状态位也清0,即回复原始状态。n若I0.0接通时间未到设定值就断开,T37则立即复位,Q0.0不会有输出。见P74上
31、PTI0.0T37当前值Q0.0图4-32 通电延时定时器工作原理分析LD I0.0TON T37,100LD T37=Q0.0()有记忆通电延时型(TONR)。输入端有效时,定时器开始递增计数,当前值大于或等于预置值(PT)时,输出状态位置l。输入端无效时,当前值保持(记忆),使能端(IN)再次接通有效时,在原记忆值的基础上递增计时。注意:有记忆通电延时型(TONR)定时器采用线圈的复位指令(R)进行复位操作,当复位线圈有效时,定时器当前值清0,输出状态位置0。n有记忆通电延时型程序分析 图4-33n如T3,当输入IN为1时,定时器计时;当IN为0时,其当前值保持并不复位;下次IN再为1时,
32、T3当前值从原保持值开始往上加,将当前值与设定值PT比较,当前值大于等于设定值时,T3状态位置1,驱动Q0.0有输出,以后即使IN再为0,也不会使T3复位,要使T3复位,必须使用复位指令。n图4-33 TONR记忆型通电延时型定时器工作原理分析PTI0.0T3当 前值I0.1Q0.0LD I0.0TONR T3,100LD I0.1R T3,1LD T33=Q0.0n(3)断电延时型(TOF)。n输入端有效(接通)时,定时器位变为l,当前值为O。当输入端IN由接通到断开时,定时器开始定时,当前值达到PT端的设定值时,定时器位变为O,常开触点断开,常闭触点闭合,停止计时。n 如果输入断开的时间,
33、小于预定时间,定时器仍保持接通。IN再接通时,定时器当前值仍设为0。断电延时定时器的应用程序及时序分析如图4-34所示。n图4-34所示 TOF断电延时定时器的工作原理I0.0T37当前值PTQ0.03sLD I0.0TOF T37,+30LD T37=Q0.0n小结:n1).以上介绍的3种定时器具有不同的功能。接通延时定时器(TON)用于单一间隔的定时;有记忆接通延时定时器(TONR)用于累计时间间隔的定时;断开延时定时器(TOF)用于故障事件发生后的时间延时。n2).TOF和TON 共享同一组定时器,不能重复使用。即不能把一个定时器同时用作TOF和TON。例如,不能既有TON T32,又有
34、TOF T32。4.3.2 定时器指令应用举例 n1.延时断开电路n如图7-35所示。I0.0一个输入信号,当I0.0接通时,Q0.0接通并保持,当I0.0断开后,经4s延时后,Q0.0断开。T37同时被复位。I0.0Q0.04s图4-35 延时断开电路n2.闪烁电路n图7-36中I0.0的常开触点接通后,T37的IN输入端为1状态,T37开始定时。2S后定时时间到,T37的常开触点接通,使Q0.0变为ON,同时T38开始计时。3s后T38的定时时间到,它的常闭触点断开,使T37的IN输入端变为0状态,T37的常开触点断开,Q0.0变为OFF,同时使T38的IN输入端变为0状态,其常闭触点接通
35、,T37又开始定时,以后Q0.0的线圈将这样周期性地“通电”和“断电”,直到I0.0变为OFF,Q0.0线圈“通电”时间等于T38的设定值,“断电”时间等于T37的设定值。n 图4-36 闪烁电路I0.0T37的常开接点T38的常开接点2s3sQ0.0 4.4 计数器指令 4.4.1 计数器指令介绍 n计数器利用输入脉冲上升沿累计脉冲个数。结构主要由一个16位的预置值寄存器、一个16位的当前值寄存器和一位状态位组成。当前值寄存器用以累计脉冲个数,计数器当前值大于或等于预置值时,状态位置1。nS7-200系列PLC有三类计数器:CTU-加计数器,CTD-减计数,CTUD-加/减计数器。n1.计数
36、器指令格式如表7.5所示 指令使用说明(1)梯形图指令中:CU为加计数脉冲输入端;CD为减计数脉冲输入端;R为加计数复位端;LD为减计数复位端;PV为预置值。(2)Cxxx 为计数器的编号,范围为:C0C255(3)PV预置值最大范围:32767;PV的数据类型:INT;PV操作数为:VW,T,C,IW,QW,MW,SMW,AC,AIW,Kn2.计数器工作原理分析n(1)加计数器指令()加计数器指令(CTU)n当R=0时,计数脉冲有效;当脉冲输入CU端有上升沿输入时,计数器当前值加1。当计数器当前值大于或等于设定值(PV)时,该计数器的状态位C-bit置1,即其常开触点闭合。计数器仍计数,但不
37、影响计数器的状态位。直至计数达到最大值(32767)。当R=1时,计数器复位,即当前值清零,状态位C-bit也清零。加计数器计数范围:032767。增计数器指令应用示例如图7-37所示。n增计数器指令应用示例如图增计数器指令应用示例如图4-49 n当C20的计数输入端I0.2有上升沿输入时,C20计数值加1,当C20当前值等于或大于3时,C20计数器位为l。n复位输入端I0.3为1时,C20计数器位为0,并且当前值被清零。图4.37增计数器指令编程的应用示例n(2)减计数指令()减计数指令(CTD)n当复位LD有效时,LD=1,计数器把设定值(PV)装入当前值存储器,计数器状态位复位(置0)。
38、n当LD=0,即计数脉冲有效时,开始计数,CD端每来一个输入脉冲上升沿,减计数的当前值从设定值开始递减计数,当前值等于0时,计数器状态位置位(置1),停止计数。n减计数器指令编程的应用示例如图减计数器指令编程的应用示例如图4.38n减计数复位端I0.3为1时,C4计数器位为0,并把设定值4装入当前值寄存器中。n当I0.3端为0时,计数器计数有效;n当计数输入端I0.2有上升沿输入时,C4从4开始作递减计数,直至计数器当前值等于0时,停止计数,同时C4计数器位被置1。图4.38减计数器指令编程应用示例 n(3)加加/减计数指令(减计数指令(CTUD)n当R=0时,计数脉冲有效;n当CU端(CD端
39、)有上升沿输入时,计数器当前值加1(减1)。n当计数器当前值大于或等于设定值时,C-bit置1,即其常开触点闭合。n当R=1时,计数器复位,即当前值清零,C-bit也清零。n加减计数器计数范围:3276832767。n加减计数器指令应用示例如图加减计数器指令应用示例如图4.39n当复位端I0.4为0时,计数器计数有效;n当C4的计数输入端(即加计数脉冲输入端)I0.2有上升沿输入时,计数器作递增计数;n当C4的另一个计数输入端(即减计数脉冲输入端)I0.3有上升沿输入时,计数器作递减计数。当计数器当前值等于或大于设定值4时,C4计数器位为1。n当复位输人端I0.4为1时,C4当前值为0,C4位
40、O。图4.39 增减计数器指令应用示例n(4)注意事项:n 1)在一个程序中,同一计数器号不要重复使用,更不可分配给几个不同类型的计数器。n 2)用复位指令R复位计数器时,计数器位被复位,并且当前值清零。n 3)除了常数外,还可以用VW、IW、QW、MW、SW、SMW、AC等作为设定值。4.4.2计数器指令综合示例计数器指令综合示例 当C50的内容大于或等于4时,Q 0.0为“l”。图7-40 LD I0.1 LD I0.2 LD I0.3 CTUD C50,4 LD C50 =Q0.0I0.1I0.2I0.3C50当前值 Q0.04.5 比较指令 n比较指令是将两个操作数按指定的条件比较,操
41、作数可以是整数,也可以是实数,在梯形图中用带参数和运算符的触点表示比较指令,比较条件成立时,触点就闭合,否则断开。n比较触点可以装入,也可以串、并联。比较指令为上、下限控制提供了极大的方便。1.比较指令格式见表7-6n说明:n“xx”表示比较运算符:=等于、小于、大于、=小于等于、=大于等于、不等于。n“”表示操作数N1,N2的数据类型及范围:nB(Byte):字节比较(无符号整数),nI(INT)/W(Word):整数比较,(有符号整数),如:AW=MW2 VW12n注意:LAD中用“I”,STL中用“W”。nDW(Double Word):双字的比较(有符号整数),nR(Real):实数的
42、比较(有符号的双字浮点数,仅限于CPU214以上)nN1,N2操作数的类型包括:I,Q,M,SM,V,S,L,AC,VD,LD,常数。n2.指令应用举例n调整模拟调整电位器0,改变SMB28字节数值,当SMB28数值小于或等于50时,Q0.0输出,其状态指示灯打开;当SMB28数值小于或等于150时,Q0.1输出,状态指示灯打开。梯形图程序和语句表程序如图7-41所示。n 图4-41LD I0.0LPSAB=SMB28,150=Q0.14.6 程序控制类指令 n程序控制类指令用于程序运行状态的控制,主要包括系统控制、跳转、循环、子程序调用,顺序控制等指令。4.6.1 END、STOP、WDR指
43、令 n1.结束指令n(1)END:条件结束指令n执行条件成立(左侧逻辑值为1)时结束主程序,返回主程序的第一条指令执行。在梯形图中该指令不连在左侧母线。END指令只能用于主程序,不能在子程序和中断程序中使用。END指令无操作数。指令格式如图4-42所示。n(2)MEND:无条件结束指令n结束主程序,返回主程序的第一条指令执行。在梯形图中无条件结束指令直连接左侧母线。用户必须以无条件结束指令,结束主程序。条件结束指令,用在无条件结束指令前结束主程序。在编程结束时一定要写上该指令,否则出错;在调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。指令格式如图7-43n 图4-43LD
44、 M0.0ENDMENDn必须指出MicroWin32 STEP-7编程软件,在主程序的结尾自动生成无条件结束指令(MEND)用户不得输入,否则编译出错。n2.停止指令nSTOP:停止指令,执行条件成立,停止执行用户程序,令CPU工作方式由RUN转到STOP。在中断程序中执行STOP指令,该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余部分,在本次扫描的最后,将CPU由RUN切换到STOP。指令格式如图4-44所示。n LD SM5.0 /SM5.0为检测到I/O错误时置1n STOP /强制转换至STOP(停止)模式n n 图4-44 STOP指令格式n注意:END/STOP指令的
45、区别 图7-45n图中,当I0.0接通时,Q0.0有输出,n若I0.1接通,执行END指令,终止n用户程序,并返回主程序的起点,n这样,Q0.0仍保持接通,但下面n的程序不会执行。n若I0.0断开,接通I0.2,则Q0.1有n输出,若将I0.3接通,则执行STOPn指令,立即终止程序执行,Q0.0与nQ0.1均复位,CPU转为STOP方式。3.警戒时钟刷新指令警戒时钟刷新指令WDR(又称看门狗定时器复位指令又称看门狗定时器复位指令)n警戒时钟的定时时间为300毫秒,每次扫描它都被自动复位一次,正常工作时,如果扫描周期小于300毫秒,警戒时钟不起作用。n如果强烈的外部干扰使可编程控制器偏离正常的
46、程序执行路线,警戒时钟不再被周期性的复位,定时时间到,可编程控制器将停止运行。n若程序扫描的时间超过300毫秒,为了防止在正常的情况下警戒时钟动作,可将警戒时钟刷新指令(WDR)插入到程序中适当的地方,使警戒时钟复位。这样,可以增加一次扫描时间。指令格式如图7-46所示。n n LD M2.5 /M2.5接通时n WDR /重新触发WDR,允许扩展扫描时间n 图4-46 WDR指令格式nWDR指令工作原理:指令工作原理:n当使能输入有效时,警戒时钟复位。可以增加一次扫描时间。若使能输入无效,警戒时钟定时时间到,程序将终止当前指令的执行,重新启动,返回到第一条指令重新执行。n注意:如果使用循环指
47、令阻止扫描完成或严重延迟扫描完成,下列程序只有在扫描循环完成后才能执行:n通信(自由口方式除外),I/O更新(立即I/O除外),强制更新,SM更新,运行时间诊断,中断程序中的STOP 指令。10毫秒和100毫秒计时器对于超过25秒的扫描不能正确地累计时间。n注意:n如果预计扫描时间将超过500毫秒,或者预计会发生大量中断活动,可能阻止返回主程序扫描超过500毫秒,应使用WDR指令,重新触发看门狗计时器。4.6.2 循环、跳转指令 n1.循环指令 n(1)指令格式 n程序循环结构用于描述一段程序的重复循环执行。由 FOR和NEXT指令构成程序的循环体。FOR指令标记循环的开始,NEXT指令为循环
48、体的结束指令。指令格式如图4-47所示 n FOR INDX,INIT,FINALn n n n当前值计数器n循环次数初始值n循环次数终止值n NEXTn n 图4-47 FOR/NEXT指令格式n在LAD中,FOR 指令为指令盒格式,EN为使能输入端。nINDX为当前值计数器,操作数为:VW,IW,QW,MW(内部标志位存储器字),SW,SMW,LW,T,C,AC。nINIT为循环次数初始值,操作数为:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,AIW,常数。nFINAL为循环计数终止值。操作数为:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,AIW,常数 n工作原
49、理工作原理:使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。n使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。nFOR/NEXT指令必须成对使用,循环可以嵌套,最多为8层。n循环指令示例见图7-48.图4-48n2.跳转指令及标号(1)指令格式nJMP:跳转指令,使能输入有效时,把程序的执行跳转到同一程序指定的标号(n)处执行。nLBL:指定跳转的目标标号。n操作数n:0255。n指令格式如图4-49所示。n图7-50 跳转指令示例n n 图4-49n 如图4-50所示:图中当J
50、MP条件满足(即I0.0为ON时)程序跳转执行LBL标号以后的指令,而在JMP和LBL之间的指令一概不执行,在这个过程中,即使I0.1接通也不会有Q0.1输出。当JMP条件不满足时,则当I0.1接通时Q0.1有输出。n 图4-504.6.3 子程序调用及子程序返回指令n1.建立子程序n可采用下列一种方法建立子程序:n(1).从“编辑”菜单,选择插入(Insert)/子程序(Subroutine)n(2).从“指令树”,用鼠标右键单击“程序块”图标,并从弹出菜单选择插入(Insert)子程序(Subroutine)n2.子程序调用及子程序返回指令的指令格式n子程序有子程序调用和子程序返回两大类指