0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

各种逻辑块中声明的变量或参数类型

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-03-08 11:14 次阅读

每类本地变量或参数,都有用各自关键字对标识的自己的声明子域。每个子域包含允许的详细的声明子域,子域可按任何顺序定位。

下表显示能够在各种逻辑块中声明的变量或参数类型。

变量作为:
静态变量

VAR
. . .
END_VAR


临时变量

VAR_TEMP
. . .
END_VAR

块参数作为:
输入参数

VAR_INPUT
. . .
END_VAR


输出参数

VAR_OUTPUT
. . .
END_VAR


输入/输出参数

VAR_IN_OUT
. . .
END_VAR

静态变量

静态变量是本地变量,块运行时其值被保留。用来保存功能块的值,并包含在相应实例数据块中。

句法(Syntax)

静态变量在VAR / END_VAR声明区内声明。该声明子域是FB声明部分的一部分。编译之后,该子域和块参数子域决定了指定的实例数据块的结构。

在该子域能够:

  • 建立变量,指定变量的数据类型和初始化变量。

  • 如果要在当前FB中作为本地实例调(其他的)FB,则将一个被调用的FB声明为静态变量。

例子(Example)


VAR
RUN :INT;
MEASARR :ARRAY [1..10] OF REAL;
SWITCH :BOOL;
MOTOR_1,MOTOR_2:FB100;// 实例声明

END_VAR

存取(Access)

从如下代码部分存取变量:

  • 块内存取(Access within the block):在功能块的代码部分能够存取在声明部分声明的变量。详细的解释在标题为"赋值语句(Value Assignment)"节。

  • 用实例DB进行外部存取(External access using the instance DB):索引存取能够从其他块存取变量,如DBx.变量。

临时变量

Temporary Variables

临时变量在本地属于逻辑块,不产生静态内存区域,他们位于CPU的堆栈里。本块正在运行时,其值才被保留。临时变量不能从声明它的块外存取。一个OB、FB或FC首次执行前,临时变量的值是不确定的。也不能被初始化。

如果只要求在OB、FB或者FC执行时记录中间结果,可以声明临时数据。

句法(Syntax)

临时变量在VAR_TEMP / END_VAR声明部分里声明。该声明部分是FB、FC或OB的一部分。通过变量声明以声明变量名和数据类型。

例子(Example)

VAR_TEMP
BUFFER 1: ARRAY [1..10] OF INT ;
AUX1, AUX2: REAL ;
END_VAR

存取(Access)

变量总是从逻辑块的代码部分存取,变量是在声明部分声明的(内部存取)。参见题为“赋值语句(Value Assignment)”节。

块参数

Block Parameters

参数是占位符,块被实际地调用时才指定一个值。在块里声明的占位符认为是指派了作为实际参数的值的形式变量。且参数提供了一个块间交换信息的机制。

块参数的类型(Types of Block Parameters)

  • 被实际参数指定的形式输入参数(数据流入块)。

  • 形式输出参数用来传递输出参数(数据 从块流出)。

  • 有输入和输出参数功能的形式输入/输出参数。

句法(Syntax)

在功能块或函数的声明部分制作形式参数的声明,根据在三种声明子域内的参数类型组合参数。在变量声明中,指定参数名和数据类型。初始化只可能对一个FB的输入和输出参数。

声明形式参数时,不仅只能用基本的、复杂的和用户定义数据类型,也可用参数数据类型。

例子(Example)

VAR_INPUT// 输入参数
MY_DB: BLOCK_DB ;
CONTROLLER: DWORD ;
TIMEOFDAY: TIME_OF_DAY ;
END_VAR

VAR_OUTPUT// 输出参数
SETPOINTS: ARRAY [1..10] of INT ;
END_VAR

VAR_IN_OUT// 输入/输出参数
SETTING : INT ;
END_VAR

存取(Access)

