第5章-S7-200-PLC的指令系统-53_第1页
第5章-S7-200-PLC的指令系统-53_第2页
第5章-S7-200-PLC的指令系统-53_第3页
第5章-S7-200-PLC的指令系统-53_第4页
第5章-S7-200-PLC的指令系统-53_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.2.5定时器和计数器指令(2)有记忆接通延时定时器指令:TONR1√SIMATICIEC1131LADSTLTONRTxxx,PTINTONRPT???msTxxx有记忆接通延时定时器使能输入IN再次接通时,当前值从上次保持的值继续累计计时。工作过程:上电周期/首次扫描,定时器位=0,当前值=掉电保持的值(如果已配置为掉电保持(默认))或0(如果未配置成掉电保持)。(教材P126有误)使能输入IN接通时,从掉电保持的值(如果有掉电保持)或0(无掉电保持)开始累计计时。使能输入IN断开时,定时器位和当前值保持最后状态。5.2.5定时器和计数器指令(2)有记忆接通延时定时器指令:TONR工作过程:当累计当前值≥预设值时,定时器位=1。达到预设值后,定时器继续计时直到达到最大值+32767时方停止计时。停止后,定时器位保持1,直到复位。复位方法:TONR定时器只能用复位指令(R)对其复位,例如:RT31,1。复位效果如下:定时器位=0定时器当前值=025.2.5定时器和计数器指令TONR编程举例3STL网络1//10msTONR定时器T1//1s后定时时间到LD I0.0 //起动/停止T33(停止时保持)TONR T1,+100 //有记忆接通延时定时器指令,1s网络2//T1位由定时器T1控制

//累计计时1s后Q0.0接通LD T1 //装入定时器位到栈顶= Q0.0 //定时时间到时Q0.0接通网络3//TONR定时器必须用复位指令复位//当I0.1接通时复位定时器T1(当前值和位)LD I0.1 //装入I0.1的值到栈顶R T1,1 //栈顶值=1时复位T15.2.5定时器和计数器指令上例程序时序图4预设值=100I0.0T1(当前值)T1(位),Q0.0(当前值)I0.1(复位)60×10ms40×10ms100×10ms=1s开始计时计时到T1位ON停止并保持继续计时停止并保持继续计时复位停止开始计时计时到T1位ON5.2.5定时器和计数器指令(3)断开延时定时器指令:TOF工作过程:类似于断电延时继电器。上电周期/首次扫描,定时器位=0,当前值=0。当使能输入IN接通时,定时器位立即接通(置1),当前值设置为0,不计时。5√SIMATICIEC1131LADSTLTOFTxxx,PTINTOFPT???msTxxx断开延时定时器当使能输入IN由接通到断开时,定时器开始计时。当达到预设值时,定时器位=0,停止计时。如果使能输入断开时间短于预设值,则定时器位仍保持在1状态。I0.1()Q0.0T37INTON100PT30INT37100msPTTOFI0.1T37的当前值T37Q0.03S305.2.5定时器和计数器指令(3)断开延时定时器指令TOF——教学示例7例:一台电动机,要求按下启动按钮SF1后立即启动,按下按钮SF2后,电动机延时10分钟后停止。SF2I0.1Q0.0PLCSF1I0.2I0.0Q0.2Q0.11M1LI0.3~I/O分配表输入信号输出信号启动按钮SF1I0.0接触器QA1Q0.0停止按钮SF2I0.1QA15.2.5定时器和计数器指令(3)断开延时定时器指令TOF——教学示例8I0.0I0.1Q0.0M0.0T376000T37M0.0M0.0INTOFPT100ms网络1网络2网络3SF2SF1自锁启动停止M3~M3~

以上介绍的3种定时器具有不同的功能。接通延时定时器(TON)用于单一间隔的定时;有记忆接通延时定时器(TONR)用于累计时间间隔的定时;断开延时定时器(TOF)用于故障事件发生后的时间延时。

5.2.5定时器和计数器指令应用定时器指令应注意的几个问题:

