资源描述
第5章 S7-200 PLC的指令系统习题与思考题1. S7-200指令参数所用的基本数据类型有哪些?答:S7-200 PLC的指令参数所用的基本数据类型有1位布尔型(BOOL)、8位无符号字节型(BYTE)、8位有符号字节型(SIMATIC模式仅限用于SHRB指令)、16位无符号整数(WORD)、16位有符号整数(INT)、32位无符号双字整数(DWORD)、32位有符号双字整数(DINT)、32位实数型(REAL)。实数型(REAL)是按照ANSI/IEEE 754-1985标准(单精度)的表示格式规定。2255字节的字符串型(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个定时器T0T255,分为三种类型,每种类型的时间分辨率(或称为时基/时间增量/时间单位)又分为三种,如下表所示。(1)接通延时定时器指令TON,用于接通单一间隔定时。(2)有记忆接通延时定时器指令TONR,用于累计若干个时间间隔。只能用复位指令进行复位操作,使当前值清零。(3)断开延时定时器指令TOF,用于断开后的单一间隔定时。定时器类型时间分辩率/ms计时范围/s定时器号接通延时定时器TON断开延时定时器TOF1032.767T32,T96100327.67T33T36,T97T10010003276.7T37T63,T101T255有记忆接通延时定时器TONR1032.767T0,T64100327.67T1T4,T65T6810003276.7T5T31,T69T95与定时器相关的变量有:一个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。与计数器有关的变量及在梯形图中的表示方法:计数器地址:C0C255,常数计数器当前值:C0C255,INT型计数器的预设值(PV):INT型计数器位:C0C255,BOOL型增/减计数信号输入:能流,BOOL型复位输入:能流,BOOL型装载信号输入:能流,BOOL型6. 不同分辨率的定时器的当前值是如何刷新的?答:不同分辨率的定时器,它们当前值的刷新时机是不同的,具体情况如下:1ms分辨率定时器启动后,定时器对1ms的时间间隔(时基信号)进行计时。定时器位和当前值每隔1ms刷新一次,与扫描周期不同步。换句话说,如果扫描周期大于1ms,则在一个扫描周期中定时器位和当前值可能要刷新多次。10ms分辨率定时器启动后,定时器对10ms的时间间隔进行计时。程序执行时,在每次扫描周期开始对10ms定时器刷新,其方法是以当前值加上累积的10毫秒间隔的数目(自上一次扫描开始算起),所以在一个扫描周期内定时器当前值和定时器位保持不变。100ms分辨率定时器启动后,定时器对100ms的时间间隔进行计时。只有在执行到这些定时器指令时,这些定时器的当前值才被刷新(当前值加上积累的100毫秒间隔的数目(自前一次扫描开始算起)。7. 写出图5-50所示梯形图的语句表程序。(原题程序不分网络,应该按右图所示修改)图5-50 习题7梯形图答:语句表程序如下网络1 / 网络标题LD I0.0O I0.3LD I0.1O I0.4ALDAN I0.2= Q0.1网络2 LD Q0.1TON T37, +30网络3 LD T37S Q0.2, 4网络4 LD I0.1S Q0.3, 18. 写出图5-51所示梯形图的语句表程序。图5-51 习题8梯形图答:语句表程序如下网络1 / 网络标题LD I0.4EUSHRB I0.5, V3.0, +4网络2 LD I0.1LPSA V3.0S Q3.0, 2LRDA V3.1R Q3.1, 1LRDA V3.2S Q3.2, 3LPPA V3.3R Q3.3, 19. 用自复位式定时器设计一个周期为5s,脉冲为一个扫描周期的脉冲串信号。答:如果使用100ms时基的定时器,梯形图程序和语句表程序分别如答案图14 a)、答案图14 b)所示。其中答案图14 b)所示要比答案图14 a)好一些。网络 1 / 自复位定时器/ 网络注释LDN T37TON T37, +50网络 2 / 输出脉冲串LD T37= Q1.0答案图14 a)网络 1 / 自复位定时器/ 网络注释LDN Q1.0TON T37, +50网络 2 / 输出脉冲串LD T37= Q1.0答案图14 b)如果使用10ms时基的定时器,梯形图程序和语句表程序如答案图14 c)所示。网络 1 / 自复位定时器/ 网络注释LDN Q1.0TON T33, +500网络 2 / 输出脉冲串LD T33= Q1.0答案图14 c)如果使用1ms时基的定时器,梯形图程序和语句表程序如答案图14 d)所示。网络 1 / 自复位定时器/ 网络注释LDN Q1.0TON T32, +5000网络 2 / 输出脉冲串LD T32= Q1.0答案图14 d)10. 设计一个计数范围为50000的计数器。答:梯形图程序和语句表程序分别如答案图15所示。网络1 LD I0.0LD M0.0CTU C20, 50网络2 LD C20= M0.0网络3 / 网络注释LD M0.0LD I0.1CTU C30, 1000答案图1511. 用置位、复位(S、R)指令设计一台电动机的启、停控制程序。答:梯形图程序和语句表程序分别如答案图16所示。网络1LD I0.0S Q1.1, 1网络2 LD I0.1R Q1.1, 1答案图1612. 用顺序控制继电器(SCR)指令设计一个居室通风系统控制程序,使3个居室的通风机自动轮流地打开和关闭。轮换时间间隔为1h。答:用PLC输出端点Q0.0Q0.2分别控制三个通风机,I0.1接启动按钮开关,I0.2接停止按钮开关,梯形图程序和语句表程序分别如答案图17所示。答案图17习题与思考题5-12:居室通风系统控制程序网络1 / 初始状态/激活第一个SCR段LD I0.1AN Q0.0AN Q0.1AN Q0.2S S0.1, 1网络2 / SCR段1:/起动通风机1,/并延时1hLSCR S0.1网络3 / 起动通风机1/ 网络注释LD SM0.0S Q0.0, 1网络 4 / 计时1h(3600s)LDN M0.0TON T37, 18000网络5 LD T37= M0.0答案图17(续)网络 6 LD M0.0LD C20CTD C20, 2网络7 / 计时到后,/关闭通风机1,/激活SCR段2,/并停止本SCR段LD C20R Q0.0, 1SCRT S0.2网络8SCRE网络9 SCR段2:起动通风机2,并延时1hLSCR S0.2Network 10 / 起动通风机2/ 网络注释LD SM0.0S Q0.1, 1Network 11 / 计时1h(3600s)LDN M0.1TON T38, 18000Network 12 LD T38= M0.1答案图17(续)网络 13 LD M0.1LD C21CTD C21, 2网络14 / 计时到后,关闭通风机2,/激活SCR段3,并停止本SCR段LD C21R Q0.1, 1SCRT S0.3网络15 SCRE网络16 / SCR段3:起动通风机3,/并延时1hLSCR S0.3网络17 / 起动通风机3LD SM0.0S Q0.2, 1网络18 / 计时1h(3600s)LDN M0.2TON T39, 18000网络19 LD T39= M0.2答案图17(续)网络20 LD M0.2LD C22CTD C22, 2网络21 / 计时到后,关闭通风机3,/激活SCR段1,并停止本SCR段LD C22R Q0.2, 1SCRT S0.1网络22 SCRE网络23 / 停机LD I0.2R S0.1, 3R Q0.0, 313. 用寄存器移位指令(SHRB)设计一个路灯照明系统的控制程序,3路灯按H1H2 H3的顺序依次点亮。各路灯之间点亮的间隔时间为10h。答:用PLC输出端点Q0.0Q0.2分别控制路灯H1H3。控制程序见答案图18。答案图18习题与思考题5-13:路灯控制程序(循环点亮)网络1 / 起动/停止LD I0.0O M0.0AN I0.1= M0.0网络2 / 停止LD I0.1R Q0.0, 3网络3 / 灯1亮LD M0.0EUS Q0.0, 1R Q0.1, 2网络4 / 计时10h(36000s)LD M0.0AN M0.1TON T37, 50网络5 LD T37= M0.1网络6 LD M0.1LD C20LD I0.0EUOLDCTD C20, 2网络7 / 计时到后,移位,下一个灯亮LD C20SHRB Q0.2, Q0.0, 314. 用循环移位指令设计一个彩灯控制程序,8路彩灯串按H1H2H3H8的顺序依次点亮,且不断重复循环。各路彩灯之间的间隔时间为0.1s。答:用PLC输出端点Q0.0Q0.7分别控制彩灯H1H8。I0.0接启动按钮开关常开触点,I0.1接停止按钮开关常开触点,控制程序见答案图19。答案图19习题与思考题5-14:彩灯控制程序(循环点亮)网络1 / 起动/停止LD I0.0O M0.0AN I0.1= M0.0网络2 / 停止LD I0.1R Q0.0, 8网络3 / 灯1亮LD M0.0EUS Q0.0, 1网络4 / 计时0.1sLD M0.0AN M0.1TON T33, 10网络5 LD T33= M0.1网络6 / 计时到后,循环左移/,下一个灯亮LD M0.1RLB QB0, 115. 用整数除法指令将VW100中的(240)除以8后存放到AC0中。答:编程见答案图20。答案图20习题与思考题5-15网络1LD M0.1MOVW 240, VW100MOVW VW100, AC0/I +8, AC016. 将AIW0中的有符号整数(3400)转换成(0.01.0)之间的实数,再将结果存人VD200。答:S7-200 PLC的模拟量输入模块将模拟量转换成数字量后的典型量程范围为:单极性:032000双极性:-3200032000设模拟量输入量为双极性输入,则转换公式为式中,x为转换前的模拟量对应的数字量,y是转换后的实数值。根据以上转换公式编制的程序如答案图21所示。答案图21习题与思考题5-16网络1 LD M0.1ITD AIW0, AC0DTR AC0, AC0/R 64000.0, AC0+R 0.5, AC0MOVR AC0, VD20017. 将PID运算输出的标准化实数0.75先进行比例换算,然后再转换成一个有符号整数(INT),结果存入AQW2。答:PID运算的输出结果为规格化的实数,范围在01.0之间。在将PID指令计算得到的PID回路的输出作为实际的模拟信号用于驱动实际负载之前,需要先将PID指令计算得到输出换算到实际需要的成比例的16位整数值,然后输出到模拟输出模块。转换公式如下式中,RSca1是与PID环路输出成比例的实数值;Mn是规格化的环路输出的实数值;Offset是偏移量,对单极输出是0.0,对双极输出是0.5;Span是实际输出的最大可能的数值减去最小可能的数值,对单极输出,典型值为32000,对双极输出,典型值为64000。设输出为双极性(输出的整数范围为-32000+32000),程序如答案图22所示。答案图22习题与思考题5-17网络1 LD M0.1MOVR 0.75, AC0-R 0.5, AC0*R 64000.0, AC0ROUND AC0, AC0DTI AC0, LW0MOVW LW0, AQW218. 用定时中断设置一个每0.1s采集一次模拟量输入值的控制程序。答:编程见答案图23。答案图23习题与思考题5-18:定时(0.1s)中断采集模拟量网络1 / 首次扫描调用子程序0LD SM0.1CALL SBR0答案图23续子程序0网络1 / 网络标题LD SM0.0MOVB 100, SMB34/设置中断0的时间间隔.01秒ATCH INT0, 10/连接中断服务程序ENI/全局性允许中断中断程序0网络1 / INT_0/ 每100 ms读取AIW2的值LD SM0.0MOVW AIW2, VW10019. 按模式6设计高速计数器HSC1初始化子程序,设控制字节SMB47=16#F8。答:要对高速计数器编程,必须完成下列基本任务:定义计数器和模式;设置控制字节;设置当前值(起始值);设置预设值(目标数值);分配和启用中断例行程序;激活高速计数器。编程见答案图24。20. 以输出点Q0.1为例,简述PTO多段操作初始化及其操作过程。21. 用TODR指令从实时时钟读取当前日期,并将“星期”的数字用段码指令(SEG)显示出来。答:执行读实时时钟指令TODR后,得到连续8个字节中的最高字节是“星期几”的BCD码,其中“1”表示星期日,“7”表示星期六,“0”被禁用,所以得到的参数需要修正。编程见答案图26。答案图26习题与思考题5-21网络1 / 网络标题/ 网络注释LDM0.1TODRVB100/读实时时钟MOVBVB107, VB108/为减法做准备-I1, VW108/修正星期数值SEGVB108, VB110/转换成七段显示码22. 指出图5-52所示梯形图中的语法错误,并改正。图5-52 习题22梯形图(a)(b)答:图(a)的错误为计数器预设值PV=30000032767,超出INT型数据的范围。应改成小于等于32767的数据。图(b)中的错误在于操作数类型与指令不匹配。字逻辑与指令中的VD30应改为字型操作数,例如改成VW30;双字逻辑异或指令中的操作数VW10和VW100应改成双字操作数,例如改成VD20和VD100。第8章 可编程控制器系统设计与应用习题与思考题1. 简述可编程控制器系统设计的一般原则和步骤。答:可编程控制系统设计时应遵循以下原则:(1)最大限度地满足被控对象的要求;(2)在满足控制要求的前提下,力求使控制系统简单、经济、适用及维护方便;(3)保证系统的安全可靠;(4)考虑生产发展和工艺改进的要求,在选型时应留有适当的余量。由于PLC的结构和工作方式与一般微机和继电器相比各有特点,所以其设计的步骤也不尽相同,具体设计步骤如下:(1)详细了解被控对象的生产工艺过程,分析控制要求;(2)根据控制要求确定所需的用户输入/输出设备;(3)选择PLC类型;(4)分配PLC的I/O点,设计I/O连接图;(5) PLC软件设计,同时可进行控制台的设计和现场施工;(6)系统调试,固化程序,交付使用。2. 可编程控制器的选型需要考虑哪些问题?答:(1) PLC容量的选择首先要对控制任务进行详细的分析,把所有的I/O点找出来,包括开关量I/O和模拟量I/O点。然后要对用户存储器容量进行估算。总存储器字数=(开关量输入点数+开关量输出点数) 10+模拟量点数150。然后按计算存储器字数的25%考虑余量。(2) PLC机型的选择由于生产PLC的厂家众多,实现的功能虽基本相同,性能、价格和编程语言却有较大差别,一般从以下几个方面考虑。功能方面:所有PLC一般都具有常规的功能,但对某些特殊要求,就要知道所选用的PLC是否有能力完成控制任务。价格方面:不同厂家的PLC产品价格相差很大,有些功能类似、质量相当、I/O点数相当的PLC的价格能相差40%以上。在使用PLC较多的情况下,性价比是一个重要的因素。售后服务:应考虑相关的技术支持,统一型号方便维护,系统改造、升级等因素。3. 提高可编程控制器系统可靠性的措施有哪些?4. 设计一段程序,要求对五相步进电机5个绕组依次自动实现如下方式的循环通电控制:第1步,ABCDE;第2步,AABBCCDDEEA;第3步,ABABCBCBCDCDCDEDEDEA;第4步,EAABCBCDCDEDEA;A、B、C、D、E分别接主机的输出点Q0.1、Q0.2、Q0.3、Q0.4、Q0.5,启动按钮接主机的输入点I0.0,停止按钮接主机的输入点I0.1。5. 已知彩灯共有8盏,设计一段彩灯控制程序,实现下述控制要求:程序开始时,灯1(Q0.0)亮;一次循环扫描旦定时时间到后,灯1(Q0.0)灭,灯2(Q0.1)亮;再次循环扫描且定时时间到后,灯2(Q0.1)灭,灯3(Q0.2)亮,直至灯8亮。灯8灭后循环重新开始。答:控制彩灯的方式有很多种,一般用循环指令来实现比较常见。本例中,I0.0为设定按钮,I0.1为启动按钮。Q0.0-Q0.7控制8盏彩灯。参考程序如答案图34所示。习题与思考题8-5网络1 / 网络标题/按下设定按钮I0.0,/给QB0置初值LD I0.0EUMOVB 16#1, QB0网络2 / 按下启动按钮I0.l,/启动定时器,/定时时间2sLD I0.1AN T37TON T37, +20网络3 / 定时时间到,/灯循环左移LD T37RLB QB0, 1答案图34
展开阅读全文