[フォーマット入出力バッファ] ダイアログ

[FormatInputBuffer] ダイアログと [FormatOutputBuffer] ダイアログを使用して、FormatInputBuffer 関数と FormatOutputBuffer 関数のデータを自動的に設定し、フォーマットされたデータを含むバッファ構造体を返します。

データは、一般に PLC との間で送受信され、使用される通信のタイプに応じて一部の入出力関数でも使用することができます。プロトコルによっては、データにパディングして (すなわち、必要なデータの間に未使用データを追加して)、データが PLC のデータ配置と一致するようにする必要があります。EtherNet/IP プロトコルの場合、RSLogix は、ユーザ定義のデータ型を 4 バイト境界にパディングします ([FormatOutputBuffer] ダイアログでは 4 バイト境界へのデータの配置をサポートしません)。Inspection Results データ配列を受信すると、RSLogix 5000 は、送信されたデータに複数のデータ型 (整数、浮動小数点数、ビット) が含まれていたかどうかに関係なく、配列全体に単一のデータ型を割り当てます。結果に異なるデータ型が含まれている場合は、送信されることが予期されるデータ型に基づいて、Inspection Results 配列にバイトオフセットをコピーし、RSLogix のユーザ定義のデータ型にバイト単位の長さをコピーする必要があります。

サポートされる産業用イーサネットプロトコルの 1 つを介してパッケージ化データを送信する場合は、プロトコルベンダのドキュメントを参照してプロトコルのデータ配置とパッキング動作を決定します。

[FormatInputBuffer] ダイアログを表示するには

  1. スプレッドシートの空白のセルを選択します。
  2. [挿入] メニューで、[式] をクリックします。
  3. [関数の挿入] ダイアログで、[入出力] カテゴリを展開します。
  4. 右側のリストで、[FormatInputBuffer] をダブルクリックします。

[FormatInputBuffer] ダイアログの設定項目

  • [データ型]: 自動的に設定するデータの型を指定します。
  • [エレメントごとのバイト数]: 選択したデータ型が [文字列] または [バイト順序反転文字列] の場合、データのサイズをバイト単位で指定します。そのほかのデータ型のサイズはすべて固定で編集できません。[エレメントごとのバイト数] フィールドには、最大 4,000 バイトを入力することができます。ただし、最大入力長を超えた場合、プロトコルでは読み取ることはできません。入力データが制限を超えた場合、プロトコルはその一部しか読み取ることができません。

    :  
    • Modbus TCP、EIP、または PROFINET 通信を使用している場合の入力データの最大長は 4,000 バイトです。SLMP または SLMP スキャナを使用しているときに、[iQ-R/Q/L シリーズ] または [iQ-F シリーズ] で [コントローラタイプ] が選択されている場合、入力データの最大長は 1,920 バイトです。SLMP または SLMP スキャナを使用しているときに、[FX シリーズ] で [コントローラタイプ] が選択されている場合、入力データの最大長は 128 バイトです。そのほかのすべての通信方法では最大長は 256 バイトです。

    • メッセージの総サイズが 4,000 バイトを超えた場合は、#ERR が返されます。
    データ型 サイズの範囲 (バイト数)
    ビット* 1 ビット
    8 ビット整数 1
    8 ビット符号なし整数 1
    16 ビット整数 2
    16 ビット符号なし整数 2
    32 ビット整数 4
    32 ビット浮動小数点数 4
    文字列
    • Modbus TCP、EIP、または PROFINET = 1 ~ 4000 (ワードベースのプロトコルの場合は 1 ~ 2000)。
    • SLMP または SLMP スキャナで iQ-R/Q/L シリーズまたは iQ-F シリーズ = 1 ~ 1920 (ワードベースのプロトコルの場合は 1 ~ 960 ワード)。
    • SLMP または SLMP スキャナで FX シリーズ = 1 ~ 128 (ワードベースのプロトコルの場合は 1 ~ 64 ワード)。
    • そのほかのすべての通信方法 = 1 ~ 256 (ワードベースのプロトコルの場合は 1 ~ 128 ワード)。
    バイト順序反転文字列 
    • Modbus TCP、EIP、または PROFINET = 1 ~ 4000 (ワードベースのプロトコルの場合は 1 ~ 2000)。
    • SLMP または SLMP スキャナで iQ-R/Q/L シリーズまたは iQ-F シリーズ = 1 ~ 1920 (ワードベースのプロトコルの場合は 1 ~ 960 ワード)。
    • SLMP または SLMP スキャナで FX シリーズ = 1 ~ 128 (ワードベースのプロトコルの場合は 1 ~ 64 ワード)。
    • そのほかのすべての通信方法 = 1 ~ 256 (ワードベースのプロトコルの場合は 1 ~ 128 ワード)。
    *[ビット] データタイプは、SLMP および CC-Link 通信の場合のみ使用可能です。
  • [追加]: リストにデータ型を追加します。
  • [削除]: ハイライトしたデータ型をリストから削除します。
  • [上に移動]: ハイライトしたデータ型をリストの上に移動します。そのデータ型が既にリストの最初の場合、[上に移動] ボタンはグレーアウトされます。
  • [下に移動]: ハイライトしたデータ型をリストの下に移動します。そのデータ型が既にリストの最後の場合、[下に移動] ボタンはグレーアウトされます。

