线下实训
HOME
线下实训
正文内容
plc编程scl英语 西门子博途SCL编程语言系列分享1——SCL语言简介
发布时间 : 2024-10-08
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子博途SCL编程语言系列分享1——SCL语言简介

前言:接下来的一段时间,我会利用工作业余,把我对SCL的一些理解跟使用经验整理出来,分享给大家,主要以案例分析的形式带着大家一起去学习了解SCL语言的运用,希望与大家共同成长进步!

1、首先第一章吧,我们来先聊一聊一些概念性的东西,什么是SCL,SCL与STL是一回事吗?

SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。 这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对可编程逻辑控制器的编程语言进行标准化。 SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。

这里可能说得有点太官方,咱们简单地总结下:我们尤为需要记住的一点是,SCL语言跟计算机C、Java语言一样,都属于高级编程语言,另外它符合国际标准IEC 1131-3,它是为我们PLC编程服务的就行了。

STL为步进梯形指令(Step Ladder Instruction),STL语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和51单片机的机器语言是一个层面。所以,它是一种低级的语言。

所以不要看都有 MOVE,都是英文,就觉得SCL与STL是同一种东西,这种思维方式注定你思维混乱,而思维混乱,混淆是非是我们工控行业中的一大忌!

2、SCL语言元素

SCL 除了包含 PLC 的典型元素(例如,输入、输出、定时器或存储器位)外,还包含高级编程语言。

表达式 (如:A:=B&C;)赋值运算 (如:A:=B;)运算符 (如:A:=B+C;)

3、 程序控制

SCL 提供了简便的指令进行程序控制。例如,创建程序分支、循环或跳转。这里指令的运用,接下来我会具体的一个一个地给大家举例介绍分析,这里就不一一展示了。

4、 应用领域

数据管理过程优化配方管理数学计算 / 统计任务

5、好了SCL语言的一些基本概念,这里就介绍得差不多了,接下来我们就简单地举个例子吧,顺便带着大家编写属于自己的第一段SCL程序。

先创建一个新项目,添加一个1500CPU;

硬件组态

创建好CPU后,我们新建一个全局DB块,新建两个Bool型变量;

DATA全局数据块

变量新建

开始程序编写,这里写了4段程序,分别用SCL与LAD语言实现点动置位 功能,大家可以做个比较,看看SCL语言的编写规则,以及与LAD语言的区别。

点动/置位功能

好了本章内容结束,感谢观看,如有疑问,欢迎评论区留言!

PLC编程小白必知:关于SCL语言编程方法的简介

SCL :Structured Contorl Language,结构化控制语言。

在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。

SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。

在用SCL语言编程时,主要用IF...THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。

今天就和大家聊一下关于SCL编程的基础知识:

变量与常量地址与符号寻址方式

以上是PLC技术学习的基础知识,但凡懂一点PLC,对上面三部分内容应该都不会陌生。所以我也不打算把书本上的东西再重复一遍,这篇文章我只介绍在SCL中,上面三部分内容的使用以及与梯形图中的不同之处。

1、变量与常量

简单点来说,在程序运行时如果一个数据的值是不确定的我们就把它称作变量 。比如锅炉的温度,水流的速度,这些数据会随着时间(或者其他因素)波动。

反之,肯定会有一部分数据,不会受到外界的干扰,就是唯一值,这部分数据我们就称作常量 。比如一天有24小时,π=3.14。

常量的存在主要是为了存储一些固定的数值,在编程时使用常量能减少出错率。声明后的常量也比较容易修改。

举例来说,程序中如果有多处使用π,我们可以先定义π为常量,然后在编程时只需要把π带入公式即可,这样就能减少每次输入3.14出错的概率。后续维护时,想提高计算精度,我们可以直接在声明中改变π,使π=3.1415926,否则多处的数值改起来会相当麻烦。

无论是变量还是常量,在 TIA Portal 中按照作用的区域又可以分为全局和局部 。也就是我们常说的全局变量、全局常量,局部变量、局部常量。

全局变量 (或者全局常量)如果简单理解,大概分为两种,一种是在PLC变量表中建立的变量(或者常量)。还有一种是全局DB中创建的变量(或者常量)

全局变量可以被PLC中的所有程序使用,比较典型的就是PLC中的 I、Q、M存储区。

局部变量 (或者局部常量)一般是在FC/FB中建的变量(或者常量),也就是我们常说的内部变量(或者内部常量)

正常情况我们在某一个FC/FB中声明的内部变量,只会在该FC/FB中使用。但是TIA Portal软件中对该要求没有强制,也就是说FC/FB的内部变量也是可以被其他的FC/FB处理的。

在SCL编程时我们最好不要使用外部程序,处理内部变量,否则在程序移植时很容易出错。

2、地址与符号