①不能把一个定时器号同时用作断开延时定时器(TOF)和接通延时定时器(TON)。②使用复位(R)指令对定时器复位后,定时器位为“0”,定时器当前值为“0”。③有记忆接通延时定时器(TONR)只能通过复位指令进行复位。④对于断开延时定时器(TOF),需要输入端有一个负跳变(由on到off)的输入信号启动计时。⑤不同精度的定时器,它们当前值的刷新周期是不同的,具体情况如下:5.2.5定时器和计数器指令5.2.5定时器和计数器指令1ms分辨率定时器:定时器位和当前值每隔1ms刷新一次,与扫描周期不同步。如果扫描周期大于1ms,则在一个扫描周期中要刷新多次。10ms分辨率定时器:在每次扫描周期开始对10ms定时器刷新,所以在一个扫描周期内定时器当前值和定时器位保持不变。100ms分辨率定时器:只有在定时器指令执行时,当前值和位才被刷新。如果启动了100毫秒定时器但又不是在每个扫描循环都执行该定时器指令,则会因定时器当前值得不到刷新而造成时间丢失。同样,如果在一个扫描循环内多次执行同一个100毫秒定时器指令,则100毫秒的间隔数将被多次加到定时器的当前值上,造成时间增加。所以,100毫秒定时器只应该使用在每次扫描循环准确执行一次的地方。(鉴于以上道理,在子程序和中断服务程序中不宜使用100ms定时器。)1112在图a中,T32定时器1ms更新一次。当定时器当前值100在图示T32常闭触点之后、常开触点之前的区间刷新,Q0.0可以接通一个扫描周期,若在其他位置刷新,Q0.0则用永远不会接通。而在该处刷新的概率是很小的。若改为图b,就可保证当定时器当前值达到设定值时,Q0.0会接通一个扫描周期。

图a适合100ms定时器。在实际使用中,100ms定时器常使用自复位逻辑,也是使用最多的定时器。图a同样不适合10ms分辨率定时器。1ms1ms5.2.5定时器和计数器指令2.计数器指令计数器指令用来累计输入脉冲的次数,用于各种事件的计数。例如,统计产品数量,扩展定时范围等。计数器由专用的可编程硬件电路构成。计数器检测计数输入端电位的上升沿(正跳变-从OFF到ON的转换或跳变)。每检测到一个上升沿,计数器的计数值就增1(增计数器)或减1(减计数器)。当计数完成时(教材P129有误),可发出中断请求信号,以便PLC作出相应的处理。13OFFON上升沿上升沿5.2.5定时器和计数器指令2.计数器指令S7-200系列PLC的计数器指令有两大类:通用计数器指令高速计数器指令本节介绍通用计数器指令(以下简称计数器指令)。S7-200系列PLC主机的计数器种类有3种,每种都有256个通用计数器(C0~C255)。增计数器指令CTU(UpCounter)减计数器指令CTD(DownCounter)增减计数器指令CTUD(Up/DownCounter)。C0~C255都可以用作上述三种计数器之一。14√SIMATICIEC1131LADFBDSTLCTUCxxx,PV5.2.5定时器和计数器指令计时器指令格式(SIMATIC)Cxxx:定时器地址(C0~C255);CU/CD:增/减计数信号输入端(BOOL);R/LD:复位/装载信号输入端(BOOL);PV:计数预设值(INT)。15√SIMATICIEC1131LADFBDSTLCTDCxxx,PV增计数器指令减计数器指令CUCTURPVCxxxCDCTDLDPVCxxx√SIMATICIEC1131LADFBDSTLCTUDCxxx,PV增减计数器指令CUCTUDCDRPVCxxx5.2.5定时器和计数器指令计数器当前值(Cxxx):计数累计到当前的值,数据类型INT(16位有符号整数);计数器的预设值(PV):预先设定的计数值,INT型(16位有符号整数)。计数器位(Cxxx):反映计数器的计数当前值状态,BOOL型。在编程时,计数器地址、计数器当前值、计数器位都用Cxxx(xxx=0~255)表示。存取计数器数据时,是访问计数器位还是当前值取决于所使用的指令:带位操作数的指令可访问计数器位,而带字操作数的指令则访问当前值。如LDC234;MOVWC234,VW1000。165.2.5定时器和计数器指令(1)增计数器指令:CTULAD中工作过程:上电周期/首次扫描,计数器位=OFF,当前值=断电保持值(如果已配置为断电保持(默认))或0(如果未配置为断电保持)。(教材P129有误)17√SIMATICIEC1131LADSTLCTUCxxx,PVCUCTURPVCxxx每当增计数输入CU发生一次从OFF到ON的转换(正跳变-上升沿)时,该计数器的当前值就增加1。如果当前值Cxxx≥预设值PV,则计数器位=ON;否则,计数器位=OFF。当前值达到预设值后继续计数,计数当前值到最大值(32,767)时,计数器停止。当复位输入R接通或执行复位指令时,计数器被复位,计数器位=OFF,当前值=0。5.2.5定时器和计数器指令增计数器指令CTU教学示例增计数器指令CTU教学示例网络1网络标题LDI0.0

