Elem_OfArray2D

数组中元素的数量

此函数得出数组第1维和第2维的元素数量。

参数

输入

Array2D (ANY_IN_UNITS_OF_WORDS)

要确定元素数量的输入变量(数组维度1、2或3)

输出

NrOfElem1 (INT, DINT, UINT, UDINT)

得出第一维中的元素数量

NrOfElem2 (INT, DINT, UINT, UDINT)

得出第二维中的元素数量

标注

如果输入Array2D为一维数组:

  • 输入Array2D的数组中的元素数量在输出NrOfElem1中得出。

  • 值1返回到输出NrOfElem2

如果输入Array2D为二维数组:

  • 从输入Array2D中的数组,在输出NrOfElem1中得出第一维中的元素数量,在输出NrOfElem2中得出第二维中的元素数量。

如果输入Array2D为三维数组:

  • 从输入Array2D中的数组,在输出NrOfElem1中得出第一维中的元素数量,在输出NrOfElem2中得出数组第二维和第三维的乘积。

因此,可以编写处理各种长度数组的函数和功能块(也结合使用函数GetPointerAreaOffs_ToVarVar_ToAreaOffs)。

注释

乘积NrOfElem1*NrOfElem2始终等于数组中元素的总数。

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

	VAR
		ArrayOfInt: ARRAY [2..15,3..20] OF INT:=[252(0)];
		NumberOfDim1: INT:=0;
		NumberOfDim2: INT:=0;
	END_VAR

POU本体

在此例中函数Elem_OfArray2D在各CPU循环中执行(没有EN输入)。其决定变量ArrayOfInt的元素数量。此处结果为:NumberOfDim1 = 14,NumberOfDim2 = 18。

LD本体

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安装的目录"样例"):计算二维数组的乘积

最后更新日期: 此页面上的反馈松下热线