西门子S7-SCL编程与应用

上传人:油条 文档编号:101088030 上传时间:2019-09-26 格式:PPTX 页数:92 大小:1.80MB
返回 下载 相关 举报
西门子S7-SCL编程与应用_第1页
第1页 / 共92页
西门子S7-SCL编程与应用_第2页
第2页 / 共92页
西门子S7-SCL编程与应用_第3页
第3页 / 共92页
西门子S7-SCL编程与应用_第4页
第4页 / 共92页
西门子S7-SCL编程与应用_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《西门子S7-SCL编程与应用》由会员分享,可在线阅读,更多相关《西门子S7-SCL编程与应用(92页珍藏版)》请在金锄头文库上搜索。

1、西门子S7-SCL编程与应用,第一章 SCL语言概述,-2-,1.1 SCL语言,-3-,概述 SCL(结构化控制语言)是一种用于S7-300/400和 C7等自动化 系统的高级文本编程语言。 借助SCL,可以简化控制技术领域复杂的计算、算法、数据管理 和数据组织等编程工作。 IF New_valueOld_value THEN index:=(index mod max_values)+1; measurement_valuesindex:=INT_TO_REAL(measurement); END IF;,SCL编程语言,1.1 SCL语言,-4-,编程标准 SCL符合语言标准DIN EN

2、-61131 Part3(国际标准IEC 1131-3)。 DIN EN-61131 Part3(国际标准IEC 1131-3)对可编程控制器 的编程语言实现了标准化。SCL的基础是该标准中的ST“结构化文本” 部分。 SCL类似于Pascal,具备高级标称语言的所有优势。SCL除了有 清晰的控制结构和丰富的数据概念,还拥有例如过程和函数等重要 内容。因此采用了SCL,可以编制结构清洗,易读性好的程序。,1.1 SCL语言,-5-,应用领域 复杂的数学函数功能,例如:调节器 数据管理 配方管理 具有大量分支和循环结构的程序 特点 易于掌握 可短时间开发易读性更好的程序 可间接地描述复杂的算法

3、支持S7中的块和数据类型等概念 与S7语言(LAD、FBD、STL)实现系统集成,1.2 软件安装,-6-,概述 S7-SCL选件包需单独进行安装。将选件包存放在英文目录下, 双节setup.exe,即可开始执行安装程序。,1.2 软件安装,-7-,软件验证 当S7-SCL选件包安装后,可以在STEP 7 Manager中插入 SCL源 文件。,源文件插入,1.3 S7-SCL与SIMATIC Manager,-8-,软件架构 S7-SCL的程序以源文件的格式出现在Source文件夹中,通过编 译器将程序块编译,生成执行块并保存在Block文件夹内。,源文件存放位置,执行程序存放位置,共用符号

4、表,1.3 S7-SCL与SIMATIC Manager,-9-,设置 在使用SCL之前,需要检查并调整某些个性化设置。在SCL编程 界面中,通过点击Option-Customize进行软件设置。,1.3 S7-SCL与SIMATIC Manager,-10-,设置,生成块设置,编译设置,编辑设置,必选,1.4 程序结构,-11-,概述 一个SCL程序可以由一个或多个SCL源文件构成。采用SCL编辑器 可以编辑这些源文件。采用一个还是多个源文件取决于具体目标。 若需要多个独立的块,则应选用每个块一个源文件的方式。 如果需要创建一个完整的程序或者某个程序的一个组成部分, 则可以在一个源文件中包含

5、多个块。,1.4 程序结构,-12-,结构图,OB1、FC2、FB9与背景DB,1.4 程序结构,-13-,调用顺序 在SCL程序编写时,必须要注意源程序的块调用顺序。 例如:在OB1先调用FC2,再调用FB9,则必须先编译FB9,再编 译FC2,最后编译OB1。这意味着,在源文件中,FB9必须在FC2之前, FC2必须在OB1之前,OB1,FC2,背景DB,FB9,程序调用顺序:OB1FC2 FB9,OB1、FC2、FB9与背景DB,同一个源文件中的程序编写次序,注意先后,编译次序:FB9FC2 OB1,1.4 程序结构,-14-,SCL控制文件 一个SCL程序可以由多个SCL源文件组成。S

