はじめて投稿させて頂きます。よろしくお願いします。
オリジナルの装置5台からTCP/IPにて1台のPCに一斉にデータを収集するプログラムを製作しています。
構成図とブロックダイアグラム(説明用簡易版)の画像を添付いたします。
1台のみでは正常に動作しますが、2台以上つなげると通信もまばらでタイムアウトを頻発します。
【状況】
・vi実行後にタイムアウトエラーで待機しておき、装置をONすることで一斉にデータの受信を開始します。
・それぞれ異なる5つの接続IDを取得することはできています。IP及びMACアドレスの重複はありません。
・TCP Read関数のモード・読み取りバイト数・タイムアウトなど様々な組み合わせを行いましたが、安定した動作は得られませんでした。
・接続IDが取れた状態で、この内1台だけでTCPデータ受信を行うと、希望の4MB弱/秒のデータ取得は可能です。
・1台目が受信している状態のまま、別の1台にてデータ受信を開始すると、1台目のデータ受信が頻繁にタイムアウトするようになり、逆に2台目が4MB弱/秒のデータ受信ができるようになります。
・1台目と2台目とで同時にデータ受信を開始すると、両方ともまばらに数kB/秒程度のデータしか受信できず、両方ともタイムアウトが頻発します。
・5台同時の時も2台時の場合と同じで安定しません。
・TCP Read関数のみサブvi化し再入実行で動作させても効果無しでした。
・タスクマネージャーでのCPU使用率、メモリ、ネットワークはいずれも数%程度で十分な余裕があります。
・開発環境は LabVIEW2011, Windows 7 64bit, NICはギガビットイーサ( 装置・ハブ・PC)。
プログラムでの注意点などアドバイスを頂きたく、よろしくお願いいたします。