- 29
- 0
- 约1.19万字
- 约 48页
- 2016-12-05 发布于浙江
- 举报
西门子---携手中国141年 西门子---携手中国141年 STEP7 编程语言 三种编程方法 线性化编程:将整个用户程序放在主程序OB1中,在CPU循环扫描时执行OB1中的全部指令。其特点是结构简单,但效率低下。一方面,某些相同或相近的操作需要多次执行,这样会造成不必要的编程工作。另一方面,由于程序结构不清晰,会造成管理和调试的不方便。所以在编写大型程序时,应避免线性化编程。 三种编程方法 模块化编程:将程序根据功能分为不同的逻辑块,且每一逻辑块完成的功能不同。在OB1中可以根据条件调用不同的功能(FC)或功能块(FB)。其特点是易于分工合作,调试方便。由于逻辑块是有条件的调用,所以可以提高CPU的利用率。 三种编程方法 结构化编程:将过程要求类似或相关的任务归类,在功能(FC)或功能块(FB)中编程,形成通用解决方案。通过不同的参数调用相同的功能(FC)或通过不同的背景数据块调用相同的功能块(FB)。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以对设计人员的要求较高,另外,当使用结构化编程方法时,需要对数据进行管理。 三种编程方法 结构化编程: 结构化编程中,OB1或其他块调用这些通用块,通用的数据和代码可以共享,这与模块化编程是不同的。结构化编程的优点是不需要重复编写类似的程序,只需对不同的设备代入不同的地址,可以在一个块中写程序,用程序把参数传给程序块。这样,写一个通用模块可以让更多的设备或过程使用此模块。但是,使用结构化编程方法时,需要管理程序和数据的存储与使用。 中断组织块 使用错误组织块 为避免发生某错误时CPU进入停机状态,可以在CPU中建立一个相应的空错误组织块。 可以在错误OB块中编程实现所希望的响应,如果需要,在执行完规定指令后,调用系统功能SFC 46申请停机。 在错误组织块的启动信息中包含有错误的特征,可以在程序中使用。 关于错误组织块的详细描述参见在线帮助或系统和标准功能手册。 当CPU不支持某些错误OB时,相关的错误信息就不会记录在OB块中。 系统块 STEP 7基本数据类型 一分钟认识PLC程序 一分钟认识PLC程序 The End 只用主程序OB1 行不行? FC 中文名:功能 无记忆、可分配参数的逻辑块。 参数类型 定义 使用方法 图形显示 输入参数 IN 只能读 在块的左侧 输出参数 OUT 只能写 在块的右侧 输入/输出参数 IN/OUT 可读可写 在块的左侧 FC1 EN ENO IN1 IN2 OUT1 OUT2 … … EN--使能 ENO--使能输出 没脑子 FC1 EN ENO a b c d … … TEMP--临时变量 变量声明 指令编写 DB -有存储器(背景数据块) -通过声明静态变量 可以“记住”调用时的过程状态, 这种能力是与FC的本质区别 FB 中文:功能块 背景化的逻辑块。 FB 带账本 DB1 FB1 STAT--静态变量 EN ENO IN1 IN2 OUT1 OUT2 … … 没有引脚 背景DB(数据块)中存有IN、OUT、IN_OUT、STAT的数值 DB1 FB1 STAT--静态变量 EN ENO a b 通过定义成静态变量,直接存入DB1中 FC1 EN ENO a b c d e 通过编程,送入全局变量 临时变量 ? 当相关块执行完毕后被清除 ? 临时存储在局部堆栈中 ? 可在下列块中使用 OBs / FCs / FBs 静态变量 ?当相关块执行完毕后仍然 保留 ? 永久存储在DBs中 ? 只能在FBs中使用 局部变量 / 数据 (只在一个块中有效) 全局变量/数据 (全部程序有效) ? PII / PIQ ? I/ O ? M / T / C ? DB areas 符号地址 访问方式 绝对地址 - 只能由操作系统来启动。 - 各组织块由不同的事件启动, 且具有不同的优先级(1~26)。 - 循环执行的主程序在OB1中。 OB 中文:组织块 操作系统和用户程序直接的接口。 启动 OB 100 OB 101 OB 102 OB 10...17 (日期时间中断) OB 20...23 (延时中断) 定期的 程序执行 OB 30...38 (循环中断) 事件驱动的 程序执行 OB 40...47 (硬件中断) OB 121, 122 (同步错误) 中断 OB 错误 OB OB 80...87 (异步错误) 爷爷辈 叔伯辈 例如:OB82 (优先级26) =错误处理程序。 当模拟输入PIW352 断线时执行。 例如OB10 (优先级2) =日期时间中断。 从9:30开始每分钟 执行一次。 OB1 连续执行 OB 1 3 日期时间中断 循环中断 1 16 错误处理 循环程序 延时中断 硬件中断 2 12 26
原创力文档

文档评论(0)