今回の記事では、【MWRIT】を使用してCSVファイルの作成方法を紹介します。今回は下記のようなCSVファイルをSDカード内に作成してみたいと思います。(※:各取得値に対する項目については、今回の記事では紹介しませんので、ご了承下さい。)
過去に【MWRIT】について紹介しています。
今回は、実際に実機を用いて作成をしてみました。機器環境としては下記の通りです。
ラダー図の紹介
まず、今回の動作フローと仕様については下記の通りとしました。(下図参照して下さい。)
SDカード書込み要求
ここでの、SDカード書込み要求は、どんな表現の仕方でも構いません。私自身は下記の書き方で組んできているので下図のようにしております。
- SDカードの有無を確認すること
- SDカードの状態(動作中)を確認すること
- MWRITの通知ビットを開始後にOFFにすること
- MWRITの異常で全体回路を遮断すること
基本的に、SDカードが無いのにSDカード書込みを行うことはおかしいことなので、必ず有無を確認します。また、SDカードが動作中(処理が完了していない状態)にTRGを入れると、データの取得漏れなどが考えられるので、動作停止中にTRGが入るようにしています。
上図使用したコントロールリレー(特殊リレー)は下記の通りとなっております。
CR3212 及び CR3213 はメモリーカード在荷情報です。これらは、SDカードがPLCに挿入されている状態で、SDカードの挿入箇所のフタを開けると、上記のリレーはOFFとなります。(SDカードを挿入した上で、フタを閉じるとONします。)
CR3211 及び CR3214 は、メモリーカード動作情報です。これらは、メモリーカードに書込みや削除、読出し(命令実行中)などを行うとONします。
ファイル名称作成
ここでは、各日付を文字列変換して、それらを結合してファイル名称を作成しています。
場合によっては、”●●●_22-06-19″のような場合もあります。(※:●●●には、タイトルが入ります。)そういう場合でも、【SADD】や【SMOV】を必要に応じて使用して行けば可能となります。
過去に【SMOV】や【SADD】について紹介しています。
取得値1書込み
取得した値(乱数1にて生成した数値)を文字列変換してあげる必要があります。下図では、【FASC】(単精度浮動小数点型実数➡文字列変換)を用いて変換しております。(※【FASC】については別記事で紹介します。更新後、この記事にもリンク貼付します。)
上記にて変換した値を保存したいので、【MWRIT】では、パラメータの保存形式を”文字列”にしています。(※:KV-N14 ~ KV60:端子台タイプについては、この命令は実行できませんので、ご注意下さい)
- 通知ビット(完了信号)を見て、次の動作工程へ
【MWRIT】には、完了信号が存在するので、必ずそれらの信号状態を見て次動作へ行くように回路を組みましょう。
取得値2書込み
取得した値(乱数2にて生成した数値)を文字列変換してあげる必要があります。下図では、【FASC】(単精度浮動小数点型実数➡文字列変換)を用いて変換しております。(”取得値1と同じです)(※【FASC】については別記事で紹介します。更新後、この記事にもリンク貼付します。)
上記にて変換した値を保存したいので、【MWRIT】では、パラメータの保存形式を”文字列”にしています。
そして、今回の仕様では、”取得値1”と”取得値2″のみをCSVファイルへ保存します。なので、ここでの【MWRIT】のパラメータのオプションは”1″(改行)にしています。
この改行を行わないと、データが横へ、追加されていくこととなりますので、マニュアルを見て各パラメータの数値を必要に応じて設定していきましょう。
- 通知ビット(完了信号)を見て、次の動作工程へ
完了
回路の最後に、各通知ビットをOFFにします。各通知ビットがOFFしたことを確認してこの回路は完了となります。
- 各書込みが完了後に、各通知ビットをリセットしてあげる
フォルダー
上記にて生成されたCSVファイルは下記のようにフォルダーに保存されております。
個別フォルダーに保存したい場合は、下記の通りとなります。
- 事前にSDカード内にフォルダーを作成しておく
- 【MMKDIR】で必要に応じて作成する
さいごに
今回は、CSVファイルの作成を紹介しました。【MWRIT】を用いて書き込むことでロギング機能よりも制御の幅(やりたいこと)が広がるかと思います。今回のポイントを下記にまとめました。
- SDカードの有無を確認すること
- SDカードの状態(動作中)を確認すること
- MWRITの異常で全体回路を遮断すること
- 必ず通知ビット(完了信号)で次動作を行うこと
- 書込み完了後、各通知ビットをリセットすること