s7300功能组织块说明.docx

上传人:b****5 文档编号:12087299 上传时间:2023-04-17 格式:DOCX 页数:87 大小:56.91KB
下载 相关 举报
s7300功能组织块说明.docx_第1页
第1页 / 共87页
s7300功能组织块说明.docx_第2页
第2页 / 共87页
s7300功能组织块说明.docx_第3页
第3页 / 共87页
s7300功能组织块说明.docx_第4页
第4页 / 共87页
s7300功能组织块说明.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

s7300功能组织块说明.docx

《s7300功能组织块说明.docx》由会员分享,可在线阅读,更多相关《s7300功能组织块说明.docx(87页珍藏版)》请在冰豆网上搜索。

s7300功能组织块说明.docx

s7300功能组织块说明

组织块(OB)概述

何为组织块?

组织块(OB)是指CPU的操作系统与用户程序之间的接口。

OB用于执行特定的程序段:

1)启动CPU时在循环或定时执行过程中

2)出错时

3)发生硬件中断时。

组织块按照已分配的优先级来执行。

哪些OB可用?

并非所有的CPU均可处理STEP7中可用的所有OB。

请参阅操作列表/72/和/102/以确定您CPU中所包含的OB。

在何处查找详细信息?

请参阅在线帮助和下列手册以获取更多信息:

1)/70/:

此手册包含描述不同S7-300CPU性能的技术数据。

2)/101/:

此手册包含描述不同S7-400CPU性能的技术数据。

下表中给出了属于每个OB的启动事件和默认优先级。

OB启动事件默认优先级解释

OB1启动结束或OB1结束1空闲周期

OB10时间中断02未指定默认时间

OB11时间中断12

OB12时间中断22

OB13时间中断32

OB14时间中断42

OB15时间中断52

OB16时间中断62

OB17时间中断72

OB20延时中断03未指定默认时间

OB21延时中断14

OB22延时中断25

OB23延时中断36

OB30循环中断0(默认时间间隔:

5s)7

OB31循环中断1(默认时间间隔:

2s)8

OB32循环中断2(默认时间间隔:

1秒)9

OB33循环中断3(默认时间间隔:

500sms)10

OB34循环中断4(默认时间间隔:

200sms)11

OB35循环中断5(默认时间间隔:

100sms)12

OB36循环中断6(默认时间间隔:

50sms)13

OB37循环中断7(默认时间间隔:

20sms)14

OB38循环中断8(默认时间间隔:

10sms)15

OB40硬件中断016循环中断

OB41硬件中断117

OB42硬件中断218

OB43硬件中断319

OB44硬件中断420

OB45硬件中断521

OB46硬件中断622

OB47硬件中断723

OB55状态中断2DPV1中断

OB56更新中断2

OB57制造商特定中断2

OB60SFC35"MP_ALM"调用25多处理中断

OB61同步循环中断125

OB62同步循环中断225

OB63同步循环中断325

OB64同步循环中断425

OB65技术同步中断25技术

OB70I/O冗余错误(仅在HCPU中)25冗余错误中断

OB72CPU冗余错误(仅在HCPU中)28

OB73通讯冗余错误OB(仅在HCPU中)25

OB80时间错误26、281)异步错误中断

OB81电源故障26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB82诊断中断26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB83插入/删除模块中断26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB84CPU硬件故障26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB85编程错误26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB86扩展机架、DP主站系统或用于分布式I/O的站故障26、281)(对于S7-300),

25、281)(对于S7-400和CPU318)

OB87通讯错误26、281)(对于S7-300),25、281)(对于S7-400

和CPU318)

OB88处理中断28

OB90暖重启或冷重启,或删除OB90中正在执行的块,或将在CPU上装载OB90或终止OB90292)背景周期

OB100暖启动271)启动

OB101热启动271)

OB102冷启动271)

OB121编程错误导致错误的OB优先级同步错误中断

导致错误的OB优先级

OB122I/O访问错误

1)优先级27和28在启动的优先级模型中有效。

2)优先级29对应于优先级0.29。

这就意味着后台循环的优先级低于自由循环。

S7CPU的操作系统定期执行OB1。

执行OB1后,操作系统将再次启动它。

完成启动后,将启动OB1的循环执行。

可调用OB1中的其它功能块(FB、SFB)或功能(FC、SFC)。

程序循环组织块(OB1)

了解OB1的操作

