(57)【要約】【課題】開発前のラダープログラムの処理時間の見積りの可能な装置を提供する。【解決手段】スキャンタイム見積り部１は、所定のラダープログラムに対応し、かつ、所定の制御記述言語で記述された制御流れ記述を入力して構文解析し、構文解析結果に基づき制御流れ記述から工程カテゴリ、出力点数の組を抽出すると共に、構文解析結果に基づき制御流れ記述から命令とこの命令の使用数とを抽出し、命令と命令の使用数とを、対応するラダープログラムの命令と、ラダープログラムの命令の使用数とに変換し、工程カテゴリ毎ラダー命令数情報と、抽出されたカテゴリ、出力点数との組とに基づいて、ラダー命令ごとの推測使用数を決定し、決定された推測使用数と、変換された前記ラダープログラムの命令に対応するラダープログラムの命令の使用数とに基づいて、制御流れ記述の元になるラダープログラムのスキャンタイムの推定値を算出する。【選択図】図１
2012083934.tif 000002
【特許請求の範囲】
【請求項１】
所定のラダープログラムに対応し、かつ、所定の制御記述言語で記述された制御流れ記述を入力し、入力した前記制御流れ記述を構文解析する構文解析部と、
前記構文解析部による構文解析結果に基づき前記制御流れ記述から工程カテゴリと、前記工程カテゴリにおける前記ラダープログラムの実行によって制御信号を出力するべきデバイスの個数を示す出力点数との組を抽出すると共に、前記構文解析結果に基づき前記制御流れ記述に含まれる各命令と、各命令の使用数とを抽出する抽出処理部と、
前記抽出部の抽出した前記各命令を対応するラダー命令に変換するラダー命令変換部と、
過去に作成されたラダープログラを対象として複数の工程カテゴリの各工程カテゴリごとに、前記ラダープログラムに含まれる命令と、それぞれの前記命令の使用数と、前記出力点数とを含む工程カテゴリ毎ラダー命令数情報と、前記抽出部によって抽出された前記工程カテゴリと出力点数との前記組とに基づいて、前記組ごとに、前記組に含まれるラダー命令と前記ラダー命令ごとの推測使用数とを決定するラダー命令数推定部と、
前記ラダー命令数推定部によって前記組ごとに決定された前記ラダー命令ごとの前記推測使用数（使用数ＴＢＬ）と、前記ラダー命令変換部によって変換されたそれぞれの前記ラダー命令の使用数と、前記抽出部によって抽出された前記組とに基づいて、前記制御流れ記述の元になる前記所定のラダープログラムのスキャンタイムの推定値を算出するスキャンタイム推定値算出部と
を備えたことを特徴とするスキャンタイム見積り装置。
【請求項２】
前記スキャンタイム見積り装置は、さらに、
資産記憶部と、
所定の工程カテゴリと、前記工程カテゴリに対応するラダープログラムとを入力し、入力した前記ラダープログラムから、前記ラダープログラムに含まれる命令と、それぞれの前記命令の命令数と、前記出力点数とを抽出して前記工程カテゴリ毎ラダー命令数情報を生成し、生成した前記工程カテゴリ毎ラダー命令数情報を前記資産記憶部に記憶させる工程カテゴリ毎ラダー命令数情報生成部と
を備えたことを特徴とする請求項１記載のスキャンタイム見積り装置。
【請求項３】
コンピュータを、
所定のラダープログラムに対応し、かつ、所定の制御記述言語で記述された制御流れ記述を入力し、入力した前記制御流れ記述を構文解析する構文解析部、
前記構文解析部による構文解析結果に基づき前記制御流れ記述から工程カテゴリと、前記工程カテゴリにおける前記ラダープログラムの実行によって制御信号を出力するべきデバイスの個数を示す出力点数との組を抽出すると共に、前記構文解析結果に基づき前記制御流れ記述に含まれる各命令と、各命令の使用数とを抽出する抽出処理部、
前記抽出部の抽出した前記各命令を対応するラダー命令に変換するラダー命令変換部、
過去に作成されたラダープログラを対象として複数の工程カテゴリの各工程カテゴリごとに、前記ラダープログラムに含まれる命令と、それぞれの前記命令の使用数と、前記出力点数とを含む工程カテゴリ毎ラダー命令数情報と、前記抽出部によって抽出された前記工程カテゴリと出力点数との前記組とに基づいて、前記組ごとに、前記組に含まれるラダー命令と前記ラダー命令ごとの推測使用数とを決定するラダー命令数推定部、
前記ラダー命令数推定部によって前記組ごとに決定された前記ラダー命令ごとの前記推測使用数（使用数ＴＢＬ）と、前記ラダー命令変換部によって変換されたそれぞれの前記ラダー命令の使用数と、前記抽出部によって抽出された前記組とに基づいて、前記制御流れ記述の元になる前記所定のラダープログラムのスキャンタイムの推定値を算出するスキャンタイム推定値算出部
として機能させることを特徴とするスキャンタイム見積りプログラム。
【請求項４】
請求項３記載のスキャンタイム見積りプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ラダープログラムのスキャンタイムの推定値を算出するスキャンタイム見積り装置に関する。
【背景技術】
【０００２】
従来の処理時間の見積り方式は、電子計算機システムの性能負荷情報を採取する手段と、採取した性能負荷情報を蓄積し統計情報としてまとめる手段と、プログラムを実行したときのプログラム名、性能負荷状況、処理時間等を採取する手段と、処理時間を見積るために今から実行しようとするプログラム名等を端末から等から与える入力手段と、現在までの性能負荷状況および過去に採取された性能負荷の統計情報を基にして今から実行しようとするプログラムが終了するまでの性能負荷状況を見積る手段と、今から実行するプログラムがその見積られた性能負荷状況のときに処理に要した時間を履歴情報より取り出す手段と、取り出した履歴情報を端末等に表示する手段とを有する。この、従来の処理時間の見積り方式は、プログラム実行が開始されて終了するまでの性能負荷状況を過去（例えば一ヶ月前）に採取した統計情報から推測し、その推測した性能情報のときに、そのプログラムが要した処理時間を過去に採取した履歴情報から求めることにより、プログラムの処理時間をより正確に求めることをおこなっていた（例えば、特許文献１）。
【０００３】
また別の従来技術では、機能記述言語で記述されたソースをもとに論理合成する構成要素の算出手段と、過去の実際にソースより論理合成したときの処理時間とそのときの構成要素の数に関する情報を蓄積する手段と、算出された構成要素の数と蓄積された情報に基づいて処理時間を算出手段とを有する処理時間見積装置がある。この処理時間見積装置は、ＬＳＩの設計に必要な処理時間の見積りに関し、これらの手段によって、機能記述言語などで記述されたソースをもとにＬＳＩを設計する際に必要な論理合成に必要な処理時間を構成要素数をもとに過去の実績を参照して推定し、論理合成に要する処理時間を正確に予測し、設計スケジュールの立案を実現すると共に論理合成に使用する環境に合致した処理時間を見積っていた（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３０９１４３号公報
【特許文献２】特開平１１−３１１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の処理時間の見積り方式は、過去に採取した性能負荷状況や論理合成対象の構成要素数に対応する処理時間の統計情報からプログラムの処理時間を見積っていたが、処理時間を見積ることが可能なプログラムは過去に処理時間の統計情報を収集したプログラムのみであった。このため、設計段階で従来技術を用いて製造ラインの生産性能を見積ろうとしても、製造ラインを制御するラダープログラムは製造ラインに用いる機器に応じて異なるものとなってしまうため、統計情報を収集していない開発前のラダープログラムの処理時間を見積ることはできないという課題があった。
【０００６】
この発明は、ラダープログラムを適用する装置の工程カテゴリと装置の出力点数とからラダー命令の命令量を推定することにより、開発前のラダープログラムの処理時間の見積りを可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
この発明のスキャンタイム見積り装置は、
所定のラダープログラムに対応し、かつ、所定の制御記述言語で記述された制御流れ記述を入力し、入力した前記制御流れ記述を構文解析する構文解析部と、
前記構文解析部による構文解析結果に基づき前記制御流れ記述から工程カテゴリと、前記工程カテゴリにおける前記ラダープログラムの実行によって制御信号を出力するべきデバイスの個数を示す出力点数との組を抽出すると共に、前記構文解析結果に基づき前記制御流れ記述に含まれる各命令と、各命令の使用数とを抽出する抽出処理部と、
前記抽出部の抽出した前記各命令を対応するラダー命令に変換するラダー命令変換部と、
過去に作成されたラダープログラを対象として複数の工程カテゴリの各工程カテゴリごとに、前記ラダープログラムに含まれる命令と、それぞれの前記命令の使用数と、前記出力点数とを含む工程カテゴリ毎ラダー命令数情報と、前記抽出部によって抽出された前記工程カテゴリと出力点数との前記組とに基づいて、前記組ごとに、前記組に含まれるラダー命令と前記ラダー命令ごとの推測使用数とを決定するラダー命令数推定部と、
前記ラダー命令数推定部によって前記組ごとに決定された前記ラダー命令ごとの前記推測使用数（使用数ＴＢＬ）と、前記ラダー命令変換部によって変換されたそれぞれの前記ラダー命令の使用数と、前記抽出部によって抽出された前記組とに基づいて、前記制御流れ記述の元になる前記所定のラダープログラムのスキャンタイムの推定値を算出するスキャンタイム推定値算出部と
を備えたことを特徴とする。
【発明の効果】
【０００８】
この発明により、ラダープログラムを適用する装置の工程カテゴリと装置の出力点数とからラダー命令の命令量を推定することにより、開発前のラダープログラムの処理時間の見積りの可能な装置を提供できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるラダープログラムのスキャンタイム見積りシステム１００の構成図。
【図２】実施の形態１におけるＰＬＣでの各処理の実行順序とスキャンタイムとを示す図。
【図３】実施の形態１における制御工程毎に作成された複数のラダープログラムの実行例を示す図。
【図４】実施の形態１におけるラダープログラムの例を示す図。
【図５】実施の形態１におけるラダープログラムでの二重コイルエラーを示す図。
【図６】実施の形態１における工程カテゴリの例を示す表。
【図７】実施の形態１における工程カテゴリ毎ラダー命令数情報を示す図。
【図８】実施の形態１における制御流れ記述に使用される関数を示す表。
【図９】実施の形態１における制御記述言語で書かれた制御流れ記述の例を示す図。
【図１０】実施の形態１における制御記述言語命令とラダー命令との対応例を示す図。
【図１１】実施の形態１におけるＰＬＣ種類ごとのラダー命令の処理時間を示す図。
【図１２】図９の制御流れ記述における成立条件パターンと関数実行シーケンスの例。
【図１３】関数実行シーケンスごとの実行される関数が属する関数カテゴリと実行数の抽出例。
【図１４】関数カテゴリ毎の使用数からラダー命令種類毎の使用数への変換例。
【図１５】実施の形態１におけるラダー命令数推定部８の使用する工程カテゴリと出力点数との対応関係のリスト。
【図１６】実施の形態１における曲線あてはめにより求められた、出力点数とラダー命令数との関係を表す曲線を示す図。
【図１７】実施の形態１におけるラダー命令数推定部８の動作を説明するための図。
【図１８】実施の形態１におけるラダー命令種類ごとの推定使用数を示す使用数テーブル。
【図１９】実施の形態１における工程カテゴリ毎ラダー命令数情報の抽出動作を示すフローチャート。
【図２０】実施の形態１におけるラダープログラムのスキャンタイム見積もり処理を示すフローチャート。
【図２１】実施の形態１におけるラダー命令種類毎ラダー命令数の推定動作を示すフローチャート。
【図２２】実施の形態１におけるスキャンタイムの算出動作を示すフローチャート。
【図２３】実施の形態２におけるスキャンタイム見積りシステム１００のハードウェア構成を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、実施の形態１のラダープログラムのスキャンタイム見積りシステム１００の構成を示す構成図である。図１に示す構成要素の機能は以下の通りである。
（１）スキャンタイム見積り部１は、制御に用いるＰＬＣ機種情報と、制御対象の製造ラインの制御の流れを記述した制御流れ記述とから、スキャンタイムを見積る。
（２）ラダー命令数曲線推定部２は、過去のラダープログラムの資産と、該ラダープログラムが制御する対象の制御工程のカテゴリとから、工程カテゴリごとの出力点数とラダー命令数の関係を推定する。
（３）ＰＬＣ機種情報入力部３は、制御に用いるＰＬＣ機種情報を入力する。
（４）制御流れ記述入力部４は、制御対象の製造ラインの制御の流れを記述した制御流れ記述を入力する。
（５）制御流れ構文解析部５は、制御流れ記述を構文解析し、工程カテゴリ情報と、出力点数情報と、制御記述言語の命令情報と、に分解する。
（６）工程カテゴリ抽出部６は、制御流れ構文解析部からの工程カテゴリ情報から制御工程ごとに工程カテゴリを抽出する。
（７）見積り部側出力点数抽出部７は、制御流れ構文解析部からの出力点数情報から制御工程ごとに出力情報を抽出する。
（８）ラダー命令数推定部８は、工程カテゴリ抽出部からの工程カテゴリに基づき、ラダー命令数曲線推定部に該工程カテゴリでの出力点数とラダー命令数の関係を表すラダー命令数曲線を問い合わせて入手し、該ラダー命令数曲線と見積り部側出力点数抽出部からの出力点数とから該出力点数におけるラダー命令種別ごとの命令数を推定する。
（９）命令実行パターン抽出部９は、制御流れ構文解析部からの制御記述言語の命令情報から、分岐により生じる全ての命令実行の流れのパターンを抽出する。なお、工程カテゴリ抽出部６と、見積り部側出力点数抽出部７と、命令実行パターン抽出部９とは、これらで抽出処理部１２０を構成する。
（１０）対応ラダー命令推定部１０（ラダー命令変換部）は、命令抽出部からの制御記述言語の命令を基に、制御記述言語命令対応ラダー命令情報記憶部から対応するラダー命令を取り出し、制御流れ記述中のラダー命令種類毎のラダー命令数を推定する。
（１１）ラダー命令処理時間計算部１１は、ラダー命令数推定部からの制御工程ごとのラダー命令種類毎のラダー命令数、あるいは、対応ラダー命令推定部からの制御流れ記述中のラダー命令種類毎のラダー命令数と、ＰＬＣ機種情報入力部からのＰＬＣ機種情報と、から、該ＰＬＣ機種でラダープログラムを実行した場合のラダー命令種類毎の処理時間をＰＬＣ機種毎ラダー命令処理時間記憶部から取り出し、ラダー命令数と乗ずることで、制御工程ごとのラダー命令実行時間、あるいは、制御流れ記述中のラダー命令実行時間を計算する。
（１２）ＰＬＣ機種毎ラダー命令処理時間記憶部１２は、ＰＬＣ機種毎にラダー命令種類毎の処理時間を記憶する。
（１３）ラダー命令処理時間加算部１３は、ラダー命令処理時間計算部からの各制御工程のラダー命令実行時間と制御流れ記述中のラダー命令実行時間とを加算することで製造ラインのスキャンタイムを得る。なお、ラダー命令処理時間計算部１１と、ラダー命令処理時間加算部１３とは、スキャンタイム推定値算出部１１０を構成する。
（１４）スキャンタイム出力部１４は、ラダー命令処理時間加算部からの製造ラインのスキャンタイムを出力する。
（１５）制御記述言語命令対応ラダー命令情報記憶部１５は、制御記述言語の命令に対応するラダー命令を記憶する。
（１６）ラダープログラム入力部２０は、過去の工程単位のラダープログラム資産を入力する。
（１７）工程カテゴリ入力部２１は、該過去の工程単位のラダープログラム資産が制御対象とする製造工程のカテゴリを入力する。
（１８）ラダープログラム解析部２２は、ラダープログラム入力部からの該過去の工程単位のラダープログラム資産を解析し、デバイス情報と、ラダー命令情報とに分解する。
（１９）ラダー命令数抽出部２３は、ラダープログラム解析部からのラダー命令情報からラダー命令の種類ごとの命令数を抽出する。
（２０）推定部側出力点数抽出部２４は、ラダープログラム解析部からのデバイス情報から出力点数を抽出する。
（２１）工程カテゴリ毎ラダー命令数情報生成部２５は、工程カテゴリ入力部からの工程カテゴリ情報と、ラダー命令数抽出部からのラダー命令の種類ごとの命令数と、推定部側出力点数抽出部からの出力点数とを紐付けて工程カテゴリ毎ラダー命令数情報を生成する。
（２２）工程カテゴリ毎ラダー命令数情報記憶部２６は、工程カテゴリ毎ラダー命令数情報生成部からの工程カテゴリ毎ラダー命令数情報を記憶する。
（２３）ラダー命令数曲線あてはめ部２７は、ラダー命令数推定部からの工程カテゴリ情報を基に、工程カテゴリ毎ラダー命令数情報記憶部から、該当する工程カテゴリのラダー命令の種類ごとの命令数と出力点数の組み合わせを全て取り出し、例えば最小二乗法などの曲線あてはめ手法を用いて、ラダー命令の種類ごとの命令数と出力点数の間の関係を表すラダー命令数曲線を得る。
次に図１〜図１８を用いて動作について説明する。
【００１１】
まず、図２〜図５を用いてラダープログラムの特徴について説明する。
図２は、ＰＬＣにおける各処理の実行順序とスキャンタイムとの関係を示している。
図２において、ＰＬＣはＲＵＮと呼ばれる実行状態になると、まずプログラムのチェックをおこなう。次にＩ／Ｏリフレッシュと呼ばれる処理において入力信号の値を対応する入力デバイスの値に反映し、また、出力デバイスの値を対応する出力信号の値に反映する。Ｉ／Ｏリフレッシュが完了したら、ラダー命令が先頭から最後まで実行される。ラダー命令実行処理が完了したらＥＮＤ処理と呼ばれる処理でサービス処理や自己診断処理などの付帯処理が行なわれる。ＥＮＤ処理が終了したら、再度Ｉ／Ｏリフレッシュに戻って各処理が繰り返しおこなわれる。Ｉ／ＯリフレッシュからＥＮＤ処理までは１スキャンと呼ばれ、１スキャンの実行時間はスキャンタイムと呼ばれる。
【００１２】
図３は、制御工程毎に作成された複数のラダープログラムの実行例を示す図である。
複数の製造工程から成る製造ラインの場合、製造工程ごとに分割してラダープログラムが作成されることが多い。分割して作成されたラダープログラムがＰＬＣで実行される際には、図３に示すように、ラダー命令実行処理において各製造工程用のラダープログラムが順次実行され、製造ライン全体を一つのラダープログラムで作成した場合と同等の動作となる。
【００１３】
ＰＬＣでラダー命令の演算結果が出力信号の値に反映されるのは、Ｉ／Ｏリフレッシュにおいてであり、各行を実行した直後は出力デバイスの値は対応する出力信号の値には反映されない。
【００１４】
ＰＬＣのラダー命令実行処理においてラダープログラムの各行が先頭から最後の行まで順に実行される。各行の実行においては、左側のラダー命令の演算結果に応じて右端のラダー命令が実行される。
【００１５】
図４は、ラダープログラムの例である。Ｘが先頭に付くデバイスは入力デバイス、Ｍが先頭に付くデバイスはＰＬＣの内部デバイス、Ｙが先頭に付くデバイスは出力デバイスである。
【００１６】
図５は、ラダープログラムにおける二重コイルエラーの例を示す図である。図５を参照して説明する。本例では、例えば一番上の行で、（Ｘ５０デバイスがＯＮ）かつ（（Ｘ１２デバイスがＯＮ）または（Ｍ２１０２デバイスがＯＮ））かつ（Ｍ２１０１デバイスがＯＦＦ）であれば（Ｙ１００デバイスをＯＮ）となる。ＰＬＣで本例のラダープログラムを実行した場合、出力デバイスであるＹ１００デバイスの値は、各行を実行した直後は対応する出力信号の値には反映されず、Ｉ／Ｏリフレッシュにおいて出力信号の値に反映される。このため、図５のように複数の行で同じ出力デバイスに値を書き込んでしまうと、先に出力デバイスに対して書き込んだ結果は出力信号に反映されず、最後に該デバイスに対して書き込んだ結果のみが出力信号に反映されることになり、ラダープログラム開発者が意図した制御とならないことが生じる。ラダープログラムの開発ツールでは、ラダープログラム開発者の意図した制御にならず製造装置が誤動作することを防ぐために、ラダープログラムをＰＬＣの実行コードに変換する際に、複数の行で同じ出力デバイスに値を書き込んでいたら二重コイルエラーとする。
【００１７】
ラダープログラムには上述のような特徴があるため、ラダープログラム中の出力デバイスに対するＯＵＴ命令の数は、原則としてＰＬＣから制御対象の製造ラインへの出力信号の数とほぼ同等となる。ＰＬＣから制御対象の製造ラインへの出力信号は、制御ライン側から見た場合にはＰＬＣにより制御される機器への制御信号である。このため、製造ラインの仕様設計において、各製造工程で使用される機器とその制御信号数が決まると、対応する該製造工程に対するＰＬＣの出力信号数は該制御信号数と同数になる。また、前述のように、該製造工程を制御するラダープログラム中の出力デバイスに対するＯＵＴ命令の数に関しては該出力信号数とほぼ同数と見積ることができる。
【００１８】
次に、図１および図６〜図２２を用いて本方式の動作について説明する。
なお、
図１９は、下記に述べる「Ａ．工程カテゴリ毎ラダー命令数情報の抽出動作」を示すフローチャートである。
図２０は、下記に述べる「Ｂ．ラダープログラムのスキャンタイム見積もり処理」を示すフローチャートである。
図２１は、下記に述べる「Ｃ．ラダー命令種類毎ラダー命令数の推定動作」を示すフローチャートである。
図２２は、下記に述べる「Ｄ．スキャンタイムの算出動作」を示すフローチャートである。
これら図１９〜図２２のフローチャートを参照して、以下の動作を説明する。
【００１９】
（Ａ．ラダープログラム資産からの工程カテゴリ毎ラダー命令数情報の抽出動作）
以下、図１９を参照して説明する。先ず、スキャンタイム見積りのための前処理として、過去に作成されたラダープログラムの資産から工程カテゴリ毎ラダー命令数情報を抽出する動作について説明する。
【００２０】
（入力）
操作者は、あらかじめラダー命令数曲線推定部２に過去に作成されたラダープログラムの資産の情報登録を次の手順でおこなっておく。
（１）Ｓ１０１において、操作者は、ラダープログラム入力部２０に製造工程単位の「ラダープログラム」を入力する。ラダープログラムを入力する際には、インストラクションリスト形式で入力する。
（２）Ｓ１０２において、また、操作者は、該ラダープログラムの「工程カテゴリ」を工程カテゴリ入力部２１に入力する。「工程カテゴリ」は、例えば半導体製造ラインであれば、洗浄工程や蒸着工程などである。
図６は、工程カテゴリの例を示す工程カテゴリテーブル５１である。
（３）Ｓ１０３において、ラダー命令数曲線推定部２では、ラダープログラム解析部２２が、操作者から入力されたインストラクションリスト形式のラダープログラムを解析し、デバイス情報と、ラダー命令情報とに分解する。
（４）Ｓ１０４において、ラダー命令数抽出部２３は、ラダープログラム解析部２２から入力されたラダー命令情報から、ラダー命令の種類ごとに命令数を抽出する。この際、ＯＵＴ命令に関しては、出力デバイスへのＯＵＴ命令、内部デバイスへのＯＵＴ命令、タイマー等の機能デバイスへのＯＵＴ命令に区別して命令数を抽出する。
（５）Ｓ１０５において、推定部側出力点数抽出部２４は、ラダープログラム解析部２２から入力されたデバイス情報から、出力デバイス数を抽出する。出力デバイス数を便宜上、「出力点数」と呼ぶ。
（６）Ｓ１０６において、工程カテゴリ毎ラダー命令数情報生成部２５は、工程カテゴリ入力部２１から入力された工程カテゴリ情報（例えば、蒸着工程などである）と、ラダー命令数抽出部２３から入力されたラダー命令の種類ごとの命令数と、推定部側出力点数抽出部２４から入力された出力点数情報とを結合し、工程カテゴリ毎ラダー命令数情報を生成する。
図７は工程カテゴリ毎ラダー命令数情報５２ａ，５２ｂ，５３ｃ等を示す。なお、工程カテゴリ毎ラダー命令数情報生成部２５は、工程カテゴリごとにラダープログラムが入力されるごとに工程カテゴリ毎ラダー命令数情報３１を生成する。
（７）Ｓ１０７において、工程カテゴリ毎ラダー命令数情報記憶部２６は、工程カテゴリ毎ラダー命令数情報生成部２５から入力された工程カテゴリ毎ラダー命令数情報を記憶する。
（８）以上の手順により、ラダー命令数曲線推定部２は、操作者により入力された過去に作成されたラダープログラムの資産から工程カテゴリ毎ラダー命令数情報を抽出する動作を完了する。
【００２１】
次に、制御対象となる製造ラインを制御するＰＬＣで実行させる、ラダープログラムのスキャンタイム見積り時の動作について説明する。
【００２２】
製造ラインの工程設計や制御機器の配置設計をおこなう上流設計者には、一般的に、ＰＬＣで実行されるラダープログラムに関する知識はない。また、ラダープログラムに関しての基本的な知識がある場合にも、大規模なラダープログラム開発の経験には乏しく、上流設計者にはスキャンタイムを見積れる規模のラダープログラムを記述することは困難である。このため、例えば、Ｃ言語やＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のような、上流設計者にとって身近な記述言語の文法に近い制御記述言語を用いて製造ラインの制御の流れを記述し、該制御流れ記述を基にラダープログラムのスキャンタイム見積りをおこなう。制御流れは、例えば、製造工程＃１に加工対象物（ワーク）が投入され、該ワークの投入をセンサが検知して該製造工程の製造機器が動作を開始するような場合に、該センサ値に対応するＰＬＣの入力デバイスを制御の流れとして記述する。
図８は、制御流れ記述に使用する関数を示した制御流れ記述テーブル５３である。
図９は制御流れの記述例５４である。すなわち図９は、Ｃ言語ライクな制御記述言語を用いて製造ラインの制御の流れを記述した例である。本例ではＣ言語ライクな制御記述言語を用いているが、ＵＭＬライクな制御記述言語によりグラフィカルに記述しても良い。
【００２３】
図１０は、Ｃ言語ライクな制御記述言語における命令（関数カテゴリ）と該命令に対応するラダー命令とを対比した対比テーブル５５ある。Ｃ言語ライクな制御記述言語では、Ｃ言語と同様にｉｆ命令またはｉｆ〜ｅｌｓｅ命令を用いることにより条件分岐を記述する。繰り返し処理に関しては、ラダープログラムはスキャン実行により繰り返し処理される特徴を持つものなので条件分岐で代用する。Ｃ言語ライクな制御記述言語では、例えば、ｅｘｅｃＰｒｏｃｅｓｓ（工程カテゴリ名、出力点数）；のような工程実行命令により、製造ラインの制御の流れの中で各制御工程に対応するラダープログラムを実行する場合の、該制御工程の属する工程カテゴリと、該制御工程で使用される製造機器へのＰＬＣからの出力点数を指定する。該工程カテゴリは、過去に作成されたラダープログラムの資産から工程カテゴリ毎ラダー命令数情報を抽出する際に入力する工程カテゴリである。該工程カテゴリには、過去に作成されたラダープログラムの資産から工程カテゴリ毎ラダー命令数情報を抽出した際に用いたことのある工程カテゴリのみを指定でき、未知の工程カテゴリは指定できない。
【００２４】
（Ｂ．ラダープログラムのスキャンタイムの見積もり処理）
以下、図２０を参照して、ラダープログラムのスキャンタイムの見積もり処理を説明する。
（１）Ｓ２０１において、上流設計者は、制御記述言語を用いて作成した制御流れ記述を、制御流れ記述入力部４に入力する。
（２）Ｓ２０２において、また、ＰＬＣの性能によってラダー命令の実行時間に差があるため、ＰＬＣの機種情報をＰＬＣ機種情報入力部３に入力する。
図１１は、ＰＬＣの機種情報５６を示す図である。入力されたＰＬＣの機種情報５６は、ＰＬＣ機種情報入力部３がＰＬＣ機種毎ラダー命令処理時間記憶部１２に格納する。
（３）Ｓ２０３において、制御流れ構文解析部５は、制御流れ記述入力部４から「制御流れ記述」を入力され、制御記述言語の各命令に分解する
（４）Ｓ２０４において、命令実行パターン抽出部９は、制御流れ構文解析部５から制御記述言語の各命令を入力され、
（ａ）制御流れ記述中の条件分岐による全ての条件成立パターンとそのパターンでの関数実行シーケンス、及び、関数実行シーケンスごとの実行される関数が属するカテゴリとその実行数を抽出する。
（ｂ）そして、条件成立パターン毎の制御記述言語の命令種類とその命令数を抽出する。（ａ）の処理では、先ず、制御流れ記述中の分岐命令（ｉｆ，ｅｌｓｅ）の条件成立のパターンを抽出し，それぞれの条件成立パターンでの関数実行シーケンスを求める。
図１２は、図９の記述流れ対して、条件成立パターン５７ａ，５７ｂ・・・５７ｎに関して、成立条件とその成立条件における関数実行シーケンスを抽出した状態を示す図である。
次に，命令実行パターン抽出部９は、各関数実行シーケンスにおける実行される関数が属する関数カテゴリと実行数を抽出する。工程実行処理（ｅｘｅｃＰｒｏｃｅｓｓ）に関しては引数のリストを抽出する。
図１３は、図１２の条件成立パターン５７ａについて、関数カテゴリと実行数、及び工程実行処理を抽出した抽出結果６１を示している。上記（ｂ）で述べたように、条件成立パターン毎の制御記述言語の命令種類とその命令数を抽出する。
【００２５】
次に、対応ラダー命令推定部１０は、制御記述言語命令対応ラダー命令情報記憶部１５に格納されている関数カテゴリとラダー命令種類の対応情報（図１０）を用いて、ラダー命令種類ごとの使用数に変換する。
図１４は、図１３の抽出結果６１を、ラダー命令種類ごとの使用数に変換した変換結果７１を示している。
図１４の変換結果７１は、対応ラダー命令推定部１０が、関数カテゴリとラダー命令種類の対応情報を用いて、図１３の抽出結果６１を変換した場合を示している。
（５）Ｓ２０５において、工程カテゴリ抽出部６は、制御流れ構文解析部５から工程実行命令を入力され、該工程実行命令の引数として与えられた工程カテゴリを抽出する。
（６）Ｓ２０６において、見積り部側出力点数抽出部７は、制御流れ構文解析部５から工程実行命令を入力され、該工程実行命令の引数として与えられた出力点数を抽出する。
（７）Ｓ２０７において、ラダー命令数推定部８は、工程カテゴリ抽出部６からの工程カテゴリと、見積り部側出力点数抽出部７からの出力点数を入力される。
図１５は、ラダー命令数推定部８が工程カテゴリ抽出部６からの工程カテゴリと、見積り部側出力点数抽出部７からの出力点数とをまとめたリスト８１である。
すなわち、工程カテゴリ抽出部６、見積り部側出力点数抽出部７及びラダー命令数推定部８の処理により，制御流れ記述中の全てのｅｘｅｃＰｒｏｃｅｓｓ関数を抽出し，該関数に引数で指定されている工程カテゴリＩＤと入力信号数との組からなるデータをリスト化してリスト８１を生成する。この際，同一の組み合わせがある場合にはリスト８１には１つの組のみを加える。
【００２６】
（Ｃ．ラダー命令種類毎ラダー命令数の推定の動作）
次に、図２１を参照して、ラダー命令数推定部８による、工程実行命令の引数で指定された工程カテゴリと出力点数に基づく、ラダー命令種類毎のラダー命令数の推定手段について説明する。
本処理では、ラダー命令数推定部８によって生成された工程カテゴリＩＤと入力信号数との組のリスト８１と、工程カテゴリ毎ラダー命令数情報記憶部２６に格納された工程カテゴリ毎ラダー命令数情報とから、工程処理実行（ｅｘｅｃＰｒｏｃｅｓｓ）ごとに使用されるラダー命令種類と使用数とを推定する（後述の図１８）。
【００２７】
（１）Ｓ３０１において、ラダー命令数推定部８は先ず、工程カテゴリをラダー命令数曲線推定部２のラダー命令数曲線あてはめ部２７に入力する。
（２）Ｓ３０２において、ラダー命令数曲線あてはめ部２７は、ラダー命令数推定部８から入力された工程カテゴリをキーにして、工程カテゴリ毎ラダー命令数情報記憶部２６から、同じ工程カテゴリの工程カテゴリ毎ラダー命令情報をすべて抽出する。
（３）Ｓ３０３において、ラダー命令数曲線あてはめ部２７は、例えば最小二乗法などの曲線あてはめ手段を用い、図１６に例を示すような出力点数とラダー命令数との関係を表すラダー命令数曲線を、ラダー命令の種類ごとに生成する。
すなわち、ラダー命令数曲線あてはめ部２７は、工程カテゴリＩＤを検索キーにして、工程カテゴリ毎ラダー数情報（図７）から、同一工程カテゴリに対する、出力信号数とラダー命令種類毎の使用数をとりだす。
次に、ラダー命令数曲線あてはめ部２７は、ラダー命令種類ごとに、出力信号数（出力点数）をＸ座標（横軸）、その命令の使用数をＹ座標（縦軸）として２次元空間上にマッピングする。
図１６は、ある工程カテゴリの、ある命令に関するラダー命令数曲線である。
ラダー命令数曲線あてはめ部２７は、同一工程カテゴリについて、命令毎に図１６のラダー命令数曲線を作成する。
図１６の黒丸の一つ一つは、図７に示した工程カテゴリ毎ラダー数情報３１ａ，３１等に対応する。つまり工程カテゴリ毎ラダー数情報３１ａは一つの黒丸に対応する。
（４）Ｓ３０４においてラダー命令数推定部８は、ラダー命令数曲線あてはめ部２７から、ラダー命令の種類ごとのラダー命令数曲線を入力され、見積り部側出力点数抽出部７から入力された出力点数と該ラダー命令数曲線とから、ラダー命令の種類ごとに該出力点数におけるラダー命令数を得る。
図１７は、出力点数を工程実行命令（５、１２）の「場合の例を示している。すなわち図１７は、「工程カテゴリＩＤ＝５」、「出力点数＝１２」の場合について、命令１〜命令３のラダー命令数を推測する状況を示している。なお、ラダー命令数推定部８は、図１５の（６、３２）、（５、１２）、（８、８）、（６、１０）の各場合について処理を実行する。図１７は、例示として（５、１２）の場合を示した。ラダー命令数推定部８は、ラダー命令数曲線曲線から、入力信号数（ＰＬＣから見た場合は出力信号数）をＸ座標とした場合の該曲線のＹ座標の値を求め、その値を、ラダー命令使用数とする。
（５）Ｓ３０５において、ラダー命令数推定部８は、工程実行命令の引数で指定された工程カテゴリと出力点数（図１３の（ｂ））に基づき、ラダー命令種類毎のラダー命令数を推定する。該手順を制御流れ記述に記述された工程実行命令ごとに繰り返し、工程実行命令毎ラダー命令数情報を生成する。
このように、ラダー命令数推定部８は、同一の工程カテゴリにおういて、同様の処理を全てのラダー命令種類において繰り返して、工程カテゴリＩＤと入力信号数の組ごとに、ラダー命令種類ごとの使用数を推定する。
図１８は、ラダー命令数推定部８によって推定されたラダー命令種類ごとの使用数テーブル９１ａ（工程カテゴリＩＤ＝６，入力信号数＝３２の場合），９１ｂ（工程カテゴリＩＤ＝５，入力信号数＝１２の場合），９１ｃ（工程カテゴリＩＤ＝６，入力信号数＝１０の場合）を示す図である。図１６、図１７で説明したラダー命令数推定処理により、それぞれの工程実行処理ごとの使用数テーブル９１が得られる。図１８は、図１４の変換結果７１に対応して、使用数テーブル９１ａ〜９１ｃが得られた場合を示した。
【００２８】
（Ｄ．スキャンタイムの算出動作）
以下、図２２を参照して、スキャンタイムの算出動作を説明する。本処理は、ラダー命令処理時間計算部１１と、ラダー命令処理時間加算部１３との協同処理である。ラダー命令処理時間計算部１１とラダー命令処理時間加算部１３とはスキャンタイムの推定値を算出するスキャンタイム推定値算出部１１０を構成する。
（１）Ｓ４０１において、対応ラダー命令推定部１０は、Ｓ２０４述べた処理を実行する。わかりやすさのため、Ｓ４０１の動作は、上記Ｓ２０４の中で説明した。
（２）Ｓ４０２において、スキャンタイム推定値算出部１１０は、対応ラダー命令推定部１０から制御記述言語の命令種類ごとの対応するラダー命令（図１４の変換結果７１）を入力し、ラダー命令数推定部８から工程実行命令毎ラダー命令数情報（図１８の使用数テーブル）を入力し、ＰＬＣ機種情報入力部３に入力されたＰＬＣ機種情報（図１１）を入力する。スキャンタイム推定値算出部１１０は、ＰＬＣ機種情報をキーに、ＰＬＣ機種毎ラダー命令処理時間記憶部１２に格納された、例えば図１１に示すようなＰＬＣ機種毎のラダー命令種類の実行時間情報から、対応するラダー命令種類ごとの実行時間情報を得る。
（３）Ｓ４０３において、スキャンタイム推定値算出部１１０は、対応ラダー命令推定部１０が変換した条件成立パターンごとのラダー命令種類とその使用数に、それぞれのラダー命令種類毎の推定使用数を加算する。ここで加算するラダー命令種類毎の推定使用数は、図１８に示した使用数テーブル９１の値を用いる。
【００２９】
具体的に説明する。
対応ラダー命令推定部１０が変換した条件成立パターンの変換結果は、図１４の変換結果７１とする。まず、図１４の工程実行処理（６、３２）、（５、１２）、（６、１０）のそれぞれについて、図１８に示すように、ラダー命令数推定部８によって使用数テーブル９１ａ〜９１ｃが取得されている。スキャンタイム推定値算出部１１０は、変換結果７１について、［接点命令］、［比較命令］・・・の順に加算をしていく。
例えば［接点命令］については、
変換結果７１自体に「６」とあり、
工程実行処理（５、１２）に対応する使用数テーブル９１ａには３２０とあり、
工程実行処理（６、３２）に対応する使用数テーブル９１ｂには２８０とあるものとし、
工程実行処理（６、１０）に対応する使用数テーブル９１ｃには１２０とあるものとする。
以上により、変換結果７１の［ビット比較］の使用命令数は、
［ビット比較］＝６＋３２０＋２８０＋１２０＝７２６
である。使用数テーブルにその命令が無い場合は、加算値は０（ゼロ）である。
また、変換結果７１に命令がなく、使用数テーブルにのみ命令が存在する場合は、使用数テーブルの命令数が加算される。例えば「パルス命令」は、変換結果７１には存在しない。
一方、
工程実行処理（５、１２）に対応する使用数テーブル９１ａには３５とあり、
工程実行処理（６、３２）に対応する使用数テーブル９１ｂには２２とあるものとし、
工程実行処理（６、１０）に対応する使用数テーブル９１ｃには３３とあるものとする。
この場合、「パルス命令」の数は、次のように、
［パルス命令］＝３５＋２２＋３３＝９０
となる。
スキャンタイム推定値算出部１１０は、以上の処理を変換結果７１と使用数テーブルに存在する命令、変換結果７１にのみ存在する命令、使用数テーブルにのみ存在する命令のそれぞれについて実施する。
（４）Ｓ４０４において、スキャンタイム推定値算出部１１０は、Ｓ４０２で入力されたＰＬＣ情報を検索キーとして、ＰＬＣ機種毎ラダー命令処理時間記憶部１２に格納された、例えば図１１に示すＰＬＣ機種毎（ＰＬＣ＃１、ＰＬＣ＃２・・・）のラダー命令種類の実行時間情報から、対応するラダー命令種類ごとの実行時間情報を取得する。
（５）Ｓ４０５において、スキャンタイム推定値算出部１１０は、ラダー命令種類ごとに、使用数と、取得した前記実行時間情報におけるその命令の実行時間とを掛け算してラダー命令種類ごとの実行時間を求め、全てのラダー命令種類ごとの実行時間を足し合わせることで、見積対象であるラダープログラムのスキャンタイム推定値を算出する。
【００３０】
以上のように、スキャンタイム見積りのための前処理として、過去に作成されたラダープログラムの資産から工程カテゴリ毎ラダー命令数情報を抽出しておき、
上流設計者が、例えばＣ言語やＵＭＬのような上流設計者に身近な記述言語の文法に近い制御記述言語を用いて製造ラインの制御の流れを記述し、
該制御流れ記述と、
製造ラインの制御に用いるＰＬＣ機種情報とから、
命令実行パターンと、
命令実行パターン毎のラダー命令種類とその数と、
製造工程ごとのラダー命令種類とその数とを推定し、
該ＰＬＣ機種におけるラダー命令種類ごとの実行時間を求めて、
命令実行パターン毎にラダー命令の実行時間を加算してスキャンタイム推定値を求めるようにしているので、
製造ラインのスキャンタイムを開発前に見積ることができる。
【００３１】
実施の形態２．
実施の形態２は、スキャンタイム見積りシステム１００（スキャンタイム見積り装置。）のハードウェア資源を説明する。
図２３は、スキャンタイム見積りシステム１００のハードウェア資源の一例を示す図である。図２３を参照してコンピュータであるスキャンタイム見積りシステム１００のハードウェア構成を説明する。
【００３２】
スキャンタイム見積りシステム１００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００３３】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、「記憶装置」あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３などは、出力部、出力装置の一例である。
【００３４】
通信ボード８１６は、ネットワークに接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００３５】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００３６】
上記プログラム群８２３には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００３７】
ファイル群８２４には、以上の実施の形態の説明において、「ＰＬＣ機種毎ラダー命令処理時間」、「制御記述言語命令対応ラダー命令情報」、「工程カテゴリ毎ラダー命令数情報」として説明した情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００３８】
また、以上に述べた実施の形態の説明において、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００３９】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
【００４０】
以上の実施の形態では、スキャンタイム見積りシステム１００を説明したが、スキャンタイム見積りシステム１００の動作をコンピュータに実行させるプログラムとして把握することも可能である。あるいは、プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。さらに、これらの動作を方法として把握することも可能である。
【００４１】
以上の実施の形態では、
製造ラインの制御をおこなうためにプログラマブルロジックコントローラ（以下、ＰＬＣ）で動作するラダープログラムのスキャンタイムを開発前に見積る情報処理システムであって、
該情報処理システムは、
ＰＬＣ機種情報入力部と、制御流れ記述入力部と、スキャンタイム見積り部と、スキャンタイム出力部と、工程カテゴリ入力部と、ラダープログラム入力部と、ラダー命令数曲線推定部とを備え、
該スキャンタイム見積り部は、
制御流れ構文解析部と、工程カテゴリ抽出部と、見積り部側出力点数抽出部と、命令実行パターン抽出部と、対応ラダー命令推定部と、制御記述言語命令対応ラダー命令情報記憶部と、ラダー命令数推定部と、ＰＬＣ機種毎ラダー命令処理時間記憶部と、ラダー命令処理時間計算部と、ラダー命令処理時間加算部とを備え、
該ラダー命令数曲線推定部は、
ラダープログラム解析部と、ラダー命令数抽出部と、推定部側出力点数抽出部と、工程カテゴリ毎命令数情報生成部と、工程カテゴリ毎命令数情報記憶部と、命令数曲線あてはめ部とを備えることを備え、
過去のラダープログラム資産とその制御対象である工程のカテゴリとから、ラダープログラムに含まれるラダー命令の命令数と出力点数とを抽出し、該工程のカテゴリと該ラダー命令数と該出力点数とを紐付けた工程カテゴリ毎ラダー命令数情報を工程カテゴリ毎ラダー命令数情報記憶部にあらかじめ蓄積しておき、
新たに構築する製造ラインを制御するラダープログラムのスキャンタイムを見積る際には、該製造ラインを製造対象のワークへの工程に分け、該工程が実行される分岐条件または繰り返し条件と該条件で用いられるＰＬＣデバイス値が変化する場合の代入文と、該工程のカテゴリと、該工程の制御に用いる装置の出力点数を基に制御流れを記述し、ラダープログラムを動作させるＰＬＣ機種情報と共にスキャンタイム見積り部に入力し、
スキャンタイム見積り部は、
該制御流れを構文解析して工程ごとのカテゴリと出力点数と、工程実行の条件と条件で用いられるＰＬＣデバイス値への代入文とを抽出し、
工程カテゴリ毎ラダー命令数情報記憶部から蓄積されている該カテゴリの工程カテゴリ毎ラダー命令数情報を取り出し、曲線当てはめにより出力点数ごとのラダー命令数の導出関数を推定し、
制御流れから抽出した出力点数と該導出関数から工程のラダー命令種別ごとのラダー命令数を推定し、また、
該工程実行の条件と条件で用いられるＰＬＣデバイス値への代入文から、それらがラダー命令での書かれた場合の対応するラダー命令種別ごとのラダー命令数を推定し、該ＰＬＣ機種情報に基づきＰＬＣ機種毎ラダー命令処理時間部からラダー命令種別毎のラダー命令処理時間を取り出し、
該ラダー命令種別毎のラダー命令処理時間と該ラダー命令種別ごとのラダー命令数とからラダー命令処理時間を計算し、全ての工程のラダー命令処理時間を加算して、
スキャンタイムを見積ることを特徴とするラダープログラムのスキャンタイム見積りシステムを説明した。
【符号の説明】
【００４２】
１００  スキャンタイム見積りシステム、１１０  スキャンタイム推定値算出部、１  スキャンタイム見積り部、２  ラダー命令数曲線推定部、３  ＰＬＣ機種情報入力部、４  制御流れ記述入力部、５  制御流れ構文解析部、６  工程カテゴリ抽出部、７  見積り部側出力点数抽出部、８  ラダー命令数推定部、９  命令実行パターン抽出部、１０  対応ラダー命令推定部、１１  ラダー命令処理時間計算部、１２  ＰＬＣ機種毎ラダー命令処理時間記憶部、１３  ラダー命令処理時間加算部、１４  スキャンタイム出力部、１５  制御記述言語命令対応ラダー命令情報記憶部、２０  ラダープログラム入力部、２１  工程カテゴリ入力部、２２  ラダープログラム解析部、２３  ラダー命令数抽出部、２４  推定部側出力点数抽出部、２５  工程カテゴリ毎ラダー命令数情報生成部、２６  工程カテゴリ毎ラダー命令数情報記憶部、２７  ラダー命令数曲線あてはめ部、７１  変換結果、９１ａ，９１ｂ，９１ｃ  使用数テーブル。
【図１】
2012083934.tif 000003
【図２】
2012083934.tif 000004
【図３】
2012083934.tif 000005
【図４】
2012083934.tif 000006
【図５】
2012083934.tif 000007
【図６】
2012083934.tif 000008
【図７】
2012083934.tif 000009
【図８】
2012083934.tif 000010
【図９】
2012083934.tif 000011
【図１０】
2012083934.tif 000012
【図１１】
2012083934.tif 000013
【図１２】
2012083934.tif 000014
【図１３】
2012083934.tif 000015
【図１４】
2012083934.tif 000016
【図１５】
2012083934.tif 000017
【図１６】
2012083934.tif 000018
【図１７】
2012083934.tif 000019
【図１８】
2012083934.tif 000020
【図１９】
2012083934.tif 000021
【図２０】
2012083934.tif 000022
【図２１】
2012083934.tif 000023
【図２２】
2012083934.tif 000024
【図２３】
2012083934.tif 000025