例: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 またはそれ以降) |
ランタイムシステム | 全て 注: 無料の |
アドオンコンポーネント | - |
注記
ダウンロード プロジェクト