Release Notes

QMachineStudio 4.0

스크립트 엔진을 새로 만들고, 하드웨어 없이도 시퀀스를 검증할 수 있게 하고, 화면·메시지·라이선스를 다시 정리했습니다. 2026년에 진행한 개발 내용을 모두 담은 정식 버전입니다.

Version 4.0.0 · 2026.07 · ICT Co.,Ltd.
01

주요 변경 사항

4.0 에서 가장 크게 달라진 여덟 가지입니다. 자세한 내용은 아래 항목별 목록을 참고하세요.

01

새 스크립트 엔진

XScript 실행 엔진을 새로 개발해 기본 엔진으로 전환했습니다. 오류 검출이 정확해지고, 컴파일된 바이트코드로 실행됩니다.

02

시뮬레이션 모드

옵션 하나로 IO·모터가 가상 장치로 바뀝니다. 실제 장비 없이 시퀀스를 처음부터 끝까지 돌려볼 수 있습니다.

03

소스 비공개 배포

스크립트 소스(.xms) 없이 컴파일본(.xmc)만 배포할 수 있습니다. 현장에 노하우를 넘기지 않고 실행만 가능합니다.

04

화면 표시 언어

개발 화면(메뉴·툴바·탭·다이얼로그)을 영어/한국어로 즉시 전환합니다. 컴파일 에러 목록도 함께 번역됩니다.

05

디자인 컨트롤 대폭 확충

차트·알람 목록·시퀀스 표시기·로딩 스피너 등 15종 이상을 새로 추가하고, SVG 벡터 이미지를 지원합니다.

06

데이터베이스 통합

SQLite/MSSQL 을 스크립트에서 DB["이름"] 로 직접 다루고, Database Studio 화면에서 스키마·쿼리를 관리합니다.

07

사용자 관리 강화

비밀번호 정책·계정 잠금·감사 로그·자동 로그아웃을 갖춘 계정 체계로 재작성했습니다.

08

라이선스 체계 개편

체험판/무료 개발/정품 3단계로 정리하고, 동글 접촉 불량 시에도 라인이 즉시 멈추지 않도록 유예 운전을 도입했습니다.

02

XScript 스크립트

언어 자체가 크게 넓어졌습니다. 기존 스크립트는 그대로 동작하며, 새 문법은 필요할 때 골라 쓰면 됩니다.

새 실행 엔진

  • 변경

    스크립트 실행 엔진 기본값이 신 엔진(Bytecode)으로 바뀌었습니다. 도구 옵션 > Script Engine 에서 Legacy 로 되돌릴 수 있습니다.

  • 신규

    실행 전에 스크립트를 바이트코드로 컴파일합니다. 빌드 캐시(.xmc)를 사용해 소스가 그대로면 재컴파일하지 않습니다.

  • 신규

    현재 구동 중인 엔진과 엔진 버전을 시스템 로그·시작 로그에 함께 표시합니다. 스크립트에서는 SYS.GetScriptEngine() 으로 확인합니다.

  • 개선

    정수 연산을 64비트로 정확히 처리합니다. 9천조가 넘는 큰 값의 계산·비교·비트 연산이 어긋나지 않습니다.

  • 개선

    배열 범위 밖 인덱스에 값을 쓰면 조용히 배열이 늘어나던 동작을 런타임 오류로 통일했습니다.

새 문법

  • 신규

    char 타입 — 문자 상수('A'), 문자 비교, 문자↔숫자 연산, 문자열 인덱싱(str[i]) 지원.

  • 신규

    byte 타입과 byte 배열 — 바이너리 통신 패킷 처리용. 범위를 넘으면 자동 wrap.

  • 신규

    switch 분기문case 1, 2 처럼 콤마로 여러 값 매칭, 자동 break.

  • 신규

    16진수·2진수 상수0xFF, 0b1111_1111. 자릿수 구분용 _ 사용 가능.

  • 신규

    중괄호 없는 한 줄 문if(a) Log(a); 처럼 C#/C++ 스타일로 쓸 수 있습니다.

  • 신규

    여러 줄 문장 — 줄 끝 백슬래시 없이 괄호 안에서 자유롭게 줄바꿈할 수 있습니다.

  • 신규

    함수 리턴 타입 선언FUNCTION bool Foo() / FUNCTION void Bar(). 생략하면 기존과 동일합니다.

  • 신규

    ref 파라미터 — 값과 성공 여부를 함께 돌려주는 함수를 만들 수 있습니다.

  • 신규

    단락 평가(short-circuit)if(A && B()) 에서 A 로 결과가 확정되면 B() 를 호출하지 않습니다.

  • 신규

    C# enum 자동 지원 — 드라이버가 제공하는 enum 을 타입명_값이름 상수로 바로 사용합니다.

