メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

TCP/IP Receive

指定されたリモートマシンからTCP/IPネットワーク経由でデータを受信します

  • TCP/IP Receive block

ライブラリ:
Instrument Control Toolbox

説明

TCP/IP Receive ブロックは、TCP/IP プロトコルを使用して、指定されたリモート アドレスへのインターフェイスを構成して開きます。構成と初期化は、モデルの実行開始時に 1 回実行されます。ブロックは、モデルの実行時にブロッキング モードまたは非ブロッキング モードのいずれかでデータを取得します。TCP/IP Receive ブロックを使用して、TCP/IP ネットワーク経由でストリーミング データを読み取ります。このブロックは TCP/IP クライアントとしてのみ機能し、TCP/IP サーバーとして使用することはできません。

このブロックには入力ポートがありません。ブロッキング モードまたは非ブロッキング モードのどちらを選択するかに応じて、1 つまたは 2 つの出力ポートがあります。ブロッキング モードを選択した場合、ブロックには受信データに対応する 1 つの出力ポート Data があります。ブロッキング モードを選択しない場合、ブロックには DataStatus の 2 つの出力ポートがあります。

このブロックは、先入れ先出し (FIFO) バッファを使用してデータを受信します。各タイムステップで、Data ポートはバッファから要求された値を返します。非ブロッキング モードでは、Status ポートはブロックが新しいデータを受信したかどうかを示します。Status ポートに 1 と表示される場合は新しいデータが利用可能であり、Status ポートに 0 と表示される場合は新しいデータはありません。

その他のサポートされている機能

  • TCP/IP Receive ブロックは、Simulink® アクセラレータ モードと Rapid Accelerator の使用をサポートします。この機能により、Simulink モデルの実行が高速化されます。

  • TCP/IP Receive ブロックはモデル参照の使用をサポートします。この機能を使用すると、モデルに他の Simulink モデルをモジュラー コンポーネントとして含めることができます。

  • TCP/IP Receive ブロックは C/C++ コード生成をサポートします。この機能を使用すると、Simulink Coder™ を使用して C および C++ コードを生成できます。

これらの機能の詳細については、Simulink のドキュメントを参照してください。

端子

出力

すべて展開する

ブロックがリモート アドレスから受信したデータは、ベクトル、行列、または配列として返されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

新しいデータが利用可能かどうかのステータス。論理 1 (true) または 0 (false) として返されます。このポートが 1 を返す場合、新しいデータを読み取ることができます。

依存関係

このポートを有効にするには、Enable blocking mode パラメータの選択を解除します。

データ型: Boolean

パラメーター

すべて展開する

データを受信する TCP/IP サーバーの IP アドレスまたは名前。

プログラムでの使用

ブロック パラメーター: Host
型: 文字ベクトル、string

接続先の TCP/IP サーバー上のリモート ポート。1 ~ 65535 の数字で指定します。

プログラムでの使用

ブロック パラメーター: Port
型: 文字ベクトル、string
値: 1 から 65,535
既定の設定: '80'

このボタンをクリックすると、指定されたリモート アドレスとポートへの接続が有効かどうかを確認できます。

出力データのサイズ、つまり各シミュレーション時間ステップで読み取られる値の数。このパラメータはスカラーまたはベクトルとして指定されます。データにはターミネータ値は含まれません。

プログラムでの使用

ブロック パラメーター: DataSize
型: 文字ベクトル、string
値: ベクトル
既定の設定: '[ 1, 1 ]'

ブロックがリモート アドレスから受信するデータ型。MATLAB データ型として指定されます。

このデータ型は、リモート アドレスのデータのデータ型と一致する必要があります。このパラメータを使用して、リモート アドレスのデータのデータ型を変更することはできません。

プログラムでの使用

ブロック パラメーター: DataType
型: 文字ベクトル、string
値: 'single' | 'double' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'ASCII'
既定の設定: 'uint8'

このパラメータは、受信した文字列データの形式を定義します。次の変換指定子、またはそれらの組み合わせを使用できます。

メモ

Simulink Coder を使用して C/C++ コードを生成する場合、使用できる変換指定子は 1 つだけです。

数値フィールドタイプ変換指定子詳細

整数、符号付き

%d

基数 10

%i

データ内の値によってベースが決まります。

  • デフォルトは 10 進数です。

  • 最初の数字が 0x または 0X の場合、値は 16 進数 (基数 16) になります。

  • 最初の数字が 0 の場合、値は 8 進数 (基数 8) になります。

%ld または %li

64 ビット値、基数 10、8、または 16

整数、符号なし

%u

基数 10

%o

基数 8 (8 進法)

%x

16進数(16進数)

%lu, %lo, %lx

64 ビット値、基数 10、8、または 16

