WR_SYS_T:设置时间
说明
使用该指令,可设置 CPU 时钟的日期和时间(模块时间)。在输入参数 IN 中输入日期和时间。输入值必须介于以下范围内:
对于 DT:小为 DT#1990-01-01-00,大为 DT#2089-12-31-2359.999
对于 LDT:小为 LDT#1970-01-01-00.000000000,大为 LDT#2200-12-31-2359.999999999
对于 DTL:小为 DTL#1970-01-01-0000.0,大为 DTL#2200-12-31-2359.999999999
可以在 RET_VAL 输出参数中查询在执行该指令期间是否发生了错误。
“WR_SYS_T”指令不能用于传递有关本地时区或夏令时信息。
说明 CPU 时钟的模块时间 CPU 时钟将模块时间转换为世界协调时间 (UTC)。因此,模块时间总是存储在 CPU 时钟中,而不带因子“本地时区”或“夏令时”。之后,CPU 时钟将基于模块时间计算 CPU 时钟的本地时间。 CPU 时钟的模块时间将用作 CPU 发起的所有时间处理过程的模板。使用示例: 基于模块时间计算 CPU 时钟的本地时间 在“在线与诊断”(online & Diagnostics) 中,显示本地时间中的模块时间 块属性 CPU 诊断缓冲区中的条目 |
参数
下表列出了“WR_SYS_T”指令的参数:
参数 | 声明 | 数据类型 | 存储区 | 说明 | |
---|---|---|---|---|---|
S7-1200 | S7-1500 | ||||
IN | Input | DTL | DT **, DTL, LDT | I、Q、M、D、L、P 或常量 * | 日期和时间 |
RET_VAL | Return | INT | INT | I、Q、M、D、L、P | 指令的状态 |
* 数据类型 DT 和 DTL 无法用于以下存储区:输入、输出和位存储器。 ** 使用数据类型 DT 时,毫秒信息将不传送到 CPU 中。 |
有关有效数据类型的更多信息,请参见“有效数据类型概述”。
参数 RET_VAL
错误代码* (W#16#....) | 说明 |
---|---|
0000 | 无错误 |
8080 | 日期错误 |
8081 | 时间错误 |
8082** | 月的指定值无效(DTL 格式中的字节 2)。 |
8083** | 日的指定值无效(DTL 格式中的字节 3)。 |
8084** | 小时的指定值无效(DTL 格式中的字节 5)。 |
8085** | 分钟的指定值无效(DTL 格式中的字节 6)。 |
8086** | 秒钟的指定值无效(DTL 格式中的字节 7)。 |
8087** | 纳秒的指定值无效(DTL 格式中的字节 8 到 11)。 |
80B0 | 实时时钟故障。 |
* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。 | |
** 仅适用于以 DTL 格式在 IN 参数中指定的日期和时间信息 |
示例
在以下示例中,设置 CPU 时钟的日期和时间。使用的数据类型为 DATE AND TIME。
在全局数据块中,创建 3 个变量进行数据存储。
互连该指令的参数,如下所示:选择 DATE AND TIME 数据类型。
如果常开触点(“execute”)的信号状态为“TRUE”,则执行“WR_SYS_T”指令。将用要设置的时间(“inputTIME”)覆盖 CPU 时钟的模块时间。输出参数 RET_VAL(“returnValueT”)用于指示处理无错误。
您可以确定 CPU 时钟是否正确接收了新模块时间(“inputTIME”),如下所示:
使用 S7-1500 CPU 的显示屏:在 CPU 显示屏上导航到“设置 > 日期和时间 > 常规”(Settings > Date & Time > General)。
使用 TIA Portal:使用“RD_SYS_T”指令读取 CPU 时钟的模块时间。
使用 TIA Portal:导航到 CPU 的“在线与诊断”(online & Diagnostics) 条目,并打开“功能 > 设置时间”(Functions > Set time of day) 选项卡。 为 CPU 时钟的模块时间设置协调世界时间 (UTC)。在本示例中,在 TIA Portal 参数中将欧洲中部时间设置为本地时间。在 TIA Portal 的“在线与诊断”(online & Diagnostics) 条目中为要设置的时间(“inputTIME”)相应地增加 1 小时。使用夏令时,需额外增加一个小时。计算出的本地时间以 12 小时制格式输出。