例:CSV Utility SL 図書館
の
CSVReaderフォルダーには、CSV ファイルを読み取るためのコンポーネントが含まれています。初期化とファイル パスの受け渡しは、
CSVReaderInitファンクションブロック。CSV ファイルの値は、個別に、行ごとに、または一度にすべて読み取ることができます。の
NextLine、NextElement、 またReadAll関数ブロックは値を読み取るために使用されます。の
CSVReaderExampleのアプリケーションCSV Utility Examples.projectサンプル プロジェクトは、これらのコンポーネントの使用方法を示しています。要素の最大長は、CSV ファイルの列の最大長以上である必要があります。
の
CSVWriterフォルダーには、CSV ファイルを書き込むためのコンポーネントが含まれています。データは 3 つの手順で保存されます。
最初のステップはライブラリを初期化することです。このとき、パスとファイル名が渡されます。
2 番目のステップは、データをバッファに保存することです。
3 番目のステップは、バッファを CSV ファイルに書き込むことです。
説明
この例では、アプリケーションでライブラリ関数ブロックを使用する方法を説明します。
古典的な手続き型プログラミング
ファンクション ブロックに基づく古典的なプログラミングのファンクション ブロックは、 FunctionBlocks フォルダ。
このフォルダー内の関数ブロックは、非同期処理用に設計されています。それらは、 CBM.ETrigA ファンクションブロック。
機能ブロックごとに、他のプロジェクトで使用できる視覚化オブジェクトも作成されています。
この例は次のとおりです。 CSV Utility Examples.project のプロジェクト CSVWriterCFCExample 応用。
初期化: これは、 Init ファンクションブロック。ここで、ストレージ パスとファイル名を渡すことができます。
値を追加するには: 値は、次の方法でバッファに書き込むことができます。 AddXXX 機能ブロック。新しい行は次の方法で追加できます。 NewLine ファンクションブロック。新しいファイルが作成されます NewFile。
保存: バッファは次の方法で保存されます。 WriteFile ファンクションブロック。値は、対応するデータ型の標準形式で書き込まれます。
視覚化: 各機能ブロックの入力と出力の視覚化が表示されます。
ファンクションブロックの使用
内のすべての機能ブロック FunctionBlocks フォルダーは立ち上がりエッジに反応します。 xExecute 入力。
これらの操作は非同期で実行されることに注意してください。 xDone、 xError、 と eError それに応じて出力をサンプリングする必要があります。この処理はサイクル内で実行する必要はありません。
オブジェクト指向プログラミング
オブジェクト指向プログラミングの機能ブロックとインターフェイスは、 Objects フォルダ。
この例は次のとおりです。 CSV Utility Examples.project のプロジェクト CSVWriterSTExample 応用。
の CSVWriter function ブロックは、CSV ファイルを保存するための基本的な方法を提供します。
初期化:最初は、 InitSave 新しいファイルを作成するか、既存のファイルを開くには、メソッドを呼び出す必要があります。
値を追加するには:いずれかのとき Add メソッドが呼び出されると、値がバッファに書き込まれます。対応するメソッドが呼び出されるとすぐに新しい行が追加されます。バッファがいっぱいの場合は、エラーが返されます。データが保存されるとすぐに、新しい値を格納できるスペースが再び利用可能になります。
AddXXX: バッファの最後にデータを挿入します。NewLine: 新しい行を追加します
保存:
Save:バッファの値をCSVファイルとして保存します
追加のメソッド:
GetFileSize: 現在のファイルのサイズを返します。NewFile: 指定した名前または自動生成された名前で新しいファイルを作成します。
エラー: すべてのメソッドには、考えられるタイプのエラーを保存するためのエラー フィールドがあります。 CSV_ERROR。
追加情報
の CSV Utility SL Examples.project サンプル プロジェクトには、次のサンプル アプリケーションが含まれています CSVReader および 2 つのサンプル アプリケーション CSVWriter。
応用: CSVReaderExample
この例では、CSV ファイルから値を読み取る 3 つの方法を示します。の Prog プログラムはその使用方法を示します CSVReaderInit、 NextElement、 ReadAll、 と NextLine 機能ブロック。の内容は、 CSVReader.csv ファイルがビジュアライゼーションで表示されます。
ヒント
サンプルをテストするには CODESYS Control、CSVファイル CSVReader インストール先のディレクトリから c:\temp ディレクトリ。
応用: CSVWriterCFCExample
この例では、CFC の例を使用して、CFC の関数ブロックの使用方法を示します。 CSVWriter 図書館。また、統合されたビジュアライゼーションの使用方法も示します。
機能性:
の
WriteValuesプログラムは CSV ファイルを"c:/temp/CSVWriterCFCExampleData.csv"フォルダ。ビジュアライゼーションで、 追加するにはここをクリックしてください ボタンはファイルへの書き込みをトリガーします。
初期化は次の方法で行われます。
CSV.Initファンクションブロック。パスとファイル名はここに直接渡されます。の
AddWord、AddString、 とNewLine関数ブロックは、内部バッファに値を追加する方法を示します。の
ctuカウンタはイベントごとに行番号をインクリメントします。新しい行が追加された後、値は次の方法で CSV ファイルに書き込まれます。WriteFileファンクションブロック。
応用: CSVWriterSTExample
この例では、オブジェクト指向プログラミングまたは逐次プログラミングを使用して、変数の値を CSV ファイルに書き込む方法を示します。各処理は 2 つのタスクで実行されます。 1 つのタスクは値をバッファに書き込み、もう 1 つのタスクはデータをバッファからファイルに保存します。
機能性:
ObjectOriented_Save(オブジェクト指向保存)このプログラムは
SaveからのメソッドDataObject、保存操作が実装されています。ObjectOriented_Write(オブジェクト指向の書き方)このプログラムは
WriteからのメソッドDataObjectここで書き込み操作が実装されます。DataObjectこの機能ブロックは、
ICSVObjectインターフェース。のWriteメソッドには、後で保存されるローカル変数が含まれています。対応しますAddXXXデータ型ごとにメソッドが呼び出されます。一定の行数が経過すると、別の値を使用して新しいファイルが作成されます。エラーが発生するとすぐに、Errorステータスに達しました。そうすれば他には何も書かれなくなります。のSaveメソッドは保存操作を実装します。初めに、InitSaveの方法CSVWriterファンクションブロックインスタンスが呼び出されます。その後は、Saveメソッドを呼び出す必要があります。以下のプログラムを有効にするには、タスク内の POU を変更する必要があります。
Sequential_Save(順次保存)保存操作も次のコマンドで開始する必要があります。
InitSave方法。 CSV ファイルが特定のサイズに達すると、新しいファイルが作成されます。ファイル名が指定されていない場合は、番号が付加された既存の名前が使用されます。Sequential_Write(連続書き込み)さまざまな変数がバッファーに書き込まれます。これがいっぱいの場合、
EndOfBufferエラーが返されます。上で説明した書き込み操作とは対照的に、今回はエラーは無視され、バッファへの書き込みが続行されます。その結果、一部のデータが失われますが、プログラムは引き続き実行されます。次の保存操作が開始されるとすぐに、バッファは再び空になります。
システム要件と制限事項
プログラミングシステム | CODESYS Development System (バージョン 3.5.18.0 またはそれ以降) |
ランタイムシステム | 全て 注: 無料の |
アドオンコンポーネント | - |
注記
ダウンロード プロジェクト