(1)SCL 编程语言 SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。S7-1200从V2.2版本开始支持SCL语言。 (2)语言元素 SCL 除了包含 PLC 的典型元素(例如,输入、输出、定时器或存储器位)外,还包含高级编程语言。
(3)程序控制语句 SCL 提供了简便的指令进行程序控制。例如,创建程序分支、循环或跳转。 (4)应用 因此,SCL 尤其适用于下列应用领域:
表达式将在程序运行期间进行运算,然后返回一个值。一个表达式由操作数(如常数、变量或函数调用)和与之搭配的操作符(如 *、/、+ 或 -)组成。通过运算符可以将表达式连接在一起或相互嵌套。 (1)运算顺序:表达式将按照下面因素定义的特定顺序进行运算
(2)表达式类型:不同的运算符,分别可使用以下不同类型的表达式
(1)算术表达式既可以是一个数字值,也可以是由带有算术运算符的两个值或表达式组合而成。算术运算符可以处理当前 CPU 所支持的各种数据类型。如果在该运算中有 2 个操作数,那么可根据以下条件来确定结果的数据类型:
(2)算术表达式的数据类型:下表列出了在算术表达式中可使用的数据类型 (3)示例 以下为一些算术表达式的示例: "MyTag1":= "MyTag2" * "MyTag3"; (1)关系表达式将两个操作数的值或数据类型进行比较,然后得到一个布尔值。如果比较结果为真,则结果为 TRUE,否则为 FALSE。关系运算符可以处理当前 CPU 所支持的各种数据类型。结果的数据类型始终为 Bool。编写关系表达式时,请注意以下规则:
(2)关系表达式的数据类型:下表列出了在关系表达式中可使用的数据类型/数据类型组: (3)示例 以下举例说明了一个关系表达式: IF a > b THEN c:= a; (1)逻辑表达式由两个操作数和逻辑运算符(AND、OR 或 XOR)或取反操作数 (NOT) 组成。逻辑运算符可以处理当前 CPU 所支持的各种数据类型。如果两个操作数都是 Bool 数据类型,则逻辑表达式的结果也为 Bool数据类型。如果两个操作数中至少有一个是位序列,则结果也为位序列而且结果是由最高操作数的类型决定。例如,当逻辑表达式的两个操作数分别是 Byte 类型和 Word 类型时,结果为 Word类型。逻辑表达式中一个操作数为 Bool类型而另一个为位序列时,必须先将 Bool类型的操作数显式转换为位序列类型。 (2)逻辑表达式的数据类型:下表列出了逻辑表达式中可使用的数据类型 (3)示例 以下为一个逻辑表达式的示例: IF "MyTag1" AND NOT "MyTag2" THEN c := a; (1)通过赋值运算,可以将一个表达式的值分配给一个变量。赋值表达式的左侧为变量,右侧为表达式的值。函数名称也可以作为表达式。赋值运算将调用该函数,并返回其函数值,赋给左侧的变量。赋值运算的数据类型取决于左边变量的数据类型。右边表达式的数据类型必须与该数据类型一致。赋值运算的计算按照从右到左的顺序进行。可通过以下方式编程赋值运算:
(2)示例: 下表举例说明了单赋值运算的操作: 下表举例说明了多赋值运算的操作: 下表举例说明了组合赋值运算的操作: (1)SCL寻址分为符号寻址与地址寻址:
(2)举例: (1)程序调用分为以下几类:
调用可以从指令列表或者项目树程序块中拖拽入程序编辑区域,也可以直接输入。 (2)FC调用:格式如下
FC调用需要确保所有形参都有对应实参。如果没有参数的FC也需要有括号。如下图所示的例子: (3)FB调用:格式如下 "背景数据块名称"(输入形参:=实参,输出形参=>实参,输入输出形参:=实参...) 一般情况下,FB的简单数据类型形参可以没有对应实参,复杂数据类型的输入、输出也可以没有对应实参,所以FB可以隐藏或不隐藏不出现的形参。如果没有参数的FB也需要有括号。如下图所示例子: 如下图所示,当FB的参数全部显示,在背景数据块右键可以激活"仅显示分配的参数";当FB的参数只显示了分配的参数时,在背景数据块右键可以激活"显示所有参数"。 (4)FB多重背景调用:格式如下
一般情况下,FB的简单数据类型形参可以没有对应实参,复杂数据类型的输入、输出也可以没有对应实参,所以FB可以隐藏或不隐藏不出现的形参。如果只有Static的FB也需要有括号。如下图所示例子: (5)对于定时器和计数器的SCL调用,有特殊的格式。 (1)新建块,选择OB/FC/FB后,设置语言为SCL,如下图所示: (2)在LAD、FBD中直接插入SCL语言段,这需要TIA PORTAL V14及其以上的版本,如下图所示: ①在项目树中,找到PLC,然后展开程序块,点击"添加新块" ②在弹出对话框中,选择块类型,可以是OB/FB/FC, ③选择语言为SCL (1)从TIA PORTAL V14以后,增加区间功能,使用指令: REGION 区间名称 程序文本 END_REGION 可以在指令中间增加需要编写的程序还不影响程序逻辑,并且支持嵌套。此外还可以像网络段一样收折叠来,如下图所示: 其中左边为区间总览,可以看出整体的结构 ①使得程序或总览全部展开 ②使得程序或总览全部折叠 ③全部展开/折叠是针对总览与程序还是只针对总览,图中为针对总览与程序 ④独立展开/折叠程序 (2)编辑器的空行,或者调用块的右侧均可以增加注释,如下图所示有两种方式注释: 第一种是://注释内容 第二种是:(/*注释内容*/) 可以在工具栏中利用按钮整段注释或取消注释。此外从TIA PORTAL V16开始支持多语言注释。 ①注释掉选中段落 ②对注释掉的段落取消注释 |
/1
|手机版|免责声明|本站介绍|工控课堂
( 沪ICP备20008691号-1 )
GMT+8, 2025-12-23 06:27 , Processed in 0.089006 second(s), 23 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.