书签 分享 收藏 举报 版权申诉 / 92
上传文档赚钱

类型S7SCL编程与应用课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:2477778
  • 上传时间:2022-04-23
  • 格式:PPTX
  • 页数:92
  • 大小:1.86MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《S7SCL编程与应用课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    S7SCL 编程 应用 课件
    资源描述:

    1、西门子西门子S7-SCLS7-SCL编程与应用编程与应用第一章第一章 SCLSCL语言概述语言概述-2-文件操作文件操作程序结构程序结构S7-SCL与与SIMATIC Manager软件安装软件安装SCL语言语言1.1 SCL1.1 SCL语言语言-3-概述 SCL SCL(结构化控制语言)是一种用于(结构化控制语言)是一种用于S7-300/400S7-300/400和和 C7 C7等自动化等自动化系统的高级文本编程语言。系统的高级文本编程语言。 借助借助SCLSCL,可以简化控制技术领域复杂的计算、算法、数据管理,可以简化控制技术领域复杂的计算、算法、数据管理和数据组织等编程工作。和数据组织

    2、等编程工作。 IF New_valueOld_value THEN index:=(index mod max_values)+1; measurement_valuesindex:=INT_TO_REAL(measurement); END IF;SCL编程语言编程语言1.1 SCL1.1 SCL语言语言-4-编程标准 SCL SCL符合语言标准符合语言标准DIN EN-61131 Part3DIN EN-61131 Part3(国际标准(国际标准IEC 1131-3IEC 1131-3)。)。 DIN EN-61131 Part3 DIN EN-61131 Part3(国际标准(国际标准I

    3、EC 1131-3IEC 1131-3)对可编程控制器)对可编程控制器的编程语言实现了标准化。的编程语言实现了标准化。SCLSCL的基础是该标准中的的基础是该标准中的STST“结构化文本结构化文本”部分。部分。 SCL SCL类似于类似于PascalPascal,具备高级标称语言的所有优势。,具备高级标称语言的所有优势。SCLSCL除了有除了有清晰的控制结构和丰富的数据概念,还拥有例如过程和函数等重要清晰的控制结构和丰富的数据概念,还拥有例如过程和函数等重要内容。因此采用了内容。因此采用了SCLSCL,可以编制结构清洗,易读性好的程序。,可以编制结构清洗,易读性好的程序。1.1 SCL1.1

    4、SCL语言语言-5-应用领域 复杂的数学函数功能,例如:调节器复杂的数学函数功能,例如:调节器 数据管理数据管理 配方管理配方管理 具有大量分支和循环结构的程序具有大量分支和循环结构的程序特点 易于掌握易于掌握 可短时间开发易读性更好的程序可短时间开发易读性更好的程序 可间接地描述复杂的算法可间接地描述复杂的算法 支持支持S7S7中的块和数据类型等概念中的块和数据类型等概念 与与S7S7语言(语言(LADLAD、FBDFBD、STLSTL)实现系统集成)实现系统集成 1.2 1.2 软件安装软件安装-6-概述 S7-SCL S7-SCL选件包需单独进行安装。将选件包存放在英文目录下,选件包需单

    5、独进行安装。将选件包存放在英文目录下,双节双节setup.exesetup.exe,即可开始执行安装程序。,即可开始执行安装程序。1.2 1.2 软件安装软件安装-7-软件验证 当当S7-SCLS7-SCL选件包安装后,可以在选件包安装后,可以在STEP 7 ManagerSTEP 7 Manager中插入中插入 SCLSCL源源文件。文件。 源文件插入源文件插入1.3 S7-SCL1.3 S7-SCL与与SIMATIC ManagerSIMATIC Manager-8-软件架构 S7-SCL S7-SCL的程序以源文件的格式出现在的程序以源文件的格式出现在SourceSource文件夹中,通

    6、过编文件夹中,通过编译器将程序块编译,生成执行块并保存在译器将程序块编译,生成执行块并保存在BlockBlock文件夹内。文件夹内。源文件存源文件存放位置放位置执行程序执行程序存放位置存放位置共用符号表共用符号表1.3 S7-SCL1.3 S7-SCL与与SIMATIC ManagerSIMATIC Manager-9-设置 在使用在使用SCLSCL之前,需要检查并调整某些个性化设置。在之前,需要检查并调整某些个性化设置。在SCLSCL编程编程界面中,通过点击界面中,通过点击Option-CustomizeOption-Customize进行软件设置。进行软件设置。1.3 S7-SCL1.3

    7、S7-SCL与与SIMATIC ManagerSIMATIC Manager-10-设置 生成块设置生成块设置编译设置编译设置编辑设置编辑设置必选必选1.4 1.4 程序结构程序结构-11-概述 一个一个SCLSCL程序可以由程序可以由一个或多个一个或多个SCLSCL源文件源文件构成。采用构成。采用SCLSCL编辑器编辑器可以编辑这些源文件。采用一个还是多个源文件取决于具体目标。可以编辑这些源文件。采用一个还是多个源文件取决于具体目标。 若需要多个独立的块,则应选用每个块一个源文件的方式。若需要多个独立的块,则应选用每个块一个源文件的方式。 如果需要创建一个完整的程序或者某个程序的一个组成部分

    8、,如果需要创建一个完整的程序或者某个程序的一个组成部分,则可以在一个源文件中包含多个块。则可以在一个源文件中包含多个块。OB1FC2背景背景DBFB9程序调用顺序:程序调用顺序:OB1FC2 FB91.4 1.4 程序结构程序结构-12-结构图 .FB9.FC2.OB1.SCL源文件源文件一个源文件构成一个源文件构成一个完成程序一个完成程序OB1、FC2、FB9与背景与背景DBOB1源文件源文件FC2源文件源文件FB9源文件源文件多个源文件构成多个源文件构成一个完成程序一个完成程序1.4 1.4 程序结构程序结构-13-调用顺序 在在SCLSCL程序编写时,必须要注意源程序的块调用顺序。程序编

    9、写时,必须要注意源程序的块调用顺序。 例如:在例如:在OB1OB1先调用先调用FC2FC2,再调用,再调用FB9FB9,则必须先编译,则必须先编译FB9FB9,再编,再编译译FC2FC2,最后编译,最后编译OB1OB1。这意味着,在源文件中,。这意味着,在源文件中,FB9FB9必须在必须在FC2FC2之前,之前,FC2FC2必须在必须在OB1OB1之前之前OB1FC2背景背景DBFB9程序调用顺序:程序调用顺序:OB1FC2 FB9.FB9.FC2.OB1.SCL源文件源文件OB1、FC2、FB9与背景与背景DB同一个源文件中同一个源文件中的程序编写次序,的程序编写次序,注意先后注意先后编译次

    10、序:编译次序:FB9FC2 OB11.4 1.4 程序结构程序结构-14-SCL控制文件 一个一个SCLSCL程序可以由多个程序可以由多个SCLSCL源文件组成。源文件组成。SCLSCL控制文件根据调用控制文件根据调用编译时各个源文件的编译顺序依次编译各文件。编译时各个源文件的编译顺序依次编译各文件。OB1FC3FC5OB32FC17FB22DB2DB3FC771.4 1.4 程序结构程序结构-15-SCL控制文件 SCL源文件源文件3SCL源文件源文件2SCL源文件源文件1SCL控制文件控制文件用于用于SCL编译器编译器的控制文件的控制文件如果在如果在SCL源文件源文件2中调用中调用SCL源

    11、文件源文件3内包含的块,则在内包含的块,则在SCL控制文件中,控制文件中,SCL源文件源文件3必须在必须在SCL源文件源文件2的前面。的前面。源文件源文件1源文件源文件2源文件源文件2多个源文件构成多个源文件构成一个完成程序一个完成程序1.4 1.4 程序结构程序结构-16-块库 在源文件中将需要调用库中的块复制到在源文件中将需要调用库中的块复制到BlockBlock程序块中。程序块中。程序库程序库程序库文件程序库文件1.5 1.5 文件操作文件操作-17-导入源文件右击插入新对象右击插入新对象-外部源文件用外部源文件用于外部程序导入于外部程序导入1.5 1.5 文件操作文件操作-18-导出源

    12、文件右击源文件右击源文件-导导出源文件用于源出源文件用于源文件导出操作文件导出操作1.5 1.5 文件操作文件操作-19-编译源文件编译按键编译按键1.5 1.5 文件操作文件操作-20-下载与帮助编译结果出错编译结果出错E:错误:错误W:警告:警告按按F1进入帮助进入帮助下载按键下载按键第二第二章章 创建和调用块创建和调用块-21-数据块的结构数据块的结构功能块(功能块(FB/SFB)的结构)的结构函数(函数(FC/SFC)的结构)的结构组织块(组织块(OB)的结构)的结构源文件结构源文件结构第二第二章章 创建和调用块创建和调用块-22-数据块结构与用户自定义数据类型结构数据块结构与用户自定

    13、义数据类型结构功能块(功能块(FB/SFB)的结构)的结构函数(函数(FC/SFC)的结构)的结构组织块(组织块(OB)的结构)的结构用户自定义数据类型结构用户自定义数据类型结构2.1 2.1 源文件结构源文件结构-23-概述 一个一个SCLSCL源文件可以包含任意个块:如源文件可以包含任意个块:如OBOB块、块、FBFB块、块、FCFC块、块、DBDB块块和和UDTUDT块。块。 SCL SCL源文件中的每一个独立的块,都有一个用于构建该块的标准源文件中的每一个独立的块,都有一个用于构建该块的标准描述符(表示块开始和块结束)。标准描述符取决于块类型,块本描述符(表示块开始和块结束)。标准描述

    14、符取决于块类型,块本身则由一个声明部分和一个指令部分组成。身则由一个声明部分和一个指令部分组成。2.1 2.1 源文件结构源文件结构-24-文件结构 DB5FB10FC62FC61OB1FUNCTION_BOLCK FB10属属 性性声明部分声明部分指令部分指令部分END_FUNCTION_BLOCK2.1 2.1 源文件结构源文件结构-25-源文件编译顺序 为了使为了使SCLSCL源文件可以顺利地编译成功,涉及编译顺序,需注意:源文件可以顺利地编译成功,涉及编译顺序,需注意: 被调用块必须始终先于调用他们的块完成声明;被调用块必须始终先于调用他们的块完成声明; 用户自定义数据类型(用户自定义

    15、数据类型(UDTUDT)必须先于使用该数据类型的所有)必须先于使用该数据类型的所有块之前完成声明;块之前完成声明; 全局数据块必须先于访问该全局数据块的所有块之前完成声明全局数据块必须先于访问该全局数据块的所有块之前完成声明 如果源文件创建了如果源文件创建了OB1OB1块,则该块通常位于顺序的末尾;块,则该块通常位于顺序的末尾; 背景数据块由编译器自动创建。背景数据块由编译器自动创建。 2.1 2.1 源文件结构源文件结构-26-块的开始和结束 块的各种源文本,根据具体的块类型,由表示块的开始和结束块的各种源文本,根据具体的块类型,由表示块的开始和结束的标准描述符和块描述符引入。的标准描述符和

    16、块描述符引入。 块名称可以采用块名称可以采用绝对方式绝对方式(例如(例如FB10FB10),也可以采用),也可以采用符号方式符号方式(例如(例如motormotor)进行声明。使用符号声明时,符号表中必须有一个相)进行声明。使用符号声明时,符号表中必须有一个相应的条目。应的条目。UDTUDTDBDBFBFBTYPE udt_name:END_TYPEDATA_BLOCK db_name:END_DATA_BLOCKFUNCTION_BLOCK fb_name:END_FUNCTION_BLOCKFCFCOBOBFUNCTION fc_name:function_type:END_FUNCTIO

    17、NORGAINZATION_BOLCK ob_name :END_ORGAINZATION_BOLCK块的开始和结束定义块的开始和结束定义2.1 2.1 源文件结构源文件结构-27-块模块 块模块包含块的开始和结束部分。在块模块包含块的开始和结束部分。在SCLSCL编辑器中,通过菜单项编辑器中,通过菜单项insert-BOLCK Template-OB、FB、FC、DB和和UDT,对源文件中的,对源文件中的块进行插入。块进行插入。 块模块插入块模块插入2.1 2.1 源文件结构源文件结构-28-块属性 块属性包含标题、版本、块保护属性、作者等块信息。块属性包含标题、版本、块保护属性、作者等块信

    18、息。FUNCTION_BOLCK FB10属属 性性声明部分声明部分指令部分指令部分END_FUNCTION_BLOCK标题=Controller版本:2.1KNOW_HOW_PROTECT作者:Training名字:Motor2.1 2.1 源文件结构源文件结构-29-声明部分 声明部分用于定义局部和全局变量、块参数、常量和跳转标志。声明部分用于定义局部和全局变量、块参数、常量和跳转标志。声明部分可分成各个声明块,每个声明块有自己的关键字作为标志。声明部分可分成各个声明块,每个声明块有自己的关键字作为标志。常量常量跳转标志跳转标志临时变量临时变量静态变量静态变量CONST 声明表END_CO

    19、NSTLABEL 声明表END_LABELVAR_TEMP 声明表END_VARVAR 声明表END_VAR输入参数输入参数输出参数输出参数输入输入/ /输出参数输出参数结构体结构体VAR_INPUT 声明表END_VARVAR_OUTPUT 声明表END_VARVAR_IN_OUT 声明表END_VARSTRUCT 生明表END_STRUCT块的声明格式块的声明格式2.1 2.1 源文件结构源文件结构-30-声明部分 FUNCTION_BOLCK FB10属属 性性声明部分声明部分指令部分指令部分END_FUNCTION_BLOCKCONST FIX_VALUE:=5; P_Part:=0.

    20、8;END_CONSTVAR Value1,Value2:INT;END_VARVAR_INPUT IN1,IN2:BOOL;END_VARVAR_OUTPUT Q01:BOOL; Display:INT;END_VAR2.1 2.1 源文件结构源文件结构-31-声明数据 声明数据可以通过声明数据可以通过insert-Block Template-Constant、Parameter进行插入模板。进行插入模板。 声明数据插入声明数据插入2.1 2.1 源文件结构源文件结构-32-指令部分 程序段(程序段(OBOB、FBFB、FCFC)被调用后,块的指令部分包含的指令将)被调用后,块的指令部分包

    21、含的指令将被执行。这些指令的作用是处理数据和地址。对于数据块,指令还被执行。这些指令的作用是处理数据和地址。对于数据块,指令还可以将某些值保存在数据块中。可以将某些值保存在数据块中。 各种指令可以归纳为各种指令可以归纳为赋值、控制指令、子程序处理赋值、控制指令、子程序处理三类:三类: 赋值:用来将某个表达式或某个值赋给某个变量;赋值:用来将某个表达式或某个值赋给某个变量; 控制指令:用来在程序中实现分支或重复执行指令;控制指令:用来在程序中实现分支或重复执行指令; 子程序处理:用来调用函数和功能。子程序处理:用来调用函数和功能。2.1 2.1 源文件结构源文件结构-33-指令部分 FUNCTI

    22、ON_BOLCK FB10属属 性性声明部分声明部分指令部分指令部分END_FUNCTION_BLOCKBEGIN/位运算、算法实例 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_IF;/子程序调用实例 FB10.DB2(Pa:=10,Pa2:=MW2) Result:=DB2.MVAL8;2.1 2.1 源文件结构源文件结

    23、构-34-指令部分注意事项 采用指令进行编程时,需要注意:采用指令进行编程时,需要注意: 指令部分以关键词指令部分以关键词BEGINBEGIN为开始,以块结束关键词为结束;为开始,以块结束关键词为结束; 每一个指令都以一个分号为结束;每一个指令都以一个分号为结束; 指令部分中使用的全部标识符都必须在声明部分定义或在符号指令部分中使用的全部标识符都必须在声明部分定义或在符号表中定义。表中定义。 2.1 2.1 源文件结构源文件结构-35-指令插入 可以通过可以通过insert-Control structure-IF,CASE,FOR,WHILE,REPEAT对控制结构模块进行插入。对控制结构模

    24、块进行插入。 控制结构插入控制结构插入2.2 2.2 组织块(组织块(OBOB)的结构)的结构-36-概述 组织块只能由操作系统调用,循环调用或在出现特定事件时调组织块只能由操作系统调用,循环调用或在出现特定事件时调用。通常在组织中调用含有实际程序代码的用。通常在组织中调用含有实际程序代码的FCFC和和FBFB。 为了能够正常地运行,每一个组织块基本上都要求有为了能够正常地运行,每一个组织块基本上都要求有2020字节的字节的局部数据。需要指出的是,也可以声明其他更多的局部数据局部数据。需要指出的是,也可以声明其他更多的局部数据 。OBOB编号编号用途用途OBOB编号编号用途用途OB1OB1循环

    25、程序循环程序OB83OB83插入插入/ /删除中断删除中断OB10-17OB10-17时钟中断时钟中断OB84OB84CPUCPU硬件故障硬件故障OB20-23OB20-23延迟中断延迟中断OB85OB85程序顺序错误程序顺序错误OB30-38OB30-38循环中断循环中断OB86OB86DPDP故障故障OB40-47OB40-47硬件中断硬件中断OB87OB87通信错误通信错误OB80OB80时间错误时间错误OB100-102OB100-102启动组织块启动组织块OB81OB81电源故障电源故障OB121OB121编程错误编程错误OB82OB82诊断中断诊断中断OB122OB122IOIO访

    26、问错误访问错误2.2 2.2 组织块(组织块(OBOB)的结构)的结构-37-组织块结构 FUNCTON FC62:BOOLVAR_INPUT IN1:Bool; IN2:Bool;END_VARBEGIN . FC62:=IN1 AND IN2;END_FUNCTIONFUNCTON FC61:VOIDBEGIN .Q0.0:=I0.0 AND I0.1;END_FUNCTIONORGANIZATION_BLOCK OB1VAR_TEMP info:ARRAY0.19 OF BYTE;END_VARBEGIN FC61(); Q4.0:=FC62(IN1:=I4.0,IN2:=I4.1) Q

    27、4.1:=M10.4END_ORGANIZATION_BLOCKOB1可替换成符可替换成符号表中的符号号表中的符号必须声明必须声明20个字节个字节的局部数据,也可的局部数据,也可以声明其他临时性以声明其他临时性的局部变量的局部变量调用调用FC61,无,无输入输出和返回输入输出和返回值值调用调用FC62,有,有输入输出和返回输入输出和返回值值一般赋值一般赋值指令操作指令操作2.3 2.3 函数(函数(FC/SFCFC/SFC)的结构)的结构-38-概述 FC FC是一个程序段,该程序段中可以使用所有的是一个程序段,该程序段中可以使用所有的S7S7和和SCLSCL指令。用指令。用户可以访问户可以访

    28、问CPUCPU存储区,如输入输出、数据块、时间、计数器等。这存储区,如输入输出、数据块、时间、计数器等。这种方式可以以种方式可以以绝对方式或符号方式绝对方式或符号方式进行。进行。 为了保证为了保证FCFC的通用性,的通用性,FCFC不应直接访问输入输出、数据块、时不应直接访问输入输出、数据块、时间、计数器等。需要实现类似功能时,可以间、计数器等。需要实现类似功能时,可以向向FCFC提供相应参数(形提供相应参数(形式参数调用)式参数调用),即通过参数告诉这些参数功能的声明部分。,即通过参数告诉这些参数功能的声明部分。FUNCTION FC62:BOOLVAR_INPUT IN1:Bool; IN

    29、2:Bool;END_VARBEGIN . FC62:=IN1 AND IN2;END_FUNCTION2.3 2.3 函数(函数(FC/SFCFC/SFC)的结构)的结构-39-返回值 FC FC分有返回值与无返回值两种方式。分有返回值与无返回值两种方式。 有返回值:函数功能完成后,会将结果传递给调用者。调用者有返回值:函数功能完成后,会将结果传递给调用者。调用者必须接受该结果并保存在某个变量。函数返回的数据类型在函必须接受该结果并保存在某个变量。函数返回的数据类型在函数中定义。数中定义。 如:如:FUNCTION FC62:BOOL Q4.0:=FC62(IN1:=I4.0,IN2:=I4

    30、.1) 无返回值:函数不需要其他返回值。对于这类函数需要进行相无返回值:函数不需要其他返回值。对于这类函数需要进行相关声明。关声明。 如:如:FUNCTION FC61:VOID 2.3 2.3 函数(函数(FC/SFCFC/SFC)的结构)的结构-40-调用参数赋值 FC FC调用可以使用多个返回值,这些返回值需要在输出参数或输调用可以使用多个返回值,这些返回值需要在输出参数或输入输出参数中进行定义。调用者必须提供全部这些参数,参数调用入输出参数中进行定义。调用者必须提供全部这些参数,参数调用顺序无关紧要。顺序无关紧要。 Distance:=FC63(x1:1,x2:=3,y1:=1,y2:

    31、=5,GRADIENT:=Inclination) 用来接收返用来接收返回值的变量回值的变量输入参数输入参数输出参数输出参数用来接收输出用来接收输出参数的变量参数的变量2.3 2.3 函数(函数(FC/SFCFC/SFC)的结构)的结构-41-OK标志 OKOK标志用来表示某个块运行是否正确无误。标志用来表示某个块运行是否正确无误。它是一个局部布尔它是一个局部布尔类型变量,用户程序在使用类型变量,用户程序在使用OKOK标志时,可在编译前勾选编译器选项。标志时,可在编译前勾选编译器选项。如果运行期间发生错误(例如乘法溢出等)。如果运行期间发生错误(例如乘法溢出等)。OKOK标志将被置位成标志将被

    32、置位成FALSEFALSE。 在程序块中可以访问更改在程序块中可以访问更改OKOK标志。块调用结束后,标志。块调用结束后,OKOK标志被保标志被保存在输出参数存在输出参数ENOENO中。中。2.3 2.3 函数(函数(FC/SFCFC/SFC)的结构)的结构-42-OK标志使用 FC83FC83运行无误时才运行运行无误时才运行FC62FC62IF(X2-X1)=0 OR STEIGUNG=9逻辑表达式(n5) AND (n20)运算符赋值运算:=算术运算*,/,MOD,DIV,-,*比较运算,=,=,逻辑运算NOT,AND,OR,XOR操作数常数30.0,99,siemens扩展变量IB5,D

    33、B10.DW5,Motor.Power,status()中的变量(3+const_int)*(VAR_INT)*3)/3.143.2 3.2 数据运算数据运算-60-运算数据类型 对于对于SCLSCL编程语言而言,赋值和块参数传递操作,要求表达式的编程语言而言,赋值和块参数传递操作,要求表达式的值拥有特定的数据类型。值拥有特定的数据类型。必要时,必须进行转换(必要时,必须进行转换(INTDINTREALINTDINTREAL)。)。表达式的类型由相关操作数的数据类型和运算符确定。表达式的类型由相关操作数的数据类型和运算符确定。 两个具备不同数据类型的操作数进行结合时,或将赋值时,必两个具备不同

    34、数据类型的操作数进行结合时,或将赋值时,必须针对具体情况仔细考虑数据类型的相容性。须针对具体情况仔细考虑数据类型的相容性。实例:INPUT1:INT;INPUT2:DINT;result:=INPUT1+INPUT2;运算时先将运算时先将INPUT1转换成转换成DINT,计算结果必定术语,计算结果必定术语DINT类型。类型。3.2 3.2 数据运算数据运算-61-隐式转换 编译器在很多情况下都会自动执行隐式转换。源数据类型比目编译器在很多情况下都会自动执行隐式转换。源数据类型比目的数据类型长度少就是此类情况。这种转换不丢失任何信息。的数据类型长度少就是此类情况。这种转换不丢失任何信息。 BYT

    35、E_TO_WORDBYTE_TO_WORD DINT_TO_REALDINT_TO_REAL INT_TO_REALINT_TO_REAL INT_TO_DINTINT_TO_DINT WORD_TO_DWORDWORD_TO_DWORD等等实例:SPEED_REAL:=INT_TO_REAL(MW10);Result:=SQRT(INT_TO_REAL(WORD_TO_INT(IW2); 转换非必要单转换非必要单可以提高程序可以提高程序易读性易读性如果如果IW2在符号表中声在符号表中声明为明为WORD,则此类转,则此类转换为必需的。换为必需的。3.2 3.2 数据运算数据运算-62-显式转换

    36、 以下情况需要进行显示情况:以下情况需要进行显示情况: 更改数据类型(更改数据类型(WORD-INTWORD-INT) 目标数据类型比源数据类型低级(目标数据类型比源数据类型低级( DINT-INT DINT-INT ) 所需要的指令:所需要的指令: INT_TO_WORDINT_TO_WORD REAL_TO_INTREAL_TO_INT DINT_TO_DWORDDINT_TO_DWORD REAL_TO_DWORDREAL_TO_DWORD等等3.2 3.2 数据运算数据运算-63-比较运算 比较运算符大致可以分成两类:比较运算符大致可以分成两类: I I类要求相关操作数之间具备顺序关系

    37、;类要求相关操作数之间具备顺序关系; IIII类则不要求操作数之间的顺序关系。类则不要求操作数之间的顺序关系。 类型类型运算符运算符表达式表达式实例实例I类要求操作数具备顺序关系小于AB小于等于=AAB大于等于=A=BII类不要求操作数具备顺序关系等于=A=B不等于AB3.2 3.2 数据运算数据运算-64-逻辑运算与位操作 借助借助NOTNOT、ANDAND、XORXOR、OROR这些晕算符号,可以完成逻辑运算和位这些晕算符号,可以完成逻辑运算和位操作。运算结果可以是:操作。运算结果可以是: BOOLBOOL型:条件是所涉及的操作数均是型:条件是所涉及的操作数均是BOOLBOOL型;型; B

    38、YTEBYTE、WORDWORD、DWORDDWORD型,所涉及操作数中的最高级数据;型,所涉及操作数中的最高级数据; 赋值给某个字时,位数据将出现在该字节的最右面。赋值给某个字时,位数据将出现在该字节的最右面。 实例:BOOL_1:=NOT (INT_1INT_2); /BYTE_1=2#0000 0001BYTE_2:=BYTE_3 AND FALSE; /BYTE_2=2#0000 0000BOOL_1:=BYTE_1 AND TRUE /编译出错3.2 3.2 数据运算数据运算-65-标准值函数 类型类型函数名称函数名称输入参数输入参数函数值函数值说明说明常规函数ABSANY_NUMA

    39、NY_NUM取绝对值SQRANY_NUMANY_NUM求平方SQRTANY_NUMANY_NUM求平方根对数函数EXPANY_NUMANY_NUME为底的整数幂运算EXPOANY_NUMANY_NUM10为底的整数幂运算LNANY_NUMANY_NUM自然对数运算LOGANY_NUMANY_NUM10为底的对数运算三角函数ACOSANY_NUMANY_NUM反余弦ASINANY_NUMANY_NUM反正弦ATANANY_NUMANY_NUM反正切COSANY_NUMANY_NUM余弦SINANY_NUMANY_NUM正弦TANANY_NUMANY_NUM正切3.3 3.3 定时计数功能定时计数

    40、功能-66-定时器 与与STLSTL、LADLAD和和FBDFBD相同,可以使用相同,可以使用SCLSCL中的定时器功能和中的定时器功能和CPUCPU的硬的硬件定时器。有件定时器。有5 5种不同类型的定时器可供选择:种不同类型的定时器可供选择: 类型类型功能功能S_PULS脉冲定时器S_PEXT扩展脉冲定时器S_ODT延时接通定时器S_ODTS延时保持接通定时器S_OFFDT延时断开定时器参数参数数据类型数据类型说明说明T_NOTIMER定时器标识号SBOOL启动输入TVS5TIME时间值初始化(BCD格式)RBOOL复位输入QBOOL定时器状态BIWORD剩余时间(二进制)定时器类型定时器类

    41、型定时器功能引脚定时器功能引脚3.3 3.3 定时计数功能定时计数功能-67-定时器 MW4:=S_ODT(T_NO:=T1,S:=I0.0,TV:=t#6s,R:=I0.1,BI:=MW2,Q:=Q0.6)MW4MW4数据类型数据类型在符号表中必在符号表中必须为须为S5TIMES5TIME,BCDBCD返回值返回值时间类型为时间类型为T#T#,不是不是S5T#S5T#3.3 3.3 定时计数功能定时计数功能-68-计数器 与与STLSTL、LADLAD和和FBDFBD相同,可以使用相同,可以使用SCLSCL中的计数器功能和中的计数器功能和CPUCPU的硬的硬件计数器。有件计数器。有3 3种不

    42、同类型的计数器可供选择:种不同类型的计数器可供选择: 计数器计数器功能引脚功能引脚类型类型功能功能S_CU加计数器S_CD减计数器S_CUD加减计数器参数参数数据类型数据类型说明说明C_NOCOUNTER计数器编号CUBOOL加计数输入CDBOOL减计数输入SBOOL用于计数器初始化输入PVWORD计数器初始值RBOOL复位输入QBOOL计数器输出状态CVWORD当前二进制计数值输出计数器类型计数器类型3.3 3.3 定时计数功能定时计数功能-69-计数器 MW4:=S_CUD(C_NO:=T1,CU:=I0.0,CD:=I0.1,S:=I0.2,PV:=16#990, R:=I0.3,CV:

    43、=MW2,Q:=Q0.0)MW4MW4数据类型数据类型在符号表中必在符号表中必须为须为WORDWORD,BCDBCD类返回值类返回值计数器初值为计数器初值为BCDBCD码码16#.16#.,不是不是C#.C#.3.4 3.4 控制指令控制指令-70-概述 借助控制指令,可以改变正常的指令执行顺序。借助控制指令,可以改变正常的指令执行顺序。控制指令大致控制指令大致分为三类,分别是条件指令、循环指令和跳转指令。分为三类,分别是条件指令、循环指令和跳转指令。 采用条件指令(采用条件指令(IFIF和和CASECASE指令)可以选择不同的程序执行路径;指令)可以选择不同的程序执行路径; 循环指令(循环指

    44、令(FORFOR、WHILEWHILE和和REAPEATREAPEAT指令)用于重复地执行指令;指令)用于重复地执行指令; 跳转指令(跳转指令(CONTINUECONTINUE、EXITEXIT和和GOTOGOTO指令)可以中断执行顺序并指令)可以中断执行顺序并跳转至某个点继续执行。跳转至某个点继续执行。 3.4 3.4 控制指令控制指令-71-IF指令 语语 法法实实 例例IF THEN ELSIF THEN ;/可选.ELSIF THEN ; /可选ELSE END_IFIF INPUT=FALSE THEN N:=0; SUM:=0.0; OK:=FALSE;ELSIF START=_O

    45、K THEN N:=N+1; SUM:=SUM+IN; ELSE OK:=FALSE;END_IF3.4 3.4 控制指令控制指令-72-CASE指令 语语 法法实实 例例CASE OF: ;: ;.: ;ELSE ;ENDCASECASE TW OF /TW为INT类型1: DISPLAY:=OVEN_TEMP;2: DISPLAY:=MOTOR_SPEED;3: DISPLAY:=GROSS_TARE; AW=16#0003;4.10: DISPLAY:=0; TW_ERROR:=1;END_CASE;3.4 3.4 控制指令控制指令-73-FOR指令 语语 法法实实 例例FOR TO B

    46、Y DO ;END_FORFUNCTION_BLOCK FB20VAR INDEX:INT; KEYWORD:ARRAY1.51 OF STRING8;END_VARBEGINFOR INDEX:=1 TO 51 BY 2DO IF KEYWORDINDEX=KEYTHEN EXIT; END_IFEND_FOREND_FUNCTION_BLOCK3.4 3.4 控制指令控制指令-74-WHILE指令 语语 法法实实 例例WHILE DO ;END_WHILEFUNCTION_BLOCK FB20VAR INDEX:INT; KEYWORD:ARRAY1.51 OF STRING8;END_V

    47、ARBEGININDEX:=1;WHILE INDEX=51 AND KEYWORDINDEXKEYDO INDEX:=INDEX+2;END_WHILE;END_FUNCTION_BLOCK3.4 3.4 控制指令控制指令-75-REPEAT指令 语语 法法实实 例例REPEAT ;UNTIL END_REPEATFUNCTION_BLOCK FB20VAR INDEX:INT; KEYWORD:ARRAY1.51 OF STRING8;END_VARBEGININDEX:=-1;REPEAT INDEX:=INDEX+2;UNTIL INDEX51 OR KEYWORDINDEX=KEY

    48、END_FUNCTION_BLOCK3.4 3.4 控制指令控制指令-76-CONTINUE指令 语语 法法实实 例例CONTINUEINDEX:=0;WHILE INDEX=100 DO INDEX:=INDEX+1; IF FIELDINDEX=INDEX THEN CONTINUE; ELSE FIELDINDEX:=0; END_IFEND_WHILE3.4 3.4 控制指令控制指令-77-EXIT指令 语语 法法实实 例例EXITINDEX_2:=0;FOR INDEX_1:=1 TO 51 BY 2 DO IF KEYWORDINDEX_1=KEYTHEN INDEX_2:=IND

    49、EX_1; EXIT END_IF;END_FOR退出正在运行退出正在运行的程序循环的程序循环3.4 3.4 控制指令控制指令-78-GOTO指令 语语 法法实实 例例GOTO ;LABEL LABEL1,LABEL2,LABEL3;END_LABELBEGIN IF AB THEN GOTO LABEL1; ELSIF AC THEN GOTO LABEL2; END_IFLABEL1: INDEX:=1; GOTO LABEL3;LABEL2: INDEX:=2;LABEL3: 3.4 3.4 控制指令控制指令-79-RETURN指令 语语 法法实实 例例RETURNINDEX:=0;WH

    50、ILE INDEX=100 DO INDEX:=INDEX+1; IF FIELDINDEX=0 THEN RETURN ELSE END_IFEND_WHILE退出正在运行退出正在运行的块程序的块程序第四章第四章 综合应用综合应用-80-数据块的结构数据块的结构编程练习编程练习应用举例应用举例数据归档数据归档程序测试程序测试4.1 4.1 程序测试程序测试-81-概述 采用采用SCLSCL的测试功能,可以在测试的测试功能,可以在测试SCLSCL程序的指令。程序在程序的指令。程序在PLCPLC运运行期间,可以对其进行控制,从而发现可能的逻辑编程错误。行期间,可以对其进行控制,从而发现可能的逻辑

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:S7SCL编程与应用课件.pptx
    链接地址:https://www.163wenku.com/p-2477778.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库