説明

データ収集システム、データ収集システムの異常要因判定方法

【課題】データベースの電源遮断による接続異常が発生した場合においても、電源遮断前後でのデータの連続性を保って通信することが可能なデータ収集システムを提供すること。
【解決手段】PLCは、SQL処理群を送信した際に通信異常が発生すると、SQL処理群およびSQL処理群に含まれる個々のSQL文を記憶手段に退避する。通信異常が復旧後、PLCはデータベースに受信されたデータを獲得するコマンドをデータベースに送信する。このコマンドを受信したデータベースは、自身の受信バッファにSQL処理群が保持されてないときエンプティデータを送信し、SQL処理群が保持されているときSQL処理群をPLCに送信する。PLCはエンプティデータを受信すればSQL処理群を再送信し、SQL処理群を受信すれば受信したSQL処理群に含まれるSQL文に続く差分のSQL文を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
プログラマブルコントローラ(PLC)等の制御装置が収集した所定のデータをデータベースに保存するデータ収集システムに関する。
【背景技術】
【0002】
ネットワークなどの通信路を介してPLCとデータベースとを接続し、PLCが収集したデータをデータベースに送信して管理するデータ収集管理システムが、従来から知られている。
【0003】
例えば、特許文献1(特開2003−114908号公報)に記載された発明は、PLCと上位コンピュータ間にデータ収集装置が接続され、該データ収集装置が上位コンピュータからネットワークを介してデータ収集の指示を受信し、この指示に従ってPLC内部のデータを収集して上位コンピュータへ送信するよう構成されている。
【0004】
また、特許文献2(特開2007−219920号公報)に記載された発明は、PLCと上位コンピュータ間にデータ収集装置が接続され、上位コンピュータがデータ収集装置から得た設定ファイルと記録データファイルとに基づいたSQL構文を生成し、このSQL構文を用いてデータベースにデータを記録するよう構成されている。
【0005】
一般にSQL構文を用いてデータベースをアクセスするよう構成されたシステムでは、SQL構文などを授受する通信路(上位コンピュータとデータベース間)で通信異常が発生したとき、誤ったデータがデータベースに反映されるのを防ぐためロールバック処理が行われている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−114908号公報
【特許文献2】特開2007−219920号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上位コンピュータがデータベースをアクセスしている最中にデータベースの電源が遮断され接続異常(通信異常)が発生した場合、データベースにどこまでのデータが反映されたか不明になるとともにロールバックも行われず、データベースの電源が復旧された後、電源遮断前後でのデータの連続性を保つことが困難となる。
【0008】
本発明はこのようなことを鑑みて考案されたものであり、その目的はデータベースの電源遮断による接続異常が発生した場合においても、電源遮断前後でのデータの連続性を保って通信することが可能なデータ収集システム、データ収集システムの異常要因判定方法を提供することにある。
【課題を解決するための手段】
【0009】
上記のような課題を解決するために、本発明は以下のように構成される。
請求項1に係る発明は、プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムであって、プログラマブルコントローラは、通信路を介して、データベースをアクセスするSQL文を複数含むSQL処理群をデータベースに送信するSQL送信部と、SQL処理群を送信した際にデータベースの無応答による通信異常の発生により、SQL処理群を所定の記憶手段に退避するバッファ処理部と、通信異常が復旧されたとき、データベースが備える受信バッファに保持されたSQL処理群を獲得するコマンドをデータベースに送信するコマンド送信部と、を備え、データベースは、コマンド送信部により送信されたコマンドを受信した際、受信バッファがSQL処理群を未保持のとき、この未保持を示すエンプティデータをプログラマブルコントローラに送信する復帰応答部を備え、プログラマブルコントローラは、データベースからエンプティデータを受信すると、所定の記憶手段に退避されたSQL処理群をデータベースに送信する異常復帰処理部をさらに備えるよう構成する。
【0010】
請求項2に係る発明は、プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムであって、プログラマブルコントローラは、通信路を介して、データベースをアクセスするSQL文を複数含むSQL処理群をデータベースに送信するSQL送信部と、SQL処理群を送信した際にデータベースの無応答による通信異常の発生により、SQL文およびSQL処理群それぞれを所定の記憶手段に退避するバッファ処理部と、通信異常が復旧されたとき、データベースが備える受信バッファに保持されたSQL処理群を獲得するコマンドをデータベースに送信するコマンド送信部と、を備え、データベースは、コマンド送信部により送信されたコマンドを受信した際、受信バッファがSQL処理群を未保持のとき、この未保持を示すエンプティデータをプログラマブルコントローラに送信し、受信バッファがSQL処理群を保持しているとき、この保持されたSQL処理群をプログラマブルコントローラに送信する復帰応答部を備え、プログラマブルコントローラは、データベースからエンプティデータを受信すると、所定の記憶手段に退避されたSQL処理群をデータベースに送信し、データベースからSQL処理群を受信すると、この獲得したSQL処理群に含まれるSQL文に続く差分のSQL文を記憶手段に退避されたSQL文から抽出して送信する異常復帰処理部をさらに備えるよう構成する。
【0011】
請求項3に係る発明は、プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムの異常要因判定方法であって、プログラマブルコントローラは、データベースをアクセスするSQL文を複数含むSQL処理群を、通信路を介してデータベースに送信し、この送信の際にデータベースの無応答による通信異常が発生した後、通信異常が復旧すると、データベースに送信し受信されたSQL処理群をデータベースから獲得するコマンドをデータベースに送信し、データベースは、コマンドを受信した際、自身が備える受信バッファがSQL処理群を未保持のとき、この未保持を示すエンプティデータをプログラマブルコントローラに送信し、受信バッファがSQL処理群を保持しているとき、この保持されたSQL処理群をプログラマブルコントローラに送信し、プログラマブルコントローラは、データベースからエンプティデータを受信するとデータベースの電源の遮断による異常と判定し、データベースからSQL処理群を受信すると通信路の断線による異常と判定するよう構成する。
【発明の効果】
【0012】
本発明のPLCは、データベースをアクセスするSQL文を複数含むSQL処理群をデータベースに送信する機能を有し、このSQL処理群を送信した際にデータベースの無応答による通信異常が発生すると、個々のSQL文およびSQL処理群を記憶手段に退避する。この後、PLCは、通信異常が復旧されたとき、データベースの受信バッファに保持されたSQL処理群を獲得するコマンドをデータベースに送信する。
【0013】
一方、データベースは、PLCによって送信されたコマンドを受信した際、受信バッファがSQL処理群を未保持のとき、この未保持を示すエンプティデータをPLCに送信し、受信バッファがSQL処理群を保持しているとき、この保持されたSQL処理群をプログラマブルコントローラに送信する。
【0014】
そして、PLCは、データベースからエンプティデータを受信すると、記憶手段に退避したSQL処理群をデータベースに送信し、データベースからSQL処理群を受信すると、この獲得したSQL処理群に含まれるSQL文に続く差分のSQL文を、記憶手段に退避したSQL文から抽出して送信する。
【0015】
このようにすることにより、本発明はPLCがデータベースをアクセスしている最中にデータベースの電源が遮断され接続異常(通信異常)が発生した場合でも、電源遮断前後でのデータの連続性を保つことができる。また、データベースの電源遮断以外の通信異常については、データベースに到達していない構文から再送信するようにしたので、構文を再送信する時間が削減される。
【図面の簡単な説明】
【0016】
【図1】本発明のデータベースアクセスシステムの一実施形態を示すシステム構成図
【図2】図1に係るプログラマブルコントローラおよびデータベースの一例を示す内部構成図
【図3】SQL構文によるデータベースアクセス手順を示す説明図
【図4】図1に係るPLCがSQL構文を生成しデータベースに送信する処理を示す説明図
【図5】図1に係るPLCがデータベースをアクセスする通信手順を示す説明図
【図6】図1に係るPLCがデータベースをアクセスした際の構文異常によるロールバック処理を示す説明図
【図7】本発明に係るバッファ処理部の動作の一例を示す説明図
【図8】本発明に係る通信異常が復旧されたときの動作の一例を示す説明図
【図9】本発明に係るデータベースの電源遮断による通信異常復帰時の処理を示す説明図
【図10】本発明に係るデータベースの通信路の異状による通信異常復帰時の処理を示す説明図
【発明を実施するための形態】
【実施例】
【0017】
以下、本発明の一実施形態について、図面を参照しながら説明する。
図1は、本発明に係るデータベースアクセスシステムの一実施形態を説明する構成図である。図1に示すように、このシステムは、データベース200がプログラマブルコントローラ(以下、PLCという)100,110,120とネットワークなどの通信路300を介して接続されている。PLC100,110,120はそれぞれ外部機器30,31,32に接続されるとともにコンパクトフラッシュ(登録商標)などの記憶媒体をアクセスする機能を有する。以下、PLCに係る構成はPLC100,PLC110,PLC120それぞれ同じなので、以降の説明はPLC100の説明とし、PLC110、PLC120の説明は省略する。
【0018】
PLC100はネットワークなどの通信路300を介してデータベース200に接続され、シーケンス制御プログラムを実行しながら該PLC100に接続された外部機器(制御対象機器,センサ等)との間で制御のための情報の伝送を行いつつ、データベース200との間で情報の送受を行う。データベース200側では、PLC100から上がってくるデータ(センサで検出したデータや、外部機器30の稼動状態等のデータなど)を受信して保存し、各種の管理、そして受信したデータをユーザが加工できるようになっている。
【0019】
図2はPLC100およびデータベース200の内部構成図である。PLC100は中央演算部109(CPU)、プログラムメモリ(FLASH)101、作業メモリ(RAM(Random Access Memory))102、コンパクトフラッシュ(登録商標)などの記憶媒体をアクセスするCFインタフェース部104、データベース200と通信する通信部107、通信データを保持するデータメモリ(RAM(Random Access Memory))108、入出力部106などを有し、それらが内部バス103により接続されている。
【0020】
中央演算部109はシーケンスプログラム実行部109a、SQL送信部109b、バッファ処理部109c、コマンド送信部109d、異常復帰処理部109eを備えている。PLC100はシーケンスプログラム実行部109aがプログラムメモリ101に保持されたシーケンス制御プログラムを実行することにより入出力部106を介して外部機器30を制御するよう構成されている。なお、SQL送信部109b、バッファ処理部109c、コマンド送信部109d、異常復帰処理部109eについては、後にその動作を詳述する。
【0021】
データベース200は、PLC100と通信する通信部201、通信部201が受信した受信データを保持する受信バッファ202、送信データを保持する送信バッファ203、通信部201を介して受信された構文(SQL構文、またはSQL電文ともいう)に従って所定の処理を実行するSQL実行部204、通信異常が復帰したときに復帰処理を実行する復帰応答部205、データベース化されたデータを記憶する記憶部206を備えている。
【0022】
図3は構文によるデータベースアクセス手順を示す説明図である。PLC100がデータベース200をアクセスする基本的な手順は、例えば図3に示すようにデータベース接続要求から始まり、続いて、いくつかのデータベース操作処理(処理1〜処理3)、データベースにデータを反映させるcommit(処理4)、そしてコネクション切断といった一連の構文をデータベースに送信することにより実行される。本発明ではこの一連の構文をまとめたもの、すなわちPLC100がデータベースをアクセスするための一連の構文の集まりを「処理単位」として定義している。PLC100は、この処理単位を基本としてデータベースにアクセスする。
【0023】
図4は、本発明に係るPLC100が構文を生成しデータベースに送信する処理(SQL送信部109b)を示す説明図である。PLC100は、電源オンまたはリセットスタート後、イニシャル処理S1にてデータベース200のテーブル名や項目名、そして構文のテンプレートデータなどをコンパクトフラッシュ(登録商標)などから読み出しておく。イニシャル処理S1を終えたPLC100は以降運用状態となり、PLC100に接続されたセンサによって検出されたデータや外部機器30の稼動状態等のデータなどを収集する(データ収集処理S2)。この収集処理は、例えば生産システムであれば一日単位、もしくは1時間単位など、所定の時間毎にデータを蓄積するよう行っても良い。
【0024】
続いて、収集したデータを構文で送信するために加工・編集・圧縮などの処理を行い(データ処理S3)、このデータ処理されたデータをSQLテンプレートに組み込んで(SQL文生成処理S4)データベース200に送信する(データ送信処理S5)。
【0025】
データベース200はPLC100によって送信されたSQLデータを受信し、受信の完了をPLC100に伝える(データ受信処理S6)。このとき、データ送信処理S5は前述説明したように複数の構文(DB接続要求〜コネクション切断)を一連の処理とした処理単位で通信を行っている。データベース200はこの処理単位毎に応答を返しており、PLC100はこの応答を受信するとその都度そのときの通信処理を完了する。
【0026】
図5はPLC100がデータベース200を処理単位にてアクセスする際、正常に通信が行われたときの処理を示す説明図である。図5の左部分に処理ステップを示しこの処理ステップに従い動作を説明する。ステップS10において、PLC100はデータベースとコネクションを確立するために接続要求を送信する。データベース200は接続要求を受信すると接続許可をPLC100に応答する。PLC100は予め設定された時間以内に接続許可が受信されることを監視しており、監視時間以内に接続許可が受信されればコネクションを確立する。PLC100は監視時間以内にデータベースから接続許可を受信しないと接続要求をリトライし、コネクションが確立されるまでリトライを繰り返す。
【0027】
処理はステップS11に移行しPLC100は、insert(データ追加)やupdate(データの変更)などのデータベースに所定の操作を要求する処理要求を送信し、ステップS12にて処理要求を受信したデータベース200は処理要求に対する応答を送信し、PLC100はその応答を受信する。
【0028】
続いて、処理はステップS13に移行し、PLC100は処理単位の構文を全て送信したか否かをチェックする。全ての構文が送信されてないとき、処理はステップS11に戻り、処理単位の構文を全て送信するまで、ステップS11〜ステップS13を繰り返す。同様、データベース200はステップS13にて全ての構文を受信するまでその構文を受信する毎に応答を返す。
【0029】
続いてステップS14においてPLC100は、データベースのアクセスを確定(終了)させるコミット(commit)要求を送信する。データベース200はコミット(commit)要求を受信するとステップS15にてその応答(処理確定)を返信し、PLC100はこの処理確定を受信することにより一連の構文がデータベース200に正常に伝達されたと判断する。この後、処理はステップS16に移行しPLC100およびデータベース200はそれぞれコネクションを切断する。
【0030】
図6はPLC100がデータベース200をアクセスする際、処理単位に含まれる構文に、例えばテーブル名が存在しないなどの構文異常があったときの処理を示す説明図である。図5同様の左部分に処理ステップを示しこの処理ステップに従い動作を説明する。ステップS20は前述ステップS10の動きと同様である。
【0031】
ステップS21においてPLC100は、処理要求を送信する。このとき通信路の不具合などにより通信異常が発生しデータベース200が異常な構文を受信すると、データベース200はステップS22にて異常な構文を受信したことを示す異常応答を送信する。同ステップS22にてPLC100はデータベース200から異常応答を受信する。処理はステップS23に移り、PLC100はデータベース200が異常な構文を受信したか否かを異常応答の内容から判定する。異常応答の内容が構文異常でないときは処理はS21に戻る。異常応答の内容が構文異常であったとき、処理はステップS24に移り、PLC100はデータベース200のデータを異常前のデータに戻すためロールバック要求を送信し、データベース100はロールバック要求を受信する。処理はステップS25に移り、データベース200はロールバック要求に対応するロールバック処理を行い、この処理が完了するとロールバック処理完了をPLC100に送信する。PLC100はステップS25にてロールバック処理完了を受信する。この後、PLC100およびデータベース200それぞれはステップS26にてコネクションを切断する。
【0032】
図7は通信路の断線やデータベースの電源遮断による通信異常が発生した場合のPLC100およびデータベース200の処理を説明する図である。本発明はこの処理に特徴点がある。
【0033】
上述同様、図の左部分に処理ステップを示しこの処理ステップに従い動作を説明する。ステップS30は前述ステップS10の動きと同様であり、ステップS31は前述ステップS11の動きと同様である。
【0034】
ステップS31にてデータベース200はPLC100から処理要求を受信し、ステップS32にてその応答を送信している。このとき、通信異常が発生し、データベース200の応答がPLC100に受信されないとき、すなわち、PLC100から見てデータベース200が無応答のときには、PLC100はステップ33にて処理要求を再送信する。この再送信に対しても、データベース200から応答を受信できないとき、処理はステップ34に移行し、PLC100は作業メモリ102などの内部記憶領域、もしくはコンパクトフラッシュ(登録商標)などの外部記憶領域に、送信した処理単位を退避するとともに、処理単位を構成する構文を1文単位で退避する。ここで、処理単位の退避領域を第1の退避領域と定義し、1文単位の退避領域を第2の退避領域として定義する。すなわち、処理単位と1文単位はそれぞれ別々に用意された退避領域に退避される。
【0035】
そして、PLC100は退避する1文単位の構文の個数を記録するために、初期値をゼロとして作業メモリに割付けたカウンタ(不図示)をカウントアップする。このカウントアップの処理は、後述通信異常から復帰したときの復帰処理にて、退避された1文単位の構文の個数を把握するために行う処理である。なお、処理単位は1つしか退避されないので、処理単位の退避個数をカウントする必要はない。
【0036】
処理はステップS35に移り、PLC100は処理単位内の構文を全て送信したならば処理を終え、未送信の構文があればステップS31に戻る。上記ステップS30〜ステップS35に係るPLC100の処理はバッファ処理部109cにて実行される。
【0037】
図8は、図7で説明した通信異常が発生した後に、その通信異常が復帰されたときのPLC100およびデータベース200の処理を説明する図である。
上述同様、図の左部分に処理ステップを示しこの処理ステップに従い動作を説明する。PLC100は上述図7のように通信異常が発生し各種構文を退避した後、データベース200とのコネクションが再び確立されると、ステップS40に先立ちデータベースの受信バッファからデータ(PLC100が送信した処理単位など)を獲得するデータ獲得コマンドを送信する。この処理はコマンド送信部109dにて実行される。データベース200は、PLC100から送信されたデータ獲得コマンドに応答して、受信バッファに保持されたデータ(処理単位など)をPLC100に送信する。この処理は復帰応答部205にて実行される。そして、PLC100は、データベース200から送信されたデータ(処理単位など)を受信する。このようにして、PLC100は、データベース200の受信バッファ領域に保持されたデータ(処理単位など)を獲得する。
【0038】
この結果、データベース200から処理単位に含まれる構文や処理単位そのものを獲得できた場合、PLC100は通信路300の断線と判定し、前述退避した1文単位の構文を再送信する(ステップS40,41)。データベース200はPLC100によって送信された構文を受信すると、その応答を送信し、PLC100はこの応答を受信する(ステップS41,42)。
【0039】
処理はステップS43に移り、PLC100は前述のカウンタをデクリメントし、処理はS44に移り、デクリメントしたカウンタの値がゼロか否かを判定し、ゼロであれば処理を終了し、ゼロでなければステップS41に戻る。このようにして、PLC100はカウンタがゼロになるまで退避した構文を順次送信する。また、図5におけるコミット送信時、あるいは図6におけるロールバック送信時などに通信異常が発生したときも、その構文が退避されるので、どのような構文を送信しようとも、通信異常の前後で処理が継続される。上記ステップS40〜ステップS44に係る処理は異常復帰処理部109eにて実行される。
【0040】
ここで、データベース200の電源断により通信異常が発生し、復旧したときの動きを図9を参照しながら説明する。図9において、PLC100は処理1(接続要求)、処理2(insert)、処理3(update)、処理4(insert)、処理5(commit)の5つ構文を処理単位としてデータベース200に送信し、処理3までは正常にデータベース200に受信されたが、処理4(insert)の送信時に通信異常(データベース電源断)が発生したものとして説明する。
【0041】
このとき、PLC100は通信異常から復帰したときの再送信に備えて、処理単位および通信異常が発生した後の構文(処理4と処理5の構文)、すなわち、PLC100が構文を送信し、データベースからの応答が得られなかった構文それぞれを、退避領域に退避する。
【0042】
通信異常が復旧してPLC100とデータベース200のコネクションが確立されると、PLC100はデータベースの受信バッファからデータを獲得するデータ獲得コマンドを送信する。データベース200は電源がオフからオンになって起動されたため、その受信バッファにはPLC100が送信した処理単位が無い状態である。このためデータベース200は受信バッファが空である応答(エンプティデータ)をPLC100に送信する。PLC100はデータベースの受信バッファが空であることを示す応答(エンプティデータ)を受信すると、データベースの電源断による通信異常と判断し、処理単位を再送信するとともに、退避した1文単位の構文(処理4と処理5の構文)および処理単位を削除する。
【0043】
図10はデータベース200の通信路300の断線により通信異常が発生し、断線が復旧したときの動きを説明する図である。図10において、PLC100は処理1(接続要求)、処理2(insert)、処理3(update)、処理4(insert)、処理5(commit)の5つ構文を処理単位としてデータベース200に送信し、処理3までは正常にデータベース200に受信されたが、処理4(insert)の送信時に通信路300断線などの通信異常が発生したものとして説明する。
【0044】
このとき、PLC100は通信異常から復帰したときの再送信に備えて、処理単位および通信異常が発生した後の構文(処理4と処理5の構文、すなわち構文を送信したがデータベースから応答を受信できなかった構文)それぞれを、退避領域に退避する。通信異常が復旧してPLC100とデータベース200のコネクションが確立されると、PLC100はデータベースの受信バッファからデータを獲得するデータ獲得コマンドを送信する。データベース200の受信バッファにはPLC100が送信した処理単位が途中まで受信されている状態である。すなわち、処理2(insert)、処理3(update)までが受信バッファの保持された状態である。このためデータベース200は受信バッファに保持された各種処理要求をPLC100に送信する。この処理要求を受信したPLC100は、通信路300の断線による通信異常と判断し、未送信として退避した1文単位の構文を順次送信する。そして、PLC100は1文単位での構文(各種処理要求)を全て送信し終わると、退避した1文単位の構文(処理4と処理5の構文)および処理単位を削除する。
【0045】
すなわち、本発明のPLCは、SQL処理群を送信した際に通信異常が発生すると、SQL処理群およびSQL処理群に含まれる個々のSQL文を記憶手段に退避する。この通信異常が復旧後、PLCはデータベースに受信されたデータを獲得するコマンドをデータベースに送信する。このコマンドを受信したデータベースは、自身の受信バッファにSQL処理群が保持されてないときエンプティデータを送信し、SQL処理群が保持されているときはSQL処理群をPLCに送信する。PLCはエンプティデータを受信すればSQL処理群を再送信し、SQL処理群を受信すれば受信したSQL処理群に含まれるSQL文に続く差分のSQL文を記憶手段に退避したSQL分から抽出して送信する。
【0046】
以上、説明したように、本発明は通信異常の復旧時にデータベースの受信バッファを参照し、データベースの受信バッファにPLCが送信した構文が保持されていれば通信路の断線などの異常による通信異常であったと判定し、データベースの受信バッファに構文が無いときにはデータベースの電源遮断による通信異常と判定するよう構成した。
【0047】
また、本発明のPLCは通信路の断線などによる通信異常が発生したと判定した場合、データベースに到達していない構文から再送信するように構成し、さらに、データベースの電源遮断による通信異常が発生したと判定した場合には、処理単位を再送信するように構成した。このようにすることにより、本発明はPLCやコンピュータがデータベースをアクセスしている最中にデータベースの電源が遮断され接続異常(通信異常)が発生した場合でも、電源遮断前後でのデータの連続性を保つことができる。また、データベースの電源遮断以外の通信異常に対してはデータベースに到達していない構文から再送信するようにしたので、構文を再送信する時間が削減される。この削減時間は、処理単位における構文の数が多ければ多いほどその効果が大きい。
【符号の説明】
【0048】
1…データベースアクセスシステム
100,110,120…プログラマブルコントローラ、200…データベース(サーバ)、300…通信路、30,31,32…外部機器
101…プログラムメモリ、102…作業メモリ、103…内部バス、104…CF(コンパクトフラッシュ)インタフェース、106入出力部、107…通信部、108…データメモリ、109…中央演算部、109a…シーケンスプログラム実行部、109b…SQL送信部、109c…バッファ処理部、109d…コマンド送信部、109e…異常復帰処理部
201…通信部、202…受信バッファ、203…送信バッファ、204…SQL実行部、205…復帰応答部、206…記憶部(データベース)


