quote:以下是引用motion在2009-03-20 10:13:38的发言:
1、我们先看数组赋值示例:
array1 : ARRAY [0..4] OF INT := [1, 3, 8, 4, 0];
array2 : ARRAY [0..5] OF DINT := [6 (7)];
array3 : ARRAY [0..10] OF INT := [2 (2(3),3(1)),0];
// is equivalent to [2(3),3(1),2(3),3(1)),0]
// Initialization as follows:
// Array elements 0, 1 with 3;
// Array elements 2, 3, 4 with 1;
// Array elements 5, 6 with 3;
// Array elements 7, 8, 9 with 1;
// Array element 10 with 0
再看TO#NIL么意思?
TO的数据类型有很多种,如:对于驱动轴其数据类型为“driveAxis”; 对于位置轴其数据类型为“posAxis”等等,更多对象的数据类型
请参看ST编程手册的 3.4.3 Technology object data types相关章节。
而“TO#NIL”是指任意对象,即未指定的对象。
Pos_Axis :ARRAY[1..2] OF posaxis := [2(TO#NIL)];
的意思是将数据类型为“posaxis”的两个未指定对象赋值给Pos_Axis[1], Pos_Axis[2]。
2、ST编程时:
SyncPosBuffer :STRUCT
SyncPos :ARRAY[0..SPB_max] OF LREAL;
SP_read :ARRAY[0..SPB_max] OF BOOL;
SP_entered :ARRAY[0..SPB_max] OF BOOL;
END_STRUCT;
对于数组的数量可以用变量来表示,但是在mcc中是不可以用此种方式来定义的,您不妨在MCC中建个数组类型的变量试试.