情報詳細Q: open_framegrabber や info_framegrabber の使用時に、 #8603 Interface library not available や #8600 Dynamic library could not be opened が発生します。 A: #8603 および #8600 はHALCON 画像取り込みインターフェースの読み込み時、対象のDLLないしはその依存先のDLLの読み込みに失敗した時に発生します。次の手順で確認と対処を行ってください。Linuxシステムの場合、dll→so、%HALCONROOT% →$(HALCONROOT) として読み替えてください。 1. hAcq<インターフェース名>.dllの確認 HALCONの画像取り込みインターフェースの実体はディレクトリ %HALCONROOT%\bin\%HALCONARCH% に格納されたhAcq<インターフェース名>.dll です対象のDLLが配置されているか確認してください。DLLが配置されていなかった場合、記事番号000011744の手順に従ってインストールを行ってください。 2. 依存先DLLの確認 hAcq<インターフェース名>.dll が別のDLLに依存しており、それの読み込みに失敗した場合、#8603または#8600 が発生します。大抵は各カメラメーカが提供しているSDKないしはランタイムおよびドライバをインストールすることで解決します。必要なソフトウェア・バージョンを確認するために次の手順に従ってください。 HDevelopのヘルプを開き、ホームのImage Acquisition Interfacesのページへ移動 所望のインターフェースを探す 所望のインターフェースのSystem Requirementsを確認 ここではRealSenseインターフェースを例としています。System Requirements からRealSense SDKのバージョン2.54.2がインストールされており、realsense2.dll が環境変数PATH上のディレクトリにあるか、bin\%HALCONARCH% にコピーされている必要があると読み取れます。バージョンが異なるためにDLLの読み込みエラーになることもしばしばあるため、System Requirements の情報に従ってソフトウェアの追加インストールを行ってください。 3. その他の依存関係の解決 hAcq<インターフェース名>.dll の依存関係を解決すればよいため、DependenciesGUI などで不足しているGUIを確認できます。「?」のアイコンで示されているDLLが見つからないためエラーになっていることがわかります。このうちrealsense2.dllはRealSense SDKのインストールで入手できます。下の3つはGenICam関連であり、%HALCONROOT%\genicamに配置されています。この3つはHALCONが環境変数HALCONROOTを手掛かりに動的に読み込むため、Dependenciesでエラーになっていても問題ありません。インターフェースによってはvcruntime140.dllなどを要求することがありますが、その場合も DependenciesGUI から確認ができます。また、これらのDLLが環境変数のPATHで通っているかを確認するためには、whereコマンドが使用できます。Windows コマンドプロンプト (PowerShellはwhere非対応です) で次のようなコマンドを打った時に、DLLが格納されているパスが返ってくれば環境変数PATHで通っています。 where realsense2.dll 4. その他の事例 SICK-3DCamera VisualC++ 2008 Runtime をインストールすることで解決した事例があります。 hAcqLinx.dll 等カメラリンクボードを使用する類のインターフェース 複数のカメラリンクのドライバーが同一PCにインストールされていて#8603が発生することがあります。LinX SDKの5.9と5.4などのバージョン違い、あるいは他社のドライバーがインストールされている場合、カメラリンクのシリアル通信のdllが競合してエラーが発生することがあります例)環境変数:PathにC:\LinX SDK 5.40\BinとC:\LinX SDK 5.90\Bin64が存在した。下記2つのパスのdllが競合しているため発生C:LinX SDK 5.40\Bin ClSerBit.dllC:\LinX SDK 5.90\Bin64 clserbit.dll USB3Vision hAcqUSB3Vision.dll が libusb-1.0.dll に依存していますが、それがbin\%HALCONARCH%内に配置されていなかったため#8603エラーになっていた事例がありました。このときはインストール時にhAcqのDLLのみをコピーしていたことが原因でした。手動での画像取り込みインターフェースをインストールする際はフォルダごとコピーすることでこのような事例を防ぐことができます。 添付ファイルタイトルopen_framegrabber や info_framegrabber の使用時の #8603 や #8600 への対処法URL 名000011743公開状況公開済み検証状況未検証