[西门子] SCL程序,使用区间

[复制链接]
查看231 | 回复0 | 2024-6-28 20:35:52 | 显示全部楼层 |阅读模式
>
功能
在 SCL 中,可在区间内构建程序代码。由于集成了相关程序段而且可根据需要对区间进行灵活展开和折叠,因而程序代码更为清晰直观。在区间总览窗口中,可快速查看各个区间。区间总览窗口位于编程窗口旁边,可根据需要打开或关闭。
下图显示了区间总览窗口和编程窗口:


区间总览图中,还将显示存在语法错误的区间。这样,即可快速确定故障代码所在位置并进行相应修正。
要在区间中编写程序段,可将程序段包含在关键字“REGION”和“END_REGION”中。根据突出显示关键字中的设置,相应的关键字可以为“region”和“end_region”,也可以是“Region”和“End_Region”。这些关键字可根据当前的设置进行自动转换。要查找关键字“REGION”和“END_REGION”的配对部分,可单击“REGION”或“END_REGION”。系统将高亮突出显示这两个关键字。
可为每个区间指定一个名称,具有以下诸多优势:




  • 区间折叠时也会显示该名称。这样,可确保程序代码的清晰显示。
  • 在区间的总览窗口中,可轻松识别各个区间并快速导航到指定区间处。

  • 如果将该名称插入为多语言注释,则可将该名称翻译为其它项目语言。为此,需使用字符串“(/*”和“*/)”包围该名称。但只能将该名称作为插入为不可翻译的名称或多语言注释。请注意以下事项:


    另请参见:“使用多语言项目”

    • 不允许混用普通名称和多语言注释。
    • 多语言注释名称不能扩展为多行。
    • 如果区间名称为多语言注释,也可以复制区间。如果该名称已存在翻译,则也会应用于区间副本。如果之后更改了区间的名称,则将使用当前编辑语言进行更改。

指定块名称为可选操作。

语法
可通过以下语法,可在区间内构建程序段:





REGION <名称> 或 (/*<多语言注释的名称>*/)
<指令>
END_REGION



使用区间时,请注意以下信息:

  • 关键字 "REGION" 和 "END_REGION" 必须在一行的起始位置。这些关键字之前,仅允许插入空格。
  • 关键字“END_REGION”的所有字符将认作为注释信息,因而不影响程序的执行。
  • 所有指令的执行都必须在一个区间内完成。
  • 在 CASE 语句内,该指令可用区间进行包围。用于比较 CASE 语句的常量需位于区间之外。这些区间不得包含多个分支。
    以下示例显示了 CASE 语句中允许的区间用法:
    CASE <Expression> OF
    <Constant1> : REGION <Instructions1> END_REGION
    <Constant2> : REGION <Instructions2> END_REGION
    ELSE REGION <Instructions0> END_REGION
    END_CASE
    以下示例显示了 CASE 语句中不允许的区间用法:
    CASE <Expression> OF
    REGION <Constant1> : <Instructions1> END_REGION
    <Constant2> : REGION <Instructions2> END_REGION
    ELSE <Instructions0>
    END_CASE
    CASE <Expression> OF
    <Constant1> : <Instructions1> REGION
    <Constant2> : END_REGION <Instructions2>
    ELSE <Instructions0>
    END_CASE
    在这些情况下,区间内的常量将解释为可通过 GOTO 命令到达的跳转标签,但 CASE 本身不会执行这些跳转标记。
也可以对这些区间进行嵌套。但需确保其它区间中包含的区间可成功执行:



REGION <名称>
<指令>
REGION <名称>
<指令>
END_REGION
<指令>
REGION <名称>
REGION
<指令>
END_REGION
REGION <名称>
<指令>
END_REGION
END_REGION
END_REGION






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则