版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
S7300/400PLCS7-SCLPasical、DeliphiIEC61131-3PLCS7STLSCL,STLSCLSCLSTL,同时SCLSTLPLCPCC/C++等高级语言。总体来说,SCLSTLLadS7-SCLSCL最后给出了示例。S7-300/400程语言。一、软件的使用1、创建一个新的S7-SCLSource文件àCPUàS7ProgramàSourcesInsertNewObjectàSCLSCLSourceSCL2、块保护SCLSourceKNOW_HOW_PROTECT,块时,只能显示参数,而看不到内容。3、主菜单”Insert”下的”BlockTemplate”可用于插入如OB,FB等各种块的结构。”ControlStructure”菜单可插入各种流程控制结构,这些都可以简化编程。4SourceFile>CompileSelectedBlocks。也可以把几SourceS7-SCLcompilationcontrolfileSCLSource二、语法规则1、编写SCLSource文件的一般规则FB,FC,OB,DBUDT,Source每种块类型都有它自己的结构。每段落或者每个变量的声明以符号”;”标志结束。不区分大小写。注释仅存在于程序文档中,它不影响程序运行。DB0DB0.2、编写块的先后次序被调用的块必须位于调用块之前。UDT共享数据块必须位于那些使用它的所有块之前。三、数据类型1、数据类型预览Ⅰ、基本数据类型2、补充<1>、DATE_AND_TIMEDataType其值的范围:DT#1990-01-01-0:0:#2089-12-31-23:59:该类型以BCD码形式存储。20/Oct./199512:20:30and10millisecondsDATE_AND_TIME#1995-10-20-12:20:DT#1995-10-20-12:20:<2>STRING.声明VARText1:String[123];VARCONTROLLER1:3,1..4]OFINT:=-54,736,-83,77,-1289,10362,385,2,60,-37,-7,103;CONTROLLER2:ARRAY[1..10]OFREAL;声明一个结构MOTOR中包含另一个结DATAVARMOTOR:STRUCTDATA:STRUCTLOADCURR:REAL;VOLTAGE:INT:=5;END_STRUCT;END_STRUCT;END_VAR结构以WORD的形式结尾,否则系统自动把丢失的字节补到结构中去。<5UDT(TYPE.ret:=SFC79(N:=N_out,SA:=out);END_FUNCTION1000]OFREAL;END_VARBEGIN.FC100(N_out:=ii,out:=aa);.END_FUNCTION_BLOCK<7>ANY类型.VAR_INPUT5:..:INT;声明时可以初始化:VALUE:REAL:=;数组的初始化有两种方式:CONTROLLER1:ARRAY[1..2,1..2]OFINT:=-54,736,-83,77;A3[2A3[11]A3:ARRAY[1..12]OFREAL:=,10,;2、块参数输入参数:用于接收当块被调用时的输入值,他们是只读的。输出参数:传输当前值到这个调用块,在被调用块中应该对该参数赋值输入/3、使用多重背景声明方式如下:Supply1:FB10;CONSTNumber:=10;10M3f1995-11-111995-05-051995-01-011995-02-02W10;LadSTLSCL”B”七、表达式、操作符和地址1、操作符预览八、控制流程1、IF选择语句IFconditionTHEN…ELSIFconditionTHENIFARRAY[INDEX]=INDEXTHENCONTINUE;END_IF;2、CASE选择语句CASEintVariantOF:DISPLAY:=OVEN_TEMP;:DISPLAY:=MOTOR_SPEED;3..10:DISPLAY:=INT_TO_DINT(TW);50]OFSTRING;END_VARBEGINFORINDEX:=1TO50BY2DO..LAB1:INDEX:=1;GOTOLAB3;LAB2:INDEX:=2;…7、调用块绝对地址调用,例如:(X1:=5,X2:=78,......); DISTANCE(X1:=5,Q1=:Checksum);EN,ENO,BOOL..ELSE..END_IF;九、定时器和计数器1、计数器S_CU增计数器S_CD减计数器S_CUD增/减计数器.S_CUD(C_N=C12,4]ofSTRUCTC_NINT;PV:WORD;END_STRUCT;…END_VAR…FORI:=1TO4DO_NO,S:=true,PV:=END_FOR;FUNCTION_BLOCKVAR_INPUTMYCounter:COUNTER;END_VAR…CurrVal:=S_CD(C_N=MyCounter,.....);4]ofT_NINT;TV:WORD;END_STRUCT;…END_VAR…FORI:=1TO4DOCurrTime:=S_ODT(T_N=MY_TIMER[I].T_NO,S:=true,MY_TIMER[I].TV);END_FOR;FUNCTION_BLOCKTIMERVAR_INPUTmytimer:TIMER;END_VAR…CurrTime:=S_ODT(T_N=mytimer,.....);十、S7-SCL中的标准功能1、数据类型转换函数隐式转换,其依照的顺序为:BOOL>BYTE>WORD>DWORDINT>DINT>REAL.VARIF(PID_CTRLLER_1<>PID_CTRLLER_2)THEN....IF(PID_CTRLLER_1<>PID_CTRLLER_2)THEN....RESULT:=EXPD(3);141592;RESULT:=SIN(PI/6);.);<2>最小值函数//32以外,任意其他数//子类型均可以,但所有的参数数据类型必须一致。A:=MIN(IN1:=a,IN1:=b,IN1:=c,IN1:=d);<3>极限值函数A:=LIMIT(MN:=5,IN:=Executionsteps,MX:=10);<4>MUX函数A:=MUX(K:=SELECT,IN0:=Steps,IN1:=Number,IN2:=Total);9、系统功能/功能块、标准库SCL像其他语言一样,可以调用各种功能块,包括系统功能、功能块SFC/SFB十一、示例(均在PLC-SIM上测试通过)1、编写位偏移程序MM1,2,6,则为//根据偏移量来设定字节和位FUNCTIONFC200:voidVAR_INPUT//输入变量byteNINT;//MbitNINT;//指定起始位号bitNum:INT;//指定位数END_VARVAR_OUTPUT//输出变量currBit:INT;//当前位currByte:INT;//END_VARVAR_TEMPtmp:INT;END_VARBEGINtmp:=(bitNo+bitNum-1)DIV8;currByte:=byteNo+tmp;currBit:=bitNo+bitNum-(8*tmp+1);END_FUNCTION2、功能选择程序假设某个机床有若干过手动功能,使用两个按钮”+”和”-“,按一次”+”,34灯亮,而与功能31,重新开始循环,按钮”-“与”+”正好相反,用1s200ms钟加一或者减一。/////////////////////////////////////////////主要控制功能FC10////////////////////////////////////////FUNCTIONFC10:VOIDVAR_INPUT//输入变量fnAdd:BOOL;//接收"+"按钮fnSub:BOOL;//接收"-"按钮byteNINT;//MMbitNINT;//指定起始位号bitNum:INT;//指定总的位数END_VARVAR//静态变量pus1:BOOL;//记录按钮"+"的脉冲pus2:BOOL;//记录按钮"-"的脉冲button:BOOL;//确定按钮"+"或者按钮"-"被按下currNINT;//记录当前的功能号currBit:INT;//当前位currByte:INT;//当前字节//定时器输出p1:BOOL;p2:BOOL;p11:BOOL;//p111:BOOL;p22:BOOL;//p222:BOOL;CurrTime:S5TIME;END_VARVAR_TEMPi:INT;END_VARBEGIN////IFfnAdd&fnSubTHENRETURN;END_IF;/////////////////////////////////////////获取按钮"+"的脉冲///////////////////////////////////////////IFfnAdd&(button=false)THENpus1:=true;ELSEpus1:=false;END_IF;//////////////////////////////////////////按钮"-"的脉冲/////////////////////////////////IFfnSub&(button=false)THENpus2:=true;ELSEpus2:=false;END_IF;IF(fnSub&(fnAdd=false))OR(fnAdd&(fnSub=false))THENbutton:=true;ELSEbutton:=false;END_IF;//////////////////////////添加定时器监测////////////////////////////////////////////////////CurrTime:=S_ODT(T_N=T10,S:=fnAdd,TV:=T#800ms,Q:=p1);//按钮按下的时间CurrTime:=S_ODT(T_N=T11,S:=p1&p111,TV:=T#200ms,Q:=p11);IFp11=trueTHENp111:=false;//当定时器有输出后,断开信号,使其在下一扫瞄周期中无输出ELSEp111:=true;//在按钮按下的情况下重启定时器计时END_IF;CurrTime:=S_ODT(T_N=T20,S:=fnSub,TV:=T#1s,Q:=p2);CurrTime:=S_ODT(T_N=T21,S:=fnSub&p222,TV:=T#200ms,Q:=p22);IFp22=trueTHENp222:=false;//当定时器有输出后,断开信号,使其在下一扫瞄周期中无输出ELSEp222:=true;//在按钮按下的情况下重启定时器计时END_IF;/////////////////////////////////////////////////////////////////////////////////////////////////////////1IFpus1=trueORp11THEN//按钮"+"的脉冲IFcurrNocurrN=currNo+1;ELSEcurrN=1;END_IF;ELSIFpus2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子房屋买卖合同格式范本编写示例
- 投标安全承诺函
- 八年级生物下册 7.1.1 植物的生殖教案 (新版)新人教版
- 河北省安平县八年级地理上册 1.1 辽阔的疆域教学设计 新人教版
- 八年级物理上册 第二章 声现象 第2节 声音的特性第2课时声音的特性综合应用教案 (新版)新人教版
- 2023六年级英语上册 Review Module Unit 2教案 外研版(三起)
- 2024-2025学年新教材高中化学 第1章 原子结构 元素周期表 第2节 元素周期律和元素周期表 微专题二 元素“位-构-性”之间的关系教案 鲁科版必修第二册
- 2024-2025年高中语文 第3单元 单元导读教案 粤教版必修1
- 2024-2025学年高中历史 第四单元 工业文明冲击下的改革 第15课 戊戌变法(2)教学教案 岳麓版选修1
- 雨污管道劳务包工细分合同(2篇)
- 《廉洁主题班会》课件
- JT-T-617.1-2018危险货物道路运输规则第1部分:通则
- 2024年贵州省中考化学试卷真题(含答案及解析)
- 2024南京旅游职业学院教师招聘考试笔试试题
- 2023年广东省普通高中数学学业水平合格性考试真题卷含答案
- 人工智能知识竞赛题库及答案(500题)
- 跨地区经营纳税企业的分支机构年度纳税申报表(2021年版)
- 《高血压中医诊疗专家共识》解读
- 2024地理中考复习-七年级上册知识点总结(打印版)
- 2023年室内装饰设计师(三级)理论考试复习题库(含答案)
- 《装在套子里的人》剧本演绎推理+课件++2023-2024学年统编版高中语文必修下册
评论
0/150
提交评论