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를 확인하는 방법:
- 다음의 값을 가져옵니다:
BslErrorPresent파라미터. - 파라미터 값이
true:- 다음의 값을 가져옵니다:
BslErrorReportValue파라미터. - 추후 참고할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
- 다음을 실행합니다.
BslErrorReportNext명령입니다. 이를 통해 장치에서 다음 error code를 가져옵니다. - 다음 항목이 될 때까지 a) ~ c) 단계를 반복합니다.
BslErrorReportValue파라미터 값이0. 파라미터 값이 0이면 가져올 error code가 더 이상 없음을 의미합니다. - Basler 고객지원센터에 Error Codes 목록을 문의하세요.
- 다음의 값을 가져옵니다:
ace U/L 카메라#
Basler ace U/L 카메라는 사용자가 직접 수정하거나 Basler 지원팀에서 평가할 수 있는 에러 목록을 생성할 수 있습니다.
ace U/L GigE 카메라에서 error codes를 확인하는 방법:
- 다음의 값을 가져옵니다:
LastError파라미터. - 추후 참고할 수 있도록 컴퓨터에 값을 저장하거나 적어 둡니다.
- 다음을 실행합니다.
ClearLastError명령입니다. 이를 통해 error codes 목록에서 마지막 error code를 삭제합니다. - 다음 단계가 될 때까지 1) ~ 3단계를 반복합니다.
LastError파라미터 값이NoError. - 아래 표를 참조하여 에러를 해결하거나 에러 코드 리스트와 함께 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 카메라#
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를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.