//计数脉冲信号输入LDI0.1

//复位信号输入CTUC20,+3

//增计数,计数设定值为3个脉冲网络2LDC20

//装入计数器位=Q0.0

//输出18复位增1增1计数到预设值到预设值后,继续计数复位增1增1计数到预设值123401230例1:一台电动机M1,要求按下启动按钮SF110分钟后,电动机自行启动,按下按钮SF2后电动机停止。分配I/O表,设计梯形图。(用计数器指令实现)SF2I0.1Q0.0PLCSF1I0.2I0.0QA1Q0.2Q0.11M1LI0.3I/O分配表输入信号输出信号启动按钮SF1I0.0接触1器QA1Q0.0停止按钮SF2I0.15.2.5定时器和计数器指令例1CTUCUPVC1R()Q0.0C1SM0.5CTUCUPVC1R()Q0.0C1例1SM0.50.5s0.5sSM0.5CTUCUPVC1R()Q0.0C1600例1SM0.5CTUCUPVC1R()Q0.0C1600I0.1启动按钮?例1SM0.5CTUCUPVC1R()Q0.0C1600I0.1I0.0M0.0I0.1()M0.0M0.0例1例2:一台电动机M1,要求按下启动按钮SF110小时后,电动机自行启动,按下按钮SF2后电动机停止。设计梯形图。(用一个定时器和一个计数器实现)SF2I0.1Q0.0PLCSF1I0.2I0.0QA1Q0.2Q0.11M1LI0.3输入信号输出信号启动按钮SF1I0.0接触1器QA1Q0.0停止按钮SF2I0.15.2.5定时器和计数器指令()Q0.0C1CTUCUPVC1RI0.0M0.0I0.1()M0.0M0.0INTON100PT18000INT37100msPTTONT37()Q0.0C1CTUCUPVC1RI0.0M0.0I0.1()M0.0M0.0INTON100PT18000INT37100msPTTONT3720()Q0.0C1CTUCUPVC1RI0.0M0.0I0.1()M0.0M0.0INTON100PT18000INT37100msPTTONT3720T37I0.15.2.5定时器和计数器指令(2)增减计数器指令:CTUD计数信号输入端:CU输入端用于递增计数,CD输入端用于递减计数。LAD工作过程:上电周期/首次扫描,定时器位=OFF,当前值=断电保持值(如果已配置为掉电保持(默认))或0(如果未配置为掉电保持)。(教材P129有误)29√SIMATICIEC1131LADSTLCTUDCxxx,PV增减计数器CUCTUDCDRPVCxxx每当增计数输入CU发生一次从OFF到ON的转换时,该计数器的当前值就增1;每当减计数输入CD发生一次从OFF到ON的转换时,该计数器的当前值就减1。5.2.5定时器和计数器指令(2)增减计数器指令:CTUDLAD中工作过程:如果当前值Cxxx≥预设值PV,则计数器位=ON;否则,计数器位=OFF。当前值达到预设值后继续计数(增或减)。当增计数达到最大值(32,767)时,在增计数输入端CU的下一个上升沿导致当前计数值绕回到最小值(-32,768)。同样,计数达到最小值(-32,768)时,减计数输入端CD的下一个上升沿会导致当前计数值绕回到最大值(32,767)。所以,CTUD是一个循环计数器,计数范围从-32768~+32767。当复位输入R接通或执行复位指令时,该计数器被复位。复位时,计数器位=OFF,当前值=0。30CUCTUDCDRPVCxxx5.2.5定时器和计数器指令(2)增减计数器指令:CTUD——教学示例增减计数器指令CTUD教学示例网络1网络标题LD I0.0

//增计数输入端LD I0.1

//减计数输入端LD I0.2

//复位端CTUD C30,+5

//增减计数,设定脉冲数为5网络2LD C30

//装入计数器位= Q0.0

