Skip to main content

变量

本节内容包括:

  • 基础级别变量声明的关键字

  • 扩展级变量声明的关键字

  • 基本级别数据类型

  • 扩展级别数据类型

可用的关键字和数据类型取决于 编程级别 的 POU。

在安全 FBD 编辑器中创建的 FBD 程序代码中,变量仅以名称(符号变量)的形式出现。您可以使用简单的名称,即符合 IEC 的标识符。在实现部分中引用变量的标识符必须在声明部分中声明(参见 变量声明编辑器) 的 POU。

输入助手中的变量类别

变量的类别如下: 输入助手

  • PROGRAM POU局部变量全局变量

  • FUNCTION_BLOCK POU局部变量

局部变量 类别涵盖局部声明部分的所有变量,包括 VAR_EXTERNAL

全局变量 类别包含应用程序的 GVL 的所有变量、所有映射的 I/O 以及逻辑 I/O 的所有隐式实例(参见: 输入/输出映射)。

基础级别变量声明的关键字

. 程序 POU 的变量 - 基础级别
  • VAR

  • VAR CONSTANT

  • VAR_EXTERNAL 用于通道变量和堆栈实例

  • VAR_EXTERNAL CONSTANT 仅允许来自 VAR_GLOBAL CONSTANT

. 功能块 POU 的变量 - 基础级别
  • VAR

  • VAR CONSTANT

  • VAR_INPUT

  • VAR_OUTPUT

. 关键词的含义
  • VAR:普通内部变量、POU 范围变量的声明

  • VAR_INPUT:输入变量的声明

  • VAR_OUTPUT:输出变量的声明

  • CONSTANT 修饰符用于声明符号常量

扩展级变量声明的关键字

. 程序 POU 的变量 - 扩展级别
  • VAR

  • VAR CONSTANT

  • VAR_EXTERNAL

  • VAR_EXTERNAL CONSTANT

. 功能块 POU 的变量 - 扩展级别
  • VAR

  • VAR CONSTANT

  • VAR_INPUT

  • VAR_OUTPUT

. 关键词含义:
  • VAR:普通内部变量、POU 范围变量的声明

  • VAR_INPUT:输入变量的声明

  • VAR_OUTPUT:输出变量的声明

  • VAR_EXTERNAL:声明已经在应用程序中声明的全局变量 VAR_GLOBAL,以便它们可以在 POU 中使用。

    全局变量具有 CONSTANT 修饰符必须声明为 VAR_EXTERNAL CONSTANT

  • CONSTANT 修饰符用于声明符号常量

. 已经存在的“全局变量”类别的变量可以声明为 VAR_EXTERNALVAR_EXTERNAL CONSTANT
  • 安全应用程序的 GVL 对象的全局变量。

    如果在实施部分中使用安全应用程序的 GVL 对象的变量,则会在声明部分自动将其声明为外部变量。

    根据 IEC,明确禁止在 POU 中使用未声明为“外部”的全局变量。

  • 逻辑 I/O(逻辑交换设备和安全现场设备)的映射变量

基本级别数据类型

. 基本级别数据类型
  • BOOL

  • INT:仅作为功能块调用的常量输入参数

  • DINT:仅作为功能块调用的常量输入参数

  • WORD:仅作为诊断目的的输出

  • TIME:仅作为功能块调用中的常量输入参数

  • SAFEBOOL

  • SAFEINT:仅作为调用中的常量函数块输入

  • SAFEDINT:仅作为功能块调用中的常量输入参数

  • SAFEWORD:仅作为功能块调用中的常量输入参数

  • SAFETIME:仅作为功能块调用中的常量输入参数

REAL 数据类型不可用。

扩展级别数据类型

开发人员可以使用以下数据类型在扩展编程级别实现 POU。

. 安全标准类型:
  • BOOL

  • BYTE:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • DINT

  • DWORD:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • INT

  • TIME:允许作为常量输入参数和局部变量。

    类型全局变量的外部声明 SAFETIME 是不允许的

  • WORD:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • REAL 数据类型

  • SAFEBOOL

  • SAFEBYTE:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • SAFEDINT

  • SAFEDWORD:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • SAFEWORD:用于预定义功能块和环境之间的编码信息(状态代码、诊断代码、控制代码)的交换

  • SAFEINT

  • SAFETIME;允许作为常量输入参数和局部变量。

    类型全局变量的外部声明 SAFETIME 如果它们既不是符号常量也不是导入的逻辑 I/O,则是不允许的。

REAL 数据类型不可用。