《ok西门子S7-300PLC应用教程 第4章 (2)》由会员分享,可在线阅读,更多相关《ok西门子S7-300PLC应用教程 第4章 (2)(178页珍藏版)》请在金锄头文库上搜索。
1、第4章S7 300编程语言与指令系统 4 1STEP7编程语言 4 2数据类型 4 3S7 300指令基础 4 4位逻辑指令 4 5定时器与计数器指令 4 6数字指令 4 7控制指令 4 8思考与练习 返回首页 4 1STEP7编程语言 STEP7是S7 300 400系列PLC应用设计软件包 所支持的PLC编程语言非常丰富 该软件的标准版支持STL 语句表 LAD 梯形图 及FBD 功能块图 3种基本编程语言 并且在STEP7中可以相互转换 专业版附加对GRAPH 顺序功能图 SCL 结构化控制语言 HiGraph 图形编程语言 CFC 连续功能图 等编程语言的支持 不同的编程语言可供不同知
2、识背景的人员采用 返回本章 STL 语句表 STL 语句表 是一种类似于计算机汇编语言的一种文本编程语言 由多条语句组成一个程序段 语句表可供习惯汇编语言的用户使用 在运行时间和要求的存储空间方面最优 在设计通信 数学运算等高级应用程序时建议使用语句表 返回本节 LAD 梯形图 LAD 梯形图 是一种图形语言 比较形象直观 容易掌握 用得最多 堪称用户第一编程语言 梯形图与继电器控制电路图的表达方式极为相似 适合于熟悉继电器控制电路的用户使用 特别适用于数字量逻辑控制 返回本节 FBD 功能块图 FBD 功能块图 使用类似于布尔代数的图形逻辑符号来表示控制逻辑 一些复杂的功能用指令框表示 FB
3、D比较适合于有数字电路基础的编程人员使用 返回本节 GRAPH 顺序控制 GRAPH类似于解决问题的流程图 适用于顺序控制的编程 利用S7 GRAPH编程语言 可以清楚快速地组织和编写S7PLC系统的顺序控制程序 它根据功能将控制任务分解为若干步 其顺序用图形方式显示出来并且可形成图形和文本方式的文件 返回本节 HiGraph 图形编程语言 S7 Higraph允许用状态图描述生产过程 将自动控制下的机器或系统分成若干个功能单元 并为每个单元生成状态图 然后利用信息通讯将功能单元组合在一起形成完整的系统 返回本节 SCL 结构化控制语言 S7 SCL StructuredControlLang
4、uage 结构控制语言 是一种类似于PASCAL的高级文本编辑语言 用于S7 300 400和C7的编程 可以简化数学计算 数据管理和组织工作 S7 SCL具有PLC公开的基本标准认证 符合IEC1131 3 结构化文本 标准 返回本节 CFC 连续功能图 利用工程工具CFC ContinuousFunctionChart 连续功能图 可以通过绘制工艺设计图来生成SIMATICS7和SIMATICM7的控制程序 该方法类似于PLC的FBD编程语言 在这种图形编程方法中 块被安放在一种绘图板上并且相互连接 利用CFC用户可以快速 容易地将工艺设计图转化为完整的可执行程序 返回本节 4 2数据类型
5、 数据类型决定数据的属性 在STEP7中 数据类型分为三大类 4 2 1基本数据类型 4 2 2复杂数据类型 4 2 3参数类型 返回本章 4 2 1基本数据类型 返回本节 4 2 2复杂数据类型 数组 ARRAY 结构 STRUCT 字符串 STRING 日期和时间 DATE AND TIME 用户定义的数据类型 UDT 功能块类型 FB SFB 返回本节 1 数组 ARRAY 数组是由一组同一类型的数据组合在一起而形成的复杂数据类型 数组的维数最大可以到6维 数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型 Array类型除外 即数组类型不可以嵌套 数组中每一维的下标取值范围
6、是 32768 32767 要求下标的下限必须小于下标的上限 返回上级 2 结构 STRUCT 结构是由一组不同类型 结构的元素可以是基本的或复杂的数据类型 的数据组合在一起而形成的复杂数据类型 结构通常用来定义一组相关的数据 例如电机的一组数据可以按如下方式定义 返回上级 3 字符串 STRING 字符串是最多有254个字符 CHAR 的一维数组 最大长度为256个字节 其中前两个字节用来存储字符串的长度信息 字符串常量用单引号括起来 例如 返回上级 4 日期和时间 DATE AND TIME 用于存储年 月 日 时 分 秒 毫秒和星期 占用8个字节 用BCD格式保存 星期天的代码为1 1
7、6的代码为2 7 例如 返回上级 5 用户定义的数据类型 UDT 用户定义数据类型表示自定义的结构 存放在UDT块中 UDT1 UDT65535 在另一个数据类型中作为一个数据类型 模板 当输入数据块时 如果需要输入几个相同的结构 利用UDT可以节省输入时间 6 功能块类型 FB SFB 这种数据类型仅可以在FB的静态变量区定义 用于实现多背景DB 返回上级 4 2 3参数数据类型 参数类型是一种用于逻辑块 FB FC 之间传递参数的数据类型 主要有以下几种 1 TIMER 定时器 和COUNTER 计数器 2 BLOCK 块 指定一个块用作输入和输出 实参应为同类型的块 3 POINTER
8、指针 6字节指针类型 用来传递DB的块号和数据地址 3 ANY 10字节指针类型 用来传递DB块号 数据地址 数据数量以及数据类型 返回本节 4 3S7 300指令基础 指令是程序的最小独立单位 用户程序是由若干条顺序排列的指令构成 指令一般由操作码和操作数组成 其中的操作码代表指令所要完成的具体操作 功能 操作数则是该指令操作或运算的对象 4 3 1PLC用户存储区的分类及功能 4 3 2指令操作数 4 3 3寻址方式 4 3 4状态字 返回本章 4 3 1PLC用户存储区的分类及功能 1 2 返回本节 4 3 1PLC用户存储区的分类及功能 2 2 返回上级 4 3 2指令操作数 指令操作
9、数 又称编程元件 一般在用户存储区中 操作数由操作标识符和参数组成 操作标识符由主标识符和辅助标识符组成 主标识符用来指定操作数所使用的存储区类型 辅助标识符则用来指定操作数的单位 如 位 字节 字 双字等 主标识符有 I 输入过程映像寄存器 Q 输出过程映像寄存器 M 位存储器 PI 外部输入寄存器 PQ 外部输出寄存器 T 定时器 C 计数器 DB 数据块寄存器 和L 本地数据寄存器 辅助标识符有 X 位 B 字节 W 字或2B D 2DW或4B 返回本节 4 3 3寻址方式 所谓寻址方式就是指令执行时获取操作数的方式 可以直接或间接方式给出操作数 S7 300有4种寻址方式 立即寻址存储
10、器直接寻址存储器间接寻址寄存器间接寻址 返回本节 1 立即寻址 立即寻址是对常数或常量的寻址方式 其特点是操作数直接表示在指令中 或以惟一形式隐含在指令中 下面各条指令操作数均采用了立即寻址方式 其中 后面的内容为指令的注释部分 对指令没有任何影响 返回上级 2 存储器直接寻址 存储器直接寻址 简称直接寻址 该寻址方式在指令中直接给出操作数的存储单元地址 存储单元地址可用符号地址 如SB1 KM等 或绝对地址 如I0 0 Q4 1等 下面各条指令操作数均采用了直接寻址方式 返回上级 3 存储器间接寻址 1 3 存储器间接寻址 简称间接寻址 该寻址方式在指令中以存储器的形式给出操作数所在存储器单
11、元的地址 也就是说该存储器的内容是操作数所在存储器单元的地址 该存储器一般称为地址指针 在指令中需写在方括号 内 地址指针可以是字或双字 对于地址范围小于65535的存储器可以用字指针 对于其他存储器则要使用双字指针 返回上级 4 存储器间接寻址 2 3 例4 3 1 存储器间接寻址的单字格式的指针寻址 返回上级 4 存储器间接寻址 3 3 存储器间接寻址的双字指针的格式如图所示 例4 3 2 存储器间接寻址的双字格式的指针寻址 返回上级 5 寄存器间接寻址 1 4 寄存器间接寻址 简称寄存器寻址 该寻址方式在指令中通过地址寄存器和偏移量间接获取操作数 其中的地址寄存器及偏移量必须写在方括号
12、内 在S7 300中有两个地址寄存器AR1和AR2 用地址寄存器的内容加上偏移量形成地址指针 并指向操作数所在的存储器单元 地址寄存器的地址指针有两种格式 其长度均为双字 指针格式如图所示 返回上级 5 寄存器间接寻址 2 4 第一种地址指针格式适用于在确定的存储区内寻址 即区内寄存器间接寻址 例4 3 3 区内寄存器间接寻址 返回上级 5 寄存器间接寻址 3 4 第二种地址指针格式适用于区域间寄存器间接寻址 例4 3 4 区域间寄存器间接寻址 返回上级 5 寄存器间接寻址 4 4 第一种地址指针格式包括被寻址数据所在存储单元地址的字节编号和位编号 至于对哪个存储区寻址 则必须在指令中明确给出
13、 这种格式适用于在确定的存储区内寻址 即区内寄存器间接寻址 第二种地址指针格式包含了数据所在存储区的说明位 存储区域标识位 可通过改变标识位实现跨区域寻址 区域标识由位26 24确定 这种指针格式适用于区域间寄存器间接寻址 返回上级 4 3 4状态字 状态字用于表示CPU执行指令时所具有的状态信息 首位检测位 FC 逻辑操作结果 RLO 状态位 STA 或位 OR 溢出位 OV 溢出状态保持位 OS 条件码1 CC1 和条件码0 CC0 二进制结果位 BR 返回本节 4 4位逻辑指令 位逻辑指令处理的对象为二进制位信号 位逻辑指令扫描信号状态 1 和 0 位 并根据布尔逻辑对它们进行组合 所产
14、生的结果 1 或 0 称为逻辑运算结果 存储在状态字的 RLO 中 4 4 1触点与线圈 4 4 2基本逻辑指令 4 4 3置位和复位指令 4 4 4RS和SR触发器 4 4 5跳变沿检测指令 返回本章 4 4 1触点与线圈 在LAD 梯形图 程序中 通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件 被扫描的操作数 用绝对地址或符号地址表示 则标注在触点符号的上方 如图所示 返回本节 1 常开触点 对于常开触点 动合触点 则对 1 扫描相应操作数 在PLC中规定 若操作数是 1 则常开触点 动作 即认为是 闭合 的 若操作数是 0 则常开触点 复位 即触点仍处于打开的状态
15、常开触点所使用的操作数是 I Q M L D T C 返回上级 2 常闭触点 常闭触点 动断触点 则对 0 扫描相应操作数 在PLC中规定 若操作数是 1 则常闭触点 动作 即触点 断开 若操作数是 0 则常闭触点 复位 即触点仍保持闭合 常闭触点所使用的操作数是 I Q M L D T C 返回上级 3 输出线圈 赋值指令 输出线圈与继电器控制电路中的线圈一样 如果有电流 信号流 流过线圈 RLO 1 则被驱动的操作数置 1 如果没有电流流过线圈 RLO 0 则被驱动的操作数复位 置 0 输出线圈只能出现在梯形图逻辑串的最右边 输出线圈等同于STL程序中的赋值指令 用等于号 表示 所使用的操
16、作数可以是 Q M L D 返回上级 4 中间输出 在梯形图设计时 如果一个逻辑串很长不便于编辑时 可以将逻辑串分成几个段 前一段的逻辑运算结果 RLO 可作为中间输出 存储在位存储器 I Q M L或D 中 该存储位可以当作一个触点出现在其他逻辑串中 中间输出只能放在梯形图逻辑串的中间 而不能出现在最左端或最右端 与下面程序等效 返回上级 4 4 2基本逻辑指令 基本逻辑指令包括 与 指令 与非 指令 或 指令 或非 指令 异或 指令 异或非 指令逻辑块的操作信号流取反指令 返回本节 1 逻辑 与 指令 逻辑 与 指令使用的操作数可以是 I Q M L D T C 有2种指令形式 STL和FBD 用LAD也可以实现逻辑 与 运算 返回上级 2 逻辑 与非 指令 逻辑 与非 指令使用的操作数可以是 I Q M L D T C 有2种指令形式 STL和FBD 用LAD也可以实现逻辑 与非 运算 返回上级 3 逻辑 或 指令 逻辑 或 指令使用的操作数可以是 I Q M L D T C 有2种指令形式 STL和FBD 用LAD也可以实现逻辑 或 运算 返回上级 4 逻辑 或非 指令 逻辑