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