새 객체·API

  • 신규

    CONTROL["모듈::컨트롤"] — 화면 컨트롤의 속성을 스크립트에서 직접 읽고 씁니다.

  • 신규

    DRIVER["드라이버명"] / LIB["이름"] — 드라이버 고유 기능과 프로젝트 전용 라이브러리를 호출합니다.

  • 신규

    DB["이름"] — 데이터베이스 쿼리·트랜잭션·백업을 스크립트에서 처리합니다.

  • 신규

    CONTAINER["이름"] — 컨테이너 직접 접근. 자재 관리가 DEVICEMGR / CONTAINER / DEVICE 3계층으로 정리됐습니다(기존 문법도 그대로 동작).

  • 신규

    스레드 동기화SYS.CreateEvent/WaitEvent, SYS.CreateSemaphore/WaitSemaphore. Sleep 폴링 없이 완료를 기다릴 수 있습니다.

  • 신규

    표 데이터 커서 APIUseTable/AddRow/SetField/GetField 로 인덱스 계산 없이 행·필드를 다룹니다.

  • 신규

    시리얼 번호 매니저 — 스크립트에서 규칙 등록·발급·미리보기(SN.*)를 처리합니다.

  • 신규

    시퀀스 상태 조회 — SYS.GetCurrentStep(module), SYS.GetCurrentStepIndex(module).

  • 신규

    디버그 로그 일괄 차단 — SYS.SetDebugLog(true/false) 로 반복 로그를 끕니다.

  • 신규

    잡파일 동적 전환 — SYS.ChangeJobFile("Default.JOB", false) 로 무음 전환.

  • 개선

    HTTP 전송(SYS.SendHttpPost/Get/Patch/Delete)에 호출별 타임아웃을 추가하고 동시 호출 성능을 대폭 개선했습니다. 응답이 필요 없는 보고용 SendHttpPostFireAndForget 도 추가됐습니다.

  • 신규

    통신 장치 사용 제외 — COM["이름"].SetUse(false) 로 미사용 장비의 자동 연결·실패 알림을 끕니다.

03

코드 편집기 · 빌드 진단

"실행해 봐야 알던" 오류를 빌드 시점에 잡아 줍니다. 오타·인자 실수로 라인이 멈추는 일이 크게 줄어듭니다.

빌드 검증

  • 신규

    객체 이름 오타 검출 — 스크립트에 상수 문자열로 쓴 IO·모터·디바이스·모듈 이름이 실제로 존재하는지 빌드 때 검사합니다. 대소문자만 다르면 힌트를 표시합니다.

  • 신규

    속성·인자 검사 — 없는 속성 이름, 인자 개수 불일치, ref 파라미터에 값 전달을 에러로 잡습니다.

  • 신규

    타입 검사 — bool 변수에 문자열 대입, bool 에 += 사용, 리턴 타입 불일치를 검출합니다.

  • 신규

    중복 함수 선언을 빌드 오류로 알립니다(예전에는 한쪽이 조용히 무시됐습니다).

  • 신규

    화면 연결 이름 검증 — 디자인 컨트롤의 DataName 오류를 '이름 없음'/'타입 불일치'로 구분해 경고합니다. 변수 이름을 바꿔도 빌드 시 자동 재연결됩니다.

  • 신규

    IO·모터 함수 연결 검증 — 오타나 함수 삭제로 연결이 끊기면 빌드 경고로 표시합니다.

에러 목록

  • 신규

    컴파일 에러 문구를 한국어/영어로 표시합니다. 표시 언어를 바꾸면 목록이 즉시 새 언어로 바뀝니다.

  • 신규

    F8 / Shift+F8 로 다음·이전 에러 위치로 바로 이동합니다.

  • 개선

    오류 위치에 실제 함수명·스텝명과 그 안의 줄번호를 표시하고, 더블클릭하면 해당 스크립트로 이동합니다.

  • 개선

    같은 에러가 연속으로 반복되면 한 줄로 합치고 반복 횟수를 (xN) 로 표시합니다.

