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软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则新建符号名称。
指令表(IL)、梯形图(LD)都是PLC 的常用编程语言?图文详解
PLC 是一种工业控制计算机,其软件必然是通过编程语言来编辑的。
目前 PLC 常用的编程语言有梯形图、指令语句表和顺序功能图。功能块图和结构文本高级语言则存在于某些PLC中。
一、指令表(IL)
指令语句表也叫助记符或列表,是基于字母符号的一种语言,类似于计算机的汇编语言。
这种编程语言是用一系列操作指令组成的 语句表将控制流程描述出来,并通过编程器或者编程软件送到PLC中去,指令语句表是由若干条语句组成的程序,语句是程序的最小单元。一个操作功能是由一条或若干条语句来完成的。PLC的操作指令系统比计算机的汇编语言简单很多。但表达形式类似。也是由地址、操作码和操作数三部分组成,关于FX2N的具体操作指令待讲解程序编制时再作介绍。
下图为—指令表程序(FX2N PLC)
若果把指令表的逻辑关系写成逻辑表达式则为:
Y0=(X0+Y0)* X1
不同品牌的PLC其指令表的形式是相同的,但是指令的符号表示,各编程元件表示则相差很大。
指令表编程语言是最基本的程序设计语言。它具有容易记忆便于操作的特点,它可以用最简单的编程工具—手持编程器进行编程。它与其他语言多有一一对应的关系,而且,一些其他语言无法表达的程序用它都可以进行表达。它的缺点是阅读困难,其中的操作功能很难一眼看出,不便于工控人员之间进行交流和沟通
早期,在编程软件普及前一般都是先用梯形图设计程序,然后再手工编译成指令表程序,最后用手持编程器将程序送入PLC。现在,编程软件已经普及,在编程软件上,我们只要编好梯形图程序,软件会自动编译成指令表程序。所以,我们今后重点是梯形图编程语言的学习和编程软件的操作。对指令表编程语言则不作进一步讲解。但是,PLC的各种操作指令的学习则是必不可少的编程基础。
二、梯形图(LD)
梯形图编程语言习惯上叫梯形图。其源自继电控制系统电气原理图的形式,也可以说,梯形图是在电气控制原理图上对常用的继电器,接触器等逻辑控制基础上简化了符号演变而来的,
由于PLC在结构上,工作原理都和继电器控制系统截然不同,因而他们之间必定存在着许多差异。初学者可以通过继电器控制电路图切入梯形图,但一旦入了门,则必须完全离开继电控制电路图
下图为根据指令表这一节中的指令表程序所画出的梯形图,其功能和指令表程序一样,但理解却容易多了,电工师傅们一看就知道,这是一个电动机起、保、停控制程序
和指令表编程语言一样,尽管都是梯形图,但各个厂家PLC对梯形图的画法还是有差别的。对最基本的逻辑控制指令差别并不大,但对功能指令(实现数据操作的指令)的表达上差别非常大。这也是为什么学习三菱PLC后再学习西门子S7-300/400,很多人感到不好学的原因之一。
梯形图语言优点非常特出,形象、直观、易学、实用,电气人员容易接受,是目前所有PLC都具备的编程语言,也是用的最多的一种PLC编程语言。
(未完待续,下一节内容为顺序功能图、功能快图、结构文本),电工小琦原创,未经授权不得转载,违者必究!
往期优秀文章回顾:
电气工程师的PLC基础应用实例:S7-200 SMART如何实现喷泉控制?
相关问答
PLC常用的编程语言?
PLC编程语言五种:梯形图、指令表、功能模块图、顺序功能流程图及结构化文本)。目前编程语言的价值在于用经验的方式来管理软件系统复杂度。而SQL算是一个数...
codesys能用scl语言吗?
CODESYS是一种PLC编程语言,而SCL是一种结构化文本语言。CODESYS支持多种编程语言,包括ST、CFC和SCL等。因此,CODESYS可以使用SCL语言进行编程。CODESYS是一种.....
S7系列的PLC的编程语言LAD、STL、SCL、GRAPH、HIGRAPH、CFC...
LD:梯形图是一种日系称为LAD的图形编程语言。它使用图形符号和连接线来表示程序控制结构,适用于自动化控制系统中的逻辑控制和顺序控制。LD具有易于理解和使用...
plc编程语言有哪三种?
PLC编程语言五种:梯形图、指令表、功能模块图、顺序功能流程图及结构化文本)。目前编程语言的价值在于用经验的方式来管理软件系统复杂度。而SQL算是一个数...
plc程序是啥语言?
plc程序语言有以下五种1、梯形图(LadderDiagram)程序设计语言;2、布尔助记符(BooleanMnemonic)程序设计语言;3功能表图(SepuentialFunctionCha...
plc编程语言SPD怎么用?
SPD是脉冲密度,也就是在一定的时间内对输入进行计数。如SPDX0K5000D210在5秒(K5000)内对x0的输入进行计数,计数结果保存在D210中。在GXDeveloper中可.....
plc程序设计语言?
1、梯形图(LadderDiagram)程序设计语言梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,程序采用梯形图的形...
plc中st是什么意思?
plc中st意思是指StructuredText,是一种基于结构化编程的PLC编程语言。它的语法类似于Pascal语言,具有易读性和易维护性的特点,适用于复杂的控制算法和数据处...
西门子scl语言使用方法?
你好,SCL(StructuredControlLanguage)是一种编程语言,用于编写西门子可编程逻辑控制器(PLC)的程序。以下是使用SCL语言的步骤:1.打开S7编程软件,创建...
西门子PLC编程语言有哪几种?
西门子PLC编程语言有以下几种:1.LadderDiagram(LD,梯形图):基于图形化的逻辑运算符号,采用类似电路图的形式进行程序设计。2.FunctionBlockDiagram....