문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
comfilehmi:hmieditor_string:index [2023/04/14 17:11] Comfile Technology [외부장치에 HMI 문자열 변수 기록하기] |
comfilehmi:hmieditor_string:index [2024/01/07 09:22] (현재) Comfile Technology [문자열 관련기능] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== 문자열 관련기능 ====== | ====== 문자열 관련기능 ====== | ||
- | ComfileHMI 에서는 문자열을 기록 / 표시 할 수 있는 기능을 제공하고 있습니다. | + | 문자열을 기록 / 표시 할 수 있는 기능을 제공하고 있습니다. |
==== 문자열이란? ==== | ==== 문자열이란? ==== | ||
- | 유니코드의 집합을 뜻하며, 맨끝에는 반드시 0이 위치해야 합니다. 한 문자당 1워드가 필요합니다. 예를들어 'ABC'문자열의 경우 0x0041, 0x0042, 0x0043, 0x0000 이렇게 4 워드로 구성된 데이터집합을 의미합니다. | + | 유니코드의 집합을 뜻하며, 맨끝에는 반드시 0이 위치해야 합니다. 한 문자당 1워드가 필요합니다. 예를들어 'ABC'문자열의 경우 0x0041, 0x0042, 0x0043, 0 이렇게 4 워드로 구성된 데이터집합을 의미합니다. |
- | + | | A | B | C | 종료코드 | | |
- | ===== //외부 장치//에 문자열 기록하기 ===== | + | | 0x0041 | 0x0042 | 0x0043 | 0 | |
+ | ===== 외부 장치에 문자열 기록하기 ===== | ||
제어보턴을 눌렀을때, //외부 장치//에 문자열을 기록하는 방법을 알아보겠습니다. 제어버튼의 속성창에서 아래와 같이 선택하세요. | 제어보턴을 눌렀을때, //외부 장치//에 문자열을 기록하는 방법을 알아보겠습니다. 제어버튼의 속성창에서 아래와 같이 선택하세요. | ||
줄 14: | 줄 15: | ||
{{ :comfilehmi:hmieditor_string:stringexplain2.png?nolink |}} | {{ :comfilehmi:hmieditor_string:stringexplain2.png?nolink |}} | ||
- | 목적지 종류를 <문자열 주소>로 하고, 저장할 주소를 40003으로 했습니다. 그리고 출발지 종류는 <텍스트>, 기록할 내용에 'COMFILE'이라고 적었습니다. 이렇게 하면 버튼을 터치했을때, PLC1의 40003주소부터 COMFILE이라는 문자열이 저장됩니다. | + | 목적지 종류를 <문자열 주소>로 하고, 저장할 주소를 D3으로 했습니다. 그리고 출발지 종류는 <텍스트 직접 지정>, 기록할 내용에 'COMFILE'이라고 적었습니다. 이렇게 하면 버튼을 터치했을때, PLC1의 40003주소부터 COMFILE이라는 문자열이 저장됩니다. |
- | 40003 : 'C' | + | D3 : 'C' |
- | 40004 : 'O' | + | D4 : 'O' |
- | 40005 : 'M' | + | D5 : 'M' |
- | 40006 : 'F' | + | D6 : 'F' |
- | 40007 : 'I' | + | D7 : 'I' |
- | 40008 : 'L' | + | D8 : 'L' |
- | 40009 : 'E' | + | D9 : 'E' |
- | 40010 : 0 | + | D10 : 0 |
| | ||
- | 실제로는 40003 부터 40010까지 총 8 워드에 해당문자의 유니코드가 각각 기록됩니다. | + | 실제로는 D3 부터 D10까지 총 8 워드에 해당문자의 유니코드가 각각 기록됩니다. |
+ | D3 : 0x0043 | ||
+ | D4 : 0x004f | ||
+ | D5 : 0x004d | ||
+ | D6 : 0x0046 | ||
+ | D7 : 0x0049 | ||
+ | D8 : 0x004c | ||
+ | D9 : 0x0045 | ||
+ | D10 : 0 | ||
+ | |||
+ | [[.:AscciTable:|초보자 노트 : 유니코드란?]] | ||
===== 내부 메모리에 문자열 기록하기 ===== | ===== 내부 메모리에 문자열 기록하기 ===== | ||
줄 33: | 줄 44: | ||
{{ :comfilehmi:hmieditor_string:stringexplain3.png?nolink |}} | {{ :comfilehmi:hmieditor_string:stringexplain3.png?nolink |}} | ||
- | //내부 메모리// 시작주소를 0으로 했으므로, 버튼 터치시 아래와 같이 0번지부터 문자열이 기록됩니다. | + | //내부 메모리// 시작주소를 0으로 했으므로, 버튼 터치시 아래와 같이 0번지부터 문자열이 기록됩니다. (실제로는 해당 유니코드가 기록됨) |
0 : 'C' | 0 : 'C' | ||
줄 47: | 줄 58: | ||
===== 내부 문자열 변수 ===== | ===== 내부 문자열 변수 ===== | ||
- | //내부 문자열 변수//를 사용하여 문자열 하나를 보관할 수 있습니다. //내부 문자열 변수//는 HMI에 있는 기억공간이며 수치만 저장할 수 있는 //내부 변수//와는 다른 기억공간입니다. | + | {{ :comfilehmi:hmieditor_string:stringexplain1.png?nolink |}} |
+ | |||
+ | //내부 문자열 변수//를 사용하여 문자열 하나를 보관할 수 있습니다. //내부 문자열 변수//는 HMI에 있는 기억공간이며 수치만 저장할 수 있는 //내부 변수//, //내부 메모리//와는 다른 기억공간입니다. | ||
//내부 문자열 변수//명은 반드시 $로 시작해야하며, 대소문자를 구분합니다. 한글도 사용할 수 있습니다.예를들면 $str1 이라는 //내부 문자열 변수//에 '아름다운우리나라'라는 문자열 하나를 전부 할당할 수 있다는 뜻입니다. | //내부 문자열 변수//명은 반드시 $로 시작해야하며, 대소문자를 구분합니다. 한글도 사용할 수 있습니다.예를들면 $str1 이라는 //내부 문자열 변수//에 '아름다운우리나라'라는 문자열 하나를 전부 할당할 수 있다는 뜻입니다. | ||
- | ==== //외부 장치//에 //내부 문자열 변수// 기록하기 ===== | + | ==== 외부 장치에 내부 문자열 변수 기록하기 ===== |
아래와 같이 설정하면, //외부 장치//에 //내부 문자열 변수//의 값을 저장할 수 있습니다. | 아래와 같이 설정하면, //외부 장치//에 //내부 문자열 변수//의 값을 저장할 수 있습니다. | ||
줄 57: | 줄 70: | ||
{{ :comfilehmi:hmieditor_string:stringexplain4.png?nolink |}} | {{ :comfilehmi:hmieditor_string:stringexplain4.png?nolink |}} | ||
- | 버튼 터치시 HMI문자열 변수 $str1의 내용이 PLC1:40003번지부터 기록됩니다. | + | 버튼 터치시 //내부 문자열 변수// $str1의 내용이 지정한 번지부터 기록됩니다. |
===== 스크립트 액션에서의 문자열 사용예 ===== | ===== 스크립트 액션에서의 문자열 사용예 ===== | ||
- | ==== HMI 문자열변수에 문자열 기록하기 ===== | ||
- | 스크립트의 따옴표를 이용해서 HMI 문자열 변수에 문자열을 할당할 수 있습니다. | + | ==== 내부 문자열 변수에 문자열 기록하기 ===== |
+ | |||
+ | 스크립트의 따옴표를 이용해서 내부 문자열 변수에 문자열을 할당할 수 있습니다. | ||
멀티액션 버튼에서 액션을 하나 추가하세요. | 멀티액션 버튼에서 액션을 하나 추가하세요. | ||
줄 68: | 줄 82: | ||
{{ :comfilehmi:hmieditor_string:stringexplain5.png?nolink |}} | {{ :comfilehmi:hmieditor_string:stringexplain5.png?nolink |}} | ||
- | <스크립트>를 선택한뒤 아래와같이 입력하면, 버튼 터치시 $str1 HMI 문자열 변수에 "아름다운우리나라" 문자열이 저장됩니다. | + | <스크립트>를 선택한뒤 아래와같이 입력하면, 버튼 터치시 $str1 내부 문자열 변수에 "아름다운우리나라" 문자열이 저장됩니다. |
{{ :comfilehmi:hmieditor_string:stringexplain6.png?nolink |}} | {{ :comfilehmi:hmieditor_string:stringexplain6.png?nolink |}} | ||
줄 76: | 줄 90: | ||
$a=$b : $b내용을 $a로 복사 | $a=$b : $b내용을 $a로 복사 | ||
$a=$b+$c : $b와 $c을 붙여서 $a에 복사합니다. 즉, "COM"+"FILE"은 "COMFILE"이 됩니다. | $a=$b+$c : $b와 $c을 붙여서 $a에 복사합니다. 즉, "COM"+"FILE"은 "COMFILE"이 됩니다. | ||
- | $a="korea"+$b : 직접 입력한 문자열과 HMI문자열변수의 내용을 합침. | + | $a="korea"+$b : 직접 입력한 문자열과 내부 문자열 변수의 내용을 합침. |
| | ||
아래와 같은 수식은 잘못된 사용예입니다. | 아래와 같은 수식은 잘못된 사용예입니다. | ||
- | $a=3 : 숫자는 HMI 문자열변수에 할당할 수 없습니다. | + | $a=3 : 숫자는 내부 문자열 변수에 할당할 수 없습니다. |
- | a="b" : HMI변수에 문자열을 할당할 수 없습니다. | + | a="b" : 내부 변수에 문자열을 할당할 수 없습니다. |
- | $a=$b+2 : 숫자와 HMI 문자열변수는 서로 합칠수 없습니다. | + | $a=$b+2 : 숫자와 내부 문자열 변수는 서로 합칠수 없습니다. |
줄 95: | 줄 109: | ||
- | ===== 멀티액션에서 HMI문자열변수 제어 ===== | + | ===== 멀티액션에서 내부 문자열 변수 제어 ===== |
- | + | ||
- | 액션중 <HMI문자열 변수 제어>가 있습니다. 문자열 변수에 문자열을 대입하거나, 삽입/삭제/형변환등의 액션을 수행할 수 있습니다. | + | |
- | 아래 링크중 <HMI 문자열 변수 제어>부분을 참조하세요. | + | 액션중 <내부 문자열 변수 제어>가 있습니다. 문자열 변수에 문자열을 대입하거나, 삽입/삭제/형변환등의 액션을 수행할 수 있습니다. |
- | [[comfilehmi:multiaction12:index|HMI 문자열 변수 제어]] | + | 아래 링크중 <내부 문자열 변수 제어>부분을 참조하세요. |
- | {{ :comfilehmi:hmieditor_string:stringexplain7.png?nolink |}} | + | [[comfilehmi:multiaction12:index|내부 문자열 변수 제어]] |
[[comfilehmi:index#화면편집|상위 페이지로 가기]] | [[comfilehmi:index#화면편집|상위 페이지로 가기]] |