Skip to main content

变量配置 - VAR_CONFIG

使用“变量组态”将变量从功能块映射到过程映像。在功能块中声明时,将变量分配给设备的输入/输出,而无需指定完整地址。稍后在全局变量列表中为应用程序的所有功能块实例集中指定确切地址 VAR_CONFIG-声明。这个全局变量列表与 VAR_CONFIG声明称为变量配置。

重要

显示直接分配给 I/O 地址的变量的变化 CODESYS 直接在过程映像中。显示通过变量配置映射的变量的变化 CODESYS 仅在相关任务结束时。

在功能块中声明变量

在功能块中声明变量时,声明关键字之间的变量 VAREND_VAR.这样做时,您将不完整的地址分配给变量。用一个标记这些不完整的地址 *.

句法:

<Bezeichner> AT %<I\|Q>*:<Datentyp>;

19. 例子

定义了 2 个本地 I/O 变量:输入变量 xLocIn 和输出变量 xLocOut.

FUNCTION_BLOCK locio
VAR
  xLocIn AT %I*: BOOL := TRUE;
  xLocOut AT %Q*: BOOL;
END_VAR


地址最终在全局变量列表中的变量配置中定义。

在用作变量配置的全局变量列表中,输入变量的声明以及关键字之间的确切地址 VAR_CONFIGEND_VAR 一。

VAR_CONFIG- 必须使用完整的实例路径指定变量,每个 POU 和实例名称用句点分隔。声明必须包含一个地址,其类别(输入/输出)与功能块中未完全指定的地址(%I*、%Q*)的类别相匹配。数据类型也必须匹配。

句法:

<instance variable path> AT %<I\|Q><location>: <data type>;

如果路径的实例不存在,则会出现错误消息。 CODESYS 如果您使用不完整地址声明的变量没有地址配置,也会引发错误。

20. 例子

下面使用功能模块 locio 上面的例子是在一个程序中:

PROGRAM PLC_PRG
VAR
  locioVar1: locio;
  locioVar2: locio;
END_VAR

全局变量列表中的正确变量配置将如下所示,例如:

VAR_CONFIG
  PLC_PRG.locioVar1.xLocIn AT %IX1.0 : BOOL;
  PLC_PRG.locioVar1.xLocOut AT %QX0.0 : BOOL;
  PLC_PRG.locioVar2.xLocIn AT %IX1.0 : BOOL;
  PLC_PRG.locioVar2.xLocOut AT %QX0.3 : BOOL;
END_VAR


创建变量配置

要求:您已打开一个项目,该项目具有带有现场设备的控制器配置。该项目包含一个程序,例如 PLC_PRG和一个功能块,例如 func1.现场设备具有输入和输出。在声明编辑器的选项中选择文本视图。

将变量分配给功能块中地址不完整的设备 I/O,然后创建变量配置。

  1. 在设备树中,双击功能块,例如 func1.

    块编辑器打开。

  2. 在声明部分,在关键字之间键入 VAREND_VAR 一: xLocIn AT %I*: BOOL := TRUE; 到下一行 XLocOut AT %Q*:BOOL;

    你有一个输入变量 xLocIn 声明和这个到不完整的输入地址 %I* 分配给现场设备。声明的输出变量的输出地址不完整 %Q* 分配的。

  3. 点击对象 PLC_PRG 在设备树中并插入程序的声明部分 VAREND_VAR 例如,输入以下声明:

    locioVar1: func;

    locioVar2: func;

  4. 选择对象 应用 在设备树中,选择上下文菜单命令 添加对象 → 全局变量列表 并在对话框中单击 添加全局变量列表 在按钮上 添加.

    全局变量列表被添加到设备树并打开其编辑器。

  5. 更改关键字 VAR_GLOBALVAR_CONFIG 大约。

  6. 选择命令 声明 → 添加所有实例路径.

    添加了以下实例路径:

    PLC_PRG.logioVar1.xLocIn AT %I*;
    PLC_PRG.logioVar2.xLocIN AT %I*;
    PLC_PRG.logioVar1.xLocOut AT %Q*;
    PLC_PRG.logioVar2.xLocOut AT %Q*;
  7. 现在替换不完整的地址详细信息 %I*%Q* 带有确切的完整地址。