西门子SCL基础.docx

上传人:王** 文档编号:969088 上传时间:2024-03-04 格式:DOCX 页数:25 大小:129.03KB
下载 相关 举报
西门子SCL基础.docx_第1页
第1页 / 共25页
西门子SCL基础.docx_第2页
第2页 / 共25页
西门子SCL基础.docx_第3页
第3页 / 共25页
西门子SCL基础.docx_第4页
第4页 / 共25页
西门子SCL基础.docx_第5页
第5页 / 共25页
西门子SCL基础.docx_第6页
第6页 / 共25页
西门子SCL基础.docx_第7页
第7页 / 共25页
西门子SCL基础.docx_第8页
第8页 / 共25页
西门子SCL基础.docx_第9页
第9页 / 共25页
西门子SCL基础.docx_第10页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《西门子SCL基础.docx》由会员分享,可在线阅读,更多相关《西门子SCL基础.docx(25页珍藏版)》请在优知文库上搜索。

1、SeL介绍SCL编程语言SCL(StructuredControlLanguage,结构化控制语言)是一种基于PASCAL的高级编程语言。这种语言基于标准DINEN61131-3(国际标准为IEC1131-3)o根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL编程语言实现了该标准中定义的ST语言(结构化文本)的PLCopen初级水平。S7-1200从V2.2版本开始支持SCL语言。语言元素SCL除了包含PLC的典型元素(例如,输入、输出、定时器或存储器位)外,还包含高级编程语言。.表达式.赋值运算运算符程序控制语句SCL提供了简便的指令进行程序控制。例如,创建程序分支、循环或跳

2、转。应用因此,SCL尤其适用于下列应用领域: 数据管理.过程优化 配方管理.数学计算/统计任务表达式说明:表达式将在程序运行期间进行运算,然后返回一个值。一个表达式由操作数(如常数、变量或函数调用)和与之搭配的操作符(如*、/、+或-)组成。通过运算符可以将表达式连接在一起或相互嵌套。运算顺序表达式将按照下面因素定义的特定顺序进行运算: 相关运算符的优先级,优先级数越小越优先.同等优先级运算符的运算顺序按照从左到右的顺序 赋值运算的计算按照从右到左的顺序进行 括号优先级最高表达式类型不同的运算符,分别可使用以下不同类型的表达式:.算术表达式.关系表达式.逻辑表达式算数表达式说明:算术表达式既可

3、以是一个数字值,也可以是由带有算术运算符的两个值或表达式组合而成。算术运算符可以处理当前CPU所支持的各种数据类型。如果在该运算中有2个操作数,那么可根据以下条件来确定结果的数据类型: 如果这2个操作数均为有符号的整数,但长度不同,那么结果将采用长度较长的那个整数数据类型(例如,Int+Dlnt=Dint)o 如果这2个操作数均为无符号整数,但长度不同,那么结果将采用长度较长的那个整数数据类型(例如,USInt+UDInt=UDInt)o 如果一个操作数为有符号整数,另一个为无符号整数,那么结果将采用另一个长度较大的有符号数据类型(其包含此无符号整数)(例如,Slnt+USInt=Int) 如

