课程中心
HOME
课程中心
正文内容
plc的scl编程 PLC编程小白必知:关于SCL语言编程方法的简介
发布时间 : 2024-11-26
作者 : 小编
访问数量 : 23
扫码分享至微信

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软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则新建符号名称。

西门子最接近C的编程语言,SCL教程,用好了事半功倍!

随着现代工控技术的不断发展,可能很多使用过 PLC 的技术人员都有这么一个感受: 传统的梯形图编程方式在面对越来越复杂的控制要求时,已显得力不从心。

其实,现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD)、结构化文本(ST)、流程图(SFC)、指令表(IL)和功能块(FB)。在这五种编程语言中,我认为梯形图+结构化文本是一种不错的组合,用梯形图写逻辑控制,用结构化文本写计算,这样可以加快编程效率并且使程序的可读性大大提高。而流程图编程则非常适用于一些“顺序控制”场合。至于指令表和功能块,则有其他的应用场合。

西门子 S7 系列 PLC 在国内工控领域中使用很广,它的编程软件 Step7 默认情况下只支持梯形图和指令表编程,但通过安装“S7-SCL”软件包和“S7-Graph”软件包可实现结构化文本和流程图编程。这两个安装包其实属于单独收费的,在网上也可以找到授权。

但是最新的博途系列,则将这两个语言集成在了软件里,而不需要额外下载安装包和购买授权。但他们两者的使用方法大体一致。

下面,我就结合自己的一些使用经验介绍一下如何使用结构化文本编程。

一、 什么是结构化文本编程

结构化文本是一种类似于计算机高级语言的编程方式,它的语法规范接近计算机中的

PASCAL 语言。具体的语法规则大家可参考西门子的相关手册,在此就不做详细介绍。下图为 Step7 中的 SCL 编程界面:

二、 S7-SCL 软件包的安装

在 Step7 中,结构化文本编程被称为结构化控制语言(Structured Control Language), 缩写为 SCL. Step7 professional 版本的软件包中已包含了 S7-SCL 软件包,在安装 Step7 时,系统会提示是否要安装 S7-SCL,把复选框打钩即可,见下图:

三、 SCL 软件包的使用

SCL软件包用于以“源文件”的方式编写功能块、函数块。步骤如下:

第一步:当Step7中已正确安装SCL软件包后,会有如下界面

第二步:进入 SCL 编程界面,并选择准备编写的程序块的类别

第三步:编写程序并编译

编译后产生FC!

经过以上四步,就完成了一个用 SCL 编写功能块的全过程, FC1 的源程序,保存在“Sources”文件夹中,可随时打开进行修改。

四、用 SCL 编程实现“间接寻址”

Step7 中,梯形图编程不支持对 PLC 的间接寻址,用指令表的方式虽可实现,但步骤烦琐且程序可读性差,相比之下,用 SCL 的方式来做就简便的多,具体方法如下:

1、位寻址:

MX[i,j],i 为字节地址,j 表示该字节中的哪个位,当 i=5;j=0 时,表示 M5.0

2、字节、字、双字寻址

MB[i]IW[i]、QB[i]、MD[i]

相关问答

scl编程指令详解?

SCL(StructuredControlLanguage)是可编程控制器PLC中一种类似于高级程序语言的编程语言,它允许用户进行控制逻辑的编写以实现自动化控制。以下是SCL编程指令...

S7系列的PLC的编程语言LAD、STL、SCL、GRAPH、HIGRAPH、CFC...

LD:梯形图是一种日系称为LAD的图形编程语言。它使用图形符号和连接线来表示程...ST:结构文本是一种日系称为SCL的编程语言。它以结构化方式描述电子设备或自动...

codesys能用scl语言吗?

CODESYS是一种PLC编程语言,而SCL是一种结构化文本语言。CODESYS支持多种编程语言,包括ST、CFC和SCL等。因此,CODESYS可以使用SCL语言进行编程。CODESYS是一种.....

scl在双眼视觉中是什么?

1.SCL在双眼视觉中是角膜硬度的指标。2.SCL是指角膜硬度(ScleralComplianceLevel)的缩写,它是评估角膜组织弹性和柔软程度的一个指标。角膜是眼睛前部透明...

电气自动化需要哪些高级语言?

电气自动化需要哪些高级语言?市面上高级语言挺多,好用的也挺多。工业自动化里常见到的有VB,C++,C#等等。需要哪些?一般一个公司要求并不多,熟悉一种就好。...

西门子s7-200PLC系统怎么样?它的功能有哪些?

西门子S7-200PLC可以满足各种设备自动化控制需求,此系统也属于紧凑型可编程序控制器。系统的硬件构架主要由系统CPU模块和丰富的扩展模块构成。s7-200PLC除基本...

PLC怎么连接电脑?怎么把在电脑编程好的程序放入PLC运行?

三菱FX系列PLC如何接线及如何通过RS232进行下载程序今天简单给大家介绍下三菱FX系列PLC如何接线和如何通过RS232进行下载程序,简单的说明帮助大家能快速与PLC通...

plc和编程哪个难?

相对来说,PLC更好学。PLC也是用控制的,您的意思应该是PLC编程语言和C语言哪个更难吧。目前PLC编程主要是梯形图,也有支持高级语言的比如SCL、ST需要。PLC的...

plcedit使用教程?

plcedit安卓版是一款可以随时在手机上进行编程的软件。plcedit安卓版拥有众多基础的编程模板任你免费使用,可以省去很多麻烦。有了plcedit安卓版,打开手机就...

PLC编程基础学习,怎样用一个按钮接通和断开电路?

习惯用西门子,所以就用西门子博图来写,楼主的要求就是一键启停程序,我写了两种,第一种是用SCL语言写的,第二种用梯形图写的,大同小异习惯用西门子,所以就用西门...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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