西门子SCL编程笔记(4)---语句和结构

前面的文章我们介绍了西门子SCL编程的变量和表达式,今天这篇文章,我们来介绍下SCL的语句与结构。
在这里插入图片描述

语句在计算机科学中被称为"Satement"。它是一条能被执行的代码,其作用是向计算机/PLC系统发出操作指令,要求执行相应的操作。语句经过编译后会产生若干条机器指令。

在很多高级语言中,代码必须提供某种符号来表示一条语句,以便编译器能能识别并编译。比如,C语言的每一条语句末尾都要加英文分号(;),而VB则以回车换行符来表示一条语句;西门子SCL的语法源自PASCAL,其每条语句的末尾也要加英文分号(;)。
语句有简单与复杂之分。

1-简单语句
简单语句用来组成顺序结构,即自上而下的顺序代码。
赋值语句属于简单语句。
例如下面的代码,将形参E_START和E_STOP赋值给临时变量。
在这里插入图片描述

图片中的":="符号表示赋值;

赋值语句的右边也可以是表达式,例如下面的代码:
在这里插入图片描述
第一条语句将TMP_A乘以3,然后赋值给TMP_B;
第二条语句将TMP_A与TMP_B相加,然后赋值给TMP_C;

2-复杂语句
复杂语句可以构成选择结构或循环结构。
1、选择结构
选择结构用来根据某些条件来选择性的执行代码。
选择结构包括IF语句和CASE语句。
1.1 IF语句
IF语句用来判断某种条件是否满足。如果满足的话,则执行其内部的代码。
比如下面的图片代码:
在这里插入图片描述

如果E_CODE的值为1,则将TMP_A赋值为1;TMP_B赋值为2;
上述代码中,如果E_CODE的值不等于1,则不执行其内部的语句;程序会跳转到END_IF之后的语句继续执行;
如果希望在E_CODE的值不等于1的情况下,执行某些语句,可以使用ELSE关键词,如下图:
在这里插入图片描述

上图中,如果E_CODE的值等于1,则将TMP_A赋值为1,TMP_B赋值为2;否则的话,将TMP_A赋值为100,TMP_B赋值为200;

IF语句的内部还可以嵌套IF语句,比如下面的代码:
在这里插入图片描述

如果E_CODE的值等于1,则将TMP_A赋值为1,TMP_B赋值为2;在这个条件下,如果E_CONDTION的值等于100,则将TMP_C赋值为100;
如果要判断的分枝比较多,比如,E_CODE的值等于1、2、3、4等要执行不同的代码,则可以使用CASE语句;

1.2 CASE语句
CASE语句用来完成多分枝的选择判断,比如下面的代码:
在这里插入图片描述

当E_CODE的值等于1时,将TMP_A赋值为1,TMP_B赋值为2;
当E_CODE的值等于2或者3或者4时,将TMP_A赋值为10,TMP_B赋值为20;
当E_CODE的值等于5时,将TMP_A赋值为100,TMP_B赋值为200;
其它情况下,将TMP_A赋值为30,TMP_B赋值为40;

2、循环结构
循环结构可以在某种条件下反复执行某段代码,包括FOR语句、WHILE语句和REPEAT语句。
2.1 FOR语句
FOR语句用于以次数确定的方式来执行某段代码。比如下面的图片:
在这里插入图片描述

该代码使用TMP_COUNTER作为计数变量,其起始值被赋值为1,每执行一次语句TMP_C:=TMP_C+1,TMP_COUNTER的值自动加1,直到其值大于1000跳出循环;在FOR语句中,可以通过关键词BY修改计数器的步值,即计数器每次自动增加多少。
例如下面的代码:
在这里插入图片描述

该代码将TMP_COUNTER的起始值赋值为1,每执行一次语句TMP_C:=TMP_C+1,
TMP_COUNTER的值自动加2,直到其值大于1000跳出循环;步值可以为负数,表示每执行一次循环,循环计数器减去相应的数值。
例如下面的代码:
在这里插入图片描述

循环计数器TMP_COUNTER的值从1000开始,每执行一次循环,其值减2;直到小于1跳出循环。

2.2 WHILE语句
WHILE语句适用于次数不确定的循环。
比如下面的代码:
在这里插入图片描述

只要E_CONDITON的值等于1,将无限次循环执行句:TMP_C:=TMP_C+1;如果我们真的将这段代码下载到CPU中执行,可能会产生很糟糕的结果。因为一旦E_CONDITON=1的条件始终都被满足,CPU将陷入死循环。为了避免进入死循环,要确保E_CONDITON在某些情况下不会等于1,另外,为了在某种情况下能退出循环,可以使用EXIT语句;
EXIT语句可以立即退出当前的循环,比如下面的代码:
在这里插入图片描述

当TMP_C达到最大值32767时,退出WHILE循环。

2.3 REPEAT语句
REPEAT 语句用来重复执行某段代码直到满足某种条件退出循环。
例如下面的代码:
在这里插入图片描述

重复执行TMP_C:=TMP_C+1直到TMP_C的值等于3000.
同样可以使用EXIT语句退出REPEAT循环。
循环语句的内部也可以再嵌套循环语句,限于篇幅就不展开描述了。
好了,西门子SCL语言的语句与结构就先介绍到这里。在此声明一下,我也是看的北岛李工的文章

  • 39
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
西门子S7-1200 SCL编程指令手册.pdf》是一本详细介绍了西门子S7-1200系列PLC控制器的SCL(Structured Control Language,结构化控制语言编程指令的手册。SCL是一种高级编程语言,可以在S7-1200 PLC中实现复杂的控制算法和逻辑。该手册包含了SCL编程指令的详细说明和使用方法,对于PLC编程人员来说是非常宝贵的参考资料。 手册的内容主要分为几个部分:基本概念介绍、语法规则、数据类型、基本指令、控制指令等。首先,手册介绍了SCL编程的基本概念,如变量、数据类型、运算符等,帮助读者更好地理解SCL编程的基本原理。接着,手册详细说明了SCL的语法规则,包括变量声明、循环语句、条件语句等,让读者了解如何正确编写SCL程序。 手册还列举了SCL编程中常用的数据类型,如整数、浮点数、字符串等,并提供了相应数据类型的定义和使用方法。此外,手册还介绍了一些基本指令,例如赋值指令、运算指令、输入输出指令等,读者可以通过这些指令完成基本的算术运算和数据处理。此外,手册还介绍了一些常用的控制指令,如循环控制、条件控制等,帮助读者更好地掌握SCL编程。 总之,《西门子S7-1200 SCL编程指令手册.pdf》对于想要学习和掌握S7-1200 PLC的SCL编程的人来说是一本非常有价值的资料。通过学习该手册,读者可以了解SCL编程的基本概念和语法规则,掌握常用的编程指令,从而编写出高效、可靠的PLC控制程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_工控_小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值