热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎样才能跳出if语句_西门子SCL编程入门教程连载(4)语句与结构

前面的文章我们介绍了西门子SCL编程的变量和表达式,今天这篇文章,我们来介绍下SCL的语句与结构。语句在计算机科学中被称为Satement。它是一条

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

125c3b8e1e5f532cb1ca80ba12350397.png

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

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

语句有简单与复杂之分。

1-简单语句

简单语句用来组成顺序结构,即自上而下的顺序代码。

赋值语句属于简单语句。

例如下面的代码,将形参E_START和E_STOP赋值给临时变量。

39984eefe72614feef1300e1b58d616b.png

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

赋值语句的右边也可以是表达式,例如下面的代码:

7772850f1d2dc627ab2b16362e0892de.png

第一条语句将TMP_A乘以3,然后赋值给TMP_B;

第二条语句将TMP_A与TMP_B相加,然后赋值给TMP_C;

2-复杂语句

复杂语句可以构成选择结构或循环结构。

1、选择结构

选择结构用来根据某些条件来选择性的执行代码。

选择结构包括IF语句和CASE语句。

1.1 IF语句

IF语句用来判断某种条件是否满足。如果满足的话,则执行其内部的代码。

比如下面的图片代码:

05e962e2c2cd6022ae9dc16e9f63cd9b.png

如果E_CODE的值为1,则将TMP_A赋值为1;TMP_B赋值为2;

上述代码中,如果E_CODE的值不等于1,则不执行其内部的语句;程序会跳转到END_IF之后的语句继续执行;

如果希望在E_CODE的值不等于1的情况下,执行某些语句,可以使用ELSE关键词,如下图:

53ca54099020116728a220d8204042e4.png

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

IF语句的内部还可以嵌套IF语句,比如下面的代码:

4ea148979bc9d4026a1f6db49d70d074.png

如果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语句用来完成多分枝的选择判断,比如下面的代码:

3d5e22fb02b2ad4e2ae2d27c2aed2a13.png

当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语句用于以次数确定的方式来执行某段代码。比如下面的图片:

de311804c689d10b46d51151ce792f20.png

该代码使用TMP_COUNTER作为计数变量,其起始值被赋值为1,每执行一次语句TMP_C:=TMP_C+1,TMP_COUNTER的值自动加1,直到其值大于1000跳出循环;

在FOR语句中,可以通过关键词BY修改计数器的步值,即计数器每次自动增加多少。

例如下面的代码:

2dc6ddaa4fdc73751ffb60c8f0385c49.png

该代码将TMP_COUNTER的起始值赋值为1,每执行一次语句TMP_C:=TMP_C+1,TMP_COUNTER的值自动加2,直到其值大于1000跳出循环;

步值可以为负数,表示每执行一次循环,循环计数器减去相应的数值。

例如下面的代码:

0a7e6959dd55e52ed749a109aab1f976.png

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

2.2 WHILE语句

WHILE语句适用于次数不确定的循环。

比如下面的代码:

d75f1b2779d91608d949b8b54312249b.png

只要E_CONDITON的值等于1,将无限次循环执行句:TMP_C:=TMP_C+1;

如果我们真的将这段代码下载到CPU中执行,可能会产生很糟糕的结果。

因为一旦E_CONDITON=1的条件始终都被满足,CPU将陷入死循环。

为了避免进入死循环,要确保E_CONDITON在某些情况下不会等于1。

另外,为了在某种情况下能退出循环,可以使用EXIT语句;

EXIT语句可以立即退出当前的循环,比如下面的代码:

051027a4f3a62e84758f2614c2e4d502.png

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

2.3 REPEAT语句

REPEAT 语句用来重复执行某段代码直到满足某种条件退出循环。

例如下面的代码:

9654dd80d18b70b76daee61735ea44ba.png

重复执行TMP_C:=TMP_C+1直到TMP_C的值等于3000.

同样可以使用EXIT语句退出REPEAT循环。

循环语句的内部也可以再嵌套循环语句,限于篇幅就不展开描述了。

好了,西门子SCL语言的语句与结构就先介绍到这里。如果你喜欢这篇文章,可以登录(www.founderchip.com)下载本文PDF版本。



推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文详细介绍了在 Windows 2000 系统中启用 TELNET 服务时需要注意的 NTLM 配置问题,帮助用户解决常见的身份验证失败错误。 ... [详细]
author-avatar
may
额,有趣的灵魂终会相遇
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有