5.2.1 STEP7程序的设计方法
1.编程方法
STEP7为设计程序提供了三种方法,即线性化编程、模块化编程、结构化编程。可以选择最适合自己的程序设计方法。
(1)线性化编程 所有的程序都在一个连续的指令块中。这种结构和PLC所代替的固定接线的继电器线路类似。系统按照顺序处理各个指令。
(2)模块化编程 程序分成不同的块,每个块包含了一些设备和任务的逻辑指令。组织块中的指令决定是否调用有关的控制程序模块。例如,一个模块程序包含有一个被控加工过程的各个操作模式。
(3)结构化编程 结构化程序包含带有参数的用户自定义的指令块。这些块可以设计成一般调用。实际的参数(输入和输出的地址)在调用时进行赋值。一个带参数的程序块的例子如下:一个“泵控”块含有对泵的操作指令,控制泵的输入和输出信号。对泵进行控制的程序块负责调用(打开)“泵控”块,并指出哪个泵要进行控制。当“泵控”块完成其操作指令后,程序返回到调用块(如OB1),然后,继续执行其他的指令。
2.程序块类型
程序块分为用户块和系统块。
(1)用户块 用户块包括程序代码和用户数据。在结构化程序中,一些块循环调用处理,一些块需要时才调用。(https://www.daowen.com)
(2)系统块 系统块是在CPU操作系统中预先定义好的功能和功能块。这些块不占用用户程序空间,用户程序调用系统块,在整个系统中这些块具有相同的接口、相同的标示和相同的号。用户程序可以容易地转换到不同的CPU或PLC中,如下图所示。

组织块(OB)构成了S7CPU和用户程序的接口。可以把全部程序存在OB1中,让它连续不断地循环处理。也可以把程序放在不同的块中,在需要的时候用OB1调用这些程序块。除OB1外,操作系统根据不同的事件可以调用其他的OB块,例如时间—日期中断、周期时间中断、诊断中断、硬件中断、故障处理中断、硬件启动。
功能块(FB)是在逻辑操作块内的功能或功能组,在操作块内分配有存储器,并存储变量。FB需要这个背景数据块形式的辅助存储器,通过背景数据块传递参数,而且,一些局部参数也保存在此区,其他的临时变量存在局部堆栈中。保存在背景数据块内的数据,当功能块关闭时数据仍保存,而保存在局部堆栈中的数据不能保存。
功能(FC)是类似于功能块的逻辑操作块,但是,其中不分配存储区。FC不需要背景数据块。临时变量保存在局部堆栈中,直到功能结束。当FC执行结束时,使用的变量要丢失。
数据块(DB)是一个永久分配的区域,其中保存其他功能的数据或信息。数据块是可读/写区,并作为用户程序的一部分转入CPU。
系统功能块(SFC)是集成在S7CPU中的已经编程并调试过的功能。这些块支持的一些任务是设置模块参数、数据通信和复制功能等。用户程序可以不用装载直接调用SFC,SFC不需要分配数据块。
系统功能块(SFB)是S7CPU的集成功能。由于SFB是操作系统的一部分,用户程序可以不用装载直接调用SFB。SFB需要分配背景数据块DB,数据块必须作为用户程序的一部分装到CPU中。
系统数据块(SDB)是由不同STEP7工具产生的程序存储区,存有操作控制器的必要数据。SDB中存有一些信息,如组态数据、通信连接和参数。