(57)【要約】【課題】ＣＰＵの負荷が増大してもサイクルタイムオーバーしないようにプログラム要素の実行時間を自動調整可能とする。【解決手段】複数のプログラム要素の合計処理時間で一定時間のサイクルタイムが構成されるＰＬＣにおける自己実行時間解析方法であって、上記プログラム要素における実際の実行時間と、当該プログラム要素における基準実行時間との時間差を解析する解析ステップと、その解析から上記両時間の時間差が無くなるように上記プログラム要素に対するロジック圧縮を実行するロジック圧縮ステップと、を含む。【選択図】図１
2012113405.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラム要素の合計処理時間で一定時間のサイクルタイムが構成されるＰＬＣにおける自己実行時間解析方法であって、
上記プログラム要素における実際の実行時間と、当該プログラム要素における基準実行時間との時間差を解析する解析ステップと、
その解析から上記両時間の時間差が無くなるように上記プログラム要素に対するロジック圧縮を実行するロジック圧縮ステップと、
を含むことを特徴とするＰＬＣにおける自己実行時間解析方法。
【請求項２】
複数のプログラム要素をサイクルタイム内で実行するよう構成されたＰＬＣにおいて、
各プログラム要素の実行時間を計測するプログラム要素実行タイマと、
このプログラム要素実行タイマの実行時間を記憶するメモリと、
上記複数のプログラム要素を実行すると共に、上記メモリに記憶する各プログラム要素の実行時間から上記複数のプログラム要素の実行時間の合計がサイクルタイムをオーバーするか否かを判断し、オーバーするときは、当該プログラム要素のロジック圧縮を実行するＣＰＵと、
を含むことを特徴とするＰＬＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ（以下、ＰＬＣという）において自己実行時間を解析する方法に関するものである。
【背景技術】
【０００２】
ＰＬＣは周知されるようにラダープログラムを実行して多数の生産機械を制御する制御システムに組み込まれて使用される。
【０００３】
図５ないし図７を参照して従来のＰＬＣを説明する。図５は従来のＰＬＣを示し、図６は図５のＰＬＣ内のＣＰＵユニットの詳細ブロックを示すと共に該ＣＰＵユニットとＩ／Ｏユニットとの接続を示し、また、図７はサイクルタイムのチャートを示す。まず図５を参照して、従来のＰＬＣ１は、ＣＰＵユニット３と、これにより制御される複数のＩ／Ｏユニット５ａ−５ｆと、を備える。Ｉ／Ｏユニット５ａ−５ｆにはユーザーシステム７が接続されている。これらＰＬＣ１とユーザーシステム７とによりＰＬＣシステム９が構築される。
【０００４】
ＣＰＵユニット３は、図６で示すように該ＰＬＣ１全体を統率して制御するＣＰＵ３ａ、ラダープログラムが格納されるプログラムＲＯＭやＣＰＵが作業に用いるワークＲＡＭ等を含むメモリ３ｂ、およびＩ／Ｏユニット５ａ−５ｆが接続されるＩ／Ｏ部３ｃを具備する。４はＣＰＵユニット３とＩ／Ｏユニット５ａ−５ｆとの間のＰＬＣバスを示す。
【０００５】
Ｉ／Ｏユニット５ａ−５ｆは、ＣＰＵユニット３のＣＰＵ３ａにより制御されてユーザーシステム７からの信号を入力したりユーザーシステム７に制御指令を出力したりする。
【０００６】
ユーザーシステム７は、入／出力機器７ａ−７ｆと、機械等の制御対象７ｇと、を具備し、制御対象７ｇの状況を示す信号を入／出力機器７ａ−７ｆからＩ／Ｏユニット５ａ−５ｆに入力し、また、Ｉ／Ｏユニット５ａ−５ｆからの制御指令を入／出力機器７ａ−７ｆに入力し、入／出力機器７ａ−７ｆはこれに応答して制御対象７ｇを制御することができるようになっている。
【０００７】
このようなＰＬＣシステム９においては、図７で示すように複数のプログラム要素ｎ１−ｎ１００を含むラダープログラムを繰り返し実行するものであり、その処理周期すなわちサイクルタイムは一定時間ｔである。このサイクル処理には、電源オン時の初期化処理、共通処理、演算処理、Ｉ／Ｏリフレッシュ処理、等の一連の処理がある。サイクルタイムはそうしたサイクル処理の実行に要する時間である。１サイクルタイムは、サイクル処理の開始から終了までの時間である。図７ではプログラム要素ｎ１−ｎ１００個々の処理時間をΔｔ１、Δｔ２，…，Δｔ１００とした場合、それらの合計時間Δｔ１＋Δｔ２＋，…，＋Δｔ１００が１サイクルタイム時間ｔである。
【０００８】
このようなサイクルタイムは、通常、ユーザーの負荷状況とは無関係の一定時間ｔに設定されているために、例えばユーザー側の負荷が増大し、これに応じてＩ／Ｏユニット５ａ−５ｆを介する信号の入／出力制御が増大してくると、ＣＰＵユニット３のＣＰＵ３ａの負担が増大してくるようになる。そしてＣＰＵ３ａの負担が過剰になると、サイクルタイム内に上記プログラム要素を実行して負荷を処理することができなくなってくる。このような処理状態になると、従来、ユーザー側でシステムを再構築したりすることが行われている。
【０００９】
しかしながら、上記の場合、システムを再構築することは大変な手間と時間とがかかるものであった。なお、こうしたＰＬＣのサイクルタイムに関し記述する特許文献の一例を下記する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−２８０３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、本発明においては、サイクルタイムをオーバーするように負荷が増大したような場合、サイクルタイムオーバーしないように個々のプログラム要素の実行時間調整が自動的に行われるようにしてユーザー側の負担軽減を図ることができるようにすることを解決すべき課題としている。
【課題を解決するための手段】
【００１２】
本発明によるＰＬＣにおける自己実行時間解析方法は、複数のプログラム要素を一定時間のサイクルタイムで処理するようになっているプログラマブルコントローラにおいて、上記プログラム要素における実際の実行時間と、当該プログラム要素における基準実行時間との時間差を解析する解析ステップと、その解析から上記両時間の時間差が無くなるように上記プログラム要素に対するロジック圧縮を実行するロジック圧縮ステップとを含むことを特徴とする。
【００１３】
なお、プログラム要素には電源オン時の初期化処理、共通処理、ラダープログラム実行、Ｉ／Ｏリフレッシュ処理、等の各種処理を行うためのプログラム要素を含む。
【００１４】
本発明では、ユーザーの負荷状況により、複数のプログラム要素のうちの任意のプログラム要素での処理時間が増大し、上記解析ステップで解析した結果、プログラム要素における実際の実行時間が当該プログラム要素における基準実行時間が、全体のプログラム要素の処理にかかる時間であるサイクルタイムが所定時間ｔをオーバーした場合は、上記ロジック圧縮ステップで上記両時間の時間差がゼロとなるようにそのプログラム要素のロジック圧縮を実行できるので、従来のようにユーザー側でシステムを再構築して負荷増大に対処する必要がなくなる。
【発明の効果】
【００１５】
本発明では、ＣＰＵの負荷が増大してもサイクルタイムオーバーしないようにプログラム要素の実行時間を自動調整できるのでユーザー側でシステムの再構築といった負担軽減を図ることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は本発明の実施形態にかかるＰＬＣシステムの概略構成を示す図である。
【図２】図２は図１のＰＬＣシステムにおけるサイクルタイムの説明に供する図である。
【図３】図３はサイクルタイムでのＣＰＵでの基準実行時間と制御対象の実行による各プログラム要素それぞれの実行時間とを示す図である。
【図４】図４はサイクルタイム内の任意プログラム要素の基準実行時間と実際の実行時間との時間差によるロジック圧縮実行の有無を示す図である。
【図５】図５は従来のＰＬＣシステムの概略構成を示す図である。
【図６】図６は図５のＰＬＣシステムのより詳細を示す図である。
【図７】図７はサイクルタイムの説明に供する図である。
【発明を実施するための形態】
【００１７】
以下、添付した図面を参照して、本発明の実施の形態に係るＰＬＣにおける自己実行時間解析方法を詳細に説明する。
【００１８】
図１ないし図４を参照して本実施形態の自己実行時間解析方法を説明する。図１に本発明の実施形態の方法の実施に適用するＰＬＣシステムの概略構成を示し、図２に図１のＰＬＣシステムにおけるサイクルタイムを示し、図３にサイクルタイムでのＣＰＵでの基準実行時間と制御対象の実行による各プログラム要素それぞれの実行時間とを示し、図４にサイクルタイム内の任意プログラム要素の基準実行時間と実際の実行時間との時間差によるロジック圧縮実行の有無を示す。これらの図において図５ないし図７と対応する部分には同一の符号を付している。
【００１９】
まず、図１を参照して実施の形態のＰＬＣ１０は、ＣＰＵユニット３と、複数のＩ／Ｏユニット５ａ〜５ｆと、を備える。ＣＰＵユニット３は、図５の従来のそれと同様にＣＰＵ３ａ、メモリ３ｂ、およびＩ／Ｏ部３ｃを含む。本実施形態でのＣＰＵユニット３は、ＣＰＵタイマ３ｄ、プログラム要素実行タイマ３ｅ、およびプログラム要素実行タイマ３ｅの計測データを記憶するメモリ３ｆを有する。
【００２０】
ＣＰＵタイマ３ｄは、ＣＰＵ３ａの制御によりサイクルタイムの開始と終了の時間を計測し、その計測データをＣＰＵ３ａに入力する。プログラム要素実行タイマ３ｅは、個々のプログラム要素が例えばｎ１からｎ１００までとした場合、それぞれのプログラム要素ｎ１−ｎ１００の実行時間を計測するタイマ０−タイマ１００を含む。これらタイマ０−タイマ１００はそれぞれのプログラム要素ｎ１−ｎ１００それぞれの実行開始から終了までの実行時間を計測し、その計測データをＣＰＵ３ａの制御によりメモリ３ｆに個別に記憶する。
【００２１】
ＣＰＵ３ａは、ＣＰＵタイマ３ｄからの計測データと、メモリ３ｆに記憶のタイマ０−タイマ１００それぞれの計測データとに基づいて、各プログラム要素ｎ１−ｎ１００における実際の実行時間Δｔ１´−Δｔ１００´それぞれと、該プログラム要素ｎ１−ｎ１００における基準実行時間Δｔ１−Δｔ１００それぞれとの時間差を解析する解析ステップと、その解析から上記両時間の時間差が無くなるように上記プログラム要素ｎ１−ｎ１００に対するロジック圧縮を実行するロジック圧縮ステップと、を実行するようになっている。
【００２２】
以下、図２ないし図４を参照して図１のＰＬＣシステム内のＣＰＵ３ａによる上記各ステップを説明する。
【００２３】
図２にサイクルタイムにおいて実行されるべき複数のプログラム要素ｎ１−ｎ１００と、それぞれのプログラム要素での基準実行時間Δｔ１−Δｔ１００とが示されている。各プログラム要素それぞれの基準実行時間Δｔ１−Δｔ１００の和はサイクルタイムｔである。そして、負荷増大により各プログラム要素ｎ１−ｎ１００それぞれの実行時間はΔｔ１´−Δｔ１００´となり、それら実行時間Δｔ１´−Δｔ１００´の和はｔｄである。図３（ａ）では、サイクルタイムの開始時刻ｔｓと、終了時刻ｔｅとの間の時間ｔでの各プログラム要素ｎ１−ｎ１００の基準実行時間Δｔ１−Δｔ１００が示され、図３（ｂ）では、サイクルタイムの開始時刻ｔｓと時刻ｔｅ´との間の時間ｔｄでの各プログラム要素ｎ１−ｎ１００の実際の実行時間Δｔ１´−Δｔ１００´とが示されている。
【００２４】
各プログラム要素ｎ１−ｎ１００の実際の実行時間Δｔ１´−Δｔ１００´がいずれも基準実行時間Δｔ１−Δｔ１００であれば、各プログラム要素ｎ１−ｎ１００の実行時間の合計ｔｄはサイクルタイムｔである。
【００２５】
しかし、各プログラム要素ｎ１−ｎ１００の実際の実行時間が基準実行時間Δｔ１−Δｔ１００ではなく、実行時間Δｔ１´−Δｔ１００´であれば、各プログラム要素ｎ１−ｎ１００の実行時間の合計ｔｄはサイクルタイムｔ外となる。
【００２６】
この場合、ＣＰＵ３ａはいずれのプログラム要素がサイクルタイム外となったかをメモリ３ｆに記憶の計測データを参照して判断する。例えば図４（ａ）で示すように任意プログラム要素の実行時間Δｔｉ´（ただし、ｉは１−１００の中の任意の数）が基準の時間Δｔｉと等しいか小さい場合はロジック圧縮しないが、図４（ｂ）で示すように任意プログラム要素の実行時間Δｔｉ´が基準の時間Δｔｉよりも大きい場合はロジック圧縮する。ここでロジック圧縮とは、ＦＰＧＡ、ゲートアレイ等で使用されるブール代数等で利用する論理合成方法における圧縮方式である。このロジック圧縮の一例を式（１）に示す。
【００２７】
【数１】
2012113405.tif 000003
この式（１）では、プログラム要素内におけるロジックか論理和から論理積となり、ロジック圧縮されたことになる。この様に、論理圧縮の代表となるソフトウエア的圧縮方式としてクワイン−マクラフスキー法やバーケリーエスプレッソ法等のアルゴリズムがあるが、この様な方式を複数組み合わせながら同時に実行時間の短縮のロジック圧縮を行う事で目標実行時間処理まで、ロジック圧縮を繰り返す。
【００２８】
そして、この任意プログラム要素の実行時間Δｔｉ´がロジック圧縮により基準の時間Δｔｉと一致し、各プログラム要素ｎ１−ｎ１００の全体の実行時間ｔｄがサイクルタイムｔに一致すれば、処理が終了し、一致しなければ、ロジック圧縮を繰り返し、全体的にプログラム要素ｎ１−ｎ１００の全体の実行時間ｔｄをサイクルタイムｔに一致させる。ただし、実行時間ｔｄがあまりにサイクルタイムｔ とかけ離れていた場合は、上記の繰り返しループが永久に終了しなくなる為に、ある一定繰り返し限度回数N‐MAX(ユーザー設定繰り返し最大限度回数)まで繰り返すと、通常のPLCと同様に、PLCのサイクルタイムｔ には、間に合わない状態とし、PLCのタイムアウトエラーとする。
【００２９】
以上説明したように本実施形態では、上記ロジック圧縮により、複数のプログラム要素ｎ１−ｎ１００全体の合計処理時間ｔｄがサイクルタイムｔ内に入るようになるので、ＣＰＵ３ａの負荷が増大してもサイクルタイムｔをオーバーしないようにプログラム要素ｎ１−ｎ１００それぞれの実行時間を自動調整できるのでユーザー側でシステムの再構築といった負担軽減を図ることができる。
【符号の説明】
【００３０】
１０  ＰＬＣ
３  ＣＰＵユニット
３ａ  ＣＰＵ
３ｂ  メモリ
３ｃ  Ｉ／Ｏ部
３ｄ  ＣＰＵタイマ
３ｅ  プログラム要素実行タイマ
４  ＰＬＣバス
５ａ−５ｆ  Ｉ／Ｏユニット
７  ユーザーシステム
【図１】
2012113405.tif 000004
【図２】
2012113405.tif 000005
【図３】
2012113405.tif 000006
【図４】
2012113405.tif 000007
【図５】
2012113405.tif 000008
【図６】
2012113405.tif 000009
【図７】
2012113405.tif 000010