在运行期受监视的所有OB中,OB1的优先级最低,换言之,除OB90之外的其它所有OB均可中断OB1的执行。

以下事件可导致操作系统调用OB1:

2完成启动。

3已完成OB1的执行(上一循环)。

执行OB1后,操作系统发送全局数据。

重新启动OB1之前,操作系统会将过程映像输出表写入输出模块中、更新过程映像输入表以及接收CPU的任何全局数据。

S7监视最大的扫描时间,并确保最大的响应时间。

最大扫描时间的值预置为150ms。

您可设置一个新值,也可在用户程序中的任意位置使用SFC43"RE_TRIGR"来重新启动时间监视。

如果用户程序超出了OB1的最大周期,则操作系统将调用OB80(时间错误OB);如果OB80没有编程,则CPU将转为STOP模式。

除了监视最大扫描时间外,还可以保证最小扫描时间。

操作系统将延迟启动新循环(将过程映像输出表写入输出模块中),直至达到最小扫描时间为止。

请参阅手册/70/和/101/以了解参数"最大"和"最小"扫描时间的范围。

可使用STEP7更改参数设置。

OB1的本地数据

下表描述了OB1的临时(TEMP)变量。

变量名为OB1的默认名称。

变量类型描述

OB1_EV_CLASSBYTE事件等级和标识符:

B#16#11:

OB1激活

OB1_SCAN_1BYTE?

B#16#01:

完成暖重启?

B#16#02:

完成热重启?

B#16#03:

完成主循环?

B#16#04:

完成冷重启?

B#16#05:

主站-保留站切换和"停止"上一主站之后新主站CPU的首个OB1循环

OB1_PRIORITYBYTE优先级1

OB1_OB_NUMBRBYTEOB编号(01)

OB1_RESERVED_1BYTE保留

OB1_RESERVED_2BYTE保留

OB1_PREV_CYCLEINT上一次扫描的运行时间(ms)

OB1_MIN_CYCLEINT自上次启动后的最小周期(ms)

OB1_MAX_CYCLEINT从上次启动后的最大周期(ms)

OB1_DATE_TIMEDATE_AND_TIME调用OB时的DATE_AND_TIME

时间中断组织块(OB10到OB17)

描述

STEP7提供了多达八个OB(OB10至OB17),这些OB可单次运行,也可定期运行。

可使用SFC或STEP7为CPU分配参数,以便以下列时间间隔处理这些OB:

1单次

2每分钟

3每小时

4每天

5每周

6每月

7每个月末

注意对于每月执行的时间中断OB,只可将1、2、...28号作为起始日期

了解时间中断OB的操作,要启动时间中断,必须先设置中断,然后再将其激活。

有以下三种可能的启动方式:

1)自动启动时间中断。

一旦使用STEP7设置并激活了时间中断,即会发生此情况。

下表说明了使用STEP7激活时间中断的基本可能情况。

2)使用STEP7设置时间中断,然后通过调用程序中的SFC30"ACT-TINT"来激活它。

3)通过调用SFC28"SET_TINT"来设置时间中断,然后通过调用SFC30"ACT_TINT"来激活它。

时间间隔描述

未激活时间中断未执行,即使将其装载到CPU中也是如此。

可通过调用SFC30来激活它。

仅激活一次时间OB按指定时间运行一次后,即被自动取消。

用户程序可使用SFC28和SFC30来复位并重新激活OB。

定期激活当发生时间中断时,CPU将根据当前的时间和周期计算时间中断的下一次启动的时间。

当前后拨动时钟时,时间中断的特性将如/234/中所述。

注意:

如果以如下方式组态时间中断,即单次处理相应的OB要,则DATE_AND_TIME必须为过去的时间(相对于CPU的实际时间)。

如果以如下方式组态时间中断,即定期处理相应的OB,而启动DATE_AND_TIME为过去的时间,随后将在下次预期的时间处理该时间中断。

下图对此进行了说明。

可以使用SFC39至42禁用或延迟和重新启用时间中断。

影响时间中断OB的条件

由于时间中断仅以指定的时间间隔发生,因此在执行用户程序期间,某些条件可能会影响OB的操作。

下表列出了其中的一些条件,并说明了该条件对执行时间中断OB的影响。

条件:

用户程序调用SFC29(CAN_TINT)并取消时间中断。

结果:

操作系统清除了时间中断的启动事件(DATE_AND_TIME)。

必须再次设置启动事件并在再次调用OB之前激活它

条件:

