1 / 35

结构化编程

FC. FB. OB1. FB. FC. SFC. 操作系统. SFB. 其它 OBs. 结构化编程. IEC 1131 标准. 第一部分: 主要信息 定义 PLC 的术语 PLC 的主要功能特点 第二部分: 设备要求 电气, 机械和功能上的要求 制造商需提供的信息 符合标准的规则 (一致性) 第三部分:编程语言 梯形图, 功能方框图,语句表, 顺序功能图和结构化文本 第四部分: 用户指南 系统分析和描述 PLC 的选择和应用 安全和保护,安装和维护 第五部分: 通讯 模式,通讯块,与 ISO 协议的对应关系.

arlo
Download Presentation

结构化编程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FC FB OB1 FB FC SFC 操作系统 SFB 其它 OBs 结构化编程

  2. IEC 1131 标准 • 第一部分: 主要信息 定义PLC 的术语 PLC 的主要功能特点 • 第二部分: 设备要求 电气, 机械和功能上的要求 制造商需提供的信息 符合标准的规则 (一致性) 第三部分:编程语言 梯形图, 功能方框图,语句表, 顺序功能图和结构化文本 • 第四部分: 用户指南 系统分析和描述 PLC的选择和应用 安全和保护,安装和维护 • 第五部分: 通讯 模式,通讯块,与ISO协议的对应关系 Modul: IEC_T1D.

  3. IEC1131 内容 - 第三部分 • 编译为标准代码的规则 • 软件模型, 通讯模型, 编程模型 • 可编程逻辑控制语言中的通用元件 数据类型和变量 功能和功能块 程序和任务 • 指令表 (IL) (= 语句表 (STL)) • 结构化文本 (ST) (= 结构化控制语言 (SCL)) • 梯形图(LD) (= LAD) • 功能方框图(FBD) • 顺序功能图(SFC) (= S7-GRAPH) • 附加的语法规则和编程示例 Modul: IEC_T1D.

  4. SIMATIC 管理器下的项目结构 项目 硬件站 S7-300 可编程的CPU S7/M7 程序(分配给硬件的) STL 用户程序源文件 用 S7块组成的用户程序,OBs, FBs, FCs, DBs,等 用户程序 STL 源文件 S7/M7 程序(未分配给硬件的)

  5. STEP7的块

  6. 块的组成部分 变量声明表 代码部分

  7. 块的结构 块的首部 (36字节) 块体 变量声明部分 和 程序部分 或 数据 压缩的接口描述

  8. FC 1 电机 1 FC 1 电机 2 FC 1 电机 3 结构化编程 OB 1

  9. Input1 Input2 Input3 Output_A TEMP1 M5.0 ADD_I SUB_I O #TEMP1 #INPUT1 #INPUT2 IN1 IN2 IN1 IN2 利用局部数据进行控制 OB1 FC1 (数学功能) int sample measure 1 I0.5 0.0 in FC1 2.0 in constant int 4.0 in offset int MW5 Input1 Output_A QW12 result 6.0 int out 3369 Input2 8.0 int intermediate temp Input3 MW10 M5.1 ( ) I0.5 O #Output_A #TEMP1 #INPUT3 FC1 MW2 Input1 Output_A QW20 6869 Input2 Input3 MW16

  10. 全局变量/数据 (在全部程序中有效) 局部变量 / 数据 (只在一个块中有效) 静态变量 •当相关块执行完毕后仍然 保留 •永久存储在DBs中 •只能在FBs中使用 临时变量 •当相关块执行完毕后被清除 •临时存储在L stack中 •可在下列块中使用OBs / FCs / FBs • PII / PIQ • I/ O • M / T / C • DB areas 绝对地址 符号地址 访问方式 局部变量

  11. 临时变量

  12. 执行的程序 日时钟中断 2 256 bytes 时间中断 延时处理中断 3 256 bytes 循环处理中断 12 256 bytes 硬件中断 16 256 bytes 事件驱动中断 启动过程中的错误处理中断 28 256 bytes 循环扫描中的错误处理中断 26 局部数据堆栈的大小 总容量:1.5 Kbyte(CPU 313..316) 对于S7-300: 优先级 局部堆栈大小 启动程序 (只执行一次) 27 256 bytes 循环扫描程序 1

  13. 块所需要的局部数据区的长度 rechts

  14. 操作系统 1 FC 2 有临时 变量 OB 1 FC 1 有临时 变量 3 2 4 FC 3 有临时 变量 5 7 6 事件 1 2 3 4 5 6 7 所占用的 L stack FC2 FC3 256 Bytes FC1 FC1 FC1 FC1 FC1 OB1 OB1 OB1 OB1 OB1 OB1 OB1 程序所占用的局部数据区的总长度

  15. 替换为临时变量 练习1.1: 使用临时变量 QW6

  16. P >=1 解决方案 Report Memory RS Edge Mem. Bit Acknowl. R & Disturb. Input S Q Flash Freq. & Report Memory Display Disturb. Input = 示例:故障信息指示 要求 Disturbance Acknowledge Report Memory LED

  17. 形式参数 可以分配参数的块 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 不可以分配参数的块 可以分配参数的块 程序 调用 FC 20 A #Acknowledge R #Report memory A #Disturb_input FP #Edge_mem_bit S #Report_memory A #Report_memory A #Flash_freq O AN #Report_memory A #Disturb_input = #Display I 1.3 Display Q 4.3 Disturb_ input I 1.2 Acknowledge M 10.3 Flash_freq M 40.0 Edge_ mem_bit Report_ memory M 40.1 实际参数

  18. 定义形式参数 形式参数 定义 参数类型 使用方法 图形显示 输入参数 in 只能读 在块的左侧 输出参数 out 只能写 在块的右侧 输入/输出参数 In_out 可读/可写 在块的左侧 FC 20 的变量声明表

  19. 编辑一个可分配参数的块 对于无参数分配的块,此处可能是: • 绝对地址: I1.3 • 符号地址: “End_left”

  20. EN FC20 Disturb_input Display Acknowledge Flash_freq Edge_mem_bit ENO Report_memory 绝对的 符号表 全局符号 调用一个分配了参数的块 Network 3: First Call .... “End left” “Position error” “Acknow.button” M10.3 M40.0 寻址方式 M40.1 Network 4: Second Call Q4.1 EN 符号的 FC20 “End right” Disturb_input Display Q5.4 “Acknow.button” Acknowledge M10.3 Flash_freq M40.2 Edge_mem_bit ENO M40.3 Report_memory 符号 局部符号 -->形式参数

  21. Q 5.0 FC 1 A I 0.1 JNB _001 CALL FC 1 _001: A BR = Q 5.0 EN ENO 条件调用 I 0.1 = 例子 FC 1 FC 2 FC 3 ?? . ? EN ENO EN ENO EN ENO = 在块调用时使用EN/ENO参数 LAD/FBD STL FC 1 无条件调用 ?? . ? EN ENO CALL FC 1 NOP 0

  22. 无参数的块 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 AN M 40.0 A I 1.3 = Q 5.3 分配了参数的块FC 20 A #Acknowledge R #Report_memory A #Disturb... : : : : : : : : 2. 练习1.2: 生成一个分配了参数的FC块 1. FC 20 的变量声明表

  23. 练习1.3: 调用一个分配了参数的FC块 FC 20 I 1.3 Disturb_input Display I 1.2 Q 5.3 Acknowledge 第一次调用FC20时 的参数分配 M 10.3 Flash_freq M 40.0 Edge_mem_bit M 40.1 Report_memory FC 20 I 1.4 Disturb_input I 1.2 Display Q 5.4 Acknowledge 第二次调用FC20时 的参数分配 M 10.3 Flash_freq M 40.2 Edge_mem_bit M 40.3 Report_memory

  24. FB块的变量声明表 FB块 OB 1 DB 2 FB 2 EN Disturb. input Acknowledge Display Flash freq. ENO

  25. 背景数据块 用FB实现的故障信息显示 FB的声明表

  26. 2. 创建一个新的背景数据块 生成背景数据块 1. 在FB调用时生成背景数据块

  27. 多重背景模型 OB 1 Call FB100, DB100 FB 100 stat Dist_1 FB20 DB11 Call FB20, DB11 Disturb._Input:= Acknowledge:= Flash_Freq:= Display:= DB100 stat Dist_2 FB20 FB20 DB12 Call FB20, DB12 Disturb._Input:= Acknowledge:= Flash_Freq:= Display:= FB20 多重背景模型 普通背景模型 OB 1 DB10 Call FB20, DB10 Disturb._Input:= Acknowledge:= Flash_Freq:= Display:= FB20 Call Dist_1 Disturb._Input:= Acknowledge:= Flash_Freq:= Display:= Parameters and static variables of the 1st. call of FB20 Call Dist_2 Disturb._Input:= Acknowledge:= Flash_Freq:= Display:= Parameters and static variables of the 2nd. call of FB20

  28. A #Acknowledge R #Report memory A #Disturb. ... : : 2. FB 20 中的部分程序 练习1.4: 编写一个FB块 1. FB 20的变量声明表

  29. 练习1.5: 调用FB并调试

  30. Save 插入/删除块的参数可能遇到的问题

  31. 单击鼠标右键 调用被修改过的块时应做的更正 当调用块被打开时:

  32. 练习1.6: 多台设备的风扇监控功能 功能 符号 SIG FC101 ACKN R REPORT A TIME B =1 A FLT S_ODT C B SIG S Q >=1 C ACKN TIME A TV B & C FLT

  33. 练习1.7: 风扇监控功能的扩展 功能 符号 SIG FC101 ACKN R REPORT A TIME B =1 A S_ ODT FLT C B SIG >=1 S Q C & ENAB ENAB ACKN A TIME B & TV C FLT ENAB

  34. Statement Local Global Absolute Symbolic Temporary Static Parameter L #Number_1 L #Number_2 T #Max_value L #Intermediate_result L “Number_1” T MW 40 T #Number_2 练习1.8: 识别变量的类型 TYPE OF VARIABLE

  35. 有参数 有参数,有背景数据块 • CALL FC2 Par1: ... Par2: ... Par3: ... • CALL FB2, DB3 Par1: ... Par2: ... Par3: ... (CALL) DB3 FC2 FB2 EN ENO EN ENO EN FC1 Par1 EN ENO Par1 Par1 Par2 Par3 Par2 Par3 Par2 DB3 FC1 FC2 FB2 Par3 EN EN Par3 Par1 ENO Par2 ENO ENO 总结: 块的调用 FC FB 语言 无参数 无参数,无背景数据块 • CALL FC1 • UC FC1 • CC FC1 • UC FB1 • CC FB1 STL FC1 LAD FC1 CALL FBD

More Related