사용자 도구

사이트 도구

English

comfilehmi:hmieditor_string:index

문자열 관련기능

문자열을 기록 / 표시 할 수 있는 기능을 제공하고 있습니다.

문자열이란?

유니코드의 집합을 뜻하며, 맨끝에는 반드시 0이 위치해야 합니다. 한 문자당 1워드가 필요합니다. 예를들어 'ABC'문자열의 경우 0x0041, 0x0042, 0x0043, 0 이렇게 4 워드로 구성된 데이터집합을 의미합니다.

A B C 종료코드
0x0041 0x0042 0x0043 0

외부 장치에 문자열 기록하기

제어보턴을 눌렀을때, 외부 장치에 문자열을 기록하는 방법을 알아보겠습니다. 제어버튼의 속성창에서 아래와 같이 선택하세요.

목적지 종류를 <문자열 주소>로 하고, 저장할 주소를 D3으로 했습니다. 그리고 출발지 종류는 <텍스트 직접 지정>, 기록할 내용에 'COMFILE'이라고 적었습니다. 이렇게 하면 버튼을 터치했을때, PLC1의 40003주소부터 COMFILE이라는 문자열이 저장됩니다.

D3 : 'C'
D4 : 'O'
D5 : 'M'
D6 : 'F'
D7 : 'I'
D8 : 'L'
D9 : 'E'
D10 : 0

실제로는 D3 부터 D10까지 총 8 워드에 해당문자의 유니코드가 각각 기록됩니다.

D3 : 0x0043
D4 : 0x004f
D5 : 0x004d
D6 : 0x0046
D7 : 0x0049
D8 : 0x004c
D9 : 0x0045
D10 : 0

초보자 노트 : 유니코드란?

내부 메모리에 문자열 기록하기

외부장치가 아닌 내부 메모리에도 문자열을 기록할 수 있습니다. 내부 메모리란 내부에 있는 별도의 기억공간입니다. 아래와 같이 설정한다면 외부 장치에 기록하듯이 내부 메모리에도 문자열을 저장할 수 있습니다.

내부 메모리 시작주소를 0으로 했으므로, 버튼 터치시 아래와 같이 0번지부터 문자열이 기록됩니다. (실제로는 해당 유니코드가 기록됨)

0 : 'C'
1 : 'O'
2 : 'M'
3 : 'F'
4 : 'I'
5 : 'L'
6 : 'E'
7 : 0

내부 문자열 변수

내부 문자열 변수를 사용하여 문자열 하나를 보관할 수 있습니다. 내부 문자열 변수는 HMI에 있는 기억공간이며 수치만 저장할 수 있는 내부 변수, 내부 메모리와는 다른 기억공간입니다.

내부 문자열 변수명은 반드시 $로 시작해야하며, 대소문자를 구분합니다. 한글도 사용할 수 있습니다.예를들면 $str1 이라는 내부 문자열 변수에 '아름다운우리나라'라는 문자열 하나를 전부 할당할 수 있다는 뜻입니다.

외부 장치에 내부 문자열 변수 기록하기

아래와 같이 설정하면, 외부 장치내부 문자열 변수의 값을 저장할 수 있습니다.

버튼 터치시 내부 문자열 변수 $str1의 내용이 지정한 번지부터 기록됩니다.

스크립트 액션에서의 문자열 사용예

내부 문자열 변수에 문자열 기록하기

스크립트의 따옴표를 이용해서 내부 문자열 변수에 문자열을 할당할 수 있습니다.

멀티액션 버튼에서 액션을 하나 추가하세요.

<스크립트>를 선택한뒤 아래와같이 입력하면, 버튼 터치시 $str1 내부 문자열 변수에 "아름다운우리나라" 문자열이 저장됩니다.

스크립트에서 아래와 같은 문자열 관련 수식도 사용할 수 있습니다.

$a=$b  :  $b내용을 $a로 복사
$a=$b+$c  :  $b와 $c을 붙여서 $a에 복사합니다. 즉, "COM"+"FILE"은 "COMFILE"이 됩니다.
$a="korea"+$b : 직접 입력한 문자열과 내부 문자열 변수의 내용을 합침.

아래와 같은 수식은 잘못된 사용예입니다.

$a=3  : 숫자는 내부 문자열 변수에 할당할 수 없습니다.
a="b" : 내부 변수에 문자열을 할당할 수 없습니다.
$a=$b+2 : 숫자와 내부 문자열 변수는 서로 합칠수 없습니다.

문자열 관련 함수

  • text_to_num(문자열) : 문자열을 넣으면 수치값을 반환.
    (예) "32.1"을 넣으면 32.1이 반환됨
  • num_to_text_int(수치) : 수치값을 넣으면 정수형태의 텍스트를 반환
    (예) 32.1을 넣으면 "32"가 반환됨
  • num_to_text_int(수치,자리수) : 수치값을 넣으면 자리수가 고정된 정수형태의 텍스트를 반환
    (예) 32.1과 4를 넣으면 "0032"가 반환됨
  • num_to_text_hex(수치) : 수치값을 넣으면 16진수형태의 텍스트를 반환
    (예) 10.1을 넣으면 "A"가 반환됨
  • num_to_text_hex(수치,자리수) : 수치값을 넣으면 자리수가 고정된 16진수 형태의 텍스트를 반환
    (예) 10.1과 4를 넣으면 "000A"가 반환됨
  • num_to_text_dec(수치,소수자리수) : 수치값을 넣으면 특정 소수자리수를 가진 실수 텍스트를 반환
    (예) 10.3과 4를 넣으면 "10.3000"이 반환됨

멀티액션에서 내부 문자열 변수 제어

액션중 <내부 문자열 변수 제어>가 있습니다. 문자열 변수에 문자열을 대입하거나, 삽입/삭제/형변환등의 액션을 수행할 수 있습니다.

아래 링크중 <내부 문자열 변수 제어>부분을 참조하세요.

내부 문자열 변수 제어

상위 페이지로 가기

comfilehmi/hmieditor_string/index.txt · 마지막으로 수정됨: 2024/01/07 09:22 저자 Comfile Technology