SCL(StructuredControlLanguage,结构化控制语言)是一种基于PASCAL的高级编程语言。这种语言基于标准DINEN-3(国际标准为IEC-3)。
根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL编程语言实现了该标准中定义的ST语言(结构化文本)的PLCopen初级水平。
1.新建SCL
有两种方式新建SCL:
第一种是在新建块,选择OB/FC/FB后,设置语言为SCL,如图所示。
第二种是在LAD、FBD中直接插入SCL语言段,这需要TIAPORTALV14及其以上的版本,如图所示。
新建SCL块
①在项目树中,找到PLC,然后展开程序块,点击"添加新块"
②在弹出对话框中,选择块类型,可以是OB/FB/FC,
③选择语言为SCL
在LAD中插入SCL段
2.区间与注释
(1)区间
从TIAPORTALV14以后,增加区间功能,使用指令:
REGION区间名称
程序文本
END_REGION
可以在指令中间增加需要编写的程序还不影响程序逻辑,并且支持嵌套。此外还可以像网络段一样收折叠来,如图所示。
区域
其中左边为区间总览,可以看出整体的结构
①使得程序或总览全部展开
②使得程序或总览全部折叠
③全部展开/折叠是针对总览与程序还是只针对总览,图中为针对总览与程序
④独立展开/折叠程序
(2)注释
编辑器的空行,或者调用块的右侧均可以增加注释,如图8所示有两种方式注释:
第一种是://注释内容
第二种是:(/*注释内容*/)
可以在工具栏中利用按钮整段注释或取消注释。此外从TIAPORTALV16开始支持多语言注释,使用指令(*多语言注释内容*)。
注释
①注释掉选中段落
②对注释掉的段落取消注释
3.程序控制指令
程序控制指令是SCL编程的基础,接近高级语言的指令,虽然这些功能通过LAD/FBD也可以实现,但使用SCL编写会更加方便,逻辑条理也更加清晰。
(1)IF:条件语句
IF...THEN...分支:
IF条件
THEN语句1
END_IF;
IF...THEN...ELSE...分支:
IF条件
THEN语句1
ELSE语句2
END_IF;
IF...THEN...ELSIF...分支:
IF条件1
THEN语句1
ELSIF条件2
THEN语句2
END_IF;
(2)CASE:创建多路分支
CASE变量OF
常数1:语句1;
常数2:语句2;
......
常数n:语句n;
ELSE语句;
END_CASE;
(3)FOR:计数循环
FOR运行变量:=起始值TO结束值BY增量DO
语句;
END_FOR;
如果增量为1,可以简写为:
FOR运行变量:=起始值TO结束值DO
语句;
END_FOR;
(4)WHILE:满足条件时执行
WHILE条件
DO语句;
END_WHILE;