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