DOUBLE WORD를 STRING으로 변환
DWORD_TO_STRING 펑션은DWORD 데이터 형식의 값을 STRING 데이터 형식의 값으로 변환합니다.
오른쪽으로 정렬된 10진수 형식의 결과 문자열이 생성됩니다. 이 결과 문자열의 선행 스페이스는 사전 정의된 최대 문자수로 채워집니다.입력
출력
FP-e 또는 FP0와 같이 값이 작은 PLC가 있는 STRING 데이터 형식을 사용하는 경우, 결과 문자열의 길이가 소스 문자열의 길이와 같거나 큰 지 확인하십시오.
입력 |
정의된 출력 |
결과 |
---|---|---|
16#ABCDEFFE |
STRING[2] |
'FE' |
STRING[4] |
'EFFE' |
|
STRING[6] |
'CDEFFE' |
|
STRING[8] |
'ABCDEFFE' |
|
STRING[10] |
'00ABCDEFFE' |
|
STRING[12] |
'0000ABCDEFFE' |
|
등등 |
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
DWORD_value: DWORD:=0;
(*example value: 16#ABCDEFFE*)
result_string: STRING[10]:='';
(*result: '00ABCDEFFE'*)
@'': @'';
END_VAR
DWORD 데이터 형식의 DWORD_value 입력 변수는 16#ABCDEFFE 값으로 초기화됩니다. result_string 출력 변수는 STRING[10] 데이터 형식의 출력 변수입니다. 최대 10문자를 저장할 수 있습니다. DWORD_value 변수를 사용하지 않고 본문에서 기능 입력 정수에 직접 정수를 입력할 수 있습니다.
DWORD 데이터 형식의 DWORD_value가 STRING[10]로 변환됩니다. 변환된 값은 result_string에 작성됩니다. DWORD_value 변수가 16#ABCDEFFE이면 result_string에 '00ABCDEFFE'가 표시됩니다.
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_F,DWORD_TO_STRING!,Instance,9,1,20,3,,?D?C);
B(B_VARIN,,DWORD_value,7,1,9,3,);
B(B_VAROUT,,result_string,20,1,22,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
이 예에서는 문자열 '16#'이 문자열 '0x'로 교체된 DWORD 데이터 형식 밖에서 STRING[10]을 만드는 방법을 보여줍니다.
VAR
input_value: DWORD:=16#12345678;
result_string: STRING[10]:='';
@'': @'';
END_VAR
이 예에서는 DWORD 데이터 형식의 input_value 입력 변수와 STRING[10] 데이터 형식의 result_string 출력 변수가 선언됩니다.
질문 동작을 실행하면 REPLACE 표준 기능은 DWORD_TO_STRING 기능에 연결됩니다. REPLACE는 문자열의 한 섹션을 다른 섹션으로 바꿉니다.
이 예에서 DWORD_TO_STRING 기능의 출력 문자열은 REPLACE 기능의 IN1 입력에 추가됩니다. IN2 입력에서 STRING 정수 '0x'는 STRING 교체로 추가됩니다. REPLACE의 L 입력에서 INT 정수 3은 교체할 STRING 길이를 결정합니다. P 입력은 교체가 시작되는 위치를 결정합니다. 이 경우에는 INT 1번입니다. input_value 변수가 16#12345678인 경우, 데이터 형식 변환과 REPLACE 기능 실행 후의 result_string 결과는 '0x12345678'입니다.
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_F,DWORD_TO_STRING!,Instance,8,1,19,3,,?D?C);
B(B_VARIN,,input_value,6,1,8,3,);
B(B_VAROUT,,result_string,26,1,28,3,);
B(B_F,REPLACE!,Instance,20,0,26,6,,?DIN1?DIN2?DL?DP?C);
B(B_VARIN,,'0x',18,2,20,4,);
B(B_VARIN,,3,18,3,20,5,);
B(B_VARIN,,2,18,4,20,6,);
L(19,2,20,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY