リモート通信方法の詳細
- 更新日2025-02-20
- 7分で読める
RTターゲットで実行中のVIと、別のRTターゲット (ホストコンピュータなど) で実行中のVIの間の通信には、上位レベルソフトウェアプロトコルを使用することができます。各プロトコルには、それぞれ長所と短所があります。通信方法には、以下があります。
- ネットワーク通信―イーサネットネットワークによる通信に使用
- ネットワークストリーム
- ネットワークで共有されたシェア変数
- TCP
- UDP
- VIサーバ
- Logos
- SMTP (送信のみ)
- バス通信―異なるバス通信ポート間での通信に使用
- シリアル
- CAN
ネットワーク通信
このセクションには、LabVIEW Real-Timeモジュールで使用される最も一般的なネットワーク通信プロトコルが記載されています。この情報は、アプリケーションに適切なネットワークプロトコルを選択する上で役立ちます。
ネットワークストリーム
ネットワークストリームを使用して、RTターゲットとホストコンピュータ間でデータをストリームしたり、コマンドを送ったりすることができます。ネットワークストリームは、書き込み/読み取りエンドポイントで構成されるロスレスで単方向の1対1通信チャンネルです。
ネットワークで共有されたシェア変数
ネットワークで共有されたシェア変数を使用すると、異なるターゲット間で実行中のVIのデータをネットワークで共有することができます。シェア変数のReal-Time FIFOを有効にすることにより、VIの確定性を損なうことなくネットワーク経由でデータ共有を行うことができます。ただし、ネットワーク経由のデータ転送は非確定的です。ネットワークのレイテンシが原因で、書き込まれた最新のデータがネットワーク上のマシンからは使用できない場合があります。この場合、ネットワークで共有された変数の読み取りを行ったVIは、以前の値を返します。データロギングアプリケーションでは、タイムスタンプを使用することで、各データを確実に一度だけ記録することができます。
TCP
TCPは業界標準ネットワーク通信プロトコルです。ホストコンピュータで実行されるVIは、TCP VIと関数を使用してRTターゲットVIと通信することができます。ただし、TCPは非確定的であるため、確定的VIでTCP通信を使用するとVIの確定性が損なわれる可能性があります。
Real-Timeモジュールは、既存のTCP関数の機能を拡張して、ネットワークに接続されたRTシリーズデバイスとの通信を可能にします。
UDP
UDPは、ネットワーク上の2点間でデータを転送するためのネットワーク転送プロトコルです。UDPは接続ベースプロトコルではないため、データを転送または受信するコンピュータはネットワーク接続を確立しません。ネットワーク接続が行われないため、データ転送時のオーバーヘッドはほとんど生じません。ただし、UDPは非確定的であるため、確定的VIでUDP通信を使用するとVIの確定性が損なわれる可能性があります。
UDP VIと関数でデータを転送する場合、送信側のコンピュータがデータを送信する前に受信側のコンピュータの読み取りポートが開いていなければなりません。「UDPを開く」関数を使用して書き込みポートを開き、受信側コンピュータのIPアドレスとポートを指定します。データ転送は、データグラムと呼ばれるさまざまな長さのバイトストリームで行われます。データグラムはリスナポートで受け取られ、受信側コンピュータはデータをバッファして読み取ります。
UDPでは、データを双方向に転送することができます。双方向データ転送では、両方のコンピュータで書き込みポートと読み取りポートを指定し、これらのポートを使用してデータを双方向に送信できます。RTターゲット上で実行されるVIのデータは、双方向UDPデータ転送で送受信できます。
UDPのデータ転送速度は高速です。ただし、UDP転送ではすべてのデータグラムが受信側コンピュータで受信されたかどうかの保証がありません。UDPは接続ベースではないため、データグラムの受信を確認できません。したがって、ネットワークの混雑によるデータグラムの転送への影響を回避するための対策が必要となります。また、データのオーバーフローやデータの損失が発生しないように受信側コンピュータのデータバッファに保存されたデータを高速に読み取る必要があります。
VIサーバ
RTターゲットのVIを監視または制御するには、VIサーバを使用します。LabVIEW VIは、VIサーバを使用してRTターゲットのVIをリモートで起動することができます。また、LabVIEW VIとRTターゲットVIの間でパラメータ値の受け渡しを行う、分散アプリケーションを作成することができます。
ホストVIからは、すでにRTターゲットに保存されているVIだけを起動できます。VIサーバでの使用を目的として、LabVIEW VIをホストVIからRTターゲットに動的にダウンロードすることはできません。
VIサーバによる通信の利点の1つは、LabVIEWフレームワークでの作業中にTCPの機能にアクセスできる点です。ただし、VIサーバは非確定的であるため、VIサーバによる通信によってVIの確定性が損なわれる可能性があります。
SMTP Eメール
RTターゲットで実行中のVIから別のコンピュータで実行中のVIにデータを送信するには、SMTP EメールVIを使用します。SMTP VIは、簡易メール転送プロトコル (SMTP) によってデータやファイルを添付したEメールを送信します。SMTP VIを使用してデータを受け取ることはできません。
SMTPは非確定的であるため、確定的VIでSMTP通信を使用するとVIの確定性が損なわれる可能性があります。
Logos (FieldPointのみ)
Logosを使用して、従来型のFieldPointやCompact FieldPointイーサネットモジュールのホストインタフェースデータを転送することができます。FieldPointイーサネットモジュールには組込Logosサーバが含まれており、リモートシステムからFieldPointバンクの物理I/Oモジュールのデータを読み取りまたは書き込みができます。
バス通信
シリアル
シリアル通信は、シリアルポートによる2点間でのデータ転送です。シリアルVIと関数によって、LabVIEWにおけるシリアルデバイスまたはシリアル計測器を持つRTターゲット、またはシリアル接続を使用するコンピュータ間でのシリアル通信が可能となります。シリアル通信は、データ転送速度が低い場合、また長距離間でのデータ転送に適しています。NI Measurement & Automation Explorer (NI MAX)でRTターゲットにNI-Serial RTソフトウェアを追加する必要があります。RTターゲットにソフトウェアを追加する方法については、『Measurement & Automation Explorerヘルプ』を参照してください。
シリアル通信は非確定的であるため、確定的VIでシリアル通信を使用するとVIの確定性が損なわれる可能性があります。
CAN
コントローラエリアネットワーク (CAN) は、ISO 11898として標準化された確定的なマルチドロップ通信バス規格です。CANを使用すると、1フレームにつき8データバイトまでのデータを最大1 Mbit/秒で転送できます。NI-CANインタフェースカードとNI-CANドライバソフトウェアによって、複数のRTシステムをネットワーク接続できます。MAXでRTターゲットにNI-CAN RTソフトウェアを追加する必要があります。RTターゲットにソフトウェアを追加する方法については、『Measurement & Automation Explorerヘルプ』を参照してください。
NI-CANハードウェアとソフトウェアをLabVIEWと併用する際の情報が記載されたNI-CANハードウェアおよびソフトウェアのマニュアルを参照するには、ni.com/infoに「CANManual」と入力してください。