배열 내 요소 수
이 펑션은 배열의 1번째, 2번째 및 3번째 단위의 요소 수를 산출합니다.
입력
결정할 요소 수가 있는 입력 변수(배열 단위 1, 2 또는 3)
출력
첫 번째 단위에서 요소 수 산출
두 번째 단위에서 요소 수 산출
세 번째 단위에서 요소 수 산출
입력 Array3D가 1차원 배열인 경우:
입력 Array3D에 있는 배열의 요소 수는 출력 NrOfElem1에서 산출됩니다.
값 1은 출력 NrOfElem2에서 반환됩니다.
값 1은 출력 NrOfElem3에서 반환됩니다.
입력 Array3D가 2차원 배열인 경우:
입력 Array3D의 배열에서 첫 번째 단위의 요소 수는 출력 NrOfElem1에서, 두 번째 단위의 요소 수는 NrOfElem2에서 산출됩니다.
값 1은 출력 NrOfElem3에서 반환됩니다.
입력 Array3D가 3차원 배열인 경우:
출력 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 설치의 "Samples" 디렉토리):3차원 배열(FB)의 트레이스 계산