(57)【要約】【課題】断片化した所望データを記憶したプログラマブルロジックコントローラメモリ領域から、該所望データを効率良く収集する方法を提供する。【解決手段】プログラマブルロジックコントローラ（ＰＬＣ）を接続した装置が該ＰＬＣにデータ取得位置を示すオフセットを送信する（Ｓ１）。次に、ＰＬＣは所定最大データ取得サイズ及びオフセットに基づき、初期のデータ取得開始アドレス，データ取得終了アドレス，次データ取得開始アドレスを算出する（Ｓ２）。次に、ＰＬＣがデータ取得開始アドレスからデータ取得終了アドレス間で有効なデータが存在するアドレスを取得する（Ｒ１，Ｒ２）。次に、次データ取得開始アドレス以降からデータをチェックし、有効なデータが最初に存在するアドレスに基づき次オフセットを算出する（Ｒ３）。そして、データ取得開始アドレスからデータ取得終了アドレス間のデータ及び次オフセットを前記装置に送信する（Ｓ１８）。【選択図】図１
2008071231.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラを接続した装置が、該プログラマブルロジックコントローラに備えられたメモリ領域から、通信線またはネットワークを介して、データを収集するプログラマブルロジックコントローラデータの収集方法であって、
前記プログラマブルロジックコントローラを接続した装置が、該プログラマブルロジックコントローラに対してデータ取得位置を示すオフセットを送信するステップと、
該プログラマブルロジックコントローラが、前記のメモリ領域におけるベースアドレスと該オフセットに基づいて初期のデータ取得開始アドレスを算出し、
該メモリ領域におけるベースアドレス，該オフセット，所定の最大データ取得サイズに基づいて初期のデータ取得終了アドレスを算出し、
該メモリ領域におけるベースアドレス，該オフセット，所定の最大データ取得サイズ，所定の定数に基づいて初期の次データ取得開始アドレスを算出するステップと、
該プログラマブルロジックコントローラが、その初期のデータ取得開始アドレスをデータ取得開始アドレス決定ステップに入力し、有効なデータが存在するデータ取得開始アドレスを取得するステップと、
該プログラマブルロジックコントローラが、その初期のデータ取得終了アドレスをデータ取得終了アドレス決定ステップに入力し、有効なデータが存在するデータ取得終了アドレスを取得するステップと、
該プログラマブルロジックコントローラが、有効なデータが存在するか否かをその初期の次データ取得開始アドレス以降からチェックし、有効なデータが最初に存在するアドレスを取得し、該アドレスを改めて次データ取得開始アドレスと見做すステップと、
該プログラマブルロジックコントローラが、該メモリ領域におけるベースアドレスとその次データ取得開始アドレスに基づいて次オフセットを算出するステップと、
該プログラマブルロジックコントローラが、そのデータ取得開始アドレスからデータ取得終了アドレスに存在するデータ及び次オフセットを前記のプログラマブルロジックコントローラを接続した装置に対して送信するステップと、
を有することを特徴とするプログラマブルロジックコントローラデータの収集方法。
【請求項２】
前記のデータ取得開始アドレス決定ステップが、
前記チェックポインタに対して前記の初期のデータ取得開始アドレスを設定し、
該チェックポインタが前記のデータ取得終了アドレスに達するまで、該チェックポインタが指す位置に有効なデータが存在するか否かをチェックし、該チェックポインタを加算し該チェックポインタを移動させ、
最初に有効なデータが存在した際のチェックポインタの値を前記のデータ取得開始アドレスと見做し、有効なデータが存在するデータ取得開始アドレスを取得する、
ことを特徴とする請求項１に記載のプログラマブルロジックコントローラデータの収集方法。
【請求項３】
前記のデータ取得終了アドレス決定ステップが、
前記チェックポインタに対して初期のデータ取得終了アドレスを設定し、
該チェックポインタが前記のデータ取得開始アドレスに達するまで、該チェックポインタが指す位置に有効なデータが存在するか否かをチェックし、該チェックポインタを減算し該チェックポインタを移動させ、
最初に有効なデータが存在した際のチェックポインタの値を前記のデータ取得終了アドレスと見做し、有効なデータが存在するデータ取得終了アドレスを取得する、
ことを特徴とする請求項１に記載のプログラマブルロジックコントローラデータの収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラデータの収集方法であって、例えば、プログラマブルロジックコントローラデータ通信方法に関するものである。
【背景技術】
【０００２】
現在、プログラマブルロジックコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ、以下ＰＬＣと略す）は、機器制御装置の頭脳として、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）機器に広く利用されている。また、ＰＬＣが通信線またはネットワークを介して制御データを送受信するシステムにおいて、ＰＬＣ間で制御データを送受信するシステム（例えば、特許文献１参照）も知られている。
【０００３】
前記のように通信線またはネットワークを介してデータを収集するシステムでは、コンピュータが図６中の収集要求データユニットＭ１をＰＬＣに対して送信し、図６中の収集応答データユニットＭ２を該ＰＬＣから受信することによって、データ収集を行っている。
【０００４】
なお、前記のような送受信を行うために、前記の収集要求データユニットＭ１及び収集応答データユニットＭ２は、プロトコル情報Ｄ１，チェックサムＤ２，ターミネータコードＤ３を含む。
【０００５】
コンピュータ（例えば、パーソナルコンピュータ）からＰＬＣ内に備えられたメモリ領域の特定アドレスからデータを取得する方法には、一般的に、次の２つの方法が知られている。
【０００６】
一方は、ＰＬＣ内に備えられたメモリ領域（例えば、図７中のＰＬＣメモリ領域１）の特定アドレス（例えば、図７中の符号Ａで示されるアドレス）に格納された１データ（例えば、１バイト長データ）を収集する方法（以下、ＰＬＣ単独データ収集方法と称する）である。
【０００７】
他方は、ＰＬＣ内に備えられたメモリ領域（例えば、図８中のＰＬＣメモリ領域１）の特定アドレス（例えば、図８中の符号Ｂで示されるアドレス）を含む連続したアドレスに格納された複数データを収集する方法（以下、ＰＬＣ連続データ収集方法と称する）である。
【特許文献１】特開２０００−３０７６１６（段落［０００９］〜［００１５］等）。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のようなＰＬＣからのデータ収集方法においては、所望のデータが１データであれば、ＰＬＣ単独データ収集方法が有効である。また、連続して配置されたデータであれば、ＰＬＣ連続データ収集方法が有効である。
【０００９】
しかし、ＰＬＣ単独データ収集方法では、データ数の増加に従い、該データ数分の処理が増加するため、通信コストの上昇を招くことになる。
【００１０】
また、ＰＬＣ連続データ収集方法では、取得すべきデータが前記のメモリ領域に断片化して記憶されていた場合に、不必要なデータを多く取得し、その不必要なデータを処理するために、余計な操作を必要とする。
【００１１】
例えば、図９に示すような断片化したデータを記憶したメモリ領域（即ち、図９中のＰＬＣメモリ領域１）の場合には、必要とするアドレスａ乃至ｊの間に格納された１０データを取得しようとすると、アドレスａとアドレスｂ間に配置されたデータ（即ち、図９中の符号ｗｄ１で示すデータ），アドレスｈとアドレスｉ間に配置されたデータ（即ち、図９中の符号ｗｄ２で示すデータ）も、それぞれ取得することになってしまう。
【００１２】
本発明は、前記課題に基づいてなされたものであり、断片化した所望データを記憶したＰＬＣメモリ領域から、余計なデータの混入を減少させ、かつ、該所望データを取得するための通信回数を減少させて、該所望データを収集するＰＬＣデータの収集方法を提供することにある。
【課題を解決するための手段】
【００１３】
前記課題の解決を図るために、請求項１記載の発明は、プログラマブルロジックコントローラを接続した装置が、該プログラマブルロジックコントローラに備えられたメモリ領域から、通信線またはネットワークを介して、データを収集するプログラマブルロジックコントローラデータの収集方法であって、前記プログラマブルロジックコントローラを接続した装置が、該プログラマブルロジックコントローラに対してデータ取得位置を示すオフセットを送信するステップと、該プログラマブルロジックコントローラが、前記のメモリ領域におけるベースアドレスと該オフセットに基づいて初期のデータ取得開始アドレスを算出し、該メモリ領域におけるベースアドレス，該オフセット，所定の最大データ取得サイズに基づいて初期のデータ取得終了アドレスを算出し、該メモリ領域におけるベースアドレス，該オフセット，所定の最大データ取得サイズ，所定の定数に基づいて初期の次データ取得開始アドレスを算出するステップと、該プログラマブルロジックコントローラが、その初期のデータ取得開始アドレスをデータ取得開始アドレス決定ステップに入力し、有効なデータが存在するデータ取得開始アドレスを取得するステップと、該プログラマブルロジックコントローラが、その初期のデータ取得終了アドレスをデータ取得終了アドレス決定ステップに入力し、有効なデータが存在するデータ取得終了アドレスを取得するステップと、該プログラマブルロジックコントローラが、有効なデータが存在するか否かをその初期の次データ取得開始アドレス以降からチェックし、有効なデータが最初に存在するアドレスを取得し、該アドレスを改めて次データ取得開始アドレスと見做すステップと、該プログラマブルロジックコントローラが、該メモリ領域におけるベースアドレスとその次データ取得開始アドレスに基づいて次オフセットを算出するステップと、該プログラマブルロジックコントローラが、そのデータ取得開始アドレスからデータ取得終了アドレスに存在するデータ及び次オフセットを前記のプログラマブルロジックコントローラを接続した装置に対して送信するステップと、を有することを特徴とする。
【００１４】
請求項２記載の発明は、請求項１記載の発明において、前記のデータ取得開始アドレス決定ステップが、前記チェックポインタに対して前記の初期のデータ取得開始アドレスを設定し、該チェックポインタが前記のデータ取得終了アドレスに達するまで、該チェックポインタが指す位置に有効なデータが存在するか否かをチェックし、該チェックポインタを加算し該チェックポインタを移動させ、最初に有効なデータが存在した際のチェックポインタの値を前記のデータ取得開始アドレスと見做し、有効なデータが存在するデータ取得開始アドレスを取得する、ことを特徴とする。
【００１５】
請求項３記載の発明は、請求項１記載の発明において、前記のデータ取得終了アドレス決定ステップが、前記チェックポインタに対して初期のデータ取得終了アドレスを設定し、該チェックポインタが前記のデータ取得開始アドレスに達するまで、該チェックポインタが指す位置に有効なデータが存在するか否かをチェックし、該チェックポインタを減算し該チェックポインタを移動させ、最初に有効なデータが存在した際のチェックポインタの値を前記のデータ取得終了アドレスと見做し、有効なデータが存在するデータ取得終了アドレスを取得する、ことを特徴とする。
【００１６】
前記の請求項１記載の発明によれば、データ取得開始アドレス，データ取得終了アドレス，次データ取得開始アドレスを決定できる。
【００１７】
前記の請求項２記載の発明によれば、チェックポインタが指す位置に有効なデータが存在するか否かをチェックできる。
【００１８】
前記の請求項３記載の発明によれば、チェックポインタが指す位置に有効なデータが存在するか否かをチェックできる。
【発明の効果】
【００１９】
以上示したように請求項１記載の発明によれば、最大データ取得サイズ以下のデータと次オフセットを取得できる。
【００２０】
請求項２記載の発明によれば、有効なデータが存在するデータ取得開始アドレスを取得できる。
【００２１】
請求項３記載の発明によれば、有効なデータが存在するデータ取得終了アドレスを取得できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態におけるプログラマブルロジックコントローラ（以下ＰＬＣと略す）データの収集方法を図面等に基づいて詳細に説明する。
【００２３】
本実施の形態におけるＰＬＣデータの収集方法は、まず、ＰＬＣを接続した装置（例えば、図１０中のコンピュータＰ１）が、該ＰＬＣに対してデータ取得位置を示すオフセットを送信する。次に、前記ＰＬＣは、所定の最大データ取得サイズ（以後、ＧｅｔＳｉｚｅＭａｘと称する）及び前記のオフセットに基づいて、初期（即ち、オフセットが指定された直後）のデータ取得開始アドレス，データ取得終了アドレス，次データ取得開始アドレスをそれぞれ算出する。次に、ＰＬＣが前記のデータ取得開始アドレスからデータ取得終了アドレス間で、有効なデータが存在するアドレスを取得する。次に、前記の次データ取得開始アドレス以降から有効なデータが存在するか否かをチェックし、有効なデータが最初に存在するアドレスを取得し、該アドレスを改めて次データ取得開始アドレスと見做す。次に、前記の次データ取得開始アドレスに基づいて次オフセットを算出する。そして、前記の装置に対して前記の有効なデータ及び次オフセットを送信し、該装置が所望の有効なデータを取得する方法である。
【００２４】
なお、本実施の形態における説明では、データ数単位をバイト（ｂｙｔｅ）として想定する。また、１６進数表記は１６進数の並びの末尾に「ｈ」を付与して表記する（例えば、１Ｆｈ）。さらに、本実施の形態では、００ｈからＦＥｈの範囲中から何れかの値を有効なデータと見做し、ＦＦｈを無効なデータと見做す。即ち、ＰＬＣは、指定されたアドレスのデータがＦＦｈの場合は、無効なデータとして取り扱う。
【００２５】
本実施の形態を図１乃至図５に基づいて以下に説明する。まず、ＰＬＣが、該ＰＬＣを接続した装置からオフセット（例えば、００ｈに設定されたオフセット）を含む収集要求データユニットを受信する（Ｓ１）。なお、前記の収集要求データユニットにＧｅｔＳｉｚｅＭａｘを含んでも良い。
【００２６】
次に、図１中のように初期のデータ取得開始アドレス，データ取得終了アドレス，次データ取得開始アドレスを計算する（Ｓ２）。前記のデータ取得開始アドレス，データ取得終了アドレス，次データ取得開始アドレスは、各々式（１），（２），（３）で示される。
【００２７】
データ取得開始アドレス＝ベースアドレス＋オフセット  ……  （１）
データ取得終了アドレス＝ベースアドレス＋オフセット＋ＧｅｔＳｉｚｅＭａｘ  ……  （２）
次データ取得開始アドレス＝ベースアドレス＋オフセット＋ＧｅｔＳｉｚｅＭａｘ＋１  ……  （３）
なお、式（３）中の「１」は、データ取得終了アドレスからアドレス１つ分移動させるための定数である。また、ＧｅｔＭａｘＳｉｚｅは、１以上の値を採るものとする。
【００２８】
前記のアドレス計算においては、例えば、ベースアドレスを図５中のアドレスａ、オフセットを０（ゼロ）と設定した場合には、図５中のアドレスａ以降からデータを取得することになる。なお、図５中では、ＧｅｔＭａｘＳｉｚｅを５データとして設定している。
【００２９】
次に、図１または図２中のように、データ取得開始アドレスを決定する（Ｒ１；データ取得開始アドレス決定ステップ）。なお、ルーチンＲ１では、以下のような処理を行う。
【００３０】
まず、図２中のように、特定のデータを指すポインタ（以後、チェックポインタと称する）に対して初期のデータ取得開始アドレスを設定する（Ｓ３）。前記のチェックポインタがデータ取得終了アドレスに達するまで（Ｓ４）、チェックポインタが指す位置に有効なデータが存在するか否かを順次チェックし（Ｓ５）、チェックポインタを加算しチェックポインタを移動させる（Ｓ６）。そして、最初に有効なデータが存在した際のチェックポインタの値をデータ取得開始アドレスと見做す（Ｓ７）。
【００３１】
例えば、チェックポインタを１データずつ加算していき、そのチェックポインタが指す位置に有効なデータが存在するか否かをチェックする。
【００３２】
なお、図５中の１回目の収集Ｇ１ではアドレスａ、２回目の収集Ｇ２ではアドレスｅ、３回目の収集Ｇ３ではアドレスｉが、それぞれデータ取得開始アドレスに設定されることになる。
【００３３】
次に、図１または図３中のように、データ取得終了アドレスを決定する（Ｒ２；データ取得終了アドレス決定ステップ）。ルーチンＲ２では、以下のような処理を行う。
【００３４】
まず、図３中のように、チェックポインタに対して初期のデータ取得終了アドレスを設定する（Ｓ８）。チェックポインタがデータ取得開始アドレスに達するまで（Ｓ９）、チェックポインタが指す位置に有効なデータが存在するか否かを順次チェックし（Ｓ１０）、チェックポインタを減算しチェックポインタを移動させる（Ｓ１１）。
【００３５】
そして、最初に有効なデータが存在した際のチェックポインタの値をデータ取得終了アドレスと見做す（Ｓ１２）。例えば、チェックポインタを１データずつ減算していき、そのチェックポインタが指す位置に有効なデータが存在するか否かをチェックする。
【００３６】
なお、前記のチェックポインタがデータ取得開始アドレスの次のアドレス（即ち、データ開始アドレスに１データ加算したアドレス）に達するまでチェックを行っても、有効なデータが存在しない場合には、データ数を１データと見做す。
【００３７】
また、図５中の１回目の収集Ｇ１ではアドレスｄ、２回目の収集Ｇ２ではアドレスｈ、３回目の収集Ｇ３ではアドレスｊが、データ取得終了アドレスにそれぞれ設定される。
【００３８】
次に、図１または図４中のように、次データ取得開始アドレス（即ち、次オフセット）を決定する（Ｒ３）。ルーチンＲ３では、以下のような処理を行う。
【００３９】
まず、図４中のように、チェックポインタに対して初期の次データ取得開始アドレスを設定する（Ｓ１３）。チェックポインタが所定の最終アドレスに達するまで（Ｓ１４）、チェックポインタが指す位置に有効なデータが存在するか否かを順次チェックし（Ｓ１５）、チェックポインタを加算し、チェックポインタを移動させる（Ｓ１６）。
【００４０】
そして、最初に有効なデータが存在した際のチェックポインタの値を次データ取得開始アドレスと見做し、ベースアドレスに基づき、次オフセットを算出する（Ｓ１７）。
【００４１】
なお、図５中の１回目の収集Ｇ１では、アドレスｅ（即ち、オフセットは５データ）、２回目の収集Ｇ２ではアドレスｉ（即ち、オフセットは２１データ）が次データ取得開始アドレスにそれぞれ設定される。前記の２回目の収集Ｇ２においては、アドレスα（２回目の初期の次データ取得開始アドレス）に有効なデータが存在しないため、チェックポインタを加算して、有効なデータが存在しているか否かを順次チェックしていくと、最初にアドレスｉに有効なデータが存在するため、アドレスｉを次データ取得開始アドレスに設定する。
【００４２】
次に、図１中のように、ＰＬＣは、該ＰＬＣを接続した装置に対して、データ取得開始アドレスからデータ取得終了アドレスに格納された有効なデータを含むデータと、次のオフセットと、を含む収集応答データユニットを送信する（Ｓ１８）。
【００４３】
そして、ＰＬＣを接続した装置は、受信した収集応答データユニットに含まれる有効なデータのデータ数が所望するデータ数に達しているか否かをチェックし、その所望するデータ数に達していなければ、該受信したデータに含まれる次のオフセットをオフセットと見做して収集要求データユニットに設定し、該収集要求データユニットをＰＬＣに対して送信する。
【００４４】
図５中では、ＧｅｔＭａｘＳｉｚｅを５データとして設定しているが、更に大きい値を設定しても良い。例えば、ＧｅｔＭａｘＳｉｚｅを９データとして設定した場合には、２回の収集で、所望の有効なデータを取得できる。
【００４５】
以上、本発明において、記載された具体例に対してのみ詳細に説明したが、本発明の技術思想の範囲で多彩な変形および修正が可能であることは、当業者にとって明白なことであり、このような変形および修正が特許請求の範囲に属することは当然のことである。
【００４６】
例えば、本実施の形態における変形例としては、データ取得開始アドレスより先に、データ取得終了アドレスを決定しても良い。
【図面の簡単な説明】
【００４７】
【図１】本実施の形態におけるプログラマブルロジックコントローラ（ＰＬＣ）データの収集方法のメインフローチャート
【図２】本実施の形態におけるＰＬＣデータの収集方法のデータ取得開始アドレス決定フローチャート
【図３】本実施の形態におけるＰＬＣデータの収集方法のデータ取得終了アドレス決定フローチャート
【図４】本実施の形態におけるＰＬＣデータの収集方法の次データ取得開始アドレス決定フローチャート
【図５】本実施の形態におけるＰＬＣメモリ領域の構成図
【図６】一般的なＰＬＣデータの収集方法における通信のためのデータユニット概略図
【図７】一般的なＰＬＣデータの収集方法における一例の概略図
【図８】一般的なＰＬＣデータの収集方法における他の例の概略図
【図９】一般的なＰＬＣデータの収集方法におけるＰＬＣメモリ領域上の断片化データを示す図
【図１０】ＰＬＣを接続した装置を示す図
【符号の説明】
【００４８】
１…プログラマブルロジックコントローラ（ＰＬＣ）メモリ領域
Ａ，Ｂ…特定アドレス
Ｄ１…プロトコル情報
Ｄ２…チェックサム
Ｄ３…ターミネータコード
Ｄ４…アドレス情報
Ｄ５…データ数情報
Ｄ６…データ
Ｇ１…１回目の収集
Ｇ２…２回目の収集
Ｇ３…３回目の収集
Ｍ１…収集要求データユニット
Ｍ２…収集応答データユニット
Ｐ１…パーソナルコンピュータ
Ｐ２…ＰＬＣ
Ｐ３…通信線
ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，ｉ，ｊ…ＰＬＣメモリ領域内のアドレス
ｗｄ１，ｗｄ２…ＰＬＣメモリ領域内の所望外データ領域
α…ＰＬＣメモリ領域内における２回目の初期の次データ取得開始アドレス
【図１】
2008071231.tif 000003
【図２】
2008071231.tif 000004
【図３】
2008071231.tif 000005
【図４】
2008071231.tif 000006
【図５】
2008071231.tif 000007
【図６】
2008071231.tif 000008
【図７】
2008071231.tif 000009
【図８】
2008071231.tif 000010
【図９】
2008071231.tif 000011
【図１０】
2008071231.tif 000012