2017-08-10 140 views
0

私は、機能ブロックの出力値を計算するためにオートメーションデバイス(CODESYSを装備)を使用しています。関数が正常に動作することを確認するために、この出力値を、書き込まなかった別の関数ブロックの出力結果と比較したいと考えています。CODESYS(IEC 61131-3)でファイルI/Oを実行する方法は?

この比較の結果を報告するために、上記の2つの値をグラフの形で描きたいと思います。したがって、これらの2つのデータの時間文字列(csvまたはその他の形式)が必要です。私はいくつかのGoogleの研究を行い、またこれを見てくださいquestion。 CODESYSを使用してファイルI/Oを実行する方法については、大量の情報がないようです。

誰かが類似した経験(CSVデータを生成するために同期ファイルI/Oを実行している)を持っているかどうかは疑問です。

いずれのアイデアも高く評価されています。おかげさまで

答えて

0

最近の質問はCodesysのDr. Alizadehチュートリアルで尋ねられます。 ここにlinkがあります。 基本的には、Codesysのトレース機能を使用するよりも狭いです。

1

FILEライブラリを参照してください:https://help.codesys.com/webapp/Examples;product=CAA_FILE;version=3.5.11.0

基本的に何をしなければならないことである。

  1. あなたCSVラインのためのデータバッファを作成し、例えば
    LineArray : ARRAY[1..100] OF STRING[255].
  2. 保存測定値いくつかの間隔で文字列バッファに渡します。有効なCSVラインを作成するには、CONCATREAL_TO_STRINGを使用してください。同時に

  3. 、バッファからファイル(FILE.Write)にデータを書き込むために開かれたファイルハンドルを使用しFILE.Open機能ブロックで

  4. をファイルを開きます。 MemCpyなどの書き込み後にバッファを移動することを忘れないでください。

  5. すべての行が書き込まれたら、FILE.Closeを使用します。

+0

ありがとうございました。あなたに似たような例があるのだろうか? –

+0

私はTwinCATブロックと同様のものだけをコード化しました。 TwinCATファイルブロックの例がいくつかありますが、それらは非常によく似ています(オープン、書き込み、クローズなど)。 [Beckhoffのページへのリンク](https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibsystem/html/tcplclibsys_fileio_example.htm&id=) – Quirzo

+0

素晴らしい!ありがとうございました! –

関連する問題