그래버 구성하기
구성은 모든 이미지 수집 프로그램에서 매우 중요한 부분입니다.
● | 카메라와 프레임 그래버는 모두 응용 프로그램 요구 사항에 따라 구성해야 합니다. |
● | 카메라 구성은 프레임 그래버 구성과 호환되어야 하며 반대의 경우도 마찬가지입니다. |
구성은 기본적으로 원격 장치 (즉, 카메라), 인터페이스, 장치 또는 데이터 스트림 모듈과 같은 그래버 모듈에서 수행되는 일련의 설정/가져 오기 작업으로 이어집니다.
이 프로그램은 소위 RG 제어 모드 (비동기식 리셋 카메라 제어, 프레임 그래버 제어 노출)를 위해 그래버를 구성합니다.
#include <iostream>
#include <EGrabber.h>
const double FPS = 150;
void configure() {
Euresys::EGenTL gentl;
Euresys::EGrabber<> grabber(gentl);
// camera configuration
grabber.setString<Euresys::RemoteModule>("TriggerMode", "On"); // 1
grabber.setString<Euresys::RemoteModule>("TriggerSource", "CXPin"); // 2
grabber.setString<Euresys::RemoteModule>("ExposureMode", "TriggerWidth"); // 3
// frame grabber configuration
grabber.setString<Euresys::DeviceModule>("CameraControlMethod", "RG"); // 4
grabber.setString<Euresys::DeviceModule>("CycleTriggerSource", "Immediate"); // 5
grabber.setFloat<Euresys::DeviceModule>("CycleMinimumPeriod", 1e6 / FPS); // 6
}
int main() {
try {
configure();
} catch (const std::exception &e) {
std::cout << "error: " << e.what() << std::endl;
}
}
1. | 카메라에서 트리거를 사용합니다. |
2. | CoaXPress 링크에서 트리거를 찾도록 카메라에 지시합니다. |
3. | TriggerWidth 노출 모드를 사용하도록 카메라를 구성하십시오. |
4. | 프레임 그래버의 카메라 제어 방법을 RG 로 설정하십시오. 이 모드에서 카메라 사이클은 프레임 그래버에 의해 시작되고 노출 지속 시간은 프레임 그래버에 의해 제어됩니다. |
5. | 하드웨어 또는 소프트웨어 트리거를 기다리지 않고 프레임 그래버에게 (CycleMinimumPeriod 에 의해 정의된 속도로) 카메라 사이클을 시작하도록 알려줍니다. |
6. | 프레임 속도를 구성하십시오. |
그러나 그래버를 구성하는 더 좋은 방법이 있습니다. 스크립트 파일을 사용하면 프로그램이 다음과 같이 됩니다.
#include <iostream>
#include <EGrabber.h>
void configure() {
Euresys::EGenTL gentl;
Euresys::EGrabber<> grabber(gentl);
grabber.runScript("config.js");
}
int main() {
try {
configure();
} catch (const std::exception &e) {
std::cout << "error: " << e.what() << std::endl;
}
}
구성 스크립트는 다음과 같습니다:
var grabber = grabbers[0];
var FPS = 150;
// camera configuration
grabber.RemotePort.set("TriggerMode", "On");
grabber.RemotePort.set("TriggerSource", "CXPin");
grabber.RemotePort.set("ExposureMode", "TriggerWidth");
// frame grabber configuration
grabber.DevicePort.set("CameraControlMethod", "RG");
grabber.DevicePort.set("CycleTriggerSource", "Immediate");
grabber.DevicePort.set("CycleMinimumPeriod", 1e6 / FPS);
스크립트 파일을 사용하면 몇 가지 이점이 있습니다:
● | 구성은 응용 프로그램을 다시 컴파일하지 않고 변경할 수 있습니다. 이를 통해 개발주기가 단축되고 랩 또는 현장에서 구성을 업데이트할 수 있습니다. |
● | 구성 스크립트는 GenICam Browser 및 커맨드 라인 gentl 도구로 로드할 수 있습니다. 이렇게 하면 사용자 응용 프로그램 외부의 구성을 확인할 수 있습니다. |
● | 구성 스크립트는 다른 프로그래밍 언어로 작성된 여러 응용 프로그램에서 쉽게 공유할 수 있습니다: C++, C#, VB.NET... |
● | Euresys GenApi스크립트의 모든 기능을 사용할 수 있습니다. |