【特許請求の範囲】
【請求項1】
プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムであって、
前記プログラマブルコントローラは、
前記通信路を介して、前記データベースをアクセスするSQL文を複数含むSQL処理群を前記データベースに送信するSQL送信部と、
前記SQL処理群を送信した際に前記データベースの無応答による通信異常の発生により、前記SQL処理群を所定の記憶手段に退避するバッファ処理部と、
前記通信異常が復旧されたとき、前記データベースが備える受信バッファに保持された前記SQL処理群を獲得するコマンドを前記データベースに送信するコマンド送信部と、を備え、
前記データベースは、
前記コマンド送信部により送信されたコマンドを受信した際、前記受信バッファが前記SQL処理群を未保持のとき、この未保持を示すエンプティデータを前記プログラマブルコントローラに送信する復帰応答部を備え、
前記プログラマブルコントローラは、
前記データベースから前記エンプティデータを受信すると、前記所定の記憶手段に退避されたSQL処理群を前記データベースに送信する異常復帰処理部をさらに備えることを特徴とするデータ収集システム。
【請求項2】
プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムであって、
前記プログラマブルコントローラは、
前記通信路を介して、前記データベースをアクセスするSQL文を複数含むSQL処理群を前記データベースに送信するSQL送信部と、
前記SQL処理群を送信した際に前記データベースの無応答による通信異常の発生により、前記SQL文および前記SQL処理群それぞれを所定の記憶手段に退避するバッファ処理部と、
前記通信異常が復旧されたとき、前記データベースが備える受信バッファに保持された前記SQL処理群を獲得するコマンドを前記データベースに送信するコマンド送信部と、を備え、
前記データベースは、
前記コマンド送信部により送信されたコマンドを受信した際、前記受信バッファが前記SQL処理群を未保持のとき、この未保持を示すエンプティデータを前記プログラマブルコントローラに送信し、前記受信バッファが前記SQL処理群を保持しているとき、この保持された前記SQL処理群を前記プログラマブルコントローラに送信する復帰応答部を備え、
前記プログラマブルコントローラは、
前記データベースから前記エンプティデータを受信すると、前記所定の記憶手段に退避されたSQL処理群を前記データベースに送信し、前記データベースから前記SQL処理群を受信すると、この獲得したSQL処理群に含まれるSQL文に続く差分のSQL文を前記記憶手段に退避されたSQL文から抽出して送信する異常復帰処理部をさらに備えることを特徴とするデータ収集システム。
【請求項3】
プログラマブルコントローラと該プログラマブルコントローラが得た所定のデータを保存するデータベースとが通信路を介して接続されたデータ収集システムの異常要因判定方法であって、
前記プログラマブルコントローラは、
前記データベースをアクセスするSQL文を複数含むSQL処理群を、前記通信路を介して前記データベースに送信し、この送信の際に前記データベースの無応答による通信異常が発生した後、前記通信異常が復旧すると、前記データベースに送信し受信された前記SQL処理群を前記データベースから獲得するコマンドを前記データベースに送信し、
前記データベースは、
前記コマンドを受信した際、自身が備える受信バッファが前記SQL処理群を未保持のとき、この未保持を示すエンプティデータを前記プログラマブルコントローラに送信し、前記受信バッファが前記SQL処理群を保持しているとき、この保持された前記SQL処理群を前記プログラマブルコントローラに送信し、
前記プログラマブルコントローラは、
前記データベースから前記エンプティデータを受信すると前記データベースの電源の遮断による異常と判定し、前記データベースから前記SQL処理群を受信すると前記通信路の断線による異常と判定することを特徴とするデータ収集システムの異常要因判定方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−108642(P2012−108642A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2010−255759(P2010−255759)
【出願日】平成22年11月16日(2010.11.16)
【出願人】(000005234)富士電機株式会社 (3,146)
【Fターム(参考)】