怀化西门子PLC总代理商
PLC程序块调用和线性化结构化编程
STEP7的主程序结构如图3-3所示。从图中可以看出,操作系统自动循环扫描OB1,OB1安排其他程序块的调用条件和调用顺序。FC和FB可以互相调用。功能块FB1后面的阴影部分表示伴随着FB的背景数据块。程序块的调用与计算机中子程序的调用情况相同。程序块的调用情况如图3-4所示。
线性化编程与结构化编程
如果把整个用户程序都写在OB1中,操作系统会自动地按顺序扫描处理OB1中的每一条指令并不断地循环,这种编程方式就称为线性化编程。这种梯形图程序如果打印出来,看起来就和继电控制原理展开图很像。这种编程方式简单明了,适合比较简单的控制任务,是许多小型PLC常采用的编程方式。
但是,这种编程方式存在若干原理性的缺陷。首先,这种编程方式浪费了CPU的一些资源。因为,在这种编程方式下,CPU在每个扫描周期都要处理程序中的全部指令,而实际上许多指令并不需要每个扫描周期都去处理。例如,在机器手动操作的时候,与自动操作相对应的程序就不需要处理;反之亦然。其次,它不利于在比较复杂的程序编制时的分工合作,主要的是它不利于程序的结构化。
所谓结构化编程,是对应于一些典型的控制要求编写通用的程序块,这些程序块可以反复被调用以控制不同的目标。这些通用的程序块就称为结构,利用各种结构来组成程序就称为结构化编程。要实现结构化编程有两个必要条件:一是程序能够分割;二是能够实现参数赋值。S7程序是由块组成的,程序块也可以实现参数赋值,所以可以实现结构化。结构化编程除了可以避免上述缺点外,还有许多优点。它使程序通用化、标准化,缩短了程序的长度,减少编程工作量。