免费会员
参考价:
起订量:
具体成交价以合同协议为准
免费会员
1756-IF8H 供应
1756-IF8H 供应
在现代工业现场控制中,PLC作为控制系统的重要组成部分,起着不可替代的作用。现代PLC的功能不仅局限于简单的逻辑运算,而且具备了定时、计数、数值计算、中断处理、网络配置等多种强大的功能,使之应用于工业现场时更能发挥其作用。作为PLC重要功能之一的定时,在PLC程序中,可以进行时序构造、等待响应、人为制造中断、产生时间脉冲等多种应用,是PLC编程中*的重要手段。在PLC编程中构造定时器常用的方法是使用PLC内部的计时器资源,另外还可以利用其扫描周期和周期性的中断来构造定时器,下面将以上三种方法进行介绍。一. 计时器定时
这种方式是应用普遍也是便捷的方式,广泛地应用于PLC程序之中。各种厂家及型号的PLC,在其软件内部都提供有限的计时器资源。当条件满足时,计时器启动,根据计时器的类型及所定时间的长度执行。以SIEMENS公司的S7-400系列PLC为例,其提供的计时器(TIMER)资源类型有:S_ODT(导通延时)、S_ODTS(导通同步延时)、S_OFFDTS(关断同步延时)、S_PULSE(脉冲延时)、S_PEXT(扩展脉冲延时)等五种。各种计时器都有自己不同的通断特性,例如S_ODT(导通延时)的通断特性如图1所示。这五种计时器资源可以单独
使用,也可以任意组合,满足各种工程需要。这种计时器方式大的特点是方法简单、易于操作,但其也有一定的局限性,主要表现在占用过多的系统资源,并且各种PLC对计时器个数有一定限制,以S7-400系列PLC来说,允许系统使用的计时器为512个。所以在一些大型的项目中,会出现不够用的情况;即使够用,也会因为占用过多资源而使扫描周期变长,对于精度要求比较高的系统,会有一定影响。二. 扫描周期累加编程定时
所周知,PLC执行程序的工作方式就是扫描,而CPU对所有程序的一个遍历所经过的时间就是一个扫描周期。对于PLC来说,每个扫描周期会因为程序长度、程序中信号和中断的不同而不同。虽然这样,但扫描周期毕竟还是和CPU内部时钟保持一定的统一性,是内部时钟外在的一种时间反应。现代工业越来越智能化的今天,扫描周期不再只是一项内部指标,更多的PLC已经将其作为一项基本的参数,提供给用户使用。所以我们可以建立一种构造定时的思路:将扫描周期累加起来,如果达到我们需要定时的长度,就产生中断,执行我们需要的步骤。
还是以S7-400系列PLC为例,在软件编制过程中,OB1(Program Cycle Organization Block)是一个基本的程序模块,它是CPU扫描的主程序,其它程序被它调用。OB1有一个模块内的变量表,变量表中有一个临时变量(temp)为:OB1_PREV_CYCLE,它里面所放的数据为前一次扫描周期的毫秒(ms)数,是整型(Integer)数据。因为是临时变量,所以每个扫描周期内存放的数据都在变化。因为OB1的变量表中没有静态变量类型,所以不能直接在OB1中直接进行累加,我们可以借助一个具有静态变量的FB(Function Block)程序模块来编制累加程序,在OB1中调用FB,并通过接口将OB_PREV_CYCLE做为IN参数输入给FB,其OB1程序执行如图2。在FB中,如果以100ms为一个单位,从接口中读取OB1提供的前一个扫描周期的数值参数OB1_PREV_CYCLE,将其
赋值给FB自身的IN参数,并进行累加,再通过一些中间量的转换、计算,输出以100ms为一个单位的单位个数做为OUT接口,供其它程序使用。其程序流程图及I/O参数如图3所示。为了方便其它程序更多地调用此项功能,以及实现多种延时方式(如ON延时、OFF延时、PULSE延时等),可以再做一些FC(Function)。选择ON延时为例,用户使能后,将FB输出接口中的参数值保存起来做为初值,在后续的扫描过程中,将当前值与初值相减计算出差值,后将用户设置的定时数与差值进行比较,满足条件即可执行用户命令。如果仍以100msec为定时单位,其程序流程图如图4所示。
在使用中,用户可以直接调用FC块,填入相应的参数。FC的I/O接口参数