工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

データベースをネイティブの PLCnext Datalogger から CSV ファイルに変換する

産業用アプリケーションから値をログに記録することは、多くの顧客の主な特徴であり、一部のアプリケーションでは変数の数が非常に多くなる可能性があるため、このデータログを構成するためのネイティブで簡単な方法が必要です。

以下では、ネイティブの Datalogging サービス コンポーネントについて詳しく説明し、このサービスから CSV ファイルを生成する方法を確認します。


Datalogging Service コンポーネントの詳細については、次のリンクを参照してください:

Datalogging セッションを構成すると、ログに記録されたすべての変数値を含む *.db ファイルが作成されます。この *.db ファイルはデータベース ファイルですが、値を参照するには、この形式に Sqlite3 や DB ブラウザなどのツールが必要です。

多くの顧客は既に *.csv ファイルに精通しているため、このデータベースを csv ファイルにエクスポートする方法を説明します。すべての PLCnext コントローラに存在する Sqlite3 ツールは、このエクスポートを行うために必要なすべてのツールを提供しています。

データベースが作成されると、データベースに必要な名前を設定できますが、値を含むデータベースに存在するテーブルに特定の名前を設定することはできません。幸いなことに、Sqlite3 ツールは、コマンド「Sqlite3 .tables」を使用して、データベースに存在するテーブルを表示するのに役立ちます。
特定のコマンドはすべて、Sqlite3 のヘルプ ページまたはこのページ Sqlite3 にあります。

テーブルの名前がわかれば、このテーブルからすべてのデータを選択し、このデータを csv ファイルにエクスポートできます。

プロセスを少し簡単にするために、2 つのスクリプトをリンクして、データベースからエクスポートを作成します。
もちろん、ニーズに合わせてスクリプトを変更できます!

残念ながら、*.sh ファイルをアップロードできないため、以下に 2 つのファイルの内容を示します。

まず、ISO8601 タイムスタンプ形式のファイル:

ExportSQL2CSV_ISO.sh
#!/bin/bash

name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',Timestamp) from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
sqlite3 -header -csv -separator ";" $name_of_database "SELECT * from $name_of_table;"\
> $output_filename

RAW タイムスタンプ形式の 2 番目のファイル:

ExportSQL2CSV_RAW.sh
#!/bin/bash

name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
sqlite3 -header -csv -separator ";" $name_of_database "SELECT \
strftime('%Y-%m-%d %H:%M:%f',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') AS Time,\
* from $name_of_table;"\
> $output_filename

これらのファイルはスクリプトになるため、ファイルに実行可能フラグを追加することを忘れないでください:

chmod +x ExportSQL2CSV_*.sh

次に、スクリプトを呼び出すことができます。スクリプトの呼び出しは次のとおりです:

./ExportSQL2CSV_ISO.sh <PathToDatabase>

スクリプトが完了すると、次のようなデータベースの名前とデータベースの最初のエントリの DateTime を含む CSV ファイルが見つかります:

これで、ネイティブの DataLogger サービス コンポーネントを使用して記録したすべてのデータを含む CSV ファイルができました。

ツール cron を使用して、このファイルの作成を毎時間または毎日自動化することで、さらに先へ進むことができます。 .

ご質問やご意見がございましたら、お気軽にお問い合わせください!


産業技術

  1. コマンドラインインターフェイス
  2. Cファイルの取り扱い
  3. C - ヘッダー ファイル
  4. CMからEMS、MSPへ:業界の進化
  5. COVID-19はスポットライトに3Dプリントを推し進めています
  6. 潜在顧客への投資を最大限に活用するにはどうすればよいですか?
  7. 機械学習から最も恩恵を受ける4つの業界
  8. ISO 9001規格を製造業者の戦略に統合
  9. Mill ファイルとは?
  10. Go で静的ファイルを提供する
  11. IXMLSerializable インターフェイスを使用して、XML ファイルからクラスを作成する