西门子S7SCL编程与应用ppt课件.pptx

上传人:牧羊曲112 文档编号:1362508 上传时间:2022-11-14 格式:PPTX 页数:92 大小:1.80MB
返回 下载 相关 举报
西门子S7SCL编程与应用ppt课件.pptx_第1页
第1页 / 共92页
西门子S7SCL编程与应用ppt课件.pptx_第2页
第2页 / 共92页
西门子S7SCL编程与应用ppt课件.pptx_第3页
第3页 / 共92页
西门子S7SCL编程与应用ppt课件.pptx_第4页
第4页 / 共92页
西门子S7SCL编程与应用ppt课件.pptx_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《西门子S7SCL编程与应用ppt课件.pptx》由会员分享,可在线阅读,更多相关《西门子S7SCL编程与应用ppt课件.pptx(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-6

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

3、与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文件夹内。,源文件存放位置,执行程序存放位置,共用符号表,1.3 S7-SCL与SIMATI

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

5、,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源文件组成。SCL控制文件根据调用编译时各个源文件的编译顺序依

6、次编译各文件。,OB1FC3FC5,OB32FC17FB22,DB2DB3FC77,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 文件操作,-18-,导出源文件,右击源文件-导出源文件用于源文件导

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

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

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

10、:Training名字:Motor,2.1 源文件结构,-29-,声明部分 声明部分用于定义局部和全局变量、块参数、常量和跳转标志。声明部分可分成各个声明块,每个声明块有自己的关键字作为标志。,块的声明格式,2.1 源文件结构,-30-,声明部分,FUNCTION_BOLCK FB10,属 性,声明部分,指令部分,END_FUNCTION_BLOCK,CONST FIX_VALUE:=5; P_Part:=0.8;END_CONSTVAR Value1,Value2:INT;END_VARVAR_INPUT IN1,IN2:BOOL;END_VARVAR_OUTPUT Q01:BOOL; Di

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

12、令部分,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_IF;/子程序调用实例 FB10.DB2(Pa:=10,Pa2:=MW2) Result:=DB2.MVAL8;,2.1 源文件结构,-

13、34-,指令部分注意事项 采用指令进行编程时,需要注意: 指令部分以关键词BEGIN为开始,以块结束关键词为结束;每一个指令都以一个分号为结束;指令部分中使用的全部标识符都必须在声明部分定义或在符号表中定义。,2.1 源文件结构,-35-,指令插入 可以通过insert-Control structure-IF,CASE,FOR,WHILE,REPEAT对控制结构模块进行插入。,控制结构插入,2.2 组织块(OB)的结构,-36-,概述 组织块只能由操作系统调用,循环调用或在出现特定事件时调用。通常在组织中调用含有实际程序代码的FC和FB。 为了能够正常地运行,每一个组织块基本上都要求有20字

14、节的局部数据。需要指出的是,也可以声明其他更多的局部数据 。,2.2 组织块(OB)的结构,-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,

15、IN2:=I4.1) Q4.1:=M10.4END_ORGANIZATION_BLOCK,OB1可替换成符号表中的符号,必须声明20个字节的局部数据,也可以声明其他临时性的局部变量,调用FC61,无输入输出和返回值,调用FC62,有输入输出和返回值,一般赋值指令操作,2.3 函数(FC/SFC)的结构,-38-,概述 FC是一个程序段,该程序段中可以使用所有的S7和SCL指令。用户可以访问CPU存储区,如输入输出、数据块、时间、计数器等。这种方式可以以绝对方式或符号方式进行。 为了保证FC的通用性,FC不应直接访问输入输出、数据块、时间、计数器等。需要实现类似功能时,可以向FC提供相应参数(形

16、式参数调用),即通过参数告诉这些参数功能的声明部分。,FUNCTION FC62:BOOLVAR_INPUT IN1:Bool; IN2:Bool;END_VARBEGIN . FC62:=IN1 AND IN2;END_FUNCTION,2.3 函数(FC/SFC)的结构,-39-,返回值 FC分有返回值与无返回值两种方式。有返回值:函数功能完成后,会将结果传递给调用者。调用者必须接受该结果并保存在某个变量。函数返回的数据类型在函数中定义。 如:FUNCTION FC62:BOOL Q4.0:=FC62(IN1:=I4.0,IN2:=I4.1) 无返回值:函数不需要其他返回值。对于这类函数需

17、要进行相关声明。 如:FUNCTION FC61:VOID,2.3 函数(FC/SFC)的结构,-40-,调用参数赋值 FC调用可以使用多个返回值,这些返回值需要在输出参数或输入输出参数中进行定义。调用者必须提供全部这些参数,参数调用顺序无关紧要。,Distance:=FC63(x1:1,x2:=3,y1:=1,y2:=5,GRADIENT:=Inclination),用来接收返回值的变量,输入参数,输出参数,用来接收输出参数的变量,2.3 函数(FC/SFC)的结构,-41-,OK标志 OK标志用来表示某个块运行是否正确无误。它是一个局部布尔类型变量,用户程序在使用OK标志时,可在编译前勾选

