FNS_InitConfigDataTable

FP-FNS 블록에 대한 데이터 구성

FNS_InitConfigDataTable 펑션은 변수 ProcessDataTable에서 ConfigDataTable을 생성합니다. 이것은 단일 요소 데이터 유형이거나 다중 요소 데이터 유형일 수 있습니다. 이 ConfigDataTable은 펑션블록 FNS_ProfibusDP, FNS_DeviceNet, FNS_CANopenFNS_ProfinetIO를 사용하여 FP-FNS 블록을 설정하는 데 필요합니다.

파라미터

입력

ProcessDataTable (INT, WORD, DINT, DWORD, REAL, TIME) 및 이러한 형식의 배열

공정 데이터 변수의 입력 및 출력

출력

ConfigDataTable (ARRAY of WORD)

FP-FNS 블록에 대한 구성 데이터 변수 ConfigDataTable의 배열 크기는 ProcessDataTable 변수의 요소 수와 같아야 합니다.

주석

  • 변수 ConfigDataTable의 크기가 ProcessDataTable의 구조에 해당하는지 확인합니다. 예를 들어, ProcessDataTable이 세 개의 항목으로 구성되었다면 ConfigDataTable 변수는 "Array[0..2] of WORD"이어야 하며, 이 크기는 항목 수와 일치합니다. ProcessDataTable 변수에 항목이 하나만 있으면(예: WORD) ConfigDataTable 변수는 "Array[0..0] of WORD"(크기 1)이어야 합니다.

  • FNS_InitConfigDataTable 입력에 허용되는 데이터 유형은 모두 16비트(INT, WORD), 32비트(DINT, DWORD, TIME (32비트), REAL) 및 64비트 변수 또는 그 배열입니다. 64비트 변수는 2차원 배열로 정의됩니다. 예를 들어, "Array[0..0,0..3] of INT"는 64비트 변수이고 "Array[0..3] of INT"는 16비트 변수의 4개 요소가 있는 배열을 나타냅니다.

  • 데이터 유형 BOOL, STRING 및 이러한 형식의 배열은 펑션 FNS_InitConfigDataTable의 입력에서 사용할 수 없습니다.

  • 이 펑션의 출력 ConfigDataTableWORD의 배열이어야 합니다.

ProcessDataTable

다음 구문 표에서는 16비트, 32비트 및 64비트 변수와 그 배열을 FNS_InitConfigDataTable 펑션에 대한 ProcessDataTable 입력으로 사용할 때 이를 선언하는 방법을 보여 줍니다.

입력 데이터 유형

입력 크기

코멘트

INT, WORD

16비트

DINT, WORD, REAL, TIME

32비트

Array[0..0,0..3] of INT

Array[0..0,0..3] of WORD

64비트

2차원 배열;

2차원 크기 = 4

Array[a ..b] of INT/Array[a ..b] of WORD

16비트 배열

크기 = b-a+1

1차원 배열

Array[a ..b] of DINT/Array[a ..b] of DWORD/

Array[a ..b] of REAL/Array[a ..b] of TIME

32비트 배열

크기 = b-a+1

1차원 배열

Array[0..x,0..3] of INT

Array[0..x,0..3] of WORD

64비트 배열

크기 = x+1

2차원 배열;

2차원 크기 = 4

글로벌 변수

글로벌 변수 리스트에서 프로젝트의 모든 POU에서 액세스할 수 있는 변수를 정의합니다.

DUT

이 예제에서 변수 ProcessData는 다음 구조를 갖는 ProcessDataStructure 형식의 DUT입니다.

DUT에는 세 개의 항목이 있으므로 출력 변수 ConfigData에는 다음 세 개의 크기를 갖는 WORD 배열이어야 합니다(예: Array [0..2] of WORD).

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		ConfigData: ARRAY [0..2] OF WORD:=[3(0)];
	END_VAR
	VAR_EXTERNAL
		ProcessData: ProcessDataStructure;
	END_VAR

변수 ConfigDataTable의 크기는 입력 변수ProcessData의 항목 수와 일치해야 합니다.

POU 본문

sys_bIsFirstScanTRUE이면 즉, 첫 번째 사이클에 있으면 이 펑션이 실행됩니다. 변수 ConfigData의 값은 입력 변수 ProcessData의 구조와 그 개수 및 요소 형식에 해당합니다.

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,,ProcessData,11,2,13,4,);
B(B_VAROUT,,ConfigData,29,2,31,4,);
B(B_F,E_FNS_InitConfigDataTable!,,13,0,29,4,,?DEN?dProcessDataTable?AENO?cConfigDataTable);
B(B_CONTACT,,sys_bIsFirstScan,5,1,7,3,);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

If sys_bIsFirstScan then
    ConfigData:=FNS_InitConfigDataTable(ProcessData);
    end_if;

최종 수정일: 2022-04-04이 페이지에 대한 피드백Panasonic 직통 전화