大家好,欢迎来到IT知识分享网。
初识博图scl语言
文章目录
目录
前言
随着PLC自动化的发展,许多控制要求用梯形图(lad)已经不好满足或者比较乏力,特别是在数据管理、数学运算、重复的多个运算和流程等方面;但是结构化语言(scl)可以很好的处理这些问题。
一、scl语言简介
1.介绍
首先scl语言和lad(梯形图)语言都是可编程控制器中的一种编程语言,用来编写程序。
另外SCL(Structured Control Language 结构化控制语言) 具有以下特点:
适用于 S7-300 (推荐CPU314以上), S7-400,S7-1200,S7-1500, C7 and WinAC
复杂数学函数
数据管理
过程优化
2.相关问题
关于scl语言的相关问题可以参考西门子官网手册:
文档链接:https://support.industry.siemens.com/cs/attachments//35970.pdf
3.scl语言的编写环境
scl的编写环境可以在单独的一个块里面,也可以在一小段程序里面,并且可以和其它的语言混合编写,简称混编。例如:程序段2是lad编写,程序段3是scl编写。
这里我们添加新块fc,选择scl语言就可以了,下面是在fc块中的编写环境。(这里可以看出和C语言有些相似)和平常写程序时一样,上面是常用的指令,右侧是基本指令,中间是写程序的地方。
二、表达式和运算符
1.算术表达式
1.介绍
1、算术表达式既可以是一个数字值,也可以是由带有算术运算符的两个值或表达式组合而成。
2、算术运算符可以处理当前 CPU 所支持的各种数据类型。如果在该运算中有2个操作数,那么可根据以下条件来确定结果的数据类型:
如果这 2个操作数均为有符号的整数,但长度不同,那么结果将采用长度较长的那个整数数据类型例如:INT + DINT = DINT
如果1个操作数为有符号整数,另一个操作数为无符号整数,那么结果将采用另一个长度较大的有符号数据类型(包括无符号)例如:SINT+SUINT=INT
4、如果两个操作数均为浮点数,但长度不同,结果将采用长度较长的那个浮点数的数据类型,例如:REAL+LREAL=LREAL
2.算术表达式使用
算术表达式有:加法, 减法, 乘法,除法,模运算和幂运算。
创建一个数据块,使用一个结构体变量(struct)变量类型为int,C是最后的结果;
然后C:=A+B,就是将A+B的和放到C里面,其中:=是赋值的意思。
最后打开仿真,输入数值,就可以计算出结果;这里是以加法举例,后面的乘除取模和幂运算大致相同。
3.例题
使用scl语言计算这个公式:(A*(B+C))的2次方/4;
这样套进去就可以了。
2.关系表达式
1.介绍
关系表达式就是由 = 、<>、>、<、>=、<= 组成的表达式。如果条件成立为:TRUE,不成立为:FALSE;比较后的结果必须是放在Boll量类型的变量中。
比较浮点数
1、比较浮点数时,待比较的操作数必须具有相同的数据类型,而无需考虑具体的“IEC 检查”(IEC Check) 设置。2、对于无效运算的运算结果(如,-1的平方根),这些无效浮点数(NaN)的特定位模式不可比较。即,如果一个操作数的值为 NaN,则比较表达式“==:等于”和“<>:不等于”的结果将为 FALSE。
比较字符串
比较字符串时,系统将对各字符的代码进“a”大于“A”)。并按照从行比较(如,左到右的顺序进行比较。第一个不同的字符将确定比较的结果。
比较定时器、日期和时间
系统无法比较无效定时器、日期和时间的位模式1、如DT#2015-13-33-25:62:99.999 999 999)如果某个操作数的值无效,则指令“手:等于即,的结果将为FALSE<>:不等干
2、并非所有时间类型都可以直接相互比较,如需要将其显式转换为其它时简类型S5TIME。此时然后再进行比较(如,TIME),
3、如果要比较不同数据类型的日期和时间,则需将较小的日期或时间数据类型显式转换为较大的日期或时间数据类型。。例如,比较日期和时间数据类型DATE和DTL时,将基于DTL进行比较
如果显式转换失败,则比较结果为 FALSE
比较 WORD 数据类型的变量与S5TIME 数据类型的变量
将WORD 数类型的变量与 S5TIME 数据类型的变量进行比较时,这两种变量都将转换为 TIME 数据类型。WORD变量将解释为一个 S5TIME 值。如果这两个变量中的某个变量无法转换,则不进行比较且输出结果 FALSE。如果转换成功,则系统将基于所选的比较指令进行比较操作。
比较结构
1、结构比较功能仅适用于固件版本为 V4.2及以上版本的S7-1200系列CPU,以及固件版本为V2.0及以上版本的S7-1500系列CPU2、如果两个变量的结构数据类型相同,则可以比较这两个结构化操作数的值。比较结构化变量时,待比较操作数的数据类型必须相同,而无需考虑具体的“IEC 检查(IEC Check) 设置。但一个操作数为VARIANT,而另一个为 ANY时除外。创建程序时,如果数据类型未知,则可使用 VARIANT 数据类型。这样,就可比较任意数据类型的结构化变量操作数。此外,还可以比较VARIANT或ANY 数据类型的变量。
ARRAY 数据类型
1、元素的数据类型必须相同。
2、两个 ARRAY 的维数必须相同。3、所有维数的元素数量必须相同,而具体的ARRAY 限值无需相同
2.使用
相等为TRUE,不相等为FALSE。
3.逻辑表达式
1.取反 (NOT)
取反指令可以将1变为0,将0变为1;是按2进制位取反。
2.与(AND/&)
与指令(按位与):全1为1,有0为0.
3.或(OR)
或指令(按位或):有1为1,全0为0。
4.异或(XOR)
异或指令:相同为0,相异为1。
4.运算符的优先级
5.赋值运算
总结
以上就是今天的内容,这里主要写了一些scl语言的简介,应用,表达式和运算符。下一篇就是scl语言指令的使用以及一些小的案例。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133456.html