18、编译器选项。如果运行期间发生错误(例如乘法溢出等)。OK标志将被置位成FALSE。 在程序块中可以访问更改OK标志。块调用结束后,OK标志被保存在输出参数ENO中。,2.3 函数(FC/SFC)的结构,-42-,OK标志使用,FC83运行无误时才运行FC62,IF(X2-X1)=0 OR STEIGUNG0 THEN OK:=FALSE;ELSE OK:=TRUE;END IF;,连环调用OK标志应用,2.3 函数(FC/SFC)的结构,-43-,EN和ENO 每一个FC和FB都有隐式定义的输入参数EN和输出参数ENO。他们都是布尔类型参数。调用时,不需要向这两个参数提供值。调用某个块时,仅当

19、EN为TRUE时,该块才能执行。,Q4.0:=FC62(EN:=M100.0,IN1:=I4.0,IN2=I4.2)Error:=ENO;,M100.0为1时,FC62才能运行。此外,也可以用ENO代替M100.0,即只有上一个被调用FC或FB正确无误地运行结束,才运行FC62。,通过该变量,可以知道FC62运行是否出现错误,2.3 函数(FC/SFC)的结构,-44-,EN和ENO使用,FC63,Distance:=FC63(x1:=MW10,.) ; /调用FC63Error_FC63:=ENO; /ENO来自FC63/如果FC63正确无语,则调用FC62。FC62(EN:=Error_F

20、C63,STEIG:=inclination.),FC62,OB1,2.4 功能块(FB/SFB)的结构,-45-,概述 每次调用FB时,都必须有可以访问的背景数据块,FB可以将其静态变量保存在该背景数据块中。如果不同任务需要多次调用某个FB时,则每次调用该FB时,都必须有不同的背景数据块。这些背景数据块有SCL编译器自动创建。,2.4 功能块(FB/SFB)的结构,-46-,FB调用 FB调用分绝对调用和符号调用两种方式。输出参数的赋值需要单独进行。,2.4 功能块(FB/SFB)的结构,-47-,块调用 在SCL编译器中,选择菜单Insert-Block Call,完成其他功能/功能块的调

21、用。,块调用,2.4 功能块(FB/SFB)的结构,-48-,多重背景数据块,FUNCTON_BLOCK FB22 VAR_OUTPUT OUTPUT,VALUE:DINT; END_VARBEGIN . END_FUNCTION_BLOCK FUNCTON_BLOCK FB11 VAR Test,Status:DINT; Regulator_1,Regulator_2:FB22; END_VARBEGIN . Regulator_1(); Test:=Regulator_1.OUTPUT; Regulator_2(); Status:=Regulator_2.OUTPUT;END_FUNCT

22、ION_BLOCKORGANIZATION_BLOCK OB1VAR_TEMP info:ARRAY0.19 OF BYTE;END_VARBEGIN FB11,DB33(); END_ORGANIZATION_BLOCK,FB11,OB1,FB22,FB22,Regulator_1,Regulator_2,DB33,Test,Status,Output,Value,Output,Value,DB33结构,Regulator_1,Regulator_2,2.5 数据块的结构,-49-,声明 在数据块声明部分中,可以声明静态变量。但在数据块中关键词为STRUCT. .END_STRUCT。在赋值

23、部分中,可以采用各个具体的DB值,根据应用调整声明部分的数据。,DATA_BLOCK DB6 STRUCT Power:REAL; Speed:INT; motor:STRUCT Ein0:BYTE; Codierer:WORD; Zahlen:ARRAY1.4 OF INT; Aus4:BYTE:=16#2e; Zeichen:STRING8:=siemens; Anz:WORD:=16#123a; END_STRUCT; END_STRUCTBEGIN motor.zahlen2:=6666;END_DATA_BLOCK,声明视图,初始值,2.5 数据块的结构,-50-,声明 在数据块声明

24、部分中,可以声明静态变量。但在数据块中关键词为STRUCT. .END_STRUCT。在赋值部分中,可以采用各个具体的DB值,根据应用调整声明部分的数据。,DATA_BLOCK DB6 STRUCT Power:REAL; Speed:INT; motor:STRUCT Ein0:BYTE; Codierer:WORD; Zahlen:ARRAY1.4 OF INT; Aus4:BYTE:=16#2e; Zeichen:STRING8:=siemens; Anz:WORD:=16#123a; END_STRUCT; END_STRUCTBEGIN motor.zahlen2:=6666;END

