For maintenance

PLC 명령어> $MOV(P) 문자열 전송 본문

PLC/PLC 명령어

PLC 명령어> $MOV(P) 문자열 전송

New life 2022. 12. 29. 13:51
반응형

$MOV명령어는  Source의 문자열 데이터를  Destination에 문자열 데이터로 전송하는 명령어이다.
 - Source에서는 " "를 이용하여 문자를 쓸 수 있다.
 - 문자가 아닌 워드 디바이스를 이용하여 전송이 가능하다.

 

디바이스로 데이터를 전송할 때는 주의해야하는 부분이다.
  1. 전송 시 데이터 범위는 마지막 문자열을 담고 있는 디바이스가 00H(값:0)일때까지 마지막 디바이스로 인식한다.

Ex > D100에서 n까지 영역에 모두 문자열이 있다면 모두 인식하여 전송한다.

    (디바이스 영역이 연결되어 있다면 디바이스 내 값이 없는 영역까지 전송됨)

    반드시 Source의 문자열 데이터와  Destination에 문자열 데이터 사이에 00H(zero)값이 존재하여야 한다.

 

  1. 전송하는 문자열 데이터와 전송 받는 문자열 데이터 저장 범위가 중복이 되어도 정상적으로 처리가 가능하며, 마지막 구간 디바이스는 00H값을 가지고 있어야 한다.

      → 마지막 디바이스에 00H(Zero)값을 가지고 있지 않으면 Scan마다 Shift되어 무한대로 문자열 값이 적용된다.

        (아래의 유튜브 영상 참조)

 

  1. S+n의 하위 바이트에 "00H"가 저장되어 있는 경우, D+n의 상위 바이트, 하위 바이트는 모두 "00H"값이 저장된다.

     → 하위 바이트를 연결하기 위해서는 공백(SP)의 아스키코드를 사용하면된다.(10진수 : 32, 16진수 :20H)

 

  1. 한글이나 한자도 사용이 가능하다. (한글은 한자당 1Word 사용, D101에는 "문" 한글자를 쓸 수 있다.)

 

디바이스의 데이터가 아닌 문자열을 바로 사용하기 위해서는 " "를 사용하면 된다.

문자열 표시는 아스키코드표를 기준으로 하면 된다.

Ex>  대문자 A를 나타내기 위해서는 숫자 65를 입력하면 된다.

        공백을 사용하기 위해서는 숫자 32를 입력하면 된다.

 

$MOV명령어를 사용하지 않아도 문자열 전달이 가능하다.
Source와 Destination 내 디바이스에는 문자열을 담고 있는 것이 아니라 아스키코드의 숫자를 담고 있어
BMOV 명령어를 사용하여도 동일하게 전달이 된다.

문자열 전송 명령어는 통신할 때 아스키 코드로 전달할 때 사용된다. 

Works2 도움말