块参数可从逻辑块的代码部分进行存取如下:

  • 内部存取: 从在其声明部分已经声明该参数的逻辑块的代码部分存取。在题为"赋值语句(Value Assignment)"和"表达式、操作和地址(Expressions, Operations and Addresses)"节有解释。

  • 用实例数据块外部存取: 用特定的DB能够存取功能块的块参数。


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62588
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68563
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28365

原文标题:Block Parameters

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    变量声明和定义有什么区别和联系

    变量声明和定义是编程的两个重要概念,它们在语法和语义上有一些区别和联系。在本文中,我将详细介绍变量声明和定义之间的区别和联系。 首先,
    的头像 发表于 12-07 16:14 1125次阅读

    变量声明最佳实践?

    所以我们开始编写32位和16位代码,并过渡到MPLAB X和XC编译器。我想到的一个主题是声明变量的最佳实践。常规IpType。h类型。h pr STDIN。
    发表于 09-30 12:01

    Verilog 变量声明与数据类型

    Verilog 变量声明与数据类型二上节介绍了wire,reg数据类型及其用法,并对变量定义
    发表于 08-06 09:21

    Verilog 变量声明与数据类型

    必须先声明后使用,声明变量的数据类型也就确定了。变量声明是模块(module)内惟一的,不能在
    发表于 08-10 14:01

    Python的变量类型详细资料说明

    Python 变量赋值不需要类型声明。每个变量在内存创建,都包括
    发表于 08-24 16:47 3次下载
    Python的<b class='flag-5'>变量</b><b class='flag-5'>类型</b>详细资料说明

    Python的变量类型详细说明

    变量赋值Python 变量赋值不需要类型声明。 每个变量在内存
    发表于 01-15 16:29 1次下载
    Python的<b class='flag-5'>变量</b><b class='flag-5'>类型</b>详细说明

    编程语言SCLANY数据类型

    了 ANY 指针的结构: 在SCL,能够声明ANY数据类型变量如下: 作为的形式参数;当
    的头像 发表于 05-25 11:02 5183次阅读
    编程语言SCL<b class='flag-5'>中</b>ANY数据<b class='flag-5'>类型</b>

    西门子SCL逻辑声明变量参数类型

    每类本地变量参数,都有用各自关键字对标识的自己的声明子域。每个子域包含允许的详细的声明子域,子域可按任何顺序定位。 下表显示能够在
    的头像 发表于 08-25 18:07 9765次阅读

    关于S7-1500访问声明变量内的数据区域

    S7-1500 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明变量。其优势在于无需指令即可根据需要实现
    的头像 发表于 10-08 11:26 1724次阅读

    浅析python的变量类型

    python不需要事先声明变量。 python的变量类型是在运行过程自动决定的,不需要代码声明
    的头像 发表于 03-10 10:11 810次阅读
    浅析python的<b class='flag-5'>变量</b><b class='flag-5'>类型</b>

    C语言如何定义结构体类型变量

    在定义了结构体变量后,系统会为之分配内存单元。根据结构体类型包含的成员情况,在Visual C++占63个字节。 * 这种声明方式是
    的头像 发表于 03-10 15:35 1326次阅读

    西门子博途中声明STRUCT数据类型变量

    声明 STRUCT 数据类型变量,请按以下步骤操作。
    的头像 发表于 06-21 09:32 4132次阅读

    ARRAY 数据类型变量

    要求 全局数据已打开。 操作步骤 要声明一个 ARRAY 数据类型变量,请按以下步骤操作: 在“名称”(Name) 列,输入
    的头像 发表于 07-06 11:08 1106次阅读

    各种逻辑声明变量参数类型

    每类本地变量参数,都有用各自关键字对标识的自己的声明子域。每个子域包含允许的详细的声明子域,子域可按任何顺序定位。
    的头像 发表于 08-17 11:00 501次阅读

    C语言编程时,各种类型变量该如何初始化?

    不同的方式。 1. 声明和赋值分开初始化: 这种方式将变量声明与赋值分开,在声明时分配内存空间,再在后续代码中进行赋值。 ```c int number; //
    的头像 发表于 12-07 13:53 1216次阅读