|
4.4 定时器和计数器指令 |
4.4.1 SIMATIC定时器
TIA博途软件的定时器指令相当于继电器接触器控制系统的时间继电器的功能。定时器的数量随CPU的类型不同,一般而言足够用户使用。
(1)定时器的种类
TIA博途软件的SIMATIC定时器指令较为丰富,除了常用的接通延时定时器(SD)和断开延时定时器(SF)以外,还有脉冲定时器(SP)、扩展脉冲定时器(SE)和保持型接通延时定时器(SS)共5类。
(2)定时器的使用
定时器有其存储区域,每个定时器有一个16位的字和一个二进制的值。定时器的字存放当前定时值。二进制的值表示定时器的接点状态。
① 启动和停止定时器 在梯形图中,定时器的S端子可以使能定时器,而定时器的R端子可以复位定时器。
② 设定时器的定时时间 TIA博途软件中的定时时间由时基和定时值组成,定时时间为时基和定时值的乘积,例如定时值为1000,时基为0.01s,那么定时时间就是10s,很多PLC的定时都是采用这种方式。定时器开始工作后 ,定时值不断递减,递减至零,表示时间到,定时器会相应动作。
定时器字的格式如图4-52所示,其中第12位和13位(即m和n)是定时器的时基代码,时基代码的含义见表4-17。定时的时间值以3位BCD码格式存放,位于0~11(即a~l),范围为0~999。第14位和15位不用。
图4-52 定时器字的格式
表4-17 时基与定时范围对应表
定时时间有两种表达方式:十六进制数表示和S5时间格式表示。前者的格式为:W#16#wxyz,其中w是时间基准代码,xyz是BCD码的时间值。例如时间表述为:W#16#1222,则定时时间为222×0.1s=22.2s。
S5时间格式为:S5T#aH_bM_cS_dMS,其中a表示小时,b表示分钟,c表示秒钟,d表示毫秒,含义比较明显。例如S5T#1H_2M_3S表示定时时间为1小时2分3秒。这里的时基是PLC自动选定的。
(3)脉冲时间定时器(SP)
SP:产生指定时间宽度脉冲的定时器。当逻辑位有上升沿时,脉冲定时器指令启动计时,同时节点立即输出高电平“1”,直到定时器时间到,定时器输出为“0”。脉冲时间定时器可以将长信号变成指定宽度的脉冲。如果定时时间未到,而逻辑位的状态变成“0”时,定时器停止计时,输出也变成低电平。脉冲定时器线圈指令和参数见表4-18。
表4-18 脉冲定时器线圈指令和参数
用一个例子说明脉冲定时器的使用,梯形图如图4-53所示,对应的时序图如图4-54所示。可以看出当I0.0接通的时间长于1s,Q0.0输出的时间是1s,而当I0.0接通的时间为0.5s(小于1s)时,Q0.0输出1的时间是0.5s,无论I0.0是否接通,只要I0.1接通时,定时器复位,Q0.0输出为0。
图4-53 脉冲定时器示例
图4-54 脉冲定时器示例的时序图
TIA博途软件除了提供脉冲的定时器线圈指令外,还提供更加复杂的方框指令来实现相应的定时功能。脉冲定时器方框指令和参数见表4-19。
表4-19 脉冲定时器方框指令和参数
脉冲定时器方框指令的示例如图4-55所示。
图4-55 脉冲定时器方框指令示例
(4)扩展脉冲时间定时器(SE)
扩展脉冲时间定时器(SE)和脉冲时间定时器(SP)指令相似,但SE指令具有保持功能。扩展脉冲时间定时器的线圈指令和参数见表4-20。
表4-20 扩展脉冲定时器线圈指令和参数
用一个例子来说明SE线圈指令的使用,梯形图如图4-56所示,对应的时序图如图4-57所示。当I0.0有上升沿时,定时器T0启动,同时Q0.0输出高电平“1”,定时时间到后,输出自动变为“0”(尽管此时I0.0仍然闭合),当I0.0有上升沿时,且闭合时间没有到定时时间,Q0.0仍然输出为“1”,直到定时时间到为止。无论什么情况下,只要复位输入端起作用,本例为I0.1闭合,则定时器复位,输出为“0”。
图4-56 扩展脉冲定时器示例
图4-57 扩展脉冲定时器示例的时序图
TIA博途软件除了提供扩展脉冲的定时器线圈指令外,还提供更加复杂的方框指令来实现相应的定时功能。扩展脉冲定时器方框指令和参数见表4-21。
表4-21 扩展脉冲定时器方框指令和参数
扩展脉冲定时器方框指令示例如图4-58所示。
图4-58 扩展脉冲定时器方框指令示例
(5)接通延时定时器(SD)
接通延时定时器(SD)相当于继电器接触器控制系统中的通电延时时间继电器。通电延时继电器的工作原理是:线圈通电,触点延时一段时间后动作。SD指令是当逻辑位接通时,定时器开始定时,计时过程中,定时器的输出为“0”,定时时间到,输出为“1”,整个过程中,逻辑位要接通,只要逻辑位断开,则输出为“0”。接通延时定时器最为常用。接通延时定时器的线圈指令和参数见表4-22。
表4-22 接通延时定时器的线圈指令和参数
用一个例子来说明SD线圈指令的使用,梯形图如图4-59所示,对应的时序图如图4-60所示。当I0.0闭合时,定时器T0开始定时,定时1s后(I0.0一直闭合),Q0.0输出高电平“1”,若I0.0的闭合时间不足1s,Q0.0输出为“0”,若I0.0断开,Q0.0输出为“0”。无论什么情况下,只要复位输入端起作用,本例为I0.1闭合,则定时器复位,Q0.0输出为“0”。
图4-59 接通延时定时器示例
图4-60 接通延时定时器示例的时序图
TIA博途软件除了提供接通延时定时器线圈指令外,还提供更加复杂的方框指令来实现相应的定时功能。接通延时定时器方框指令和参数见表4-23。
表4-23 接通延时定时器方框指令和参数
接通延时定时器方框指令示例如图4-61所示。
图4-61 接通延时定时器方框指令示例
【例4-12】 设计一段程序,实现一盏灯灭3s,亮3s,不断循环,且能实现启停控制。
【解】 接线图如图4-62所示,梯形图如图4-63所示。这个梯形图比较简单,但初学者往往不易看懂。控制过程是:当SB1合上,定时器T0定时3s后Q0.0控制的灯灭,与此同时定时器T1启动定时,3s后,T1的常闭触点断开切断T0,进而T0的常开触点切断T1;此时T1的常闭触点闭合T0又开始定时,Q0.0灯亮,如此周而复始,Q0.0控制灯闪烁。
图4-62 接线图
图4-63 梯形图(1)
本例的第二种解法如图4-64所示,定时器用方框图表示,这种解法更容易理解。
图4-64 梯形图(2)
(6)保持型接通延时定时器(SS)
保持型接通延时定时器(SS)与接通延时定时器(SD)类似,但SS定时器具有保持功能。一旦逻辑位有上升沿发生,定时器启动计时,延时时间到,输出高电平“1”,即使逻辑位为“0”也不影响定时器的工作。必须用复位指令才能使定时器复位。保持型接通延时定时器的线圈指令和参数见表4-24。
表4-24 保持型接通延时定时器的线圈指令和参数
用一个例子来说明SS线圈指令的使用,梯形图如图4-65所示,对应的时序图如图4-66所示。当I0.0闭合产生一个上升沿时,定时器T0开始定时,定时1s后(无论I0.0是否闭合),Q0.0输出为高电平“1”,直到复位有效为止,本例为I0.1闭合产生上升沿,定时器复位,Q0.0输出为低电平“0”。
图4-65 保持型接通延时定时器示例
图4-66 保持型接通延时定时器示例的时序图
TIA博途软件除了提供保持型接通延时定时器线圈指令外,还提供更加复杂的方框指令来实现相应的定时功能。保持型接通延时定时器方框指令和参数见表4-25。
表4-25 保持型接通延时定时器方框指令和参数
保持型接通延时定时器方框指令的示例如图4-67所示。
图4-67 保持型接通延时定时器方框指令的示例
(7)断开延时定时器(SF)
断开延时定时器(SF)相当于继电器控制系统的断电延时时间继电器,是定时器指令中唯一一个由下降沿启动的定时器指令。断开延时定时器的线圈指令和参数见表4-26。
表4-26 断开延时定时器的线圈指令和参数
用一个例子来说明SF线圈指令的使用,梯形图如图4-68所示,对应的时序图如图4-69所示。当I0.0闭合时,Q0.0输出高电平“1”,当I0.0断开时产生一个下降沿,定时器T0开始定时,定时1s后(无论I0.0是否闭合),定时时间到,Q0.0输出为低电平“0”。任何时候复位有效时,定时器T0定时停止,Q0.0输出为低电平“0”。
图4-68 断开延时定时器示例
图4-69 断开延时定时器示例的时序图
TIA博途软件除了提供断开延时定时器线圈指令外,还提供更加复杂的方框指令来实现相应的定时功能。断开延时定时器方框指令和参数见表4-27。
表4-27 断开延时定时器方框指令和参数
断开延时定时器方框指令的示例如图4-70所示。
图4-70 断开延时定时器方框指令的示例
【例4-13】 某车库中有一盏灯,当人离开车库后,按下停止按钮,5s后灯熄灭,请编写程序。
【解】 当接通SB1按钮,灯HL亮;按下SB2按钮5s后,灯HL灭。接线图如图4-71所示,梯形图如图4-72所示。
图4-71 接线图
图4-72 梯形图
【例4-14】 鼓风机系统一般由引风机和鼓风机两级构成。当按下启动按钮之后,引风机先工作,工作5s后,鼓风机工作。按下停止按钮之后,鼓风机先停止工作,5s之后,引风机才停止工作,请编写程序。
【解】
① PLC的I/O分配表见表4-28。
表4-28 PLC的I/O分配表
② 控制系统的接线。鼓风机控制系统的接线比较简单,如图4-73所示。
图4-73 PLC接线图
③ 编写程序。引风机在按下停止按钮后还要运行5s,容易想到要使用SF定时器;鼓风机在引风机工作5s后才开始工作,因而容易想到用SD定时器,不难设计梯形图,如图4-74所示。
图4-74 鼓风机控制梯形图
4.4.2 IEC定时器
西门子PLC的定时器的数量有限,如果项目较大,定时器不够用时,可以使用IEC定时器。IEC定时器集成在CPU的操作系统中。在相应的CPU中有以下定时器:脉冲定时器(TP)、通电延时定时器(TON)、通电延时保持型定时器(TONR)和断电延时定时器(TOF)。
(1)通电延时定时器(TON)
通电延时定时器(TON)的参数见表4-29。
表4-29 通电延时定时器方框指令和参数
以下用一个例子介绍通电延时定时器(TON)的应用。
【例4-15】 压下按钮I0.0,3s后电动机启动,请设计梯形图。
【解】 使用SIMATIC定时器TON也可行,先插入IEC定时器TON,弹出如图4-75所示界面,分配数据块,再编写梯形图如图4-76所示,I0.0闭合启动定时器,T#3S是定时时间,3s后Q0.0为1,MD10中是定时器定时当前时间。
图4-75 插入数据块
图4-76 梯形图
(2)断电延时定时器(TOF)
断电延时定时器(TOF)的参数见表4-30。
表4-30 断电延时定时器方框指令和参数
以下用一个例子介绍断电延时定时器(TOF)的应用。
【例4-16】 断开按钮I0.0,延时3s后电动机停止转动,请设计梯形图。
【解】 使用SIMATIC定时器TOF也可行,先插入IEC定时器TOF,弹出如图4-75所示界面,分配数据块,再编写梯形图如图4-77所示,压下I0.0按钮Q0.0得电,电动机启动。T#3S是定时时间,断开I0.0,启动定时器,3s后Q0.0为0,电动机停转,MD10中是定时器定时当前时间。
图4-77 梯形图
(3)时间累加器定时器(TONR)
时间累加器定时器(TONR)的参数见表4-31。
表4-31 时间累加器定时器方框指令和参数
以下用一个例子介绍时间累加器定时器(TONR)的应用。如图4-78所示,当I0.0闭合的时间累加和大于等于10s(即I0.0闭合一次或者闭合数次时间累加和大于等于10s),Q0.0线圈得电,如需要Q0.0线圈断电,则要I0.1闭合。
图4-78 梯形图
4.4.3 SIMATIC计数器
计数器的功能是完成计数功能,可以实现加法计数和减法计数,计数范围是0~999,计数器有三种类型:加计数器(S_CU)、减计数器(S_CD)和加减计数器(S_CUD)。
(1)计数器的存储区
在CPU的存储区中,为计数器保留有存储区。该存储区为每个计数器地址保留一个16位的字。计数器的存储格式如图4-79所示,其中BCD码格式的计数值占用字的0~11位,共12位,而12~15位不使用;二进制格式的计数值占用字的0~9位,共10位,而10~15位不使用。
图4-79 计数器字的格式
(2)加计数器(S_CU)
加计数器(S_CU)在计数初始值预置输入端S上有上升沿时,PV装入预置值,输入端CU每检测到一次上升沿,当前计数值CV加1(前提是CV小于999);当前计数值大于0时,Q输出为高电平“1”;当R端子的状态为“1”时,计数器复位,当前计数值CV为“0”,输出也为“0”。加计数器指令和参数见表4-32。
表4-32 加计数器指令和参数
用一个例子来说明加计数器指令的使用,梯形图如图4-80所示,与之对应的时序图如图4-81所示。当I0.1闭合时,将10赋给CV;当I0.0每产生一个上升沿,计数器C0计数1次,CV加1;只要计数值大于0,Q0.0输出高电平“1”。任何时候复位有效时,计数器C0复位,CV清零,Q0.0输出为低电平“0”。
图4-80 加计数器指令示例
图4-81 加计数器指令示例的时序图
【关键点】 S7-200 PLC的增计数器(如C0),当计数值到预置值时,C0的常开触点闭合,常闭触点断开,SIMATIC S7-1500 PLC的SIMATIC计数器无此功能。
(3)减计数器(S_CD)
减计数器(S_CD)在计数初始值预置输入端S上有上升沿时,PV装入预置值,输入端CD每检测到一次上升沿,当前计数值CV减1(前提是CV值大于0),当CV等于0时,计数器的输出Q从状态“1”变成状态“0”;当R端子的状态为“1”时,计数器复位,当前计数值为“PV”,输出也为“0”。减计数器指令和参数见表4-33。
表4-33 减计数器指令和参数
用一个例子来说明减计数器指令的使用,梯形图和指令表如图4-82所示,与之对应的时序图如图4-83所示。当I0.1闭合时,将10赋给CV,当I0.0每产生一个上升沿,计数器C0计数1次,CV减1,当CV值为0时,Q0.0输出从“1”变成“0”。任何时候复位有效时,定时器C0复位,CV值为0,Q0.0输出为低电平“0”。
图4-82 减计数器指令示例
图4-83 减计数器指令示例的时序图
【例4-17】 设计一个程序,实现用一个按钮控制一盏灯的亮和灭,即压下奇数次按钮时,灯亮,压下偶数次按钮时,灯灭。
【解】 当I0.0第一次合上时,M10.0接通一个扫描周期,使得Q0.0线圈得电一个扫描周期,当下一次扫描周期到达,Q0.0常开触点闭合自锁,灯亮。
当I0.0第二次合上时,M10.0接通一个扫描周期,C0计数为2,Q0.0线圈断电,使得灯灭,同时计数器复位。梯形图如图4-84所示。
图4-84 梯形图
(4)加减计数器(S_CUD)
加减计数器(S_CUD)在计数初始值预置输入端S上有上升沿时,PV装入预置值,输入端CD每检测到一次上升沿,当前计数值CV减1(前提是CV值大于0);输入端CU每检测到一次上升沿,当前计数值CV加1(前提是CV值小于999);当CD和CU同时有上升沿时,CV不变;计数值大于0时,计数器的输出Q为高电平“1”;计数值等于0时,计数器的输出Q为低电平“0”;当R端子的状态为“1”时,计数器复位,当前计数值为“0”,输出也为“0”。加减计数器指令和参数见表4-34。
表4-34 加减计数器指令和参数
用一个例子来说明加减计数器指令的使用,梯形图如图4-85所示。当I0.2闭合时,将值10赋给CV,I0.1每产生一个上升沿,计数器C0计数1次, CV减1,当CV值为0时,Q0.0输出从“1”变成“0”;I0.0是增计数端。任何时候复位有效时,定时器C0复位,CV值为0,Q0.0输出为低电平“0”。
图4-85 加减计数器指令示例
【例4-18】 在实际工程应用中,常常在监控面板上使用拨码开关给PLC设定数据。I0.0、I0.1、I0.2对应SB1、SB2和SB3按钮。当I0.0接通C0加1,当I0.1接通C0减1,当I0.2接通C0复位。通过SB1、SB2设定0~9共10个数字。
【解】 梯形图如图4-86所示。
图4-86 梯形图
4.4.4 IEC计数器
西门子PLC的计数器的数量有限,如果大型项目,计数器不够用时,可以使用IEC计数器。IEC计数器集成在CPU的操作系统中。在CPU中有以下计数器:加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)。
(1)加计数器(CTU)
加计数器(CTU)的参数见表4-35。
表4-35 加计数器(CTU)指令和参数
从指令框的“<???>”下拉列表中选择该指令的数据类型。
以下以加计数器(CTU)为例介绍IEC计数器的应用。
【例4-19】 压下按钮I0.0三次后,电动机启动,压下按钮I0.1,电动机停止,请设计梯 形图。
【解】 将CTU计数器拖拽到程序编辑器,弹出如图4-87所示界面,单击“确定”按钮,输入梯形图如图4-88所示。当I0.0压下三次,MW10中存储的当前计数值(CV)为3,等于预设值(PV),所以Q0.0状态变为1,电动机启动;当压下I0.1复位按钮,MW10中存储的当前计数值变为0,小于预设值(PV),所以Q0.0状态变为0,电动机停止。此题使用SIMATIC计数器S_CU也可行,但程序要复杂一些。
图4-87 插入数据块
图4-88 梯形图
(2)减计数器(CTD)
减计数器(CTD)的参数见表4-36。
表4-36 减计数器(CTD)指令和参数
从指令框的“<???>”下拉列表中选择该指令的数据类型。
以下用一个例子说明减计数器(CTD)的用法。
梯形图如图4-89所示。当I0.1压下一次,PV值装载到当前计数值(CV),且为3。当压下I0.0一次,CV减1,压下I0.0共三次,CV值变为0,所以Q0.0状态变为1。
图4-89 梯形图
(3)加减计数器(CTUD)
加减计数器指令(CTUD)的参数见表4-37。
表4-37 加减计数器指令(CTUD)和参数
从指令框的“<???>”下拉列表中选择该指令的数据类型。
以下用一个例子说明加减计数器指令(CTUD)的用法。
梯形图如图4-90所示。如果当前值PV为0,压下I0.0共三次,CV为3,QU的输出Q0.0为1,当压下I0.2,复位,Q0.0为0。
图4-90 梯形图
当I0.3压下一次,PV值装载到当前计数值(CV),且为3。当压下I0.1一次,CV减1,压下I0.1共三次,CV值变为0,所以Q0.1状态变为1。