第5章S7-200PLC的指令系统习题与思考题1.S7-200指令参数所用的基本数据类型有哪些?答:S7-200PLC的指令参数所用的基本数据类型有1位布尔型(BOOL)、8位无符号字节型(BYTE)、8位有符号字节型(SIMATIC模式仅限用于SHRB指令)、16位无符号整数(WORD)、16位有符号整数(INT)、32位无符号双字整数(DWORD)、32位有符号双字整数(DINT)、32位实数型(REAL)。实数型(REAL)是按照ANSI/IEEE754-1985标准(单精度)的表示格式规定。2~255字节的字符串型(STRING)2.立即I/O指令有何特点?它应用于什么场合?答:立即指令允许对输入和输出点进行快速和直接存取。当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应的输出映像寄存器的内容也被刷新。由于立即操作指令针对的是I/O端口的数字输入和数字输出信号,所以它们的位操作数地址只能是物理输入端口地址Ix.x和物理输出端口地址Qx.x。3.逻辑堆栈指令有哪些?各用于什么场合?答:复杂逻辑指令,西门子称为逻辑堆栈指令。主要用来描述对触点进行的复杂连接,并可以实现对逻辑堆栈复杂的操作。复杂逻辑指令包括:ALD、OLD、LPS、LRD、LPP和LDS。这些指令中除LDS外,其余指令都无操作数。这些指令都是位逻辑指令。栈装载与指令ALD用于将并联子网络串联起来。栈装载或指令OLD用于将串联子网络并联起来。逻辑推入栈指令LPS,在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。逻辑读栈指令LRD,在梯形图中的分支结构中,当左侧为主控逻辑块时,该指令用于开始第二个和后边更多的从逻辑块。逻辑栈弹出指令LPP,在梯形图中的分支结构中,用于恢复LPS指令生成的新母线。装入堆栈指令LDS,复制堆栈中的第n级值,并将该值置于栈顶。原栈中各级栈值依次下移一级,栈底值被推出栈而丢失。4.定时器有几种类型?各有何特点?与定时器相关的变量有哪些?梯形图中如何表示这些变量?答:S7-200系列PLC的主机有256个定时器T0~T255,分为三种类型,每种类型的时间分辨率(或称为时基/时间增量/时间单位)又分为三种,如下表所示。(1)接通延时定时器指令TON,用于接通单一间隔定时。(2)有记忆接通延时定时器指令TONR,用于累计若干个时间间隔。只能用复位指令进行复位操作,使当前值清零。(3)断开延时定时器指令TOF,用于断开后的单一间隔定时。定时器类型时间分辩率/ms计时范围/s定时器号接通延时定时器TON断开延时定时器TOF10~32.767T32,T96100~327.67T33~T36,T97~T1001000~3276.7T37~T63,T101~T255有记忆接通延时定时器TONR10~32.767T0,T64100~327.67T1~T4,T65~T681000~3276.7T5~T31,T69~T95与定时器相关的变量有:一个16位的当前值寄存器,用以存放计时累计的当前值(INT,最大计时值32767,单位ms或10ms或100ms,取决于时间分辨率);一个16位的预设值寄存器,用以存放定时时间的预设值PT(INT);一位状态位(BOOL),用以反映定时器的定时时间是否达到的状态,称为定时器位。使能输入IN,用于控制定时器的工作状态。5.计数器有几种类型?各有何特点?与计数器相关的变量有哪些?梯形图中如何表示这些变量?答:类型:S7-200系列PLC的计数器指令有两大类:通用计数器指令和高速计数器指令。通用计数器指令有3种:增计数器指令CTU、减计数器指令CTD和增减计数器指令CTUD。特点:(1)增计数器指令CTU每当增计数输入CU发生一次从OFF到ON的转换(正跳变-上升沿)时,该计数器的当前值就增加1。如果当前值Cxxx≥预设值PV,则计数器位=ON;否则,计数器位=OFF。当前值达到预设值后继续计数,计数当前值到最大值(32,767)时,计数器停止。当复位输入R接通或执行复位指令时,计数器被复位,计数器位=OFF,当前值=0。(2)增减计数器指令CTUD利用LD装载预设值。当装载输入LD接通时,计数器复位,计数器位=OFF,当前值=预设值PV。每当减计数输入CD发生一次从OFF到ON的转换(正跳变-上升沿)时,该计数器的当前值就减1。计数当前值到0时,计数器停止,计数器位=ON,当前值=0。利用复位指令复位时,CTD计数器位变为OFF,当前值变为0(教材P131有误)。(3)减计数器指令CTD每当增计数输入CU发生一次从OFF到ON的转换时,该计数器的当前值就增1;每当减计数输入CD发生一次从OFF到ON的转换时,该计数器的当前值就减1。如果当前值Cxxx≥预设值PV,则计数器位=ON;否则,计数器位=OFF。当前值达到预设值后继续计数(增或减)。当增计数达到最大值(32,767)时,在增计数输入端CU的下一个上升沿导致当前计数值绕回到最小值(-32,768)。同样,计数达到最小值(-32,768)时,减计数输入端CD的下一个上升沿会导致当前计数值绕回到最大值(32,767)。所以,CTUD是一个循环计数器,计数范围从-32768~+32767。当复位输入R接通或执行复位指令时,该计数器被复位。复位时,计数器位=OFF,当前值=0。与计数器有关的变量及在梯形图中的表示方法:计数器地址:C0~C255,常数计数器当前值:C0~C255,INT型计数器的预设值(PV):INT型计数器位:C0~C255,BOOL型增/减计数信号输入:能流,BOOL型复位输入:能流,BOOL型装载信号输入:能流,BOOL型6.不同分辨率的定时器的当前值是如何刷新的?答:不同分辨率的定时器,它们当前值的刷新时机是不同的,具体情况如下:1ms分辨率定时器启动后,定时器对1ms的时间间隔(时基信号)进行计时。定时器位和当前值每隔1ms刷新一次,与扫描周期不同步。换句话说,如果扫描周期大于1ms,则在一个扫描周期中定时器位和当前值可能要刷新多次。10ms分辨率定时器启动后,定时器对10ms的时间间隔进行计时。程序执行时,在每次扫描周期开始对10ms定时器刷新,其方法是以当前值加上累积的10毫秒间隔的数目(自上一次扫描开始算起),所以在一个扫描周期内定时器当前值和定时器位保持不变。100ms分辨率定时器启动后,定时器对100ms的时间间隔进行计时。只有在执行到这些定时器指令时,这些定时器的当前值才被刷新(当前值加上积累的100毫秒间隔的数目(自前一次扫描开始算起))。7.写出图5-50所示梯形图的语句表程序。(原题程序不分网络,应该按右图所示修改)答:语句表程序如下网络1//网络标题LDI0.0OI0.3LDI0.1OI0.4ALDANI0.2=Q0.1网络2LDQ0.1TONT37,+30网络3LDT37SQ0.2,4网络4LDI0.1SQ0.3,18.写出图5-51所示梯形图的语句表程序。图5-50习题7梯形图答:语句表程序如下网络1//网络标题LDI0.4EUSHRBI0.5,V3.0,+4网络2LDI0.1LPSAV3.0SQ3.0,2LRDAV3.1RQ3.1,1LRDAV3.2SQ3.2,3LPPAV3.3RQ3.3,19.用自复位式定时器设计一个周期为5s,脉冲为一个扫描周期的脉冲串信号。答:如果使用100ms时基的定时器,梯形图程序和语句表程序分别如答案图14a)、答案图14b)所示。其中答案图14b)所示要比答案图14a)好一些。图5-51习题8梯形图如果使用10ms时基的定时器,梯形图程序和语句表程序如答案图14c)所示。如果使用1ms时基的定时器,梯形图程序和语句表程序如答案图14d)所示。网络1//自复位定时器//网络注释LDNT37TONT37,+50网络2//输出脉冲串LDT37=Q1.0答案图14a)网络1//自复位定时器//网络注释LDNQ1.0TONT37,+50网络2//输出脉冲串LDT37=Q1.0答案图14b)网络1//自复位定时器//网络注释LDNQ1.0TONT33,+500网络2//输出脉冲串LDT33=Q1.0答案图14c)10.设计一个计数范围为50000的计数器。答:梯形图程序和语句表程序分别如答案图15所示。11.用置位、复位(S、R)指令设计一台电动机的启、停控制程序。答:梯形图程序和语句表程序分别如答案图16所示。网络1//自复位定时器//网络注释LDNQ1.0TONT32,+5000网络2//输出脉冲串LDT32=Q1.0答案图14d)网络1LDI0.0LDM0.0CTUC20,50网络2LDC20=M0.0网络3//网络注释LDM0.0LDI0.1CTUC30,1000答案图1512.用顺序控制继电器(SCR)指令设计一个居室通风系统控制程序,使3个居室的通风机自动轮流地打开和关闭。轮换时间间隔为1h。答:用PLC输出端点Q0.0~Q0.2分别控制三个通风机,I0.1接启动按钮开关,I0.2接停止按钮开关,梯形图程序和语句表程序分别如答案图17所示。网络1LDI0.0SQ1.1,1网络2LDI0.1RQ1.1,1答案图16答案图17习题与思考题5-12:居室通风系统控制程序网络1//初始状态//激活第一个SCR段LDI0.1ANQ0.0ANQ0.1ANQ0.2SS0.1,1网络2//SCR段1://起动通风机1,/并延时1hLSCRS0.1网络3//起动通风机1//网络注释LDSM0.0SQ0.0,1网络4//计时1h(3600s)LDNM0.0TONT37,18000网络5LDT37=M0.0答案图17(续)网络6LDM0.0LDC20CTDC20,2网络7//计时到后,//关闭通风机1,//激活SCR段2,//并停止本SCR段LDC20RQ0.0,1SCRTS0.2网络8SCRE网络9SCR段2:起动通风机2,并延时1hLSCRS0.2Network10//起动通风机2//网络注释LDSM0.0SQ0.1,1Network11//计时1h(3600s)LDNM0.1TONT38,18000Network12LDT38=M0.1答案图17(续)网络13LDM0.1LDC21CTDC21,2网络14//计时到后,关闭通风机2,//激活SCR段3,并停止本SCR段LDC21RQ0.1,1SCRTS0.3网络15SCRE网络16//SCR段3:起动通风机3,///并延时1hLSCRS0.3网络17//起动通风机3LDSM0.0SQ0.2,1网络18//计时1h(3600s)LDNM0.2TONT39,18000网络19LDT39=M0.213.用寄存器移位指令(SHRB)设计一个路灯照明系统的控制程序,3路灯按H1→H2→H3的顺序依次点亮。各路灯之间点亮的间隔时间为10h。答:用PLC输出端点Q0.0~Q0.2分别控制路灯H1~H3。控制程序见答案图18。答案图17(续)网络20LDM0.2LDC22CTDC22,2网络21//计时到后,关闭通风机3,//激活SCR段1,并停止本SCR段LDC22RQ0.2,1SCRTS0.1网络22SCRE网络23//停机LDI0.2RS0.1,3RQ0.0,3答案图18习题与思考题5-13:路灯控制程序(循环点亮)网络1//起动/停止LDI0.0OM0.0ANI0.1=M0.0网络2//停止LDI0.1RQ0.0,3网络3//灯1亮LDM0.0EUSQ0.0,1RQ0.1,2网络4//计时10h(36000s)LDM0.0ANM0.1TONT37,50网络5LDT37=M0.1网络6LDM0.1LDC20LDI0.0EUOLDCTDC20,2网络7//计时到后,移位,下一个灯亮LDC20SHRBQ0.2,Q0.0,314.用循环移位指令设计一个彩灯控制程序,8路彩灯串按H1→H2→H3→…→H8的顺序依次点亮,且不断重复循环。各路彩灯之