NI-9144 EtherCATスレーブシャーシのファームウェアをプログラム的にフラッシュしてユーザ定義変数を保持する方法はありますか?

更新しました Jul 10, 2019

使用製品

ハードウェア

  • NI-9144
  • NI-9145

ソフトウェア

  • LabVIEW FPGA Module

ドライバ

  • NI-Industrial Communications for EtherCAT

プログラミング言語

  • LabVIEW G

問題

CompactRIOコントローラにデプロイされたユーザ定義変数(UDV: User Defined Variables)を備えたEtherCAT 9144スレーブシャーシを使用しています。自分のCompactRIOターゲットからEtherCATのファームウェアをプログラム的にフラッシュしたいため、下記にあるWriteFOE.viのサンプルプログラムを使用してみました。
 

C:\Program Files\National Instruments\[LabVIEWバージョン]\examples\indcomecat\Write FoE
 

ファームウェアはフラッシュされましたが、UDVは整合性がなく動作しませんでした。再び動作するようには、手動ですべてをデプロイ解除して再デプロイする必要があります。
 

EtherCATシャーシのファームウェアをプログラム的にフラッシュして、UDVを動作させ続けるにはどうすればよいですか?

解決策

NI-9144のファームウェアは、.FoEファイルとして書かれています。.FoEファイルがNI-9144に書き込まれると、File Over EtherCATと呼ばれるデータ転送メカニズムを使用してFPGAビットファイルが上書きされます。.FoEファイルはUDVを含むFPGAを書き換えているため、ファームウェアがフラッシュされるとUDVは上書きされます。
 

この問題を解決するには、まずファームウェアをダウンロードしてから、ビットファイルから生成された2つ目の.FoEファイルを使用してUDV/ビットファイル構成を復元する必要があります。それには、以下の手順を行います。
 

  1. NI-9144 FPGAで実行するUDVとVIを作成します。
     
  2. FPGA VIをコンパイルします。
    • FPGA VIを右クリックして、ビルド仕様を作成を選択します。
    • ビルド仕様を右クリックしてビルドを選択します。
       
  3. LabVIEWプロジェクトからEtherCATマスタ構成をデプロイします。(プログラムによる検出とデプロイにスキャンエンジンの"モジュールを更新"機能を使用しない場合のみ)。
    • EtherCATターゲットを右クリックしてデプロイを選択します。
       
  4. パーソナライズされた.FoEファイルを生成します。それをEtherCATターゲットにダウンロードします。
    • LabVIEW 2018以降の場合: ビルド仕様を右クリックしてダウンロードを選択し、プロンプトが表示されたら構成モードに変更します。これにより、自動的に.FoEファイルを生成します。必要に応じて、下に添付されているBitfile2FOE_Converter_2018_for_9144またはBitfile2FOE_Converter_2018_for_9145ツールを使用して手動で行うこともできます。
  5. FTPまたは他のファイル転送プロトコルを使用して、.FoEファイルをCompactRIOにアップロードします。 .FoEファイルは、コンパイルしたFPGAビットファイルとともにFPGA Bitfilesフォルダに配置されます。 .FoEファイルがビットファイル(.lvbitx)と同じ名前であることを確認します。
     
  6. CompactRIOからWriteFOE.viを実行します。.FoEファイルのパスと名前を必ず変更してください。