(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラにおいて、
入出力回路と、
アプリケーションプログラムが格納される記憶回路と、
前記入出力回路及び前記記憶回路を制御する制御回路と、
前記アプリケーションプログラムが１回実行される時間を測定する時間計測用カウンタ回路と、予め設定された時間範囲に対応して設けられた複数の分布計数用カウンタ回路と、前記時間計測用カウンタ回路の測定時間が前記予め設定された時間範囲のうちどの時間範囲に該当するかを判断して該当する前記分布計数用カウンタ回路のカウント値をインクリメントする制御回路とから構成されたデバッグ回路と
を備えたことを特徴するプログラマブルコントローラ。
【請求項２】
プログラマブルコントローラにおいて、
入出力回路と、
アプリケーションプログラムが格納される記憶回路と、
前記アプリケーションプログラムが１回実行される時間を測定する時間計測用カウンタ回路と、
予め設定された時間範囲に対応して設けられた複数の分布計数用カウンタ回路と、
前記入出力回路及び前記記憶回路を制御すると共に前記時間計測用カウンタ回路の測定時間が前記予め設定された時間範囲のうちどの時間範囲に該当するかを判断して該当する前記分布計数用カウンタ回路のカウント値をインクリメントする制御回路と
を備えたことを特徴するプログラマブルコントローラ。
【請求項３】
接続されたアプリケーションプログラム開発ツールに前記分布計数用カウンタ回路で計数されたカウント値に基づき前記アプリケーションプログラムが１回実行される時間の分布図を表示させることを特徴とする
特許請求の範囲請求項１及び請求項２記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラに関し、特にアプリケーションプログラムのスキャンタイムの分布を測定することが可能なプログラマブルコントローラに関する。
【０００２】
【従来の技術】
従来のプログラマブルコントローラは、センサからのデータ収集や機器の制御等を予め格納されたアプリケーションプログラムに基づき実行する。
【０００３】
また、プログラムの実行方式として予め格納されたアプリケーションプログラムを何回も連続して実行するスキャン方式がある。
【０００４】
例えば、センサ等から圧力信号及び温度信号を収集して、圧力信号を温度信号で補償して出力するアプリケーションプログラムを連続して実行することにより、プログラマブルコントローラからは温度補償された圧力信号が定期的に出力されることになる。
【０００５】
但し、一般にプログラマブルコントローラでアプリケーションプログラムを１回実行する時間（以下、スキャンタイムと呼ぶ。）は常に一定ではなくプログラムの実行時の条件により変動する。
【０００６】
例えば、入力される前記圧力信号や前記温度信号の値の変動や、前記温度補償の演算内容等の諸条件により、アプリケーションプログラムの全命令が実行されるのではなく実行されずにスキップされたり、あるいは、何回も実行される命令が生じたりするのでスキャンタイムは常時変動する。
【０００７】
特に、短いスキャンタイムが要求される場合にはアプリケーションプログラムの作成時にスキャンタイムの短縮を図る工夫をする必要があり、この場合にはプログラマブルコントローラで実行されるアプリケーションプログラムのスキャンタイムに関する情報を得る必要がある。
【０００８】
一般に、プログラマブルコントローラにはこのような機能が付加されているものがあり、図５はこのような従来のプログラマブルコントローラの一例を示す構成ブロック図である。
【０００９】
図５において１は入出力回路、２は制御回路、３はアプリケーションプログラムが格納される記憶回路、４はデバッグ回路、１００は入力信号、１０１は出力信号である。
【００１０】
入力信号１００は入出力回路１を介して制御回路２に入力され、制御回路１から出力は入出力回路１を介して出力信号１０１として外部に出力される。また、制御回路２は記憶回路３及びデバッグ回路４と相互に接続される。
【００１１】
ここで、図５に示す従来例の動作を説明する。制御回路２は記憶回路３に予め格納されたアプリケーションプログラムの命令を順次読み出して実行する。
【００１２】
一方、デバッグ回路４は前記アプリケーションプログラムを１回実行するのに要するスキャンタイムに関する情報を測定する。
【００１３】
具体的には、デバッグ回路４では最新スキャンタイム、スキャンタイムの最大値及び最小値及び平均スキャンタイムを測定して記憶する。
【００１４】
また、図６はデバッグ回路４の具体例を示す構成ブロック図であり、図６において５は時間計測用カウンタ回路、６は制御回路、７は記憶回路、１０２はクロック信号である。
【００１５】
クロック信号１０２は時間計測用カウンタ回路５に入力され、時間計測用カウンタ回路５の出力が制御回路６に接続される。また、制御回路６と記憶回路７が相互に接続される。
【００１６】
ここで、図６に示すデバッグ回路４の動作を図７を用いて説明する。図７はデバッグ回路４の動作を説明するフロー図である。
【００１７】
図７（ａ）において制御回路６は時間計測用カウンタ回路５をリセットすると共にカウント動作を開始させ、図７（ｂ）においてアプリケーションプログラムの実行の終了を検出する。
【００１８】
図７（ｂ）においてアプリケーションプログラムの終了が検出されると制御回路６は図７（ｃ）において時間計測用カウンタ回路５のカウント値を読み出し、図７（ｄ）において最新スキャンタイムとして記憶回路７に格納する。
【００１９】
また、図７（ｅ）において制御回路６は平均スキャンタイムを計算すると共にその結果を記憶回路７に格納する。
【００２０】
図７（ｆ）において制御回路６は前記カウント値を前回までのスキャンタイムの最大値と比較して大きいかどうかを判断する。
【００２１】
もし、前記カウント値が前回までの最大値よりも大きければ、制御回路６は図７（ｇ）において前記カウント値を最大値として記憶回路７に格納し、図７（ｊ）の処理を行う。
【００２２】
同様に、図７（ｈ）において制御回路６は前記カウント値を前回までのスキャンタイムの最小値と比較して小さいかどうかを判断する。
【００２３】
もし、前記カウント値が前回までの最小値よりも小さければ、制御回路６は図７（ｉ）において前記カウント値を最小値として記憶回路７に格納し、図７（ｊ）の処理を行う。
【００２４】
最後に、図７（ｊ）において制御回路６はスキャンタイム等の測定終了か否かを判断し、再測定であれば図７（ａ）の処理に戻り、測定終了であれば処理を終了する。
【００２５】
また、プログラマブルコントローラとアプリケーションプログラム開発ツールとを接続し、このアプリケーションプログラム開発ツールでデバッグ回路４で測定されたスキャンタイムに関する情報を読み出して表示画面等に表示させることが可能になる。
【００２６】
一般にはプログラマブルコントローラでアプリケーションプログラムを実行させながら前記情報をモニタすることにより、スキャンタイムの短縮を図る工夫をすることになる。
【００２７】
この結果、デバッグ回路４によりプログラマブルコントローラのアプリケーションプログラムの作成に必要なスキャンタイムに関する情報を得ることが可能になる。
【００２８】
【発明が解決しようとする課題】
しかし、図５等に示す従来例ではスキャンタイムの最大値及び最小等の個々の情報は分かるものの、例えば、スキャンタイムの最大値が突発的に生じたのか、或いは、定常的に生じるものなのかを区別することが出来ない。
【００２９】
このため、アプリケーションプログラムのどの部分を修正すれば良いかが分からず、アプリケーションプログラムの修正作業の効率が悪くなってしまうと言った問題点があった。
従って本発明が解決しようとする課題は、スキャンタイムの長さの分布状況を得ることが可能なプログラマブルコントローラを実現することにある。
【００３０】
【課題を解決するための手段】
このような課題を達成するために、本発明の第１では、
プログラマブルコントローラにおいて、
入出力回路と、
アプリケーションプログラムが格納される記憶回路と、
前記入出力回路及び前記記憶回路を制御する制御回路と、
前記アプリケーションプログラムが１回実行される時間を測定する時間計測用カウンタ回路と、予め設定された時間範囲に対応して設けられた複数の分布計数用カウンタ回路と、前記時間計測用カウンタ回路の測定時間が前記予め設定された時間範囲のうちどの時間範囲に該当するかを判断して該当する前記分布計数用カウンタ回路のカウント値をインクリメントする制御回路とから構成されたデバッグ回路とを備えたことを特徴するものである。
【００３１】
このような課題を達成するために、本発明の第２では、
プログラマブルコントローラにおいて、
入出力回路と、
アプリケーションプログラムが格納される記憶回路と、
前記アプリケーションプログラムが１回実行される時間を測定する時間計測用カウンタ回路と、
予め設定された時間範囲に対応して設けられた複数の分布計数用カウンタ回路と、
前記入出力回路及び前記記憶回路を制御すると共に前記時間計測用カウンタ回路の測定時間が前記予め設定された時間範囲のうちどの時間範囲に該当するかを判断して該当する前記分布計数用カウンタ回路のカウント値をインクリメントする制御回路とを備えたことを特徴するものである。
【００３２】
このような課題を達成するために、本発明の第３では、
本発明の第１及び第２において、
接続されたアプリケーションプログラム開発ツールに前記分布計数用カウンタ回路で計数されたカウント値に基づき前記アプリケーションプログラムが１回実行される時間の分布図を表示させることを特徴とするものである。
【００３４】
【発明の実施の形態】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るプログラマブルコントローラの一実施例を示す構成ブロック図である。
【００３５】
図１において１，２及び３は図５と同一符号を付してあり，４ａはデバッグ回路，１００ａは入力信号、１０１ａは出力信号である。
【００３６】
入力信号１００ａは入出力回路１を介して制御回路２に入力され、制御回路１から出力は入出力回路１を介して出力信号１０１ａとして外部に出力される。また、制御回路２は記憶回路３及びデバッグ回路４ａと相互に接続される。
【００３７】
ここで、図１に示す実施例の動作を説明する。制御回路２は記憶回路３に予め格納されたアプリケーションプログラムの命令を順次読み出して実行する。
【００３８】
一方、デバッグ回路４ａは前記アプリケーションプログラムを１回実行するのに要するスキャンタイムに関する情報を測定する。
【００３９】
具体的には、デバッグ回路４ａではスキャンタイムを測定して予め設定された時間範囲のうちどの時間範囲に該当するかを判断してその個数を計数する。言い換えれば、スキャンタイムの時間範囲での分布状況を測定して記憶する。
【００４０】
また、図２はデバッグ回路４ａの具体例を示す構成ブロック図であり、図２において５及び１０２は図６と同一符号を付してあり、６ａは制御回路、８，９，１０及び１１は分布計数用カウンタ回路である。
【００４１】
クロック信号１０２は時間計測用カウンタ回路５に入力され、時間計測用カウンタ回路５の出力が制御回路６ａに接続される。また、制御回路６ａと分布計数用カウンタ回路８，９，１０及び１１が相互に接続される。
【００４２】
ここで、図２に示すデバッグ回路４ａの動作を図３を用いて説明する。図３はデバッグ回路４ａの動作を説明するフロー図である。
【００４３】
図３（ａ）において制御回路６ａは分布計数カウンタ回路８〜１１で計数する時間範囲を予め設定する。
【００４４】
具体的には、測定したスキャンタイムを”Ｔｓｃａｎ”とした場合に、
ｔ３≦Ｔｓｃａｎ＜ｔ４      （１）
ｔ２≦Ｔｓｃａｎ＜ｔ３      （２）
ｔ１≦Ｔｓｃａｎ＜ｔ２      （３）
０≦Ｔｓｃａｎ＜ｔ１      （４）
（但し、０＜ｔ１＜ｔ２＜ｔ３＜ｔ４）
式（１）の条件を満たせば分布計数用カウンタ８のカウント値をインクリメントし、同様に、式（２）、式（３）及び式（４）の条件を満たせば分布計数用カウンタ９，１０及び１１のカウント値をインクリメントする様に設定する。
【００４５】
図３（ｂ）において制御回路６ａは時間計測用カウンタ回路５をリセットすると共にカウント動作を開始させ、図３（ｃ）においてアプリケーションプログラムの実行の終了を検出する。
【００４６】
図３（ｃ）においてアプリケーションプログラムの終了が検出されると制御回路６ａは図３（ｄ）において時間計測用カウンタ回路５のカウント値を読み出す。
【００４７】
図３（ｅ）において制御回路６ａは前記カウント値が式（１）の条件を満たすかどうかを判断する。
【００４８】
もし、式（１）の条件を満たせば図３（ｆ）において制御回路６ａは分布計数用カウンタ回路８のカウント値をインクリメントし、図３（ｌ）の処理を行う。
【００４９】
また、図３（ｇ）において制御回路６ａは前記カウント値が式（２）の条件を満たすかどうかを判断する。
【００５０】
もし、式（２）の条件を満たせば図３（ｈ）において制御回路６ａは分布計数用カウンタ回路９のカウント値をインクリメントし、図３（ｌ）の処理を行う。
【００５１】
さらに、図３（ｉ）において制御回路６ａは前記カウント値が式（３）の条件を満たすかどうかを判断する。
【００５２】
もし、式（３）の条件を満たせば図３（ｊ）において制御回路６ａは分布計数用カウンタ回路１０のカウント値をインクリメントし、図３（ｌ）の処理を行う。
【００５３】
そして、図３（ｋ）において制御回路６ａは分布計数用カウンタ回路１１のカウント値をインクリメントする。
【００５４】
最後に、図３（ｌ）において制御回路６ａは測定終了か否かを判断し、再測定であれば図３（ｂ）の処理に戻り、測定終了であれば処理を終了する。
【００５５】
図４はこのようにデバッグ回路４ａで測定したスキャンタイムの分布状況の一例を示す分布図である。
【００５６】
具体的には、プログラマブルコントローラとアプリケーションプログラム開発ツールとを接続し、このアプリケーションプログラム開発ツールでデバッグ回路４ａで測定されたスキャンタイムの分布状況に関する情報を読み出して表示画面等に分布図で表示させたものである。
【００５７】
図４中”イ”、”ロ”、”ハ”及び”ニ”は分布計数用カウンタ回路１１，１０，９及び８で計数されたカウント値であり、図４においてはスキャンタイムは式（２）に示す時間範囲に多く分布していることが分かる。
【００５８】
また、図４中”ニ”の分布が少ないことからスキャンタイムの最大値は突発的に発生していることも併せて認識することができる。
【００５９】
このため、上述の場合にはアプリケーションプログラムの内で定常は実行されない特定の分岐ルーチン等に問題があると特定でき、その部分を修正すれば良いので、アプリケーションプログラムの修正作業の効率が良くなる。
【００６０】
一方、図４中”ニ”の部分のカウント値が大きければ、スキャンタイムの最大値が定常的に生じるものであると認識できるので、アプリケーションプログラムの内で定常的に実行されるルーチンに問題があると特定できる。
【００６１】
この結果、デバッグ回路４ａによりスキャンタイムの長さを判断して、予め設定された時間範囲のうちどの時間範囲に該当するかを判断してその個数を計数することにより、スキャンタイムの長さの分布状況を得ることが可能になる。
【００６２】
なお、図２のデバッグ回路４ａにおいては説明の簡単のために分布計数用カウンタ回路を４個例示したが、勿論、この個数に限定される訳ではなく、分布計数用カウンタ回路を多く設けることにより、スキャンタイムのより詳細な分布状況を得ることができる。
【００６３】
また、図２のデバッグ回路４ａでは説明の簡単のために制御回路６ａを図１中の制御回路２とは別個に例示したが、制御回路６ａにおける処理内容を制御回路２に処理させても構わない。
【００６４】
また、アプリケーションプログラム開発ツールとしては一般にはパーソナルコンピュータやワークステーション等の制御装置が用いられる。
【００６５】
また、スキャンタイムがあるの時間以上になった場合にのみ発生する現象の特定に関しては、スキャンタイムがあるの時間以上になる頻度と前記現象の発生頻度の関係を調べる必要があり、本実施例によればこれらの関係を調べることが可能になる。
【００６６】
【発明の効果】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
デバッグ回路によりスキャンタイムの長さを判断して、予め設定された時間範囲のうちどの時間範囲に該当するかを判断してその個数を計数することにより、スキャンタイムの長さの分布状況を得ることが可能なプログラマブルコントローラが実現できる。
【図面の簡単な説明】
【図１】本発明に係るプログラマブルコントローラの一実施例を示す構成ブロック図である。
【図２】デバッグ回路の具体例を示す構成ブロック図である。
【図３】デバッグ回路の動作を説明するフロー図である。
【図４】スキャンタイムの分布状況の一例を示す分布図である。
【図５】従来のプログラマブルコントローラの一例を示す構成ブロック図である。
【図６】デバッグ回路の具体例を示す構成ブロック図である。
【図７】デバッグ回路の動作を説明するフロー図である。
【符号の説明】
１  入出力回路
２，６，６ａ  制御回路
３，７  記憶回路
４，４ａ  デバッグ回路
５  時間計測用カウンタ回路
８，９，１０，１１  分布計数用カウンタ回路
１００，１００ａ  入力信号
１０１，１０１ａ  出力信号
１０２  クロック信号
【図１】
0003661732.tif 000002
【図２】
0003661732.tif 000003
【図３】
0003661732.tif 000004
【図４】
0003661732.tif 000005
【図５】
0003661732.tif 000006
【図６】
0003661732.tif 000007
【図７】
0003661732.tif 000008