quote:以下是引用sunyy在2011-04-26 09:31:26的发言:
OB组织块一览表
OB编号 启动事件 默认优先级 说明
OB1 启动或上一次循环结束时执行OB1 1 主程序循环
OB10~OB17 日期时间中断0~7 2 在设置的日期时间启动
OB20~OB23 时间延时中断0~3 3~6 延时后启动
OB30~OB38 循环中断0~8时间间隔
分别为5s,2s,1s 7~15 以设定的时间为
500ms,200ms,100ms,
50ms,20ms,10ms
周期运行
OB40~OB47 硬件中断0~7 16~23 检测外部
中断请求时启动
OB55 状态中断 2 DPV1中断
(profibus-dp)
OB56 刷新中断 2
OB57 制造厂特殊中断 2
OB60 多处理中断,调用SFC35时启动 25 多处理中断的同步操作
OB61~64 同步循环中断1~4 25 同步循环中断
OB70 I/O冗余错误 25 冗余故障中断
OB72 CPU冗余错误,例如一个CPU发生故障 28 只用于H系列的CPU
OB73 通行冗余错误中断,例如冗余连接的冗余丢失 25
OB80 时间错误 26启动为28
OB81 电源故障 27启动为28
OB82 诊断中断 28启动为28
OB83 插入/拔出模块中断 29启动为28 异步错误中断
OB84 CPU硬件故障 30启动为28
OB85 优先级错误 31启动为28
OB86 扩展几架、DP主站系统或分布式I/O站故障 32启动为28
OB87 通行故障 33启动为28
OB88 过程中断 34启动为28
OB90 冷、热启动、删除或背景循环 29 背景循环
OB100 暖启动 27
OB101 热启动 27 启动
OB102 冷启动 27
OB121 编程错误 与引起中断的 同步错误中断
OB122 I/O访问错误 OB相同
这个介绍是资料上的,已经介绍的比较详细了。ob的执行的时候如果在同一个时刻有多个ob需要执行,则先执行优先级高的ob,正在执行的其他ob暂时中断,在高优先级的ob执行结束后在由断点处继续其他ob。
ob1:循环扫描ob,它是没有时间间隔的,执行完ob1后就会再次从头开始执行ob1,所以外部输入的模拟量数据转换成工程量的程序在ob1中执行,使得数据能够及时更新。
ob10~ob23:一般很少用到。
ob30~ob38:ob33和ob35是常用的,和时间有关的程序一般都是放在这些ob中得,比如利用pid控制的程序块,要求不是很严格的时间处理功能,当定时器不够用的时候自己编写的类似定时器的程序块。
ob100~ob102:这些ob只是在cpu不同的启动模式下启动一次,所有一些初始化的程序可以写在这些ob中。
其他ob就不常用了。