STEP7中的时间、日期和定时器 点击:4300 | 回复:8



稚若初现0

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:18:20
楼主

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

TIME:IEC time

S5TIME:SIMATIC time

DATE:IEC date

TIME_OF_DAY:time

DATE_AND_TIME:DT

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

 image016.jpg

图1




稚若初现0

  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:24:29
1楼

2.    需要相关数据类型的详细描述

请在STEP 7的主界面SIMATIC manager中的Help下拉菜单中点击Contents,在下图所示的帮助界面中利用索引Index搜索关于相应的数据类型的描述。

 image018.png

图2

稚若初现0

  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:26:31
2楼

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

S5TIME的格式

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

image020.jpg 

图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

  • w = 时基 (即时间间隔或精度)
  • xyz = BCD格式的时间值

这种方式只能用于STL编程。

2) S5T#aH_bbM_ccS_dddMS

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

稚若初现0

  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:27:42
3楼

4.  通过上位机访问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即可。

2、从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。

3、如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。

稚若初现0

  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:28:47
4楼

5.  S5TIME和TIME的转换

FC33用于S5TIME到TIME的转换。FC40用于TIME到S5TIME的转换。这两个块位于Libraries\Standard Library\IEC Function Blocks路径下,关于功能块的描述详见在线帮助。

6  DATE_AND_TIME的格式

当使用数据类型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毫秒,星期四的语法结构,有两种格式:

  • 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#2089-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

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
(低4位)

Day of week
1 = Sunday
2 = Monday
...
7 = Saturday

B#16#5

表2

 

DATE_AND_TIME 允许的数值范围如下:

  • 最小: DT#1990-1-1-0:0:0.0
  • 最大: DT#2089-12-31-23:59:59.999

 

允许的范围

BCD

Year

1990 - 1999
2000 - 2089

90h - 99h
00h - 89h

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

 

稚若初现0

  • 精华:0帖
  • 求助:0帖
  • 帖子:104帖 | 384回
  • 年度积分:0
  • 历史总积分:4735
  • 注册:2012年4月20日
发表于:2012-07-19 21:30:31
5楼

7  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"

 

8.  STEP 7中定时器的使用

8.1 S7 TIMER的使用

在STEP 7的Program elements中的Timers菜单下,提供了5种S7类型的Timer,调用方法同其它功能块。定时时间类型为S5TIME,访问方式见第10.章节的描述。每一款CPU所支持的S7类型的Timer的数量是一定的,具体数量参见产品手册。

8.2 IEC TIMER的使用

如果您在程序中药使用更多的定时器,建议您使用Libraries\Standard Library\System Function Blocks下的SFB3/SFB4/SFB5。SFB3~5使用的是IEC TIME,调用的次数计入该CPU所支持的Blocks的数量中。

9.  如何访问CPU的Clock Memory

在硬件配置时,需要设置CPU的属性。其中有一个选项为Clock Memory,选中选择框就可激活该功能,如下图所示:

image027.jpg 

图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

如果您在硬件配置里选择了该项功能,就可以在程序里调用,例如不同频率的方波。

阿水--王者之师

  • 精华:23帖
  • 求助:347帖
  • 帖子:1611帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2012-07-19 21:52:43
6楼
  抄书啦, 不是实际应用的帖子呀  

赚够一个亿休息

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:120
  • 注册:2012年7月17日
发表于:2012-07-19 22:14:25
7楼

没啥意思啊

 


热门招聘
相关主题

官方公众号

智造工程师