1
PLC编程实用指南
1.12.3.2 8.3.2  S7-300、400机多模块组织
8.3.2 S7-300、400机多模块组织

西门子高档PLC的程序是分成模块组织的。S5型的模块有5种:组织块(OB)、顺序块(SB)、程序块(PB)、功能块(FB)及数据块(DB)。而每种模块都应有不同的编号。S7型机则分成3种,即组织块(OB)、程序块(FC、不带参数或FB、带参数)及数据块(DB)。这些块与欧姆龙的任务有相同,而又有不同。

在这几块程序中,OB1块是重复地被扫描。即执行一次之后,又从头开始执行,始终不停。而有的组织块,只是定时或出现中断时执行,有的在PLC从停止到运行时执行一次等。其他块,则由指令或事件调用。

如果程序不复杂,可只在OB1中,编写所有用户程序,这种编程,西门子称之为线性编程。由于OB1是重复地被扫描,故可按程序要求实现控制。

如果程序复杂,其基本部分(需重复地被扫描的)放在OB1中。其余的,如中断工作的,初始化工作的等,放在其他组织块中。而且组织块中的程序,可调用块的语句,如Call语句,调其他程序块。

以S7型机为例,最简单的为模块编程可以这么编:

在OB1块中,编两个调程序块的指令:即Call FC1及Call FC2;

在FC1块中,编写实现某个动作控制的一组指令;

在FC2块中再编实现另一个动作控制的指令……

这样,只要这3个程序块下载给PLC,再加上PLC中出厂装的其他系统程序块,PLC运行后,即可实现对这两个动作的控制。

如果要求再对第三个动作做控制,可在原有的FC1或FC2中修改程序;也可再增加一个程序块,如FC3,并在OB1中增加一条调FC3的语句;然后再下载给PLC,即可实现。后者自然要简便得多。它不会对原已设计好的程序块产生干扰。

显然,这里的FC块,与CJ机的循环任务有点类似。只是FC须调用,不调不工作。而循环任务,默认是要调用。停止调用要用TKOF指令。

FB可设参数,可带参数调用。为面向对象编程提供方便。FB设有参数,所以使用应定义一个数据块与其绑定,并供其使用。

除了OB1,还有其他编号组织块。标号不同,功能也不同。只是它用于定时处理的很多。还有出错处理,多CPU管理,启动管理等。当然,外中断处理也不少。再如有的仅运行一个扫描周期的,如OB100,在暖启动时,运行一个周期,OB101,在热启动时,运行一个周期,OB102,在冷启动时,运行一个周期。S7-300、400无类似欧姆龙PLC那样启动时ON一个周期的特殊继电器,故用这几个组织块处理。

前已提及,S7-300、400机还有数据块,DB。数据块有两种:共享数据块及专用数据块(与FB绑定)。这些数据块也都是程序的一个不可分割的组成模块。

在任一组织块或函数块中,可用OPEN指令打开共享数据块。打开后,可直接使用该块所定义变量。如未打开也可使用,只是在使用时,要指明使用的数据块编号。

除了以上用户的编程模块。S7-300、400机的编程软件,STEP 7还提供有系统函数块及系统功能块。如第3章介绍的PID控制用的功能块FB41,即为系统功能块。厂商开发的这些函数块及功能块,既增强了PLC的功能,又简化了编程。并为面向对象编程创造了条件。

西门子高档PLC是最早使用多模块组织它的程序的。其技术比较成熟。它不仅可多模块编程,还可分模块下载程序、调试程序。下载时,PLC还可不停机,使用起来也比较方便。