表6-18 读实时时钟和设定实时时钟指令格式
LAD | STL | 功能说明 |
TODR T | 读取实时时钟指令:系统读取实时时钟当前时间和日期,并将其载入以地址T起始的8个字节的缓冲区 | |
TODW T | 设定实时时钟指令:系统将包含当前时间和日期以地址T起始的8个字节的缓冲区装入PLC的时钟 | |
输入/输出T的操作数: VB, IB, QB, MB, SMB, SB, LB, *VD, *AC, *LD;数据类型:字节 |
(1)8个字节缓冲区(T)的格式如表6-19所示。所有日期和时间值必须采用BCD码表示,例如:对于年仅使用年份最低的两个数字,16#05代表2005年;对于星期,1代表星期日,2代表星期一,7代表星期六,0表示禁用星期。
表6-19 8字节缓冲区的格式
地址 | T | T+1 | T+2 | T+3 | T+4 | T+5 | T+6 | T+7 |
含义 | 年 | 月 | 日 | 小时 | 分钟 | 秒 | 0 | 星期 |
范围 | 00~99 | 01~12 | 01~31 | 00~23 | 00~59 | 00~59 | 0~7 |
(3)不能同时在主程序和中断程序中使用TODR/TODW指令,否则,将产生非致命错误(0007),SM4.3置1。
(4)对于没有使用过时钟指令或长时间断电或内存丢失后的PLC,在使用时钟指令前,要通过STEP-7软件“PLC”菜单对PLC时钟进行设定,然后才能开始使用时钟指令。时钟可以设定成与PC系统时间一致,也可用TODW指令自由设定。
【例6-9】编写程序,要求读时钟并以BCD码显示秒钟。程序如图6-19 所示。
说明:时钟缓冲区从VB0开始,VB5中存放着秒钟,第一次用SEG指令将字节VB100的秒钟低四位转换成七段显示码由QB0输出,接着用右移位指令将VB100右移四位,将其高四位变为低四位,再次使用SEG指令,将秒钟的高四位转换成七段显示码由QB1输出。
【例6-10】编写程序,要求控制灯的定时接通和断开。要求18:00时开灯,06:00时关灯。时钟缓冲区从VB0开始。程序如图6-20所示。