为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

电气控制与S7-300 PLC编程技术第6章 定时器计数器指令

2019-04-03 93页 ppt 3MB 89阅读

用户头像 个人认证

孟子73代

暂无简介

举报
电气控制与S7-300 PLC编程技术第6章 定时器计数器指令6.2定时器指令 定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。 在CPU的存储器中留出了定时器区域,该区域用于存储定时器的定时时间值。每个定时器为2B,称为定时字。在S7-300中,定时器区为512B,因此最多允许使用256个定时器。定时器地址:T<地址号>,如T1…定时器是PLC的重要编程元件,它的作用与继电器控制线路中的时间继电器基本相似,用于实现或监控时间序列。 S7中定时时间由时基和定时值两部分组成,定时时间等于时基与定时值的乘积。当定时器运行时,定...
电气控制与S7-300 PLC编程技术第6章 定时器计数器指令
6.2定时器指令 定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。 在CPU的存储器中留出了定时器区域,该区域用于存储定时器的定时时间值。每个定时器为2B,称为定时字。在S7-300中,定时器区为512B,因此最多允许使用256个定时器。定时器地址:T<地址号>,如T1…定时器是PLC的重要编程元件,它的作用与继电器控制线路中的时间继电器基本相似,用于实现或监控时间序列。 S7中定时时间由时基和定时值两部分组成,定时时间等于时基与定时值的乘积。当定时器运行时,定时值不断减1,直至减到0,减到0表示定时时间到。定时时间到后会引起定时器触点的动作。例:定时值-127s。 时基和时间值可以任意组合,以得到不同的定时分辨率和定时时间。时基小,则定时分辨率高,但定时时间范围窄;时基大,则定时分辨率低,但定时时间范围宽。*定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基(如图3-24所示)。这12位二进制代码表示的数值范围是0~4096,实际使用范围是0~999。时基和时间值可以任意组合,以得到不同的定时分辨率和定时时间。 当定时器启动时,系统自动将累加器1低字的内容被当作定时时间装入定时字中。只需给累加器1装入不同的数值,即可设置需要的定时时间。 LW#16#wxyz:直接表示法w,x,y,z均为十进制数。w为时基,取值为0,1,2或3,分别表示时基为10ms,l00ms,1s或10s;xyz为定时值,取值范围为1~999。 LS5T#aH_bbM_ccS_dddMS:S5时间表示法S5中的时间表示法装入定时数值,a:小时,bb:分钟,cc:秒,ddd:毫秒,范围:10MS到2H_46M_30S;此时,时基是自动选择的,原则是根据定时时间选择能满足定时范围要求的最小时基。设置定时时间*设置定时时间 定时器的运行时间设定值由TV端输入,该值可以是常数(如:S5T#45S);也可以通过扫描输入字(如:拨轮开关IW2)来获得,或者通过处理输出字、标志字或数据字来确定。时间设定值的格式 以常数形式输入定时时间,只需在字符串“S5T#”后以小时(h)、分钟(m)、秒(s)或毫秒(ms)为单位写入时间值即可。例如,定时时间为2.5秒,则在TV端输入“S5T#2s_500ms”。而若以其它其它形式提供定时时间,就必须了解定时器字的数据格式。定时器字的长度是16位,从该字的右端起,头12位是时间值的BCD码,每四位表示一位十进制数,其表达范围为(0~999);随后的两位用来表示时间的基准(0~3),最后两位在设定时值时没有意义。时间基准定义一个单位代表的时间间隔。当时间用常数(S5T#...)表示时,时间基准自动由系统自动分配。如果时间由拨码按钮或通过数据接口指定,用户必须指定时间基准。启动定时器 当定时器启动时,定时时间值被传送到定时器的系统数据区中,一旦定时器启动,时间值便一个单位一个单位地递减,直到零为止,以什么单位递减则要根据所设定的时间基值。 当定时器启动时,累加器1低字的内容被当作定时时间装入定时字中。这一过程是由操作系统控制自动完成的,用户只需给累加器1装入不同的数值,即可设置需要的定时时间。为累加器1装入数值的指令很多,为避免格式错误,推荐采用下述直观的句法: LW#16#wxyz其中,w,x,y,z均为十进制数。w为时基,取值为0,1,2或3,分别表示时基为10ms,l00ms,1s或10s;xyz为定时值,取值范围为1~999。也可直接使用S5中的时间表示法装入定时数值,例如: LS5T#aH_bbM_ccS_dddMS其中,a:小时,bb:分钟,cc:秒,ddd:毫秒,范围:1MS到2H_46M_308;此时,时基是自动选择的,原则是根据定时时间选择能满足定时范围要求的最小时基。 S7-300提供了5种形式的定时器: S_PULSE脉冲定时器SP。 S_PEXT扩展脉冲定时器SE。 S_ODT接通延时定时器SD。 S_ODTS保持型接通延时定时器SS。 S_OFFDT关断延时定时器SF。方块图指令表示定时器 参数 数据类型 存储区 说明 N0. TIMER T 定时器标识号,与CPU有关 S BOOL I,Q,M,D,L 启动输入 TV S5TIME I,Q,M,D,L 设定定时间(S5TIME格式) R BOOL I,Q,M,D,L 复位输入 Q BOOL I,Q,M,D,L 定时器状态输出 BI WORD I,Q,M,D,L 剩余时间输出(二进制格式) BCD WORD I,Q,M,D,L 剩余时间输出(BCD码格式)定时器当前的时间值DBW1LT10TDBW1MW2LT10TMW2QW4LT10TQW4 二进制定时器字DBW5LCT10TDBW5MW6LCT10TMW6QW6LCT10TQW6 十进制定时器字13129900时基时间值LCT10102101100时间值131237411BinBCD定时器字累加器*定时器字 CPU中为定时器保留的一个特殊存储器区。这个区为每个定时器地址保留一个16-位字,用来存储当前的时间值。定时器字的位0到9包含用二进制码表示的时间值。当定时器刷新时,时间值由时间基准定义的时间间隔决定。定时器字中的时间值能够被装入累加器,从累加器可再传输到数据块(数据字)或标志存储区(标志字)中,从而进一步处理。根据需求,定时器字还可传输到过程输出映像(QW)以便显示时间。以二进制形式 在PLC的系统数据区中,时间值是以二进制形式存储在定时器字中。当以二进装载时间值 制形式向累加器中装载时间值时,时基值不装载到累加器中,而是以“0”值填充在相应的位上。以BCD码形式 以二进制形式存储在定时器字中的时间值也可以以BCD码的形式向累加器中装装载时间值 载,这时,时基值也以BCD码的形式随同BDC码的时间值一同被装载。以BCD码存储在累加器中的时间值可作进一步处理,比如:传输到数码管上显示出来。扫描定时器触点 PLC的操作系统检测定时器的触点状态是“0”还是“1”,并将该信息存储在一个状态位(Tn,n为定时器号码)中,在程序中用ATn语句来扫描触点状态。注意 如果定时器的触点在一个周期内被多次扫描则可能会得到不同的扫描结果,对程序的正确执行不利。解决方法是,将定时器的触点输出(Q)的信号状态赋值给标志位,该标志位在程序中可被反复扫描。定时器线圈指令: A I0.0 L S5T#5s SD T4 A T4 = Q4.0 A I0.1 R T4所有的定时器可以用简单的位指令启动,称定时器线圈。-启动条件在“S”、输入指定时间值-定时器的触点响应--信号输出Q-复位条件在“R”输入 不能检查当前时间值; 允许定时器再起动的FR指令仅在语句表中使用*位指令 所有的定时器也可以用简单的位指令启动,这种方法和前面讨论的定时器功能的相似处和不同之处如下: • 相似处: - 启动条件在“S”输入 - 指定时间值 - 复位条件在“R”输入 -信号响应在输出“Q” • 不同(对LAD和FBD): - 不能检查当前时间值(没有BI和BCD输出)。定时器线圈指令LADSTL注意:对定时器编程时,启动定时器的三条语句必不可少,而复位和扫描定时器输出的操作则可根据任务的要求取舍。用STL形式编写的程序要转换为FBD/LAD的形式,则每一个未赋值的输入和输出必须用NOP0语句(空操作)来编写。1.S_PULSE脉冲定时器(SP):AI0.7LS5T#35sSPT1AI0.5RT1LT1TMW10LCT1TMW16AT1=Q4.5*启动 当“0”到“1”的信号变化作用在启动输入端(S)时,定时器启动,TV端用于设置定时时间。用STL编程时,紧跟在对启动条件的扫描操作(如:AI0.7)之后,为设置定时时间(如:LS5T#35S)和启动定时器(如:SDT4)复位 作用在复位输入端(R)的信号(“1”有效)用于停止定时器。当前时间被置为“0”,定时器的触点输出端(Q)被复位。时间值输出 定时器的实际时间值可分别从两个数字输出端BI(二进制数)和BCD(十进制数)上读出。触点输出 定时器的触点输出端(Q)的信号状态(“0”或“1”),取决于定时器的种类及当前的工作状态。注意 对定时器编程时,启动定时器的三条语句必不可少,而复位和扫描定时器输出的操作则可根据任务的要求取舍。用STL形式编写的程序要转换为FBD/LAD的形式,则每一个未赋值的输入和输出必须用NOP0语句(空操作)来编写。 脉冲(SP)定时器的定时器线圈指令:①②③④*如果RLO有正跳沿,则扩展定时器启动指令,以设定的时间值启动指定的定时器。如果RLO变为0,定时器仍保持运行,直到达到定时器的设定值时才被复位。在定时器运行期间,其动合触点闭合。当定时时间到时,动合触点断开。AI1.2FRT0//允许定时器T0再起动AI0.0LS5T#2s//预置值2s送入累加器1SPT0//启动T0AI0.1RT0//复位T0AT0//检查T0的信号状态=Q4.0//T0的定时器位为1时,Q4.0的线圈通电※定时器再启动:该指令可以用于所有的定时器,但是它不是起动定时器定时的必要条件。仅在语句表中使用的FR指令允许定时器再起动,即控制FR的RLO(I1.2)由0变为1状态时,重新装入定时时间,定时器又从预置值开始定时。再起动只是在定时器的起动条件满足(图中的I0.0=1)时起作用。该指令可以用于所有的定时器,但是它不是起动定时器定时的必要条件。※定时器再启动:*2.S_PEXT扩展脉冲定时器(SE): A I0.7 L S5T#35s SE T2 A I0.5 R T2 L T2 T MW10 LC T2 T MW16 A T2 = Q4.5*启动 当S输入端的RLO从“0”变到“1”时,定时器启动。输出Q被置位“1”。 即使S输入变到“0”,输出Q仍保持“1”。 当定时器正在运行时,如果启动输入信号从“0”变到“1”,定时器被再次启动。复位 在如下情况下输出“Q”被复位:• 定时器时间到,或 • 复位输入“R”有信号“1”。①②③④⑤ 扩展脉冲(SE)定时器的定时器线圈指令:*如果RLO有正跳沿,则扩展定时器启动指令,以设定的时间值启动指定的定时器。如果RLO变为0,定时器仍保持运行,直到达到定时器的设定值时才被复位。在定时器运行期间,其动合触点闭合。当定时时间到时,动合触点断开。3.S_ODT接通延时定时器(SD): A I0.7 L S5T#35s SD T3 A I0.5 R T3 L T3 T MW10 LC T3 T MW16 A T3 = Q4.5*启动 当S输入端的RLO从“0”变到“1”时,定时器启动。输出Q被置位“1”。 即使S输入变到“0”,输出Q仍保持“1”。 当定时器正在运行时,如果启动输入信号从“0”变到“1”,定时器被再次启动。复位 在如下情况下输出“Q”被复位:• 定时器时间到,或 • 复位输入“R”有信号“1”。①②③④ 接通延时(SD)定时器的定时器线圈指令:*如果RLO有正跳沿,则接通延时定时器启动指令,以设定的时间值启动指定的定时器。达到设定时间后,定时器的动合触点闭合并保持,直到RLO变为0时,定时器被复位。如果定时器运行时间(RLO为1)少于定时器的时间设定植,则当RLO由1变化到0时,定时器也被复位。 A I0.7 L S5T#35s SS T4 A I0.5 R T4 L T4 T MW10 LC T4 T MW16 A T4 = Q4.54.S_ODTS保持型接通延时定时器(SS):*启动 当定时器的“S”输入端的RLO从“0”变到“1”时,定时器启动。即使定时过程中出现输入S=0,定时器从输入TV设定的时间开始定时。 当定时器运行时,如果启动输入再次从“0”变到“1”定时器重新开始。复位 当复位输入R的RLO=1时,就清除定时器中的定时值,而且输出Q复位。位输出 当定时器时间到达而且没有错误,输出“Q”的信号变为“1”,和输入端S的信号无关。 ①②③④⑤ 保持型接通延时(SS)定时器的定时器线圈指令:*如果RLO有正跳沿,则保持型接通延时定时器启动指令,以设定的时间值启动指定的定时器,即使RLO又变为0,定时器仍保持运行。达到设定时间后,定时器的动合触点闭合并保持。如果RLO再来一个正跳沿,定时器重新启动。只有用复位指令才能使定时器复位。5.S_OFFDT关断延时定时器(SF) A I0.7 L S5T#35s SF T5 A I0.5 R T5 L T5 T MW10 LC T5 T MW16 A T5 = Q4.5*启动 当定时器的S输入端的RLO从“1”变到“0”时,定时器启动。当时间到达时,输出信号Q=0。 当定时器运行时,如果输入S的状态从“0”变到“1”,定时器停止运行。下次当S从“1”变到“0”时,它重新启动。复位 当复位输入R的RLO=1时,就清除定时器中的定时值,而且输出Q复位。 如果两个输入(S和R)都有信号“1”,不置位输出Q,直到优先级高的复位取消为止。位输出 当输入端S处的RLO从“0”变到“1”时,输出Q=1,如果输入S取消,输出Q继续保持“1”,直到设定的时间到达。①②③④⑤ 断开延时(SF)定时器的定时器线圈指令: A I0.0 L S5T#20s SF T5 A I0.1 R T5 A T5 = Q4.5*如果RLO有负跳沿,则关断延时定时器启动指令,以设定的时间值启动指定的定时器。当RLO为1或定时器运行时,其动合触点闭合。当定时时间到后,动合触点断开。如果定时器运行时间(RLO为1)少于定时器的时间设定植,则当RLO由0变到1时,定时器被复位。一直到RLO从1变为0前,定时器不再启动。对于以上5种不同形式的定时器指令,一般的选择原则是:1.如果要求输出信号为1的时间等于定时器的设定时间,且要求输入与输出信号状态一致时,可选择脉冲定时器SP。2.如果要求输出信号为1的时间等于定时器的设定时间,但不要求输入与输出信号状态一致,不考虑输入信号为1的时间长短,可选择扩展脉冲定时器SE。3.如果要求设定时间到且输入信号仍为1时,输出信号才从0变到1,可选择接通延时定时器SD。4.如果要求设定时间到时,输出信号才从0变到1,而不考虑输入信号此时的状态及为1的时间长短,可选择保持型接通延时定时器SS。5.如果要求输入信号从0变化到1时,输出信号也从0变化到1,当输入信号从1变化到0时才开始延时,延时时间到时输出信号才从1变化到0,可选择关断延时定时器SF。【例】扩展脉冲定时器应用——电动机延时自动关闭控制。控制要求:按动起动按钮S1(I0.0),电动机M(Q4.0)立即起动,延时5分钟以后自动关闭。起动后按动停止按钮S2(I0.1),电动机立即停机。p121定时器应用举例:定时器应用举例:例:用定时器设计延时接通/断开电路 【例】按下启动按钮I0.0,Q4.0控制电机M1运行1min,然后自动断电,同时Q4.1控制电机M2运行50s后断电。用扩展脉冲定时器和延时断开定时器设计电路 输入:I0.0 输出:Q4.0,Q4.1 参数:60s,50s①②【例】闪烁控制程序(脉冲发生器)工艺要求:当按钮S1(I0.0)按下时,输出指示灯H1(Q4.0)以灭2s,亮1s规律交替进行。接通延时定时器和脉冲定时器应用——用定时器构成一脉冲发生器,当满足一定条件时,能够输出一定频率和一定占空比的脉冲信号。指示灯点亮和熄灭的时间不同,所以需要两个定时器T1和T2,T1的时间设定值为2s,T2的时间设定值为1s。(使用接通延时定时器)用定时器构成一个脉冲发生器,使其产生如图所示的脉冲时序,脉冲信号的周期为3s,脉冲宽度为1s。在程序中,设置用定时器T0输出Q4.0为1的时间(脉冲宽度1s),Q4.0为0的时间由定时器T2设置为2s。当输入I0.0为1时,输出Q4.0为1或为0来交替进行。网络1A I0.0AN T1L S5T#2SSD T2网络2A T2L S5T#1SSD T1A T2= Q4.0 应用“接通延时定时器(SD)”线圈指令编程:例:某信号灯HL,当开关S1接通后,就以灭1s,亮2s的频率不断闪烁。编程元件地址分配:输入--开关S1,编程地址为I0.0。输出--信号灯HL,编程地址为Q4.0。补充:时钟存储器(ClockMemory)在S7系列PLC的CPU的位存储器M中,可以任意指定一个字节,如MB100,作为时钟脉冲存储器,当PLC运行时,MB100的各个位,能周期性地改变二进制值,即产生不同频率(或周期)的时钟脉冲。硬件组态中双击CPU所在的槽,弹出属性对话框,选中“周期/时钟存储器”,勾选“时钟存储器”,并输入字节号。 位 7 6 5 4 3 2 1 0 时钟脉冲周期(s) 2 1.5 1 0.8 0.5 0.4 0.2 0.1 时钟脉冲频率(Hz) 0.5 0.625 1 1.25 2 2.5 5 10访问CPU的时钟存储器要使用该功能,在硬件配置时需要设置CPU的属性,其中有一个选项为ClockMemory,选中选择框就可激活该功能。【例6-7】【例】接通延时定时器的应用——电动机顺序起停控制。控制要求:传输线由两个传送带组成,按物流要求,当按动起动按钮S1时,皮带电机Motor_2首先起动,延时5s后,皮带电机Motor_1自动起动;如果按动停止按钮S2,则Motor_1立即停机,延时10s后,Motor_2自动停机。【例4】端子接线图I/O分配表例:定时器扩展在S7-300中,单个定时器的最大计时范围是9990s(2H_46M_30S),如果超过这个范围,可以采用两个(或多个)定时器级连的方法来扩展计时范围。现在考虑一个要求延时时间为5个小时的控制任务。T1的时间设定值=2H_20M,T2的时间设定值=2H_40M,则T1+T2=5H。例5:顺序循环执行程序当X0接通,灯Y0亮;经5s后,灯Y0灭,灯Y1亮;经5s后,灯Y1灭,灯Y2亮,再过5s后,灯Y2灭,灯Y0亮,如此顺序循环。 【例】脉冲定时器应用:优先抢答器设计。参赛者要抢答主持人所提问时,需抢先按下桌上的按钮;指示灯亮后需待主持人按下“复位”键R后才熄灯;对初中班学生照顾,只要按下SB11和SB12中任一个按钮灯HL1都亮;对高三班学生限制,只有SB31和SB32都按下时灯HL3才亮;若在主持人按下“开始”按钮S后10s内有抢答按钮压下,则电磁铁YC得电,使彩球摇动,以示竞赛者得到一次幸运的机会;如果定时到仍未有抢答,则禁止继续抢答。端子接线图【例】I/O地址分配表控制程序:建立允许抢答和禁止抢答标志设置抢答定时器初中组抢答控制高一组抢答控制高三组抢答控制回顾:定时器 用于实现或监控时间序列。定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。在S7-300中,定时器区为512B,因此最多允许使用256个定时器。 当定时器启动时,系统自动将累加器1低字的内容被当作定时时间装入定时字中。方块图指令表示定时器 参数 数据类型 存储区 说明 N0. TIMER T 定时器标识号,与CPU有关 S BOOL I,Q,M,D,L 启动输入 TV S5TIME I,Q,M,D,L 设定定时间(S5TIME格式) R BOOL I,Q,M,D,L 复位输入 Q BOOL I,Q,M,D,L 定时器状态输出 BI WORD I,Q,M,D,L 剩余时间输出(二进制格式) BCD WORD I,Q,M,D,L 剩余时间输出(BCD码格式)定时器线圈指令回顾:二、计数器指令 S7中的计数器用于:对RLO正跳沿计数。 计数器由表示当前计数值的字和计数器状态位组成。*S7中有三种计数器加计数器(S_CU)减计数器(S_CD)可逆计数器(S_CUD)CUCDRQ计数543210 计数器:功能图计数器值127 计数器字在S7-300的CPU的存储器中留有一块区域用于存储计数器的计数值,每个计数器需要2Byte,计数器字中的第0~11位表示计数值(BCD码格式),计数范围是0~999。不同的CPU模块,用于计数器的存储区域也不同,最多允许使用64~512个计数器。*计数器组成在CPU中保留一块存储区作为计数器计数值存储区,每个计数器占用两个字节,称为计数器字。计数器字中的第0~11位表示计数值(二进制格式),计数范围是0~999。当计数值达到上限999时,累加停止。计数值到达下限0时,将不再减小。对计数器进行置数(设置初始值)操作时,累加器1低字中的内容被装入计数器字。计数器的计数值,将以此为初值增加或减小。方块图指令表示计数器*使用复位指令R可复位计数器。计数器被复位后,其计数值被清0,计数器输出状态也为0(常开触点断开)。计数器的各项操作应按下列顺序(编程顺序)进行:加计数、减计数、计数器置数、计数器复位、使用计数器输出状态信号和读取当前计数值。 计数器的位状态与计数器值的关系如下表所示:计数器指令的线圈表示形式计数器线圈指令:-设定条件在输入“SC”-“CU”输入处RLO变化,加计数-“CD”输入处RLO变化,减计数-复位条件在“R”输入 不能检查计数器当前值(没有BI和BCD输出)。 没有图形表示中的位输出Q。*位指令 所有的定时器也可以用简单的位指令启动,这种方法和前面讨论的定时器功能的相似处和不同之处如下: • 相似处: - 启动条件在“S”输入 - 指定时间值 - 复位条件在“R”输入 -信号响应在输出“Q” • 不同(对LAD和FBD): - 不能检查当前时间值(没有BI和BCD输出)。1.加计数器(S_CU):说明: 如果输入S有上升沿,则S_CU(加计数器)预置为输入PV的值。 如果输入R为“1”,则计数器复位,并将计数值设置为零。 如果输入CU的信号状态从“0”切换为“1”,并且计数器的值小于“999”,则计数器的值增1。 如果计数值大于零(“0”),则输出Q的信号状态为1”。示例:加计数器(S_CU):如果I0.2从“0”变为“1”,则计数器预设为#6的值。如果I0.0的信号状态从“0”改变为“1”,则计数器C10的值将增加1(当C10的值等于“999”时除外)。如果C10不等于零,则Q5.0为“1”。计数器的各项操作应按下列顺序(编程顺序)进行:加计数、减计数、计数器置数、计数器复位、使用计数器输出状态信号和读取当前计数值。AI0.0//在I0.0的上升沿CUC10//加计数器C10的当前值加1AI0.2//在I0.2的上升沿LC#6//计数器的预置值6被装入累加器的低字SC10//将预置值装入计数器C10AI0.3//如果I0.3为1RC10//复位C10LC10//将C10的二进制计数当前值装入累加器1TMW0//将累加器1的内容传送到MW0LCC10//将C10的BCD计数当前值装入累加器1TMW8//将累加器1的内容传送到MW8AC10//如果C10的当前值非0=Q5.0//Q5.0为1状态计数器的各项操作应按下列顺序(编程顺序)进行:加计数、减计数、计数器置数、计数器复位、使用计数器输出状态信号和读取当前计数值。计数值大于0时计数器位(即输出Q)为1;计数值为0时,计数器位亦为0。设置计数值线圈SC(SetCounterValue)用来设置计数值,在RLO的上升沿预置值被送入指定的计数器。标有CU的线圈称加计数器线圈。在I0.0的上升沿,如果计数值小于999,计数值加1。复位输入I0.3为1时,计数器被复位,计数值被清0。加计数器(S_CU)指令的线圈表示形式:2.减计数器(S_CD):说明: 如果输入S有上升沿,则S_CD(减计数器)预置为输入PV的值。 如果输入R为“1”,则计数器复位,并将计数值设置为零。 如果输入CD的信号状态从“0”切换为“1”,并且计数器的值大于“0”,则计数器的值减1。 如果计数值大于零(“0”),则输出Q的信号状态为“1”。如果I0.5从“0”变为“1”,则计数器预设为#5的值。如果I0.4的信号状态从“0”改变为“1”,则计数器C11的值将减1。如果C11不等于零,则Q5.1为“1”。 如果输入R为“1”,则计数器复位,并将计数值设置为零。减计数器(S_CU)指令的线圈表示形式:计数值大于0时计数器位(即输出Q)为1;计数值为0时,计数器位亦为0。设置计数值线圈SC(SetCounterValue)用来设置计数值,在RLO的上升沿预置值被送入指定的计数器。标有CD的线圈称加计数器线圈。在I0.4的上升沿,如果计数值大于0,计数值减1。复位输入I0.6为1时,计数器被复位,计数值被清0。3.加/减计数器(S_CUD):说明 如果输入S有上升沿,S_CUD(双向计数器)预置为输入PV的值。 如果输入R为1,则计数器复位,并将计数值设置为零。 如果输入CU的信号状态从“0”切换为“1”,并且计数器的值小于“999”,则计数器的值增1。 如果输入CD有上升沿,并且计数器的值大于“0”,则计数器的值减1。 如果两个计数输入都有上升沿,则执行两个指令,并且计数值保持不变。 如果计数值大于等于零(“0”),则输出Q的信号状态为“1”。*计数器值 在系统数据存储器中为每个计数器保留了一个16-位字,它用来以二进制格式存储计数器的值(0...999)。加计数 当“CU”输入端的RLO从“0”变到“1”时,计数器的当前值加1(最大值=999).减计数 当“CD”输入端的RLO从“0”变到“1”时,计数器的当前值减1(最小值=0).置数计数器 当“S”输入端RLO从“0”变到“1”时,计数器就设定为“PV”输入的值。清零计数器 当“R”输入端RLO=1,计数器的值置为0。如果复位条件满足,计数器不能置数,也不能计数。PV 在“PV”输入端,用BCD码指定设定值(0...999): • 用常数(C#...) • 通过数据接口用BCD格式CV/CV_BCD 计数器值用二进制数或BCD数装入累加器,再传递到其他地址。Q 计数器状态在输出“Q”检查: • 计数值=0 -> Q=0 • 计数值 ><0 -> Q=1计数器类型 • S_CU =加计数器(仅加计数) • S_CD =减计数器(仅减计数) • S_CUD =加/减计数器如果I0.3从“0”变为“1”,则计数器预设为MW10的值。如果I0.4的信号状态从“0”改变为“1”,则计数器C5的值将增加1-当C10的值等于“999”时除外。如果I0.5从“0”改变为“1”,则C5减1-但当C10的值为“0”时除外。如果C5不等于零,则Q4.3为“1”。示例:例1:用计数器定时当定时器不够用时,可以用计数器扩展为定时器.程序中使用了CPU的时钟存储器,设置MB100为时钟存储器,则M100.0的变化周期为0.1s。在程序中,如果I0.1的正跳沿为减计数器C0置数.若I0.0为1,则C0每0.1s减12s(20*0.1s=2s)。当C0减到0后,输出Q0.0为1。计数器应用举例:例2:定时范围的扩展①(7200*2*999)/3600=3996h当输入I0.0接通时,定时器T0经过10s时间延时后,其动合触点T0闭合,计数器C0开始递减运算,与此同时T0的动断触点是断开的,造成T0线圈断电,使T0的动合触点断开,C0仅计数一次,而后T0线圈又接通,如此循环.当C0经过10s*10=100s时间后,计数器C0输出为0,输出Q0.0接通,具有长时间延时的功能.例3:定时范围的扩展②(长时间延时程序)例4:计数器扩展在S7-300中,单个计数器的最大计数值是999,如果要求大于999的计数,就要进行扩展。结合应用传送指令和比较指令(在后面的内容介绍),将两个计数器级连,最大计数值可达999*2,n个计数器级连,最大计数值可达999n。两个计数器级连扩展的程序补充时钟存储器(ClockMemory)在S7系列PLC的CPU的位存储器M中,可以任意指定一个字节,如MB100,作为时钟脉冲存储器,当PLC运行时,MB100的各个位,能周期性地改变二进制值,即产生不同频率(或周期)的时钟脉冲。 位 7 6 5 4 3 2 1 0 时钟脉冲周期(s) 2 1.5 1 0.8 0.5 0.4 0.2 0.1 时钟脉冲频率(Hz) 0.5 0.625 1 1.25 2 2.5 5 10访问CPU的时钟存储器要使用该功能,在硬件配置时需要设置CPU的属性,其中有一个选项为ClockMemory,选中选择框就可激活该功能。【例4-11】6.3数据处理与算数运算指令*布尔量/数值处理 事实上用只处理二进制数据来识别真逻辑控制系统。 今天的控制计算机的性能,在数据处理、质量控制领域、以及其他、已经增加了使用PLC数值数据处理的重要性。 数值过程变量可以在所有开环控制领域被发现–例如在所连接的过程操作和监视系统设备或在现场设备的控制中。操作和监视 过程监视的目的是迅速地、简要地和清楚地提供给操作员关于生产机器或系统的本分钟的信息,以及干预和控制并影响过程的机会。 在过去非常简单,就是“哑的”输入和输出设备,例如7段显示和拨轮按钮用于显示和输入数值,今天“智能”操作和监视设备经常连接到PLC。现场设备 今天现场设备要求过程数据既过程的控制通过现场总线系统通过数值变量直接提供。现场设备的连接,例如驱动或称重系统,使用模拟输入和输出模板变得越来越过时了。格式 根据连接的设备类型,在设备和PLC之间用于传输数据的数据编码的不同的数据格式,也要在PLC中存储和处理。6S7-300PLC指令系统及编程 6.3数据处理与算数运算指令(一) S7-300PLC可以按字节(B)、字(W)、双字(DW)访问存储器 数据处理与算数运算指令包括:数据装入与传送指令、数据类型转换指令、比较指令、算数运算指令、移位指令、累加器操作指令和地址寄存器加指令**一、装入和传送指令装入指令(L)和传送指令(T),可以对输入或输出模块与存储区之间的信息交换进行编程(输入与存储器、输出与存储器、存储器与存储器之间交换数据)。 对累加器1的装入指令 对累加器1的传送指令 状态字与累加器1之间的装入和传送指令 与地址寄存器有关的装入和传送指令 P190表6-141.对累加器1的装入和传送指令T指令可以将累加器1的内容复制到被寻址的操作数(目的存储区中),累加器的内容保持不变,所复制的字节数取决于目标地址的类型(字节、字或双字),指令格式如下:T 操作数L指令可以将被寻址的操作数的内容(字节、字或双字)送入累加器1中,而累加器原有的数据移入累加器2中,累加器2中原有的内容被覆盖。指令格式如下:L 操作数(1)L(装入)(2)T(传送)::LW#16#CAFELW#16#AFFE:::ACCU1内容程序XXXXXXXXACCU2内容*ACCU1 ACCU1是CPU中的中央寄存器,当执行装入指令时,要装入的值被写入ACCU1;对于传输指令,要传输的值从ACCU1读出。数学功能、移位和循环移位的结果也放在ACCU1。ACCU2 当执行装载指令时,ACCU1中的旧值先移到ACCU2,在新值写入ACCU1前它先被清零。ACCU2也用于比较操作,数字逻辑操作、数学和移位操作。这些操作在后面详细介绍。装入LMB0程序TQD4QD4QW4QB4传送LMW0LMD0TQW4TQB4*概述 累加器是CPU中的辅助存储器,它们用于不同地址之间数据交换、比较和数学运算操作。S7-300有两个32位的累加器,S7-400有四个32位的累加器。装载 装载指令把指定字节、字或双字中的内容装入ACCU1。传递 当传递指令执行时,ACCU1中的内容保持不变。相同的信息可以传到不同的目的地址。如果仅传递一个字节,只使用右边的8位(见图)。RLO 在LAD和FBD中,可以使用MOVE的允许输入(EN)把装载和传递操作和RLO联系起来。 在STL中,总是执行装入和传递操作,而和RLO无关。但是,利用条件跳转指令来执行和RLO有关的装入和传递功能。 装入(L)和传送(T)指令用于存储区之间或存储区与过程输入、输出之间交换数据。CPU执行这些指令不受逻辑操作结果RLO的影响。L、T指令的执行与状态位无关,也不会影响到状态位。 L和T指令可对字节(8位)、字(16位)、双字(32位)数据进行操作,当数据长度小于32位时,数据在累加器右对齐(低位对齐),其余各位填0。 装入和传送操作有四种寻址方式,即立即寻址、直接寻址、存储器间接寻址、寄存器间接寻址。1.对累加器1的装入和传送指令示例:【立即寻址】装入指令L对常数(8位、16位、32位)的寻址及对ASCII字符的寻址方式。 L+5//将立即数+5装入累加器1中 LW#16#ABCD//将16位的16进制常数ABCD装入累加器1中 L2#0000111100001111//将16位的二进制常数0000-1111-0000-1111装入累加器1中 LS5T#6s//将1个16位S5TIME定时值6s装入累加器1中 LC#200//将1个16位计数值200装入累加器1中示例:【直接寻址】L和T指令可以对各存储区内的字节(B)、字(W)、双字(D)进行直接寻址。直接寻址在指令中直接给出存储器或寄存器的区域、长度和位置。LMB10//将8位存储器字节装入累加器1最低的字节ACCU1-LLLDIW15//将16位背景数据字装入累加器1的低字ACCU1-LLLD22//将32位局域数据双字装入累加器1TQB10//将ACCU1-LL中的数据传送到过程映像输出字节QB10TMW14//将ACCU1-L中的数据传送到存储器字MW14TDBD2//将ACCU1中的数据传送到数据双字DBD2示例:【间接寻址】L和T指令可以对各存储区内的字节(B)、字(W)、双字(D)进行间接寻址。间接寻址有存储器间接寻址和寄存器间接寻址。存储器间接寻址LQB[DBD10]//将输出字节装入累加器1,输出字节的地址指针在数据双字DBD10中//如果DBD10的值为2#00000000000000000000000000100000,装入的是QB4LIB[DID4]//将由数据双字DID4指出的输入字节装入累加器1。若:DID4的值为2#00000000000000000000000001010000,则是对IB10进行装入操作。区内间接寻址:LP#5.0//将间接寻址的指针装入累加器1TAR1//将累加器1中的内容送到地址寄存器1AM[AR1,P#2.3]//AR1中的P#5.0加偏移量P#2.3,实际上是对M7.3进行操作=Q[AR1,P#0.2]//逻辑运算的结果送Q5.2LDBW[AR1,P#18.0]//将DBW23装入累加器1寄存器间接寻址区域间间接寻址:LP#M6.0//将存储器位M6.0的双字指针装入累加器1TAR1//将累加器1中的内容送到地址寄存器1TW[AR1,P#50.0]//将累加器1的内容传送到存储器字MW56P#M6.0对应的二进制数为2#10000011000000000000000000110000因为地址指针P#M6.0中已经包含有区域信息,使用间接寻址的指令TW[AR1,P#50]中没有必要再用地址标识符M。2.读取或传送状态字指令      读取状态字指令LSTW//将状态字中0~8位装入累加器1中,累加器1中的9~31位被清0。 传送状态字指令 TSTW //将累加器1中的内容传送到状态字中。LAR1P#I0.0//将输入位I0.0的地址指针装入AR1LAR2P#0.0//将二进制数2#00000000000000000000000000000000装入AR2LAR1P#Start//将符号名为Start的存储器的地址指针装入AR1LAR1AR2 //将AR2的内容装入AR1LAR1DBD20//将数据双字DBD20的内容装入AR1TAR1AR2 //将ARl的内容传送至AR2TAR2 //将AR2的内容传送至累加器1TAR1MD20 //将ARl的内容传送至存储器双字MD20CAR //交换AR1和AR2的内容3.地址寄存器装入和传送指令 对于地址寄存器,可以不经过累加器l而直接将操作数装入或传送,或将两个地址寄存器的内容直接交换。4.装入剩余时间值或当前计数值LT1//将定时器T1中二进制格式的时间值直接装入累加器1的低字中LCT1//将定时器T1中的时间值和时基以BCD码格式装入累加器1的低字中LC1//将计数器C1中二进制格式的计数值直接装入累加器1的低字中LCC1//将计数器C1中的计数值以BCD码格式装入累加器1的低字中使用LC指令将指定定时器字中当前时间值和时基以BCD码(0~999)格式装入到累加器1中,或将指定计数器的当前计数值以BCD码(0~999)格式装入到累加器1中。指令格式如下:LC <定时器/计数器>*定时器字中的剩余时间值以二进制格式保存,用L指令从定时器字中读出二进制时间值装入累加器1中,称为直接装载。也可用LC指令以BCD码格式读出时间值,装入累加器1低字中,称为BCD码格式读出时间值。以BCD码格式装入时间值可以同时获得时间值和时基,时基与时间值相乘就得到定时剩余时间。同理,对当前计数值也有直接装载和以BCD码格式读出计数值之分。例如:LT1//将定时器T1中二进制格式的时间值直接装入累加器1的低字中LCT1//将定时器T1中的时间值和时基以BCD码格式装入累加器1的低字中LC1//将计数器C1中二进制格式的计数值直接装入累加器1的低字中LCC1//将计数器Cl中的计数值以BCD码格式装入累加器1的低字中定时器当前的时间值DBW1LT10TDBW1MW2LT10TMW2QW4LT10TQW4 二进制定时器字DBW5LCT10TDBW5MW6LCT10TMW6QW6LCT10TQW6 十进制定时器字13129900时基时间值LCT10102101100时间值131237411BinBCD定时器字累加器*定时器字 CPU中为定时器保留的一个特殊存储器区。这个区为每个定时器地址保留一个16-位字,用来存储当前的时间值。定时器字的位0到9包含用二进制码表示的时间值。当定时器刷新时,时间值由时间基准定义的时间间隔决定。定时器字中的时间值能够被装入累加器,从累加器可再传输到数据块(数据字)或标志存储区(标志字)中,从而进一步处理。根据需求,定时器字还可传输到过程输出映像(QW)以便显示时间。以二进制形式 在PLC的系统数据区中,时间值是以二进制形式存储在定时器字中。当以二进装载时间值 制形式向累加器中装载时间值时,时基值不装载到累加器中,而是以“0”值填充在相应的位上。以BCD码形式 以二进制形式存储在定时器字中的时间值也可以以BCD码的形式向累加器中装装载时间值 载,这时,时基值也以BCD码的形式随同BDC码的时间值一同被装载。以BCD码存储在累加器中的时间值可作进一步处理,比如:传输到数码管上显示出来。扫描定时器触点 PLC的操作系统检测定时器的触点状态是“0”还是“1”,并将该信息存储在一个状态位(Tn,n为定时器号码)中,在程序中用ATn语句来扫描触点状态。注意 如果定时器的触点在一个周期内被多次扫描则可能会得到不同的扫描结果,对程序的正确执行不利。解决方法是,将定时器的触点输出(Q)的信号状态赋值给标志位,该标志位在程序中可被反复扫描。5.MOVE指令(梯形图中的传送指令)*传送(MOVE)指令用于为变量赋值。如果允许输入端EN为1,就执行传送操作,使输出OUT等于输入IN,并使ENO为1;如果EN为0,则不进行传送操作,并使ENO为0。ENO总保持与EN相同的信号状态。用MOVE方块指令,能传送数据长度为8位、16位或32位的所有基本数据类型(包括常数)。但传送用户自定义的数据类型,如数组或结构,则必须用系统集成功能(SFC)进行。 传送(MOVE)指令用于为变量赋值。如果允许输入端EN为1,就执行传送操作,使输出OUT等于输入IN,并使ENO为1;如果EN为0,则不进行传送操作,并使ENO为0。ENO总保持与EN相同的信号状态。 用MOVE方块指令,能传送数据长度为8位、16位或32位的所有基本数据类型(包括常数)。但传送用户自定义的数据类型,如数组或结构,则必须用系统集成功能(SFC)进行。示例: 如果允许输入端EN(I0.0)为1,就执行传送操作,使输出OUT等于输入IN,并使ENO为1;如果EN(I0.0)为0,则不进行传送操作,并使ENO为0。ENO总保持与EN相同的信号状态。示例: AI0.0 JNB_001 LMW10 TDBW12 SET SAVE CLR _001:ABR =Q4.0回顾: 6S7-300PLC指令系统及编程 6.2定时器与计数器指令(二) 6.3数据处理与算数运算指令(一)**回顾: 计数器指令加计数器(S_CU)减计数器(S_CD)可逆计数器(S_CUD)回顾:回顾: 时钟存储器 6.3数据处理与算数运算指令(一) 位 7 6 5 4 3 2 1 0 时钟脉冲周期(s) 2 1.5 1 0.8 0.5 0.4 0.2 0.1 时钟脉冲频率(Hz) 0.5 0.625 1 1.25 2 2.5 5 10回顾: 数据装入与传送指令LTLAR1\LAR2TAR1\TAR2CARLCMOVE*定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基(如图3-24所示)。这12位二进制代码表示的数值范围是0~4096,实际使用范围是0~999。时基和时间值可以任意组合,以得到不同的定时分辨率和定时时间。*设置定时时间 定时器的运行时间设定值由TV端输入,该值可以是常数(如:S5T#45S);也可以通过扫描输入字(如:拨轮开关IW2)来获得,或者通过处理输出字、标志字或数据字来确定。时间设定值的格式 以常数形式输入定时时间,只需在字符串“S5T#”后以小时(h)、分钟(m)、秒(s)或毫秒(ms)为单位写入时间值即可。例如,定时时间为2.5秒,则在TV端输入“S5T#2s_500ms”。而若以其它其它形式提供定时时间,就必须了解定时器字的数据格式。定时器字的长度是16位,从该字的右端起,头12位是时间值的BCD码,每四位表示一位十进制数,其表达范围为(0~999);随后的两位用来表示时间的基准(0~3),最后两位在设定时值时没有意义。时间基准定义一个单位代表的时间间隔。当时间用常数(S5T#...)表示时,时间基准自动由系统自动分配。如果时间由拨码按钮或通过数据接口指定,用户必须指定时间基准。启动定时器 当定时器启动时,定时时间值被传送到定时器的系统数据区中,一旦定时器启动,时间值便一个单位一个单位地递减,直到零为止,以什么单位递减则要根据所设定的时间基值。 当定时器启动时,累加器1低字的内容被当作定时时间装入定时字中。这一过程是由操作系统控制自动完成的,用户只需给累加器1装入不同的数值,即可设置需要的定时时间。为累加器1装入数值的指令很多,为避免格式错误,推荐采用下述直观的句法: LW#16#wxyz其中,w,x,y,z均为十进制数。w为时基,取值为0,1,2或3,分别表示时基为10ms,l00ms,1s或10s;xyz为定时值,取值范围为1~999。也可直接使用S5中的时间表示法装入定时数值,例如: LS5T#aH_bbM_ccS_dddMS其中,a:小时,bb:分钟,cc:秒,ddd:毫秒,范围:1MS到2H_46M_308;此时,时基是自动选择的,原则是根据定时时间选择能满足定时范围要求的最小时基。*定时器字 CPU中为定时器保留的一个特殊存储器区。这个区为每个定时器地址保留一个16-位字,用来存储当前的时间值。定时器字的位0到9包含用二进制码表示的时间值。当定时器刷新时,时间值由时间基准定义的时间间隔决定。定时器字中的时间值能够被装入累加器,从累加器可再传输到数据块(数据字)或标志存储区(标志字)中,从而进一步处理。根据需求,定时器字还可传输到过程输出映像(QW)以便显示时间。以二进制形式 在PLC的系统数据区中,时间值是以二进制形式存储在定时器字中。当以二进装载时间值 制形式向累加器中装载时间值时,时基值不装载到累加器中,而是以“0”值填充在相应的位上。以BCD码形
/
本文档为【电气控制与S7-300 PLC编程技术第6章 定时器计数器指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索