(57)【要約】【課題】  複数のシーケンスプログラムの実行時間の割合を所望する条件に沿うように自動調整できるプログラマブルコントローラを得る。【解決手段】  予め設定されている実行割合で各シーケンスプログラムを実行し、各プログラムの実行時間を測定する(100)。測定された各シーケンスプログラムの実行時間を合計し(101)、この合計時間を満たす最小実行周期数を算出する(102)。この最小周期数での各実行周期における必要実行時間を各プログラム毎に求める(103)。この必要実行時間に基づいて実行周期における各プログラムの実行割合を算出し設定する(104,105)。これにより、複数のシーケンスプログラムは同一スキャンタイムでそのプログラム１回の処理を終了することができる。また、設定した目標スキャンタイム又は目標スキャンタイム比率になるように実行周期の時間割合を各シーケンスプログラムに割り当てることもできる。【選択図】          図２
2005056196.tif 000002
【特許請求の範囲】
【請求項１】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、
前記複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、
該測定手段で測定された各々のシーケンスプログラムの実行時間に基づき、各シーケンスプログラムのスキャンタイムが同一となるように、１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段と、
該実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項２】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、
各シーケンスプログラムの各々の目標スキャンタイムを設定入力する手段と、
前記複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、
前記入力された各々の目標スキャンタイムと前記測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段と、
該実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項３】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、
各シーケンスプログラムの目標スキャンタイム比率を設定入力する手段と、
前記複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、
前記入力された目標スキャンタイム比率と前記測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段と、
該実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項４】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、
前記複数のシーケンスプログラムの各々ステップ数を求める手段と、
前記求められた各シーケンスプログラムのステップ数に応じた比率で１実行周期内の各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段と、
該実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項５】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、
前記複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、
実行時間割合を調整するための条件を入力する条件入力手段と、
前記入力された条件とさらには前記測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段と、
該実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項６】
前記条件入力手段は、各シーケンスプログラムの１回の実行が終了するスキャンタイムを同一にする、各シーケンスプログラムの目標スキャンタイムを設定し該目標スキャンタイムにする、各シーケンスプログラムの目標スキャンタイム比率を設定し該目標スキャンタイム比率にする、各シーケンスプログラムのステップ数の比率に応じた１実行周期内の実行時間割合にする、とのいずれかの条件を選択入力するものである請求項５に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムを実行するプログラマブルコントローラに関する。
【背景技術】
【０００２】
プログラマブルコントローラは、シーケンスプログラムを実行することで、数値制御装置の数値制御部の制御（Ｍ機能、Ｔ機能）、及び機械の周辺機器（ワークローダー、自動工具交換装置（ＡＴＣ））などの制御を行っている。  
近年、機械の高機能化が進み、機械システムに新たな周辺機器を追加する場合があり、この場合、追加した周辺機器を制御する制御プログラムをプログラマブルコントローラのシーケンスプログラムに追加する場合が多い。又、機械を自動化するためにその制御プログラムをシーケンスプログラムに追加する場合もある。その結果、プログラマブルコントローラが実行するシーケンスプログラムが多くなり、その保守、管理が困難になってきている。
【０００３】
この問題を解決する方法として、近年では、機械の基本部分を制御するシーケンスプログラムと、追加周辺機器を制御するためのシーケンスプログラムを別々に作成し、これらの複数のシーケンスプログラムをプログラマブルコントローラのプロセッサが順番に切り替えながら、少しずつ実行して見かけ上シーケンスプログラムを並行して実行するようにして、シーケンスプログラムの保守性を容易にする方法が取られている。
【０００４】
複数のシーケンスプログラムを並行に実行させる方法としては、予め決められた実行時間の割合を設定し、この設定割合に基づいて各シーケンスプログラムを実行させている。本願発明に関係し、この実行時間の割合を自動的に変更するようなプログラマブルコントローラは知られておらず、公知文献もない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
予め決められた実行時間の割合で複数のシーケンスプログラムを並行に実行した場合、数値制御部のシーケンスプログラムの実行時間の割合と周辺機器のシーケンスプログラムの実行時間の割合の比率が不適切であると、シーケンスプログラムの全体の動作が不効率となる場合がある。
そこで、本発明の目的は、複数のシーケンスプログラムの実行時間の割合を所望する条件に沿うように自動調整できるプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００６】
複数のシーケンスプログラムを１実行周期内の予め決められた時間割合で順次繰り返して実行するプログラマブルコントローラにおいて、請求項１に係わる発明は、複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、該測定手段で測定された各々のシーケンスプログラムの実行時間に基づき、各シーケンスプログラムのスキャンタイムが同一となるように、１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段とを設け、この実行時間割合算出手段で求められ設定された実行時間割合に基づき複数のシーケンスプログラムを実行するようにした。  
又、請求項２に係わる発明は、各シーケンスプログラムの各々の目標スキャンタイムを設定入力する手段と、複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、入力された各々の目標スキャンタイムと測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段とを設け、この実行時間割合算出手段で求められ設定された実行時間割合に基づき複数のシーケンスプログラムを実行するようにした。
【０００７】
請求項３に係わる発明は、各シーケンスプログラムの目標スキャンタイム比率を設定入力する手段と、複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、入力された目標スキャンタイム比率と測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段とを設け、この実行時間割合算出手段で求められ設定された実行時間割合に基づき複数のシーケンスプログラムを実行するようにした。  
又、請求項４に係わる発明は、複数のシーケンスプログラムの各々ステップ数を求める手段と、求められた各シーケンスプログラムのステップ数に応じた比率で１実行周期内の各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段とを設け、この実行時間割合算出手段で求められ設定された実行時間割合に基づき複数のシーケンスプログラムを実行するようにした。
【０００８】
さらに、請求項５に係わる発明は、複数のシーケンスプログラムの各々の実行時間を測定する測定手段と、実行時間割合を調整するための条件を入力する条件入力手段と、入力された条件とさらには前記測定手段で測定された各々のシーケンスプログラムの実行時間に基づき１実行周期内に実行される各シーケンスプログラムの実行時間割合を求め設定する実行時間割合算出手段とを設け、この実行時間割合算出手段で求められ設定された実行時間割合に基づき前記複数のシーケンスプログラムを実行するようにした。そして、請求項６に係わる発明は、この条件入力手段を、各シーケンスプログラムの１回の実行が終了するスキャンタイムを同一にする、各シーケンスプログラムの目標スキャンタイムを設定し該目標スキャンタイムにする、各シーケンスプログラムの目標スキャンタイム比率を設定し該目標スキャンタイム比率にする、各シーケンスプログラムのステップ数の比率に応じた１実行周期内の実行時間割合にする、とのいずれかの条件を選択入力するものとした。
【発明の効果】
【０００９】
本発明は、所望する条件に合致するように実行周期における各シーケンスプログラムの実行時間の割合が自動的に求められ決定されるので、シーケンスプログラムを効率よく実行することができる。また、周辺機器等が追加されシーケンスプログラムが増加しても、各シーケンスプログラムの所望する最適の実行時間の割合を得ることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の各実施形態を構成するプログラマブルコントローラの要部ブロック図である。プログラマブルコントローラ１０には、シーケンス制御を実行するプロセッサ１１、制御ソフトウェアが格納されたＲＡＭ１２、不揮発性ＲＡＭ等で構成されたシーケンスプログラムを記憶するプログラムメモリ１３、ＤＩ／ＤＯ信号（入出力信号）を記憶する信号メモリ１４及びワークＲＡＭがバス２０で接続されている。さらに、処理時間等を計時するためのタイマ１６、入出力機器に接続されるＩ／Ｏインタフェース１７、液晶又はＣＲＴ等で構成される表示器１８、及びキーボード等のデータや指令を入力するための入力機器１９もバス２０に接続されている。なお、数値制御装置に設けられ数値制御部とバス２０で接続されたプログラマブルコントローラ１０の場合には、表示器１８及び入力機器１９は、数値制御部に設けられた表示器、入力機器で兼用されており、プログラマブルコントローラ１０に設ける必要はない。
【００１１】
上述したプログラマブルコントローラ１０のハードウェア構成は従来のプログラマブルコントローラと差異はなく、制御ソフトウェア用のＲＡＭ１２にシーケンスプログラムを実行する１実行周期内における各シーケンスプログラムの実行時間割合を調整するソフトウェアが格納されている点で従来プログラマブルコントローラと相違している。  
そして、本実施形態においては、プログラムメモリ１３には、複数のシーケンスプログラムが格納されており、信号メモリ１４は、各シーケンスプログラム毎に入力信号、出力信号を記憶するＤＩ／ＤＯ信号テーブル等が設けられている。また、ワークＲＡＭ１５には、各シーケンスプログラム毎のスキャンタイム（シーケンスプログラムを１回実行するのに要する時間）、各シーケンスプログラムを実行する１実行周期における各シーケンスプログラムの実行時間割合等が記憶されるようになっている。
【００１２】
図２は、本発明の第１の実施形態のプログラマブルコントローラ１０におけるプロセッサ１１が実行する実行時間割合調整処理のフローチャートであり、図３は、この第１の実施形態における実行時間割合調整処理の説明図である。なお、第１の実施形態は、実行する複数のシーケンスプログラムが同一スキャンタイムになるように調整するものである。
【００１３】
プログラマブルコントローラ１０は、シーケンスプログラムが設定された数に応じて、自動的に１実行周期を等分割して各シーケンスプログラムの１実行時間とする。すなわち実行時間割合を設定された複数のシーケンスプログラムに対して同一割合にする。また、作業者が各シーケンスプログラムに対して、それぞれ実行時間を設定入力することによって、各シーケンスプログラムの実行割合を設定されている。
【００１４】
図３（ａ）は、３つのシーケンスプログラムＡ，Ｂ，Ｃが設定されているときの例をとって説明するスキャンタイムを同一にする自動調整の説明図である。自動調整前における各シーケンスプログラムＡ，Ｂ，Ｃのスキャンタイムが２４ｍｓ，１６ｍｓ，８ｍｓであり、１実行周期の実行割合は、同一として８ｍｓの１実行周期時間が３３％ずつに分割され、それぞれシーケンスプログラムＡ，Ｂ，Ｃが実行されるように自動調節前は設定されている。
【００１５】
そこで、本第１の実施形態は、スキャンタイムを同一にする調整指令を入力機器１９より指令することによって、プロセッサ１１は、図２の処理を開始する。  
まず、各シーケンスプログラムＡ，Ｂ，Ｃをこの予め設定された実行割合で実行し、各シーケンスプログラムＡ，Ｂ，Ｃの実実行時間を測定する（ステップ１００）。図３（ｂ）〜（ｄ）は、各シーケンスプログラムの実行時間測定の説明図である。図３（ｂ）は、シーケンスプログラムＡの実行時間測定で、このシーケンスプログラムＡは、スキャンタイムが２４ｍｓで、３実行周期で１回のシーケンスプログラムの処理を終了する。そして測定結果が、第１回、第２回の実行周期では、割り当てられた実行周期の１／３周期に対応する２．６ｍｓの間、処理を実行し、第３回の実行周期では２．１ｍｓの間、処理を実行していることが測定され、合計７．３ｍｓの実実行時間であることが測定されたとする。
【００１６】
又、図３（ｃ）は、シーケンスプログラムＢの実実行時間測定の説明図であり、このシーケンスプログラムＢはスキャンタイムが１６ｍｓで２実行周期で実行されるもので、１回目の実行周期では、２．６ｍｓ、２回目の実行周期では２．４ｍｓが測定され、合計５．０ｍｓの実実行時間が測定されたとする。又、シーケンスプログラムＣに対しては、図３（ｄ）に示すようにスキャンタイムが８ｍｓで１実行周期であり、実実行時間は２．５ｍｓが測定されたとする。
【００１７】
こうして測定された各シーケンスプログラムの実実行時間の合計したトータルの実行時間を算出する（ステップ１０１）。図３の例では、
トータルの実行時間＝７．３ｍｓ＋５．０ｍｓ＋２．５ｍｓ＝１４．８ｍｓ
次にこのトータルの実行時間を、実行周期の時間で割り小数点以下を切り上げて、トータルの実行時間を満たす最小実行周期数を求める（ステップ１０２）。図３の例では、
トータルの実行時間／１実行周期の時間＝１４．８ｍｓ／８ｍｓ＝１．８５→２
こうして求めた最小実行周期数で各シーケンスプログラムの測定実行時間を除し、１実行周期における実行時間を各シーケンスプログラム毎に求める（ステップ１０３）。図３の例では、
シーケンスプログラムＡ＝７．３ｍｓ／２＝３．６５ｍｓ
シーケンスプログラムＢ＝５．０ｍｓ／２＝２．５ｍｓ
シーケンスプログラムＣ＝２．５ｍｓ／２＝１．２５ｍｓ
求めた各シーケンスプログラムの１実行周期における実行時間を１実行周期の時間で除し、各シーケンスプログラムの実行割合を求める（ステップ１０４）。図３の例では、
シーケンスプログラムＡ＝３．６５ｍｓ／８ｍｓ＝４６％
シーケンスプログラムＢ＝２．５ｍｓ／８ｍｓ＝３１％
シーケンスプログラムＣ＝１．２５ｍｓ／８ｍｓ＝１６％
求めた設定割合を設定して（ステップ１０５）、この自動調整処理は終了する。以上のようにして、入力されているシーケンスプログラムのスキャンタイムは全て同一になるように調整される。図３に示した例では、図３（ｅ）に示すように、各シーケンスプログラムＡ，Ｂ，Ｃはスキャンタイムが１６ｍｓで２実行周期で各シーケンスプログラムＡ，Ｂ，Ｃが１回のシーケンス処理を終了するように、１実行周期の４６％をシーケンスプログラムＡ、３１％をシーケンスプログラムＢ、１６％をシーケンスプログラムＣに割り当てられる。そして、以後は、この設定された実行割合で、複数のシーケンスプログラムを実行することになる。
【００１８】
図４は、本発明の第２の実施形態のプログラマブルコントローラにおけるプロセッサ１１が実行する実行時間割合調整処理のフローチャートであり、この第２の実施形態は、実行する複数のシーケンスプログラムに対して目標スキャンタイムを設定し、この設定目標スキャンタイムと一致するように実行時間の割合を調整するものである。また、図５は、３つのシーケンスプログラムＡ，Ｂ，Ｃが設定されている例をとってこの第２の実施形態を説明する説明図である。図５（ａ）は、予め設定された実行割合で、１実行周期（８ｍｓ）を、実行するシーケンスプログラム数の３で等分割し、それぞれ実行するものとし、スキャンタイムがシーケンスプログラムＡは２４ｍｓ（３実行周期）、シーケンスプログラムＢは１６ｍｓ（２実行周期）、シーケンスプログラムＣは８ｍｓ（１実行周期）であるものとする。又、入力機器１９より目標スキャンタイムを図５（ｂ）に示すように、シーケンスプログラムＡ＝１６ｍｓ（２実行周期）、シーケンスプログラムＢ＝１６ｍｓ（２実行周期）、シーケンスプログラムＣ＝８ｍｓ（１実行周期）と設定し、自動調整指令を入力するとプログラマブルコントローラ１０のプロセッサ１１は、図４にフローチャートで示す処理を開始する。
【００１９】
第１の実施形態と同様に、プロセッサ１１は、まず、各シーケンスプログラムをこの予め設定された実行割合で実行し、各シーケンスプログラムの実実行時間を測定する（ステップ２００）。図５（ｃ）〜（ｅ）は、３つのシーケンスプログラムＡ，Ｂ，Ｃの実行時間の測定を表したもので、第１の実施形態の図３（ｂ）〜（ｄ）と同じであり、前述したように、
シーケンスプログラムＡ＝７．３ｍｓ
シーケンスプログラムＢ＝５．０ｍｓ
シーケンスプログラムＣ＝２．５ｍｓ
であったとする。
【００２０】
次に、設定された目標スキャンタイムを実行周期時間（８ｍｓ）で割り、各シーケンスプログラムの１回の実行が終了する周期を求める（ステップ２０１）。図５で示す例では、
シーケンスプログラムＡ＝１６ｍｓ／８ｍｓ＝２周期
シーケンスプログラムＢ＝１６ｍｓ／８ｍｓ＝２周期
シーケンスプログラムＣ＝８ｍｓ／８ｍｓ＝１周期
次に、ステップ２００で求めた各シーケンスプログラムの実実行時間をステップ２０１で求めたシーケンスプログラムの１回の処理を終了するのに必要とする周期で割り、１実行周期における実行時間をそれぞれ求める（ステップ２０２）。図５の例では、
シーケンスプログラムＡ＝７．３ｍｓ／２周期＝３．６５ｍｓ
シーケンスプログラムＢ＝５．０ｍｓ／２周期＝２．５ｍｓ
シーケンスプログラムＣ＝２．５ｍｓ／１周期＝２．５ｍｓ
求めた実実行時間の実行周期（８ｍｓ）における割合を求める（ステップ２０３）。図５の例では、
シーケンスプログラムＡ＝３．６５ｍｓ／８ｍｓ＝４６％
シーケンスプログラムＢ＝２．５ｍｓ／８ｍｓ＝３１％
シーケンスプログラムＣ＝２．５ｍｓ／８ｍｓ＝３１％
こうして求めた実行割合の合計が１００％を越えているか否か判断し（ステップ２０４）、越えていなければ、求めた実行割合を設定し、自動調整処理は終了する。一方、実行割合の合計が１００％を越えていれば、再調整して、各シーケンスプログラムの実行割合の合計が１００％以下になるように調整する（ステップ２０５）。この実施形態では、各シーケンスプログラムの実行割合が、実行割合の合計に対する比率によって求める。すなわち、求めた各シーケンスプログラムの実行割合を実行割合の合計で割り、１００をかけて割合を求める。図５（ｆ）の例では、実行割合の合計が１００％を越えているからこの再調整を行う。
【００２１】
シーケンスプログラムＡ＝４６％×１００／（４６＋３１＋３１）＝４２％
シーケンスプログラムＢ＝３１％×１００／（４６＋３１＋３１）＝２９％
シーケンスプログラムＣ＝３１％×１００／（４６＋３１＋３１）＝２９％
こうして求めた、実行割合を図５（ｇ）に示すように設定する（ステップ２０６）。以後この実行割合で各シーケンスプログラムを実行することになる。
【００２２】
この再調整を行った場合、目標スキャンタイムに近いスキャンタイムが得られるにしても、目標としたスキャンタイムは得られない。例えば図５の例では、シーケンスプログラムＡは３実行周期の２４ｍｓ、シーケンスプログラムＢは３実行周期の２４ｍｓ、シーケンスプログラムＣは２実行周期の１６ｍｓとなり、指令した目標スキャンタイムのシーケンスプログラムＡ＝１６ｍｓ、シーケンスプログラムＢ＝１６ｍｓ、シーケンスプログラムＣ＝８ｍｓとはならない。再調整を行う必要があることは、目標スキャンタイムで各シーケンスプログラムを実行できないことを意味しており、このような場合、再調整を行わずに、目標スキャンタイムの設定が誤りだとして、目標スキャンタイムの再設定をするようにしてもよい。また、再設定するか否かの判断を問いかけてもよい。
【００２３】
この場合、ステップ２０４で、実行時間割合が１００％を越えたと判断されたとき、アラームをだし、目標スキャンタイムの再設定を促すようにし、再設定されるとステップ２０１以下の処理を行い、実行時間割合が１００％以内になるまで、繰り返し実行するようにしてもよい。なお、このアラームを出して目標スキャンタイムの再設定を行うようにする場合には、ステップ２０２で求めた各シーケンスプログラムの１実行周期における必要実行時間の合計が１実行周期の時間（８ｍｓ）以内か否か判断し、以内でなければ、目標スキャンタイムの再設定を促し、以内ならば、ステップ２０３の処理をして各シーケンスプログラムの実行割合を求め、求めた実行割合を設定するようにすればよい。
【００２４】
図６は、本発明の第３の実施形態のプログラマブルコントローラにおけるプロセッサ１１が実行する実行時間割合調整処理のフローチャートであり、この第３の実施形態は、実行する複数のシーケンスプログラムに対して目標スキャンタイム比率を設定し、この設定目標スキャンタイム比率となるように各シーケンスプログラムの実行時間の割合を調整するものである。また、図７は、第１，第２の実施形態における例と同様に、３つのシーケンスプログラムＡ，Ｂ，Ｃが設定されている例をとって、この第３の実施形態を説明する説明図である。図７（ａ）は、予め設定された実行割合で、１実行周期（８ｍｓ）を、実行するシーケンスプログラム数の３で等分割し、それぞれ実行するものとし、スキャンタイムがシーケンスプログラムＡは２４ｍｓ（３実行周期）、シーケンスプログラムＢは１６ｍｓ（２実行周期）、シーケンスプログラムＣは８ｍｓ（１実行周期）であるものとする。又、目標スキャンタイム比率を図７（ｂ）に示すように、シーケンスプログラムＡ：シーケンスプログラムＢ：シーケンスプログラムＣ＝２：３：２と入力機器１９より設定したものとする。そして、自動調整指令を入力されると、プログラマブルコントローラ１０のプロセッサ１１は、図６にフローチャートで示す処理を開始する。
【００２５】
第１、第２の実施形態と同様に、プロセッサ１１は、まず、各シーケンスプログラムをこの予め設定された実行割合で実行し、各シーケンスプログラムの実実行時間を測定する（ステップ３００）。図７（ｃ）〜（ｅ）は、３つのシーケンスプログラムＡ，Ｂ，Ｃの実行時間の測定を表したもので、第１の実施形態の図３（ｂ）〜（ｄ）と同じであり、説明を省略する。なお、図７に示すように実行時間の測定結果が次のような時間であったものとする。
【００２６】
シーケンスプログラムＡ＝２．６＋２．６＋２．１＝７．３ｍｓ
シーケンスプログラムＢ＝２．６＋２．４＝５．０ｍｓ
シーケンスプログラムＣ＝２．５ｍｓ
次に、設定された目標スキャンタイム比率に１実行周期時間（８ｍｓ）をかけ、各シーケンスプログラムの目標スキャンタイムを求める（ステップ３０１）。図７で示す例では、シーケンスプログラムＡ、シーケンスプログラムＢ、シーケンスプログラムＣにおいて
Ａ：Ｂ：Ｃ：＝２：３：２＝１６ｍｓ：２４ｍｓ：１６ｍｓ
として求められる。
【００２７】
次に、各シーケンスプログラムの目標スキャンタイムにおける実行周期数を求める（ステップ３０２）。図７の例では、
シーケンスプログラムＡ＝１６ｍｓ／８ｍｓ＝２周期
シーケンスプログラムＢ＝２４ｍｓ／８ｍｓ＝３周期
シーケンスプログラムＣ＝１６ｍｓ／８ｍｓ＝２周期
次に、ステップ３００で求めた実実行時間と、求めた実行周期数より各シーケンスプログラムの目標スキャンタイムを満たす１実行周期あたりの必要実行時間を求める（ステップ３０３）。図７の例では、
シーケンスプログラムＡ＝７．３ｍｓ／２周期＝３．６５ｍｓ
シーケンスプログラムＢ＝５．０ｍｓ／３周期≒１．６７ｍｓ
シーケンスプログラムＣ＝２．５ｍｓ／２周期＝１．２５ｍｓ
求めた必要実行時間より１実行周期における各シーケンスプログラムの実行割合を求める（ステップ３０４）。図７の例では、
シーケンスプログラムＡ＝３．６５ｍｓ／８ｍｓ≒４６％
シーケンスプログラムＢ＝１．６７ｍｓ／８ｍｓ≒２１％
シーケンスプログラムＣ＝１．２５ｍｓ／８ｍｓ≒１６％
この実行比率の合計が１００％を越えているか判断し（ステップ３０５）、１００％以下であれば、この求めた実行割合を設定する（ステップ３０６）。また、１００％を越えるようであれば、実行できないとして、目標スキャンタイム比率に乗じる時間を１実行周期の時間分増大し（ステップ３０７）、ステップ３０１以下の処理を実行する（先の例では、目標スキャンタイム比率に乗じる時間が１実行周期の時間８ｍｓであったが１実行周期を加算し１６ｍｓとする）。
【００２８】
以下このようにして目標スキャンタイム比率で実行できる１実行周期における実行割合を求め設定する（ステップ３０６）。
【００２９】
図７に示す例では、目標スキャンタイム比率に１実行周期の時間８ｍｓを乗じて得られる目標スキャンタイムでの各シーケンスプログラムＡ，Ｂ，Ｃの１実行周期における実行時間の割合が、前述したように、４６％，２１％，１６％であり１００％を越えないから、図７（ｆ）に示すように、各シーケンスプログラムＡ，Ｂ，Ｃのスキャンタイムが１６ｍｓ，２４ｍｓ，１６ｍｓで１実行周期における実行時間の割合が４６％，２１％，１６％として設定される。この設定された実行時間の割合で以後各シーケンスプログラムが実行されることになる。
【００３０】
なお、この第３の実施形態においても、ステップ３０３で求めた１実行周期あたりの必要実行時間の合計が１実行周期（８ｍｓ）を越えるか否か判断し、越える場合には、ステップ３０７に移行し、ステップ３０３で求めた１実行周期あたりの必要実行時間の合計が１実行周期（８ｍｓ）以内になると、ステップ３０４の処理をして実行時間の割合を求め、ステップ３０６に移行して求めた実行時間の割合を設定するようにしてもよい。または、ステップ３０７に移行するか否かの判断を問いかけてもよい。
【００３１】
また、ステップ３０３で求めた１実行周期あたりの必要実行時間の合計が、１実行周期（８ｍｓ）を越えるか否か判断し、越えたと判断したとき、アラームをだし、目標スキャンタイム比率の再設定を促すようにし、再設定されるとステップ３０１以下の処理を行い、実行時間割合が１００％以内になるまで、繰り返し実行するようにしてもよい。なお、このアラームを出して目標スキャンタイム比率の再設定を行うようにする場合には、ステップ３０３で求めた各シーケンスプログラムの１実行周期における必要時間の合計が１実行周期の時間（８ｍｓ）以内か否か判断し、以内でなければ、目標スキャンタイム比率の再設定を促し、以内ならば、ステップ３０４の処理をして各シーケンスプログラムの実行割合を求め、求めた実行割合を設定するようにすればよい。
【００３２】
図８は、本発明の第４の実施形態のプログラマブルコントローラにおけるプロセッサ１１が実行する実行時間割合調整処理のフローチャートであり、この第４の実施形態は、実行する複数の各シーケンスプログラムが有するステップ数によって、各シーケンスプログラムの実行時間の割合を調整するものである。また、図９は、この第４の実施形態の一例の説明図である。この図９に示す例では、図９（ａ）に示すように、３つのシーケンスプログラムＡ，Ｂ，Ｃのそれぞれのステップ数が「５０００」、「３０００」、「２０００」であったものとする。入力機器１９より自動調整指令を入力されると、プログラマブルコントローラ１０のプロセッサ１１は、図８にフローチャートで示す処理を開始する。
【００３３】
入力設定されている各シーケンスプログラムの冒頭に記憶されているプログラムサイズよりステップ数を読み取る（ステップ４００）。このステップ数の比率に基づいて、１実行周期の実行時間の割合を求める比率を求め設定し（ステップ４０１，４０２）、自動調整処理は終了する。
【００３４】
図９に示した例では、シーケンスプログラムＡ，Ｂ，Ｃのステップ数が５０００，３０００，２０００，であることから、図９（ｂ）に示すように５：３：２の比率で１実行周期を分割し、シーケンスプログラムＡ，Ｂ，Ｃの実行時間の割合を５０％，３０％，２０％に設定することを示している。
【００３５】
上述した各実施形態では、実行時間割合の自動調整指令等をプログラマブルコントローラに入力することによって、それぞれスキャンタイム同一になるように、設定目標スキャンタイムとなるように、設定スキャンタイム比率になるように、又はシーケンスプログラムのステップ数に応じた実行時間の割合になるように、自動的に調整した。そこで、これらの実行時間割合の自動調整方法の条件を選択できるようにしてもよい。例えば、実行時間割合の自動調整モードにして、表示器１８に実行できる自動調整方法の条件を表示し、その中から選択し、さらに必要な情報を自動調整の条件として入力することによって、何れかの自動調整方法を実行させることができるようにする。
【００３６】
例えば、表示器１８に自動調整の種類として「スキンタイム同一にする」、「目標スキャンタイムにする」、「目標スキャンタイム比率にする」、「ステップ数に応じた割合とする」を表示し、入力機器１９でいずれかの条件項目を選択させるようにする。プログラマブルコントローラ１０のプロセッサ１１は、「スキンタイム同一にする」の項目が選択されれば、図２の処理を実行し、「目標スキャンタイムにする」の項目が選択され、目標スキャンタイムの設定が行われると図４の処理を行い、「目標スキャンタイム比率にする」の項目が選択され、目標スキャンタイム比率が設定されると図６に示す処理を実行し、「ステップ数に応じた割合とする」の項目が選択されれば、図８の処理を実行して、実行時間の割合を自動的に調整する。
【図面の簡単な説明】
【００３７】
【図１】本発明の各実施形態を実施するプログラマブルコントローラの要部ブロック図である。
【図２】本発明の第１の実施形態のフローチャートである。
【図３】同第１の実施形態における実行時間割合調整処理の１例の説明図である。
【図４】本発明の第２の実施形態のフローチャートである。
【図５】同第２の実施形態における実行時間割合調整処理の１例の説明図である。
【図６】本発明の第３の実施形態のフローチャートである。
【図７】同第３の実施形態における実行時間割合調整処理の１例の説明図である。
【図８】本発明の第４の実施形態のフローチャートである。
【図９】同第４の実施形態における実行時間割合調整処理の１例の説明図である。
【符号の説明】
【００３８】
１０  プログラマブルコントローラ
２０  バス
【図１】
2005056196.tif 000003
【図２】
2005056196.tif 000004
【図３】
2005056196.tif 000005
【図４】
2005056196.tif 000006
【図５】
2005056196.tif 000007
【図６】
2005056196.tif 000008
【図７】
2005056196.tif 000009
【図８】
2005056196.tif 000010
【図９】
2005056196.tif 000011