TIME을 STRING으로 변환
TIME_TO_STRING 펑션은TIME 데이터 형식의 값을 STRING[20] 데이터 형식의 값으로 변환합니다. IEC-61131에 따라 결과 문자열은 밑줄 없이 짧은 시간 접두사와 함께 표시됩니다. 결과 문자열의 양의 값은 'T#000d00h00m00s000ms' ~ 'T#248d13h13m56s470ms' 이내입니다.
입력
출력
FP-e 또는 FP0와 같이 값이 작은 PLC가 있는 STRING 데이터 형식을 사용하는 경우, 결과 문자열의 길이가 소스 문자열의 길이와 같거나 큰 지 확인하십시오.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
input_value: TIME:=T#0s;
result_string: STRING;
TIME 데이터 형식의 input_value 입력 변수는 T#1h30m45s 값으로 초기화됩니다. result_string 출력 변수는 STRING[20] 데이터 형식의 출력 변수입니다. 최대 20문자를 저장할 수 있습니다. input_value 변수를 사용하지 않고 본문에서 기능 입력 정수에 직접 정수를 입력할 수 있습니다.
TIME 데이터 형식의 input_value가 STRING[20]로 변환됩니다. 변환된 값은 result_string에 작성됩니다. input_value 변수가 T#1h30m45s이면 result_string에 'T#000d01h30m45s000ms'가 표시됩니다.
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,TIME_TO_STRING!,Instance,10,1,19,3,,?D?C);
B(B_VARIN,,input_value,8,1,10,3,);
B(B_VAROUT,,result_string,19,1,21,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=TIME_TO_STRING(input_value);
이 예에서는 TIME 데이터 형식의 입력 값에서 'xxhxxmxxs' 형식으로 STRING[9] 문자열을 만드는 방법을 보여줍니다(시간, 분 및 초만 출력).이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
input_value: TIME:=T#1h30m45s;
(*example value*)
result_string: STRING[9]:='';
(*result: here '01h30m45s'*)
END_VAR
이 예에서는 TIME 데이터 형식의 input_value 입력 변수와 STRING[9] 데이터 형식의 result_string 출력 변수 모두 선언됩니다.
질문 동작을 실행하면 MID 표준 기능은 TIME_TO_STRING 기능에 연결됩니다. MID는 L(INT 값) 문자를 사용하여 P(INT 값) 위치에서 문자열의 중앙 섹터를 만듭니다.
예에서 INT 정수 9는 MID의 L 입력에 입력되고 결과 문자열의 길이를 결정합니다. P 입력의 INT 정수 7은 중앙 섹터가 시작되는 위치를 결정합니다. input_value 변수 값 T#1h30m45s를 벗어난 STRING은 데이터 형식 변환에서 'T#000d01h30m45s000ms'로 나타납니다. MID 기능은 위치 7의 STRING을 잘라내고 result_string '01h30m45s'를 만듭니다.
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,TIME_TO_STRING!,Instance,7,2,16,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,9,17,3,19,5,);
B(B_VARIN,,7,17,4,19,6,);
L(1,0,1,6);
L(16,3,19,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY