先日、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を入れて、例外の内容が分かるように表示する意識はつけましょう。
業務でプログラミング(C#/VB/Python)を作っている。
挫折を何回も繰り返し、幾度の壁を乗り越えてきた。
乗り越えてきた事を忘れないように記録に残す。
同じ思いをしている人への情報提供になれたらと思う。
基本は初心者に向けたプログラムの情報を提供する。
コメント