定时器会用(定时器指令子程序会用时间)「定时器指令可以放在程序段的中间或结束处」

一、导读(1)定时器的分类在西门子S7-200SMART CPU中分别有接通延时定时器TON、保持型接通延时定时器TONR、关断延时定时器TOF三种。
但由于在 STEP 7 Micro/WIN SMART里定时器的调用总数限制在256,并且S7-200 SMART子程序多次调用时不能使用定时器;因此可以使用开始间隔时间指令(BGN_ITIME)和计算间隔时间指令CAL_ITIME两条指令,可实现对位信号的计时功能;并且可以在子程序中进行多次调用。
(2)认识时间间隔定时器图1:时间间隔定时器(左侧为开始间隔时间指令,右侧为计算间隔时间指令)①开始间隔时间指令:当指令EN端条件满足时(需要使用沿脉冲信号)捕捉EN接通的时刻,读取内置 1 毫秒计数器的当前值,并将该值存储在 OUT 中;其数据类型为DWORD。
②计算间隔时间指令:计算当前时间与 IN 端地址中提供的时间差,然后将差值存储在 OUT 中;其数据类型亦为DWORD。
双字毫秒值的最大计时间隔为2³²或 49.7 天。
根据 BGN_ITIM 指令的执行时间,CAL_CITIM 指令会自动处理在最大间隔内发生的一毫秒定时器翻转。
二、定时器应用接下来我们通过一个简单的应用程序来充分理解时间间隔指令;如图2所示。
当程序段1中BGN_ITIM指令的EN导通一个扫描周期时,系统将会读取该扫描周期内接通的具体时间,存放在OUT地址VD0中。
同时程序段2中 CAL_CITIM指令会计算OUT中地址VD4和IN端地址VD0的差值,从而得到EN端接通的实际时间,并且该时间单位为毫秒。
图2:LAD控制图三、定时器在子程序中的应用在很多实际应用中会建立子程序用于多次调用,并且会用到定时器、计数器等指令。
但由于200SMART系列PLC的定时器不能用于子程序的多次调用,此时就可以用到时间间隔指令了;具体操作我们可以参考以下示例程序。
(1) 打开STEP 7 Micro/WIN SMART软件创建一个SBR_0的子程序,在子程序变量表中,建立变量,如图3所示。
图3:子程序变量表(2) 在子程序程序编辑区调用BGN_ITIM 指令和CAL_CITIM 指令,如图4所示。
注意,在子程序中不能使用沿脉冲信号,因此需要在MAIN主程序中使用沿脉冲信号。
图4:子程序(3) 选择MAIN主程序,打开项目树中的“调用子程序”将建好的子程序SBR_0拖至MAIN主程序中,并给各形式参数分配实参,并且可以实现多次调用;执行不同的条件,便可以实现对应的时间记录如图5所示。
图5:MAIN主程序该程序实现的功能是:

定时器会用(定时器指令子程序会用时间)

程序段1:V20.0 从接通到断开这一过程的计时,计时结果(单位:毫秒)在VD4 中查看。
程序段2:V20.1 从接通到断开这一过程的计时,计时结果(单位:毫秒)在VD12 中查看。
四、结语时间间隔指令实际应用比较少,通过子程序进行时间的记录,采用时间间隔指令是其中一种方法,在使用该方法时,需要注意两点:一是在BGN_ITIM 指令的EN端需要使用脉脉冲信号触发,而在子程序中又不能使用沿脉冲信号,因此在主程序对该形式参数赋实参时,务必加沿脉冲指令,否则CAL_CITIM指令OUT将没有值。
二是CAL_CITIM指令OUT地址为DWORD数据类型,并且单位为毫秒,需要进行二次运算后才是我们实际需要的运行时间。
(技成培训网原创,作者:眭相建,未经授权不得转载,违者必究)最后,小编给大家一个惊喜。





西门子最经典的案例编程源程序,送给各位,速速领取。

117个三菱PLC例程内容过多,仅展示部分777个西门子PLC例程内容过多,仅展示部分29例PLC经典编程案例内容过多,仅展示部分

联系我们

在线咨询:点击这里给我发消息