在SIMATIC S7中,用户的程序都维护在一个个的逻辑块中。Block是用户程序最重要的组成部分。STEP 7有三大类块: 1、逻辑块 Logic blocks:OB、FB、FC、SFB、SFC五种 2、数据块 Data blocks:DB、SDB 3、用户自定义数据类型 User-defined data types:UDT 今天,我们一起探讨一下OB块,并着重介绍一下OB1。 OB即组织块(Organization block)。它是指CPU的操作系统与用户程序之间的接口。OB用于执行特定的程序段:
组织块按照已分配的优先级来执行。 OB块大致可以分为以下几类:
等等。。。 Siemens的S7系列CPU,提供了丰富的组织块,我们可以根据实际需求,灵活的调用相应的组织块,完成既定的控制目标。 程序循环组织块OB1 OB1是S7程序的入口,它与C语言中的main()函数有些许类似。系统上电、自检、启动完成后,系统会周期性的执行OB1。我们用户可以在OB1中编写控制程序,处理输入数据、控制输出设备,以完成生产控制要求。 在所有的OB块中,OB1的优先级最低,除了OB90外的所有其他OB块都能中断OB1的执行。 OB1执行后,系统会发送全局数据。在再次执行OB1之前,系统会做以下三件事:
S7会监控程序的扫描时间。系统预设的最大扫描周期为150ms(改时间可更改),同时通过调用SFC43可以重启时间监控。如果OB1的程序执行时间超过了最大扫描周期,系统会调用OB80(时间错误中断),进行中断响应。如果OB80没有专门编程,CPU则会进入STOP模式。 系统除了最大扫描周期之外,还有最小扫描周期。如果OB1程序太小,执行完一次后,仍未达到最小扫描周期,程序会停止执行,直到其达到最小扫描周期。 一个良好的编程习惯是,每类现场设备的控制程序最好编写在独立的FB块或FC块中,然后在OB1中根据需要,随时调用相应的块即可。 下一篇我们将汇总一下FB块、FC块以及DB块的功能和编程要点,尽请期待。 |
|