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

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

3天内不再提示

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

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

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

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

变量作为:
静态变量
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能够存取功能块的块参数。

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

    关注

    11

    文章

    1398

    浏览量

    31482
  • 代码
    +关注

    关注

    30

    文章

    4557

    浏览量

    66834
  • 变量
    +关注

    关注

    0

    文章

    597

    浏览量

    28114

原文标题:Block Parameters

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

收藏 人收藏

    评论

    相关推荐

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

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

    变量声明最佳实践?

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

    基本Verilog变量有线网类型和寄存器类型

    逻辑,应在敏感信号表列出所有的输入信号;7、所有的内部寄存器都应该可以被复位;8、用户自定义原件(UDP元件)是不能被综合的。一:基本Verilog变量有线网
    发表于 07-29 06:10

    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>详细说明

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

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

    S7-1200使用AT覆盖变量

    S7-1200 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明变量。这样可以选择对不同数据
    的头像 发表于 03-11 11:10 3381次阅读

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

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

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

    临时变量在本地属于逻辑块,不产生静态内存区域,他们位于CPU的堆栈里。本块正在运行时,其值才被保留。临时变量不能从声明它的块外存取。一个OB、FB或FC首次执行前,临时
    的头像 发表于 03-08 11:14 653次阅读

    浅析python的变量类型

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

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

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

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

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

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

    C语言编程时,各种类型变量该如何初始化? 在C语言中,每个变量都需要在使用之前进行初始化。初始化是为变量分配内存空间并赋予初始值的过程。C语言提供了不同的初始化方式,根据
    的头像 发表于 12-07 13:53 599次阅读