4、果一个操作数为整数,另一个为浮点数,那么结果将采用浮点数的数据类型(例如,Int+Real=ReaDo 如果2个操作数均为浮点数,但长度不同,结果将采用长度较长的那个浮点数的数据类型(例如,Real+LReaI=LReaDo 对于操作数为“Time”和“日期和时间“数据类型组,运算结果的数据类型请参见表1。算术表达式的数据类型表1列出了在算术表达式中可使用的数据类型:运算运算符优先级第一个操作数第二个操作数结果乘方*2整数/浮点数整数/浮点数浮点数正号+3整数/浮点数-整数/浮点数TimeTime负号-整数/浮点数整数/浮点数TimeTime:整数/浮点数整数/浮点数整数/浮点数Time整数T

5、ime除法整数/浮点数整数/浮点数(0)整数/浮点V”.数Time整数Time取模MOD整数整数整数加法+5整数/浮点数整数/浮点数整数/浮点数TimeTimeTimeTimeDlntTimeTODTimeTODTODDlntTODDateTODDTLDTLTimeDTL减法-整数/浮点数整数/浮点数整数/浮点数TimeTimeTimeTimeDlntTimeTODTimeTODTODDlntTODTODTODTimeDateDateTimeDTLTimeDTLDTLDTLTime示例以下为一些算术表达式的示例:MyTagV:=,MyTag2*,MyTag3u;关系表达式说明:关系表达式将两个

6、操作数的值或数据类型进行比较,然后得到一个布尔值。如果比较结果为真,则结果为TRUE,否则为FALSEo关系运算符可以处理当前CPU所支持的各种数据类型。结果的数据类型始终为Boolo编写关系表达式时,请注意以下规则:以下数据类型组中的所有变量都可以进行比较:o整数/浮点数O位、位序列O字符串对于以下数据类型,只能比较相同类型的变量:OTIMEO日期和时间OUDToArrayoStructoVariant String比较是对以Windows字符集编码的字符进行比较;而WSting比较则是对UTF-16编码的字符进行比较。在比较过程中,将比较变量的长度及各字符对应的数值。 Array比较需要数

7、组维度、数组元素数据类型与数量完全相同 UDT、Array、StructVariant等进行的比较只能使用S71200V4.2及其以上的版本。关系表达式的数据类型表2列出了在关系表达式中可使用的数据类型/数据类型组:友算运算符优先级第一个操作数第二个操作数结果小于、小于等于、大于、大于等于、=6整数/浮点数整数/浮点数Bool位序列位序列Bool字符串字符串BoolTimeTimeBool日期和时间日期和时间Bool等于、不等于=、O7整数/浮点数整数/浮点数Bool位序列位序列Bool字符串字符串BoolTimeTimeBool日期和时间日期和时间BoolVariant任意数据类型BoolU

8、DTUDTBoolArrayArrayBoolStructStructBool示例以下举例说明了一个关系表达式:IFabTHENc:=a;IFA20ANDB20THENC:=TRUE;IFA(BANDC)THENC:=FALSE;逻辑表达式说明:逻辑表达式由两个操作数和逻辑运算符(AND、OR或XOR)或取反操作数(NOT)组成。逻辑运算符可以处理当前CPU所支持的各种数据类型。如果两个操作数都是Bool数据类型,则逻辑表达式的结果也为Bool数据类型。如果两个操作数中至少有一个是位序列,则结果也为位序列而且结果是由最高操作数的类型决定。例如,当逻辑表达式的两个操作数分别是Byte类型和Wor

9、d类型时,结果为Word类型。逻辑表达式中一个操作数为BOol类型而另一个为位序列时,必须先将Bool类型的操作数显式转换为位序列类型。逻辑表达式的数据类型下表列出了逻辑表达式中可使用的数据类型:运算运算符优先级第一个操作数第二个操作数结果取反NOT3Bool-Bool求反码位序列-位序列与AND、&8BoolBoolBool位序列位序列位序列异或XOR9BoolBoolBool位序列位序列位序列或OR10BoolBoolBool位序列位序列位序列示例以下为一个逻辑表达式的示例:IFnMyTagVtANDNOT,MyTag2THENC:=a;MyTag:=AORB;赋值运算定义:通过赋值运算,

10、可以将一个表达式的值分配给一个变量。赋值表达式的左侧为变量,右侧为表达式的值。函数名称也可以作为表达式。赋值运算将调用该函数,并返回其函数值,赋给左侧的变量。赋值运算的数据类型取决于左边变量的数据类型。右边表达式的数据类型必须与该数据类型一致。赋值运算的计算按照从右到左的顺序进行。可通过以下方式编程赋值运算:单赋值运算:执行单赋值运算时,仅将一个表达式或变量分配给单个变量:示例:a:=b;.多赋值运算:执行多赋值运算时,一个指令中可执行多个赋值运算。示例:a:=b:=c;此时,将执行以下操作:b:=c;a:=b;组合赋值运算:执行组合赋值运算时,可在赋值运算中组合使用操作符和”/:示例:a+=

11、b;此时,将执行以下操作:a:=a+b;也可多次组合赋值运算:a+=b+=c*=d;此时,将按以下顺序执行赋值运算:c:=c*d;b:=b+c;a:=a+b;示例下表举例说明了单赋值运算的操作:uMyTag 1n:= MyTag2n;C变量赋值*)MyTag ,:= MyTag2n * MyTag3n;C表达式赋值*)C调用一个函数,并“MyTag”:=,MyFC,();将函数值赋给“MyTag变量*)C将一个变量赋值给# MyStruct.MyStructEIement:=MyTag;一个结构元素*)C将一个变量赋值给# MyAlTay2:=MyTag;一个ARRAY元素*)C将一个ARRA

12、Y元,MyTag:=#MyAnay1,4;素赋值给一个变量*)C将一个STRING# MyString2:=#MyOtherString5;元素赋给另一个STRING元素*)下表举例说明了多赋值运算的操作:uMyJagV := ,MyTag2 := ,MyTag3;nMyTagVt:= ,MyTag2 := ,MyTag3 ,MyTag4u;MyTag 1n:= ,MyTag2n := MyTag3 := ,MyFC,();(*变量赋值*)(*表达式赋值*)广调用一个函数,并将函数值赋值给变量nMyTagInMyTagIn和nMyTag1*)MyStruct.MyStructElemet1:=

13、MyStruct.MyStructElemet2:=,MyTag,;#MyAlTay2:=#MyArray32:=,MyTagn;,MyTag1n:=MyTag2n:=#MyArray1,4;MyString2:=MyStrig3:=#MyotherString5;(将一个变量赋值给两个结构元素*)(*将一个变量赋值给两个数组元素*)C将一个数组元素赋值给两个变量*)(*将一个STRING元素赋值给两个STRING元素*)下表举例说明了组合赋值运算的操作:nMyTag1+=,MyTag2n;nMyTag1n-=,MyTag2u+=,MyTag3n;#MyAITay2+=#MyAlTay32+=nMyTag;(*,MyTag,和,MyTag2n相加,并将相加的结果赋值给,MyTag1,o*)C,MyTag2和,MyTag3相加。将相加的结果赋值给操作数,MyTag2再从nMyTagIn中减去MyTag2,计算结果将赋值给

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

当前位置:首页 > 论文 > 自然科学论文

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!