6、CL控制文件根据调用 编译时各个源文件的编译顺序依次编译各文件。,OB1 FC3 FC5,OB32 FC17 FB22,DB2 DB3 FC77,1.4 程序结构,-15-,SCL控制文件,用于SCL编译器的控制文件,如果在SCL源文件2中调用SCL源文件3内包含的块,则在SCL控制文件中,SCL源文件3必须在SCL源文件2的前面。,源文件 1,源文件 2,源文件 2,多个源文件构成一个完成程序,1.4 程序结构,-16-,块库 在源文件中将需要调用库中的块复制到Block程序块中。,程序库,程序库文件,1.5 文件操作,-17-,导入源文件,右击插入新对象-外部源文件用于外部程序导入,1.5

7、 文件操作,-18-,导出源文件,右击源文件-导出源文件用于源文件导出操作,1.5 文件操作,-19-,编译源文件,编译按键,1.5 文件操作,-20-,下载与帮助,编译结果出错 E:错误W:警告 按F1进入帮助,下载按键,第二章 创建和调用块,-21-,第二章 创建和调用块,-22-,2.1 源文件结构,-23-,概述 一个SCL源文件可以包含任意个块:如OB块、FB块、FC块、DB块 和UDT块。 SCL源文件中的每一个独立的块,都有一个用于构建该块的标准 描述符(表示块开始和块结束)。标准描述符取决于块类型,块本 身则由一个声明部分和一个指令部分组成。,2.1 源文件结构,-24-,文件

8、结构,DB5,FB10,FC62,FC61,OB1,FUNCTION_BOLCK FB10,属 性,声明部分,指令部分,END_FUNCTION_BLOCK,2.1 源文件结构,-25-,源文件编译顺序 为了使SCL源文件可以顺利地编译成功,涉及编译顺序,需注意: 被调用块必须始终先于调用他们的块完成声明; 用户自定义数据类型(UDT)必须先于使用该数据类型的所有块之前完成声明; 全局数据块必须先于访问该全局数据块的所有块之前完成声明 如果源文件创建了OB1块,则该块通常位于顺序的末尾; 背景数据块由编译器自动创建。,2.1 源文件结构,-26-,块的开始和结束 块的各种源文本,根据具体的块类

9、型,由表示块的开始和结束 的标准描述符和块描述符引入。 块名称可以采用绝对方式(例如FB10),也可以采用符号方式 (例如motor)进行声明。使用符号声明时,符号表中必须有一个相 应的条目。,块的开始和结束定义,2.1 源文件结构,-27-,块模块 块模块包含块的开始和结束部分。在SCL编辑器中,通过菜单项 insert-BOLCK Template-OB、FB、FC、DB和UDT,对源文件中的 块进行插入。,块模块插入,2.1 源文件结构,-28-,块属性 块属性包含标题、版本、块保护属性、作者等块信息。,FUNCTION_BOLCK FB10,属 性,声明部分,指令部分,END_FUNC

10、TION_BLOCK,标题=Controller 版本:2.1 KNOW_HOW_PROTECT 作者:Training 名字:Motor,2.1 源文件结构,-29-,声明部分 声明部分用于定义局部和全局变量、块参数、常量和跳转标志。 声明部分可分成各个声明块,每个声明块有自己的关键字作为标志。,块的声明格式,2.1 源文件结构,-30-,声明部分,FUNCTION_BOLCK FB10,属 性,声明部分,指令部分,END_FUNCTION_BLOCK,CONST FIX_VALUE:=5; P_Part:=0.8; END_CONST VAR Value1,Value2:INT; END_

