콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

Error Codes#

Error Codes camera feature 기능을 사용하면 카메라에서 Error Codes을(를) 읽을 수 있습니다.

여러 개의 서로 다른 에러가 발생한 경우 에러 리스트에 저장되며 하나씩 조회할 수 있습니다.

기능 사용법#

작동 원리#

카메라는 특정 에러를 감지할 수 있습니다. 이러한 에러가 발생하면 카메라는 해당 에러에 error code를 부여하고 이를 memory에 저장합니다.

여러 개의 서로 다른 에러가 발생하는 경우 카메라는 감지된 각 에러 유형에 대한 코드를 저장합니다. 카메가는 해당 에러가 감지된 횟수와 관계없이 각 코드를 한 번만 저장합니다.

Error Codes 확인#

Error Codes 확인은 카메라 모델과 발생한 에러 수에 따라 달라지는 반복 프로세스입니다.

ace 2, boost, dart M/R, racer 2 카메라#

Basler ace 2, boost, dart M/R, racer 2 카메라는 Basler 지원팀에서 평가할 수 있는 에러 목록을 생성할 수 있습니다.

ace 2, boost, dart M/R, racer 2 카메라에서 error codes를 확인하는 방법:

  1. 다음의 값을 가져옵니다: BslErrorPresent 파라미터.
  2. 파라미터 값이 true:
    1. 다음의 값을 가져옵니다: BslErrorReportValue 파라미터.
    2. 추후 참고할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
    3. 다음을 실행합니다. BslErrorReportNext 명령입니다. 이를 통해 장치에서 다음 error code를 가져옵니다.
    4. 다음 항목이 될 때까지 a) ~ c) 단계를 반복합니다. BslErrorReportValue 파라미터 값이 0. 파라미터 값이 0이면 가져올 error code가 더 이상 없음을 의미합니다.
    5. Basler 고객지원센터에 Error Codes 목록을 문의하세요.

ace U/L 카메라#

Basler ace U/L 카메라는 사용자가 직접 수정하거나 Basler 지원팀에서 평가할 수 있는 에러 목록을 생성할 수 있습니다.

ace U/L GigE 카메라에서 error codes를 확인하는 방법:

  1. 다음의 값을 가져옵니다: LastError 파라미터.
  2. 추후 참고할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
  3. 다음을 실행합니다. ClearLastError 명령입니다. 이를 통해 error codes 목록에서 마지막 error code를 삭제합니다.
  4. 다음 단계가 될 때까지 1) ~ 3단계를 반복합니다. LastError 파라미터 값이 NoError.
  5. 아래 표를 참조하여 에러를 해결하거나 에러 코드 리스트와 함께 Basler 지원팀에 문의하세요.
사용 가능한 Error Codes#

다음 표는 Basler ace U/L 카메라에만 적용됩니다.

LastError Enumerator 의미
NoError error memory가 마지막으로 지워진 이후 카메라이 감지한 에러가 없습니다.
Overtrigger Overtrigger가 발생했습니다.
카메라가 준비되지 않은 상태에서 사용자가 카메라에 트리거 신호를 보냈습니다.
Userset User Sets을(를) 로드하는 동안 에러가 발생했습니다. 일반적으로 이는 User Sets에 유효하지 않은 값이 포함되어 있음을 의미합니다. 다른 User Sets을(를) 로드해 보세요.
InvalidParameter 허용 범위를 벗어났거나 유효하지 않은 파라미터가 입력되었습니다. 일반적으로 이 에러는 사용자가 직접 레지스터 액세스를 통해 파라미터를 설정할 때만 발생합니다.
OverTemperature 카메라는 Temperature State 기능을 지원하며 over temperature threshold를 초과했습니다. 이 에러는 카메라 부품에 손상이 발생할 수 있음을 나타냅니다.
PowerFailure 이 에러는 전원 공급이 충분하지 않음을 나타냅니다.
전원 공급 장치를 확인하십시오.
InsufficientTriggerWidth 이 오류는 트리거가 최소 Exposure Time보다 짧을 때 Trigger Width exposure mode에서 보고됩니다.

샘플 코드#

ace, boost, dart M 및 dart R 카메라#
// Check whether an error occurred on the device
bool errorPresent = camera.BslErrorPresent.GetValue();
// Get the first error code
int64_t errorReportValue = camera.BslErrorReportValue.GetValue();
// Retrieve the next error code from the device
camera.BslErrorReportNext.Execute();
INodeMap& nodemap = camera.GetNodeMap();
// Check whether an error occurred on the device
bool errorPresent = CBooleanParameter(nodemap, "BslErrorPresent").GetValue();
// Get the first error code
int64_t errorReportValue = CIntegerParameter(nodemap, "BslErrorReportValue").GetValue();
// Retrieve the next error code from the device
CCommandParameter(nodemap, "BslErrorReportNext").Execute();
// Check whether an error occurred on the device
bool errorPresent = camera.Parameters[PLCamera.BslErrorPresent].GetValue();
// Get the first error code
Int64 errorReportValue = camera.Parameters[PLCamera.BslErrorReportValue].GetValue();
// Retrieve the next error code from the device
camera.Parameters[PLCamera.BslErrorReportNext].Execute();
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
_Bool errorPresent = false;
int64_t errorReportValue = 0;
/* Check whether an error occurred on the device */
errRes = PylonDeviceGetBooleanFeature(hdev, "BslErrorPresent", &errorPresent);
CHECK(errRes);
/* Get the first error code */
errRes = PylonDeviceGetIntegerFeature(hdev, "BslErrorReportValue", &errorReportValue);
CHECK(errRes);
/* Retrieve the next error code from the device */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslErrorReportNext");
CHECK(errRes);
# Check whether an error occurred on the device
errorPresent = camera.BslErrorPresent.Value
# Get the first error code
errorReportValue = camera.BslErrorReportValue.Value
# Retrieve the next error code from the device
camera.BslErrorReportNext.Execute()
ace U/L 카메라#
// Get the value of the last error code in the memory
LastErrorEnums lasterror = camera.LastError.GetValue();
// Clear the value of the last error code in the memory
camera.ClearLastError.Execute();
INodeMap& nodemap = camera.GetNodeMap();
// Get the value of the last error code in the memory
String_t lasterror = CEnumParameter(nodemap, "LastError").GetValue();
// Clear the value of the last error code in the memory
CCommandParameter(nodemap, "ClearLastError").Execute();
// Get the value of the last error code in the memory
string lasterror = camera.Parameters[PLCamera.LastError].GetValue();
// Clear the value of the last error code in the memory
camera.Parameters[PLCamera.ClearLastError].Execute();
size_t len = 0;
char lasterror_str[64] = {0};
/* Get the value of the last error code in the memory */
len = sizeof(lasterror_str);
errRes = PylonDeviceFeatureToString(hdev, "LastError", lasterror_str, &len);
CHECK(errRes);
/* Clear the value of the last error code in the memory */
errRes = PylonDeviceExecuteCommandFeature(hdev, "ClearLastError");
CHECK(errRes);
# Get the value of the last error code in the memory
lasterror = camera.LastError.Value
# Clear the value of the last error code in the memory
camera.ClearLastError.Execute()

또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.