文档介绍:第五章程序结构
三种编程方法:
(一)线性编程
线性编程将整个用户程序写在一个指令连续的块中,处理器线性地或
顺序地扫描程序的每条指令。
(二)分部编程
分部式编程将用户程序分成相对独立的指令块、每个块包含给定的部
件组或作业组的控制逻辑。
(三)结构化编程
结构化编程要求用户程序提供一些通用的指令块,以便控制一类相似
或相同的部件,给通用指令提供的参数进一步说明各部件的控制差异。
为了支持结构化程序设计,STEP 7将用户程序分类归并为不同的块,
根据程序要求,可选用组织块(OB)、功能块(FB)、或功能(FC)
三种类型的逻辑块,而数据块(DB)或(DI)则用来存储执行用户程
序时所需的数据。
数据块及其数据结构
用户程序运行所需的大量数据或变量存储在数据块中,数据块也是实现各逻辑块之间交换、传递和共享数据的重要途径。
对于CPU 314,用作数据块的存储器最多8KB,用户定义的数据总量不能超过这个限制。对于数据块必须遵循先定义后使用的原则。
1. 定义数据块
定义内容包括数据块号及块中的变量(包括:变量符号名,数据类型以
及初始值等)。数据块在使用前,必须作为用户程序的一部分下载到CPU
中。
2. 访问数据块
访问时需要明确数据块号和数据块中的数据类型与位置。根据明确数据
块号的不同方法,可以用以多种方法访问数据块中的数据。
(一)直接在访问指令中写明数据块号,如:
L 0
L 2
XOW
T 4
(二)“先打开后访问”
OPN DB 5
L DBW 10
OPN DB 10
T DBW 20
由于有两个数据块寄存器(DB和DI寄存器),所以,最多可以同时打
开两个数据块。一个作为背景数据块,数据块的起始地址存储在DI寄存
器中;另一个作为共享数据块,数据块的起始地址存储在DB寄存器中。
打开背景数据块,在调用FB时可以自动实现,由于调用FB时使用DI
寄存器,所以,一般不在FB程序中用OPN DI n指令打开数据块。
3. 背景数据块和共享数据块
任何FB、FC或OB均可读写存放在共享数据块中的数据。背景数据块
是FB运行时的工作存储区,它存放FB的部分运行变量。调用FB时,
必须指定一个相关的背景数据块。作为规则,只有FB块才能访问存放
在背景数据块中的数据。一般情况下,每个FB都有一个对应的背景数
据块,一个FB也可以使用不同的背景数据块。如果几个FB需要的背景
数据完全相同,为节省存储器,则可以定义成一个背景数据块,供它们
分别使用。
数据结构
基本数据类型
数据结构形式复式数据类型
复式数据类型
名称
类型
说明
日期-时间
DATE_AND_TIME
长度8Byte
字符串
STRING
占用256Byte
数组
ARRAY
可定义6维数组
构造
STRUCT
由多种数据类型组成的数据集合
用户数据类型
STEP 7允许将基本或复式组合成“用户”自已定义的数据类型,这种类
型称为用户数据类型(UDT)。用户数据类型必须首先单独建立,并存