浮動小数点数

%f

浮動小数点フィールドには、次のいずれか (大文字と小文字は区別されません) を含めることができます: Inf-InfNaN、または -NaN

%e

%g

プログラムでの使用

ブロック パラメーター: ASCIIFormatting
型: 文字ベクトル、string
値: '%d' | '%i' | '%ld' | '%li' | '%u' | %o' | '%x' | '%lu' | '%lo' | '%lx' | '%f' | '%e' | '%g'
既定の設定: '%f'

依存関係

このパラメータを有効にするには、Source Data typeASCII に設定します。

このパラメータを選択した場合、データ ブロックの終了を示すターミネータを指定できます。シミュレーションでは、ターミネータの前に発生するすべてのデータが新しいデータ ブロックとして扱われます。ターミネータデータは出力ポートに送信されません。このターミネータは、リモート マシンから読み取るデータ内のターミネータと一致する必要があります。

Custom Terminator を選択した場合は、独自のターミネータ値を指定できます。

プログラムでの使用

ブロック パラメーター: Terminator
型: 文字ベクトル、string
値: 'CR' | 'LF' | 'CR/LF' | 'LF/CR' | 'Custom terminator'
既定の設定: 'LF'

依存関係

このパラメータを有効にするには、Source Data typeASCII に設定します。

データ ブロックの終わりを示すカスタム ターミネータ。シミュレーションでは、ターミネータの前に発生するすべてのデータが新しいデータ ブロックとして扱われます。ターミネータデータは出力ポートに送信されません。

このパラメータで指定された数値配列は、対応する ASCII 文字の uint8 整数表現です。このパラメータの正確な形式は、ASCII 文字のタイプによって異なります。

ASCII文字の種類ASCII文字の例MATLAB コマンドパラメーター値
制御文字(エスケープシーケンス)"LF" ("\n")uint8(sprintf('\n'))[10]
特殊文字"#"uint8('#')[35]
数値"81"uint8('81')[56 49]
アルファベット"End"uint8('End')[69 110 100]

このパラメータは、ASCII 文字の 16 進表現を使用して指定することもできます。

プログラムでの使用

ブロック パラメーター: CustomTerminator
型: 文字ベクトル、string
値: 整数配列
既定の設定: '10'

依存関係

このパラメータを有効にするには、TerminatorCustom terminator に設定します。

バイトを大きな数値に並べる順番。バイト順序が little-endian の場合、最初のバイトは受信した TCP/IP パケットの最初のメモリ アドレスに編成されます。バイト順序が big-endian の場合、最後のバイトは受信した TCP/IP パケットの最初のメモリ アドレスに編成されます。

データを受信する前に、リモート マシンの適切な値と一致するようにバイト順序を構成します。バイトの保存順序については、機器のドキュメントを参照してください。

プログラムでの使用

ブロック パラメーター: ByteOrder
型: 文字ベクトル、string
値: 'little-endian' | 'big-endian'
既定の設定: 'big-endian'

このパラメータにより、ブロックがデータを受信している間、シミュレーションは待機します。新しいデータが利用可能になると、シミュレーションは次のタイムステップから続行されます。読み取り操作によってシミュレーションが待機しないようにする場合は、チェックボックスをオフにします。

ブロッキング モードを有効にすると、シミュレーションは要求されたデータが利用可能になるまで待機します。各タイム ステップで、モデルは Timeout パラメータで指定された時間まで待機します。この時間内にデータが受信されない場合、ブロックは 0 の値を出力します。

ブロッキング モードを有効にしない場合、シミュレーションは継続的に実行され、ブロックには StatusData の 2 つの出力ポートがあります。Data ポートには、各タイム ステップで要求されたデータ セットが含まれます。Status ポートには、指定された時間ステップで新しいデータを受信したかどうかに基づいて 0 または 1 が含まれます。

詳細については、Enable Blocking Mode in Receive and Send Blocksを参照してください。

プログラムでの使用

ブロック パラメーター: EnableBlockingMode
型: 文字ベクトル、string
値: 'on' | 'off'
既定の設定: 'on'

各シミュレーション時間ステップ中にモデルがデータを待機する時間(秒単位)。この値は、現実世界または「壁時計」の時間を基準としています。

プログラムでの使用

ブロック パラメーター: Timeout
型: 文字ベクトル、string
値: 正のスカラー
既定の設定: '10'

依存関係

このパラメータを有効にするには、Enable blocking modeon に設定します。

シミュレーション中のブロックのサンプリング時間。これは、シミュレーション中にブロックが実行される速度です。詳細については、Timing in Hardware Interface Modelsを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル、string
値: 正の数値
既定の設定: '0.01'

拡張機能

すべて展開する

バージョン履歴

R2007b で導入