电气控制与可编程控制技术_第5-6章.ppt_第1页
电气控制与可编程控制技术_第5-6章.ppt_第2页
电气控制与可编程控制技术_第5-6章.ppt_第3页
电气控制与可编程控制技术_第5-6章.ppt_第4页
电气控制与可编程控制技术_第5-6章.ppt_第5页
已阅读5页,还剩541页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

回顾 S7 300概貌 组成 一般安装顺序电源模块 PS305 PS307CPU模块面板 组成 工作方式种类 紧凑型CPU 6种 标准型CPU 5种 革新型CPU 5种 户外型CPU 3种 故障安全型CPU 3种 特种型CPU 2种 接口模块双机架接口模块 IM365 多机架接口模块 IM360 IM361 回顾 SIMATICS7 300信号模块DI SM321DO SM322DI O SM323 SM327AI SM331AO SM332AI O SM334 SM335 回顾 4 4西门子S7 300PLC的硬件组成及硬件配置 五 功能模块 六 通信模块 七 前连接器与其他模块分布式I O简介硬件配置 电气控制与可编程控制技术第十四课 本课主要内容 5PLC的编程基础5 1PLC编程语言5 2S7 300PLC编程基础 5 1PLC编程语言 编程语言的种类及其特点通常包括 LAD 梯形图 STL 语句表 FBD 功能块图 高级语言 一般具备两种或两种以上 最普遍为STL及LAD LAD 梯形图 LAD 梯形图 是一种图形语言 比较形象直观 容易掌握 用得最多 堪称用户第一编程语言 梯形图与继电器控制电路图的表达方式极为相似 适合于熟悉继电器控制电路的用户使用 特别适用于数字量逻辑控制 各家具体表达方法有所不同P124图5 1 LAD 梯形图 的绘制原则 1 元件从左到右 从上到下绘制2 触点应划在水平支路上3 只出现输入电器的触点 而不出现输入电器的线圈4 触点可无限次引用5 编程时对元件进行编号 标注地址 同一编程元件的线圈和触点使用同一编号 地址 6 触点可多次串联或并联 但线圈只可并联 不可串联 STL 语句表 STL 语句表 是一种类似于计算机汇编语言的一种文本编程语言 由多条语句组成一个程序段 又称助记符语言或指令表语言 语句表可供习惯汇编语言的用户使用 在运行时间和要求的存储空间方面最优 在设计通信 数学运算等高级应用程序时建议使用语句表 FBD 功能块图 使用类似于布尔代数的图形逻辑符号来表示控制逻辑 一些复杂的功能用指令框表示 FBD比较适合于有数字电路基础的编程人员使用 常用与 或 非等逻辑功能的组合来表达 FBD 功能块图 类BASIC C PASCAL等高级编程语言 可以简化数学计算 数据管理和组织工作 高级语言 5 2S7 300PLC的编程基础 STEP7是S7 300 400系列PLC应用设计软件包 需要了解其 编程语言 结构化程序的组成 数据类型 指令结构 寻址方法 一 STEP7的程序结构 S7 300PLC程序 操作 系统程序 用户程序系统程序按照事件驱动扫描用户程序 用户程序和数据写在不同的块 程序块 数据块 中 CPU按照执行条件是否成立来决定是否执行相应的程序块或者访问对应的数据块 STEP7用户程序通常由组织块 OB 功能块 FB 或功能 FC 等三种类型的逻辑块和数据块 DB 组成 OB1是主程序循环块 在任何情况下 它都是需要的 OB 组织块FB 功能块FC 功能SFB 系统功能块SFC 系统功能 程序结构 线性化 模块化 结构化 线性化编程 所有的指令都在一个块 OB1 内 CPU循环扫描时 依次不断循环顺序执行OB1中的全部指令 分部式编程 程序被分为不同的逻辑块 控制分块 每个块包含完成某些功能的逻辑指令 各块执行顺序由放在OB1的程序确定 OB1顺序调用每个块 各块编程使用实际参数 结构化编程 将复杂的自动化任务分解为小任务 由相应的逻辑块来完成 其中部分控制逻辑常被重复使用 程序运行时的数据和变量存储在数据块中 各块编程使用形式参数 OB1 或其他块 调用这些块时要给 形参 赋 实参 OB1 OB1 OB1 配方A 配方B 混合器 排空 泵 排空 二 STEP7的编程语言 STEP7所支持的PLC编程语言非常丰富 该软件的标准版支持STL 语句表 LAD 梯形图 及FBD 功能块图 3种基本编程语言 并且在STEP7中可以相互转换 专业版附加对GRAPH 顺序功能图 SCL 结构化控制语言 HiGraph 图形编程语言 CFC 连续功能图 等编程语言的支持 不同的编程语言可供不同知识背景的人员采用 LADSTLFBD略 S7 SCL StructuredControlLanguage 结构控制语言 是一种类似于PASCAL的高级文本编辑语言 用于S7 300 400和C7的编程 可以简化数学计算 数据管理和组织工作 S7 SCL具有PLC公开的基本标准认证 符合IEC61131 3 结构化文本 标准 SCL 结构化控制语言 GRAPH类似于解决问题的流程图 适用于顺序控制的编程 利用S7 GRAPH编程语言 可以清楚快速地组织和编写S7PLC系统的顺序控制程序 它根据功能将控制任务分解为若干步 其顺序用图形方式显示出来并且可形成图形和文本方式的文件 GRAPH 顺序控制 S7 Higraph允许用状态图描述生产过程 将自动控制下的机器或系统分成若干个功能单元 并为每个单元生成状态图 然后利用信息通讯将功能单元组合在一起形成完整的系统 S7 Higraph 图形编程语言 利用工程工具CFC ContinuousFunctionChart 连续功能图 可以通过绘制工艺设计图来生成SIMATICS7和SIMATICM7的控制程序 该方法类似于PLC的FBD编程语言 在这种图形编程方法中 块被安放在一种绘图板上并且相互连接 利用CFC用户可以快速 容易地将工艺设计图转化为完整的可执行程序 CFC 连续功能图 编程语言 S7 300和S7 400的编程语言梯形图 语句表和功能块图是标准软件包的一个重要组成部分 三 结构化程序中的块 程序块 逻辑块 组织块 OB 功能 FC 功能块 FB 系统功能 SFC 系统功能块 SFB 数据块 背景数据块 DI 共享数据块 DB STEP7的程序块的调用关系 其他OB 块调用可嵌套 层数与CPU有关 还受L堆栈大小有关 每个OB需要至少20B的L内存空间 A调用B时 A的临时变量压入L堆栈 创建顺序 FC1 FB1及其背景数据块 OB1 被调用的块应该是已经存在的 一 用户程序中的逻辑块 所谓逻辑块 实际就是用户根据控制需要 将不同设备的控制程序和不同功能的控制程序写入的程序块 在编程时 用户将其程序用不同的逻辑块进行结构化处理 也就是用户将程序分解为单个的 自成体系的多个部分 块 程序分块后具有大程序更容易理解 程序段易于标准化 程序组织更简化 修改更容易 测试调试更简单等优点 组织块 OB 循环执行的组织块就是主程序OB1 OB1调用功能块 FB 系统功能块 SFB 或使用功能调用 FC 和系统功能调用 SFC 的功能 OB1被循环地处理 在启动OB被处理后 OB100用于暖启动或OB101用于热启动或OB102用于冷启动 首先执行OB1 在OB1循环结束时 操作系统传送过程映像输出表到输出模板 在OB1再开始前 操作系统通过读取当前的输入I O的信号状态来更新过程映像输入表 这个过程连续不断地重复 即 循环执行 所有被监视运行的OB中 OB1的优先权最低 因此它可以被较高优先权的OB中断 OB1连续执行 直到被其它OB中断 事件驱动的组织块包括延时中断 OB20 OB23 硬件中断 OB40 OB47 异步故障中断 OB80 OB87 和同步故障中断 OB121和OB122 事件驱动的组织块和中断处理 模拟输入模块 断线 2 功能 FC 与功能块 FB 功能块FB或功能FC实质上是用户编写的子程序 功能块 FB 带有背景数据块 DI 它随功能块的调用而打开 随功能块的结束而结束 存放在背景数据块中的数据在FB块结束时继续保持 即被 记忆 功能FC没有背景数据块 功能调用结束后数据不能保持 有一个数据结构与该功能块的参数表完全相同的数据块 DI 附属于该功能块 并随功能块的调用而打开 随功能块的结束而关闭 该附属数据块叫做背景数据块 InstanceDataBlock 存放在背景数据块中的数据在FB块结束时继续保持 即被 记忆 3 系统功能 SFC 与系统功能块 SFB S7CPU还提供标准系统功能块 SFB SFC 集成在S7CPU中的功能程序库 是集成在CPU中预先编制好的功能FC和功能块 FB 用户可以直接调用它们 由于它们是操作系统的一部分 因此不需将其作为用户程序下载到PLC 表5 2 表5 3 系统功能块 SFB 是S7CPU的集成功能 由于SFB是操作系统的一部分 用户程序可以不用装载直接调用SFB SFB需要分配背景数据块DB 数据块必须作为用户程序的一部分下装到CPU 系统功能 SFC 是集成在S7CPU中的已经编程并调试过的功能 这些块支持的一些任务是设置模块参数 数据通讯和拷贝功能等 用户程序可以不用装载直接调用SFC SFC不需要分配数据块 二 用户程序中的数据块 除逻辑块外 用户程序还包括数据块 数据块是用户定义的用来存取数据的存储区 该储存区在CPU的存储器中 可以被打开或关闭 数据块定义在S7CPU的存储器中 用户可在存储器中建立一个或多个数据块 每个数据块可大可小 但CPU对数据块数量及数据总量有限制 如对于CPU314 用作数据块的存储器最多为8KB 8192B 用户定义的数据总量不能超出这个限制 数据块 DB 可用来存储用户程序中逻辑块的变量数据 如 数值 与临时数据不同 当逻辑块执行结束或数据块关闭时 数据块中的数据保持不变 用户程序可以位 字节 字或双字操作访问数据块中的数据 可以使用符号或绝对地址 对数据块必须遵循先定义后使用的原则 否则 将造成系统错误 DI DB 共享数据块 DB 又称全局数据块 用于存储全局数据 所有逻辑块 OB FC FB 都可以访问共享数据块存储的信 背景数据块 DI 用作 私有存储器区 即用作功能块 FB 的 存储器 FB的参数和静态变量安排在它的背景数据块中 背景数据块不是由用户编辑的 而是由编辑器生成的 三 用户程序中的系统数据块SDB 系统数据块 SDB 是存放PLC参数所建立的系统数据存储区 SDB中存有操作控制器的必要的数据 如组态数据 通信连接数据和其他操作参数 用STEP7的不同工具建立 十六进制数十六进制的16个数字是0 9和A F 每个占二进制数的4位 B 16 W 16 DW 16 例 W 16 13AF 13AFH BCD码BCD码用4位二进制数表示一位十进制数 十进制数9对应的二进制数为1001 BCD码实际上是十六进制数 但是各位之间逢十进一 296对应的BCD码为W C 296 或2 0000001010010110 二进制数 二进制数的1位 bit 只能取0和1这两个不同的值 用来表示开关量的两种不同的状态 该位的值与线圈 触点的关系 ON OFF TURE FALSE 二进制常数 2 1111 0110 1001 0001 四 STEP7的数据类型 一 数制 二 数据类型 在STEP7中 数据类型分为三大类 基本数据类型 不超过32位的数据 复杂数据类型 超过32位由其他数据类型组成的数据 参数类型 用于向FB和FC传送参数 1 基本数据类型 基本数据类型定义不超过32位的数据 0 7 8位 MSBLSB 32 15 数据字节0 位 bit 常称为BOOL 布尔型 只有两个值 0或1 如 I0 0 Q0 1 M0 0等 字节 Byte 一个字节 Byte 等于8位 Bit 其中0位为最低位 7位为最高位 如 IB0 包括I0 0 I0 7位 QB0 包括Q0 0 Q0 7位 MB0等 范围 00 FF 十进制的0 255 0 7 32 15 字 Word 相邻的两字节 Byte 组成一个字 Word 来表示一个无符号数 因此 字为16位 如 IW0是由IB0和IB1组成的 其中I是区域标识符 W表示字 0是字的起始字节 需要注意的是 字的起始字节 如上例中的 0 都必须是偶数 字的范围为十六进制的0000 FFFF 即十进制的0 65535 在编程时要注意 如果已经用了IW0 如再用IB0或IB1要特别加以小心 双字 DoubleWord 相邻的两个字 Word 组成一个双字 来表示一个无符号数 因此 双字为32位 如 MD100是由MW100和MW102组成的 其中M是区域标识符 D表示双字 100是双字的起始字节 需要注意的是 双字的起始字节 如上例中的 100 和字一样 必须是偶数 双字的范围为十六进制的0000 FFFFFFFF 即十进制的0 4294967295 在编程时要注意 如果已经用了MD100 如再用MW100或MW102要特别加以小心 0 7 8位 MSBLSB 32 15 数据字节0 1 1 0 0 1 1 0 1 7 0 0 0 0 0 0 0 0 15 8 0 128 64 8 4 1 符号位0 正数1 负数 整数 16位 有符号的十进制数 十进制值 例如205 符号位 第15位 表示所处理的是正数还是负数 0 正数 1 负数 整数的表示范围是 32768 32767 整数占用存储器的一个字 用二进制表示 一个整数的负数用其正数的补码表示 所有的位取反加 1 可以得到正数的补码 296 符号位 第32位 表示所处理的是正数还是负数 0 正数 1 负数 整数的表示范围是 2147483648 2147483647 L 296 长整数 32位 有符号的十进制数 C 为计数器常数 BCD码 C 250 8位ASCII字符 ABC 32位浮点数 实数REAL 浮点数 sign 1 f 2e 127 实数占用存储器的两个字 最高位是符号位 其余的位代表指数和尾数实数的表示范围是 1 175495 10 38 3 402823 1038 实数 1 5 2126 127 0 75 实数的符号 举例7 5 10 1 0 75 S5TIME为S5系统时间 时基10mS 范围S5T 0H 0M 0S 10MS S5T 2H 46M 39S 0MS例 S5T 2H5MTIME为IEC时间 时基1mS TIME数据类型的变量占用一个双字 该变量用于指定IEC定时器功能的时间值 变量内容用毫秒为单位的双整数表示 它可以是正数或负数 例如 T 1s L 1000 T 24d20h31m23s647msw L 214748647 例 LT 20H 31M 23S 0MS日期DATE为IEC日期日计时 时基1天 例 D 1990 1 1实时时间TIME OF DAY 时基1mS 范围TOD 0 0 0 0 TOD 23 59 59 999 STEP7基本数据类型 基本数据类型定义不超过32位的数据 数组 ARRAY 将一组同一类型的数据组合在一起 形成一个单元 结构 STRUCT 将一组不同类型的数据组合在一起 形成一个单元 字符串 STRING 是最多有254个字符 CHAR 的一维数组 日期和时间 DATE AND TIME 用于存储年 月 日 时 分 秒 毫秒和星期 占用8个字节 用BCD格式保存 星期天的代码为1 星期一 星期六的代码为2 7 DT 2004 07 15 12 30 15 200为2004年7月15日12时分15 2秒 用户定义的数据类型 UDT 在数据块DB和逻辑块的变量声明表中定义复合数据类型 2 复杂数据类型 通过组合基本数据类型和其他数据类型可以生成下面的数据类型 数组 ARRAY 数组的符号名是 Op temps 用符号名加下标可访问数组中的数据 例 第一个整数是Op temps 1 1 第三个为Op temps l 3 第四个为Op temps 2 1 第六个为Op temps 2 3 同种数据类型的组合称为数组 1 1 二维整数数组 在数据块或变量声明表中可定义数组 在声明数组时 首先给数组命名 接着使用关键字 ARRAY 然后在方括号中给出数组的大小及维数 可以定义多达6维的数组 并用下标来标识数组的大小 在方括号中放下标 各维之间用逗号隔开 每一维的首尾之间用双点隔开 一个下标可以为任何一个整数值 范围 32768 32767 并包括负数 例如 用ARRAY 1 3 1 2 1 3 2 3 30 32 1 4 来定义变量Op temps为6维数组 该数组的第一个整数为Op temps 1 1 1 2 30 1 最后一个为Op temps 3 2 3 3 32 4 关键词 结构 STRUCT 是不同类型的数据的组合 结构通常用来定义一组相关的数据 例如电机的一组数据 温度的处理过程的一组数据 结构 STRUCT 结构举例 程序编辑器中的显示 数据块DB1 运行速度OperatingSpeed datatypeInteger 额定电流RatedCurrent datatypeReal 启动电流StartupCurrent datatypeReal 转动方向TurningDirection datatypeBool 不同数据类型的几个元素 Motor data 关键词 结束关键词 结构名称 用符号地址访问结构 例如 访问结构Motor data中的速度值 LOB1 Motor data operating speed其中 MOTO为构造所在数据块的符号名 字符串 STRING 字符串是最多有254个字符 CHAR 的一维数组 最大长度为256个字节 其中前两个字节用来存储字符串的长度信息 字符串常量用单引号括起来 例如 日期和时间 DATE AND TIME 用于存储年 月 日 时 分 秒 毫秒和星期 占用8个字节 用BCD格式保存 星期天的代码为1 1 6的代码为2 7 例如 用户定义的数据类型 UDT STEP7允许将基本数据类型或复式数据类型组合成用户自己定义的数据类型 这种类型称为用户数据类型 UDT 用户数据类型必须首先单独建立 并存放在称为UDT的特殊数据块中 UDT1 UDT65535 在另一个数据类型中作为一个数据类型 模板 当输入数据块时 如果需要输入几个相同的结构 利用UDT可以节省输入时间 UDT块作为模板 用户定义数据类型 UDT TIMER 定时器 和COUNTER 计数器 对应的实参 actualparameter 实际参数 应为定时器或计数器的编号 标记为Tnn Cnn 例如T3 C21 2 BLOCK 块 指定一个块用作输入和输出 实参应为同类型的块 标记为FBnn FCnn DBnn SDBnn 3 POINTER 指针 指针用地址作为实参 标记为P 储存区地址 例如P M50 0 占6个字节 4 ANY 用于实参的数据类型未知或实参可以使用任意数据类型的情况 标记为P 储存区地址 数据类型 长度 例如P M10 0 word 5 占10个字节 为在逻辑块之间传递参数的形参 formalparameter 形式参数 定义的数据类型 3 参数数据类型 回顾 5PLC的编程基础5 1PLC编程语言5 2S7 300PLC编程基础 电气控制与可编程控制技术第十五课 本课主要内容 5PLC的编程基础5 2S7 300PLC编程基础五 PLC的存储器与寄存器六 S7 300PLC编址七 STEP7的指令类型与指令结构 PLC的存储器 系统存储器 用户存储器用户存储器由程序存储器和数据存储器组成 五 PLC中的存储器与寄存器 S7 300的编程元件1 输入映像寄存器 输入继电器 I2 输出映像寄存器 输出继电器 Q3 位存储器M 或称辅助继电器 4 外部输入寄存器PI5 外部输出寄存器PQ6 定时器T 共5种 7 计数器C 共3种 8 数据块寄存器DB9 本地数据寄存器L 一 PLC中的存储器 1 程序存储器 又称 装载存储器 存放用户程序动态装载存储区 CPU内置RAM 固定装载存储区 可选 内置EEPROM或FEPROUM 集成的 或者微存储器卡 MMC 下载时 用户程序下载到装载存储器 而可执行部分复制到工作存储区 注释和符号表不下载 2 数据存储器 1 工作存储区占用CPU模块的部分RAM 用于存储CPU运行时所执行的用户程序单元 临时本地数据存储区 L堆栈 用于存储临时数据 临时变量 临时有效某些数据块可以不被复制到工作存储区复位CPU存储器时 RAM里的程序被清除 2 系统存储区1 输入映像寄存器 输入继电器 I 输入映像寄存器 输入继电器 I的作用是接收来自现场的控制按钮 行程开关及各种传感器等的输入信号 通过输入映像寄存器 输入继电器 将PLC的存储系统中与外部输入端子 输入点 建立起明确对应的连接关系 它的每1位对应1个数字量输入模板的输入端子 输入映像寄存器 输入继电器 的状态是在每个扫描周期的输入采样阶段接收到的由现场送来的输入信号的状态 1 或 0 2 输出映像寄存器 输出继电器 Q 通过输出映像寄存器 输出继电器 将PLC的存储系统与外部输出端子 输出点 建立起有着明确对应的连接关系 在循环扫描期间 程序运算得到的输出值存入输出映像寄存器 在循环扫描的结束前 操作系统从中读出输出值并将其传送至输出模板 直接控制PLC外部负载 输出继电器有一个且仅有一个实实在在的物理动合触点 用来接通负载 这个动合触点可以是有触点的 继电器输出型 或者是无触点的 晶体管输出型或双向晶闸管输出型 3 位存储器M 或称辅助继电器 在逻辑运算中 经常需要一些辅助继电器 位存储器M的功能与传统的继电器控制线路中的中间继电器相同 借助于辅助继电器的编程 可使输入输出之间建立复杂的逻辑关系和联锁关系 以满足不同的控制要求 每个辅助继电器对应着位存储区的一个基本单元 它可以由所有的编程元件的触点 当然包括它自己的触点 来驱动 它的状态同样可以无限制的使用 辅助继电器与外部没有任何联系 不可能直接驱动任何负载 4 定时器T 定时器区域用于存储定时器的定时时间值 每个定时器为2B 称为定时字 在S7 300中 定时器区为512B 因此最多允许使用256个定时器 定时器的作用与继电器控制线路中的时间继电器基本相似 用于实现或监控时间序列 定时器指令访问该存储区可得到定时器的剩余时间 定时器寻址范围 0 255 5 计数器C 在计数器存储区域每个计数器为2B 称为计数器字 在S7 300中 计数器区为512B 因此最多允许使用256个计数器 计数器指令访问该存储区可得到当前计数器值 计数器寻址范围 0 255 6 外设 外部 输入寄存器PI 用户程序可以通过外部输入寄存器直接访问输入模板 如接收模拟量输入信号 外部输入寄存器也可以字节 字 双字为单位使用 7 外设 外部 输出寄存器PQ 用户程序可以通过外部输出寄存器直接访问输出模板 如产生模拟量输出信号 外部输出寄存器也可以字节 字 双字为单位使用 8 数据块寄存器DB 数据块寄存器用于存储所有数据块的数据 可以同时打开一个共享数据块DB和一个背景数据块DI 可以按字节 字 双字访问数据块寄存器 共享数据块 DB 与背景数据块 DI DB为共享数据块 DBX2 3 DBB5 DBW10和DBD12 DI为背景数据块 DIX DIB DIW和DID 9 本地数据寄存器L 本地数据寄存器用于存储逻辑块中使用的临时数据 可以按位 字节 字 双字访问本地数据存储器 P141表5 5存储区及其功能 P141表5 5存储区及其功能 PLC物理存储器是以字节为单位的 所以存储单元规定为字节单元 位地址参数用一个点与字节地址分开 当操作数长度是字或双字时 标识符后给出的标识参数是字或双字内的最低字节单元号 0 7 8位 以字节单元为基准标记存储器存储单元 例如 以M 位存储区 为例说明 累加器 ACCU1 ACCU4 ACCU3 ACCU2 仅适用于S7 400 AR2 AR1 地址寄存器 打开的DBDB长度 数据块寄存器 状态位 状态字 32位 32位 32位 32位 32位 32位 16位 16位 装载存储器 逻辑块 数据块 工作存储器 逻辑块 数据块 外设I O区域 系统存储器 过程映像输入表 过程映像输出表 位存储器 定时器 计数器 逻辑数据堆栈 中断堆栈 块堆栈 S7 CPU寄存器 S7 CPU存储器区域 T S L A O 16位 打开的DIDI长度 S7 CPU的寄存器和存储器区域 二 PLC中的寄存器 CPU的寄存器用于寻址或处理数据 在相关命令 L T 的配合下 可以在CPU存储器区和寄存器之间进行数据交换 累加器 2个 S7 300 或者4个 S7 400 累加器用于算术 比较指令或者用于其他字节 字及双字指令 地址寄存器 2个地址寄存器作为指针用于寄存器间接寻址 数据块寄存器 数据块寄存器里包含打开的 活动的 数据块的号码 因此可能有2个DB同时打开 其中一个DB使用DB寄存器 另一个作为背景DB使用DI寄存器 打开DB时 其长度 以字节为单位 自动装载到相应的DB长度寄存器中 状态字 状态字包含各个不同的状态位 这些状态位反应程序执行过程中各个指令的执行结果或状态 状态字寄存器 状态字用于表示CPU执行指令时所具有的状态信息 首位检测位 FC 逻辑操作结果 RLO 状态位 STA 或位 OR 溢出位 OV 溢出状态保持位 OS 条件码1 CC1 和条件码0 CC0 二进制结果位 BR p99 p101 状态字的位0称为首次检测位 若位的状态为0 则表明一个梯形逻辑网络的开始 或指令为逻辑串第一条指令 CPU对逻辑串第一条指令的检测 称为首次检测 产生的结果直接保存在状态字的RLO位中 经过首次检测存放在RLO中的0或1被称为首次检测结果 位在逻辑串的开始时总是0 在逻辑串指令执行过程中位为1 输出指令或与逻辑运算有关的转移指令 表示一个逻辑串结束的指令 将清0 2 逻辑操作结果 RLO 状态字的位1称为逻辑操作结果RLO ResultofLogicOperation 该位存储位逻辑指令或算术比较指令的结果 在逻辑串中 RLO位的状态能够表示有关信号流的信息 RLO的状态为1 表示有信号流 通 为0 表示无信号流 断 可用RLO触发跳转指令 159876543210 3 状态位 STA 状态字的位2称为状态位 状态位不能用指令检测 它只是在程序测试中被CPU解释并使用 如果一条指令是对存储区操作的位逻辑指令 则无论是对该位的读与写操作 STA总是与该位的值取得一致 对不访问存储区的位逻辑指令来说 STA没有意义 此时它总被置为1 159876543210 4 或位 OR 状态字的位3称为或位 OR 在先逻辑 与 后逻辑 或 的逻辑串中 OR位暂存逻辑 与 的操作结果 以便进行后面的逻辑 或 运算 其它指令将OR位清0 159876543210 5 溢出位 OV 状态字的位4称为溢出位 溢出位被置1 表明一个算术运算或浮点数比较指令执行时出现错误 错误 溢出 非法操作 不规范格式 后面的算术运算或浮点数比较指令执行结果正常的话OV位就被清0 159876543210 6 溢出状态保持位 OS 状态字的位5称为溢出状态保持位 或称为存储溢出位 OV被置1时OS也被置1 OV被清0时OS仍保持 所以它保存了OV位 可用于指明在先前的一些指令执行中是否产生过错误 只有下面的指令才能复位OS位 JOS OS 1时跳转 块调用指令和块结束指令 159876543210 7 条件码1 CC1 和条件码0 CC0 状态字的位7和位6称为条件码1和条件码0 这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系 比较指令的执行结果或移位指令的移出位状态 159876543210 算术运算后的CC1和CC0 比较 移位和循环移位 字逻辑指令后的CC1和CC0 条件码值的含义 8 二进制结果位 BR 状态字的位8称为二进制结果位 它将字处理程序与位处理联系起来 在一段既有位操作又有字操作的程序中 用于表示字操作结果是否正确 异常 在用户编写的FB和FC程序中 必须对BR位进行管理 当功能块正确运行后使BR位为1 否则使其为0 使用STL指令SAVE或LAD指令 SAVE 可将RLO存入BR中 从而达到管理BR位的目的 当FB或FC执行无错误时 使RLO为1并存入BR 否则 在BR中存入0 159876543210 状态字寄存器 首次检测位 状态位 或位 逻辑运算结果 溢出位 溢出状态保持位 二进制结果位 条件码0 条件码1 六 S7 300PLC编址 程序设计时需确定I O点及存储器地址 即为编址 绝对地址法和符号地址法绝对地址法 默认值编址 面向槽位 用户自定义编址 面向用户 一 默认值编址 已讲 略 二 面向用户的编址 对模块自由分配用户自己选择的地址 只有部分CPU支持 三 符号地址 符号地址是用符号名表示特定的绝对地址 全局符号则是通过符号表来定义的 必须唯一 如SB1 可利用STEP7的符号编辑器 SymbolsEditor 建立一个符号名数据库 使程序中的所有指令都可以访问由符号名表示的编程元件 局部符号的名称是在程序块的变量声明区中定义的 在程序中前面加 号以示区别 如 SB1符号名最多24个字符 符号编辑器界面 符号表创建和修改由符号编辑器实现 使用这个工具生成的符号表是全局有效的 可供其他所有工具使用 编辑符号表 1 2 方法1 从LAD STL FBD编辑器打开符号表 编辑符号表 2 2 方法2 从SIMATIC管理器打开符号表 四 集成的I O点的地址确定 部分CPU模块带有I O点占用3号机架第11槽位的绝对地址从124 0或752开始如 CPU312IFM或CPU312C 带有10DI I124 0 125 1 6DO Q124 0 Q124 5 七 STEP7的指令类型与指令结构 指令是程序的最小独立单位 用户程序是由若干条顺序排列的指令构成 指令一般由操作码和操作数组成 其中的操作码代表指令所要完成的具体操作 功能 操作数则是该指令操作或运算的对象 操作数操作数由标识符和参数组成 操作数为执行该操作所需要的信息 它告诉CPU用什么去做 有些语句指令不带操作数 它们操作的对象是惟一的 例 AI1 0 NOT 是对逻辑操作结果 RLO 取反 操作码操作码定义要执行的功能 它告诉CPU该做什么 逻辑指令 位 字 定时器和计数器指令数据处理与数学运算指令程序执行控制指令其他指令 一 STEP7指令系统中的指令类型 指令组成在STEP7中 根据采用的程序编辑器 LAD STL FBD 不同 有梯形逻辑指令LAD 语句指令STL和功能块图指令FBD 1 梯形逻辑指令梯形逻辑指令又可称为梯形图指令 由元素 单元 指令和方块图组成 它们以图形方式连接 形成程序段 二 指令的形式与组成 元素 单元 指令 使用不含地址或参数的单个元素的梯形逻辑指令 带地址的元素 单元 指令 以单个元素加地址形式表示的梯形逻辑指令 带地址和数值的元素 单元 指令 以单个元素加地址和数值形式表示的梯形逻辑指令 带参数的方块图指令 用带有表示输入 输出的横线来表示的梯形逻辑指令 在方块左边的横线旁边填上输入参数 在方块右边的横线旁边填上输出参数 该指令是一条位逻辑操作指令 其中 A 是操作码 它表示执行 与 操作 I1 0 是操作数 它指出这是对输入继电器I1 0进行的操作 NOT 是对逻辑操作结果 RLO 取反 2 语句指令 操作数操作数由标识符和参数组成 操作数为执行该操作所需要的信息 它告诉CPU用什么去做 有些语句指令不带操作数 它们操作的对象是惟一的 例 AI1 0 操作码操作码定义要执行的功能 它告诉CPU该做什么 功能块图指令 功能块图指令的表示方法与梯形逻辑指令有很多相似的地方 但是它用逻辑运算方块图表示编程元素的逻辑关系 FBD比较适合于有数字电路基础的编程人员使用 3 指令中的操作数 指令操作数 又称编程元件 一般在用户存储区中 操作数由操作标识符和参数组成 操作数标识符告诉处理器操作数放在存储器的哪个区域及操作数位数 标识参数则进一步说明操作数在该存储区域内的具体位置 操作标识符由主标识符和辅助标识符组成 主标识符表示操作数所在的存储区 辅助标识符进一步说明操作数的位数长度 如 位 字节 字 双字等 若没有辅助标识符指操作数的位数是一位 例如 LMW10 A 是操作码 MW10 是操作数 M是主标识符 W是辅助标识符 10是参数 主标识符有 I 输入过程映像寄存器 Q 输出过程映像寄存器 M 位存储器 PI 外部输入寄存器 PQ 外部输出寄存器 T 定时器 C 计数器 DB 数据块寄存器 和L 本地数据寄存器 辅助标识符有 X 位 B 字节 W 字或2B D 2DW或4B 4 寻址方式 所谓寻址方式就是指令执行时获取操作数的方式 可以直接或间接方式给出操作数 S7 300有4种寻址方式 立即寻址存储器直接寻址存储器间接寻址寄存器间接寻址 1 立即寻址 立即寻址是对常数或常量的寻址方式 其特点是操作数直接包含在指令中 或以惟一形式隐含在指令中 SET 把RLO置1OWW 16 A320 将常量W 16 A320与累加器1 或 运算L27 把整数27装入累加器1L ABCD 把ASCII码字符ABCD装入累加器1LC 0100 把BCD码常数0100装入累加器1 2 存储器直接寻址 存储器直接寻址 简称直接寻址 该寻址方式在指令中直接给出操作数的存储单元地址 存储单元地址可用符号地址 如SB1 KM等 或绝对地址 如I0 0 Q4 1等 AI0 0 对输入位I0 0进行 与 逻辑操作SL20 0 把本地数据位L20 0置1 M115 4 使存储区位M115 4的内容等于RLO的内容LIB10 把输入字节IB10的内容装入累加器1TDBD12 把累加器1中的内容传送给数据双字DBD12中 3 存储器间接寻址 在存储器间接寻址的指令中 给出一个存储器 该存储器的内容是操作数所在存储单元的地址 该地址又被称为地址指针 存储器间接寻址的特点是用指针进行寻址 操作数存储在由指针给出的存储单元中 根据要描述的地址复杂程度 地址指针可以是字或双字的 存储指针的存储器也应是字或双字的 地址指针 在指令中需写在方括号 内 AI MD2 对由MD2指出的输入位进行 与 逻辑操作 16位指针的结构 为0 65535之间的无符号整数 32位指针的结构 内部区域 位地址 字节地址 无符号整数 未定义 装载32位指针常量 内部区域 LP 25 3 P 指针 字节地址 25 位地址 3 用于存储器间接寻址的指针格式 位3至18 范围0至65535 被寻址字节的字节编号 存储器间接寻址的指针格式 定时器 T 计数器 C 数据块 DB 功能块 FB或FC 的编号范围在0到65535之内 所以用字指针就足够了 相应的也只需字存储器存储指针 其它的地址 如 输入位 输出位 则要用到双字指针 并用双字存储器存储指针 如果要用双字格式的指针访问一个字 字节或双字存储器 必须保证指针中的位编号为0 字格式的16位指针 用于对DB T C进行寻址 L11TMW60OPNDB MW60 OPNDB11双字格式的32位指针 用于对I Q M 进行寻址 LP 24 0TMD50LIW MD50 LIW24存储访问地址区域宽度 例1 存储器间接寻址的单字格式的指针寻址 例2 存储器间接寻址的双字格式的指针寻址 4 寄存器间接寻址 寄存器间接寻址在指令中通过地址寄存器和偏移量间接获取操作数 在S7 300中有两个地址寄存器AR1和AR2 用地址寄存器的内容加上偏移量形成地址指针 该指针指向操作数所在的存储单元 地址寄存器存储的地址指针有两种格式 区内寄存器间接寻址 区域间寄存器间接寻址 其长度均为双字在指令中地址指针 地址寄存器及偏移量 必须写在方括号 内 Q AR1 P 0 2 寄存器间接寻址的指针格式 3124231615870 位31 0表明是存储区区域内寄存器间接寻址 位31 1表明是存储区区域间寄存器间接寻址 位24 25和26 rrr 区域标识位3至18 bbbbbbbbbbbbbbbb 被寻址位的字节编号 范围0至65535 位0至2 被寻址的位编号 范围0至7 地址指针区域标识位含义 寄存器间接寻址的指针格式 AR1或AR2中的指针 指令语法规则 地址标识符 000外设I O P 001输入 I 010输出 Q 011位存储器 M 100共享数据块 DBX 101背景数据块 DIX 111本地数据 L LP 5 0 将间接寻址的指针装入累加器1TAR1 将累加器1中的内容送到地址寄存器1AM AR1 P 2 3 AR1中的P 5 0加偏移量P 2 3 实际上是对M7 3进行操作 Q AR1 P 0 2 逻辑运算的结果送Q5 2LDBW AR1 P 18 0 将DBW23装入累加器1 寄存器间接寻址 区内间接寻址举例 地址指针格式包括被寻址操作数所在存储单元地址的字节编号和位编号 至于对哪个存储区寻址 则必须在指令中明确直接给出 这种指针格式适用于在确定的存储区内寻址 即区内寄存器间接寻址 LP M6 0 将位存储器M6 0的双字指针装入累加器1TAR1 将累加器1中的内容送到地址寄存器1TW AR1 P 50 0 将累加器1的内容传送到存储器字MW56P M6 0对应的二进制数为2 10000011000000000000000000110000因为地址指针P M6 0中已经包含有区域信息 使用间接寻址的指令TW AR1 P 50 中没有必要再用地址标识符M 寄存器间接寻址 区域间间接寻址举例 地址指针格式中还包含了操作数所在存储区的说明位 存储区域标志位 这样 就可通过改变这些位 实现跨区寻址 这种指针格式用于区域间寄存器间接寻址 例3 区内寄存器间接寻址 例4 区域间寄存器间接寻址 回顾 5PLC的编程基础5 2S7 300PLC编程基础五 PLC的存储器与寄存器六 S7 300PLC编址七 STEP7的指令类型与指令结构 回顾 STEP7的数据类型数制数据类型PLC用户存储区及PLC编程元件指令状态字 回顾 状态字寄存器 状态字用于表示CPU执行指令时所具有的状态信息 STEP7的指令类型与指令结构 AI1 0 NOT AMW10 主标识符有 I Q M PI PQ T C DB L 辅助标识符有 X 位 B 字节 W 字或2B D 2DW或4B 寻址方式 所谓寻址方式就是指令执行时获取操作数的方式 可以直接或间接方式给出操作数 S7 300有4种寻址方式 立即寻址存储器直接寻址存储器间接寻址寄存器间接寻址 SET 把RLO置1OWW 16 A320 将常量W 16 A320与累加器1 或 运算L27 把整数27装入累加器1L ABCD 把ASCII码字符ABCD装入累加器1LC 0100 把BCD码常数0100装入累加器1 AI0 0 对输入位I0 0进行 与 逻辑操作SL20 0 把本地数据位L20 0置1 M115 4 使存储区位M115 4的内容等于RLO的内容LIB10 把输入字节IB10的内容装入累加器1TDBD12 把累加器1中的内容传送给数据双字DBD12中 AI MD2 对由MD2指出的输入位进行 与 逻辑操作 16位指针的结构 为0 65535之间的无符号整数 32位指针的结构 内部区域 位地址 字节地址 无符号整数 未定义 装载32位指针常量 内部区域 LP 25 3 P 指针 字节地址 25 位地址 3 用于存储器间接寻址的指针格式 例1 存储器间接寻址的单字格式的指针寻址 例2 存储器间接寻址的双字格式的指针寻址 寄存器间接寻址的指针格式 3124231615870 位31 0表明是存储区区域内寄存器间接寻址 位31 1表明是存储区区域间寄存器间接寻址 位24 25和26 rrr 区域标识位3至18 bbbbbbbbbbbbbbbb 被寻址位的字节编号 范围0至65535 位0至2 被寻址的位编号 范围0至7 Q AR1 P 0 2 例3 区内寄存器间接寻址 例4 区域间寄存器间接寻址 电气控制与可编程控制技术第十六课 本课主要内容 6S7 300PLC指令系统及编程6 1逻辑指令 6S7 300PLC指令系统及编程 逻辑指令 位逻辑 字逻辑 定时器 计数器功能指令 数据处理与算数运算 程序执行控制 其他功能 一 位逻辑指令 位逻辑指令处理的对象为二进制位信号 位逻辑指令扫描信号状态 1 和 0 位 并根据布尔逻辑对它们进行组合 所产生的结果 1 或 0 称为逻辑运算结果 存储在状态字的 RLO 或输出线圈 位存储器M 输出映像寄存器Q等 中 一 标准触点指令 二 输出指令 触点与线圈 在LAD 梯形图 程序中 通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件 被扫描的操作数 用绝对地址或符号地址表示 则标注在触点符号的上方 如图所示 触点指令 在PLC中规定 若操作数是 1 则常开触点 动作 即认为是 闭合 的 若操作数是 0 则常开触点 不动作 即触点仍然打开 如果触点是常闭触点 动断触点 则对 0 扫描相应操作数 若操作数是 1 则常闭触点 动作 即触点 断开 若操作数是 0 则常闭触点 不动作 即触点仍保持闭合 输入端有电压吗 电气控制 动作 不动作 状态 动作 不动作 常开触点 触点 常闭触点 触点所使用的操作数是 I Q M L D T C 中间输出指令是一种中间赋值元件 用该元件指定的地址来保存它左边电路的存储逻辑逻辑操作结果 RLO位或能流的状态 中间输出存储在位存储器 I Q M T C L或D 中 该存储位可以当作一个触点出现在其他逻辑串中 中间输出只能放在梯形图逻辑串的中间 而不能出现在最左端或最右端 逻辑串输出指令又称为赋值操作指令 该操作把状态字中RLO的值赋给指定的操作数 位地址 若RLO为 1 则操作数被置位 否则操作数被复位 输出线圈等同于STL程序中的赋值指令 用等于号 表示 所使用的操作数可以是 I Q M T C D L 输出指令 逻辑串输出指令 输出线圈 中间输出指令 输出指令 赋值指令 逻辑串输出指令 赋值指令把状态字中RLO的值赋给指定的操作数 位地址 若RLO为 1 则操作数被置位 否则操作数被复位 赋值指令通过把首次检测位 FC位 置0 来结束一个逻辑串 当FC位为0时 表明程序中的下一条指令是一个新逻辑串的第一条指令 CPU对其进行首次扫描操作 在LAD中 只能将输出指令放在逻辑符号串的最右端 但其前面必须有链路 不能将输出指令单独放在一个空网络中 一个RLO可被用来驱动几个输出元件 在LAD中 并联输出线圈是上下依次排列的 在STL中 与输出信号有关的指令被一个接一个地连续编程 这些输出具有相同的优先级 举例 AI1 0AI1 1 Q4 0 并联输出 连续输出 多重输出梯形图 AI1 0AI1 1 Q4 0 Q4 1 AI1 0ANI0 1 L20 0AL20 0AI0 3 Q4 3AL20 0AI0 4 Q4 2 中间输出指令 中间输出指令是一种中间赋值元件 用该元件指定的地址来保存它左边电路的存储逻辑逻辑操作结果 RLO位或能流的状态 中间标有 号的中间输出线圈与其它触点串联 就像一个插入的触点一样 中间输出与一般触点的功能一样 中间输出指令不能用于结束一个逻辑串 因此 中间输出指令不能放在逻辑串的结尾或分支的结尾处 中间输出梯形图 A AI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论