(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主程序中使用沿脉冲信号。