====== 위젯과 목적지 (내부 영역, 수식 설명) ====== 이 문서는 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#화면 편집|상위 페이지로 가기]]