用户程序试图激活时间中断OB,但未将OB加载到CPU中。

结果:

操作系统调用OB85。

如果OB85尚未编程(装载到CPU中),则CPU将转为STOP模式。

条件:

当同步或更正CPU的系统时钟时,您提前设置了时间并跳过时间OB的启动事件日期或时间。

结果:

操作系统调用OB80并对时间OB的编号和OB80中的启动事件信息进行编码。

随后操作系统将运行一次时间OB,而不管本应执行此OB的次数。

OB80的启动事件信息给出了第一次跳过时间OB的DATE_AND_TIME。

条件:

当同步或更正CPU的系统时钟时,推后设置了时间以使OB的启动事件、日期或时间得以重复。

结果:

S7-400-CPU和CPU318:

如果在推后设置时钟之前已激活了时间OB,则不会再次调用它。

S7-300-CPU:

执行时间OB。

条件:

CPU通过暖重启或冷重启运行。

结果:

由SFC组态的所有时间OB会被改回在STEP7中指定的组态。

如果已为相应OB的单次启动组态了时间中断,并使用STEP7对其进行了设置,并将其激活,则当所组态的启动时间为已过去的时间(相对于CPU的实时时钟)时,会在暖重启或冷重启操作系统后调用一次OB。

条件当发生下一时间间隔的启动事件时,仍执行时间OB。

结果:

操作系统调用OB80。

如果OB80没有编程,则CPU转为STOP模式。

如果装载了OB80,则会首先执行OB80和时间中断OB,然后再执行请求的中断。

时间中断OB的本地数据

下表给出了时间中断OB的临时(TEMP)变量。

变量名为OB10的默认名称。

变量类型描述

OB10_EV_CLASSBYTE事件等级和标识符:

B#16#11=中断处于激活状态

OB10_STRT_INFOBYTEB#16#11:

OB10的启动请求(B#16#12:

OB11的启动请求):

(B#16#18:

OB17的启动请求)

OB10_PRIORITYBYTE分配的优先级;默认值为2

OB10_OB_NUMBRBYTEOB编号(10至17)

OB10_RESERVED_1BYTE保留

OB10_RESERVED_2BYTE保留

OB10_PERIOD_EXEWORDOB以指定的时间间隔执行:

W#16#0000:

单次W#16#0201:

每分钟一次W#16#0401:

每小时一次W#16#1001:

每天一次W#16#1201:

每周一次W#16#1401:

每月一次W#16#1801:

每年一次W#16#2001:

月末

OB10_RESERVED_3INT保留

OB10_RESERVED_4INT保留

OB10_DATE_TIMEDATE_AND_TIME调用OB时的DATE_AND_TIME

延时中断组织块(OB20至OB23)

描述

S7提供多达四个在指定延迟后执行的OB(OB20至OB23)。

每个延时OB均可通过调用SFC32(SRT_DINT)来启动。

延迟时间是SFC的一个输入参数。

当程序调用SFC32(SRT_DINT)时,需要提供OB编号、延迟时间和用户专用的标识符。

经过指定的延迟后,OB将会启动。

还可取消尚未启动的延时中断。

了解延时中断OB的操作

延迟时间(同OB编号一起传送给SFC32的值,单位为ms)到期后,操作系统将启动相应的OB。

要使用延时中断,必须执行以下任务:

1必须调用SFC32(SRT_DINT)。

2必须将延时中断OB作为用户程序的一部分下载到CPU。

只有当CPU处于RUN模式下时才会执行延时OB。

暖重启或冷重启将清除延时OB的所有启动事件。

如果延时中断还未启动,则可使用SFC33(CAN_DINT)取消执行。

延迟时间的分辨率为1ms。

已到期的延迟时间可立即再次启动。

可使用SFC34(QRY_DINT)查询延时中断的状态。

如果发生以下事件之一,操作系统将调用异步错误OB:

1如果操作系统试图启动一个尚未装载的OB,并且您在调用SFC32"SRT_DINT"时指定了其编号。

2如果在完全执行延时OB之前发生延时中断的下一个启动事件。

可使用SFC39至42来禁用或延迟并重新使能延迟中断。

延时中断OB的本地数据

下表描述了延时中断OB的临时(TEMP)变量。

变量名为OB20的默认名称。

变量类型描述

OB20_EV_CLASSBYTE事件等级和标识符:

B#16#11:

中断处于激活状态

OB20_STRT_INFBYTEB#16#21:

OB20的启动请求(B#16#22:

OB21的启动请求)(B#16#23:

OB22的启动请求)(B#16#24:

OB23的启动请求)

OB20_PRIORITYBYTE分配的优先级:

默认值3(OB20)至6(OB23)

OB20_OB_NUMBRBYTEOB编号(20至23)

OB20_RESERVED_1BYTE保留

OB20_RESERVED_2BYTE保留

OB20_SIGNWORD用户ID:

来自调用SFC32(SRT_DINT)的输入参数SIGN

OB20_DTIMETIME已组态的延迟时间(单位为ms)

OB20_DATE_TIMEDATE_AND_TIME调用OB时的DATE_AND_TIME

周期性中断组织块(OB30至OB38)

S7提供了多达九个的循环中断OB(OB30至OB38),它们以固定的时间间隔来中断用户程序。

下表给出了循环中断OB的默认时间间隔和优先级。

OB编号默认时间间隔默认优先级

OB305s7

OB312s8

OB321s9

OB33500ms10

OB34200ms11

OB35100ms12

OB3650ms13

OB3720ms14

OB3810ms15

了解循环中断OB的操作

循环中断OB的等距启动时间是由时间间隔和相位偏移量决定的。

请参阅/234/,以了解OB的启动时间、周期以及相位偏移量之间的关系。

注意:

必须确保每个循环中断OB的运行时间远远小于其时间间隔。

如果因时间间隔已到期,如果在预期的再次执行前未完全执行循环中断OB,则启动时间错误OB(OB80)。

稍后将执行导致错误的循环中断。

可使用SFC39至42来禁用或延迟,并重新启用循环中断

请参阅用户特定CPU的说明书,了解参数时间间隔、优先级和相位偏移量的范围。

可使用STEP7来更改参数设置。

循环中断OB的本地数据

下表给出了循环中断OB的临时(TEMP)变量。

变量名为OB35的默认名称。

 

变量类型描述

OB35_EV_CLASSBYTE事件等级和标识符B#16#11:

中断处于激活状态

OB35_STRT_INFBYTEB#16#30:

H系统中周期性中断组织块的特殊启动请求(选择了特殊处理,用于切换到"冗余"系统状态)?

B#16#31:

OB30的启动请求。

B#16#36:

OB35的启动请求。

B#16#39:

OB38的启动请求。

B#16#3A:

周期性中断组织块(OB?

0至OB?

8)的启动请求,要求周期性中断时钟速率低于1毫秒

OB35_PRIORITYBYTE分配的优先级:

默认值为7(OB30)至15(OB38)

OB35_OB_NUMBRBYTEOB编号(30至38)

OB35_RESERVED_1BYTE保留

OB35_RESERVED_2BYTE保留

OB35_PHASE_OFFSETWORD如果OB35_STRT_INF=B#16#3A:

以靤为单位表示的相位偏移?

在其它情况下:

相位偏移以毫秒为单位

OB35_RESERVED_3INT保留

OB35_EXC_FREQINT如果OB35_STRT_INF=B#16#3A:

以靤为单位表示的循环时间?

在其它情况下:

时间间隔(单位为ms)

OB35_DATE_TIMEDATE_AND_TIME调用OB时的DATE_AND_TIME

硬件中断组织块(OB40至OB47)

描述

S7提供了多达八个的独立硬件中断,每一中断都具有自己的OB。

通过STEP7分配参数,可以为将要触发硬件中断的每个信号模块指定以下内容:

1)在何种条件下触发硬件中断的通道。

2)要分配给个别通道组的硬件中断OB(默认情况下,将由OB40来处理所有的硬件中断)。

借助于CP和FM,可使用其各带软件来分配这些参数。

可使用STEP7选择各个硬件中断OB的优先级。

了解硬件中断OB的操作

在模块触发硬件中断后,操作系统将标识插槽以及相应的硬件中断OB。

如果此OB的优先级高于当前激活的优先级,则将启动该OB。

当执行完此硬件中断OB后,将发送通道指定的确认。

如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中断的另一事件,则应用以下规则:

1)如果该事件发生在先前触发硬件中断的通道中,则新中断丢失。

在下图中,将根据数字输入模块的通道实例对此进行说明。

触发事件是上升沿。

硬件中断OB是OB40。

2)如果该事件发生在同一模块的另一通道中,通常不会触发任何硬件中断。

然而此中断不会丢失,而是在确认当前激活的硬件中断后被触发。