25、_DATA_BLOCK,数据视图,实际值,2.5 数据块的结构,-51-,数据块访问 在SCL中对数据块寻址时,必须使用完整的数据地址。LAD、STL、FBD和SCL中的完整地址存在差异。,DATA_BLOCK DB6 STRUCT Power:REAL; Speed:INT;END_STRUCT; END_STRUCTBEGINEND_DATA_BLOCK,FUNCTON FC68:VAR_OUTPUT output1:DINT; IN2:Bool;END_VARBEGIN . Output1:=DB6.Power;END_FUNCTION,编译错误,数据类型不匹配,2.5 数据块的结构,-

26、52-,数据块类型,FC1,OB1,DB1,FC1,DB2,FUNCTON FC1:BOOLVAR_INPUT bit_pattern:WORD; DB_no:BLOCK_DB;END_VARBEGIN . DB_no.DW0:=bit_pattern; DB_no.DW2:=NOT bit_pattern; END_FUNCTION ORGANIZATION_BLOCK OB1VAR_TEMP info:ARRAY0.19 OF BYTE;END_VARBEGIN FC1(bit_pattern:=MW0,DB_no:=DB1); FC1(bit_pattern:=MW2,DB_no:=DB

27、2);END_ORGANIZATION_BLOCK,多次调用DB示意图,2.6 用户自定义数据类型的结构,-53-,UDT 如果需要在一个以上的块中使用具有相同结构的变量时,此时应该定义用户自定义数据类型(UDT)。用户自定义数据类型可以简化OB、FC、FB和DB的变量申明。,TYPE UDT1 STRUCT Power:REAL; Speed:INT; motor:STRUCT Ein0:BYTE; Codierer:WORD; Zahlen:ARRAY1.4 OF INT; Aus4:BYTE:=16#2e; Zeichen:STRING8:=siemens; Anz:WORD:=16#1

28、23a; END_STRUCT; END_STRUCT END_TYPE,UDT视图,2.6 用户自定义数据类型的结构,-54-,UDT 如果需要在一个以上的块中使用具有相同结构的变量时,此时应该定义用户自定义数据类型(UDT)。用户自定义数据类型可以简化OB、FC、FB和DB的变量申明。,DATA_BLOCK DB7 STRUCT Power:REAL; Speed:INT; Data:UDT1; END_STRUCTBEGIN Data.motor.Zahlen3:=6666;END_DATA_BLOCK,UDT视图,第三章 语言描述,-55-,3.1 基础知识,-56-,字母和数字 字母

29、和数字主要用于名称声明(描述符)或数值指定。 以下字符在语法规则中具有确定的含义。,3.1 基础知识,-57-,关键字关键字是SCL中的保留字,只能用于预先确定的用途;关键字不区分大小写字母;关键字和描述符之间,必须插入分隔符。 注释行注释 /这是一个行注释 Value1:=1234;块注释 (*这是一个块注释。该注释占用的行数超过一行),3.1 基础知识,-58-,操作数间接寻址可以使用直接方式或间接方式寻址CPU的内存区域;简介寻址方式可以用于PI、PQ、输入和输出、位存储区和数据块(计数器和定时器除外);方括号中的一或两个INT变量用于指明操作数的地址; IBindex IByte_in

30、dex,Bit_index,3.2 数据运算,-59-,表达式、运算符和操作数,3.2 数据运算,-60-,运算数据类型 对于SCL编程语言而言,赋值和块参数传递操作,要求表达式的值拥有特定的数据类型。必要时,必须进行转换(INTDINTREAL)。表达式的类型由相关操作数的数据类型和运算符确定。 两个具备不同数据类型的操作数进行结合时,或将赋值时,必须针对具体情况仔细考虑数据类型的相容性。,实例:INPUT1:INT;INPUT2:DINT;result:=INPUT1+INPUT2;运算时先将INPUT1转换成DINT,计算结果必定术语DINT类型。,3.2 数据运算,-61-,隐式转换

