新浪博客

如何用 SFC1 (READ_CLK) 读取时间和日期以及如何用 SFC0 (SET_CLK) 设定

2012-04-03 09:11阅读:
如何用 SFC1 (READ_CLK) 读取时间和日期以及如何用 SFC0 (SET_CLK) 设定
4
推荐
用 SFC 1 (READ_CLK)读取时间和日期的使用说明
使用系统功能 SFC1 (READ_CLK)可以读出 CPU 的系统时间。系统功能 SFC1 的输出参数“CDT”接收的时间和日期的格式为“DATE_AND_TIME”。数据类型“DATE_AND_TIME”的时间和日期是以 BCD 码的格式存储在 8 个字节里。该数据类型显示的范围是:
  • DT#1990-1-1-0:0:0.0 到 DT#2089-12-31-23:59:59.999
下表给出了实例表示 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 (低四位) 星期:
1:星期日,
2:星期一,
3:星期二,
4:星期三,
5:星期四,
6:星期五,
7:星期六
B#16#05 中的BCD 码“5”
更多的关于“DATE_AND_TIME”数据类型的信息可以通过 STEP 7 在线帮助获得,如下:
  • DATE_AND_TIME 数据类型的格式
下面的 STEP 7 程序(图 01)是通过地址寄存器 AR1 读时间和日期。FC1 中调用系统功能 SFC1 读出 CPU 的当前时间。小时和分钟可以显示在数字显示器上。
如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定 如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定
图 01
说明:
LAR1 P##Date_Time
通过上面指令将临时变量“Date_Time”的起始地址装载到地址寄存器 AR1 中。通过间接寻址装载命令可以分别访问年、月、日、小时等。
例如:
L B[AR1, P#3.0] //Read hours” (读取小时数)
读出的数据赋值给输出字节用于显示。
T 'Hour' // for QB3 (赋给输出字节 3)
由于字节 7 中的高四位是用于表示毫秒的个位数值的,低四位是用于表示星期的,鉴于显示的原因,如图 01 例程中,使用语句“L W#16#FFF0” 和 “L B#16#F”分别通过字与(“UW”即“AW”)的操作指令将 AW 6 和 AB 8 输出地址中相应的值屏蔽掉。否则图 02 中 AW 6 的值将显示为 W#16#7853(而 3 是表示星期数的),同样 AB 8 的值将显示 B#16#53(5 表示毫秒值)。
在“监视/修改变量”中您可以显示输出字节的数据。图 02 为“监视/修改变量”中对应 2004 年 8 月 24 日,星期二,14 点 3 分 19.785 秒的显示示例。
如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定 如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定
图 02
用 SFC0 (SET_CLK)设定系统时钟的使用说明
使用 SFC0 “SET_CLK” (设定系统时钟)可以设定 CPU 的时间和日期。CPU 的时钟将以设定的时间和日期运行。 用以下语句:
LAR1 P##Date_Time”
临时变量“Date_Time” 的起始地址被装载到地址寄存器 AR1 中。通过间接寻址指令将设定数据从功能块的输入变量(类型:字节)装载并传输到变量“DATE_AND_TIME” 中的年、月、日、小时等各自的字节中。
例如:
L #Year
//输入变量,类型:字节
//输入变量“年”如, “B#16#05”表示 2005。
T B[AR1,P#0.0]
//输入变量 “Year” 的内容传送到字节 0
//“DATE_AND_TIME” 变量的字节 0 。
在如上例程中您能看到数据类型“DATE_AND_TIME”的格式。更多的关于“DATE_AND_TIME”数据类型的信息可以通过 STEP 7 在线帮助获得,如下:
  • DATE_AND_TIME 数据类型的格式
随后调用 SFC0,在输入端 “PDT” 处,用参数表示的临时变量“Date_Time”的数值被传送到 SFC0。
如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定 如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定
图 03
在“监视/修改变量”中您可以指定时间和日期的值。在 OB1 中通过 MB0, MB1, MB2 等地址对年、月、日等参数进行修改。图 04 给出了示例:2004 年 8 月 24 日,星期二,14 点 03 分。
如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定 如何用 <wbr>SFC1 <wbr>(READ_CLK) <wbr>读取时间和日期以及如何用 <wbr>SFC0 <wbr>(SET_CLK) <wbr>设定
图 04

我的更多文章

下载客户端阅读体验更佳

APP专享