XScript 매뉴얼 · Chapter 14

DRIVER — 프로젝트 드라이버

DRIVER 는 프로젝트에 등록한 드라이버 DLL 객체에 스크립트에서 접근하는 키워드입니다. DRIVER["드라이버이름"] 형태로 해당 드라이버 인스턴스를 가져와 메서드를 호출합니다.

과거 버전의 고정 MOTION 보간 객체(다축 직선/원호 보간)는 제거되었습니다. 장비 고유의 보간·통신·특수 제어는 이제 프로젝트 드라이버 DLL 로 구현하고 DRIVER["…"] 로 호출합니다. 따라서 DRIVER 가 제공하는 메서드는 고정되어 있지 않고, 연결한 드라이버 DLL 이 정의한 메서드에 따라 달라집니다.

프로젝트 드라이버란

프로젝트 드라이버는 XDriverBase 추상 클래스를 상속한 클래스를 담은 .NET DLL 입니다. QMachineStudio 는 등록된 DLL 을 로드하여 XDriverBase 를 상속한 클래스를 찾고, 인스턴스를 생성해 DRIVER["이름"] 으로 노출합니다. 스크립트 편집기의 자동완성에도 해당 클래스의 멤버가 표시됩니다.

기반 클래스 (XDriverBase)

모든 프로젝트 드라이버가 공통으로 갖는 멤버입니다. 그 외 메서드는 각 드라이버 DLL 이 직접 정의합니다.

멤버타입설명
DriverNamestring드라이버 이름(등록한 이름)
IsInitializedbool초기화 완료 여부
Initialize()bool드라이버 초기화. 성공 시 true
Close()void드라이버 종료·자원 해제

드라이버 등록

Solution ExplorerProject Driver Editor 노드를 열고 Add Driver 로 드라이버 이름과 DLL 을 등록합니다. 여기서 지정한 이름이 스크립트의 DRIVER["이름"] 키가 됩니다.

스크립트에서 호출

// 등록한 드라이버 "MyBoard" 가져오기
if (DRIVER["MyBoard"].IsInitialized == false)
{
    if (DRIVER["MyBoard"].Initialize() == false)
    {
        return;
    }
}
 
// 드라이버 DLL 이 정의한 메서드 호출 (메서드 이름·시그니처는 드라이버 구현에 따름)
DRIVER["MyBoard"].DoSomething(100, true);
 
// 종료
DRIVER["MyBoard"].Close();
  • 메서드 이름·인자·반환형은 드라이버 DLL 구현을 따릅니다. 위 DoSomething 은 예시이며 실제 메서드는 드라이버마다 다릅니다.
  • 등록되지 않은 이름으로 접근하면 드라이버를 찾지 못해 런타임 오류가 발생합니다. 사용 전 등록 여부와 IsInitialized 를 확인하세요.

하드웨어 보드 백엔드

I/O · 모터 · 통신 · 비전 보드도 프로젝트 드라이버로 백엔드를 구현할 수 있습니다. 이 경우 MOTOR · Digital I/O · Communication 등 표준 객체가 내부적으로 해당 드라이버를 사용하므로, 스크립트는 보통 표준 객체로 제어하고 DRIVER 는 드라이버 고유 기능을 직접 호출할 때 사용합니다.

관련 항목