Elem_OfArray3D

数组中元素的数量

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

参数

输入

Array3D (ANY_IN_UNITS_OF_WORDS)

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

输出

NrOfElem1 (INT, DINT, UINT, UDINT)

得出第一维中的元素数量

NrOfElem2 (INT, DINT, UINT, UDINT)

得出第二维中的元素数量

NrOfElem3 (INT, DINT, UINT, UDINT)

得出第三维中的元素数量

标注

如果输入Array3D为一维数组:

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

  • 值1返回到输出NrOfElem2

  • 值1返回到输出NrOfElem3

如果输入Array3D为二维数组:

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

  • 值1返回到输出NrOfElem3

如果输入Array3D为三维数组:

  • 在输出NrOfElem1NrOfElem2NrOfElem3中,得出输入Array3D中数组的第一、第二和第三维中的元素数量。

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

注释

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

示例

POU头

所有用于编程此函数的输入和输出变量已在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

POU本体

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

LD本体

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)

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