怎样修改用户程序中 STEP 7 “HW Config”配置的用于日期时间中断的数据?

n

介绍:
要启动时间中断,首先必须设置报警并将其激活。如果要编辑日期时间中断,可以使用以下三种方法。n

  1. 日期时间中断的设置和激活都可以在HW Config中实现。这样,在CPU重新启动时,就会自动设置日期时间中断且在预设的时间点激活中断。n
  2. 在HW Config中设置日期时间中断。通过CPU中的SFC30来激活时间中断OB。SFC30可以由用户根据事件进行调用。n
  3. 用SFC28来设置日期时间中断,并用SFC30将其激活,无需在HW Config中预先设置。

在S7-300和S7-400 CPU中,集成有系统功能“SFC”以用于编辑日期时间中断。在调用这些功能的过程中,应用程序不为它们分配任何存储空间。n

第1种情况: 在HW Config中设置和激活日期时间中断。
在S7 项目中选择站点。右侧窗口将显示硬件图标。双击此图标便可启动HW Config。如果已经选择了一个现有的站点,那么带有已组态模块的机架便显示出来。在HW Config中双击 CPU 符号后,将显示一个带有许多标签的窗口,选择"Time-of-day Interrupts"标签。在该标签下,就可以设置图1中的值。时间中断OB10便设置为从2010年10月01日开始起的每天上午8点钟。选中文本标签“ACTIVE”下的复选框,便可激活日期时间中断。n

怎样修改用户程序中 STEP 7 "HW Config"配置的用于日期时间中断的数据?

图1n

第2种情况:使用HW Config设置日期时间中断,用 SFC30 将其激活
如第1种情况所述,选择将要启动日期时间中断的CPU的HW Config,进行CPU的参数设置。例如,在"Time-of-Day Interrupts"标签下,可以将日期时间中断相应的值设置为表1中所列出的数值。

OB-编号

优先级

激活状态

执行间隔

起始日期

时间

OB10

2

"OFF"

每天

01.10.03

08:00:00

表1:“日期时间中断”标签下的设定n

这样,日期时间中断OB10设置为从03年10月01日开始起的每天上午8点钟,时间间隔设置成每天。注意,不能选中文本“ACTIVE”下的复选框,因为不激活日期时间中断,仅仅是设置。
通过调用系统功能SFC30“ACT_TINT”就可以调用块(比如,依据事件的块)以激活日期时间中断。此处列出的块参数是日期时间中断 OB10 的一个例子。n

AI 1.0

数字输入I 1.0 置1激活日期时间中断 OB10.

SPBN No

Call SFC30 "ACT_TINT"

OB no.:

=10

将要激活的 OB 编号

RET_VAL:

MW 30

如果编辑SFC时出错,通过在线帮助输入错误代码就可以获得帮助。

No:

NOP 0

n

例子程序1:使用 SFC30 "ACT_TINT" 激活日期时间中断n

第3种情况: 使用系统功能SFC28到SFC31设置并激活时间中断
第3种情况下,在HW Config中进行CPU参数设置的过程中,没有在“time-of-day interrupt”标签下对相应的时间中断OB(例如OB10)条目做任何设置。其结果是,不设置日期时间中断,同时也不激活日期时间中断(例如OB10)。n

日期时间中断 OB

功能

SFC28 “SET_TINT”

设置时间日期中断

SFC30 “ACT_TINT”

激活时间日期中断

SFC29 “CAN_TINT”

取消时间日期中断

SFC31 “QRY_TINT”

查询时间日期中断

用来编辑时间中断的SFC总揽

n

在应用程序里,可通过调用SFC28“SET_TINT”并进行参数设置来设定时间中断的起始日期,开始时间以及时间中断类型( 每分钟/小时一次, 或每天、每周、每月、 每年一次,或者在月末)。以 OB10 为例,块参数和说明列于下表进行说明 。和所有SFC一样,SFC28集成在CPU内且在应用程序中不单独占用任何内存空间。

调用SFC28 "SET_TINT"

-

设置时间和日期

OB no.:

=10

设置OB10

SDT:

#time1

通过在调用块中定义的“DT”类型的变量来输入开始日期和时间,而不要使用DT格式。

PERIOD:

W#16#1001

在日期和时间的开始时刻,OB10每天都将被激活。

RET_VAL:

MEW23

如果编辑SFC时出错,通过在线帮助输入错误代码就可以获得帮助。

n

样例程序2:调用SFC28“SET_TINT”n

在程序中编辑好起始日期、时间以及重复编辑起始日期的选项(即时间中断重复时间周期)后,可以像样例程序1所说明的那样,通过调用SFC30“ACT_TINT”来激活日期时间中断。n

警告:
如果将重复时间周期设置成“monthly”,起始日期必须设置成在一个月的第1天和第28天之间。第29天到第31天不应该设置为起始日期,因为如果这样则在二月不能调用任何硬件中断。如果要在每个月的月末启动日期时间中断,应将起始日期设置成“last of month”。n

此外,使用系统功能区的块可以监测和删除对日期时间中断的编辑。
根据具体的情况,可以在程序中使用SFC29“CAN_TINT”(取消日期时间中断)删除已经设置的日期时间中断。n

调用 SFC29“CAN_TINT”

-

取消(删除)时间及日期

OB_Nr:

=10

时间日期中断OB的编号,其起始日期和时间将会删除

RET_VAL:

MW 23

如果编辑SFC时出错,通过在线帮助输入错误代码就可以获得帮助。

样例程序3:调用SFC29“CAN_TINT”

使用SFC31“QRY_TINT”( 查询日期时间中断)可以显示日期时间中断的状态是独立于事件还是依赖于事件。块参数按照时间 OB10 关联。

调用SFC31 "QRY_TINT"

-

显示日期时间中断的状态

OB no.:

=10

时间中断 OB 的编号,其起始日期和时间将会删除

RET_VAL:

MW 23

如果编辑SFC时出错,通过在线帮助输入错误代码就可以获得帮助。

STATUS:

MW 30

时间中断的状态
Bit0=0,时间中断由操作系统释放
Bit1=0,新的时间中断未被拒绝
Bit2=0,时间中断未激活或者过期
Bit3=0,无意义
Bit4=0,未装载时间中断OB
Bit5=0,时间中断的执行被运行测试功能锁定

样例程序4: 调用SFC31“QRY_TINT”

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc331896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论