Error Codes#
複数の異なるエラーが発生した場合は、エラーリストに保存され、1つずつ取得できます。
機能を使用する#
仕組み#
カメラは特定のエラーを検出できます。そのようなエラーが発生すると、カメラはこのエラーにエラーコードを割り当て、エラーコードをメモリーに保存します。
複数の異なるエラーが発生した場合、カメラは検出されたエラーの種類ごとにコードを保存します。カメラは、対応するエラーを何回検出したかに関係なく、各コードを1回だけ保存します。
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コマンド。これにより、デバイスから次のエラーコードが取得されます。 - 次の状態になるまで、ステップ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パラメータ。 - コンピューターに値を保存するか、後で参照できるように書き留めます。
- 実行します:
ClearLastErrorコマンド。これにより、Error Codesのリストから最後のエラーコードが削除されます。 - 手順1)~3)を繰り返します。
LastErrorパラメータ値がNoError. - 次の表を使用してエラーのトラブルシューティングを行うか、エラーコードのリストを使用してBaslerサポートに問い合わせます。
使用可能なError Codes#
次の表は、Basler ace U/Lカメラにのみ適用されます。
| LastError Enumerator | 意味 |
|---|---|
| NoError | エラーメモリが最後にクリアされてから、カメラでエラーが検出されませんでした。 |
| Overtrigger | オーバートリガーが発生しました。 カメラの準備ができていない状態で、ユーザーがトリガー信号をカメラに送信しました。 |
| Userset | ユーザーセットをロードしようとしたときにエラーが発生しました。通常、これはユーザーセットに無効な値が含まれていることを意味します。別のユーザーセットをロードしてみてください。 |
| InvalidParameter | 範囲外または無効なパラメーターが入力されました。通常、このエラーは、ユーザーが直接レジスターアクセスを介してパラメーターを設定した場合にのみ発生します。 |
| OverTemperature | カメラはTemperature State機能をサポートしており、過熱しきい値を超えています。このエラーは、カメラコンポーネントが損傷する可能性があることを示します。 |
| PowerFailure | このエラーは、電力供給が十分でないことを示します。 電力供給状況を確認してください。 |
| InsufficientTriggerWidth | このエラーは、トリガーが最小露光時間より短い場合にTrigger Width露光モードで報告されます。 |
サンプルコード#
ace 2、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を使用して、パラメーターを簡単に設定することもできます。