문자열을 기록 / 표시 할 수 있는 기능을 제공하고 있습니다.
유니코드의 집합을 뜻하며, 맨끝에는 반드시 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 : 숫자와 내부 문자열 변수는 서로 합칠수 없습니다.
액션중 <내부 문자열 변수 제어>가 있습니다. 문자열 변수에 문자열을 대입하거나, 삽입/삭제/형변환등의 액션을 수행할 수 있습니다.
아래 링크중 <내부 문자열 변수 제어>부분을 참조하세요.