时间相关问题

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

系统时间

定时器

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

类型

TIME:IEC time
S5TIME:SIMATIC time
DATE:IEC date
TIME_OF_DAY:time
DATE_AND_TIME:DT

 

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

表 1   时间数据类型


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 时基

 

定义时间值的两种方式:

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章节)

 

时钟同步

可分为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 的时间切换,可选的无线时钟连接

定时器

具体请参看如下文档(1,2章节):
Step7中有关时间和定时器的使用和例程

如何实现定时停机?

回答:可调用时间比较功能块FC9(路径为库Libraries>Standard Library>IEC Function Blocks)


再通过RET_VAL(FC9的输出管脚),控制STP(SFC46)


定时器时间太短不够用怎么办?

回答:参看“Step7中有关时间和定时器的使用和例程”(6.2章节)