(57)【要約】【課題】本発明は、データログモジュールが、メモリにデータ列を保存する場合に、データ列を圧縮した後メモリに保存して、限定された容量のメモリに大容量のデータ列を保存できるデータ保存方法を提供する。  また、データ列を圧縮して減らすことによって、データ列の保存速度を向上できるデータ保存方法を提供する。【解決手段】本発明の方法は、ＣＰＵモジュールが生データ及びＲＴＣ値を収集して、データログモジュールの共用ＲＡＭに保存して、データログモジュールのＭＰＵが生データのタイプを変換して、タイプを変換したデータと前記ＲＴＣ値及びインデックス値を追加してデータ列を生成して、生成したデータ列をデータログモジュールの圧縮部が圧縮してメモリカードに保存することができる。【選択図】図４
2014229313.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵモジュールが、生データ及びＲＴＣ値を収集して、前記収集した生データ及びＲＴＣ値をデータログモジュールの共用ＲＡＭに保存するステップと、
前記データログモジュールのＭＰＵが、前記生データのタイプを変換して、前記変換されたデータに前記ＲＴＣ値及びインデックス値を追加してデータ列を生成するステップと、
前記生成したデータ列を前記データログモジュールの圧縮部が圧縮して、前記生成して圧縮したデータ列をメモリカードに保存するステップと、を有することを特徴とするデータ保存方法。
【請求項２】
前記データログモジュールの共用ＲＡＭに保存するステップ以前に、入力部を介してラダープログラムを入力しながらパラメータ及び保存条件を設定するステップをさらに有し、
前記データログモジュールの共用ＲＡＭに保存するステップにおいて、前記ＣＰＵモジュールは、前記パラメータ及び前記保存条件を満足する生データ及びＲＴＣ値を収集することを特徴とする、請求項１に記載のデータ保存方法。
【請求項３】
前記メモリカードに保存するステップは、
前記生成したデータ列をバッファに保存するステップと、
前記バッファに保存したデータ列を前記圧縮部が圧縮して、前記圧縮したデータ列を前記メモリカードに保存するステップと、を有することを特徴とする、請求項１または２に記載のデータ保存方法。
【請求項４】
前記データログモジュールの共用ＲＡＭに保存するステップ以前に、入力部を介して圧縮可否を設定するステップをさらに有し、
前記メモリカードに保存するステップにおいて、前記圧縮部は、圧縮可否の設定を判断して、圧縮が設定されている場合に前記データ列を圧縮して前記メモリカードに保存することを特徴とする、請求項１乃至３のいずれか一項に記載のデータ保存方法。
【請求項５】
前記メモリカードに保存するステップは、
前記データ列でハフマンコーディング手法に従うハフマンツリーを生成するステップと、
前記生成したハフマンツリーの左側の枝及び右側の枝に０または１を選択的に与えて圧縮コードを生成するステップと、
前記圧縮コードを前記メモリカードに保存するステップと、を有することを特徴とする、請求項１乃至４のいずれか一項に記載のデータ保存方法。
【請求項６】
前記ハフマンツリーを生成するステップは、
前記データ列を基準として各々のデータ列の頻度数をチェックして、チェックした結果により確率値を計算するステップと、
前記計算したデータ列のサンプルの確率値を比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成するステップと、
新しく生成されたノードの確率値と残りのデータ列のサンプルの確率値とを比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成する過程を繰り返して前記ハフマンツリーを生成するステップと、を有することを特徴とする、請求項５に記載のデータ保存方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存方法に関する。
【背景技術】
【０００２】
伝統的な産業の現場において、自動化設備は、リレーなどを用いた機械的な装備で構成されている。上記機械的な装備からなる自動化設備の機能を変更する場合に自動化設備の内部回路の配線をいちいち置き換えなければならないという困難があった。このような困難を解決しようと作られたのがプログラマブルロジックコントローラ（Programmable Logic Controller；ＰＬＣ）システムである。
【０００３】
上記ＰＬＣシステムは、一つの基本モジュールと、複数の広範な種類の増設モジュールとを備えている。そして、上記ＰＬＣシステムは、無人で制御されるので、異常動作が発見された場合に異常動作に対するログデータを保存して事後措置を取れるようにしている。
【０００４】
つまり、ＰＬＣシステムの一連の動作をモニタリングしたり、過去の履歴などのログデータを保存することによって、作業者が上記ログデータを介して、上記異常動作がどのように発生したのかを確認できるようにしている。
【０００５】
この目的のために、ＰＬＣシステムのＣＰＵモジュールは、ラダープログラムと予め設定されたパラメータ及び保存条件などにより生データを収集する。そして、上記ＣＰＵモジュールが収集した生データは、データログモジュールが予め設定されたタイプのデータに変換した後、リアルタイムクロック（Real Time Clock；ＲＴＣ）値及びインデックス値を追加してデータ列を生成し、生成されたデータ列がメモリカードに保存される。
【０００６】
しかし、上記データログモジュールは、上記データ列を上記メモリカードにそのまま保存するため、限定された容量のメモリカードに大容量のデータ列を保存するのに限界がある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする技術的課題は、データログモジュールがメモリにデータ列を保存する場合に、データ列を圧縮した後、メモリに保存して、限定された容量のメモリに大容量のデータ列を保存できるデータ保存方法を提供することである。
【０００８】
本発明が解決しようとする他の技術的課題は、データ列を圧縮して減らすことによってデータ列の保存速度を向上できるデータ保存方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明のデータ保存方法は、中央処理装置（Central Processing Unit；ＣＰＵ）モジュールが、生データ及びリアルタイムクロック（Real Time Clock；ＲＴＣ）値を収集して、収集した生データ及びＲＴＣ値をデータログモジュールの共用ランダムアクセスメモリ（Random Access Memory；ＲＡＭ）に保存するステップと、データログモジュールのマイクロプロセッサ（Micro Processing Unit；ＭＰＵ）が生データのタイプを変換して、変換されたデータにＲＴＣ値及びインデックス値を追加してデータ列を生成するステップと、生成したデータ列をデータログモジュールの圧縮部が圧縮して、生成して圧縮したデータ列をメモリカードに保存するステップと、を有してもよい。
【００１０】
また、本発明のデータ保存方法は、データログモジュールの共用ＲＡＭに保存するステップ以前に、入力部を介してラダープログラムを入力しながらパラメータ及び保存条件を設定するステップをさらに有し、データログモジュールの共用ＲＡＭに保存するステップにおいて、ＣＰＵモジュールは、パラメータ及び保存条件を満足する生データ及びＲＴＣ値を収集するように構成されてもよい。
【００１１】
メモリカードに保存するステップは、生成したデータ列をバッファに保存するステップと、バッファに保存したデータ列を圧縮部が圧縮して、圧縮したデータ列をメモリカードに保存するステップと、を有してもよい。
【００１２】
また、本発明のデータ保存方法は、データログモジュールの共用ＲＡＭに保存するステップ以前に、入力部を介して圧縮可否を設定するステップをさらに有し、メモリカードに保存するステップにおいて、圧縮部は圧縮可否の設定を判断して、圧縮が設定されている場合にデータ列を圧縮してメモリカードに保存するように構成されてもよい。
【００１３】
メモリカードに保存するステップは、データ列でハフマンコーディング手法に従うハフマンツリーを生成するステップと、生成したハフマンツリーの左側の枝及び右側の枝に０または１を選択的に与えて圧縮コードを生成するステップと、圧縮コードをメモリカードに保存するステップと、を有してもよい。
【００１４】
ハフマンツリーを生成するステップは、データ列を基準として各々のデータ列の頻度数をチェックして、チェックした結果により確率値を計算するステップと、計算したデータ列のサンプルの確率値を比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成するステップと、新しく生成されたノードの確率値と残りのデータ列のサンプルの確率値とを比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成する過程を繰り返してハフマンツリーを生成するステップと、を有してもよい。
【発明の効果】
【００１５】
本発明のデータ保存方法によると、データログモジュールがメモリカードにデータ列を保存する場合に、圧縮設定可否により圧縮してメモリカードに保存する。
【００１６】
従って、限定された容量のメモリカードに大容量のデータ列が保存できて、また、データ列を圧縮することによってメモリカードにデータ列を保存する速度を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】従来のデータ保存方法を説明するためのブロック図である。
【図２】従来のデータ保存方法の動作を示した信号フローチャートである。
【図３】本発明に係るデータ保存方法を説明するためのブロック図である。
【図４】本発明に係るデータ保存方法の動作を示した信号フローチャートである。
【図５】本発明に係るデータ保存方法においてデータ列を圧縮するハフマンコーディング手法を説明するための図である。
【図６】本発明のデータ保存方法においてハフマンコーディング手法で圧縮したデータ列の圧縮コードを説明するための図である。
【発明を実施するための形態】
【００１８】
本発明は、多様な変更を加えることができて、種々の実施形態を持つことができ、特定の実施形態を図面に例示しながら詳細な説明においてより詳細に説明される。しかし、これは本発明を特定の実施形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むものと理解されなければならない。
【００１９】
以下、添付図面を参照して本発明に係る好ましい一実施形態を詳細に説明する。
【００２０】
図１は、従来のデータ保存方法を説明するためのブロック図である。ここで、符号１００はラダープログラムを入力する入力部である。例えば、入力部１００は、ＸＧ５０００プログラムを介してラダープログラムを入力し、ログデータを保存するタイプ、ファイル名及びインデックス名などのパラメータと、ログデータの保存条件となどを共に入力して設定する。
【００２１】
符号１１０は、中央処理装置（Central Processing Unit；ＣＰＵ）モジュールである。ＣＰＵモジュール１１０は、入力部１００を介して入力したラダープログラム、設定されたパラメータ及び保存条件などを満足するログデータを生データの形態で収集して、収集した生データをリアルタイムクロック（Real Time Clock；ＲＴＣ）の値と共にデータログモジュール１２０に提供する。
【００２２】
データログモジュール１２０は、ＣＰＵモジュール１１０が提供した生データのタイプを変換してデータ列を生成するものであり、共用ランダムアクセスメモリ（Random Access Memory；ＲＡＭ）１２２、マイクロプロセッサ（Micro Processing Unit；ＭＰＵ）１２４及びバッファ１２６等を有してもよい。
【００２３】
共用ＲＡＭ１２２は、ＣＰＵモジュール１１０が提供する生データ及びＲＴＣ値を一時的に保存する。
【００２４】
ＭＰＵ１２４は、共用ＲＡＭ１２２に保存された生データのタイプを変換して、タイプを変換したデータに、共用ＲＡＭ１２２に保存されているＲＴＣ値と、インデックス値とを追加してデータ列を生成する。
【００２５】
バッファ１２６は、ＭＰＵ１２４が生成したデータ列を保存する。
【００２６】
符号１３０はメモリカードである。メモリカード１３０は、例えば、セキュアデジタル（Secure Digital；ＳＤ）メモリカードまたはコンパクトフラッシュ（登録商標）（Compact Flash；ＣＦ）メモリカードを用いるものであり、バッファ１２６に保存されたデータ列が、例えば、カンマ区切り（Comma Separated Value；ＣＳＶ）形式のファイルで保存される。
【００２７】
図２は、従来のデータ保存方法の動作を示した信号フローチャートである。図２を参照すると、作業者がラダープログラムを作成して入力部１００を介して入力する（Ｓ２００）。
【００２８】
上記ラダープログラムの入力は、例えば、ＸＧ５０００プログラムを使って入力する。
【００２９】
尚、上記ＸＧ５０００プログラムを介して上記ラダープログラムを入力しながら、ログデータを保存するタイプ、ファイル名及びインデックス名などのパラメータと、ログデータの保存条件となどを入力して設定する（Ｓ２０２）。
【００３０】
このような状態で、ＣＰＵモジュール１１０は、ラダープログラム、パラメータ、及び保存条件により生データを収集して、収集した生データをＲＴＣ値と共にデータログモジュール１２０の共用ＲＡＭ１２２に保存する（Ｓ２０４）。
【００３１】
共用ＲＡＭ１２２に保存された生データは、ＭＰＵ１２４に入力されて設定されたタイプのデータに変換されて、変換されたデータと共用ＲＡＭ１２２に保存されているＲＴＣ値とインデックス値とが追加されてデータ列に変換される（Ｓ２０６）。
【００３２】
上記変換されたデータ列は、バッファ１２６に保存されて（Ｓ２０８）、バッファ１２６に保存されたデータ列は、メモリカード１３０にＣＳＶファイルで保存される（Ｓ２１０）。
【００３３】
このような従来のデータ保存方法によると、バッファ１２６に保存されたデータ列は、圧縮されることなく、そのままメモリカード１３０にＣＳＶファイルの形式で保存される。
【００３４】
このため、保存容量が限定されているメモリカードに大容量のデータを保存するのに困難があった。
【００３５】
図３は、本発明に係るデータ保存方法を説明するためのブロック図である。ここで、符号３００は、ラダープログラムを入力する入力部である。例えば、入力部３００は、ＸＧ５０００プログラムを介してラダープログラムを入力して、ログデータを保存するタイプ、ファイル名及びインデックス名などのパラメータと、ログデータの保存条件と、保存するデータの圧縮可否と、などを共に入力して設定する。
【００３６】
符号３１０は、中央処理装置（Central Processing Unit；ＣＰＵ）モジュールである。ＣＰＵモジュール３１０は、入力部３００を介して入力したラダープログラム、設定されたパラメータ及び保存条件などを満足するログデータを生データの形態で収集して、収集した生データをリアルタイムクロック（Real Time Clock；ＲＴＣ）の値と共にデータログモジュール３２０に提供する。
【００３７】
データログモジュール３２０は、ＣＰＵモジュール３１０が提供する生データのタイプを変換してデータ列を生成するものであり、共用ランダムアクセスメモリ（Random Access Memory；ＲＡＭ）３２２、マイクロプロセッサ（Micro Processing Unit；ＭＰＵ）３２４、バッファ３２６及び圧縮部３２８等を有してもよい。
【００３８】
共用ＲＡＭ３２２は、ＣＰＵモジュール３１０が提供する生データ及びＲＴＣ値を一時的に保存する。
【００３９】
ＭＰＵ３２４は、共用ＲＡＭ３２２に保存された生データのタイプを変換して、タイプを変換したデータに、共用ＲＡＭ３２２に保存されているＲＴＣ値と、インデックス値とを追加してデータ列を生成する。
【００４０】
バッファ３２６は、ＭＰＵ３２４が生成したデータ列を一時的に保存する。
【００４１】
圧縮部３２８は、バッファ３２６に保存されたデータ列を収集して圧縮可否を判断して、圧縮が設定されている場合に、上記収集したデータ列の圧縮を行って、圧縮が設定されていない場合に、上記収集したデータ列の圧縮を行わない。
【００４２】
符号３３０は、メモリカードである。メモリカード３３０は、例えば、セキュアデジタル（Secure Digital；ＳＤ）メモリカードまたはコンパクトフラッシュ（登録商標）（Compact Flash；ＣＦ）メモリカードを用いるもので、圧縮部３２８で圧縮されたまたは圧縮されなかったデータ列が、例えば、カンマ区切り（Comma Separated Value；ＣＳＶ）形式のファイルで保存される。
【００４３】
図４は、本発明に係るデータ保存方法の動作を示す信号フローチャートである。図４を参照すると、作業者がラダープログラムを作成して入力部３００を介して入力する（Ｓ４００）。
【００４４】
上記ラダープログラムの入力は、例えば、ＸＧ５０００プログラムを使って入力する。
【００４５】
そして、作業者は、上記ＸＧ５０００プログラムを介して上記ラダープログラムを入力しながら、ログデータを保存するタイプ、ファイル名及びインデックス名などのパラメータと、ログデータの保存条件と、データの圧縮可否となどを入力して設定する（Ｓ４０２）。
【００４６】
このような状態で、ＣＰＵモジュール３１０は、ラダープログラム、パラメータ及び保存条件により生データを収集して、収集した生データをＲＴＣ値と共にデータログモジュール３２０の共用ＲＡＭ３２２に保存する（Ｓ４０４）。
【００４７】
共用ＲＡＭ３２２に保存された生データは、ＭＰＵ３２４に入力されて設定されたタイプのデータに変換されて、変換されたデータは、インデックス値と共用ＲＡＭ３２２に保存されているＲＴＣ値とが追加されてデータ列に変換される（Ｓ４０６）。
【００４８】
上記変換されたデータ列は、バッファ３２６に保存されて（Ｓ４０８）、上記バッファ３２６に保存されたデータ列は、圧縮部３２８に入力される。
【００４９】
圧縮部３２８は、バッファ３２６に保存されたデータ列を収集して、収集したデータ列の圧縮可否を判断する（Ｓ４１０）。
【００５０】
上記判断の結果、データ列の圧縮が設定されている場合、圧縮部３２８は、上記収集したデータ列を圧縮して（Ｓ４１２）、圧縮したデータ列をメモリカード３３０に保存する（Ｓ４１４）。
【００５１】
そして、上記判断の結果、データ列の圧縮が設定されていない場合、圧縮部３２８は、上記収集したデータ列を圧縮することなくメモリカード３３０にそのまま保存する（Ｓ４１４）。
【００５２】
ここで、圧縮部３２８がデータ列を圧縮する動作について詳細に説明する。
【００５３】
本発明に係る圧縮部３２８は、例えば、図５に示されたようなハフマン（Huffman）コーディング手法を適用し、バッファ３２６に保存されたデータ列を利用して圧縮コードを生成し、複数の段を介して圧縮を行う。
【００５４】
第一段目で、バッファ３２６に最初に保存されたデータ列を基準として、各々のデータ列の頻度数をチェックして、チェックした結果により確率値を計算する。図５を参照すると、データ列のサンプル「Ｄ」、「Ａ」、「Ｔ」、「Ｉ」、「Ｌ」、「Ｏ」、「Ｇ」及び「Ｓ」を設定して、設定したデータ列のサンプルの確率値を計算する。
【００５５】
第二段目は、上記計算したデータ列のサンプルの確率値を比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成する。
【００５６】
第三段目乃至第五段目では、上記第二段目で新しく生成したノードの確率値と残りデータ列のサンプルの確率値とを比較して、比較した結果、大きさが最も小さい二つの確率値を合算して新しいノードを生成する過程を繰り返してハフマンツリーを生成する。
【００５７】
上記第五段目のように確率値が１になるノードだけ残ると、ハフマンツリーの生成過程を終了して、各ノードをビットに割り当てる。
【００５８】
最後に、ハフマンツリーの最上位ノードから左側の枝には‘０’のビットを割り当てて、右側の枝には‘１’のビットを割り当てて圧縮コードを生成する。
【００５９】
図６では、図５に設定したデータ列のサンプル「Ｄ」、「Ａ」、「Ｔ」、「Ｉ」、「Ｌ」、「Ｏ」、「Ｇ」及び「Ｓ」に対するＡＳＣＩＩコードと、本発明により生成した圧縮コードと、を各々図示して比較した。
【００６０】
比較した結果、データ列のサンプル「Ｄ」、「Ａ」、「Ｔ」、「Ｉ」、「Ｌ」、「Ｏ」、「Ｇ」及び「Ｓ」をＡＳＣＩＩコードで保存する場合に、６４ビットが必要であった。しかし、本発明により、データ列のサンプル「Ｄ」、「Ａ」、「Ｔ」、「Ｉ」、「Ｌ」、「Ｏ」、「Ｇ」及び「Ｓ」を圧縮して保存する場合に３３ビットだけ必要となる。
【００６１】
ここで、上記データ列をハフマン コーディング手法により圧縮してメモリカードに保存する例を挙げて説明した。
【００６２】
本発明の実施に当たり、これに限定されることなく、多様な圧縮方法でデータ列を圧縮して、メモリカードに保存してもよい。
【００６３】
以上、本発明に係る実施形態が説明されたが、これは例示的なものに過ぎず、当該分野で通常の知識を持った者ならば、これから多様な変形及び均等な範囲の実施形態が可能である点を理解するであろう。従って、本発明の真の技術的保護範囲は、次の特許請求範囲によって定められるべきである。
【符号の説明】
【００６４】
３００    入力部
３１０    ＣＰＵモジュール
３２０    データログモジュール
３２２    共用ＲＡＭ
３２４    ＭＰＵ
３２６    バッファ
３２８    圧縮部
３３０    メモリカード
【図１】
2014229313.tif 000003
【図２】
2014229313.tif 000004
【図３】
2014229313.tif 000005
【図４】
2014229313.tif 000006
【図５】
2014229313.tif 000007
【図６】
2014229313.tif 000008