step7-ob组织块介绍和使用技巧
阅读指南:在ob1中,您可以调用FB、SFB、FC、SFC和其他用户程序,使它们循环执行。除ob90外,ob1的优先级最低,可以被其他ob中断。ob1的默认扫描监控时间为150ms(可设置)。扫描超时时,CPU自动调用B80并报告错误。如果程序中未建立ob80,CPU将进入停止模式。
每种类型的ob块的分析及其使用方法:
1.自由循环组织块ob1
s7cpu启动完成后,操作系统循环执行ob1,ob1执行完成后,操作系统再次启动ob1。在ob1中可以调用fb、sfb、fc、sfc等用户程序使其循环执行。
除ob90外,ob1的优先级最低,可以被其他ob中断。ob1的默认扫描监控时间为150ms(可设置)。扫描超时时,CPU自动调用B80并报告错误。如果程序中未建立ob80,CPU将进入停止模式。
2、日期中断组织块ob10~ob17
在CPU属性中,可以设置日期中断组织块ob10~ob17触发的日期、执行模式等参
数(在达到设置的触发日期后,OB仅执行一次或按每分钟、小时、周和月的周期执行)。当CPU的日期值大于设置的日期值时,根据设置的模式触发并执行相应的ob。在用户程序中,您还可以调用sfc28系统函数来设置CPU日期中断的参数,并调用sfc30来激活日期中断并将其投入运行,
与在cpu属性中的设置相比,通过用户程序,可以在cpu运行时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个ob进行设置。
3.延时中断块ob20~ob23
时间延迟中断组织块ob20~ob23的优先级及更新过程映像区的参数需要在cpu属性中设置,通过调用系统函数sfc32触发执行,ob号及延迟时间在sfc32参数中设定,
延迟时间为1~60000ms,远优于定时器的精度。
4、循环中断组织块ob30~ob38
循环中断组织块ob30~ob38根据设定的时间间隔循环执行。循环中断间隔在CPU属性中设置。每个ob的默认时间间隔不同。例如,B35的默认时间间隔为100ms,ob35中的应用程序每100ms调用一次。时间间隔可自由设置,最小时间间隔不得小于55ms。OB中用户程序的执行时间必须小于设置的时间间隔。如果间隔较短,则会再次调用OB,因为循环中断OB没有完成程序扫描,导致CPU故障并触发ob80错误。如果程序中未创建ob80,CPU将进入停止模式。通过调用sfc39~sfc42系统函数,可以禁止、延迟和启用循环中断的调用。
循环中断组织块通常处理需要固定扫描周期的用户程序,例如pid函数块通常需在循环中断中调用以处理积分时间的计算。
5.硬件中断组织块ob40~ob47
硬件中断也叫过程中断,由外部设备产生,例如功能模块fm、通信处理器cp及数字量输入、输出模块等。通常使用具有硬件中断的数字量输入模块触发中断响应,然后为每一个模块配置相应的中断ob(一个模块只能良一个中断ob,s7-300系列plccpu只能触发硬件中断ob40),在模块配置中可以选择输入点的上升沿、下降沿或全部作为触发中断ob的事件。
当配置中发生中断事件时,中断主程序,在中断ob中执行用户程序一个周期,然后跳回中断继续执行主程序。与普通输入信号相比,使用中断无需主程序扫描和处理图像区域更新时间,适用于需要快速响应的应用。
如果输入模块中的一个通道触发硬件中断,操作系统将识别模块的槽号及触发相应的ob,中断ob执行之后发送与通道相关的确认。在识别和确认过程中,该通道再次触发的中断事件将丢失;
如果模块的其他通道触发中断事件,中断将不会丢失,并将在确认当前运行的中断后触发;如果是由不同模块触发的中断事件,则记录中断请求,并在空闲时触发中断ob(没有来自模块其他通道的中断请求)。
通过调用sfc39~sfc42系统函数可以禁止、延迟、使能硬件中断的调用。
6.Dpv1中断组织块ob55~ob57
cpu响应profibus-dpv1从站触发的中断信息。
7.多处理器中断组织块ob60
用于s7-400系列plc多cpu(一个机架中最多插入4个cpu完成同一个复杂任务)处理功能,通过调用sfc35,可以触发ob60在多个cpu中同时执行。
因篇幅问题不能全部显示,请点此查看更多更全内容