S5TIME是用BCD码保存的,在数据存储区占用两个连续的字节。下图给出的例子中时间值为127,时基为1秒。
图3
当使用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
您可以采用如下两种格式定义时间值:
1) W#16#wxyz
这种方式只能用于STL编程。
2) S5T#aH_bbM_ccS_dddMS
如果想通过上位或触摸屏对PLC中S5TIME类型的参数进行设定,有如下方法:
1、从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
2、从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
3、如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。
FC33用于S5TIME到TIME的转换。FC40用于TIME到S5TIME的转换。这两个块位于Libraries\Standard Library\IEC Function Blocks路径下,关于功能块的描述详见在线帮助。
当使用数据类型DATE_AND_TIME (DT) 时,将占用数据存储区的8个连续字节,以BCD码格式保存。该数据类型范围如下:
DT#1990-1-1-0:0:0.0 to DT#2089-12-31-23:59:59.999
下面举例说明1993年12月25日上午8时1分1秒23毫秒,星期四的语法结构,有两种格式:
下列IEC标准功能块进行与DATE_AND_TIME相关的操作:
FC3: D_TOD_DT
FC6: DT_DATE
FC7: DT_DAY
FC8: DT_TOD
下表给出了以1993年12月25日上午8点1分1秒23毫秒,星期四为例,在date and time 的八个字节中分别存储的内容:
字节 | 内容 | 例子 |
0 | Year | B#16#93 |
Month | B#16#12 | |
Day | B#16#25 | |
Hour | B#16#08 | |
Minute | B#16#01 | |
Second | B#16#01 | |
MSEC 的后二位 | B#16#23 | |
(高4位) | MSEC 的高位 | B#16#0 |
7 | Day of week | B#16#5 |
表2
DATE_AND_TIME 允许的数值范围如下:
| 允许的范围 | BCD 码 |
Year | 1990 - 1999 | 90h - 99h |
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 |
表3
在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" 。
在STEP 7的Program elements中的Timers菜单下,提供了5种S7类型的Timer,调用方法同其它功能块。定时时间类型为S5TIME,访问方式见第10.章节的描述。每一款CPU所支持的S7类型的Timer的数量是一定的,具体数量参见产品手册。
如果您在程序中药使用更多的定时器,建议您使用Libraries\Standard Library\System Function Blocks下的SFB3/SFB4/SFB5。SFB3~5使用的是IEC TIME,调用的次数计入该CPU所支持的Blocks的数量中。
在硬件配置时,需要设置CPU的属性。其中有一个选项为Clock Memory,选中选择框就可激活该功能,如下图所示:
图4
然后在Memory Byte中输入您想为该项功能设置的MB的地址即可,如MB10,则输入10即可。
Clock Memory的功能是在所定义的MB的各个位周期性地改变其二进制的值(脉宽—间歇比例为1:1)。
Clock Memory的各个位的周期及频率如下:
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Period duration (s): | 2 | 1.6 | 1 | 0.8 | 0.5 | 0.4 | 0.2 | 0.1 |
Frequency(Hz): | 0.5 | 0.625 | 1 | 1.25 | 2 | 2.5 | 5 | 10 |
表4
如果您在硬件配置里选择了该项功能,就可以在程序里调用,例如不同频率的方波。