变量的声明: 变量的声明有时候也叫变量定义,定义变量通常要指定变量的名称、数据类型,默认值等属性。

在SCL编程中,一定记住这个准则:变量要先定义后使用

变量的主要作用是用于存储数据,是数据存储的基本单元。声明变量就是向PLC的寄存器中,申请一块特定的区域用于存储数据。

这块区域的属性就是变量的属性,比如一个短整型变量占用2个字节,单精度浮点型数据占用4个字节。

在 TIA Portal 中声明局部变量会像上图中所示,利用表格的形式定义各种数据。

Input、Output、Inout这三种是FB对外的接口(形式参数),Static、Temp、Constant主要用于FB程序内部。

常量定义 :在声明常量时,并不像变量那样占用PLC的特定存储区域,所以常量也就没有绝对地址。因为常量就代表了特定的数值,在程序中也禁止修改常量。

上图是定义局部常量的方法,全局常量在PLC变量表的【用户常量】标签页里定义,如下图所示:

3、寻址方式

寻址就是我们对数据的访问方式,有绝对地址寻址符号寻址 两种。

PLC中的存储区域主要有四种:I、Q、M、DB。我们可以直接通过地址进行读取数据,比如 I0.0、MW10、DB1.DBW20。这种访问数据的方式就叫做绝对地址寻址

前面讲过,变量要先定义再使用,在定义变量的过程中,我们就赋予了绝对地址一个特殊的符号名称,通过定义的符号进行数据访问就是符号寻址。

在TIA Portal 中使用绝对地址编程时,软件会自动添加默认符号(博途不允许无符号名称的变量出现),并且增加了优化访问模式的DB。可见在S7-1200/1500编程中,弱化了绝对寻址。

SCL编程时符号寻址的书写格式:

DB块变量的寻址格式:"DB块名称".变量名称

PLC变量的寻址格式:"变量名称"

局部变量的寻址格式:#变量名称

上图是三种变量在SCL程序编写过程中,书写的格式,在编程SCL程序时需要严格遵守。

忘记书写格式时,可以通过拖拽的方式使用变量,或者使用软件的智能关联功能。

SCL编程时也可以使用变量前加 % 的方式使用绝对地址寻址,DB块变量的书写格式为%DB块号.变量地址。TIA PORTAL软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则保留绝对地址。

如果是PLC变量,也可以通过%变量地址的方式使用绝对地址寻址,TIA PORTAL软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则新建符号名称。

相关问答

西门子scl语言使用方法?

你好,SCL(StructuredControlLanguage)是一种编程语言,用于编写西门子可编程逻辑控制器(PLC)的程序。以下是使用SCL语言的步骤:1.打开S7编程软件,创建...

stl语言和scl语言的区别?

STL语言和SCL语言都是西门子公司的工业自动化编程语言,不过二者在语法和特点上有所不同。STL(StructuredTextLanguage)语言是一种结构化文本语言,它采用类...

data和scl的区别?

Data和SCL代表着两个不同的概念。1.Data(数据):Data是指一组未经加工或处理的原始信息。它可以是数字、文本、图像、音频、视频等形式的信息,没有被组织、解...

西门子编程语言有哪些?

目前比较流行的西门子PLC编程语言有如下几类:1.梯形图。最明了最容易上手的PLC编程语言,一般新手上路都是梯形图。特别方便监测。2.STL语言:STL是高手用的,...

在scl中如何置位?

西门子PLC编程语言有以下五种:梯形图LAD,功能块图FBD,语句表STL,结构控制语言SCL,顺序功能图Graph。下面我们组态演示如何在SCL中置位以及注意事项。首先,...西...

scl500的plc用什么软件编程?

可以用组态王或mcgs组态软件。可以用组态王或mcgs组态软件。

scl语言有用吗?

scl语言有用的scl高级语言处理数据和批量输入输出有很大的优势。我刚解答了一个问题,他就提到要取数组中最大的值,如果用梯形图,我一时还想不出怎么实现,即...

PLC初学者如何从梯形图过渡到ST语言编程?

说一点个人看法。如果你本来是学计算机的转行到工控自动化行业,那么ST语言编程对你来说应该是轻而易举,看看帮助文件或者实际测试一下应该很容易就能上手!下...

如何使用西门子step7软件组态s7-300plc通过profinet与et200s从站通讯?

都是用step7编程的。但它们是使用不同版本的STEP7软件包。两者也无法相提并论。就是两个个体的实物,都有它自己的思想和灵魂。s7-400和300、200都是用...

plc编辑器采用哪种方式?

三、功能模块图Delete(FBD)四、顺序功能流程图Delete(SFC)五、结构化文本Delete(ST)以上是常用的几种语言,另外还有高级语言SCL编程语言,还要注意,不...四...

 毕亮  四川美食论坛 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部