您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > s7-300功能组织块说明
组织块(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时间中断12OB12时间中断22OB13时间中断32OB14时间中断42OB15时间中断52OB16时间中断62OB17时间中断72OB20延时中断03未指定默认时间OB21延时中断14OB22延时中断25OB23延时中断36OB30循环中断0(默认时间间隔:5s)7OB31循环中断1(默认时间间隔:2s)8OB32循环中断2(默认时间间隔:1秒)9OB33循环中断3(默认时间间隔:500sms)10OB34循环中断4(默认时间间隔:200sms)11OB35循环中断5(默认时间间隔:100sms)12OB36循环中断6(默认时间间隔:50sms)13OB37循环中断7(默认时间间隔:20sms)14OB38循环中断8(默认时间间隔:10sms)15OB40硬件中断016循环中断OB41硬件中断117OB42硬件中断218OB43硬件中断319OB44硬件中断420OB45硬件中断521OB46硬件中断622OB47硬件中断723OB55状态中断2DPV1中断OB56更新中断2OB57制造商特定中断2OB60SFC35MP_ALM调用25多处理中断OB61同步循环中断125OB62同步循环中断225OB63同步循环中断325OB64同步循环中断425OB65技术同步中断25技术OB70I/O冗余错误(仅在HCPU中)25冗余错误中断OB72CPU冗余错误(仅在HCPU中)28OB73通讯冗余错误OB(仅在HCPU中)25OB80时间错误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处理中断28OB90暖重启或冷重启,或删除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。您可设置一个新值,也可在用户程序中的任意位置使用SFC43RE_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优先级1OB1_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设置时间中断,然后通过调用程序中的SFC30ACT-TINT来激活它。3)通过调用SFC28SET_TINT来设置时间中断,然后通过调用SFC30ACT_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分配的优先级;默认值为2OB10_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,并且您在调用
本文标题:s7-300功能组织块说明
链接地址:https://www.777doc.com/doc-6159917 .html