如果因来自另一模块中的硬件中断而使某一硬件中断被触发,并且其OB当前处于激活状态,则将记录新请求并且在OB空闲时对其进行处理。

可使用SFC39至42来禁用或延迟,并重新启用硬件中断。

既可以使用STEP7,也可以使用SFC55至57为模块的硬件中断分配参数。

硬件中断OB的本地数据

下表给出了硬件中断OB的临时(TEMP)变量。

变量名为OB40的默认名称。

 

变量类型描述

OB40_EV_CLASSBYTE事件等级和标识符:

B#16#11:

中断处于激活状态

OB40_STRT_INFBYTEB#16#41:

通过中断线1中断。

B#16#42:

通过中断线2中断(仅限S7-400)?

B#16#43:

通过中断线3中断(仅限S7-400)。

B#16#44:

通过中断线4中断(仅限S7-400)?

B#16#45:

WinAC:

通过PC触发中断注意:

将中断行1,?

4分配给多处理模式中的CPU1,?

4。

OB40_PRIORITYBYTE分配的优先级:

默认值为16(OB40)至23(OB47)

OB40_OB_NUMBRBYTEOB编号(40至47)

OB40_RESERVED_1BYTE保留

OB40_IO_FLAGBYTE输入模块:

B#16#54输出模块:

B#16#55

OB40_MDL_ADDRWORD触发中断的模块的逻辑基址

OB40_POINT_ADDRDWORD对于数字模块:

触发硬件中断的模块上带输入的位域OB40_POINT_ADDR的哪一位分配给模块的哪个通道可在相关模块的说明中找到。

对于模拟模块:

位域包含表示哪个通道超出何种限制的信息(要获取清晰的结构描述,请参考/71/或/101/)。

对于CP或IM:

模块的中断状态(与用户无关)

OB40_DATE_TIMEDATE_AND_TIME调用OB时的DATE_AND_TIME

注意:

如果使用呢具有DPV1功能的CPU,可借助于SFB54"RALRM"获取有关中断的其它信息,这些信息不止包含OB的起始信息。

在S7兼容模式下操作DP主站时,这一点也同样适用。

状态中断OB(OB55)

注意:

状态中断OB(OB55)仅对具有DPV1功能的CPU可用。

描述

如果状态中断是通过DPV1从站的插槽触发,则CPU操作系统调用OB55。

如果DPV1从站的组件(模块或机架)更改了其工作模式(例如由RUN改为STOP),则可能会发生这种情况。

有关可触发状态中断的事件的详细信息,请参阅DPV1从站制造商的文档。

状态中断OB的本地数据

下表给出了状态中断OB的临时(TEMP)变量。

所选变量的名称为OB55的默认名称。

变量数据类型描述

OB55_EV_CLASSBYTE事件等级和标识符:

B#16#11(即将发生的事件)

OB55_STRT_INFBYTE?

B#16#55:

DP的状态中断?

B#16#58:

PNIO的状态中断

OB55_PRIORITYBYTE已组态的优先级,默认值为2

OB55_OB_NUMBRBYTEOB编号(55)

OB55_RESERVED_1BYTE保留

OB55_IO_FLAGBYTE输入模块:

B#16#54输出模块:

B#16#55

OB55_MDL_ADDRWORD中断触发组件(模块)的逻辑基址

OB55_LENBYTE中断所提供的数据块长度

OB55_TYPEBYTE中断类型"状态中断"的ID

OB55_SLOTBYTE中断触发组件(模块)的插槽号

OB55_SPECBYTE说明符?

位0至1:

中断说明符?

位2:

Add_Ack?

位3至7:

顺序号

OB55_DATE_TIMEDATE_AND_TIME调用OB时的日期和时间

注意通过OB55调用SFB54"RALRM",可获得DP消息帧所含中断的完整辅助信息。

如果要对依赖于启动事件的OB55进行编程,建议按如下方式组织局部变量:

变量数据类型

OB55_EV_CLASSBYTE

OB55_STRT_INFBYTE

OB55_PRIORITYBYTE

OB55_OB_NUMBRBYTE

OB55_RESERVED_1BYTE_

OB55_IO_FLAGBYTE

OB55_MDL_ADRWORD

OB55_Z2WORD

OB55_Z3WORD

OB55_DATE_TIMEDATE_AND_TIME

根据启动事件,变量OB55_Z2和OB55_Z3包含不同的信息。

详细说明如下。

OB55_Z2的含义

OB55_ST

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1