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

createh53个月前 (02-01)技术教程26

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

相关文章

2015年11月编程语言排行榜出炉:Java再超20%

Java在TIOBE指数仍然持续上涨,现已达到20%(2009年7月以来Java再次超过20%)。因为10月底成功召开的JavaOne大会,它的受欢迎程度有可能进一步上升。目前Java和C两大语言与其...

2020 年,网络安全方面 5 大值得学习的编程语言

作者 | Andrew Long译者 | 明明如月,责编 | 夕颜封图 | CSDN下载自视觉中国出品 | CSDN(ID:CSDNnews) 无论你是一名准专业人士,安全爱好者还是经验丰富的资深人士...

编程语言第一:JAVA——java开发环境

一、JAVA编译运行过程程序员编写完一段代码后一般会经历两个阶段:编译和运行第一阶段编译。我们要通过javac(java语言编译器,全称java compiler)把编写的java 源文件(.java...

2015最新编程语言排行榜出炉:Java继续领跑

这是一个时间问题,苹果宣布从Objective-C转向Swift不久,Objective-C进入自由落体。本月Objective-C的Tiobe指数最高下跌10。脚本语言Ruby利用这一下降,进入前1...

编程语言哪家强,不是Java就是C++:Java与C++语法对比分析

JAVA相对于c++而言属于上层语言,因此一般用于应用层系统的开发,比如JAVA最擅长的web服务端开发,而c++偏向底层一些,更合适做一些底层的东西,比如JAVA的jvm就是c++语言开发的,而且J...

作为编程语言的“java”怎么就成了咖啡的代称?

咖啡有很多名字。比如“ espresso”和“ drip”指的是咖啡的制作方法。其他的如“摩卡”和“卡布奇诺” ,指的是用咖啡制成的一种特殊饮料。还有一些是提到咖啡的起源和历史。“ Java”属于这第...