편집기

  • 신규

    스크립트 편집기 다크/라이트 테마 지원(키워드·주석·문자열·숫자·줄번호·검색 강조).

  • 신규

    구문 강조 편집 컨트롤(SyntaxEditor) 추가 — 화면에 XScript/C#/C++/HTML/JSON/XML 코드를 강조 표시할 수 있습니다.

  • 신규

    검색 결과를 검색어별 탭으로 표시(최대 10개, F3/Shift+F3 이동).

  • 개선

    코드 도우미(자동완성) 강화 — 배열 멤버, CONTROL[·DEVICE[·VISION[·DB[ 이름 목록, 소문자 sys.SYS. 자동 보정, 없는 파라미터를 그 자리에서 추가.

  • 개선

    코드 정렬(Ctrl+D)이 중괄호 없는 본문과 } else { 표기를 정확히 들여씁니다.

  • 변경

    저장할 때 세미콜론을 자동으로 붙이던 기능을 없앴습니다. 입력한 원본 그대로 보존되고, 잘못된 세미콜론은 검사에서 경고로 표시됩니다.

  • 개선

    외부 편집기에서 .xms/.xmd 를 고치면 자동으로 감지해 확인 후 다시 읽어 들이고, 편집 중이던 탭과 커서 위치를 복원합니다.

04

운전 모드

  • 신규

    시뮬레이션 모드 — 프로젝트 옵션에서 켜면 IO·모터가 내장 가상 객체로 전환되어 하드웨어 없이 시퀀스를 실행합니다. 가상 모터는 속도·가감속 설정으로 이동 시간을 계산해 실제 보드처럼 위치가 증가하고(홈·조그·정지·일시정지 지원), 가상 IO 는 상태를 기억하며 Wait 호출 시 기대 상태를 자동 주입해 시퀀스가 스스로 진행됩니다. 타이틀바에 SIMULATION 배너가 표시되고, 일반 모드로 돌아올 때는 전체 출력 OFF·전 축 재원점을 요구합니다.

  • 신규

    정비 모드(Maintenance Mode) — LOTO 와 유사한 안전 작업 모드입니다. 진입하면 전체화면 오버레이로 조작을 막고 모터 동작·이벤트 함수·외부 스위치·단축키를 차단하며, 종료는 Engineer 이상 권한에서만 가능합니다. 스크립트 SYS.EnterMaintenance/ExitMaintenance 로 제어합니다.

  • 신규

    Tray 모드 — 장비 모드로 실행할 때 화면 없이 시스템 트레이에서 백그라운드로 동작합니다(트레이 메뉴 Show/Hide/Exit).

  • 신규

    윈도우 종료 처리 — PC 종료·로그오프 시 운전을 정지하고 런데이터를 자동 저장합니다. 스크립트 이벤트 OnWindowsShutdown 에서 종료를 거부할 수도 있습니다(프로젝트 옵션으로 설정).

  • 신규

    운영 모드 시스템 문제 알림 — 드라이버 로딩·설정 파일·통신 연결·스크립트 오류를 장비 화면에서 다이얼로그로 알려 줍니다(옵션 on/off, 문제가 없으면 표시되지 않음).

  • 신규

    운전 시작(Start) 시 Run 화면으로 자동 전환하는 옵션이 추가됐습니다(기본 꺼짐).

05

화면 디자인

새 디자인 컨트롤

  • 신규

    차트 — 꺾은선/막대(XBarChart)/원형(XRadialChart). X축 라벨 포맷·카테고리·표시 간격, 막대 상단 수량 표기, 시리즈 제목 다국어 지원.

  • 신규

    알람·이벤트 목록(XAlarmListView / XEventListView) — 검색·필터·CSV 내보내기·자동 스크롤, Ack/Reset/상세 버튼, 우선순위 색상 배지.

  • 신규

    시퀀스 표시기(XSequenceDisplay) — 모듈의 현재 스텝·사이클타임·스텝별 통과 횟수와 마지막 실행 시간을 한 화면에 표시.

  • 신규

    로딩 스피너(LoadingSpinner) — 5가지 모양 × 4가지 애니메이션, 값 연결로 자동 On/Off.

  • 신규

    방향 버튼(ArrowButton) — 상/하/좌/우/CW/CCW/Stop 벡터 아이콘, Click/Momentary/Toggle 모드, LED 인디케이터·라벨.

  • 신규

    원형 진행바(XCircularProgressBar), 타이머(XTimer, 화면 비표시), 터치 제스처 영역(XTouchArea, 스와이프), 날짜 선택(XDatePicker), 비밀번호 입력(XPasswordBox), 원/타원 도형(ShapeCircle), 항목 목록(XItemListBox), 시리얼 규칙 편집기(XSerialNumberRuleEditor).

  • 신규

    SVG 벡터 이미지 지원 — Image / ImageButton / ImageDisplay / AnimateImage 에서 PNG 와 동일하게 .svg 파일을 선택해 쓸 수 있습니다(해상도와 무관하게 선명).

표·목록 컨트롤

  • 신규

    DataGrid 컬럼 정렬 — 헤더 클릭으로 오름차순→내림차순→해제. 정렬 중에는 실시간 갱신을 멈춰 순서를 유지합니다.

  • 신규

    값별 글자색 · 상태 뱃지 — 셀 값에 따라 글자색이나 알약 모양 뱃지로 표시합니다. 전용 편집 다이얼로그와 템플릿 갤러리(OK/NG, Traffic, Grade 등)를 제공합니다.

  • 신규

    조건 서식 — 텍스트 포함, 숫자 초과/미만/이상/이하 규칙을 지원합니다.

  • 신규

    CheckBox 컬럼, 헤더 체크박스로 전체 토글(3상태).

  • 신규

    외곽 보더·코너 라운드·행 높이·스크롤바 표시 여부 등 디자인 속성이 추가됐습니다.

  • 신규

    컬럼 헤더와 콤보 항목 다국어 지원(옵션, 기존 프로젝트 영향 없음).

  • 신규

    스크립트에서 강제 갱신 — CONTROL["모듈::컨트롤"].RefreshData().

디자이너

  • 신규

    속성창 카테고리 그룹 — Layout / Appearance / Behavior / Data / Event 접이식 그룹으로 정리하고, Name·Caption 은 항상 최상단에 표시합니다. 접힘 상태를 기억하며 Name/Category 정렬을 고를 수 있습니다.

  • 개선

    작은 컨트롤을 선택하면 크기 조절기가 컨트롤을 덮어 마우스로 옮길 수 없던 문제를 해결하고, 선택한 컨트롤 위에서 이동 커서를 표시합니다.

  • 개선

    디자인 페이지에 알 수 없는 컨트롤이 있으면 조용히 사라지던 동작을 경고 창으로 알립니다(저장 시 삭제 위험 고지).

  • 개선

    이름이 바뀐 컨트롤이 RUN 모드에서만 사라지던 문제, 컨트롤 복사 시 이름이 _1_1_1 처럼 누적되던 문제를 해결했습니다.

  • 신규

    컨트롤을 더블클릭하면 해당 이벤트 스크립트 함수가 자동 생성되거나 편집기에서 열립니다.

  • 신규

    Show Design Window 미리보기가 화면보다 큰 디자인을 비율 유지 축소해 전체를 보여 줍니다.

터치 · 가상 키보드

  • 신규

    비전 화면(XvDisplay) 멀티터치 — 두 손가락 핀치 확대/축소, 드래그 이동, 더블탭 화면 맞춤.

  • 개선

    가상 키보드를 대폭 손봤습니다. 표시 배율 50~300% 조절, 한/영 전환 버튼과 물리 키보드 동기화, 캐럿 이동·삭제 키(Home/◀/▶/End/Del), 길게 누름 자동 반복, Enter 로 입력 확정. 한 번 눌렀는데 두 번 입력되거나 저절로 닫히던 터치 문제도 해결했습니다.

  • 개선

    한국어 IME 가 없는 OS 에서 자판이 한글로 잘못 표시되던 문제를 수정했습니다.

06

메시지 · 알람 · 다국어 · 테마

표시 언어

  • 신규

    Tools 메뉴 > 표시 언어(English/한국어) — 메뉴·툴바·탭·솔루션 탐색기·프로젝트 옵션·공용 다이얼로그가 즉시 해당 언어로 바뀝니다. 이미 열려 있는 탭 이름도 함께 갱신됩니다.

  • 개선

    프로젝트 언어를 바꿔도 메시지가 이전 언어로 계속 나오던 문제(재시작해야 반영되던 문제)를 해결했습니다.

  • 변경

    메시지 표시 언어 규칙을 통일했습니다 — 프로젝트 언어가 카탈로그에 없으면 영어로 표시합니다.

메시지 · 에러

  • 변경

    모든 안내·확인 메시지를 메시지 카탈로그 기반으로 전환했습니다. 윈도우 기본 MessageBox 를 없애고 하드코딩 문구 380여 곳을 메시지 코드로 통일해, 한/영 자동 전환과 프로젝트별 문구 변경이 가능합니다.

  • 신규

    메시지·에러 편집기를 JSON 카탈로그 편집기로 일원화했습니다(Ctrl+4 / Ctrl+5). 빌트인 / 프로젝트 메시지 / 프로젝트 에러를 한 화면에서 전환하고, 카테고리 트리·검색·다국어 인라인 편집·검증을 제공합니다.

  • 신규

    번역용 엑셀 내보내기/가져오기 — 코드·원문·번역 3컬럼의 단일 시트로 번역가에게 전달하고, 가져올 때 신규/변경/동일 건수를 미리 보여 줍니다. 자리표시자({0}) 일치 검증과 자동 백업이 함께 동작합니다.

  • 신규

    빌트인 메시지를 프로젝트로 복사하는 버튼을 추가했습니다(프로젝트에 없는 코드만 추가).

  • 개선

    여러 줄 메시지 처리를 정리했습니다 — 편집칸에 \n 이 글자로 보이던 문제, 에러 다이얼로그·로그에서 줄바꿈이 깨지던 문제를 해결했습니다.

알람 · 토스트

  • 신규

    알람 상태 머신 — Active → Acknowledged → Cleared → ResetRequired → Resetting → Completed. Ack(인지)와 Reset(복구 명령)의 의미를 분리했습니다(기존 호환용 Legacy 모드 기본 ON).

  • 신규

    알람 상세 다이얼로그 — 코드·시각·모듈·상태·우선순위·인지자와 본문(메시지/원인/조치)을 구조화해 표시하고 전체 복사를 지원합니다.

  • 신규

    토스트 알림ShowTimerMessage 를 비모달 토스트로 표시합니다. 프로젝트 옵션에서 위치·시간·폰트·색상·동시 표시 개수를 설정하고 실시간 미리보기로 확인합니다.

  • 신규

    스크립트 함수 ShowWarning / RegisterAlarmHandler / ClearAlarm / LogEvent 를 추가했습니다.

테마

  • 신규

    커스텀 테마 — 프로젝트 폴더 Themes 의 테마 파일(.xaml)을 골라 적용합니다. 별도 테마 편집기 유틸리티(QmsThemeEditor)도 제공됩니다.

  • 개선

    다크·커스텀 테마에서 글자가 배경에 묻히던 문제를 화면 전반에서 정리했습니다(메뉴 마우스오버, 버튼 캡션, 타이틀바, 트리 선택 항목, 속성창 제목, 입력칸 등). 테마 파일에 없는 색은 내장 테마에서 자동 보충합니다.

  • 변경

    사용하지 않던 Green 테마를 제거했습니다. 기본 제공 테마는 Light / Dark 입니다.

07

데이터베이스

  • 신규

    스크립트 DB 접근DB["이름"] 로 SELECT·파라미터 쿼리·트랜잭션·JSON 스키마 기반 테이블 생성·온라인 백업을 처리합니다. SQLite 와 MSSQL 을 지원합니다.

  • 신규

    Database Studio — Structure / Data / SQL 3탭. 스키마를 표 형식으로 편집하고(드롭다운·템플릿·원클릭 컬럼), SQL 편집기에서 구문 강조·F5 실행·선택 실행·히스토리를 사용합니다.

  • 신규

    Database Connections — 연결을 카드 목록으로 관리하고 연결 테스트·자동 백업을 설정합니다. SQLite 경로 변경 시 파일 이동/복사 여부를 물어봅니다.

  • 신규

    Database Events — DB 이벤트 8종(열림/닫힘/오류/백업/원격 등)의 구현 여부를 확인하고 한 번에 추가할 수 있습니다.

  • 신규

    DB 자동완성 — DB[ 이름 목록과 멤버 자동완성을 지원합니다.

  • 개선

    CSV 내보내기 등 DB 조회 중 프로그램이 로그 없이 종료되던 문제, 테이블 스키마를 불러올 때 즉시 종료되던 문제를 해결했습니다.

08

사용자 관리 · 보안

  • 신규

    계정 체계 재작성 — 비밀번호를 PBKDF2-SHA256 으로 저장하고 사용자 데이터를 AES-256 으로 암호화합니다. 감사 로그(Audit Trail)는 해시 체인으로 위변조를 검출합니다.

  • 신규

    정책 설정 — 비밀번호 최소 길이·만료 일수·만료 사전 경고·이력 재사용 금지·로그인 실패 잠금·미사용 계정 비활성화·관리자 리셋 후 변경 강제.

  • 신규

    자동 로그아웃 — 무반응(Idle) 시간과 가동 중 로그아웃 시간을 분 단위로 설정합니다(0=사용 안 함). 자동 운전 중에는 무시하고, 스크립트로 일시 억제할 수 있습니다.

  • 신규

    사용자 관리 화면 — Users / Audit Log / Policy 탭, 계정 상태를 색·배지로 표시, 잠금 해제·임시 비밀번호 발급, 변경 발생 시 실시간 자동 갱신.

  • 신규

    스크립트 로그인 API — GUI.Login(id, pw), GUI.IsLoggedIn, GUI.CurrentUserId/CurrentUserName, 실패 사유 조회(LastLoginResult/LastLoginMessage).

  • 변경

    권한 요구 레벨이 Developer 미만이고 해당 빌트인 계정의 비밀번호가 비어 있으면 로그인 창 없이 통과하는 옵션이 기본 켜짐으로 바뀌었습니다. 항상 로그인 창을 띄우려면 프로젝트 옵션에서 해제하세요. Developer 레벨은 옵션과 무관하게 항상 로그인 창을 표시합니다.

  • 변경

    비밀번호 최소 길이 기본값이 8 에서 0(제한 없음)으로 바뀌었습니다.

  • 신규

    로그인 화면·비밀번호 변경 화면 다국어 지원 및 프로젝트 디자인 폰트 적용.

09

모터 · IO · 실린더

모터

  • 신규

    일시 정지 / 재개 — 이동 중 감속 정지 후, 재개하면 원래 목표 위치까지 이어서 이동합니다. 즉시 감속 정지(MotionHold)와 진행 중 이동을 마치고 정지(StepBoundary) 중 정책을 고를 수 있습니다. 원점복귀·센서 검색 이동과 갠트리 슬레이브 축은 제외되며, 컨베이어처럼 계속 돌아야 하는 축은 모터별 PauseEnable 로 제외합니다.

  • 신규

    함수 연결 표시 — 모터 리스트에 Check/PreHome/AfterHome 연결 램프와 함수 이름, 'Check Function' 컬럼을 추가했습니다. 이름은 지정됐지만 연결되지 않은 함수는 흐리게 표시하고 사유를 툴팁으로 안내합니다.

  • 신규

    모터 설정 화면에서 +/X 버튼으로 Check/PreHome/AfterHome 함수를 즉시 만들고 연결합니다.

  • 개선

    모터 테스트 화면을 정비했습니다 — 하단 STATUS 상태줄로 마지막 조작 결과 표시, 상태 헤더를 기능별 컬러 벡터 아이콘으로 변경, 'In Motion' 상태 컬럼 추가, 사용하지 않는 신호 자동 숨김.

  • 개선

    Motor Repeat / Cylinder Test 에서 동작 실패 시 원인 메시지를 담은 에러 알람을 표시합니다.

  • 개선

    모터 표시 컨트롤(MotorDisplay)의 상태 아이콘·램프 색상·칸 표시 여부를 속성으로 조절할 수 있습니다.

IO

  • 신규

    IO 편집기에서 함수 연결 — 체크/이벤트 함수를 +/X 버튼으로 생성·연결하고 설정 파일에 저장합니다. 리스트에 연결 상태(초록 점 + 함수 이름) 컬럼이 표시되고, 편집기를 열어 둔 채 빌드해도 자동 갱신됩니다.

  • 신규

    IO 체크/이벤트 함수가 (name, state) 두 번째 인자로 켜짐/꺼짐 값을 바로 받습니다.

  • 개선

    IO 상태 감시를 전용 스레드로 분리해, 이벤트 스크립트의 Sleep 이 화면을 멈추지 않습니다.

  • 신규

    Custom IO 모듈 — IN/OUT 방향과 개수를 직접 입력해 IN32OUT32, IN48OUT48 같은 임의 모듈을 만들 수 있습니다(비대칭 개수 지원, 모듈당 최대 1000점).

  • 개선

    IO 개수가 많은 모듈을 선택할 때 리스트가 버벅이던 문제를 해결했습니다.

타워램프 · 자재

  • 신규

    멀티부저 지원 — 부저 모드(단일/4채널/15조합)와 K1~K4 IO, 상태별 사운드 번호를 설정합니다. 스크립트 TOWERLAMP.SetBuzzerSound/PlayBuzzerSound 도 추가됐습니다.

  • 개선

    타워램프 편집기를 정비했습니다 — 색상별 헤더 배경, 미사용 색상 자동 숨김, 삭제 확인, 편집 내용 유실·원본 동반 변경 문제 해결.

  • 신규

    자재 컨테이너 기능 확장 — Map 좌표 검색(GetDevicePos 계열), 용량·맵 크기 설정, EmptyCount/IsFull/IsEmpty, 자재 이동 원자화(이동 중 자재가 사라지지 않도록 사전 확인).

10

비전

  • 변경

    EasyVision 이 QVision 으로 이름이 바뀌었습니다(드라이버명 "QVision", 샘플 QVisionSample).

  • 신규

    OCR 툴 — 문자 영역 분할과 학습 폰트 매칭으로 문자를 인식하고, 폰트 파일 하나에 OCR 설정과 문자 패턴을 함께 저장/복원합니다.

  • 개선

    형상 찾기(Find) 정확도 개선 — 에지 극성 매칭(Normal/Inverse/Any 등 6모드), 모델 에지 기준 점수, 에지 매칭 허용오차, 어두운 배경용 Canny 자동 조절, 학습 이미지를 다시 찾을 때 점수가 낮게 나오던 문제 해결.

  • 신규

    게이지 추가 — 마름모(Rhombus) 게이지, 원형 게이지 표시 개선.

  • 개선

    비전 오브젝트 에디터 개편 — 카메라/이미지/툴 목록을 트리 하나로 통합하고 다국어를 적용했습니다. 저장 확인 없이 변경이 사라지던 문제도 해결했습니다.

  • 신규

    RTSP/IP 카메라 드라이버(XRtspCamera) — CameraID 에 rtsp:// URL 을 입력해 연결하고, 끊기면 자동 재접속합니다. 저지연 옵션과 GPU 하드웨어 디코딩을 지원합니다.

  • 개선

    USB 카메라 자동 복구 — 프레임 끊김을 감지하면 재연결하고, 무반응 시 과거 프레임이 계속 촬영되던 문제를 해결했습니다.

  • 신규

    QR 종합 등급 조회(ISO 15415 / ISO 29158)를 지원합니다.

11

통신 · 드라이버

신규 드라이버

  • 신규

    FCAT — Floware EtherCAT 기반 모션/IO 드라이버. 리미트·홈 센서 조회, InPosition 신호, CiA402 원점복귀 방식 지정, 마스터 재시작·비정상 종료 감지를 지원합니다.

  • 신규

    LS PLC (XGT FEnet) — TCP 클라이언트. % 없이 D7000, M100.5 처럼 간편 표기로 입력할 수 있습니다.

  • 신규

    Dynamark K300 프린터 — 잉크 잔량·온도·전압·RPM 등 상태 조회, 잡 전환, 5개 언어 에러 메시지.

  • 신규

    UV Controller(RS485), Phoseon FireJet UV 경화기.

  • 신규

    웹 원격 제어(QWebRemote) — 폰·태블릿·PC 브라우저로 접속해 IO/모터/실린더를 확인합니다. 모터는 방향별 조그 다이얼과 속도 선택을 제공하며, 장비 가동 중에는 조작이 차단되고 통신이 끊기면 모터가 자동 정지합니다.

  • 신규

    QMachineNet — 유닛별 RGB LED 제어, StallGuard 시계열 수집, 펌웨어 버전 조회.

기존 드라이버 개선

  • 신규

    아진 모터 드라이버에 가감속 프로파일 모드(대칭/비대칭 사다리꼴, 유사 S커브, 대칭/비대칭 S커브)와 S커브 저크 설정을 추가했습니다(기본값은 기존과 동일).

  • 신규

    아진 EtherCAT 슬레이브 누락 감지 — 설정 축수와 실제 인식 축수가 다르면 명확한 에러 로그와 함께 모션을 차단해, 축이 밀려 엉뚱한 축에 명령이 나가는 사고를 막습니다.

  • 개선

    ModBus TCP/RTU 패킷 분할 수신, TCP 재접속, LS PLC 응답 매칭 등 통신 안정성을 전반적으로 보강했습니다.

  • 개선

    드라이버가 의존 DLL(네이티브 런타임 포함)을 하위 폴더에서도 찾도록 검색 경로를 보강했습니다.

12

배포 · Git · 설치

  • 신규

    배포 도구 개편 — 체크박스 17개 조합 대신 배포 목적 4종(Project Update / Project Full / Program Update / Full Package)을 고르는 방식으로 바꿨습니다. 예상·경과 시간과 진행바를 표시하고, 완료하면 폴더를 자동으로 엽니다. 개발용 파일(.git, DevDocs, *.bak/tmp/log 등)은 자동 제외됩니다.

  • 신규

    바이너리 배포 — 스크립트 소스(.xms) 없이 컴파일본(.xmc)만 배포합니다. 배포본은 실행 전용으로 동작하며 Studio 진입과 코드 수정이 불가능합니다(스크립트 엔진이 Bytecode 일 때만 가능).

  • 신규

    Git 연동 — File 메뉴에 Git Add / Revert / Push 를 추가했습니다. 커밋 창에서 변경 파일을 체크박스로 골라 바로 커밋하고, 파일 상태를 벡터 아이콘(수정·추가·삭제·이름변경 등)으로 구분하며, 파일명을 더블클릭하면 Diff 를 확인합니다. 화면은 한국어/영어를 지원합니다.

  • 신규

    설치 프로그램(InnoSetup) — 한국어/영어/일본어 설치 마법사와 사용권 계약서를 제공합니다. 설치 후 이 릴리스 노트를 선택한 언어로 열 수 있습니다.

  • 신규

    오픈소스 라이선스 고지 — Help 메뉴에서 사용 중인 오픈소스 패키지·저작권·라이선스 전문을 확인할 수 있고, 배포물에 Licenses 폴더가 함께 들어갑니다.

  • 신규

    릴리스 노트 보기 — Help 메뉴에서 이 문서를 영어·한국어·일본어·중국어로 열 수 있습니다.

  • 신규

    머신 아이콘(.ico)을 프로젝트 옵션에 등록하면 바탕화면 바로가기가 자동으로 생성됩니다(고객사별 아이콘).

13

라이선스

  • 변경

    에디션 정리 — Trial(체험) / QMachineStudio Free(무료 개발) / Licensed(정품) 3단계로 정리했습니다. 신규 프로젝트 생성·편집·저장·빌드는 모든 에디션에서 제한이 없고, 체험이 끝나도 개발·시뮬레이션은 기간 제한 없이 계속 사용할 수 있습니다.

  • 변경

    체험 기간은 30일입니다.

  • 신규

    유예 운전 — 가동 중 동글 접촉이 순간적으로 끊겨도 30초까지는 무시하고, 상실이 확정되면 48시간 유예 운전을 허용합니다(임시 가동 코드를 발급받는 동안 라인이 멈추지 않도록). 화면 상단에 남은 유예 시간을 배너로 표시하며, 동글이 다시 인식되면 유예가 해제됩니다.

  • 신규

    S/W 라이선스 등록 — 별도 프로그램 없이 License 대화상자에서 시스템 코드를 확인·복사하고 발급 파일을 가져와 등록할 수 있습니다. 이 PC 용 파일인지 자동으로 검증합니다.

  • 신규

    USB 동글 V2 포맷 — 암호화로 위·변조를 차단하고 프로젝트 코드를 내장합니다. 기존 V1 동글은 그대로 인식됩니다.

  • 신규

    프로젝트 전용 라이선스 — 특정 프로젝트 전용으로 발급된 키는 코드가 일치하는 프로젝트만 실행합니다. 프로젝트 옵션에 Project Code 탭이 생겼습니다(Master 키를 꽂았을 때만 표시).

  • 신규

    QMS License Studio — 라이선스 발급 도구를 새로 만들었습니다. 다중 동글 대상 선택, 쓰기 전 변경 확인, 발급 이력 관리, 템플릿(발급 사양 포함), 다국어·라이트/다크 테마를 지원합니다.

  • 개선

    동글 읽기 속도를 크게 높이고(256B 기준 약 140ms → 약 16ms), 읽기/쓰기 실패 시 자동 재시도와 기록 후 재검증을 추가했습니다. 동글 무응답으로 프로그램이 얼어붙던 문제도 해결했습니다.

  • 개선

    동글이 꽂혀 있으면 축수·프로젝트 코드 검사가 무시되던 문제를 수정했습니다. 카메라 수도 함께 검사합니다.

  • 신규

    About·스플래시·라이선스 화면에 현재 에디션과 라이선스 등급(RunTime/Developer/Master)을 표시합니다.

14

성능 · 안정성

  • 개선

    프로젝트 열기·시작 속도 — IO/모터/실린더/비전 병렬 로딩, 디자인 뷰 컨트롤 스캔 캐시 공유, 파일 이중 파싱 제거, 툴박스 구성 지연, 시스템 폰트 목록 백그라운드 준비, 스플래시 페이드아웃 단축(2초 → 0.5초).

  • 개선

    메모리 누수 해결 — 개발자↔런타임 모드 전환을 반복하면 메모리가 계속 늘어나던 문제를 해결했습니다(이전 RUN 화면 세대 미해제, Window 형 ViewModule 미종료, 점멸 컨트롤의 전역 이벤트 잔류, 메시지·알람 팝업 누적, 비전 화면 세대 누적).

  • 개선

    스레드 안전성 — 스크립트 배열 동시 사용, 난수 생성, DB 동시 접근, 라이선스 폴링 등에서 드물게 발생하던 오류·멈춤을 제거했습니다.

  • 개선

    로그 폭주 억제 — 같은 스텝 오류가 반복되면 최초 1회만 기록하고 반복 횟수를 집계해, 해제 시 요약을 남깁니다. 미연결 장치의 반복 실패 로그도 일정 간격으로만 기록합니다.

  • 개선

    비정상 종료 원인 기록 — 예전에는 로그 없이 종료되는 경우가 있었으나, 이제 원인이 로그에 남습니다. 파일 대화상자·셸 확장 오류로 종료되던 경로도 방어했습니다.

  • 개선

    모듈을 삭제해도 모니터링·시퀀스 스레드가 계속 동작하던 문제, 데이터 표시 컨트롤의 갱신 타이머가 중복 등록되어 CPU 가 늘던 문제를 해결했습니다.

  • 개선

    프로젝트를 닫고 다른 프로젝트를 열 때 모터·IO·실린더·페이지 레벨 데이터가 이전 프로젝트 값으로 남던 문제를 해결했습니다.

  • 신규

    프로젝트 자동 백업 — 백업 폴더와 보관 세대 수를 지정해 최신 N개를 유지합니다(오래된 폴더 자동 정리).

15

샘플 프로젝트

  • 신규

    ScriptTutorial — XScript 학습용 18개 레슨 커리큘럼. 왼쪽에 코드, 오른쪽에 실행 결과가 나오는 학습 화면입니다.

  • 신규

    ScriptSyntaxSample — 문법을 분류별 버튼으로 테스트하고, 같은 코드를 구/신 엔진에서 실행해 결과를 비교합니다.

  • 신규

    SequenceSample — 시퀀스 학습용. 픽커/컨베이어 5개 모듈이 연동되며 DEVICE 이동과 시퀀스 상태를 화면에서 확인합니다.

  • 신규

    ChartDemo(차트), CameraSample(RTSP 카메라), DB_Sqlite(DB CRUD·트랜잭션), ModBus TCP Client 샘플.

16

업그레이드 시 확인 사항

3.x 프로젝트를 4.0 에서 열 때 동작이 달라질 수 있는 항목입니다. 현장 적용 전에 한 번 확인해 주세요.

  1. 01

    스크립트 엔진 기본값이 신 엔진(Bytecode)으로 바뀌었습니다. 대부분의 스크립트는 그대로 동작하지만, 기존에 조용히 넘어가던 오류가 컴파일 에러로 표면화될 수 있습니다. 문제가 생기면 도구 옵션 > Script Engine 에서 Legacy 로 되돌릴 수 있습니다.

  2. 02

    배포용 .xmc 형식이 바뀌었습니다. 바이너리 배포 전에 스크립트 빌드(F6)로 다시 생성해 주세요. 소스가 없어진 .xmc 는 배포 시 자동으로 제외됩니다.

  3. 03

    스텝과 같은 이름의 함수가 있으면 시퀀스 스텝이 실행되지 않던 문제를 이름 분리로 해결했습니다. 같은 이름의 함수를 두 번 선언하면 이제 빌드 오류로 표시됩니다.

  4. 04

    배열 범위 밖 쓰기가 런타임 오류가 됩니다. 배열 크기는 arr.Count 지정으로만 바꿔 주세요.

  5. 05

    세미콜론 자동 삽입이 없어졌습니다. 저장 시 입력한 원본이 그대로 보존됩니다.

  6. 06

    빈 비밀번호 자동 로그인 옵션이 기본 켜짐으로 바뀌었고, 비밀번호 최소 길이 기본값이 0 이 되었습니다. 항상 로그인 창을 띄우려면 프로젝트 옵션에서 조정하세요.

  7. 07

    토스트 기본값이 '상단 가운데 / 폰트 20' 으로 바뀌었습니다(프로젝트 옵션 > Toast 탭).

  8. 08

    새 함수의 기본 리턴 타입이 bool 입니다(FUNCTION bool 이름() + return true).

  9. 09

    Green 테마가 제거되었습니다. Light / Dark 또는 커스텀 테마를 사용하세요.

  10. 10

    Map 컨테이너의 행 검색 함수(GetDeviceRow / GetDeviceRankRow / GetEmptyRow)가 삭제되고 GetDevicePos 계열로 대체되었습니다.

  11. 11

    MOTION 키워드가 제거되었습니다. 보간 구동은 DRIVER["드라이버명"] 으로 호출하세요.

  12. 12

    이름 변경 — EasyVision → QVision, JogArrowButton → ArrowButton(기존 저장 파일은 자동 호환), Message Editor → Message Error Editor.

  13. 13

    일련번호 규칙 파일(SerialRules.XDF) 위치가 프로젝트 루트에서 XData 폴더로 이동합니다(프로젝트를 열 때 자동 이동, 별도 작업 불필요).

  14. 14

    메시지/에러 번역 엑셀 포맷이 단일 시트 통합 방식으로 바뀌었습니다(구버전 3시트 파일도 가져오기 시 자동 인식).

  15. 15

    스크립트·디자인 모듈을 삭제하면 즉시 삭제됩니다(예전에는 Backup 폴더로 옮겼습니다). 필요하면 프로젝트 자동 백업 옵션을 사용하세요.

구독 신청