본문 바로가기
MELSEC PLC 기초 강좌

[31] PLC 기초 강좌

by lemy 2019. 4. 15.
반응형

[31] PLC 기초 강좌

4.4.      응용 명령

4.4.9.    문자열 처리 명령

 

 

6) 10진 아스키→BCD 4자리/8자리 변환(DABCD(P), DDABCD(P))
▶ [DABCD(P)    (S)    (D)]
(S)로 지정된 디바이스 번호 이후에 저장되어 있는 16진 아스키 데이터를 BCD 4자리 데이터로 
변환하여, (D)로 지정된 디바이스 번호에 저장합니다.
예를 들면, (S)이후에 8765H의 아스키 코드를 지정한 경우, (D)에는 다음과 같이 저장 됩니다.
(S) ~ (S+1)로 지정된 아스키 데이터는 0~9999의 범위 이내입니다.
각 자리에 설정되는 아스키 코드는 “30H”~“39H”의 범위 이내입니다.
각 자리에 설정되는 아스키 코드가 “20H”, “00H”일 때는 “30H”로 처리합니다.

 


▶ [DDABCD(P)    (S)    (D)]
(S)로 지정된 디바이스 번호 이후에 저장되어 있는 16진 아스키 데이터를 BCD 8자리 데이터로 
변환하여, (D)로 지정된 디바이스 번호에 저장합니다.
예를 들면, (S)이후에 87654321H의 아스키 코드를 지정한 경우 (D), (D+1)에는 다음과 같이 저장됩니다.
(S) ~ (S+3)로 지정된 아스키 데이터는 0~99999999의 범위 이내입니다.
각 자리에 설정되는 아스키 코드는 “30H”~“39H”의 범위 이내입니다.
각 자리에 설정되는 아스키 코드가 “20H”, “00H”일 때는 “30H”로 처리합니다.


7) 문자열의 길이 검출(LEN(P))
▶ [LEN(P)    (S)    (D)]
(S)로 지정된 문자열의 길이를 검출하여, (D)로 지정된 디바이스 번호 이후에 저장합니다.
(S)로 지정된 디바이스 번호부터 “00H”가 저장되어 있는 디바이스 번호까지의 데이터를 문자열로 
처리합니다.
예를 들면, (S) 이후에 “ABCDEFGHI”가 저장되어 있는 경우, (D)에는 9가 저장됩니다.


8) BIN 16비트/32비트→문자열 변환(STR(R), DSTR(P))
▶ [STR(P)    (S1)    (S2)    (D)]
(S2)로 지정된 BIN 16비트 데이터를 (S1)로 지정된 위치에 소수점을 부가하고 문자열로 변환하여, (D)로 
지정된 디바이스 번호 이후에 저장합니다. (S1)로 지정할 수 있는 전체 자리수는 2~8자리입니다.
(S1+1)로 지정할 수 있는 소수부 자리수는 0~5자리입니다. 단, 소수부 자리수 ≤ (전체 자리수-3)이 
되도록 설정하십시오. (S2)로 지정할 수 있는 BIN 데이터는 –32768~32767의 범위입니다.
변환후의 문자열 데이터는 다음에 설명한 것처럼 (D)이후의 디바이스 번호에 저장됩니다.
① 부호에는 BIN 데이터가 플러스일 때 “20H(스페이스)”를 저장하고, 마이너스일 때 “2DH(-)”를 저장합니다.
② 소수부 자리수를 “0” 이외로 설정한 경우에는 지정한 자리수+1번째 자리에 자동적으로 “2EH(. )”를 저장합니다.
 소수부 자리수가 “0”일 때는 “2EH(. )”를 저장합니다.
③ 소수부 자리수의 값이 BIN 데이터의 자리수보다 큰 경우에는, 자동적으로 0을 부가하고 오른쪽 정렬로 
변환하여, “0.##### ”으로 됩니다.
④전체 자리수의 값부터 부호, 소수점을 제외한 자리수가 BIN 데이터의 자리수보다 큰 경우에는, 부호와 수치의
사이에 “20H(스페이스)”를 저장합니다. BIN 데이터의 자리수가 큰 경우에는 에러가 됩니다.
⑤ 변환한 문자열의 마지막에는 자동적으로 “00H”가 저장됩니다. 


▶ [DSTR(P)    (S1)    (S2)    (D)]
(S2)로 지정된 BIN 32비트 데이터를 (S1)로 지정된 위치에 소수점을 부가하고 문자열로 변환하여, (D)로 
지정된 디바이스 번호 이후에 저장합니다. (S1)로 지정할 수 있는 전체 자리수는 2~13자리입니다.
(S1+1)로 지정할 수 있는 소수부 자리수는 0~10자리입니다. 단, 소수부 자리수 ≤ (전체 자리수-3)이 
되도록 설정하십시오. (S1), (S2+1)로 지정할 수 있는 BIN 데이터는 –2147482648~2147483647의 
범위입니다. 변환후의 문자열 데이터는 다음에 설명한 것처럼 (D)이후의 디바이스 번호에 저장됩니다.
① 부호에는 BIN 데이터가 플러스일 때 “20H(스페이스)”를 저장하고, 마이너스일 때 “2DH(-)”를 저장합니다.
② 소수부 자리수를 “0” 이외로 설정한 경우에는 지정한 자리수+1번째 자리에 자동적으로 “2EH(. )”를 저장합니다.
 소수부 자리수가 “0”일 때는 “2EH(. )”를 저장합니다.
