Error Codes#
여러 서로 다른 오류가 발생하는 경우 오류 목록에 저장되며 하나씩 조회할 수 있습니다.
기능 사용#
작동 방식#
카메라는 특정 오류를 감지할 수 있습니다. 이러한 오류가 발생하면 카메라는 이 오류에 error code를 부여하고 해당 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를 확인하는 방법:
- 다음의 값을 가져옵니다.
BslErrorPresent파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다. - 파라메터 값이
true:- 다음의 값을 가져옵니다.
BslErrorReportValue파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다. - 나중에 참조할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
- 다음을 실행합니다.
BslErrorReportNext명령입니다. 이를 통해 장치에서 다음 Error Code를 가져옵니다. - 다음 항목이 될 때까지 a) ~ c) 단계를 반복합니다.
BslErrorReportValue파라미터 값은0. 매개변수 값이 0이라는 것은 더 이상 가져올 Error Codes가 없음을 의미합니다. - Error Codes 목록과 함께 Basler 지원팀에 문의하십시오.
- 다음의 값을 가져옵니다.
ace U/L 카메라#
Basler ace U/L 카메라는 사용자가 직접 수정하거나 Basler 지원팀에서 평가할 수 있는 오류 목록을 생성할 수 있습니다.
ace U/L GigE 카메라에서 Error Codes를 확인하는 방법:
- 다음의 값을 가져옵니다.
LastError파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다. - 나중에 참조할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
- 다음을 실행합니다.
ClearLastError명령입니다. 이를 통해 Error Codes 목록에서 마지막 Error Code가 삭제됩니다. - 다음 항목이 될 때까지 1) ~ 3) 단계를 반복합니다.
LastError파라미터 값은NoError. - 아래 표를 참조하여 오류를 해결하거나 Error Codes 목록과 함께 Basler 지원팀에 문의하십시오.
사용 가능한 Error Codes#
다음 표는 Basler ace U/L 카메라에만 적용됩니다.
| LastError Enumerator | 의미 |
|---|---|
| NoError | 오류 Memory가 마지막으로 지워진 이후로 카메라에서 감지된 오류가 없습니다. |
| Overtrigger | Overtrigger가 발생했습니다. 카메라가 준비되지 않은 상태에서 사용자가 카메라에 트리거 신호를 인가했습니다. |
| User Sets | User Sets을(를) 로드하는 동안 오류가 발생했습니다. 일반적으로 이 오류는 User Sets에 유효하지 않은 값이 포함되어 있음을 의미합니다. 다른 User Sets을(를) 로드해 보십시오. |
| InvalidParameter | 입력된 파라미터가 허용 범위를 벗어났거나 유효하지 않습니다. 일반적으로 이 오류는 사용자가 직접 레지스트리 접근을 통해 파라미터를 설정할 때만 발생합니다. |
| OverTemperature | 카메라는 Temperature State 기능을 지원하며 현재 over temperature threshold를 초과한 상태입니다. 이 오류는 카메라 부품이 손상될 수 있음을 나타냅니다. |
| PowerFailure | 이 오류는 전원 공급이 충분하지 않음을 나타냅니다. 전원 공급 장치를 확인하십시오. |
| InsufficientTriggerWidth | 이 오류는 트리거가 최소 Exposure Time보다 짧을 때 Trigger Width exposure mode에서 보고됩니다. |
샘플 코드#
ace 2, boost, dart M and dart R Cameras#
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);
ace U/L 카메라#
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);
pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.