声明数组
什么是数组
数组是一种数据结构,用于存储多个相同类型的数据元素。数组中的每个元素通过索引(下标)来访问。数组在PLC编程中常用于:
- 存储批量数据(如传感器读数、控制参数等)
- 实现数据缓冲区
- 处理表格数据
- 实现队列、栈等数据结构
数组的基本语法
声明格式
数组名: ARRAY[起始索引..结束索引] OF 数据类型;
语法说明
| 组成部分 | 说明 | 示例 |
|---|---|---|
ARRAY | 关键字,声明数组类型 | ARRAY[0..5] |
[起始索引..结束索引] | 数组的索引范围 | [0..9] 表示10个元素 |
OF | 关键字,指定数组元素类型 | OF INT |
数据类型 | 数组元素的数据类型 | INT, REAL, BOOL 等 |
索引规则
- 索引可以是整数常量或表达式
- 索引范围可以是递增或递减(通常使用递增)
- 最常用的索引起始值是
0(零基索引),也可以从1开始
声明程序数组变量
在程序(PROGRAM)内部声明数组变量。
基本示例
PROGRAM DEMO_PLC_PRG1
VAR
(* 声明一个包含2个整数元素的数组,索引为0和1 *)
x3_value: ARRAY[0..1] OF INT;
(* 其他变量 *)
x1_value: INT := 12;
x2_value: BOOL;
END_VAR
(* 使用数组 *)
x3_value[0] := 100; (* 给第一个元素赋值 *)
x3_value[1] := 200; (* 给第二个元素赋值 *)
END_PROGRAM
更多示例
PROGRAM ArrayDemo
VAR
(* 整型数组,包含10个元素 (索引0-9) *)
intArray: ARRAY[0..9] OF INT;
(* 实型数组,包含5个元素 (索引0-4) *)
realArray: ARRAY[0..4] OF REAL;
(* 布尔型数组,从索引1开始 *)
boolArray: ARRAY[1..8] OF BOOL;
(* 字符数组 *)
charArray: ARRAY[0..15] OF CHAR;
END_VAR
END_PROGRAM
声明全局数组变量
在CONFIGURATION中声明全局数组变量,可在整个项目中访问。
基本示例
CONFIGURATION config_0
VAR_GLOBAL
(* 全局布尔变量 *)
g_var_in_program: BOOL := TRUE;
(* 声明一个包含4个实数元素的全局数组 *)
g_realArray: ARRAY[0..3] OF REAL;
(* 全局整型数组,包含100个元素 *)
g_largeArray: ARRAY[0..99] OF INT;
END_VAR
RESOURCE resource_0 ON PLC
TASK task_0(INTERVAL := T#10ms, PRIORITY := 1);
PROGRAM program_0 WITH task_0;
END_RESOURCE
END_CONFIGURATION