【C#】HALCON de 画像処理(カメラ接続エラー)

スポンサーリンク

先日、HALCONで作ったソフトを会社内に展開しました。
すると、問い合わせが来て、それも2人から同時に。。。笑
基本的には、【ソフトが起動しない】【カメラが接続できない】です。
アプリを開発して展開した時の最初が一番しんどいのです。。。
今回がそんな人の手助けになればと思います。

どこでエラーが出ているか推測する

経験上、下記2点でエラーが発生する事が多いと思っています。

■デザインで使用している『hWindowControl』でエラーが出ている
■カメラ接続時の『OpenFramegrabber』でエラーが出ている

ただ実際exeで展開してしまった場合、どちらでエラーが出ているかわかりません。
※ソフトの作りしだいではわかるかもしれませんが

起動させるパソコンの環境確認(HALCON Error:2036/2024 等)

面倒かもしれませんが、初歩的な内容から1つずつ確認していきます。

OSの確認

基本だと思いますが、相手のパソコンが分からない時は一応確認してください。
下記なら、基本問題ないと思っています。

■Windows10 x64
■Windows7 x64

カメラとパソコンとの接続確認

パソコンとカメラがLANケーブルで接続されている事を確認しましょう。
LANポートのLEDが何かしら光っていれば、接続されていると思います。
※LANポートにLEDがついていないパタンがあります。

USBドングルが挿入されているかの確認

自分はUSBドングルが挿入されているか確認してください。
HALCON13以降だとコマンドプロンプト(コマンド:hhostid -i)で確認できるそうです。

ライセンスファイル/HALCONバージョン確認

USBドングルに対して、ライセンスファイルがセットで提供されています。
その為、相手にはライセンスファイルの有無を確認してください。
無い場合は、ライセンスファイルをメーカーに頼んで再発行してください。

ある場合は、ライセンスファイルの中身を確認してください。

ライセンスファイルの中にHALCONのバージョンが書かれていますので、そのバージョンのインストーラーをダウンロードしてください。先にHALCONがインストールされている時は、インストールされているバージョンを確認

USBドングルとライセンスファイルの相違

よく見るとUSBドングルにはIDが記載されています。
先ほどのライセンスファイルのIDと一致しているか確認してください。

使用するアプリとHALCONバージョン

提供されているアプリがHALCONのどのバージョンで作成されたか確認しましょう。
これに相違がある時点で立ち上がらない可能性が高いので、確認してみてください。

接続するカメラ[Basler社]の確認(HALCON Error:5312 等)

起動させるパソコンの環境が問題なければ、可能性的に高いのは『カメラ接続時に失敗している事だと思われます。そこで、今回使用するカメラ(Basler社)が提供しているアプリケーションを使用して確認していきます。
下記から、インストールできます。
Windows用pylon Camera Software Suite(バージョン6.3.0 ) | Basler (baslerweb.com)

Pylon IP Configuratorで接続可能かの確認

下記のように『Statusが”OK”』になっていれば、問題ありません。
OKの場合は、カメラの接続設定の可能性が高いので飛ばしてください。

カメラが認識していない

可能性としては下記の通りです。

■カメラの電源が入っているか確認する
■LANが挿入されていない

Statusが”Not Reachable”

『カメラのIPアドレス』と『パソコンのIPアドレス』が通信範囲外の時です。
下記は例えばの話です。

【パソコン】
 IP Address:192.168.10.88
 Subnet Mask:255.255.255.0
【カメラ側】
 IP Address:192.168.123.55
 Subnet Mask:255.255.255.0

サブネットマスクの関係上、カメラ側のIPアドレスの赤字を「123→10」に変更しましょう。
※パソコン側を変更する場合は、青字を「10→123」に変更する

IPアドレスの設定を変更して確認してみましょう。

Statusが”In use”

この場合は、他のアプリがカメラと接続している状態になります。
その為、切断する必要があります。

■カメラの電源をON/OFF
■パソコンの再起動

接続する為の設定の確認

ここまでくれば、基本カメラの接続設定がおかしい場合が可能性大です。
要は[OpenFramegrabber()]の関数で失敗している可能性です。
詳しくは、下記の過去記事を参考にしてください。
【C#】HALCON de 画像処理(カメラ接続) | 育児パパの人生備忘録 (t19488sns.com)

//接続時の処理
HOperatorSet.OpenFramegrabber(
            "GigEVision2",  // ①Interfaceの種類
            1,              // ②水平方向解像度( 1:Full 2:Half 3:Quota)
            1,              // ③垂直方向改造度( 1:Full 2:Half 3:Quota)
            0,              // ④画像の高さ( 0:デフォルト)
            0,              // ⑤画像の長さ( 0:デフォルト)
            0,              // ⑥高さ方向の始点オフセット座標[pix]
            0,              // ⑦長さ方向の始点オフセット座標[pix]
            "default",      // ⑧フィールド画像の種類
            8,              // ⑨ピクセルbit数
            "gray",         // ⑩カラーフォーマット
            -1,             // ⑪カメラ固有のパラメータ
            "false",        // ⑫外部トリガーモード    
            "default",      // ⑬カメラ信号の種類(ntcs pal auto defualt)
            "(MACAddress)_(メーカー名)_(Camera型式)",  // ⑭デバイス名 
            -1,             // ⑮ポート名
            -1,             // ⑯ライン名
            out CameraHandle// ⑰カメラハンドル
    );

間違っている可能性が高いのが『①Interfaceの種類、⑩カラーフォーマット、⑭デバイス名』です。

Interfaceの種類が違うとき(HALCON Error:8600)

Dynamic library could not be opened in operator open_framegrabber
これが出た時は、Interfaceの指定が間違っている可能性があります。
種類としては、自分が知っている限りだと
“pylon” / “GigEVision” / “GigEVision2” です。
基本HALCON(MVision)をインストールした場合、デフォルトで”GigEVision2″だと思われます。
※古いバージョンの場合は”GigEVision”

カラーフォーマットの指定が違う(HALCON Error:5315)

Image acquisition: wrong color space in operator open_framegrabber
これが出た時は、カラーフォーマットの指定が間違っている可能性があります。
接続しているカメラの型式を確認して、「モノクロ」か「カラー」か確認しましょう。

デバイス名が違う(HALCON Error:5312)

Image acquisition: device cannot be initialized in operator
これが出た時は、デバイス名の指定が間違っている可能性があります。
接続している「カメラの型式/Mac Address/誤字」がないか確認しましょう。

まとめ

今回は、『アプリが起動しない』『カメラ接続に失敗する』についてでした。
テーマがアバウトなので色々なパタンがありえました。
ただアプリを開発して、展開するにあたって相手のパソコンの環境の確認は必須ですね。
これが食い違っていると泥沼にはまります。

あとは、エラーコードが分かると対応も迅速になりますね。
“エラーコード:5312″は、広範囲のエラーなので、1つずつ確認していく必要がありそうです。
ソフトを開発(作成)する側は、ちゃんとtry-catchを入れて、例外の内容が分かるように表示する意識はつけましょう。

コメント

タイトルとURLをコピーしました