====== 위젯과 목적지 (내부 영역, 수식 설명) ======
이 문서는 Comfile Studio에서 사용하는
위젯, 목적지, 내부 변수, 내부 메모리, 수식/조건식의 개념을 설명합니다.
===== 위젯이란? =====
위젯(Widget)은 화면에서 사용자가 직접 조작하거나 값을 표시하는 기능 요소입니다.
예:
* 제어 버튼
* 램프
* 숫자 표시기
* 입력창
* 슬라이더
{{ :comfilestudio:fomula:objectlist.png?nolink |}}
위젯은 단순한 그림이 아니라,
외부 장치 또는 내부 변수와 연결되어 실제 동작을 수행하는 제어 요소입니다.
===== 목적지란? =====
위젯은 반드시 “목적지”와 연결되어야 동작합니다.
목적지는 위젯이 읽거나 쓰는 대상입니다.
{{ :comfilestudio:fomula:internal_external.png?nolink |}}
목적지는 2가지 종류가 있습니다.
* 내부 영역 (HMI 또는 PC 내부)
* 외부 영역 (PLC 등 외부 장치)
====== 내부 영역 ======
내부 영역은 HMI 또는 PC 내부에 존재하는 기억 공간입니다.
외부 장치 없이도 사용할 수 있습니다.
※ 내부 영역은 기본적으로 휘발성입니다.
전원이 꺼지면 값이 보존되지 않습니다.
===== 내부 변수 =====
내부 변수는 별도의 선언 없이 이름만 사용하면 바로 생성됩니다.
예:
모터상태
Motor1
온도값
특징:
* 모든 내부 변수는 전역 변수입니다.
* 같은 이름이면 모든 화면에서 공유됩니다.
* 64비트 정수 및 실수 저장 가능
* 대소문자 구분
* 한글 사용 가능
이름 규칙:
* 첫 글자는 문자 또는 언더바
* 숫자로 시작 불가
* 공백 사용 불가
좋은 예:
모터상태
Motor1
나쁜 예:
123abc
대한 민국 (공백 존재)
===== 내부 메모리 =====
내부 메모리는 번지를 지정하여 사용하는 배열형 기억 공간입니다.
{{ :comfilestudio:fomula:arrayexplain.png?nolink |}}
기본 범위:
0 ~ 1023
확장 방법:
set_mem_size(20000)
* 메모리 크기가 20000개로 확장됨
* 확장 시 모든 값은 0으로 초기화됨
* 최대 1,000,000개까지 확장 가능
각 번지에는 64비트 정수 및 실수 저장 가능
참조 방법:
mem(0)
예:
mem(0) > 10
값 기록:
set_mem(번지,값)
여러 값 연속 기록:
set_mem(번지,값1,값2,값3…)
내부 변수를 번지로 사용 가능:
mem(index)
※ 내부 메모리는 데이터 버퍼, 로그 임시 저장, 계산 중간값 저장 등에 적합합니다.
====== 수식 / 조건식 ======
내부 변수, 내부 메모리, 시스템 함수는
수식 및 조건식에서 사용할 수 있습니다.
===== 조건식 =====
비교 연산자 (C 언어와 동일):
<
<=
==
>=
>
!=
&&
||
예:
모터상태 > 1
히터1 == 0
히터1 != 0
===== 산술 연산자 =====
+
-
*
/
%
예:
모터상태 + 1
===== 비트 쉬프트 =====
<<
>>
예:
모터상태 << 2
===== 자주 발생하는 질문 =====
Q. 위젯이 동작하지 않습니다.
→ 목적지가 설정되지 않았거나, 외부 장치가 응답하지 않는 경우입니다.
Q. 값이 전원 껐다 켜면 사라집니다.
→ 내부 영역은 기본적으로 휘발성입니다.
Q. 여러 화면에서 같은 변수를 쓰고 싶습니다.
→ 내부 변수는 전역 변수이므로 같은 이름을 사용하면 됩니다.
----
키워드: Comfile Studio 위젯, 목적지 설정, 내부 변수, 내부 메모리, mem 함수, set_mem, 조건식, 수식 사용법
[[comfilestudio:index#화면 편집|상위 페이지로 가기]]