数组中元素的数量
此函数得出数组第1维、第2维和第3维的元素数量。
输入
要确定元素数量的输入变量(数组维度1、2或3)
输出
得出第一维中的元素数量
得出第二维中的元素数量
得出第三维中的元素数量
如果输入Array3D为一维数组:
输入Array3D的数组中的元素数量在输出NrOfElem1中得出。
值1返回到输出NrOfElem2。
值1返回到输出NrOfElem3。
如果输入Array3D为二维数组:
从输入Array3D中的数组,在输出NrOfElem1中得出第一维中的元素数量,在输出NrOfElem2中得出第二维中的元素数量。
值1返回到输出NrOfElem3。
如果输入Array3D为三维数组:
在输出NrOfElem1、NrOfElem2和NrOfElem3中,得出输入Array3D中数组的第一、第二和第三维中的元素数量。
因此,可以编写处理各种长度数组的函数和功能块(也结合使用函数GetPointer、AreaOffs_ToVar、Var_ToAreaOffs)。
乘积NrOfElem1 * NrOfElem2 * NrOfElem3始终等于数组中元素的总数。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
ArrayOfInt: ARRAY [2..15,3..20,4..25] OF INT:=[5544(0)];
NumberOfDim1: INT:=0;
NumberOfDim2: INT:=0;
NumberOfDim3: INT:=0;
END_VAR
在此例中函数Elem_OfArray3D在各CPU循环中执行(没有EN输入)。其决定变量ArrayOfInt的元素数量。此处结果为:NumberOfDim1 = 14,NumberOfDim2 = 18和NumberOfDim3 = 22。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_VARIN,,ArrayOfInt,6,2,8,4,);
B(B_VAROUT,,NumberOfDim1,19,2,21,4,);
B(B_F,Elem_OfArray3D!,Instance,8,1,19,6,,?DArray3D?CNrOfElem1?CNrOfElem2?CNrOfElem3);
B(B_VAROUT,,,19,3,21,5,);
B(B_VAROUT,,,19,4,21,6,);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
更多示例项目(FPWIN Pro安装的目录"样例"):计算三维数组的轨迹(FB)