
4.12 时钟指令
4.12.1 时钟指令说明
(1)时钟指令格式和功能
时钟指令格式和功能如表4-70所示。
表4-70 时钟指令格式和功能

内置时钟的时钟指令设有8个字节的时钟缓冲区,其格式如表4-71所示。
表4-71 时钟缓冲区的格式

(2)例说读取实时时钟指令

如图4-90所示。

图4-90 梯形图
① 从CPU读取当前时间和日期,并将其装载到从字节地址VB0开始的8个字节时间缓冲区中。其中VB0~VB7存放的分别是年、月、日、小时、分钟、秒、空、星期。
② VB4中存放的分钟,采用BCD格式编码,通过B_I和BCD_I指令将VB4中的BCD码转换成整数存入VW20。
③ 利用比较指令,当分钟计时到55时,Q0.0启动。
(3)例说设置实时时钟指令

如图4-91所示,在利用PLC进行控制时,为能准确地控制时间,需要将CPU的时钟设定成正确的时钟。

图4-91 控制程序
① 初始化,将16#20050408存入VD0,将16#59000002存入VD4。VB0~ VB7这8个字节缓冲区存放时间数据。
② 当I0.0接通时,将VB0开始的8个字节存放的新的时间和日期写入到CPU。8个字节中,每个字节存放的数据的具体含义如表4-72所示。
表4-72 每个字节存放的数据的具体含义

③ 当I0.1接通时,可以读取实时时钟,存入以VB20开始的8个字节中。
4.12.2 综合实例
综合实例——定时闹钟

用PLC控制一个闹钟,要求除周六、日外,每天早上6:30响15s,按下复位按钮闹钟停止,不按复位按钮,每隔1min再响15s,共响3次结束。

元件说明见表4-73。
表4-73 元件说明


控制程序如图4-92所示。

图4-92 控制程序

① 执行READ指令,将PLC中的实时时钟的时间传送到VB100~VB107中,并执行B_I、BCD_I指令,将小时(VB103)、分钟(VB104)、秒(VB105)的BCD数转换成整数分别放在VW120、VW122和VW124中。
② 当时间为06时30分00秒时,M0.0得电,当既不是星期六(VB107≠7)也不是星期日(VB107≠1)时,M0.1得电自锁。
③ M0.1得电,Q0.0得电,闹钟开启,同时T37、T38开始计时。15s后,T38得电常闭触点断开,Q0.0失电。T37延时1min断开一次,C0对T37接通次数计数,当计数值为4时,C0常闭触点断开M0.1,并对C0复位。
④ 若在响铃时按下复位按钮I0.0,I0.0得电其常闭触点断开,M0.1失电,Q0.0失电,闹钟停止。