S7系列程序结构与程序设计.pdf
第5章S7系列程序结构与程序设计
第5章S7系列程序结构与程序设计
5.1编程方式与程序块
5.2数据块与数据结构
5.3S7系列PLC程序设计
思考与练习题
第5章S7系列程序结构与程序设计
5.1编程方式与程序块
5.1.1S7-300编程方式简介
S7-300系列PLC的编程语言是STEP7。用文件块的形式管
理用户编写的程序及程序运行所需的数据,组成结构化的用户
程序。这样,PLC的程序组织明确,结构清晰,易于修改。
为支持结构化程序设计,STEP7用户程序通常由组织块
(OB)、功能块(FB)或功能块(FC)等三种类型的逻辑块和数据块
(DB)组成。
OB1是主程序循环块,在任何情况下,它都是需要的。
第5章S7系列程序结构与程序设计
共享DB
FB/SFBFC/SFC
操
作背景DB
OB
系
统
FB/SFBFC/SFC
背景DB
共享DB
图5.1STEP7调用过程示意图
第5章S7系列程序结构与程序设计
功能块(FB、FC)实际上是用户子程序,分为带“记忆”的功
能块FB和不带“记忆”的功能块FC。FB带有背景数据块
(InstanceDataBlock),在FB块结束时继续保持,即被“记忆”。
功能块FC没有背景数据块。
数据块(DB)是用户定义的用于存取数据的存储区,可以被
打开或关闭。DB可以是属于某个FB的情景数据块,也可以是通
用的全局数据块,用于FB或FC。
S7CPU还提供标准系统功能块(SFB、SFC),集成在S7
CPU中的功能程序库。用户可以直接调用它们,由于它们是操
作系统的一部分,因此不需将其作为用户程序下载到PLC。
第5章S7系列程序结构与程序设计
5.1.2功能块编程及调用
功能块由两个主要部分组成:
•变量声明表:声明此块的局部数据
•程序:要用到变量声明表中的局部数据
当调用功能块时,需要参数传递。参数传递的方式使得功
能块具有通用性,它可被其它的块调用,以完成多个类似的控
制任务。
第5章S7系列程序结构与程序设计
1.变量声明表(局部数据)
每个逻辑块前部都有一个变量声明表,在变量声明表中定
义逻辑块用到的局部数据。表5.1给出了局部数据声明类型。
表5.1局部数据类型
变量名类型说明
输入参数In由调用逻辑块的块提供数据,输入给逻辑块
输出参数Out向调用逻辑块的块返回参数,从逻辑块输出的数据
I/O参数In_Out参数的值由调用块的块提供,运算然后返回
静态变量Stat存储在背景数据块中,块调用后,其内容被保留
临时变量Temp存储在L堆栈中,块执行结束变量的值被丢掉
第5章S7系列程序结构与程序设计
1)形参
为保证功能块对同一类设备控制的通用性,应使用这类设
备的抽象地址参数,这些抽象参数称为形式参数,简称形参。
功能块在运行时将该设备的相应实际存储区地址参数(简称