FP_DEC_TO_ASCII

10진수 -> ASCII 변환

이 FP 명령은 트리거 ENTRUE이면 s에서 지정한 10진수 문자를 ASCII 코드로 변환합니다. n_Chars는 변환할 바이트 수를 지정합니다.결과는 d_Start에서 지정한 영역에 저장됩니다.

10진수 문자를 표시하는 ASCII HEX 코드:

10진수 문자

ASCII HEX 코드

SPACE+-0123456789

16#20 16#2B 16#2D 16#30 16#31 16#32 16#33 16#34 16#35 16#36 16#37 16#38 16#39

파라미터

입력

s (INT, DINT, UINT, UDINT)

입력값

n_Chars (WORD, INT, UINT)

바이트 수

출력

d_Start (WORD, INT, UINT)

결과에 대한 데이터 영역의 시작 어드레스입니다. 크기는 n_Bits * 2 워드입니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • n_Chars에서 지정한 바이트 수가 d_Start에서 지정한 영역보다 큰 경우.

  • 변환 결과가 d_Start에서 지정한 데이터 영역 보다 큰 경우

  • 변환 결과의 바이트 수가 n_Chars에서 지정한 바이트 수 보다 큰 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • n_Chars에서 지정한 바이트 수가 d_Start에서 지정한 영역보다 큰 경우.

  • 변환 결과가 d_Start에서 지정한 데이터 영역 보다 큰 경우

  • 변환 결과의 바이트 수가 n_Chars에서 지정한 바이트 수 보다 큰 경우.

16비트 데이터, 부호 없음

오프셋

10진수 문자

Decimal figure

오프셋

변환된 ASCII 코드

Dec. equivalent

s

0

16#FF9C

65436

Þ

d_Start

0

16#3620

6

n_Chars

0

16#0006

1

16#3435

45

2

16#3633

63

16비트 데이터, 부호 있음

오프셋

10진수 문자

Decimal figure

오프셋

변환된 ASCII 코드

Dec. equivalent

s

0

16#FF9C

-100

Þ

d_Start

0

16#2020

n_Chars

0

16#0006

1

16#312D

1 -

2

16#3030

00

32비트 데이터, 부호 없음

오프셋

10진수 문자

Decimal figure

오프셋

변환된 ASCII 코드

Dec. equivalent

s

0

16#FF9C

4294967196

Þ

d_Start

0

16#3234

24

1

16#FFFF

1

16#3439

49

n_Chars

0

16#000A

2

16#3639

69

3

16#3137

17

4

16#3639

69

32비트 데이터, 부호 있음

오프셋

10진수 문자

Decimal figure

오프셋

변환된 ASCII 코드

Dec. equivalent

s

0

16#FF9C

-100

Þ

d_Start

0

16#2020

0

1

16#FFFF

1

16#2020

0

n_Chars

0

16#000A

2

16#2020

0

3

16#312D

1 -

4

16#3030

00

POU 헤더

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

	VAR
		bStart: BOOL:=FALSE;
		iInput: INT:=82;
		awResult: ARRAY [0..2] OF WORD:=[3(0)];
	END_VAR

POU 본문

변수 bStartTRUE로 설정되면 펑션이 실행됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_COMMENT,,After conversion: ø^awResult[0]=16#2020ø^awResult[1]=16#3238ø^awResult[2] is not written,24,1,39,5,);
B(B_CONTACT,,bStart,4,4,6,6,R);
B(B_F,FP_DEC_TO_ASCII!,,12,3,22,8,,?DEN?D@'s'?Dn_Chars?AENO?Cd_Start);
B(B_VARIN,,iInput,10,5,12,7,);
B(B_VAROUT,,awResult[0],22,5,24,7,);
B(B_VARIN,,4,10,6,12,8,);
L(1,0,1,8);
L(1,5,4,5);
L(6,5,12,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

if (DF(bStart)) then
	FP_DEC_TO_ASCII(s := iInput, n_Chars := 4,
	                d_Start => awResult[0]);
	(* After conversion: 
			awResult[0]=16#2020
			awResult[1]=16#3238
			awResult[2] is not written *)
end_if;

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