使用系统功能 SFC1 (READ_CLK)可以读出CPU的系统时间。在系统功能 SFC1 中的输出参数“CDT”接收的时间和日期的格式为“DATE_AND_TIME”。具有“DATE_AND_TIME”数据类型的时间和日期是以 BCD 码的格式存储在8个字节里。这种数据类型的转换范围是:
下表给出了实例表示2004年8月5日,星期四,8点12分5.250秒。 并且给出了每个字节所包含的时间和日期数据的内容。
字节 | 内容 | 例子 |
0 | 年 | B#16#04 |
1 | 月 | B#16#08 |
2 | 日 | B#16#05 |
3 | 小时 | B#16#08 |
4 | 分钟 | B#16#012 |
5 | 秒 | B#16#05 |
6 | 毫秒的百位和十位数值 | B#16#25 |
7 (高4位) | 毫秒的个位数值 | B#16#05 中的BCD 码“0” |
7 (低四位) | 星期: WWW_P※LCJS_COM-PLC-)技.术_网 1:星期日, P.L.C.技.术.网——可编程控制器技术门户 2:星期一, WWW_P※LCJS_CO※M-PLC-技-.术_网 3:星期二, WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户) 4:星期三, WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户) 5:星期四, plcjs.技.术_网 6:星期五, WWW_PLCJS_COM-PLC-技.术_网 7:星期六 |
B#16#05 中的BCD 码“5” |
更多的关于“DATE_AND_TIME”数据类型的信息可以通过 STEP 7 在线帮助获得,如下:
下面的 STEP 7 程序(图 01)是通过地址寄存器 AR1 读时间和日期。 FC1 中调用系统功能 SFC1 读出 CPU 的当前时间。 小时和分钟可以显示在数字显示器上。
说明:
“LAR1 P##Date_Time”
通过上面指令将临时变量“Date_Time”的起始地址被装载到地址寄存器 AR1 中。 通过间接寻址装载命令可以分别访问年、月、日、小时等。
“L B[AR1, P#3.0] //Read hours” (读取小时数)
读出的数据赋值给输出字节用于显示。
T "Hour" // for AB3 (赋给输出字节 3)
由于字节 7 中 的高四位是用于表示毫秒的个位数值的,低四位是用于表示星期的,鉴于显示的原因,如图 01 例程中,使用语句“L W#16#FFF0”和“L B#16#F”分别通过字与(“UW”即“AW”)的操作指令将 AW6 和 AB8 输出地址中相应的值屏蔽掉。否则图 02 中 AW6 的值将显示为 W#16#7853(而 3 是表示星期数的),同样 AB8 的值将显示 B#16#53(5 表示毫秒值)。
在“监视/修改变量” 中您可以显示输出字节的数据。图 02 为“监视/修改变量”中对应 2004年8月24日,星期二,14点3分19.785秒的显示示例。
用 SFC0 (SET_CLK)设定系统时钟的使用说明
使用 SFC0 “SET_CLK” (设定系统时钟)可以设定 CPU 的时间和日期。 CPU 的时钟将以设定的时间和日期运行。 用以下语句:
“LAR1 P##Date_Time”
临时变量“Date_Time”的起始地址被装载到地址寄存器 AR1 中。通过间接寻址指令将设定数据从功能块的输入变量(类型:字节)装载并传输到变量“DATE_AND_TIME”的中的年、月、日、小时等各自的字节中。
L #Year
WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
//输入变量,类型:字节WWW_PLC※JS_COM-PmLC-技.术_网
//输入变量“年”如, “B#16#05”表示 2005.T B[AR1,P#0.0]
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
//输入变量“Year”的内容传送到字节 0WWcW_PLCJS_COM-PLC-技.术_网
//“DATE_AND_TIME”变量的字节0。W1WW_P4LCJS_COM-PLC-技.术_网
在例程中描述的如上您所看到的数据类型“DATE_AND_TIME”的格式。 更多的关于“DATE_AND_TIME”数据类型的信息可以通过 STEP 7 在线帮助获得,如下:
随后调用 SFC0 ,在输入端“PDT”参数化的临时变量“Date_Time”的数值被传送到 SFC0。
在“监视/修改变量” 中您可以指定时间和日期的值。输入的年、月、日等是在 OB1 中使用 MB0, MB1, MB2 等参数化的。图 04 给出了例子:2005年1月3日,星期一,16点26分40.20秒。