1 / 12
文档名称:

s7-300SCL编程笔记.docx

格式:docx   大小:1,824KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

s7-300SCL编程笔记.docx

上传人:才艺人生 2024/5/10 文件大小:1.78 MB

下载得到文件列表

s7-300SCL编程笔记.docx

相关文档

文档介绍

文档介绍:该【s7-300SCL编程笔记 】是由【才艺人生】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【s7-300SCL编程笔记 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。s7-300SCL编程笔记SCL编程数据类型:基本数据类型复杂数据类型用户自定义数据类型BOOL位DATE_AND_TIMEUDTBYTE字节日历:格式:Date1:DT:=DT#1990-01-01-00:00:00名称类型初始值UDT的面向源文件的输入和STRUCT变量的输入一样,都限定在关键字TYPE和END_TYPE这间。如:TYPEudtnameSTRUCTKomp1name:datatype:=pre-assignment;Komp1name:datatype:=pre-assignment;……….END_STRUCTEND_TYPEWORD字DWORD双字CHAR字符STRING字符串格式:M1:STRING[NO.]:=初始值;INT整数DINT双整数REAL浮点数ARRAY数组格式:M1:ARRAY[N..M]OFINT;数组名:ARRAY[N..M]OFINT;在数组里寻址:数组[NO.]S5TIME时间:时,分,秒。如S5T#1h1m1sDATE日期:年,月,日。如;D#2012-4-26TIME表示:日期,时,分,秒,毫秒。如:TIME#24h20h31m23s648msSTRUCT结构TIME_OF_DAY如:TIME_OF_DAY#00:00:00TOD#00:00:00注:还有两种类型:P:POINTER(指针数据类型)。A:ANY(任何类型)数组的定义:M1:ARRAY[n0..m0,n1..m1]OFINT;数组的类型a1:=a1XORW#16#FFFFa1:=:语句说明:IF依赖布尔值的程序分支CASE依赖INT值的程序分支FOR具有运行变量的程序循环WHILE具有执行条件的程序循环REPEAT具有删除条件的程序循环CONTINUE当前循环通道的消除EXIT退出程序循环GOTO跳转到跳转标号RETURN退出块注意:当使用程序循环时,请确保不超过循环监测时间。IF语句:IF条件0THEN语句0;ELSIF条件1THEN语句1;ELSIF条件2THEN语句2;ELSE语句3;END_IF;CASE语句:“选择”内的值等于Const内的值就执行那个语句。其它语句不执行,就执行END_CASE;CASE选择OFConst1:语句1;Const2:语句2;………Constn:语句n;END_CASE;FOR语句FOR变量:=n0TOnBYmDO…………………..;………………….;END_FOR;注意:这里的n为整型变量或整数值。m为每循环加几。WHILE语句:只要条件满足,程序循环就重复。WHILE条件DO语句;END_WHILE;REPEAT语句:只要条件不满足,就重复程序循环。REPEAT语句; UNTIL条件;END_REPEAT;CONTINUE语句:在FOR,WHILE,REPEAT循环中终止当前程序通道。EXIT语句:在FOR,WHILE,REPEAT循环中终止所有程序通道。RETURN语句:语句无条件地退出当前执行的块。GOTO语句:例:LABEL//定义标签M1,M2,M3,END;END_LABEL;……………..CASESelection;1:GOTOM1;2:GOTOM2;3:GOTOM3;ELSEGOTODND;END_CASE;M1:语句1;GOTODND;M2:语句2;GOTODND;M3:语句3;END:;:::(这里是一个字符)Charac_1:=’B’Charac_2:=char#43;Charac_3:=char#’B’//字符‘B’Charac_4:=’$41’//字符‘A’:M1:=’ABCDEFJH’:T1:=DATE#1995-11-11;T2:=D#1995-11-:=TIME#;N2:=T#3D_2S_3MS;:TM1:=TIME_OF_DAY#12:11:;TT2:=TOD#10:10:10;:TT:=DT#2012-4-26-18:12:00;:,依次为:S_PULSES_PEXTS_ODTS_ODTSS_OFFDTVARCurrTime:S5time;BiVal:word;ActFlag:bool;END_VAR//在调用定时器时,部分参数可以省略,但左边的赋值变量一定不能省略。CurrTime:=S_ODT(T_N=T10,//绝对调用,制定定时器号S:=TRUE,//置位条件TV:=T#1s,//设定定时器值R:=FALSE,//复位条件BI:=biVal,Q:=actFlag);FUNCTION_BLOCKTIMEVAR_INPUTMY_TIMER:ARRAY[1..4]ofSTRUCTT_NINT;TV:WORD;END_STRUCT;…END_VAR…FORI:=1TO4DOCurrTime:=S_ODT(T_N=,S:=true,);END_FOR;FUNCTION_BLOCKTIMERVAR_INPUTmytimer:TIMER;END_VAR…CurrTime:=S_ODT(T_N=mytimer,.....);2.、计数器S_CU增计数器S_CD减计数器S_CUD增/(C_N=C12,//绝对调用定时器,指定计数器号CD:=,CU:=,S:=&,//置位条件PV:=120,//设定计数器值R:=FALSE,//复位条件CV:=binVal,//输出参数,二进制计数值Q:=actFlag);//输出参数,计数器的状态FUNCTION_BLOCKCOUNTVAR_INPUTCount:ARRAY[1..4]ofSTRUCTC_NINT;PV:WORD;END_STRUCT;…END_VAR…FORI:=1TO4DO//动态调用计数器S_CD(C_N=,S:=true,PV:=);END_FOR;FUNCTION_BLOCKCOUNTERVAR_INPUTMYCounter:COUNTER;END_VAR…CurrVal:=S_CD(C_N=MyCounter,.....);//:三角函数对数功能SIN正弦EXP以e为底的指数功能COS余弦EXPD以10为底的指数功能TAN正切LN自然对数反三角函数LOG以10为底的对数ASIN反正弦其它数学功能ACOS反余弦ABS求绝对值ATAN反正切SQR求平方SQRT求平方根例子:RESULT:=ABS(-5);//5RESULT:=SQRT();//9RESULT:=SQR(23);//529RESULT:=EXP();//...RESULT:=EXPD(3);//1_000PI:=;RESULT:=SIN(PI/6);//:ROL、ROR、SHL、SHR例子:RESULT:=ROL(IN:=CRC,N:=5);//CRC,左移5位,移出的填充到右边空位RESULT:=ROR(IN:=BYTE#2#1101_0011,N:=2);//2#1111_0100,右移2位,移出的填充到左边空位RESULT:=SHL(IN:=BYTE#2#1101_0011,N:=3);//2#1001_1000,左移3位,空余部分用0填充RESULT:=SHR(IN:=BYTE#2#1101_0011,N:=2);//2#0011_0100,右移2位,。注意:没有功能值返回的功能FC是VOID数据类型。::VOIDKnow_How_ProtectVAR_TEMP//TemporaryVariablesloop_count:INT;index_1:INT;index_2:INT;Data_Store:ARRAY[0..5]OFINT;T:INT;N:INT;END_VAR//StatementSection//BlockParametersVAR_INPUT//InputParametersINT0:INT;INT1:INT;INT2:INT;INT3:INT;INT4:INT;INT5:INT;END_VARVAR_IN_OUT//I/OParametersEND_VARVAR_OUTPUT//OutputParametersmin_data:INT;l_0,l_1,l_2,l_3,l_4,l_5:INT;END_VARData_Store[0]:=INT0;Data_Store[1]:=INT1;Data_Store[2]:=INT2;Data_Store[3]:=INT3;Data_Store[4]:=INT4;Data_Store[5]:=INT5;min_data:=Data_Store[0];N:=0;T:=0;FORloop_count:=0TO5BY1DO//查找最小值IFmin_data>Data_Store[loop_count]THENmin_data:=Data_Store[loop_count];END_IF;END_FOR;FORindex_1:=0TO5BY1DOFORindex_2:=index_1TO5BY1DOIFData_Store[index_1]<Data_Store[index_2]THENT:=Data_Store[index_2];Data_Store[index_2]:=Data_Store[index_1];Data_Store[index_1]:=T;END_IF;END_FOR;END_FOR;l_0:=Data_Store[0];l_1:=Data_Store[1];l_2:=Data_Store[2];l_3:=Data_Store[3];l_4:=Data_Store[4];l_5:=Data_Store[5];:FUNCTIONFC101:VOID//RTU通信SCL程序//BlockParametersVAR_INPUT