博途 SCL 编程简明教程

在本教程中,我们将介绍SCL编程语言的基本元素。

博途 SCL 编程简明教程
梯形图转SCL | 梯形图在线查看 | 博途编程文档MCP | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace

结构化文本(ST)是IEC 61131-3标准中建立的高级PLC编程语言,在西门子软件中也称为结构化控制语言(SCL)。如果你想成为高级自动化工程师,学习如何使用SCL编程西门子PLC是一项重要技能。

SCL是工业自动化和IT交叉应用的重要编程语言,例如智能工厂、增材制造、油气和网络控制系统等。

在本教程中,我们将介绍SCL编程语言的基本元素。首先,我们将了解算术、逻辑和关系表达式。接下来,我们将介绍表达式中可用的不同运算符。最后,我们将了解如何使用值赋值将表达式分配给标签。

想把老项目里的梯形图转成SCL?使用这个LAD2SCL插件一键转换!

0、先决条件

要跟随本教程,您需要:

  • 安装西门子TIA Portal。我们将使用TIA Portal版本16;但是其他版本的TIA Portal也适用
  • 知道如何在TIA Portal中创建SCL编程块

1、SCL元素

除了计数器、输入、线圈或内存位等常见PLC元素外,SCL还具有高级元素,包括:

  • 表达式
  • 运算符
  • 值赋值

因此,SCL非常适合IIoT系统中的数据管理、汽车行业中的过程改进、食品和饮料中的配方控制以及设备制造中的统计和数学挑战等应用。

2、理解SCL表达式

表达式在程序执行或程序编译期间计算并返回值。表达式由操作数(例如标签或常量)和可能的运算符(例如幂(**)或减法(-))组成。

表达式可以通过运算符相互连接或嵌套。

根据运算符,有三种类型的表达式可用:

  • 算术表达式
  • 关系表达式
  • 逻辑表达式

您将在接下来的几节中详细了解每种类型。

3、理解SCL算术表达式

数值或使用算术运算符的两个表达式或值的组合构成算术表达式。

算术运算可以处理活动CPU允许的数据类型。如果算术运算使用两个操作数,则结果的数据类型根据以下标准确定:

  • A) 如果两个操作数都是有符号整数且长度不同,则输出被赋予较长操作数的数据类型。
  • B) 如果两个操作数都是无符号整数且长度不同,则输出被赋予较长操作数的数据类型。
  • C) 如果一个整数操作数有符号而另一个整数操作数无符号,则输出是下一个更大的有符号数据类型,其中包括无符号整数。
  • D) 当浮点数和整数都用作操作数时,结果被赋予浮点数的数据类型。
  • E) 如果两个操作数都是浮点数且长度不同,则输出被赋予较长操作数的数据类型。

4、理解SCL关系表达式

关系表达式通过比较两个操作数的数据类型或值来提供布尔值。如果比较正确,结果为True;否则为False。

例如,查看以下IF语句第一句中的关系表达式。如果锅炉温度低于100.00华氏度,则关系表达式产生布尔值True。如果温度传感器检测到高于100.00华氏度,则关系表达式返回布尔值False。

5、理解SCL逻辑表达式

逻辑表达式使用逻辑运算符(如NOT、And或&、XOR和OR)连接两个操作数。如果逻辑表达式的两个操作数都具有布尔数据类型,则结果也将具有此数据类型。

如果至少一个操作数是位字符串,则结果也是位字符串,结果类型由最高操作数的类型确定。例如,当Word类型操作数与Byte类型操作数链接时,结果为Word类型。

如果要将布尔类型操作数连接到位字符串,必须将其正确转换为位字符串。

6、理解SCL运算符

算术表达式中最常用的运算符(按优先级顺序)是幂,然后是乘法和除法,然后是加法和减法。但是,算术表达式中也可以使用其他运算符,如一元加、一元减、模函数和组合值赋值。

关系表达式中使用的运算符(按优先级顺序)是小于、大于、小于或等于、大于或等于、等于和不等于。

逻辑表达式中使用的运算符(按优先级顺序)是取反、布尔与、异或和布尔或。

首先评估算术运算符,然后是关系运算符,最后是逻辑运算符。同样重要的是要记住,无论何时看到括号中的操作,都应该首先评估。

例如,如果您查看以下方程式,您将了解通过使用括号,可以更改优先级顺序,从而可以更改输出结果。

7、理解SCL中的值赋值

可以使用值赋值将表达式的值分配给标签,该值可以是算术和逻辑表达式中的数值或逻辑值。接受右侧表达式值的标签位于赋值运算符(:=)的左侧。

函数的名称也可以作为表达式给出。值赋值调用该函数,然后将函数值发送到左侧的标签。

值赋值的数据类型由左侧的标签数据类型决定。此类型必须与右侧表达式的数据类型匹配。

处理编程值赋值时,以下选择可用:

单值赋值:使用单值赋值时,标签或表达式仅分配给一个标签。您可以找到以下赋值:
  1. 标签的赋值
  2. 表达式的赋值
  3. 标签到结构元素的赋值
  4. 标签到数组元素的赋值
  5. 数组元素到标签的赋值
  6. 字符串元素到另一个字符串元素的赋值
多值赋值:分配多个值时,可以通过单个指令执行多个赋值。例如,a := b := c; 等同于以下表示法:b := c; 和 a := b; 您可以找到以下赋值:
  1. 标签的赋值
  2. 表达式的赋值
  3. 标签到两个结构元素的赋值
  4. 标签到两个数组元素的赋值
  5. 数组元素到两个标签的赋值
  6. 字符串元素到两个字符串元素的赋值
组合值赋值:在组合值赋值的情况下,加法(+)、减法(-)、乘法(*)和除法(/)运算符可以与赋值运算符结合使用。例如,a += b; 等同于以下表示法:a := a + b; 此外,您可以重复组合值赋值的赋值。例如,a += b += c *= d; 等同于以下表示法:c := c * d; 和 b := b + c; 和 a := a + b;

8、结束语

在本教程中,您学习了SCL元素、表达式功能、不同类型的表达式、运算符功能、不同类型的运算符、值赋值功能以及SCL元素中可用的不同类型的值赋值。

理解SCL编程元素对于开始使用结构化控制语言(SCL)的西门子PLC程序至关重要。


原文链接: Understanding Structured Control Language (SCL) Elements

汇智网翻译整理,转载请标明出处