;1项目引入;2控制要求;3学习目标;4项目任务;明确学习目标,做到有的放矢;;;1线性编程;1线性编程;2模块化编程;2模块化编程;3结构化编程;3结构化编程;;;1用户程序中的块;1用户程序中的块;2组织块OB;2组织块OB;2组织块OB;2组织块OB;3功能FC;4功能块;5数据块;5数据块;6块的调用;6块的调用;;;(1)数据块的功能
用户程序中除了逻辑程序外,还需要对存储过程状态和信号信息的数据进行处理。
数据的存储地址包括I/0映像区、位存储区、局部存储区和数据块等。数据块包含用户程序中使用的变量数据、它们用来保存用户数据,需要占用用户存储器的空间。
数据块(DataBlock)简称DB
功能:用于保存程序执行期间产生的数据。
类似于仓库,仓库用来存放物品,数据块用来存放数据。仓库里面可以存放各种不同的物品,数据块可以存放各种不同类型的数据。;1数据块DB的基础知识;数据块
(根据使用
方法不同);1数据块DB的基础知识;2创建数据块;数据块的声明表结构如图所示,其显示会因块类型和访问方式而不同。;2创建全局数据块;3访问数据块;3访问数据块;3访问数据块;4数据块的使用示例;数据块_2[DB10];?;;;1函数(FC);1函数(FC);2生成与调用函数;FC在应用时有两个层次
1.程序中所有指令使用全局数据块中的地址;简单的理解为程序分割。
示例:控制多台电动机的起停
2.程序中所有指令使用局部变量;可以做成具有特定功能的块。
示例:控制多台电动机的起停;FC在应用时有两个层次;2生成与调用函数;2生成与调用函数;(2)定义FC的局部变量;在接口区可以生成局部变量,但是这些变量只能在它所在的块中使用,且均为符号访问寻址。
块的局部变量的名称由字符(可为汉字)、下划线和数字组成
在编程时引用这些变量,系统自动的为变量名前面加上#标识符(全局变量使用双引号,绝对地址前加%)。;2生成与调用函数;块参数
调用块为被调用块提供将使用的值。这些值将作为块参数进行引用。
输入参数为被调用块提供需处理的值。该块将通过输出参数返回结果。因此,块参数可作为调用块和被调用块之间的接口。(以食堂打饭???例,你是OB,食堂工作人员或者操作间是FC,OB和FC之间有一个接口);函数各种类型的局部变量的作用如下:
①Input(输入参数):用于接收调用它的代码块提供输入数据。(只能读)
②Output(输出参数):用于将块的程序执行结果返回给主调块。(只能写)
③InOut(输入_输出参数):初值由调用它的块提供,块执行完后用同一个参数将它的值返回给调用它的块。(可读/可写)
④Return(返回值):Return中自动生成的返回值“电动机控制”与函数的名称相同,属于输出参数,其值返回给调用它的块。返回值默认的数据类型为Void,表示函数没有返回值。(只能写);函数还有两种局部数据:
①Temp(临时变量):临时变量可以用于所有块(OB、FC、FB)中。当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。这些临时数据存储在Lstack(局部数据堆栈)中。在“Temp”项下输入将要用到的临时变量名和数据类型,注意临时变量不能赋予初始值。
②Constant(常量):是在块中使用并且带有声明的符号名的常量。
本实例中在函数FC1中实现圆柱体体积的计算:输入“圆柱体直径”和“圆柱体高度”会计算出“圆柱体体积”。;如果仅需查询或读取值,则可使用输入参数;
如果要设置或写入这些值,则需使用输出参数。
如果要读写块参数,则需将这些块参数创建为in-out参数。
在块内使用块参数时,应遵循以下规则:
Input参数只能读取。Out参数只可写入。In/out参数可读取和写入。;生成上述圆柱体体积计算的FC局部变量。
①在Input列表中生成变量“圆柱体直径”、“圆柱体高度”,数据类型选择Real。
②在Output列表中生成变量“圆柱体体积”,数据类型选择Real。
③在Temp列表中生成变量“圆柱体半径”和“圆柱体底面积”,数据类型选择Real。
④在Constant列表中生成变量“Π”默认值为3.14,数据类型选择Real。
生成局部变量时,不需要指定存储器地址,根据各变量的类型,程序编辑器自动地为所有变量指定存储器地址。;(3)编写FC程序;此外在FC中也可以使用绝对地址或符号地址进行编程,即在FC中不使用局部变量,