10.1. S5TIME的格式
S5TIME是用BCD码保存的,在数据存储区占用两个连续的字节。下图给出的例子中时间值为127,时基为1秒。
当使用S5TIME时,定义数值的范围为0~999,而且要指明使用的时基。时基指定了时间单位。
S5TIME时基及相应的时间范围如下:
时基 BCD码 时间范围
10 ms 00 10 ms - 9 s 990 ms
100 ms 01 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
您可以采用如下两种格式定义时间值:
· 1) W#16#wxyz
o w = 时基 (即时间间隔或精度)
o xyz = BCD格式的时间值
这种方式只能用于STL编程。
· 2) S5T#aH_bbM_ccS_dddMS
o a = 小时, bb = 分钟, cc = 秒, dd = 毫秒
o 这种情况下时基自动选择, 数值为该时基下取整去尾到下一个较低值。
您可以输入的最大值为9,990 秒,或2H_46M_30S。
10.2. 通过上位机访问PLC中S5TIME类型的数据
如果想通过上位或触摸屏对PLC中S5TIME类型的参数进行设定,有如下方法:
1、从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
请点击http://www4.ad.siemens.de/WW/view/en/119324 参见在线FAQ。
2、从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
3、如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。
例程参见 。
10.3. S5TIME和TIME的转换
FC33用于S5TIME到TIME的转换。FC40用于TIME到S5TIME的转换。这两个块位于Libraries\\Standard Library\\IEC Function Blocks路径下,关于功能块的描述详见在线帮助。
11. DATE_AND_TIME的格式
当使用数据类型DATE_AND_TIME (DT) 时,将占用数据存储区的8个连续字节,以BCD码格式保存。该数据类型范围如下:
DT#1990-1-1-0:0:0.0 to DT#20-12-31-23:59:59.999
下面举例说明1993年12月25日上午8时1分1秒23毫秒,星期四的语法结构,有两种格式:
· DATE_AND_TIME#1993-12-25-8:01:1.23
· DT#1993-12-25-8:01:1.23
下列IEC标准功能块进行与DATE_AND_TIME相关的操作:
· 将DATE和TIME_OF_DAY (TOD) 结合起来,转换成DATE_AND_TIME (DT)。该功能块的管脚IN1必须在DATE#1990-01-01 到DATE#20-12-31范围内。
FC3: D_TOD_DT
· 从DATE_AND_TIME 中取出DATE。
FC6: DT_DATE
· 从DATE_AND_TIME 中取出the day of the week,即星期几。
FC7: DT_DAY
· 从DATE_AND_TIME 中取出时间。
FC8: DT_TOD
下表给出了以1993年12月25日上午8点1分1秒23毫秒,星期四为例,在date and time 的八个字节中分别存储的内容:
字节 内容 例子
0 Year B#16#93
1. Month B#16#12
2. Day B#16#25
3. Hour B#16#08
4. Minute B#16#01
5. Second B#16#01
6. MSEC 的后二位 B#16#23
7. (高4位) MSEC 的高位 B#16#0
7 (低4位) Day of week 1 = Sunday 2 = Monday ... 7 = Saturday B#16#5
DATE_AND_TIME 允许的数值范围如下:
· 最小: DT#1990-1-1-0:0:0.0
· 最大: DT#20-12-31-23:59:59.999
允许的范围 BCD 码
Year 1990 - 1999 2000 - 20 90h - 99h 00h - h
Month 1 - 12 01h - 12h
Day 1 - 31 01h - 31h
Hour 00 - 23 00h - 23h
Minute 00 - 59 00h - 59h
Second 00 - 59 00h - 59h
Millisecond 0 - 999 000h - 999h
Day of week Sunday - Saturday 1h - 7h
12. STEP 7相关功能块调用例程
在STEP 7在线帮助中提供了下述SFC/FC的调用例程。查找该例程的方法如下:将SFC0/SFC1添加到某一个Network中,按您计算机键盘上的F1功能键,在See also中,可以看到该例子程序,以及该程序的描述。具体如下:
在组织块OB1中调用FC10,在FC10 中设置时间并读出。被调用的SFC/FC如下:
· SFC 0 "SET_CLK" 设置CPU时钟
· SFC 1 "READ_CLK" 读出CPU时钟
· FC 3 "D_TOD_DT"
· FC 6 "DT_DATE"
· FC 7 "DT_DAY"
· FC 8 "DT_TOD"