1、定时器 人类最早使用的定时工具是沙漏或水漏但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。 1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。 定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都安装了定时器来控制开关或工作时间。 定时器种类 1、 接通延时型定时器:接通延时型定时器是各种PLC中最常见最基本
2、的定时器,这种定时器在 SIEMENS的PLC中,称为SD型定时器 2、 断开延时型定时器:这种定时器是当输入条件00000为ON时无延时作用,只有在输入条件00000为OFF时产生延时作用。在SIEMENS的PLC中,称为SF型定时器 3、保持型接通延时定时器:这种定时器是当输入条件00000为ON后,即产生锁存功能,即使输入条件00000又变为OFF,仍视输入条件为ON,当定时器的当前值等于设定值时,定时器动作,这种定时器在SIEMENS的PLC中,称为SS型定时器 4、脉冲型定时器:这种定时器是当输入条件00000为ON后,定时器即时动作,但经过定时器所设定的时间后,即使输入
3、条件00000仍为ON,定时器却变为OFF状态。即这种定时器ON状态的维持时间是由设定值决定的。如果00000为ON的时续时间小于定时器的设定值,定时器的ON状态维持时间为输入条件00000为ON的持续时间。这种定时器在SIEMENS的PLC中,称为SP型定时器。 5、扩张型脉冲定时器:这种定时器与脉冲型定时器的区别是,只要输入条件00000出现了ON状态,不管其持续时间多长,均可使定时器为ON的维持的时间与定时器的设定值一致。这种定时器在SIEMENS的PLC中,称为SE型定时器 定时器是通信协议正常运行的基本要素之一,主要用于各种定时和帧重传的任务。通信协议在单片机系统上实现所使用的定
4、时器,定时精度要求不高,但数量要求比较大。由于硬件资源有限,不可能为每一个单独任务分配一个硬件定时器,只能通过单个硬件定时器模拟多个软件定时器的方法,来满足协议中的定时应用需要。 图1 用一定的数据结构将这些软件定时器组织起来,并提供统一的调用接口,称为“定时器管理”。目前定时器管理主要有2种实现方法: ①静态数组法。将定时器节点存储在数组中。优点是逻辑简单,占用ROM较少。但这种方案有明显的缺点:当硬件定时器中断发生时,要对所有定时器节点进行减法操作,时间开销很大,且时延不确定(与定时器数目相关)。 ②delta链表法。按照定时器的定时值升序排列,形成链表。后一个定时
5、器的定时值是前面所有定时器的值加上本节点的值。这样,在每次的时钟中断处理中,只需对第1个定时器节点进行减法操作,大大减少了时间开销。但是,该方案逻辑复杂,ROM用量大,需要频繁分配回收内存,容易形成内存碎片。 1 定时器管理模块的设计 定时器管理模块的设计基于静态数组法。使用一个定时器节点数组来保存所有的定时请求,数组的每一项代表一个可用的定时器节点。每一个定时器节点都有一个状态项,表示该定时器正处于空闲、使用或溢出状态。定时器的定时值和定时器超时后要发送的消息也存储在定时器节点中,从而实现用一个硬件定时器为用户提供多个软件定时器。 为了解决中断处理时间开销大的问题,在模块中引
6、入一个辅助定时器,辅助定时器的值总是等于所有定时器节点中的最小定时值。在硬件定时器中断处理中,仅对辅助定时器进行减法操作,从而大大缩短了中断处理的时间。 2定时器管理模块的实现 2.1 数据结构和函数接口 定时器管理模块使用的相关数据结构定义如下: 字段state保存了定时器节点的状态,可能取值为空闲(T_FREE)、使用(T_INUSE)或溢出(T_OVERFLOW)。 字段count保存了定时器节点的定时值,最大取值为65 535。如果设置硬件定时器中断为10 ms,则软件定时器最大定时约为655 s,可以满足大多数应用需要。 字段msg指向定时器的用户
7、消息。在启动定时器时,指向消息的指针被保存在此字段。当定时时间结束后,中断处理函数会自动发出这个消息以通知用户任务。 由于数组的下标是唯一的,可作为识别节点的唯一ID号。下文中提到的节点ID号均表示节点在数组中的下标。 MAX_TIMER_NUM表示系统允许的最大定时器数,其值取决于具体应用需要。 本模块提供的关键接口函数如下: 2.2定时器的初始化 使用定时器管理模块前,需要进行定时器的初始化。主要是初始化定时器节点数组,将每一个定时器节点设置为空闲状态,同时将辅助定时器置零,辅助ID指向0xFF(表示空)。 2.3定时器的启动 图2 启动
8、一个定时器,主要是将节点数组中一个空闲状态的节点置为使用状态。如果这个新启用的定时器,是所有定时器中定时值最小的,还要更新辅助定时器。函数以指向定时器消息的指针和定时值为参数,启动定时器流程如图2所示。成功启动定时器后,返回该定时器节点的ID号。 2.4定时器的删除 在目标定时器到期之前,由于某种原因用户可能会要求取消定时器。如重发定时器,用户在发送数据帧后启动该定时器,并等待对方返回响应帧。如果在定时时间结束时没有收到响应帧,用户就需要重发原数据帧;如果在定时时间结束之前收到响应帧,用户就需要马上取消该定时器,然后进行下一次通信过程。 删除定时器函数以定时器节点ID号作为输
9、入参数,将定时器节点设为空闲状态,并根据需要更新辅助定时器,流程如图3所示。 2.5定时器的驱动 图3 软件定时器的驱动由硬件定时器提供。在硬件定时器中断中,首先将辅助定时器的值减1。如果辅助定时器值为0,则表示定时值最小的定时器已经超时,应将对应的消息发送给用户任务,将节点置为空闲状态,并重新计算其他节点的定时值,同时查找定时值最小的节点,更新辅助定时器。 适用范围 1在实行峰谷电价差的地区,可使用大功率电器在低电价阶段自动运行。 2用于控制需定时开与关的家用电器。如:饮水机、热水器、空调、电饭煲、广告照明等; 3用于控制通电时间长短。如:电动自行车
10、电池、手机电池、蓄电池的充电; 4需频繁通断的用电场合。如花圃、草坪的间歇喷灌、鱼缸的周期性增氧过滤、喷泉等; 5家庭防盗系统的自动控制。 注意事项 1 本产品所接电器功率总和不得超过额定功率,为室内干燥环境中使用; 2本产品可循环工作,设置的程序可循环使用。 3不可把本产品直接插入已运行中的电器上 4当电器用品接入定时器后,开关状态务必是开启状态 5保修期内请勿擅自拆卸定时器,一旦拆卸,将终止保修服务。需维修时请找专业电工或专业人士。 产品特点 1 液晶屏设定显示 2 专利外观设计 3 铜片结构优化设计,寿命更长 4 最小设定时间为1分钟,每天最多可设定20组开与关,每周可设置140组 5 高导电率铜片,镀镍处理,防铜锈,发热更小 6 夏令时/冬令时功能 7 使用可充电电池 技术参数 额定电压:220C AC~ 额定电流:10A 额定频率:50Hz 额定功率:2200W 固有功率:≤2W 使用温度范围:-10℃— +55℃ 可编程数:20组 电池:可充电镍氢电池






