n
介绍:
要启动时间中断,首先必须设置报警并将其激活。如果要编辑日期时间中断,可以使用以下三种方法。n
- 日期时间中断的设置和激活都可以在HW Config中实现。这样,在CPU重新启动时,就会自动设置日期时间中断且在预设的时间点激活中断。n
- 在HW Config中设置日期时间中断。通过CPU中的SFC30来激活时间中断OB。SFC30可以由用户根据事件进行调用。n
- 用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
图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 | 时间中断的状态 |
样例程序4: 调用SFC31“QRY_TINT”
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc331896.html