跳到主要内容

访问数组、结构体和块中的变量

访问数组元素

ST 语法

<数组变量的名称> [<以逗号分隔的维度索引列表>]

<数组变量的名称>

数组变量的名称

例子: aiCounter

<以逗号分隔的维度索引列表>

每个维度一个索引,以便识别数组的一个元素

例子: 2

索引从索引最小值到索引最大值有效。例子: 0..9

示例

  1. 一维数组访问
//Declaration
VAR
aiCounter : ARRAY[0..9] OF INT;
iLocalVariable : INT;
END_VAR

// Implementation
iLocalVariable := aiCounter[2];
  1. 二维数组访问
//Declaration
VAR
aiCardGame : ARRAY[1..2, 3..4] OF INT;
iLocal_1 : INT;
END_VAR

//Implementation
iLocal_1 := aiCardGame[1, 3];
提示

更多相关信息,请参阅ARRAY OF

访问结构体

ST语法

<结构变量名称>.<组件名称>

<结构变量名称>

例子: sPolygon

<组件名称>

例子: aiStart

示例

//Declaration type
TYPE S_POLYGONLINE :
STRUCT
aiStart : ARRAY[1..2] OF INT := [-99, -99];
aiPoint1 : ARRAY[1..2] OF INT;
aiPoint2 : ARRAY[1..2] OF INT;
aiPoint3 : ARRAY[1..2] OF INT;
aiPoint4 : ARRAY[1..2] OF INT;
aiEnd : ARRAY[1..2] OF INT := [99, 99];
END_STRUCT
END_TYPE

//Declaration structure variable
VAR
sPolygon : S_POLYGONLINE;
iPoint : INT;
END_VAR

//Implementation
iPoint := sPolygon.aiPoint1[1];

访问 POU 中的变量

ST语法

<POU名称>.<变量名称>

<POU名称>

功能块实例的名称(FUNCTION_BLOCK)或程序(PROGRAM

例子: fbController

<变量名称>

POU 的变量

例子: xStart

示例

FUNCTION_BLOCK FB_Controller
VAR_INPUT
xStart : BOOL;
END_VAR
VAR_OUTPUT
END_VAR
VAR
ControlDriveA : S_CONTROL;
END_VAR
IF xStart = TRUE THEN
//Symbolic bit access
ControlDriveA.bitEnableOperation := TRUE;
END_IF

PROGRAM PLC_PRG
fbController : FB_Controller;
END_VAR
fbController();
fbController.xStart := TRUE;