メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。

CANフレームが受信されるまで待機し、そのフレームを返します。

CAN入力を使用してCANポートから読み取るには、以下の手順に従ってください。

  1. ターゲットとデバイスを追加ダイアログボックスを使用して、CANモジュールをCompactRIO構成に追加します。プロジェクトエクスプローラウィンドウでCANモジュールを右クリックし、プロパティを選択してモジュールの構成プロパティを指定します。
  2. CAN用にFPGA I/O項目を作成するには、プロジェクトエクスプローラウィンドウのマイ コンピュータの下のFPGAターゲットを右クリックし、FPGA I/O一覧に新規→FPGA I/Oを選択してCAN»NI 9852»CAN0(またはCAN»NI 9853»CAN0)および/またはCAN»NI 9852»CAN1(またはCAN»NI 9853»CAN1)を追加します。
  3. FPGA I/OパレットからFPGA I/OノードをFPGA VIのブロックダイアグラムに配置します。
  4. FPGA I/Oノードを右クリックしてFPGA I/Oを選択»CAN»NI 9852»CAN0(またはFPGA I/Oを選択»CAN»NI 9853»CAN0)またはFPGA I/Oを選択»CAN»NI 9852»CAN1(またはFPGA I/Oを選択»CAN»NI 9853»CAN1)を選択します。
  5. FPGA I/Oノードを右クリックして読み取りに変更を選択し、CAN入力用のI/Oノードとして使用します。
  6. FPGA I/Oノードを右クリックしてプロパティを選択し、Data Typeを選択します。

CAN入力を使用する前にCANポートの通信を開始してください。モジュール構成で自動開始を有効にするか開始メソッドを呼び出して通信を開始してください。

CAN Advanced Port Configurationダイアログボックスの入力タイムアウト (ms)は、新しいフレームが受信されるまで待機する時間を指定します。入力タイムアウト (ms) を0に指定すると、CAN入力ノードは新規フレームが到着したかどうかのみを確認します (ブロックなし)。

CAN入力と他のCANノードがどのように調整されるかについては、アービトレーションを参照してください。
メモ   FPGA I/Oノードに複数のCAN入力ポートを追加できます。また、FPGA I/Oノードを右クリックして要素を追加を選択することで、同じFPGA I/Oノードにアナログおよびデジタル入力を追加することもできます。作成したI/Oノードを右クリックしてFPGA I/Oを選択をクリックし、I/O名を指定します。1つのノードに複数の入力を使用する場合、LabVIEWは上部の入力から順番に実行します。入力の待機中に1つの入力がブロックされると、その後の入力が遅延します。例えば、同じCAN入力ノードでCAN0とCAN1を読み取る場合、そのノードはまずCAN0でフレームが受信されるのを待ち、その後CAN1でフレームが受信されるのを待ちます。別のCAN入力ノードを使用して各CANポートにアクセスするほうが効率的です。

プロパティダイアログ

メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。

Data Typeは、CAN入力ノードから返されるCANフレームのタイプを選択します。利用可能な値はCluster(デフォルト)およびArray of 6 U32です。

Clusterデータタイプを使用する利点は以下のとおりです。

  • 使いやすいシンプルなブロックダイアグラム
  • フロントパネルを使用せずブロックダイアグラムのみに使用を限定する場合、高速で効率的

Array of 6 U32データタイプの利点、およびホストVIに一度に整数をハンドシェイクする利点は以下のとおりです。

  • ホストVIへの通信が高速
  • 使用するFPGAゲートが少ない

クラスタと配列の使用の詳細については、LabVIEW FPGA アプリケーション アプリケーションノート「Using Clusters and Arrays」を参照してください。

ノード入力

メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。
  • エラー入力 —任意。デフォルトでは表示されません。ノードを右クリックしてエラー端子を表示を選択すると有効になります。
  • ノード出力

    メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。
  • エラー出力 —任意。デフォルトでは表示されません。ノードを右クリックしてエラー端子を表示を選択すると有効になります。 入力タイムアウト (ms) を–1に設定して無期限に待機するようにしていない限り、CAN入力がCANフレームを正常に受信したかどうかを判断するにはエラー端子を使用する必要があります。
  • CANx データタイプクラスタ(デフォルト)に設定されている場合、CANフレームはクラスタとして表現されます。クラスタ要素については、以下のテーブルを参照してください。
  • 表 537. CANxクラスタ要素
    Data Type 要素 説明
    タイムスタンプ高タイムスタンプ低 フレーム受信時のタイムスタンプ。タイムスタンプはCANフレームの最後に取得されます。HighとLowのU32 (符号なし倍長整数) で、単一のU64 (符号なし64ビット整数) タイムスタンプを表現します。タイムスタンプは、ロールオーバー処理を回避するのに十分なサイズです。タイムスタンプは相対値のゼロ基準です。CAN通信の開始時に時間が0から開始します。分解能は100 nsです。
    識別子 アービトレーションID。

    ビット29 (16進数形式で20000000) がクリアである場合、このIDは標準形式 (11ビット) を使用します。

    ビット29が設定されている場合、このIDは拡張形式 (29ビット) を使用します。

    タイプ フレームのタイプ。
    • データフレーム: 0
    • リモートフレーム: 1
    • バスエラー: 6
    • トランシーバフォルト: 7
    インフォA 将来の使用のために予約済みです。
    インフォB 将来の使用のために予約済みです。
    データ長

    データフレームの場合、データ(0~8)内のバイト数を示します。

    リモートフレームの場合、要求されたバイト数を示します。

    データ

    データフレームの場合、データバイトを提供します。この配列は、8バイトの固定サイズを使用します。

    リモートフレームの場合、データに含まれる値は有効ではないため、無視する必要があります。

    データタイプ6つのU32の配列に設定されている場合、CANフレームは以下のテーブルに示すように6つのU32値の配列として表現されます。

    表 538. 6つのU32値の配列
    最上位バイト ... ... 最下位バイト
    タイムスタンプ(上位U32)
    タイムスタンプ(下位U32)
    識別子
    タイプ インフォA インフォB データ長
    データ[0] データ[1] データ[2] データ[3]
    データ[4] データ[5] データ[6] データ[7]

    上記のテーブルでは、各要素の意味はクラスタデータタイプと同じです。