结构化编程 IEC 1131 标准 第一部分: 主要信息 定义 PLC 的术语 PLC 的主要功能特点 第二部分: 设备要求 电气, 机械和功能上的要求 制造商需提供的信息 符合标准的规则 (一致性) 第三部分:编程语言 梯形图, 功能方框图,语句表, 顺序功能图和结构化文本 第四部分: 用户指南 系统分析和描述 PLC的选择和应用 安全和保护,安装和维护 第五部分: 通讯 模式,通讯块,与ISO协议的对应关系 IEC1131 内容 - 第三部分 编译为标准代码的规则 软件模型, 通讯模型, 编程模型 可编程逻辑控制语言中的通用元件 数据类型和变量 功能和功能块 程序和任务 指令表 (IL) (= 语句表 (STL)) 结构化文本 (ST) (= 结构化控制语言 (SCL)) 梯形图(LD) (= LAD) 功能方框图(FBD) 顺序功能图(SFC) (= S7-GRAPH) 附加的语法规则和编程示例 SIMATIC 管理器下的项目结构 STEP7的块 块的组成部分 块的结构 结构化编程 利用局部数据进行控制 局部变量 临时变量 局部数据堆栈的大小 块所需要的局部数据区的长度 程序所占用的局部数据区的总长度 练习1.1: 使用临时变量 示例:故障信息指示 可以分配参数的块 A i 1.2 R m 40.0 A i 1.3 Fp m 40.1 S m 40.0 A m 40.0 A m 10.3 O Anm 40.0 A i 1.3 = Q 4.3 定义形式参数 编辑一个可分配参数的块 调用一个分配了参数的块 在块调用时使用EN/ENO参数 练习1.2: 生成一个分配了参数的FC块 练习1.3: 调用一个分配了参数的FC块 FB块 用FB实现的故障信息显示 生成背景数据块 多重背景模型 练习1.4: 编写一个FB块 练习1.5: 调用FB并调试 插入/删除块的参数可能遇到的问题 调用被修改过的块时应做的更正 练习1.6: 多台设备的风扇监控功能 练习1.7: 风扇监控功能的扩展 练习1.8: 识别变量的类型 总结: 块的调用 A B C =1 S_ODT TIME ACKN SIG & A B C R S Q =1 FLT FC101 REPORT A B C ACKN TIME TV FLT SIG 功能 符号 A B C =1 S_ ODT TIME ACKN SIG & A B C R S Q =1 FLT FC101 REPORT A B C ACKN TIME TV FLT SIG 功能 符号 ENAB & ENAB ENAB Absolute Symbolic Temporary Static Parameter L #Number_1 T #Max_value T MW 40 Statement L #Number_2 L #Intermediate_result L “Number_1” T #Number_2 Global Local ? CALL FC1 ? UC FC1 ? CC FC1 STL LAD FBD FC1 EN ENO FC1 EN ENO FC1 ( CALL ) FB 无参数,无背景数据块 ? UC FB1 ? CC FB1 CALL 有参数 ? CALL FC2 Par1: ... Par2: ... Par3: ... FC2 EN ENO Par3 Par1 Par2 FC2 EN ENO Par1 Par2 Par3 有参数,有背景数据块 ? CALL FB2, DB3 Par1: ... Par2: ... Par3: ... FB2 EN ENO Par3 Par1 Par2 DB3 FB2 EN ENO Par3 Par1 Par2 DB3 无参数 语言 FC FC1 多重背景模型 到目前为止,每次调用一个FB块时都使用不同的背景数据块。 由于数据块的数量有限,所以在此介绍一种方法,允许多次FB调用都使用同一个背景数据块。多重背景模型允许多次FB调用都使用同一个背景数据块,为此需增加一个FB块用来管理背景数据。 针对每次的FB调用 (FB 20), 要先在上层的FB块 (FB 100) 中定义一个静态变量,用来存储这一次调用时的背景数据。这样用符号名调用该块时(Call Dist_1) ,就不须为其指定背景数据块了。上层的FB (FB 100) 被调用时(例如,在OB1中调用它),将只生成一个公用的背景数据块 (DB 100) 。 说明 多重背景数据块将在高级编程课中继续讨论。 如何生成背景数据块 生成一个新的背景数据块有两种方法:? 在调用FB时,为它指定一个背景数据块后, 如果该数据块并不存在,则弹出以 下提示信息: “Instance data block DB x does not exist. Do you want to generate it?”. 单击“Yes”按钮可自动生成一个新的背景数据块。? 创建一个新的数据块时,选择其属性为 “Data block referencing a function block”。 注意 一个背景数据块只能归属于一个FB块,而一个FB块在每次调用时可以使用不同的背景数据块。FB块被修改后 (添加参数或静态变量), 必须重新生成背景数据块。 概述 临时变量可以用于所有块中 (OB, FC, FB)。当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。这些临时数据存储在 L stack (局部数据堆栈)中。 定义方法 临时变量是在块的变量声明表中定义的,在“temp”行中输入变量名和数据类型,注意临时变量不能赋予初值。当块保存后,“Address”栏中将显示其在L stack 中的位置。 访问方法 Network 1为一个用符号地址访问临时变量的例子。减运算的结果被存储在临时变量“result”中。当然,也可以采用绝对地址来访问临时变量 (T LW0),然而,为了使程序更加易读,最好不要采用该方式。 注意 程序编辑器可以自动地在局部变量名前加上# 号来标识它们,局部变量只能在变量表中对它们定义过的块中使用。 局部数据堆栈 局部数据堆栈(L stack)是用来存储临时变量的内存区域。 局部数据堆栈的大小 当操作系统执行一个OB时(不论优先级如何),将打开一个256 字节大小的局部堆栈区,供该OB及其中所调用的块使用 。 313..316 CPUs中局部堆栈区的总容量为1536字节 (1.5kByte)。 OB的优先级 S7-300中共有8个优先级,同时激活的优先级不能超过6个。详细介绍见“组织块”一章。 S7-400 对于 S7-400 CPUs, 可以通过组态工具来定义每一个优先级所对应的局部堆栈的大小。还可以不选无用的优先
13.结构化编程.ppt
下载此电子书资料需要扣除0点,