ネットワーク構成(blaze)#
このトピックのLinux固有の情報は、Ubuntu 20.04のデフォルトのデスクトップGUIを使用することを前提としています。Linuxでネットワークインターフェースを設定する方法は複数あるため、その他の詳細については、ご使用のLinuxディストリビューションのマニュアルを参照してください。
ネットワーク設定のステップバイステップガイド#
次の手順に従って、ネットワークセットアップでblazeカメラを確立します。
- カメラにIPアドレスを割り当てる方法を決定します。次の点を考慮してください。
- 何台のカメラを使用する予定ですか?
- 使用しているネットワークアダプターの数はいくつですか?すべてのカメラに専用のアダプターがありますか?
詳細については、「推奨ネットワークアーキテクチャー」を参照してください。 - 使用可能なDHCPサーバーはありますか?
DHCPサーバーがある場合は、それを使用してください。そうすることで、設定が非常に簡単になります。
DHCPサーバーがない場合は、静的IPアドレスまたはAuto IPのいずれかを使用してください。- Auto IPは、Auto IPを使用するように設定されたネットワークアダプターが1つ以下の場合にのみ使用できます。複数のアダプターにAuto IPを設定すると、カメラが検出されなくなります。
- 静的アドレスを持つ複数のネットワークアダプターを使用している場合、各アダプターは異なるサブネットになければなりません。
- ネットワークアダプターのIPアドレスを設定します。
- pylon IP Configuratorを使用して、カメラのIPアドレスを設定します。
-
pylon IP Configuratorで接続を確認します。
- ステータスがOKの場合は、すべて正常です。
-
ステータスがNot reachableの場合は、次を確認します。
- カメラが別のアプリケーションからアクセスされていないことを確認します。
- アダプターのサブネットマスクがカメラのサブネットマスクと同じであることを確認します。
- アダプターとカメラのアドレスが同じサブネットにあることを確認します。
例:サブネットマスクが255.255.0.0の場合、IPアドレスの最初の2つのブロックは同じである必要があります。 - 他のすべてのネットワークアダプターが、カメラが接続されているアダプターとして他のサブネット用に設定されていることを確認します。
- カメラと同じアドレスを持つネットワークデバイスが他にないことを確認します。
-
カメラがリストにない場合は、次の点を確認します。
- カメラは物理的に正しいネットワークアダプターに接続されていますか?
- カメラが接続されているアダプターのファイアウォールを無効にします。
- パフォーマンス設定を調整します。
- トラブルシューティング
ストリーミング中にフレームがドロップされたり、エラーメッセージが表示されたりする場合、最も可能性の高い原因は、ネットワーク接続が不安定であるか、パフォーマンスが不十分であることです。 - WindowsまたはLinuxシステムのネットワーク設定をさらに最適化できるかどうかを確認します。
- カメラが接続されているアダプターのファイアウォールを無効にします。
推奨ネットワークアーキテクチャー#
ネットワークを計画するには、2つの方法があります。適切なセットアップを選択するために、以下に相違点を示します。
ピアツーピアネットワークアーキテクチャー#
選択肢の1つは、カメラとホストコンピューターの間に直接ピアツーピア接続を確立することです。
カメラは、それぞれのGigEネットワークアダプターまたはホストコンピューターのマルチポートアダプターに接続できます。
- Advantage:各カメラはホストコンピューターに個別に接続されています。このため、各カメラには、完全な接続帯域幅を取得した画像の送信に使用できます。つまり、各カメラを最大の撮影レートで操作できます。
- Disadvantage:1台のコンピューターに接続できるカメラの数が限られています。
情報
ピアツーピア接続では、各アダプターは異なるサブネットにある必要があり、各カメラはカメラが接続されているアダプターのサブネットにIPアドレスを持つ必要があります。
例:アダプターのIPアドレスは192.168.1.1、192.168.2.1、192.168.3.1などで、サブネットマスクは255.255.255.0に設定されています。この場合、カメラのIPアドレスは192.168.1.100、192.168.2.100、192.169.3.100などになり、サブネットマスクは255.255.255.0に設定されます。
ネットワークスイッチ経由の接続#
代わりに、ネットワークスイッチ経由でお使いのカメラとホストコンピューター間の接続を確立することもできます。
下の例に、4ポートネットワークスイッチに接続された1ポートGigEネットワークアダプターを示します。マルチポートネットワークアダプターまたは複数のスイッチを使用することもできます。
- Advantage:多くのカメラを1台のホストコンピューターに接続できます。
- Advantage:デバイス間のケーブルの長さはそれぞれ最大100メートルであるため、ケーブル全体の長さを長くできます。
- Disadvantage:スイッチには、コンピューターへのGigE接続が1つしかありません。カメラは、このシングルパスで使用可能な帯域幅を共有する必要があります。シングルパスで使用可能な帯域幅は約125MByte/sです。
情報
スイッチに複数のカメラを接続する場合は、スイッチに十分なバッファー容量が必要です。これにより、スイッチは単一の発信ラインでデータを送信しながら、カメラからの受信データを保持できます。
すべてのカメラは、同じサブネット(アダプターのサブネット)にアドレスを持つ必要があります。
例:コンピューターのアドレスが192.168.1.1の場合、カメラはIPアドレス192.168.1.100、192.168.1.101などを取得できます。
推奨ネットワークアダプター#
最高のパフォーマンスと信頼性を得るために、BaslerはIntel PRO 1000、I210、I340、およびI350シリーズのアダプターを使用することをおすすめします。
ネットワークアダプターのIP設定#
ネットワークアダプターのIPアドレスを設定する最も一般的な方法には、次の2つがあります。
- 固定(「静的」または「永続的」とも呼ばれる)アドレスの割り当て
- DHCP(Dynamic Host Configuration Protocol)または自動IP(Automatic Private IP Addressing、リンクローカルアドレス(LLA)に基づく)を使用した自動アドレス指定の設定。
Windows#
固定IPアドレスの割り当て#
固定IPアドレスをネットワークアダプターに割り当てるには:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R, typencpa.cpl
, and press Enter. - カメラで使用するネットワークアダプター接続を右クリックしてから、[プロパティ]をクリックします。
[プロパティ]ウィンドウが開きます。 - [インターネットプロトコルバージョン4(TCP/IPv4)]をダブルクリックします。
[インターネットプロトコルバージョン4(TCP/IPv4)のプロパティ]ウィンドウが開きます。 - [次のIPアドレスを使う]をクリックします。
- [IPアドレス]、[サブネットマスク]、および[デフォルトゲートウェイ]フィールドに、IPアドレス、サブネットマスク、およびデフォルトゲートウェイアドレスを入力します。
-
[優先DNSサーバー]および[代替DNSサーバー]フィールドに、プライマリーおよびセカンダリーDNSサーバーアドレスを入力します。(通常、ドメインネームサーバーは必要ありません。)
-
該当するすべてのネットワークアダプターについて、手順2~6を繰り返します。
情報
カメラのデザインインの際に、次の設定を使用してネットワーク接続を非常にすばやく確立できます。
- お使いのネットワークアダプターの固定アドレスを自動IPアドレス範囲(169.254.0.1~169.254.255.254)、サブネットマスク255.255.0.0に設定します。
- カメラの自動IPアドレス割り当てを設定します。
- お使いのコンピューターに複数のネットワークアダプターがある場合、各アダプターは異なるサブネットに存在する必要があります。
- 固定IPアドレスの推奨範囲は172.16.0.1~172.32.255.254(サブネットマスク255.255.0.0)および192.168.0.1~192.168.255.254(サブネットマスク255.255.255.0)です。これらのアドレス範囲は、IP規格に従ってプライベート用に予約されています。
- お使いのカメラに固定IPアドレスを割り当てる場合、カメラがネットワークアダプターと正しく通信するためには、カメラが接続されているアダプターと同じサブネット内にある必要があることに注意してください。
DHCP/自動IPを使用したIPアドレスの割り当て#
アダプターがDHCP/自動IP経由でIPアドレスを受信するように設定されている場合、アダプターは次のように動作します。
- アダプターはDHCPサーバーからIPアドレスを取得しようとします。DHCPサーバーが使用可能な場合、サーバーからIPアドレスを受信して使用します。
- DHCPサーバーが使用できない場合、アダプターは自動IPルーチンを使用してそれ自体にIPアドレスを割り当てます。
ネットワークアダプターの多くでは、デフォルト設定がDHCP/自動IPです。多くの場合、カメラで使用されるアダプターにはDHCPサーバーが使用できません。そのためデフォルト設定では、アダプターが自動IPアドレス指定を使用して、最終的にカメラ自体にIPアドレスを割り当てます。
情報
自動IPを使用するように設定できるアダプターは1つだけです。複数のアダプターでDHCP/自動IPが設定されている場合、自動IP割り当ては正しく機能せず、カメラは自動IP経由でネットワークに接続できません。
お使いのコンピューターに複数のネットワークアダプターがある場合、Baslerは、お使いのネットワークにDHCPサーバーをインストールするか、アダプターとカメラに静的IPアドレスを割り当てることをおすすめします。
DHCP/自動IPを使用してIPアドレスを割り当てるには:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R, typencpa.cpl
, and press Enter. - カメラで使用するネットワークアダプター接続を右クリックしてから、[プロパティ]をクリックします。
[プロパティ]ウィンドウが開きます。 - [インターネットプロトコルバージョン4(TCP/IPv4)]をダブルクリックします。
[インターネットプロトコルバージョン4(TCP/IPv4)のプロパティ]ウィンドウが開きます。 - [IPアドレスを自動的に取得する]が選択されていることを確認します。
これにより、アダプターは最初の選択肢としてDHCPサーバーをチェックします。 - Alternate Configurationタブをクリックします。
このタブの設定は、DHCPサーバーが見つからない場合にアダプターが使用する自動IPアドレス割り当てを設定するために使用されます。 -
[自動プライベートIPアドレス]が選択されていることを確認します。
Linux#
ネットワークアダプターを設定するには、次の手順を実施します。
- [Show Applications]または右上のアイコンを使用して、Settingsアプリケーション開きます。
-
[Network]タブで、カメラが接続されているネットワークアダプターの横にある歯車のアイコンをクリックします。
-
[IPv4]タブをクリックします。
- DHCPの場合は、[IPv4 Method]を[Automatic(DHCP)]に設定します。
- 静的アドレスを割り当てる場合は、[IPv4 Method]を[Manual]に設定し、[Addresses]領域で[Address]、[Netmask]、および必要に応じて[Gateway]を入力します。
- 自動でアドレスを割り当てる場合は、[IPv4 Method]を[Link-Local Only]に設定します。
-
[Apply]をクリックして設定を保存します。
カメラのIPアドレスの設定#
カメラのIP設定を変更するには、pylon IP Configuratorを使用します。
- Windows:[スタート] > Basler > pylon IP Configuratorをクリックします。
- Linux:次のコマンドを発行します。/opt/pylon/bin/ipconfigurator
情報
詳細については、このマニュアルのpylon IP Configuratorオンラインヘルプ(Windowsのみ)またはpylon IP Configuratorセクションを参照してください。
Auto IP(LLA):このオプションは使用できません。ただし、DHCPサーバーを介してIPアドレスを割り当てるようにカメラが設定されており、DHCPサーバーが見つからない場合、カメラはAuto IPにフォールバックしてIPアドレスを設定します。反対に、Auto IPを使用する場合は、DHCPサーバーを設定せずにDHCPオプションを選択します。
ファイアウォールの設定#
Windows#
Windowsファイアウォールを無効にすることは、通常は推奨されていない極端な対策です。ただし、状況によっては、パフォーマンスの問題を解決するために必要な場合があります。
選択したネットワークアダプターのファイアウォールを無効にするには:
- Win+Rを押しwf.mscと入力してEnterキーを押します。
[セキュリティが強化されたWindowsファイアウォール]ウィンドウが開きます。 -
Windows Firewall Propertiesをクリックします。
[ローカルコンピュータのセキュリティが強化されたWindowsファイアウォールのプロパティ]ウィンドウが開きます。
-
ファイアウォール保護を無効にするプロファイルのタブをクリックします。
通常、これはPublic Profileタブです。ただし、専用のネットワークカードを使用している場合、Baslerは、他のプロファイルのファイアウォール保護も無効にすることをおすすめします。 -
Customizeをクリックします。
[パブリックプロファイルへの保護されているネットワーク接続]ウィンドウが開きます。このウィンドウには、ファイアウォールがオンになっている接続が一覧表示されます。
-
カメラが属している接続を解除します。これにより、ファイアウォール保護がオフになります。
- ファイアウォール保護をオフにするすべてのプロファイルについて、手順3~5を繰り返します。
Linux#
カメラが接続されているネットワークアダプターでは、ファイアウォールを無効にする必要があります。そうしなければ、デバイスの検出とカメラからのデータストリームの受信が機能しない場合があります。
ファイアウォールを無効にするには、次のように入力します。
パフォーマンスの最適化#
Windows#
From a performance point of view, there are two relevant drivers available in the pylon Software Suite:
- GigE Visionフィルタードライバー
- パフォーマンスドライバー
どちらのドライバーがインストールされているかを確認するには:
- pylon IP Configuratorを開きます。
- アダプターを選択します。
アダプターに関する情報は、ダイアログの右下に表示されます。Basler GigE Vision Adapterと表示されている場合は、パフォーマンスドライバーがインストールされています。
設定を調整するには、その領域にあるリンクをクリックして、Windowsの...プロパティダイアログに直接移動します。
パフォーマンスドライバー#
パフォーマンスドライバーを使用している場合、最適化は必要ありません。ドライバーが最適な設定を自動的に選択します。
GigE Visionフィルタードライバー#
ネットワークアダプターがパフォーマンスドライバーをサポートしていない場合、フィルタードライバーはデフォルトでインストールされます。その場合は、お使いのカメラでネットワークアダプターを使用する前に、ネットワークアダプターを設定する必要があります。
最初に、フィルタードライバーに干渉する可能性のある特定のプロトコルまたはサービスを無効にすることを、Baslerはおすすめします。
プロトコルまたはサービスを無効にするには:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R , typencpa.cpl
, and press Enter. - カメラで使用するネットワークアダプター接続を右クリックしてから、[プロパティ]をクリックします。
[プロパティ]ウィンドウが開きます。 -
次のように、pylon GigE Vision DriverおよびInternet Protocol Version 4 (TCP/IPv4)チェックボックス以外のすべてのチェックボックスをオフにします。
-
該当するすべてのネットワークアダプターについて、手順2~3を繰り返します。
次に、特定のアダプタープロパティを最適化することを、Baslerはおすすめします。
アダプターのプロパティを最適化するには:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R , typencpa.cpl
, and press Enter. - カメラで使用するネットワークアダプター接続を右クリックしてから、[プロパティ]をクリックします。
[プロパティ]ウィンドウが開きます。 - Configureをクリックします。
ネットワークドライバーの設定ウィンドウが開きます。 - Advancedをクリックします。
- 次のプロパティを調整します(以下の注記を参照)。
- 受信記述子の数に関連するパラメーター(受信記述子など)を選択し、最大値に設定します。
- CPU割り込み数に関連するパラメーター(割り込み加減率など)を選択し、1000などの低い値に設定します。CPU割り込みの数を設定する方法は、ネットワークアダプターによって異なる場合があります。割り込みモデレーションを有効にするには、別のパラメーターを使用する必要がある場合があります。
- 速度とデュプレックスモードに関連するパラメーター(Speed and Duplex Modeなど)を選択し、自動(Auto Negotiationなど)に設定します。
- 該当するすべてのネットワークアダプターについて、手順2~5を繰り返します。
Linux#
パケットロスを防ぐために最初に行うことは、UDP受信バッファーサイズを増やすことです。これを行ってもパケットドロップの問題が生じる場合は、リアルタイム優先順位、リングバッファーサイズ、および割り込み加減率を調整してみてください。
UDP受信バッファーサイズの増加#
blazeカメラで安定した画像取得を行うために、Baslerは、システムの最大UDP受信バッファーサイズを増やして安定した画像取得を保証することをおすすめします。最大サイズは4MB以上が推奨されます。
最大UDP受信バッファーサイズを増やすには、次のように入力します。
この設定を永続的にするには、net.core.rmem_max設定を/etc/sysctl.confファイルに追加できます。
リアルタイム優先順位の設定#
pylon SDKは、イメージデータの受信にスレッドを使用します。受信スレッドのスレッド優先順位をリアルタイムスレッド優先順位に設定して、ジッターとパケットロスを最小限に抑えようとします。これには通常、特別な許可が必要です。
ただし、Linux kernel 2.6.13以上を搭載したシステムでは、root権限のないプロセスに、リアルタイムスケジューリングポリシーの設定を許可することができます。Ubuntuシステムでは、/etc/security/limits.confファイルを介して、権限のないプロセスの最大リアルタイム優先順位をユーザーまたはグループごとに制御できます。
たとえば、/etc/security/limits.conf に次の行を追加すると、すべてのユーザーが、スレッドの優先順位をリアルタイム優先順位に設定するアプリケーションを起動できるようになります。
/etc/security/limits.confを変更するには、root権限が必要です。
/etc/security/limits.confファイルを変更した後は、いったんログオフしてから再度ログオンする必要があります。/etc/security/limits.confファイルの詳細については、limits.confのmanページを参照してください。
Baslerでは、pylon SDKベースのアプリケーションを起動するすべてのユーザーに対して、最大リアルタイム優先順位を1以上に指定することをおすすめしています。
Kernel 2.6.12以前の場合、Baslerではpylon SDKベースのアプリケーションをroot権限で起動するか、pylonベースのアプリケーションのSUIDビットを設定することをおすすめしています。
情報
アプリケーションのSUIDビットが設定されると、そのアプリケーションを起動するとき、実行時リンカーがLD_LIBRARY_PATH変数の値を無視します。
blaze Viewerを使用して、GigEライブラリーに、リアルタイムスレッド優先順位を設定するために必要なアクセス許可があるかどうかを確認できます。blaze Viewerを起動したら、デバイスのリストからカメラデバイスを開きます。[Features]ペインで、[Stream Parameters]ノードを展開します。[ReceiveThreadPriority]パラメーターは、受信スレッドのスレッド優先順位を示します。値が「0」の場合、ライブラリーにはリアルタイムスレッド優先順位を設定するために必要なアクセス許可がなかったことになります。「0」より大きい値は、スレッドがリアルタイムのスレッド優先順位でスケジュールされていることを示します。
リングバッファーサイズの増加#
受信(Rx)リングバッファーは、カメラからの画像データを受信して処理するためにNICドライバーが使用するバッファーの数を定義します。通常、リングバッファーはやや小さく設定されています。大量のネットワークトラフィックを受信しているシステムでは大きくする必要がある場合があります。
ethtoolコマンドを使用してリングバッファーサイズを増やすには、次の手順を実施します。
例: To set the receive (Rx) and transmission (Tx) ring buffer size for the eth0
network interface to 4096, enter:
情報
上記の設定は、お使いのネットワークアダプターではサポートされていない場合があります。ethtoolがエラーを返す場合は、この最適化手順をスキップします。
割り込み調停率の設定#
割り込み加減率(IMR)は、レイテンシーとパフォーマンスの間のトレードオフを定義します。IMRは、割り込みスロットル率(ITR)を制御します。このレートで、コントローラーが割り込みを加減します。ITRが低いほど、ドライバーの応答性は高くなりますが、より多くの割り込みが生成されるため、CPU負荷も高くなります。一方、ITRが高いほど割り込み処理のレイテンシーは高くなりますが、CPU負荷は低くなります。したがって、ほとんどのアプリケーションで、Baslerは、Extremeや3600など、IMRに高い値を使用することをおすすめします。レイテンシーを低くする必要がある場合は、低い値を使用します。
ethtoolコマンドを使用して割り込み加減率を設定するには、次の手順を実施します。
例: To apply the recommended settings for the eth0
network interface, enter:
情報
上記の設定は、お使いのネットワークアダプターではサポートされていない場合があります。ethtoolがエラーを返す場合は、この最適化手順をスキップします。
トラブルシューティング#
画像取得時にエラーが起きる
問題:複数のカメラから画像を取得しようとすると、エラーメッセージ「PrepareGrab (StartStreaming) failed for device」または「Insufficient system resources exist to complete the API」が表示されます。
解決方法: この状況は、使用可能なオープンファイル記述子の数が足りなくなった場合に発生することがあります。現在のプロセスでは、ulimit -nコマンドを使用して制限を上げることができます
カメラが表示されない
問題:1分間以上待ってもアプリケーションにカメラが表示されません。
カメラとアダプターのIP設定によっては、有効なIPアドレスがカメラに割り当てられるまでに最大1分間かかる場合があります。
解決方法:pylon IP Configuratorが使用可能な場合は、pylon IP Configurator(/opt/pylon/bin/ipconfigurator)を起動します。IP Configuratorにカメラが表示されているかを確認してください。
- カメラのステータスがNot Reachableの場合は、カメラのIPアドレスとアダプターのIPアドレスを確認します。カメラとネットワークアダプターの両方で、同じサブネット内のIPアドレスを使用する必要があります。上記の「ネットワークアダプターのIP設定」セクションを参照してください。
- カメラがIP Configuratorに表示されない場合は、有効なファイアウォールが原因の可能性があります。カメラを接続するネットワークアダプターのファイアウォールを無効にします。ファイアウォールがない場合は、カーネルで有効になっている戻り経路フィルタリングによりカメラの検出が妨げられている場合があります。詳細については、次の問題の説明を参照してください。
カメラを設定できない
問題:アプリケーションがカメラを表示できません。カメラを再設定して再度表示させることができません。
解決方法:まず、カメラが接続されているネットワークアダプターでファイアウォールが有効になっていないことを確認します。
ファイアウォールが有効になっていなくてもカメラが表示されない場合は、カーネル内の戻り経路フィルタリングによって、アプリケーションがカメラを検出できない可能性があります。カメラのIPアドレスが、カメラが接続されているネットワークアダプターと同じサブネット内にない場合に発生することがあります。
フィルタリングがオンになっているかどうかを確認するには、次のコマンドを実行します。
出力された情報で、次が含まれている行を探します。
eth1はカメラが接続されているネットワークアダプターです。net.ipv4.conf.all.rp_filterは、オフにする必要があるグローバルスイッチです。net.ipv4.conf.eth1RP_filterは、指定されたネットワークアダプターのフィルタリングが有効かどうかを示します。フィルタリングを無効にするには、最初にすべてのおよび特定のネットワークアダプター(この例ではeth1)のフィルタリングをオフにする必要があります。次のコマンドを使用して、実行時のフィルタ処理動作を変更します。
アプリケーションを再起動し、カメラが検出されたかどうかを確認します。カメラを再設定し、[Write Configuration]を使用して変更を持続的に適用します。同じコマンドを実行し、値を1に設定することで、フィルタリングを再度有効にできます。フィルタリングを永続的にオフにする場合は、/etc/sysctl.confで同じ値を編集できます。
Linux kernelバージョン2.6.32以降では、rp_filter設定でフィルタリングを厳しくしたり緩くしたりすることができます。非対称にルーティングされたパケットを受け入れるには、/etc/sysctl.confを変更します。
エラーコード0x81010014
問題:画像を取得すると、エラーが発生し、エラーコード0x81010014が発行されます。このエラーコードは、コンピューターが不完全な画像を受信したこと、つまりネットワークパケットのドロップが起きたことを示します。
解決方法1:UDP受信バッファーの最大サイズを十分な値に増やします。これにより、pylon SDKはソケットバッファーサイズを2MBに増やして、安定した画像取得を保証することができます。
解決方法2:アプリケーションに、受信スレッドの優先順位をリアルタイムスレッドの優先順位に設定するために必要なアクセス許可があることを確認します。
解決方法3:ケーブルを確認します。GigEには、Cat 5eケーブルが推奨されます。ケーブルの品質が悪かったり、ケーブルが損傷していたりすると、回復不能な転送エラーが発生する可能性があります。
画像が表示されない
問題:アプリケーションは画像を取得しているようですが、画像が表示されません。
解決方法1:コマンドラインからアプリケーションを起動して、メッセージが出力されるかどうかを確認します。
解決方法2:アプリケーションが不完全なフレームのみを受信する場合。その場合は、「Failed to grab image: GX status 0x81010014」などのエラーメッセージが表示されます。この問題の解決方法については、前の問題を参照してください。
解決方法3:画像の取得が他の理由で失敗する場合。アプリケーションで出力されたエラーメッセージを、Baslerテクニカルサポートにご連絡ください。
次のステップ#
これでカメラを使用する準備が完了しました。使用開始方法については、「blazeカメラの使用」を参照してください。