找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3427|回复: 0
打印 上一主题 下一主题
收起左侧

SCL编程入门

[复制链接]
跳转到指定楼层
楼主
SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。
本教程虽然使用的是S7-1500系列的PLC,但实际上是面向S7-1200的用户,在1500系列的PLC中,笔者更希望使用STL来对应他优越的计算处理能力。在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进行变量地址的访问,变量表中的变量一般使用变量名称进行访问。
创建的SCL块儿可以在观测栏中显示变量的地址,如下,为示例程序:

在SCL中,:= 表示赋值。
二、常量,变量及相关指令
(1)常量及变量的声明
在博图中,可以在代码区进行变量的声明,也可以在程序块内部进行变量声明。具体如下图:
变量声明区有如下区别:
无论是FC还是FB块,都是函数块

    条件语句
    IF语句
    使用“条件执行”指令,可以根据条件控制程序流的分支。该条件是结果为布尔值(TRUE 或 FALSE)的表达式。可以将逻辑表达式或比较表达式作为条件。
    执行该指令时,将对指定的表达式进行运算。如果表达式的值为 TRUE,则表示满足该条件;如果其值为 FALSE,则表示不满足该条件。
    根据分支的类型,可以对以下形式的指令进行编程:
    IF 分支:
    IF <condition> THEN <instructions>END_IF;

    如果满足该条件,则将执行 THEN 后编写的指令。如果不满足该条件,则程序将从 END_IF 后的下一条指令开始继续执行。

    IF 和 ELSE 分支:

    IF <condition> THEN <instructions1>ELSE <Instructions0>END_IF;

    如果满足该条件,则将执行 THEN 后编写的指令。如果不满足该条件,则将执行 ELSE 后编写的指令。程序将从 END_IF 后的下一条指令开始继续执行。IF、ELSIF 和 ELSE 分支:

    IF <condition1> THEN <instructions1>ELSIF <condition2> THEN <instruction2>ELSE <Instructions0>END_IF;

    如果满足第一个条件(<条件 1>),则将执行 THEN 后的指令(<指令 1>)。执行这些指令后,程序将从 END_IF 后继续执行。如果不满足第一个条件,则将检查第二个条件(<条件 2>)。如果满足第二个条件(<条件 2>),则将执行 THEN 后的指令(<指令 2>)。执行这些指令后,程序将从 END_IF 后继续执行。如果不满足任何条件,则先执行 ELSE 后的指令(<指令 0>),再执行 END_IF 后的程序部分。在 IF 指令内可以嵌套任意多个 ELSIF 和 THEN 组合。可以选择对 ELSE 分支进行编程。IF 指令的语法如下所示:

    IF "Tag_1" = 1THEN "Tag_Value" := 10;ELSIF "Tag_2" = 1THEN "Tag_Value" := 20;ELSIF "Tag_3" = 1THEN "Tag_Value" := 30;ELSE "Tag_Value" := 0;END_IF;

    后续帖子会慢慢讲述指令的运用
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表