(57)【要約】  外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換部１２０と、変換されたデジタル値を格納するＡ／Ｄ変換値格納領域１４１と、Ａ／Ｄ変換値格納領域１４１に格納されたデジタル値をロギングするログ格納領域１４２と、を有し、プログラマブルコントローラ全体を制御するＣＰＵユニット２００から読出アクセス可能な共有メモリ１４０と、Ａ／Ｄ変換値格納領域１４１に格納されているデジタル値をロギングデータ７００としてログ格納領域１４２に格納するロギング実行部１３１と、前回割込み発生要求を行ってから、ログ格納領域１４２に格納されるロギングデータ７００の数が所定の数に達したかを監視する一定点数ロギング検出部１３２と、ロギングデータ７００の数が所定の数に達した場合に、ＣＰＵユニット２００に対して割込み発生要求を行う割込み発生部１３３と、を備える。
2014064846.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラに装着され、外部から入力されるアナログ値を逐次デジタル値に変換するアナログ変換装置において、
外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換手段と、
変換された前記デジタル値を格納するＡ／Ｄ変換値格納領域と、前記Ａ／Ｄ変換値格納領域に格納された前記デジタル値をロギングするログ格納領域と、を有し、前記プログラマブルコントローラ全体を制御するＣＰＵユニットから読出アクセス可能な第１記憶手段と、
前記Ａ／Ｄ変換値格納領域に格納されている前記デジタル値をロギングデータとして前記ログ格納領域に格納するロギング実行手段と、
前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が所定の数に達したかを監視する一定点数ロギング検出手段と、
前記ロギングデータの数が前記所定の数に達した場合に、前記ＣＰＵユニットに対して割込み発生要求を行う割込み発生手段と、
を備えることを特徴とするアナログ変換装置。
【請求項２】
前記第１記憶手段は、つぎに読出されるロギングデータの格納位置を示す今回ロギング読出ポインタ、および読出す前記ロギングデータの数であるロギング読出点数を含む読出専用パラメータを格納する読出専用パラメータ格納領域をさらに有し、
前記一定点数ロギング検出手段は、前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が前記ロギング読出点数に達したかを監視し、前記ロギングデータの数が前記ロギング読出点数に達した場合に、前記読出専用パラメータ格納領域に格納されている前記今回ロギング読出ポインタに、前記ロギング読出点数を付加した格納位置を新たな前記今回ロギング読出ポインタとして、前記読出専用パラメータ格納領域に書込むことを特徴とする請求項１に記載のアナログ変換装置。
【請求項３】
請求項２に記載のアナログ変換装置と、前記ＣＰＵユニットとがユニット間バスを介して接続されるプログラマブルコントローラシステムにおいて、
前記ＣＰＵユニットは、
前記アナログ変換装置からの前記割込み発生要求を受信すると、演算手段に割込みプログラムの実行を指示する割込みプログラム実行指示手段と、
ユーザプログラムにしたがって処理を行い、前記割込みプログラム実行指示手段から前記割込みプログラムの実行の指示を受けると、前記アナログ変換装置の前記第１記憶手段の前記ログ格納領域から前記ロギングデータを読出す割込みプログラムを実行する演算手段と、
前記演算手段によって読出された前記ロギングデータを記憶する第２記憶手段と、
を備えることを特徴とするプログラマブルコントローラシステム。
【請求項４】
前記ＣＰＵユニットの前記演算手段は、前記読出専用パラメータ領域中の前記読出専用パラメータを用いて、前記アナログ変換装置の前記ログ格納領域から前記ロギングデータを読出すことを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項５】
前記読出専用パラメータは、前回割込み発生要求時のロギングデータの読出位置である前回ロギング読出ポインタをさらに含み、
前記アナログ変換装置の前記一定点数ロギング検出手段は、前記ロギングデータの数が前記ロギング読出点数に達した場合に、その時点で前記読出専用パラメータ格納領域に格納されている前記今回ロギング読出ポインタを新たな前記前回ロギング読出ポインタとし、現時点で格納されている前記今回ロギング読出ポインタに前記ロギング読出点数を加算した位置を新たな前記今回ロギング読出ポインタとして、前記読出専用パラメータ格納領域に書込み、
前記ＣＰＵユニットの前記演算手段は、前記割込みプログラム実行指示手段から前記割込みプログラムの実行の指示を受けると、前記アナログ変換装置の前記ログ格納領域中の前回読出した位置と、前記前回ロギング読出ポインタとを比較して、一致していない場合に、警告を出力することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項６】
第３記憶手段を有する情報処理端末をさらに備え、
前記ＣＰＵユニットは、前記第２記憶手段に格納された前記ロギングデータを前記情報処理端末の前記第３記憶手段に格納することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項７】
外部記憶装置をさらに備え、
前記ＣＰＵユニットは、前記第２記憶手段に格納された前記ロギングデータを前記外部記憶装置に格納することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラ（以下、ＰＬＣという）に装着されるアナログ変換装置およびＰＬＣシステムに関するものである。
【背景技術】
【０００２】
ＰＬＣにアナログデータ値を入力する場合、アナログデータ値をデジタル値に変換するＡ／Ｄ変換ユニット（Ａ／Ｄ変換装置）が用いられる。一般的に、入力されるアナログデータ値をデジタル値に変換するＡ／Ｄ変換ユニットのＡ／Ｄ変換のサンプリング周期と、ＰＬＣシステム全体を制御するＣＰＵ（Central  Processing  Unit）ユニットの制御周期（スキャンタイム）とは非同期であり、かつサンプリング周期の方が高速な場合が多い。このため、Ａ／Ｄ変換値のロギングを行う場合、ＣＰＵユニットにて全てのＡ／Ｄ変換値を取りこぼすことなくロギングを行うことは困難である。【０００３】
全てのＡ／Ｄ変換値を取りこぼすことなくロギングを行う方法として、Ａ／Ｄ変換ユニット内でロギング処理を行う方法があるが、収集したデータを参照するためには、ロギング完了後にＣＰＵユニットに該当データを読出す必要がある。従来、この読出し処理において専用の通信処理を複数回実施する必要があり、手間がかかるという問題があった。【０００４】
この問題に関し、専用の処理を必要とせず、ＣＰＵユニットから常時アクセス可能なエリアである共有メモリにＡ／Ｄ変換値を格納する技術が提案されている（たとえば、特許文献１参照）。また、連続したデータの収集方法としてリングバッファ形式にて収集を行う技術が提案されている（たとえば、特許文献２参照）。さらに、共通メモリにリングバッファ形式にて収集を行う技術が提案されている（たとえば、特許文献３参照）。【０００５】
さらにまた、連続したデータを収集および参照する技術、収集したデータを時系列に扱う技術、より高速なＡ／Ｄ変換周期（サンプリング周期）で更新されるＡ／Ｄ変換値をロギングする技術が提案されている（たとえば、特許文献４参照）。具体的には、Ａ／Ｄ変換ユニットの有限な内部メモリにリングバッファ構成にて格納されるロギングデータをＣＰＵユニットが特定の共有メモリを監視して、ロギングデータが上書きされる前に、ＣＰＵユニットの内部レジスタにロギングデータを抜き出すことで、連続的なロギングデータの取得を可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−６９３５５号公報
【特許文献２】特開２００８−２０３９２号公報
【特許文献３】特開２００７−２３３５９３号公報
【特許文献４】国際公開第２０１０／１０９５８４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術では、データ格納のたびに前データが上書きされてしまい、連続したデータの収集、および参照が困難であった。また、特許文献２に記載の技術では、リングバッファ構造のメモリエリアにおいて、最新・最旧データを識別することができず、収集したデータを時系列に扱うことが困難であった。さらに、特許文献３に記載の技術は、ＣＰＵユニットの制御周期に同期したロギングを実現するためのものであり、より高速なＡ／Ｄ変換のサンプリング周期で更新される、Ａ／Ｄ変換値をロギングすることは困難であった。【０００８】
また、特許文献４記載の技術では、ロギング処理はＡ／Ｄ変換ユニットが行い、ロギングデータの監視と読出し制御をＣＰＵユニットが実施しているため、時間的なロスが発生し、より高速なロギング周期（Ａ／Ｄ変換周期）において、連続的なロギングデータを取得することが困難であった。【０００９】
この発明は上記に鑑みてなされたもので、時間的なロスをなくし、より高速なロギング周期（Ａ／Ｄ変換周期）において、連続的なロギングデータを取得することができるアナログ変換装置およびプログラマブルコントローラシステムを得ることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、この発明にかかるアナログ変換装置は、プログラマブルコントローラに装着され、外部から入力されるアナログ値を逐次デジタル値に変換するアナログ変換装置において、外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換手段と、変換された前記デジタル値を格納するＡ／Ｄ変換値格納領域と、前記Ａ／Ｄ変換値格納領域に格納された前記デジタル値をロギングするログ格納領域と、を有し、前記プログラマブルコントローラ全体を制御するＣＰＵユニットから読出アクセス可能な第１記憶手段と、前記Ａ／Ｄ変換値格納領域に格納されている前記デジタル値をロギングデータとして前記ログ格納領域に格納するロギング実行手段と、前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が所定の数に達したかを監視する一定点数ロギング検出手段と、前記ロギングデータの数が前記所定の数に達した場合に、前記ＣＰＵユニットに対して割込み発生要求を行う割込み発生手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
この発明によれば、一定点数ロギング検出手段が、第１記憶手段に格納されるロギングデータの数を監視し、ロギングデータの数が所定の数に達すると割込み発生手段がＣＰＵユニットに対して割込み発生要求を行うようにしたので、時間的なロスをなくし、より高速なロギング周期（Ａ／Ｄ変換周期）において、連続的なロギングデータを取得することができるという効果を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、Ａ／Ｄ変換装置（アナログユニット）を含むＰＬＣシステムの構成を模式的に示すブロック図である。
【図２】図２は、読出専用パラメータの一例を示す図である。
【図３】図３は、Ａ／Ｄ変換ユニットによる割込み発生要求生成処理の手順の一例を示すフローチャートである。
【図４】図４は、読出専用パラメータの一例を示す図である。
【図５】図５は、ＣＰＵユニットによる割込み発生時のサイクリック処理の手順の一例を示すフローチャートである。
【図６】図６は、ＣＰＵユニットによる割込み発生時のサイクリック処理の手順の一例を示すフローチャートである。
【図７】図７は、割込み処理発生時の処理順序を模式的に示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるアナログ変換装置およびプログラマブルコントローラシステムの好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
図１は、Ａ／Ｄ変換装置（アナログユニット）を含むＰＬＣシステムの構成を模式的に示すブロック図である。Ａ／Ｄ変換ユニット１００は、ユニット間バス３００を介してＣＰＵユニット２００に接続されており、Ａ／Ｄ変換ユニット１００およびＣＰＵユニット２００はＰＬＣ（プログラマブルコントローラ）１０００の一部を構成している。ＰＬＣ１０００には、Ａ／Ｄ変換ユニット１００、ＣＰＵユニット２００のほかに、目的に合わせ、サーボアンプなどを制御して多軸の位置制御を実行するモーションコントローラユニットや、ＣＰＵユニット２００から指令された温度に到達するように加熱・冷却するための温度制御信号を出力する温度コントローラユニットなどがユニット間バス３００を介して装着されるが、ここではＡ／Ｄ変換ユニット１００、ＣＰＵユニット２００以外のユニットについては言及しない。
【００１５】
Ａ／Ｄ変換ユニット１００は、アナログデータ値の入力を受け付けるアナログデータ入力インタフェース（Ｉ／Ｆ）１１０と、受け付けたアナログデータ値をデジタル値（Ａ／Ｄ変換値）に変換するＡ／Ｄ変換部１２０と、Ａ／Ｄ変換ユニット１００全体の制御を実行する演算部１３０と、Ａ／Ｄ変換されたデジタル値をロギングデータとして記憶し、ＣＰＵユニット２００との間でデータ値が共有される共有メモリ１４０と、ユニット間バス３００を介してＣＰＵユニット２００と通信を行うための通信インタフェースであるバスＩ／Ｆ１６０と、を備えている。演算部１３０、共有メモリ１４０、バスＩ／Ｆ１６０間は、内部バスで夫々接続されている。
【００１６】
共有メモリ１４０には、ＣＰＵユニット２００によるサイクリック処理により読出されるＡ／Ｄ変換値を記録する領域であるＡ／Ｄ変換値格納領域１４１が確保されている。上記したように、通常、アナログデータ値をサンプリングしてデジタル値に変換する間隔（サンプリング間隔）は、サイクリック処理の周期より高速であるため、ＣＰＵユニット２００がＡ／Ｄ変換値格納領域１４１に書込まれたＡ／Ｄ変換値を取りこぼすことなく読出ししてロギングすることは難しい。Ａ／Ｄ変換ユニット１００がデータを高速に書込むことができ、かつＣＰＵユニット２００が煩雑な通信処理を実行することなく読出しアクセスすることができる共有メモリ１４０に、上記したＡ／Ｄ変換値格納領域１４１の他に、Ａ／Ｄ変換値をロギングデータ７００として記録するための記録領域であるログ格納領域１４２を確保している。なお、ログ格納領域１４２に記録されているロギングデータ７００は、ユニット間バス３００、ＣＰＵユニット２００を介して周辺装置４００に読出される。
【００１７】
ログ格納領域１４２はリングバッファ構成となっている。すなわち、ログ格納領域１４２は、ロギングデータ７００が先頭アドレスから順番に時系列順に書込まれる。そして、ロギングデータ７００の書込みアドレスが最後尾に到達したとき、ラップアラウンドして再び先頭アドレスからロギングデータ７００が上書き書込みされる。
【００１８】
また、共有メモリ１４０には、後述する割込み発生時にロギングデータ７００を読出す読出専用パラメータを格納する読出専用パラメータ格納領域１４３が確保されている。図２は、読出専用パラメータの一例を示す図である。読出専用パラメータは、ロギングデータ７００を読出す数であるロギング読出点数と、ロギングデータ７００の読出元のアドレスである今回ロギング読出ポインタと、前回割込み時のロギングデータ７００の読出開始位置である前回ロギング読出ポインタと、を含む。この読出専用パラメータによって、ＣＰＵユニット２００で実行される割込みラダープログラムの簡素化および実行速度の高速化を図ることができる。
【００１９】
演算部１３０は、ロギング実行部１３１と、一定点数ロギング検出部１３２と、割込み発生部１３３と、を備える。ロギング実行部１３１は、Ａ／Ｄ変換部１２０が出力するＡ／Ｄ変換されたデジタル値を逐次ロギングデータとして共有メモリ１４０のリングバッファ構成のログ格納領域１４２に書込む。
【００２０】
一定点数ロギング検出部１３２は、前回割込み処理が行われてから読出専用パラメータで設定されたロギング読出点数のロギングデータ７００のログ格納領域１４２への格納が完了したかを監視する。ロギング読出点数分のロギングデータ７００がログ格納領域１４２に格納されたことを検出すると、読出専用パラメータの今回ロギング読出ポインタとして、今回ＣＰＵユニット２００が読出すロギングデータ７００の開始位置を取得し、前回ロギング読出ポインタとして、現時点で（書き換え前の）読出専用パラメータの今回ロギング読出ポインタに格納されている値を取得する。そして、一定点数ロギング検出部１３２は、取得した今回ロギング読出ポインタと前回ロギング読出ポインタとを、読出専用パラメータ格納領域１４３に書込む。
【００２１】
割込み発生部１３３は、一定点数ロギング検出部１３２で所定の数のロギングデータ７００の格納が検出された場合にＣＰＵユニット２００に対して割込みを発生させる。具体的には、一定点数ロギング検出部１３２によって、共有メモリ１４０の読出専用パラメータ格納領域１４３に読出専用パラメータが格納される（書込まれる）と、ＣＰＵユニット２００へ割込み発生要求を送信する。
【００２２】
このように、この実施の形態では、前回ロギングデータの読出しを行ってから、ログ格納領域１４２に所定の数のロギングデータ７００が格納されたかを監視する処理をＡ／Ｄ変換ユニット１００側で行うようにしている。
【００２３】
ＣＰＵユニット２００は、ユーザプログラムの実行やＣＰＵユニット２００全体の制御を実行する演算部２１０と、ユーザプログラムの実行に必要となるデータやユーザプログラムの入出力値を格納するためのメモリである内部メモリ２２０と、ユニット間バス３００を介してＡ／Ｄ変換ユニット１００と通信を行うための通信インタフェースであるバスＩ／Ｆ２３０と、Ａ／Ｄ変換ユニット１００からの割込みの有無を監視し、割込みを受けた場合に演算部２１０に対して割込みプログラムの実行を指示する割込みプログラム実行指示部２４０と、ユーザプログラムの設定や内部メモリ２２０のデータの状態を表示するためのパーソナルコンピュータなどの周辺装置４００、表示器などの外部機器５００をそれぞれ接続するためのインタフェースである周辺装置Ｉ／Ｆ２５０および外部機器Ｉ／Ｆ２６０と、を備えている。なお、ＰＬＣ１０００およびＰＬＣ１０００に接続された周辺装置４００を含むシステムをＰＬＣシステムと呼ぶ。
【００２４】
内部メモリ２２０には、演算部２１０が実行するメインプログラムであるメインラダープログラムや、割込み発生時に実行される割込みラダープログラムなどのユーザプログラムを格納するユーザプログラム格納領域２２１と、割込みラダープログラムによってＡ／Ｄ変換ユニット１００から取得したロギングデータ７００を格納するロギングデータ格納領域２２２と、が設けられている。
【００２５】
つぎに、ＰＬＣおよびＰＬＣシステムの動作について説明する。ＣＰＵユニット２００は、ＰＬＣ１０００が備える種々なユニットを動作させて産業用機器を制御するためのプログラムであるユーザプログラムの実行と、実行結果の出力と、ユーザプログラムが使用する値などの入力値の取得と、を所定の周期で繰り返す。この繰り返しの動作は、サイクリック処理と呼ばれる。ＣＰＵユニット２００は、サイクリック処理に含まれる入力値の取得動作の一環として、共有メモリ１４０から観測値のデジタル値（Ａ／Ｄ変換値）を読出す。
【００２６】
一方、Ａ／Ｄ変換ユニット１００は、ＰＬＣ１０００の制御対象とする産業用機器などに関する種々の観測値、たとえば流量、圧力、温度などを観測して電流値や電圧値として出力するセンサからのアナログデータ値の入力を受け付け、受け付けたアナログデータ値の入力をデジタル値に変換し、内部に備える共有メモリ１４０にデジタル値（Ａ／Ｄ変換値）を書込む。
【００２７】
そして、Ａ／Ｄ変換ユニット１００のロギング実行部１３１は、Ａ／Ｄ変換部１２０によるＡ／Ｄ変換が開始されると、Ａ／Ｄ変換値のロギングを開始する。ロギング実行部１３１は、ロギング周期ごとに、Ａ／Ｄ変換部１２０が出力したＡ／Ｄ変換値をログ格納領域１４２の先頭アドレスに格納する。ロギングデータが順に格納され、ログ格納領域１４２の最後尾のアドレスに到達した場合には、上記したようにラップアラウンドして再び先頭アドレスからロギングデータ７００が上書き書込みされる。なお、このようなロギング処理は、公知であるので、詳細な説明を省略する。
【００２８】
以下に、この実施の形態によるＣＰＵユニット２００がロギングデータを読み込む具体的な処理について説明する。図３は、Ａ／Ｄ変換ユニットによる割込み発生要求生成処理の手順の一例を示すフローチャートである。
【００２９】
まず、Ａ／Ｄ変換ユニット１００の演算部１３０の一定点数ロギング検出部１３２は、共有メモリ１４０のログ格納領域１４２を監視し（ステップＳ１１）、ログ格納領域１４２に所定の数のロギングデータ７００が格納されたかを判定する（ステップＳ１２）。具体的には、前回割込みが発生してから読出専用パラメータのロギング読出点数で指定される数のロギングデータ７００が格納されたかを監視する。前回割込みが発生してからのロギングデータ７００の格納数は、たとえば読出専用パラメータの今回ロギング読出ポインタで指定される位置からロギング読出点数離れた位置を読出し開始位置にして、格納されるロギングデータ７００の数を計測する。
【００３０】
ログ格納領域１４２に所定の数のロギングデータ７００が格納されていない場合（ステップＳ１２でＮｏの場合）には、ステップＳ１１へと処理が戻る。また、ログ格納領域１４２に所定の数のロギングデータ７００が格納された場合（ステップＳ１２でＹｅｓの場合）には、一定点数ロギング検出部１３２は、現時点で共有メモリ１４０の読出専用パラメータ格納領域１４３に格納されている今回ロギング読出ポインタを、新たな前回ロギング読出ポインタとし、上記読出し開始位置を新たな今回ロギング読出しポインタとして、新たな読出専用パラメータを生成し、読出専用パラメータ格納領域１４３に格納する（書込む）（ステップＳ１３）。
【００３１】
その後、割込み発生部１３３は、ＣＰＵユニット２００へ割込み発生要求を送信し（ステップＳ１４）、処理がステップＳ１１へと戻る。割込み発生要求は、Ａ／Ｄ変換ユニット１００の内部バス、バスＩ／Ｆ１６０、ユニット間バス３００、ＣＰＵユニット２００のバスＩ／Ｆ２３０、内部バスを介して割込みプログラム実行指示部２４０へと送信される。
【００３２】
ここで、具体例を挙げて説明する。ログ格納領域１４２には、１０，０００点分のロギングデータが格納できるものとし、ロギングデータ７００が１，０００点分たまると、割込みを発生させるものとする。また、この例では、各ロギングデータ７００は、所定の大きさの領域に格納されるものとし、最初にロギングデータ７００が格納される領域から順に１〜１０，０００の識別子（たとえばアドレス）が割り振られているものとする。
【００３３】
図４は、読出専用パラメータの一例を示す図である。図４（ａ）では、ログ格納領域１４２にまだロギングデータ７００が格納されていない初期状態での読出専用パラメータの一例を示している。ここでは、ロギング読出点数として、１，０００が設定され、今回ロギング読出ポインタとして、１つ目のロギングデータの格納位置を示す「１」が設定され、前回ロギング読出ポインタとして、無効な数値（ここでは、「−１」）が設定される。
【００３４】
図４（ｂ）では、１，０００点のロギングデータ７００が格納された状態での読出専用パラメータの一例を示しており、たとえば上記したステップＳ１３の処理を行った直後の状態を示している。ここでは、図４（ａ）の今回ロギング読出ポインタが、図４（ｂ）の前回ロギング読出ポインタに設定される。また、今回ロギング読出ポインタとして、前回ロギング読出ポインタにロギング読出点数を付加した値である１，００１が設定される。
【００３５】
図５と図６は、ＣＰＵユニットによる割込み発生時のサイクリック処理の手順の一例を示すフローチャートである。また、図７は、割込み処理発生時の処理順序を模式的に示す図である。ＣＰＵユニット２００の演算部２１０は、サイクリック処理を実行する（ステップＳ３１）。
【００３６】
このサイクリック処理中に、割込みプログラム実行指示部２４０は、Ａ／Ｄ変換ユニット１００から割込み発生要求を受信したかを監視する。割込み発生要求を受信しない場合には、サイクリック処理が繰り返し実行される。また、割込み発生要求を受信した場合には、割込みプログラム実行指示部２４０は、演算部２１０に対して割込みラダープログラムの実行を指示する。演算部２１０は、割込みラダープログラムの実行の指示を受けると、実行中のサイクリック処理を中断し（ステップＳ３２）、割込みラダープログラムを実行する（ステップＳ３３）。
【００３７】
ここで、図６を参照して割込みラダープログラムの処理の一例について説明する。なお、この図６は、割込みラダープログラムの処理の一部を示したものである。まず、割込みラダープログラムを実行すると、演算部２１０は、Ａ／Ｄ変換ユニット１００の共有メモリ１４０の読出専用パラメータ格納領域１４３から読出専用パラメータを読み込む（ステップＳ５１）。
【００３８】
ついで、読出専用パラメータを用いてロギングデータ７００の取りこぼしがないかを判定する（ステップＳ５２）。割込みラダープログラムを使用する場合、起動タイミング間隔が短く割込みラダープログラムの起動要求が受け付けられず、ロギングデータ７００を取りこぼししてしまう場合がある。そこで、この例では、ロギングデータ７００の取りこぼしがないかの判定を行っている。
【００３９】
具体的には、ＣＰＵユニット２００側で保持している前回のロギングデータ７００の読出位置と、ステップＳ５２で読み込んだ読出専用パラメータ中の前回ロギング読出ポインタと、を比較し、両者が一致しているかを判定する。両者が一致している場合には、割込み発生要求を受けたときに、割込みラダープログラムが起動して、ロギングデータ７００をＡ／Ｄ変換ユニット１００から読出す処理を行っていたこと、すなわちロギングデータ７００の取りこぼしがないことを示す。一方、両者が一致していない場合には、割込み発生要求を受けたときに、何らかの原因で割込みラダープログラムが起動せず、ロギングデータ７００をＡ／Ｄ変換ユニット１００から読出せなかったこと、すなわちロギングデータ７００の取りこぼしがあったことを示す。
【００４０】
ロギングデータ７００の取りこぼしがあった場合（ステップＳ５３でＹｅｓの場合）には、演算部２１０は、ＰＬＣ１０００（ＰＬＣシステム）に何らかの異常があるものとして警告を出力し（ステップＳ５４）、処理が終了する。この警告は、たとえば、外部機器Ｉ／Ｆ２６０を介して表示器などの外部機器５００に出力される。
【００４１】
ロギングデータ７００の取りこぼしがない場合（ステップＳ５３でＮｏの場合）には、読出専用パラメータ中の今回ロギング読出ポインタで指定される位置から、ロギング読出点数で指定される数分のロギングデータ７００をＡ／Ｄ変換ユニット１００の共有メモリ１４０のログ格納領域１４２から読出す（ステップＳ５５）。そして、読出したロギングデータ７００をＣＰＵユニット２００の内部メモリ２２０のロギングデータ格納領域２２２に書込む（格納する）（ステップＳ５６）。以上で割込みラダープログラムの処理が終了し、処理が図５へと戻る。
【００４２】
その後、演算部２１０は、中断したサイクリック処理を再開する（ステップＳ３４）。この割込み処理の順序は、図７に示されるように、サイクリック処理が実行されている最中に割込みが発生すると、サイクリック処理が中断し、割込みラダープログラムが実行される。そして、割込みラダープログラムの処理が終了すると、再びサイクリック処理が中断した箇所から実行される。
【００４３】
なお、上述した説明では、ロギングデータ７００の取りこぼしを監視できるように、読出専用パラメータに前回ロギング読出ポインタを設けたが、ロギングデータ７００の取りこぼしの監視を行わない場合には、前回ロギング読出ポインタを省略することができる。
【００４４】
また、ＣＰＵユニット２００の内部メモリ２２０に蓄積したロギングデータ７００を外部機器Ｉ／Ｆ２６０を介して外部メモリなどの記録媒体に保存することができる。
【００４５】
従来では、Ａ／Ｄ変換ユニット１００から連続的なロギングデータ７００を取得する場合、ロギング実行部１３１によりリングバッファ形式でログ格納領域１４２にロギングされるデータを上書きされる前に、ＣＰＵユニット２００の内部メモリ２２０に読出す必要があった。そこで、従来技術では、ログ格納領域１４２に格納されるロギングデータ７００をユーザプログラム（Ａ／Ｄ変換ユニット１００のロギングデータ７００をＣＰＵユニット２００の内部メモリ２２０に格納するプログラム）によって、ＣＰＵユニット２００がログ格納領域１４２を監視することで上書きされる前にロギングデータ７００を内部メモリ２２０に読出していた。
【００４６】
一方、この実施の形態では、リングバッファ構成のログ格納領域１４２に格納されるロギングデータ７００が、所定の数格納されたかを、Ａ／Ｄ変換ユニット１００側で監視する一定点数ロギング検出部１３２と、所定の数のロギングデータ７００が格納された場合に、ＣＰＵユニット２００に対して割込み発生要求を送信する割込み発生部１３３と、をＡ／Ｄ変換ユニット１００に設け、Ａ／Ｄ変換ユニット１００からの割込み発生要求を受けて割込みラダープログラムを実行させる割込み要求を演算部２１０に対して出力する割込みプログラム実行指示部２４０をＣＰＵユニット２００に設けた。これによって、ＣＰＵユニット２００からＡ／Ｄ変換ユニット１００への定期的な監視処理が不要となり、シーケンススキャンタイムを短縮することができるという効果を有する。
【００４７】
また、ＣＰＵユニット２００がロギングデータ７００を読出す際に、ロギングデータ７００の読出開始位置と読出す数とを含む読出専用パラメータを使用することで、ユーザが作成する割込みラダープログラムが簡素化され、シーケンススキャンタイムを短縮することができるという効果を有する。
【００４８】
さらに、以上のようにＣＰＵユニット２００とＡ／Ｄ変換ユニット１００とを使用したＰＬＣシステムにおいて、従来より高速なロギング周期（Ａ／Ｄ変換周期）で、連続的なロギングデータの取得を実現することができるという効果を有する。
【産業上の利用可能性】
【００４９】
以上のように、この発明にかかるＡ／Ｄ変換装置およびＰＬＣシステムは、ＰＬＣに装着されるＡ／Ｄ変換装置およびＰＬＣシステムに適用して好適である。
【符号の説明】
【００５０】
１００  Ａ／Ｄ変換ユニット、１１０  アナログデータ入力Ｉ／Ｆ、１２０  Ａ／Ｄ変換部、１３０  演算部、１３１  ロギング実行部、１３２  一定点数ロギング検出部、１３３  割込み発生部、１４０  共有メモリ、１４１  Ａ／Ｄ変換値格納領域、１４２  ログ格納領域、１４３  読出専用パラメータ格納領域、１６０，２３０  バスＩ／Ｆ、２００  ＣＰＵユニット、２１０  演算部、２２０  内部メモリ、２２１  ユーザプログラム格納領域、２２２  ロギングデータ格納領域、２４０  割込みプログラム実行指示部、２５０  周辺装置Ｉ／Ｆ、２６０  外部機器Ｉ／Ｆ、３００  ユニット間バス、４００  周辺装置、５００  外部機器、７００  ロギングデータ。
【図１】
2014064846.tif 000003
【図２】
2014064846.tif 000004
【図３】
2014064846.tif 000005
【図４】
2014064846.tif 000006
【図５】
2014064846.tif 000007
【図６】
2014064846.tif 000008
【図７】
2014064846.tif 000009
【手続補正書】
【提出日】平成25年3月21日(2013.3.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルコントローラに装着され、ＣＰＵユニットとユニット間バスを介して接続され、外部から入力されるアナログ値を逐次デジタル値に変換して前記ＣＰＵユニットに出力するアナログ変換装置において、
外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換手段と、
変換された前記デジタル値を格納するＡ／Ｄ変換値格納領域と、前記Ａ／Ｄ変換値格納領域に格納された前記デジタル値をロギングするリングバッファ構成のログ格納領域と、つぎに読出されるロギングデータの格納位置を示す今回ロギング読出ポインタ、および読出す前記ロギングデータの数であるロギング読出点数を含む読出専用パラメータを格納する読出専用パラメータ格納領域と、を有し、前記プログラマブルコントローラ全体を制御するＣＰＵユニットから読出アクセス可能な第１記憶手段と、
前記Ａ／Ｄ変換値格納領域に格納されている前記デジタル値をロギングデータとして前記ログ格納領域に格納するロギング実行手段と、
前記ＣＰＵユニットに対する前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が前記ロギング読出点数に達したかを監視する一定点数ロギング検出手段と、
前記ロギングデータの数が前記ロギング読出点数に達した場合に、前記ＣＰＵユニットによるサイクリック処理を中断させて前記ロギングデータの読出し処理を実行させるように前記ＣＰＵユニットに対して割込み発生要求の処理を指示する割込み発生手段と、
を備えることを特徴とするアナログ変換装置。
【請求項２】
前記一定点数ロギング検出手段は、前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が前記ロギング読出点数に達したかを監視し、前記ロギングデータの数が前記ロギング読出点数に達した場合に、前記読出専用パラメータ格納領域に格納されている前記今回ロギング読出ポインタに、前記ロギング読出点数を付加した格納位置を新たな前記今回ロギング読出ポインタとして、前記読出専用パラメータ格納領域に書込むことを特徴とする請求項１に記載のアナログ変換装置。
【請求項３】
外部から入力されるアナログ値を逐次デジタル値に変換するアナログ変換装置と、ＣＰＵユニットとがユニット間バスを介して接続されるプログラマブルコントローラシステムにおいて、
前記アナログ変換装置は、
外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換手段と、
変換された前記デジタル値を格納するＡ／Ｄ変換値格納領域と、前記Ａ／Ｄ変換値格納領域に格納された前記デジタル値をロギングするリングバッファ構成のログ格納領域と、つぎに読出されるロギングデータの格納位置を示す今回ロギング読出ポインタ、および読出す前記ロギングデータの数であるロギング読出点数を含む読出専用パラメータを格納する読出専用パラメータ格納領域と、を有し、前記ＣＰＵユニットから読出アクセス可能な第１記憶手段と、
前記Ａ／Ｄ変換値格納領域に格納されている前記デジタル値をロギングデータとして前記ログ格納領域に格納するロギング実行手段と、
前記ＣＰＵユニットに対する前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が前記ロギング読出点数に達したかを監視する一定点数ロギング検出手段と、
前記ロギングデータの数が前記ロギング読出点数に達した場合に、前記ＣＰＵユニットによるサイクリック処理を中断させて前記ロギングデータの読出し処理を実行させるように前記ＣＰＵユニットに対して割込み発生要求の処理を指示する割込み発生手段と、
を備え、
前記ＣＰＵユニットは、
前記アナログ変換装置からの前記割込み発生要求を受信すると、演算手段に前記アナログ変換装置から前記ロギングデータの読出しを実行する割込みプログラムの実行を指示する割込みプログラム実行指示手段と、
ユーザプログラムにしたがって前記サイクリック処理を行い、前記割込みプログラム実行指示手段から前記割込みプログラムの実行の指示を受けると、前記サイクリック処理を中断し、前記アナログ変換装置の前記第１記憶手段の前記ログ格納領域から前記ロギングデータを読出す割込みプログラムを実行する演算手段と、
前記演算手段によって読出された前記ロギングデータを記憶する第２記憶手段と、
を備えることを特徴とするプログラマブルコントローラシステム。
【請求項４】
前記ＣＰＵユニットの前記演算手段は、前記読出専用パラメータ格納領域中の前記読出専用パラメータを用いて、前記アナログ変換装置の前記ログ格納領域の前記今回ロギング読出ポインタで示される位置から前記ロギング読出点数分の前記ロギングデータを読出すことを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項５】
前記読出専用パラメータは、前回割込み発生要求時のロギングデータの読出位置である前回ロギング読出ポインタをさらに含み、
前記アナログ変換装置の前記一定点数ロギング検出手段は、前記ロギングデータの数が前記ロギング読出点数に達した場合に、その時点で前記読出専用パラメータ格納領域に格納されている前記今回ロギング読出ポインタを新たな前記前回ロギング読出ポインタとし、現時点で格納されている前記今回ロギング読出ポインタに前記ロギング読出点数を加算した位置を新たな前記今回ロギング読出ポインタとして、前記読出専用パラメータ格納領域に書込み、
前記ＣＰＵユニットの前記演算手段は、前記割込みプログラム実行指示手段から前記割込みプログラムの実行の指示を受けると、前記アナログ変換装置の前記ログ格納領域中の前回読出した位置と、前記前回ロギング読出ポインタとを比較して、一致していない場合に、警告を出力することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項６】
第３記憶手段を有する情報処理端末をさらに備え、
前記ＣＰＵユニットは、前記第２記憶手段に格納された前記ロギングデータを前記情報処理端末の前記第３記憶手段に格納することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【請求項７】
外部記憶装置をさらに備え、
前記ＣＰＵユニットは、前記第２記憶手段に格納された前記ロギングデータを前記外部記憶装置に格納することを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記目的を達成するため、この発明にかかるアナログ変換装置は、プログラマブルコントローラに装着され、ＣＰＵユニットとユニット間バスを介して接続され、外部から入力されるアナログ値を逐次デジタル値に変換して前記ＣＰＵユニットに出力するアナログ変換装置において、外部から入力されるアナログ値をデジタル値に変換するＡ／Ｄ変換手段と、変換された前記デジタル値を格納するＡ／Ｄ変換値格納領域と、前記Ａ／Ｄ変換値格納領域に格納された前記デジタル値をロギングするリングバッファ構成のログ格納領域と、つぎに読出されるロギングデータの格納位置を示す今回ロギング読出ポインタ、および読出す前記ロギングデータの数であるロギング読出点数を含む読出専用パラメータを格納する読出専用パラメータ格納領域と、を有し、前記プログラマブルコントローラ全体を制御するＣＰＵユニットから読出アクセス可能な第１記憶手段と、前記Ａ／Ｄ変換値格納領域に格納されている前記デジタル値をロギングデータとして前記ログ格納領域に格納するロギング実行手段と、前記ＣＰＵユニットに対する前回割込み発生要求を行ってから、前記ログ格納領域に格納される前記ロギングデータの数が前記ロギング読出点数に達したかを監視する一定点数ロギング検出手段と、前記ロギングデータの数が前記ロギング読出点数に達した場合に、前記ＣＰＵユニットによるサイクリック処理を中断させてロギング処理を実行させるように前記ＣＰＵユニットに対して割込み発生要求の処理を指示する割込み発生手段と、を備えることを特徴とする。
【国際調査報告】
2014064846.tif 000010
2014064846.tif 000011