11、VAR VAR_INPUT IN1,IN2:BOOL; END_VAR VAR_OUTPUT Q01:BOOL; Display:INT; END_VAR,2.1 源文件结构,-31-,声明数据 声明数据可以通过insert-Block Template-Constant、Parameter 进行插入模板。,声明数据插入,2.1 源文件结构,-32-,指令部分 程序段(OB、FB、FC)被调用后,块的指令部分包含的指令将 被执行。这些指令的作用是处理数据和地址。对于数据块,指令还 可以将某些值保存在数据块中。 各种指令可以归纳为赋值、控制指令、子程序处理三类: 赋值:用来将某个表达式或某个值赋

12、给某个变量; 控制指令:用来在程序中实现分支或重复执行指令; 子程序处理:用来调用函数和功能。,2.1 源文件结构,-33-,指令部分,FUNCTION_BOLCK FB10,属 性,声明部分,指令部分,END_FUNCTION_BLOCK,BEGIN /位运算、算法实例 Q0.0:=I0.0 AND I0.1; MW20:=MW22+MW24; /赋值实例 Measured_Value:=0; /控制指令 IF I1.1 THEN N:=0; SUM:=0.0; ELSEIF START=TRUE THEN N:=N+1; SUM:=SUM+IN; ELSE OK:=FALSE; END_I

13、F; /子程序调用实例 FB10.DB2(Pa:=10,Pa2:=MW2) Result:=DB2.MVAL8;,2.1 源文件结构,-34-,指令部分注意事项 采用指令进行编程时,需要注意: 指令部分以关键词BEGIN为开始,以块结束关键词为结束; 每一个指令都以一个分号为结束; 指令部分中使用的全部标识符都必须在声明部分定义或在符号表中定义。,2.1 源文件结构,-35-,指令插入 可以通过insert-Control structure-IF,CASE,FOR,WHILE, REPEAT对控制结构模块进行插入。,控制结构插入,2.2 组织块(OB)的结构,-36-,概述 组织块只能由操作

14、系统调用,循环调用或在出现特定事件时调 用。通常在组织中调用含有实际程序代码的FC和FB。 为了能够正常地运行,每一个组织块基本上都要求有20字节的 局部数据。需要指出的是,也可以声明其他更多的局部数据 。,2.2 组织块(OB)的结构,-37-,组织块结构,FUNCTON FC62:BOOL VAR_INPUT IN1:Bool; IN2:Bool; END_VAR BEGIN . FC62:=IN1 AND IN2; END_FUNCTION FUNCTON FC61:VOID BEGIN . Q0.0:=I0.0 AND I0.1; END_FUNCTION ORGANIZATION_B

15、LOCK OB1 VAR_TEMP info:ARRAY019 OF BYTE; END_VAR BEGIN FC61(); Q4.0:=FC62(IN1:=I4.0,IN2:=I4.1) Q4.1:=M10.4 END_ORGANIZATION_BLOCK,OB1可替换成符号表中的符号,必须声明20个字节的局部数据,也可以声明其他临时性的局部变量,调用FC61,无输入输出和返回值,调用FC62,有输入输出和返回值,一般赋值指令操作,2.3 函数(FC/SFC)的结构,-38-,概述 FC是一个程序段,该程序段中可以使用所有的S7和SCL指令。用 户可以访问CPU存储区,如输入输出、数据块、时

16、间、计数器等。这 种方式可以以绝对方式或符号方式进行。 为了保证FC的通用性,FC不应直接访问输入输出、数据块、时 间、计数器等。需要实现类似功能时,可以向FC提供相应参数(形 式参数调用),即通过参数告诉这些参数功能的声明部分。,FUNCTION FC62:BOOL VAR_INPUT IN1:Bool; IN2:Bool; END_VAR BEGIN . FC62:=IN1 AND IN2; END_FUNCTION,2.3 函数(FC/SFC)的结构,-39-,返回值 FC分有返回值与无返回值两种方式。 有返回值:函数功能完成后,会将结果传递给调用者。调用者必须接受该结果并保存在某个变量。函数返回的数据类型在函数中定义。 如:FUNCTION FC62:BOOL Q4.0:=FC62(IN1:=I4.0,IN2:=I4.1) 无返回值:函数不需要其他返回值。对于

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号