③ 소수부 자리수의 값이 BIN 데이터의 자리수보다 큰 경우에는, 자동적으로 0을 부가하고 오른쪽 정렬로 
변환하여, “0.##### ”으로 됩니다.
④전체 자리수의 값부터 부호, 소수점을 제외한 자리수가 BIN 데이터의 자리수보다 큰 경우에는, 부호와 수치의
사이에 “20H(스페이스)”를 저장합니다. BIN 데이터의 자리수가 큰 경우에는 에러가 됩니다.
⑤ 변환한 문자열의 마지막에는 자동적으로 “00H”가 저장됩니다.
  


9) 문자열→BIN 16비트/32비트 변환(VAL(P), DVAL(P))
▶ [VAL(P)    (S)    (D1)    (D2)]
(S)로 지정된 디바이스 번호 이후에 저장되어 있는 문자열을 BIN 16비트 데이터로 변환하여, 자리수와 
BIN 데이터를 (D1), (D2)에 저장합니다.
문자열→BIN 변환에서는 (S)로 지정된 디바이스 번호로부터 “00H”가 저장되어 있는 디바이스 
번호까지의 데이터를 문자열로 처리합니다.
(S)로 지정된 문자열의 전체 자리수는 2~8문자입니다.
(S)로 지정된 문자열 중, 소수부가 될 문자 수는 0~5문자입니다. 
단, (전체 자리수-3) 이하가 되도록 하십시오.
BIN값으로 변환할 수 있는 수치 문자열은 소수점을 무시한 값으로 –32768~32767의 범위 이내입니다.
또 부호, 소수점을 제외한 수치 문자열은 “30H”~“39H”의 범위 이내만 지정할 수 있습니다.
소수점을 무시한 값이란 예를 들면 “-12345.6” → “-123456” 입니다.
부호에는 플러스의 수치를 표시할 경우에는 “20H”를 설정하고, 마이너스의 수치를 표시할 경우에는
“2DH”를 설정합니다. 소수점에는 “2EH”를 설정합니다.
(D1)에 저장할 전체 자리수는 수치를 표시할 문자(부호, 소수점을 포함) 모든 문자 수를 저장합니다.
(D1+1)에 저장할 소수부 자리수는 “2EH(.)” 이후의 소수부를 표시할 문자 수를 저장합니다.
(D2)에 저장할 BIN 데이터는 소수점을 무시한 문자열을 BIN값으로 변환하여 저장합니다.
(S)로 지정된 문자열에서 부호와 최초의 “0” 이외의 수치 간에 “20H(스페이스)” 또는 “30H(0)”가 
존재하는 경우에는 “20H”, “30H”를 무시하고 BIN값으로 변환합니다.


▶ [DVAL(P)    (S)    (D1)    (D2)]
(S)로 지정된 디바이스 번호 이후에 저장되어 있는 문자열을 BIN 32비트 데이터로 변환하여, 자리수와 
BIN 데이터를 (D1), (D2)에 저장합니다.
문자열→BIN 변환에서는 (S)로 지정된 디바이스 번호로부터 “00H”가 저장되어 있는 디바이스 
번호까지의 데이터를 문자열로 처리합니다.
(S)로 지정된 문자열의 전체 자리수는 2~13문자입니다.
(S)로 지정된 문자열 중, 소수부가 될 문자 수는 0~10문자입니다. 
단, (전체 자리수-3) 이하가 되도록 하십시오.
BIN값으로 변환할 수 있는 수치 문자열은 소수점을 무시한 값으로 –2147483648~2147483647의 범위
이내입니다. 또 부호, 소수점을 제외한 수치 문자열은 “30H”~“39H”의 범위 이내만 지정할 수 있습니다.
소수점을 무시한 값이란 예를 들면 “-12345.6” → “-123456” 입니다.
부호에는 플러스의 수치를 표시할 경우에는 “20H”를 설정하고, 마이너스의 수치를 표시할 경우에는
“2DH”를 설정합니다. 소수점에는 “2EH”를 설정합니다.
(D1)에 저장할 전체 자리수는 수치를 표시할 문자(부호, 소수점을 포함) 모든 문자 수를 저장합니다.
(D1+1)에 저장할 소수부 자리수는 “2EH(.)” 이후의 소수부를 표시할 문자 수를 저장합니다.
(D2)에 저장할 BIN 데이터는 소수점을 무시한 문자열을 BIN값으로 변환하여 저장합니다.
(S)로 지정된 문자열에서 부호와 최초의 “0” 이외의 수치 간에 “20H(스페이스)” 또는 “30H(0)”가 
존재하는 경우에는 “20H”, “30H”를 무시하고 BIN값으로 변환합니다.

 

 

프로그램 예제

4.4.9_1 Command PGM.gxw
2.30MB

 

반응형

'MELSEC PLC 기초 강좌' 카테고리의 다른 글

[33] PLC 기초 강좌  (0) 2019.04.22
[32] PLC 기초 강좌  (0) 2019.04.18
[30] PLC 기초 강좌  (0) 2019.04.11
[29] PLC 기초 강좌  (0) 2019.04.07
[28] PLC 기초 강좌  (3) 2019.04.03

댓글