西门子OB块使用说明
- 格式:pdf
- 大小:9.11 MB
- 文档页数:41
每种类型的OB块的分析及其使用方法: 1、自由循环组织块OB1S7 CPU启动完成后,操作系统循环执行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属性中的设置相比,通过用户程序,可以^PU运行时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个)B进行设置。
3、时间延迟中断组织块OB20〜OB23时间延迟中断组织块OB20〜OB23的优先级及更新过程映像区的参数需要在CPU属性中设置,通过调用系统函^FC32触发执行,OB号及延迟时间在SFC32参数中设定,延迟时间为1〜60000ms,大大优于定时器精度。
4、循环中断组织块OB30〜OB38循环中断组织块OB30〜OB38按设定的时间间隔循环执行,循环中断的间隔时间在CPU属性中设定,每一个^默认的时间间隔不同,例如)B35默认的时间间隔为100ms,在OB35中的用程序将每隔100ms调用一次,时间间隔可以自由设定,最小时间间隔不能小于55ms。
OB中的用户程序执行时间必须小于设定的时间间隔,如果间隔时间较短,由于循环中断OB没有完成程序扫描而被再次调用,从而造成CPU故障,触发OB80报错,如果程序中没有创建OB80, CPU进入停止模式。
西门子 PLC中OB、FC、FB、SFC、SFB中功能块使用概述(2013-12-05 16:13:52)S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。
结合起来就能实现一个复杂的控制系统。
就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。
FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能FB运行时需要调用各种参数,于是就产生了背景数据块DB。
例如用FB 41来作PID控制,则它的PID控制参数就要存在DB里面。
FB具有储存功能系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB 和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。
SFC与FC不具有储存功能,FB和SFB具有储存功能。
OB模块相当于子程序,负责调用其他模块。
如果程序简单只需要OB就可以实现。
用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?FB--功能块,带背景数据块FC--功能,相当于函数他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。
FB确保了3个电机的参数互不干扰。
FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。
他们的最大区别是,FB与DB配合使用,DB中保存着F B使用的数据,即使FB退出后也会一直保留。
FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。
1、自由循环组织块OB1S7CPU启动完成后,操作系统循环执行OB1,OB1执行完成后,操作系统再次启动OB1。
在OB1中可以调用FB、SFB、FC、SFC等用户程序使其循环执行。
除OB90以外,OB1优先级最低,可以被其他OB中断。
OB1默认扫描监控时间为150ms(可设置),扫描超时,CPU自动调用OB80报错,如果程序中没有建立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默认的时间间隔不同,例如OB35默认的时间间隔为100ms,在OB35中的用程序将每隔100ms调用一次,时间间隔可以自由设定,最小时间间隔不能小于55ms。
OB中的用户程序执行时间必须小于设定的时间间隔,如果间隔时间较短,由于循环中断OB没有完成程序扫描而被再次调用,从而造成CPU故障,触发OB80报错,如果程序中没有创建OB80,CPU进入停止模式。
组织块(Organization Blocks,简称OB)提供了PLC内部CPU操作系统与用户程序间的接口,它是由CPU操作系统直接进行调用的逻辑块,用来管理PLC程序中各组成部分的调用和执行中断。
OB决定了PLC用户程序的结构与块的调用顺序,起到了“管理”用户程序的作用。
S7-300/400不同的CPU类型,可以选择、支持不同的OB块,但OB1是所有PLC用户程序的循环控制块,它是运行PLC用户程序的前提条件,因此,任何PLC程序、任何CPU都不可以缺少OB1。
OB块的调用条件被称为“触发事件”,根据“触发事件”的不同,OB块可以分为若干级别,各个级别有不同的优先级,高优先级的OB可以中断低优先级OB 的执行。
如果需要,S7系列PLC除OB1外,还可以使用多个OB块。
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
1.延时中断OB块的功能简单来说延时中断OB块就是,延时中断OB块在经过一段指定的时间延时后,才执行相应的OB块中的程序。
S7-1200 最多支持4 个延时中断OB块,通过调用“SRT_DINT”指令启动延时中断OB块。
在使用“SRT_DINT”指令编程时,需要提供OB 号、延时时间,当到达设定的延时时间,操作系统将启动相应的延时中断OB块;尚未启动的延时中断OB块也可以通过“CAN_DINT”指令取消执行,同时还可以使用“QRY_DINT”指令查询延时中断的状态。
延时中断OB 的编号必须为20~23,或大于、等于123,比如OB20。
3.延时中断OB 块的执行过程(1)调用“SRT_DINT”指令启动延时中断;(2)当到达设定的延时时间,操作系统将启动相应的延时中断OB块;(3)图例中,延时中断OB20 中断程序循环OB1 优先执行;(4)当启动延时中断后,在延时时间到达之前,调用“CAN_DINT”指令可取消已启动的延时中断。
4.延时中断OB块使用示例例如:当I0.1由1变成0,延时6秒后启动延时中断OB20,并输出Q0.0置位。
(1)按如下步骤创建延时中断OB20 。
如图1图1(2)打开OB20,在OB20 中编程,当延时中断执行时,置位Q0.0。
如图2图2(3)在OB1 中编程调用“SRT_DINT”指令启动延时中断;调用“CAN_DINT”指令取消延时中断;调用“QRY_DINT”指令查询中断状态。
在“指令->扩展指令->中断->延时中断”中可以找相关指令,如图3图3(4)调用延时中断指令。
如图4“QRY_DINT”指令参数说明:图4(5)测试结果:当I0.1由1变0时,延时6s后延时中断执行,可看到CPU 的输出Q0.0 指示灯亮;当I0.1由1变0时,在延时的6s到达之前,如果I0.2由0变1则取消延时中断,OB20 将不会执行。