[フォーマット出力バッファ] ダイアログを表示するには

  1. スプレッドシートの空白のセルを選択します。
  2. [挿入] メニューで、[式] をクリックします。
  3. [関数の挿入] ダイアログで、[入出力] カテゴリを展開します。
  4. 右側のリストに表示された FormatOutputBuffer をダブルクリックします。

[フォーマット出力バッファ] ダイアログの設定項目

  • [セル範囲]: 選択した [データ型] の値を含む参照セル (またはセル範囲) を指定します。

    :  各データ型は有効な値を含むセルを参照する必要があります。そうでない場合、ダイアログは #ERR を返します。
  • [データ型]: 自動的に設定するデータの型を指定します。
  • [エレメントごとのバイト数]: 選択したデータ型が [文字列] または [バイト順序反転文字列] の場合、データのサイズをバイト単位で指定します。そのほかのデータ型のサイズはすべて固定で編集できません。[エレメントごとのバイト数] フィールドには、最大 4,000 バイトを入力することができます。ただし、最大出力長を超えた場合、プロトコルでは書き込むことはできません。出力データが制限を超えた場合、プロトコルはその一部しか書き込むことができません。

    :  
    • Modbus TCP、EIP、または PROFINET 通信を使用している場合の出力データの最大長は 4,000 バイトです。SLMP または SLMP スキャナを使用しているときに、[iQ-R/Q/L シリーズ] または [iQ-F シリーズ] で [コントローラタイプ] が選択されている場合、出力データの最大長は 1,920 バイトです。SLMP または SLMP スキャナを使用しているときに、[FX シリーズ] で [コントローラタイプ] が選択されている場合、出力データの最大長は 128 バイトです。そのほかのすべての通信方法では最大長は 256 バイトです。

    • メッセージの総サイズが 4,000 バイトを超えた場合は、#ERR が返されます。
    • 16 ビット整数 1 つは 3 文字であるため、16 ビット整数を使用する場合、出力データの最大長は 140 バイトになります。この上限を超えた場合、関数から「Error String too long」が返されます。出力データが制限を超える場合は、CombineOutputBuffers 関数を使用します。
    データ型 サイズの範囲 (バイト数)
    ビット* 1 ビット
    8 ビット整数 1
    8 ビット符号なし整数 1
    16 ビット整数 2
    16 ビット符号なし整数 2
    32 ビット整数 4
    64 ビット整数 8
    32 ビット浮動小数点数 4
    文字列
    • Modbus TCP、EIP、または PROFINET = 1 ~ 4000 (ワードベースのプロトコルの場合は 1 ~ 2000)。
    • SLMP または SLMP スキャナで iQ-R/Q/L シリーズまたは iQ-F シリーズ = 1 ~ 1920 (ワードベースのプロトコルの場合は 1 ~ 960 ワード)。
    • SLMP または SLMP スキャナで FX シリーズ = 1 ~ 128 (ワードベースのプロトコルの場合は 1 ~ 64 ワード)。
    • そのほかのすべての通信方法 = 1 ~ 256 (ワードベースのプロトコルの場合は 1 ~ 128 ワード)。
    バイト順序反転文字列 
    • Modbus TCP、EIP、または PROFINET = 1 ~ 4000 (ワードベースのプロトコルの場合は 1 ~ 2000)。
    • SLMP または SLMP スキャナで iQ-R/Q/L シリーズまたは iQ-F シリーズ = 1 ~ 1920 (ワードベースのプロトコルの場合は 1 ~ 960 ワード)。
    • SLMP または SLMP スキャナで FX シリーズ = 1 ~ 128 (ワードベースのプロトコルの場合は 1 ~ 64 ワード)。
    • そのほかのすべての通信方法 = 1 ~ 256 (ワードベースのプロトコルの場合は 1 ~ 128 ワード)。
    *[ビット] データタイプは、SLMP および CC-Link 通信の場合のみ使用可能です。
  • [メッセージサイズ (バイト)]: 総メッセージサイズ (バイト単位) を表示します。
  • [追加]: 1 つ以上のセルを参照するセル選択モードを呼び出します。ダイアログを開いたままでセルを選択できます。
  • [削除]: ハイライトしたデータ型をリストから削除します。ハイライトされた項目がない場合、[削除] ボタンは使用できません。
  • [上に移動]: ハイライトしたデータ型をリストの上に移動します。そのデータ型が既にリストの最初の場合、[上に移動] ボタンはグレーアウトされます。
  • [下に移動]: ハイライトしたデータ型をリストの下に移動します。そのデータ型が既にリストの最後の場合、[下に移動] ボタンはグレーアウトされます。

FormatOutputBuffer の例

  1. セル A2、A3、および A4 が次のような内容であるとします。

A2 = EditInt(0,255)

A3 = EditFloat(0,100)

A4 = EditString(8)

スプレッドシートには次のように表示されます。

  1. FormatOutputBuffer 関数をセル C2 に挿入します。[フォーマット出力バッファ] ダイアログが自動的に開きます。

  1. [追加] ボタンをクリックして、適切なデータを含むセルを参照します。例えば、セル A2 をハイライトします。

  1. Enter キーを押して、参照セルの選択を適用し、[フォーマット出力バッファ] ダイアログに戻ります。参照したセルがダイアログのリストに表示されています。
  2. [追加] ボタンをクリックして、さらにセル参照を追加します。リスト内の既存の項目の [データ型] を変更したり、削除したり、並べ替えたりすることができます。

  1. [OK] をクリックしてダイアログを閉じ、スプレッドシートに戻ります。バッファデータ構造体が返されます。