版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SCL编程一 数据类型:基本数据类型复杂数据类型用户自定义数据类型BOOL位DATE_AND_TIMEUDTBYTE字节日历:格式:Date1:DT:=DT#1990-01-01-00:00:00名称类型初始值UDT的面向源文件的输入和STRUCT变量的输入一样,都限定在关键字TYPE和END_TYPE这间。如:TYPE udtname STRUCTKomp1name:datatype:=pre-assignment;Komp1name:datatype:=pre-assignment;.END_STRUCTEND_TYPEWORD字DWORD双字CHAR字符STRING字符串格式:M1:ST
2、RINGNO.:=初始值;INT整数DINT双整数REAL浮点数ARRAY数组格式:M1:ARRAYN.M OF INT;数组名:ARRAYN.M OF INT;在数组里寻址:数组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:ARRAYn0.m0,n
3、1.m1 OF INT;数组的类型二 寻址绝对寻址地址区域位字节字双字输入Iy.xIByIWyIDy输出Qy.xQByQWyQDy外围输入-PIByPIWyPIDy外围输出-PQByPQWyPQDy存储位MMByMWyMDy全局数据地址DB .DXy.xDB .Dy.xDB .DByDB .DWyDB .DDy 符号寻址如:DB10.setpoint “motor1data”.DW12 间接寻址 如:Ebyteindex,bitindex MBbyteindex DB10.DWbyteindex三SCL运算符和表达式结 合名 称运算符优先级圆括号(表达式)(,)1算术幂一元加,一元减乘法,除法
4、加法,减法*+,-*,/,DIV,MOD+,-2345比较小于,小于等于,大于,大于等于等于,不等于,=,67二进制结合非(一元)与逻辑运算异或或逻辑运算NOTAND,&XOROR38910赋值赋值:=11注:以上运算符的表达式基本大多和我们的数学表达式一样。这里只讲解一下AND,XOR,OR指令。如:a1:=a1 AND W#16#FFFF a1:=a1 XOR W#16#FFFF a1:=a1 OR MW10四控制语句控制语句:语句说明:IF依赖布尔值的程序分支CASE依赖INT值的程序分支FOR具有运行变量的程序循环WHILE具有执行条件的程序循环REPEAT具有删除条件的程序循环CON
5、TINUE当前循环通道的消除EXIT退出程序循环GOTO跳转到跳转标号RETURN退出块注意:当使用程序 循环时,请确保不超过循环监测时间。1. IF语句:IF 条件0THEN 语句0;ELSIF 条件1THEN 语句1;ELSIF 条件2THEN 语句2; ELSE 语句3; END_IF;2. CASE语句:“选择”内的值等于Const内的值就执行那个语句。其它语句不执行,就执行END_CASE;CASE 选择 OF Const1:语句1; Const2:语句2; Constn:语句n; END_CASE;3. FOR语句FOR 变量:=n0 TO n BY m DO.;.; END_FO
6、R;注意:这里的n为整型变量或整数值。m为每循环加几。4. WHILE语句:只要条件满足,程序循环就重复。 WHILE 条件 DO 语句; END_WHILE;5. REPEAT语句:只要条件不满足,就重复程序循环。REPEAT语句;UNTIL 条件;END_REPEAT;6. CONTINUE语句:在FOR, WHILE, REPEAT循环中终止当前程序通道。7. EXIT语句:在FOR, WHILE, REPEAT循环中终止所有程序通道。8. RETURN语句:语句无条件地退出当前执行的块。9. GOTO语句:例:LABEL /定义标签M1,M2,M3,END;END_LABEL;.CAS
7、E Selection;1:GOTO M1;2:GOTO M2;3:GOTO M3;ELSE GOTO DND;END_CASE;M1:语句1;GOTO DND;M2:语句2;GOTO DND;M3:语句3;END: ;五常量:1. 位常量:值为TRUE或者FALSE.2. 字符常量:(这里是一个字符) Charac_1:=B Charac_2:=char#43; Charac_3:=char#B /字符B Charac_4:=$41 /字符A3. 字符串常量: M1:=ABCDEFJH4. 日期常量: T1:=DATE#1995-11-11; T2:=D#1995-11-115. 时间常量
8、N1:=TIME#10.2S; N2:=T#3D_2S_3MS;6. TIME_OF_DAY常量: TM1:=TIME_OF_DAY#12:11:10.1; TT2:=TOD#10:10:10;7. DATE_AND_TIME常量: TT:=DT#2012-4-26-18:12:00;六定时器和计数器:1.定时器有5种,依次为:S_PULSE S_PEXT S_ODT S_ODTS S_OFFDT VARCurrTime : S5time;BiVal : word;ActFlag : bool;END_VAR/在调用定时器时,部分参数可以省略,但左边的赋值变量一定不能省略。CurrTime:=
9、S_ODT(T_N=T10, /绝对调用,制定定时器号S:=TRUE, /置位条件TV:=T#1s, /设定定时器值R:=FALSE, /复位条件BI:=biVal,Q:=actFlag);FUNCTION_BLOCK TIMEVAR_INPUTMY_TIMER: ARRAY 1.4 of STRUCTT_N INT;TV : WORD;END_STRUCT;END_VARFOR I:= 1 TO 4 DOCurrTime:= S_ODT(T_N=MY_TIMER.T_NO, S:=true,MY_TIMER.TV);END_FOR;FUNCTION_BLOCK TIMERVAR_INPUTm
10、ytimer:TIMER;END_VARCurrTime:=S_ODT(T_N=mytimer,.);2. 、计数器S_CU 增计数器S_CD 减计数器S_CUD 增/减计数器e.g.S_CUD (C_N=C12, /绝对调用定时器,指定计数器号CD:=I0.0,CU:=I0.1,S:=I0.2 & I0.3, /置位条件PV:=120, /设定计数器值R:=FALSE, /复位条件CV:=binVal, /输出参数,二进制计数值Q:=actFlag); /输出参数,计数器的状态FUNCTION_BLOCK COUNTVAR_INPUTCount: ARRAY 1.4 of STRUCTC_N
11、 INT;PV : WORD;END_STRUCT;END_VARFOR I:= 1 TO 4 DO /动态调用计数器S_CD(C_N=Count.C_NO, S:=true, PV:= Count.PV);END_FOR;FUNCTION_BLOCK COUNTERVAR_INPUTMYCounter:COUNTER;END_VARCurrVal:=S_CD(C_N=MyCounter,.); /动态调用计数器 七数学函数:三角函数对数功能SIN正弦EXP以e为底的指数功能COS余弦EXPD以10为底的指数功能TAN正切LN自然对数反三角函数LOG以10为底的对数ASIN反正弦其它数学功能A
12、COS反余弦ABS求绝对值ATAN反正切SQR求平方SQRT求平方根 例子:RESULT := ABS (-5) ; /5RESULT := SQRT (81.0); /9RESULT := SQR (23); /529RESULT := EXP (4.1); /60.340 .RESULT := EXPD (3); /1_000PI := 3. 141 592 ;RESULT := SIN (PI / 6) ; /0.5 八移位函数: ROL、ROR、SHL、SHR例子:RESULT := ROL (IN:=CRC, N:=5); /CRC ,左移5位 ,移出的填充到右边空位RESULT :
13、= 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位,空余部分用0填充九SCL块SCL所用的块结构与标准编程语言有完全相同的方式。注意:没有功能值返回的功能FC是VOID数据类型。十实例:1.排序FUNCTION FC4:VOID Know_How_Pr
14、otect VAR_TEMP / Temporary Variables loop_count:INT; index_1:INT; index_2:INT; Data_Store:ARRAY0.5 OF INT; T :INT; N :INT; END_VAR / Statement Section / Block Parameters VAR_INPUT / Input Parameters INT0:INT; INT1:INT; INT2:INT; INT3:INT; INT4:INT; INT5:INT; END_VAR VAR_IN_OUT / I/O Parameters END_V
15、AR VAR_OUTPUT / Output Parameters min_data:INT; l_0,l_1,l_2,l_3,l_4,l_5: INT; END_VAR Data_Store0:=INT0; Data_Store1:=INT1; Data_Store2:=INT2; Data_Store3:=INT3; Data_Store4:=INT4; Data_Store5:=INT5; min_data:=Data_Store0; N:=0; T:=0; FOR loop_count:=0 TO 5 BY 1 DO /查找最小值 IF min_data Data_Storeloop_
16、count THEN min_data:=Data_Storeloop_count; END_IF; END_FOR; FOR index_1:=0 TO 5 BY 1 DO FOR index_2:=index_1 TO 5 BY 1 DO IF Data_Storeindex_1 Data_Storeindex_2 THEN T:=Data_Storeindex_2; Data_Storeindex_2:=Data_Storeindex_1; Data_Storeindex_1:=T; END_IF; END_FOR; END_FOR; l_0:=Data_Store0; l_1:=Dat
17、a_Store1; l_2:=Data_Store2; l_3:=Data_Store3; l_4:=Data_Store4; l_5:=Data_Store5; END_FUNCTION2.求RTU效验:FUNCTION FC101 : VOID/RTU通信SCL程序/ Block ParametersVAR_INPUT / Input ParametersZH:BYTE;/站号GNM:BYTE;/功能码SZDZ1:BYTE;/数据地址1SZDZ2:BYTE;/数据地址2SZNR1:BYTE;/数据内容1SZNR2:BYTE;/数据内容2END_VARVAR_IN_OUT / I/O Par
18、ametersEND_VARVAR_OUTPUT / Output ParametersSCZH:BYTE;/站号SCGNM:BYTE;/功能码SCSZDZ1:BYTE;/数据地址1SCSZDZ2:BYTE;/数据地址2SCSZNR1:BYTE;/数据内容1SCSZNR2:BYTE;/数据内容2XYM1:BYTE;/效验1XYM2:BYTE;/效验2END_VARVAR_TEMP / Temporary VariablesCRC:WORD;SHUZU:ARRAY0.7OF BYTE;/数组N:INT;/外循环6次M:INT;/内循环8次ZZ:INT;/数组指针YCW:WORD;/CRC右移位时
19、,判断最后一位。TEM:WORD;/用做CRC最后结果的高8位和低8位的分别传送。END_VARBEGIN / Statement Section ZZ:=0;/对指针清零 TEM:=0;/清零 SHUZU0:=ZH;/将输入的站号送给数组的0位 SHUZU1:=GNM;/将输入的功能码送给数组的1位 SHUZU2:=SZDZ1;/将输入的数据地址1送给数组的2位 SHUZU3:=SZDZ2;/将输入的数据地址2送给数组的3位 SHUZU4:=SZNR1;/将输入的数据内容1送给数组的4位 SHUZU5:=SZNR2;/将输入的数据内容2送给数组的5位 CRC:=W#16#FFFF;/将16#FFFF送给CRC寄存器 FOR N:=0 TO 5 BY 1 DO/外循环6次 CRC:=CRC XOR SHUZUZZ;/将CRC寄存器与各字节异或 FOR M:=0 TO 7 BY 1 DO/内循环8次 YCW:=CRC;/将CRC寄存器的内容送给YCW中 YCW:=YCW AND W#16#0001;/取CRC寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手机外观设计行业市场调研分析报告
- 定做生日蛋糕行业市场调研分析报告
- 大数据分析及应用项目教程(Spark SQL)(微课版) 实训单汇 许慧 实训1-10 Hadoop集群环境搭建- Zepplin数据可视化案例分析
- 汽车发动机消声器产品供应链分析
- 带钉跑鞋产品供应链分析
- 工业用电动打蜡机产品供应链分析
- 气球驾驶用引擎产品供应链分析
- 手持式游戏机产业链招商引资的调研报告
- 球网细分市场深度研究报告
- 皮革用蜡商业机会挖掘与战略布局策略研究报告
- 地貌与公路工程-山岭地貌(工程地质课件)
- 江苏省常州市金坛区2023-2024学年九年级上学期期中英语试卷
- 人事考试服务投标方案(技术方案)
- 川教版生命生态安全二年级上册 第10课《室内卫生有讲究》 课件
- 湖北省武汉市2022-2023学年八年级上学期语文期中试卷(含答案)
- 1000字作文稿纸模板(完美修正版)
- 术中知晓预防与脑功能监测
- 昆明地铁5号线 施工方案
- 1.5基尔霍夫定律
- 新时代女大学生修养智慧树知到课后章节答案2023年下枣庄学院
- 新教科版四年级上册科学 2-8 食物在身体里的旅行 教学课件
评论
0/150
提交评论