//输出31复位增1增1计数到预设值到预设值后,继续计数增1增1增1增1减1减1减1计数到预设值增1复位5.2.5定时器和计数器指令(3)减计数器指令:CTDLAD和FBD中工作过程:上电周期/首次扫描,计数器位=OFF,当前值=断电保持值(如果已配置为掉电保持(默认))或0(如果未配置为掉电保持)。(教材P131有误)32√SIMATICIEC1131LADSTLCTDCxxx,PVCDCTDLDPVCxxx利用LD装载预设值。当装载(load)输入LD接通时,计数器复位,计数器位=OFF,当前值=预设值PV。每当减计数输入CD发生一次从OFF到ON的转换(正跳变-上升沿)时,该计数器的当前值就减1。计数当前值到0时,计数器停止,计数器位=ON,当前值=0。减计数器指令CTD教学示例网络1网络标题LDI0.0

//减计数脉冲输入端LDI0.1

//装载输入端CTDC40,+4

//减计数器,设定计数脉冲数为4

网络1LDC40

//装入计数器位=Q0.0

//输出0442233413I0.0I0.1C40当前值C40状态位5.2.5定时器和计数器指令(3)减计数器指令:CTD——教学示例33装载(复位)减1计数到0停止计数C40位置1装载减1减1减1保持装载减1计数脉冲无效减15.2.5定时器和计数器指令减计数器指令应用举例:用减计数器和定时器配合增加延时时间,如下图所示。延时时间为:100ms×30000×10=30000s。34实现自动复位和自动重启动I0.0T50位C20位123451011I0.1Q0.0c20I0.15.2.5定时器和计数器指令(5)应用计数器指令应注意的问题:①可以用复位指令来对3种计数器复位,复位指令的执行结果是:使计数器位变为OFF;CTU和CTUD计数器当前值变为0;CTD计数器当前值变为预设值。②在一个程序中,同一个计数器编号只能使用一次。③计数脉冲输入和复位输入同时有效时,优先执行复位操作。355.2.8比较操作指令比较指令是一种比较判断(关系运算),用于比较两个有符号数或无符号数,运算结果为布尔值(真/1或假/0)。在梯形图中以带参数和关系运算符号的触点的形式编程,当两数比较的结果为真时,该触点闭合。在语句表中使用LD类指令进行比较时,比较结果(0或1)放入栈顶(进栈)。使用A/O类指令进行比较时,比较结果(0或1)与栈顶值进行A/O操作,并将A/O操作的结果放入栈顶,不影响堆栈中其它位。365.2.8比较操作指令比较指令的类型有:字节比较(无符号)、整数比较(有符号)、双字整数比较(有符号)、实数比较(有符号)和字符串比较。比较运算符有:=、>=、<=、>、<和<>(<>表示不等于)。字符串比较只有=和<>比较。37【注释】比较指令与能流(或栈顶值)无关,即不管能流(或栈顶值)的状态如何,比较指令总是被执行,所以在LAD程序中比较指令可以直接和左母线相连。5.2.8比较操作指令各种比较指令38√SIMATICIEC1131LADSTLLDB=IN1,IN2AB=IN1,IN2OB=IN1,IN2==BIN1IN2√SIMATICIEC1131LADSTLLDW=IN1,IN2AW=IN1,IN2OW=IN1,IN2==IIN1IN2√SIMATICIEC1131LADSTLLDD=IN1,IN2AD=IN1,IN2OD=IN1,IN2==DIN1IN2字节比较指令无符号数比较IN1、IN2:字节型整数比较指令有符号数比较IN1、IN2:整型双字整数比较指令有符号数比较IN1、IN2:双整型5.2.8比较操作指令各种比较指令39实数比较指令有符号数比较IN1、IN2:实型字符串比较指令只有=和<>比较√SIMATICIEC1131LADSTLLDR=IN1,IN2AR=IN1,IN2OR=IN1,IN2==RIN1IN2√SIMATICIEC1131LADSTLLDS=IN1,IN2AS=IN1,IN2OS=IN1,IN2LDS<>IN1,IN2AS<>IN1,IN2OS<>IN1,IN2==SIN1IN2其它比较指令以关系运算符<>、>、<、>=、<=代替==(LAD)或=(STL)即可。<>SIN1IN25.2.8比较操作指令5.应用举例一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物大于等于1000箱,灯PG1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论