SCL学习心得.doc_第1页
SCL学习心得.doc_第2页
SCL学习心得.doc_第3页
SCL学习心得.doc_第4页
SCL学习心得.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

原创:SCL学习心得,今天看见有兄弟找scl中文资料,小弟我就当是抛砖引玉吧2004.1.141、 SCL程序可以在CPU314及其以上的S7(包括400)中运行。2、 SCL程序创建在”S7 Program”Sources”下面。S7-Program Blocks(e.g. FB,OB) Sources(e.g.SCL source file) Symbols3、 程序结构FB FUNCTION_BLOCK fb_name END_FUNCTION_BLOCKFC FUNCTION fc_namefunction type END_FUNCTIONOB ORGANIZATION_BLOCK ob_name END_ORGANIZATION_BLOCKDB DATA_BLOCK db_name END_DATA_BLOCKUDT TYPE udt_name END_TYPE 4、 属性定义和程序注释例如:FUNCTION_BLOCK FB10This is a block comment.TITLE = Mean_ValueVERSION 2.1KNOW_HOW_PROTECTAUTHOR AUT_15、 变量定义Data Syntax FB FC OB DB UDTConstants CONSTdeclaration listEND_CONST X X X Labels LABELdeclaration listEND_LABEL X X X Temporary Variables VAR_TEMP declaration listEND_VAR X X X X X X Static variables VARdeclaration listEND_VAR X X X X XInput parameters VAR_INPUTdeclaration listEND_VAR X X Output parameters VAR_OUTPUTdeclaration listEND_VAR X X Inout parameters VAR_IN_OUTdeclaration listEND_VAR X X 6、FC结构FUNCTION FC11 REAL如果不需要返回值,用VOID关键字VAR_INPUTx1 REAL ;x2 REAL ;x3 REAL ;x4 REAL ;END_VARVAR_OUTPUTQ2 REAL ;END_VARBEGINReturn value from functionFC11= SQRT( (x2 - x1)2 + (x4 - x3) 2 ) ;Q2= x1 ;END_FUNCTION7、自己写了一个简单的程序OB1:FC1用SCL编写:FUNCTION fc1INTVAR_INPUT aINT;END_VARbeginfc1=a+10; end_FUNCTION运行后:每次m0.0从0变1,就调用FC1一次,mw18里面的数据加10。2004.1.15问题:SCL如何调用其他SCL以及用LAD等编写的程序?写一个有循环、判断等基本语句组成的程序。参数使用问题?(直接使用实际地址?参数传递问题)如何在线调试SCL程序(debug)1、 在SCL里面调用LAD或者STL写的块先用STL或者LAD创建一个FC2:定义一个输入参数:in1(int型);一个输出参数:out1(int型)语句表如下: L #in1 L #in1 +I T #out1 NOP 0在下面写的SCL里面调用FC2:FUNCTION fc1INTVAR_INPUT aINT;END_VARVAR_TEMP bINT;end_var beginfc1=a+10; fc2(in1=a,out1=b);fc1=b;end_FUNCTION2、在SCL里面调用其他SCL写的块FUNCTION fc1INTVAR_INPUT aINT;END_VARVAR_TEMP bINT;end_var BEGIN fc3(in1=a,out1=b);调用fc3fc1=b;end_FUNCTIONFUNCTION fc3void无返回值VAR_INPUT in1INT;END_VARVAR_OUTPUT out1INT;end_var beginout1=in1+10;end_FUNCTION3、一个带有循环、判断等基本语句的程序FUNCTION fc4VOIDVAR_INPUT in1BOOL; in2INT;END_VAR VAR_OUTPUT out1BOOL; out3BOOL; out2INT;END_VARVAR定义一个静态变量,用来存储块调用之间的数据 temp1BOOL;END_VAR VAR_TEMP temp2INT;END_VARBEGINIF in1=false AND temp1=true THEN检验下跳沿 out1=true; ELSE out1=false; END_IF; IF in1=true AND temp1=false THEN检验上跳沿 out3=true;ELSE out3=false; END_IF; temp1=in1;FOR temp2=1 TO 10 BY 2 DO省略了关键字by,就默认加1 out2=in2+out2;END_FOR; END_FUNCTION4、SCL中直接使用绝对地址FUNCTION fc1VOIDBEGINin1=in1+10;in1在符号表里面已经定义为int型,存储区为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论