读写时钟和时钟同步

STEP 7中有关时间、日期的数据类型

系统时间

STEP 7中有关时间、日期的数据类型

1. 类型

2. 各数据类型占用字长、格式及范围如下:

表 1   时间数据类型

3. S5TIME (Time Duration) 的格式及访问

S5TIME是用BCD码保存的,在数据存储区占用两个连续的字节。下图给出的例子中时间值为127,时基为1秒。

图1 S5TIME的格式

 当使用S5TIME时,定义数值的范围为0~999,而且要指明使用的时基。时基指定了时间单位。
S5TIME时基及相应的时间范围如下:

时基 BCD码 时间范围
10 ms 0 10 ms - 9 s 990 ms
100 ms 1 100 ms - 1 min 39 s 990 ms
1 s 10 1 s - 16 min 39 s
10 s 11 10 s - 2 hr 46 min 30 s

表2 S5TIME 时基

4. 定义时间值的两种方式:

1.W#16#wxyz

w = 时基 (即时间间隔或精度)
xyz = BCD格式的时间值
这种方式只能用于STL编程。

2.S5T#aH_bbM_ccS_dddMS

a = 小时, bb = 分钟, cc = 秒, dd = 毫秒
这种情况下时基自动选择, 数值为该时基下取整去尾到下一个较低值。
您可以输入的最大值为9,990 秒,或2H_46M_30S。

如何S5Time和Time相互转换?

请参考热线故事:整数INT_时间S5Time及Time相互转换的困惑

系统时间

如何设置系统时间?

Manager页面下,菜单栏PLC---诊断/设置---设置时钟(需要联机状态下操作)

图2 设置时钟1

图3 设置时钟2

勾选"来自PG/PC",点击应用。即可将PC端的时钟同步到PLC。(PC端时钟先要设置好)

如何在程序中读取,写入系统时间?

请参看如下文档: 
1.用 SFC1 (READ_CLK) 读取日期和时间以及如何用 SFC0 (SET_CLK) 设定日期和时间

2.Step7中有关时间和定时器的使用和例程(具体3.2章节)

注意: 使用SFC0和SFC1 设定和读取日期和时间,因设置和读取系统时钟都是BCD格式,有时需要进行整数和BCD之间的转换把系统时间转换成十进制显示或设置。

读取系统时钟并按照十进制显示,详细请参考上述文档1的解释。

下列程序中,DB1.DBB0~DB1.DBB8分别对应需要显示的十进制表示的:年/月/日/时/分/秒/毫秒/星期

按照十进制设置系统时钟

下列程序中DB2.DBB0~DB2.DBW6分别对应设置的十进制地址:年/月/日/时/分/秒/毫秒,星期不需要设置。

时钟同步

可分为HMI与控制器之间以及SIMATIC方式,NTP方式或无线方式

具体参看如下文档:

如何同步操作面板与 S7-200/300/400 控制器的日期和时间?

如何通过MPI和工业以太网设定S7-300 CPU 的时间?

如何配置 SIMATIC S7-300 作为主时钟或从时钟用于工业以太网下的 SIMATIC 模式时钟同步?

使用NTP的方式对PLC或者CP进行时间同步使用入门

S7-300/400 CPU:基于 S7-300/400 CPU 的时间切换,可选的无线时钟连接