31、编译器在很多情况下都会自动执行隐式转换。源数据类型比目的数据类型长度少就是此类情况。这种转换不丢失任何信息。BYTE_TO_WORDDINT_TO_REALINT_TO_REALINT_TO_DINTWORD_TO_DWORD等,实例:SPEED_REAL:=INT_TO_REAL(MW10);Result:=SQRT(INT_TO_REAL(WORD_TO_INT(IW2);,转换非必要单可以提高程序易读性,如果IW2在符号表中声明为WORD,则此类转换为必需的。,3.2 数据运算,-62-,显式转换 以下情况需要进行显示情况: 更改数据类型(WORD-INT)目标数据类型比源数据类型低级(

32、 DINT-INT ) 所需要的指令:INT_TO_WORDREAL_TO_INTDINT_TO_DWORDREAL_TO_DWORD等,3.2 数据运算,-63-,比较运算 比较运算符大致可以分成两类: I类要求相关操作数之间具备顺序关系;II类则不要求操作数之间的顺序关系。,3.2 数据运算,-64-,逻辑运算与位操作 借助NOT、AND、XOR、OR这些晕算符号,可以完成逻辑运算和位操作。运算结果可以是: BOOL型:条件是所涉及的操作数均是BOOL型;BYTE、WORD、DWORD型,所涉及操作数中的最高级数据;赋值给某个字时,位数据将出现在该字节的最右面。,实例:BOOL_1:=NO

33、T (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 数据运算,-65-,标准值函数,3.3 定时计数功能,-66-,定时器 与STL、LAD和FBD相同,可以使用SCL中的定时器功能和CPU的硬件定时器。有5种不同类型的定时器可供选择:,定时器类型,定时器功能引脚,3.3 定时计数功能,-67-,定时器,MW4:=S_ODT(T_NO:=T1,S:=I0.0,TV:=t#6s,R:=I0.1,BI:=MW2,Q:=Q0.

34、6),MW4数据类型在符号表中必须为S5TIME,BCD返回值,时间类型为T#,不是S5T#,3.3 定时计数功能,-68-,计数器 与STL、LAD和FBD相同,可以使用SCL中的计数器功能和CPU的硬件计数器。有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:=MW2,Q:=Q0.0),MW4数据类型在符号表中必须为WORD,BCD类返回值,计数器初值为BCD码16#.,不是C#.,3.4 控制指令,-

35、70-,概述 借助控制指令,可以改变正常的指令执行顺序。控制指令大致分为三类,分别是条件指令、循环指令和跳转指令。 采用条件指令(IF和CASE指令)可以选择不同的程序执行路径; 循环指令(FOR、WHILE和REAPEAT指令)用于重复地执行指令;跳转指令(CONTINUE、EXIT和GOTO指令)可以中断执行顺序并跳转至某个点继续执行。,3.4 控制指令,-71-,IF指令,3.4 控制指令,-72-,CASE指令,3.4 控制指令,-73-,FOR指令,3.4 控制指令,-74-,WHILE指令,3.4 控制指令,-75-,REPEAT指令,3.4 控制指令,-76-,CONTINUE指

36、令,3.4 控制指令,-77-,EXIT指令,退出正在运行的程序循环,3.4 控制指令,-78-,GOTO指令,3.4 控制指令,-79-,RETURN指令,退出正在运行的块程序,第四章 综合应用,-80-,4.1 程序测试,-81-,概述 采用SCL的测试功能,可以在测试SCL程序的指令。程序在PLC运行期间,可以对其进行控制,从而发现可能的逻辑编程错误。 语法错误由SCL编译器检查,运行错误则由PLC操作系统在程序运行期间检查。,调试运行设置,4.1 程序测试,-82-,连续监控 当需要进行SCL程序连续监控时,选择菜单Debug-Monitor,启动监控功能。完成程序监控后,选择菜单De

37、bug-Finish Debugging关闭监控功能。,监控程序运行状态,4.1 程序测试,-83-,设置断点 使用菜单View-Breakpoint bar,可以显示和隐藏断点工具栏。断点使用步骤: 将光标移至需要设置断点的位置,设置断点;启动“激活断点”按钮激活断点;CPU停在第一个断点处,此时CPUSTOP灯亮,RUN灯闪;采用工具栏中按钮一步一步跟踪程序执行;,设置/删除断点,删除全部断点,激活断点,继续执行至下一个断点,执行下一条语句,运行调用,4.1 程序测试,-84-,断点监控,4.2 数据归档,-85-,归档 对于SCL程序的保存,需要同时保存符号表与源程序。,符号表,源 程序

38、,4.3 应用举例,-86-,温度滤波处理 均值滤波:取最近10个温度采样值,取其平均值作为实际温度输出值,减少表面水等条件的干扰,使测量温度更准确。,4.3 应用举例,-87-,程序,4.4 编程练习,-88-,计算距离和斜率,x,y,P1(x1,y1),P2(x2, y2),O,x2,y2,x1,y1,4.4 编程练习,-89-,计算角度(FC),x,y,P1(x1,y1),P2(x2, y2),O,x2,y2,x1,y1,角度:=57.296*ACTAN(斜率),4.4 编程练习,-90-,计算角度(FB)-EN/EO,x,y,P1(x1,y1),P2(x2, y2),O,x2,y2,x1,y1,角度:=57.296*ACTAN(斜率),4.4 编程练习,-91-,生产随机数并存储,OB1,FC60随机数,SFC64系统时间,FB2/DB11存储数据,DB1.buffer_a,buffer_a:ARRAY1 to 10 OF INT,下标,THANKS!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号