(57)【要約】【課題】通信処理と制御処理を１つのＭＰＵで実行するプラグラマブルコントローラにおいて、通信における処理時間を予め設けたテーブルより算出することにより、動的に通信処理と制御処理を時分割する割合を変更し、ＭＰＵの処理能力を効率良く使用する。【解決手段】通信処理と制御処理を１つのＭＰＵで実行する場合、どちらの処理もある程度の応答性能を確保できるように時分割でこれら二つの処理を交互に行う必要があるが、通信を行っていない場合でも通信処理用に割当てた時間を確保する。通信要求を受付けた時点で、その通信処理に要する時間τ３を算出し、処理に要する時間だけ通信機能に時間を割当てる。これにより、通信を行っていない場合のアイドル状態をなくし、制御処理および通信処理のどちらも応答性能を向上させる。【選択図】図４
2011134197.tif 000002
【特許請求の範囲】
【請求項１】
設備や機械システムの動作をラダープログラムによって制御し、前記ラダープログラムの実行を行う制御機能と、前記ラダープログラムの転送や上位ホストとのデータ送受信を行う通信機能とを排他的に実行管理するプログラマブルコントローラにおいて、
前記通信機能における通信要求毎に、前記通信機能における通信処理の負荷の大きさに応じて、前記制御機能と前記通信機能の実行時間配分をスケジューリングすることを特徴とするプログラマブルコントローラ。
【請求項２】
前記通信処理の負荷をリアルタイムに検出する通信負荷検出処理と、前記制御機能と前記通信機能の処理を時分割にて割当てる際の割合を動的に変更するスケジューラとを備えていることを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記通信要求がされた際に、前記通信処理の負荷として、前記通信要求の種類及び扱うデータサイズに基づいて、前記通信処理に要する処理時間を算出することを特徴とする請求項１又は２に記載のプログラマブルコントローラ。
【請求項４】
前記通信要求の種類と前記データサイズに対応する前記処理時間が予め通信負荷テーブルとして定められており、前記通信要求がされたことに応じて前記通信負荷テーブルを参照し、前記通信処理の負荷として前記処理時間を算出することを特徴とする請求項３に記載のプログラマブルコントローラ。
【請求項５】
前記通信負荷テーブルにおける前記処理時間は、ユーザにより設定可能であることを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記制御機能に割り当てられる制御実行分割時間と前記通信機能に割り当てられる通信実行分割時間とが配分されたスケジューリング単位時間が連続して繰り返されて設定されており、前記通信要求がされた際に、算出された前記通信要求による前記処理時間が前記通信実行分割時間よりも長いことに応じて、当該スケジューリング単位時間に拘わらず前記通信機能を継続して実行するようにスケジューリングすることを特徴とする請求項３〜５のいずれか一項に記載のプログラマブルコントローラ。
【請求項７】
算出された前記通信要求による前記処理時間が、前記スケジューリング単位時間より短く設定された最大連続実行時間より長いことに応じて、前記通信機能を前記最大連続実行時間毎に区切り、前記通信機能の合間に前記制御機能を実行するようにスケジューリングすることを特徴とする請求項６に記載のプログラマブルコントローラ。
【請求項８】
前記最大連続実行時間とその後に実行される前記制御機能の処理時間との合計時間の長さは、前記スケジューリング単位時間の長さとされていることを特徴とする請求項７に記載のプログラマブルコントローラ。
【請求項９】
設備や機械システムの動作をラダープログラムによって制御し、前記ラダープログラムの実行を行う制御機能と、前記ラダープログラムの転送や上位ホストとのデータ送受信を行う通信機能とを排他的に実行管理するプログラマブルコントローラにおいて、
前記通信機能における通信要求毎に、前記通信機能における通信処理の負荷の大きさに応じて、前記制御機能と前記通信機能の実行時間配分をスケジューリングすることを特徴とする複数処理の時分割方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設備や機械システムの動作をラダープログラムによって制御し、前記ラダープログラムの実行を行う制御機能と、前記ラダープログラムの転送や上位ホストとのデータ送受信を行う通信機能とを排他的に実行管理するプログラマブルコントローラ、及びプログラマブルコントローラにおける複数処理の時分割方法に関する。
【背景技術】
【０００２】
プログラマブルコントローラ（以下、ＰＬＣという）は、工場などに設置されている多様な機械設備やプラント設備などを制御するための汎用制御装置として広く普及しており、ユーザが作成するラダープログラムをサイクリックに実行する制御機器である。
【０００３】
ＰＬＣには、機械設備の稼動状態をセンサやスイッチなどの機器を介してデジタル信号としてＯＮ／ＯＦＦ情報を取り込む、或いはプラント設備の圧力情報や温度情報などをアナログ信号として取り込むなどの情報の入力を司る信号入力部を備える。ＰＬＣには、当該ＰＬＣに取り込まれたデジタル入力信号のＯＮ／ＯＦＦ情報やアナログ信号量の大小に応じて必要な数値演算や論理演算を実行するためのシーケンスプログラムと呼ばれるプログラムが予め登録されている。このシーケンスプログラムは逐次処理され、その演算結果は、信号出力部と呼ばれる部分からデジタル信号やアナログ信号として当該信号出力部に接続された機械設備の動力源やプラント設備のバルブなどに伝達され、設備全体の高度な制御が実現される。
【０００４】
ＰＬＣには、この制御機能の他に、ＲＳ２３２Ｃ／ＵＳＢ／Ｅｔｈｅｒｎｅｔ（登録商標）等の通信ポートを有し、ラダープログラムの転送や上位ホストとのデータ送受信を行う通信機能を実行する必要がある。これらの機能を図１に示す典型的なＰＬＣで実行する場合、ＭＰＵ１０に内蔵されるタイマを用い、特定の比率により制御機能と通信機能を時分割して処理を交互に行う方法がある。
【０００５】
ネットワークの負荷や中継機器の負荷などによって各フィールド機器間で必要となる通信時間が変動することを考慮して、フィールド機器の動作スケジュールを制御するフィールド制御システムが提案されている（特許文献１参照）。また、リアルタイムオペレーティングシステムで動作するスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、システムに接続される転送モジュール数と、システム全体の転送ワード数に基づいて、データ転送処理全体に要する時間を求め、設定された実行時間と比較して判定を行うことが提案されている（特許文献２参照）。更に、ポーリング−／セレクション方式によって各子局とデータ通信を行うための基本通信サイクルを計測して本システム外へ読出し、その読み出した基本通信サイクル以上の実通信サイクルを設定する実通信サイクル設定手段についての提案がなされている（特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５９１８２号公報
【特許文献２】特開２００８−１４６３５７号公報
【特許文献３】特開平０６−２３０８０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
制御機能と通信機能を時分割して処理を行う場合、実際に通信を行う必要がない場合でも、予め定めた比率により通信機能に割当てる時間を設けるため、その間は制御機能が実行できない。また、通信の応答性能をある程度満足させるため、通信機能に割当てる時間を確保しておく必要がある。制御機能と通信機能とに対してどの程度の割合で時分割させるかは、設備やシステム構成によって変わる。それゆえ、設定のためのレジスタを設け、ユーザが設定できるようにしている。したがって、実際に通信の有無に拘わらず通信機能に割当てた時間が設けられているため、通信が行われていない場合にはＭＰＵ１０がアイドル状態となり、その間、ＭＰＵ１０の処理能力を十分に使いきれていない。
【０００８】
こうしたＭＰＵの処理能力状況について図３を用いて説明する。図３では１０ｍｓ毎に制御機能と通信機能を実行する場合のタイムチャートを示す。ここでは、制御機能と通信機能の実行時間の割合を７：３と設定しているものとし、通信機能に割当てられる時間は１０ｍｓ中、３ｍｓである。仮に通信要求を受け付けてから、応答を返すまでに５ｍｓ必要な処理を実行する場合、周辺装置が要求を発行後に通信機能に割当てられた処理時間の最初で前記要求を受け付け、３ｍｓ期間はその通信処理にＭＰＵ１０を使用する。その次は制御機能に割当てる期間（７ｍｓ）であるため前記通信処理は中断され、次の通信機能に割当てられた期間（３ｍｓ中の最初の２ｍｓ）で残りの処理を実行することとなる。
【０００９】
したがって、本来ＭＰＵ１０の能力を１００％使用した場合には５ｍｓで終了する処理が、１２ｍｓ（３ｍｓ＋７ｍｓ＋２ｍｓ）以上かかることとなる。更に、通信を行っていない場合には、そうした非通信状態であるにも拘わらず、１０ｍｓ中、３ｍｓは通信機能を実行する時間に割当てられるため、前記時間は実際には何も処理しないアイドル状態となりＭＰＵ１０の性能を十分に発揮することができない。仮に制御機能と通信機能の実行時間の割合を９：１とした場合では、前記５ｍｓ必要な通信要求を受付、応答を返すまでの時間は最短でも４１ｍｓの時間が必要である。
【００１０】
そこで、制御機能と通信機能とを排他的に実行管理するプログラマブルコントローラにおいて、制御機能と通信機能とに費やすべき時間の配分に工夫を凝らすことで、アイドル状態となるのを可及的に回避する点で解決すべき課題がある。
この発明の目的は、制御機能と通信機能とを排他的に実行管理するプログラマブルコントローラにおいて、アイドル状態となるのを可及的に回避して、コントローラとしての性能を十分に発揮させることを可能にするプログラマブルコントローラ、及びそれにおける複数処理の時分割方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明によるプログラマブルコントローラ及びその複数処理の時分割方法は、従来の課題を解決するものであり、設備や機械システムの動作をラダープログラムによって制御し、前記ラダープログラムの実行を行う制御機能と、前記ラダープログラムの転送や上位ホストとのデータ送受信を行う通信機能とを排他的に実行管理するプログラマブルコントローラにおいて、前記通信機能における通信要求毎に、前記通信機能における通信処理の負荷の大きさに応じて、前記制御機能と前記通信機能の実行時間配分をスケジューリングすることを特徴としている。
【００１２】
このプログラマブルコントローラ及びその複数処理の時分割方法によれば、通信機能における通信要求毎に、通信機能における通信処理の負荷の大きさに応じて、制御機能と通信機能の実行時間配分をスケジューリングするので、制御機能のための演算実行を行う制御処理と、周辺装置との通信処理とに対して、通信機能における通信処理の負荷の大きさに応じて、時分割にて行う際の時間配分がスケジューリングされるので、両処理における負荷分散の最適化を図ることができる。
【００１３】
このプログラマブルコントローラにおいて、前記通信処理の負荷をリアルタイムに検出する通信負荷検出処理を設け、前記制御機能と前記通信機能の処理を時分割にて割当てる際の割合を動的に変更するスケジューラとを備えることができる。また、前記通信要求がされた際に、前記通信処理の負荷として、前記通信要求の種類及び扱うデータサイズに基づいて、前記通信処理に要する処理時間を算出することができる。通信処理に要する処理時間は、通信要求の種類及び扱うデータサイズに応じて長短が変わるものであるので、そうした通信要求の種類及び扱うデータサイズに応じて処理時間を算出して求めることができる。また、前記通信要求の種類と前記データサイズに対応する前記処理時間が予め通信負荷テーブルとして定められており、前記通信要求がされたことに応じて前記通信負荷テーブルを参照し、前記通信処理の負荷として前記処理時間を算出することができる。更に、前記通信負荷テーブルにおける前記処理時間は、ユーザにより設定可能とされる。
【００１４】
通信処理の負荷として通信要求の種類及び扱うデータサイズに基づいて処理時間を算出するプログラマブルコントローラにおいて、前記制御機能に割り当てられる制御実行基本時間と前記通信機能に割り当てられる通信実行基本時間とが配分されたスケジューリング単位時間が連続して繰り返されて設定されており、前記通信要求がされた際に、算出された前記通信要求による前記処理時間が前記通信実行基本時間よりも長いことに応じて、当該スケジューリング単位時間に拘わらず前記通信機能を継続して実行するようにスケジューリングすることができる。即ち、制御実行基本時間とその後の通信実行基本時間スケジューリング単位時間が連続して繰り返されて設定されている中で、通信要求による処理時間が通信実行基本時間より長い場合には、スケジューリング単位時間の枠に拘わらず、通信機能を優先させて継続して実行することができる。
【００１５】
また、算出された前記通信要求による前記処理時間が、前記スケジューリング単位時間より短く設定された最大連続実行時間より長いことに応じて、前記通信機能を前記最大連続実行時間毎に区切り、前記通信機能の合間に前記制御機能を実行するようにスケジューリングすることができる。通信処理に要する処理時間が長い場合には、制御機能のための実行時間が長期に渡って停止する可能性があるので、処理時間が例えば予め定められた最大連続実行時間より長い場合には、通信機能を最大連続実行時間毎に区切り、通信機能の合間に制御機能を実行して、制御機能を確保することが好ましい。更に、前記最大連続実行時間とその後に実行される前記制御機能の処理時間との合計時間の長さは、前記スケジューリング単位時間の長さとすることができる。この場合には、最大連続実行時間で実行される通信機能と、その後のスケジューリング単位時間までの残り時間で制御機能を確保することができる。
【発明の効果】
【００１６】
本発明によるプログラマブルコントローラ、及びプログラマブルコントローラにおける複数処理の時分割方法は、上記のように構成されているので、制御演算実行処理と周辺装置との通信処理とを時分割にて行う際の負荷の分散について最適化が図られ、通信機能に割当てる時間において通信が行われていない場合のアイドル状態となる時間を低減することができ、その分を制御機能に割当てることにより、機器制御の高速処理が可能となる。また、通信負荷が大きい処理を行う場合は、通信機能に割当てる時間を増やすことで通信応答性能の改善を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明によるプログラマブルコントローラの一実施例を示す構成図である。
【図２】ＣＰＵモジュールのソフトウェア構成を示す概略図である。
【図３】本発明での時分割方式を示す図（その１）である。
【図４】本発明での時分割方式を示す図（その２）である。
【図５】本発明での時分割方式を示す図（その３）である。
【図６】本発明での時分割方式を示す図（その４）である。
【図７】通信負荷検出処理フローを示す図である。
【図８】通信負荷テーブルを示す図である。
【図９】従来技術での時分割方式を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明によるプログラマブルコントローラ（ＰＬＣ）、及びそれにおける複数処理の時分割方法の実施例について図面を参照しながら説明する。図１は本発明によるプログラマブルコントローラの一実施例を示す構成図である。
【００１９】
図１に示すＰＬＣのＣＰＵモジュール１は、シーケンスプログラムの演算や、通信インタフェース部１１を介し接続されるパソコンのアプリケーションであるプログラミングツール２との通信処理を行うＭＰＵ１０と、当該ＭＰＵ１０の制御する内容・手順を記憶した不揮発性のシステムプログラムメモリ１２と、ユーザが作成したシーケンスプログラムを格納するための書き換え可能なシーケンスプログラムメモリ１３と、前記ＭＰＵ１０が該シーケンスプログラムの演算結果を格納する内部データメモリ１４と、外部機器からの入力信号を取込むための入力モジュール３や、外部機器への出力信号に前記演算結果を出力するための出力モジュール４をインタフェースするための外部バスインタフェース１５とを備えている。
【００２０】
シーケンスプログラムは、プログラミングツール２で作成され、通信インタフェース部１１及びＭＰＵ１０を介してシーケンスプログラムメモリ１３に格納する。プログラミングツール２とＣＰＵモジュール１との接続においては、ＵＳＢ、Ｅｔｈｅｎｅｔ、ＲＳ２３２Ｃ等のインタフェースで行うこととし、特に規定はしない。
【００２１】
ここで、ＭＰＵ１０において、シーケンスプログラムの演算を行う制御機能と、プログラミングツール２との通信処理を行う通信機能との両方を時分割で実行する場合について説明する。図２は、システムプログラムメモリ１２に格納されるシステムの処理の機能ブロックを示す。システムプログラムメモリ１２に格おけるシステム処理は、制御機能２１及び通信機能２２、並びに両機能を排他処理するためのスケジューラ２０、通信機能２２における通信処理の負荷を処理実行前に事前に把握するための通信負荷検出処理２３からなる。
【００２２】
ＭＰＵ１０には図示しないが内部にタイマを持っており時間を特定の単位で計測することが可能である。スケジューラ２０は、１ｍｓを単位として制御機能２１と通信機能２２のどちらを、どれ位の期間実行させるかを管理するものである。
【００２３】
ここで前記スケジューラの動作を図３、図４、図５、図６を用いて説明する。図３では、実際に通信処理を行っていない場合のスケジューラが割当てた制御機能と通信機能の時間配分を示す。便宜上、１０ｍｓをスケジューリングする単位時間としており、このスケジューリング単位時間において、基本的には、通信要求があるかどうかを確認する処理を通信実行分割時間τ２として１ｍｓ期間設け、残り９ｍｓは制御実行分割時間τ１として制御機能に割当てられている。これは、後述の通信負荷テーブルに設定されるものであり、ユーザにて任意の値に設定可能である。
【００２４】
これにより、通信を行っていない場合には最低限の通信機能を残し、ＭＰＵ１０の処理能力の９０％を制御機能に割当てることで、機器制御の高速応答が可能である。
【００２５】
図４では、図３の状態から通信要求を受付けた場合のスケジューラが割当てた制御機能と通信機能の時間配分を示す。通信要求を受け付け、図２で示す通信負荷検出処理２３にて通信処理にかかる時間を算出する。算出方法は後述とする。
【００２６】
ここでは、通信処理にかかる時間（処理時間τ３）を５ｍｓと算出した場合について説明する。通信要求を受け付けた後、実際に通信処理を行い応答を返す。途中スケジューリング単位時間である１０ｍｓを超えるが、制御機能への切替は行わず通信処理が終了するまで通信機能の実行を行う。通信処理が完了した時点で制御機能に切り替える（制御のための処理時間τ４＝５ｍｓ）が、以降は次の通信要求を受付けるまでは図３と同じ動作を行う。
【００２７】
図５では、図３の状態から通信要求を受付け、通信負荷検出処理２３にて通信処理にかかる時間を１１ｍｓと算出した場合の制御機能と通信機能の時間配分を示す。図４の説明にて述べたように、通信要求を受け付けた後、実際に通信処理を行う処理時間τ５は１１ｍｓであってスケジューリング単位時間である１０ｍｓを超えるが、制御機能への切替は行わず通信処理が終了するまで通信機能の実行を行う。通信処理が完了した時点で制御機能に切り替えるが、以降は次の通信要求を受付けるまでは図３と同じ動作を行う。
【００２８】
ここで、通信処理時間の算出について図７に示すフローチャートを用いて説明する。通信要求を受付けた後、まずはその通信要求のコマンドを解析する（ステップＳ１）。コマンドには、例えば、ユーザが作成するシーケンスプログラムの読出し又は書込み、内部データメモリ１４に対するデータの読出し又は書込み、ＣＰＵモジュール１のステータス情報の参照等がある。これらコマンドの種類によりＭＰＵ１０が担う通信処理の負荷の大きさから、予め図８に示す通信負荷テーブル１６が作成されている。通信負荷テーブル１６は、図１に示すＰＬＣの構成において、例えば、システムプログラムメモリ１２内に設けることができる。図８において、通信負荷テーブル１６の左欄にコマンドの種類が掲げられており、同テーブル１６の右欄に各コマンドに応じた処理時間が定められている。ステップＳ１で解析したコマンドに対して、かかる通信負荷テーブル１６から処理時間が参照される（ステップＳ２）。尚、この通信負荷テーブル１６におけるコマンド種類及びその処理時間は、ユーザにより設定することも可能である。
【００２９】
スケジューラ２０（図２）は、この通信負荷テーブルを参照して通信処理時間分を通信機能２２に割当て、時間経過後は制御機能２１に切り替えを行う。但し、算出された通信処理時間が予め設定されている最大連続実行時間より長い場合は、該最大連続実行時間経過時点で一旦通信処理を中断させ、制御機能に切り替えを行う。この最大連続実行時間はユーザにて任意の値に設定可能である。
【００３０】
この場合のスケジューラ２０の動作に関して図６にて説明する。
図６では、ステータス情報参照の通信コマンドを受付けたときに、図５で述べた通信処理にかかる時間を１１ｍｓと算出した場合に、通信機能を分割して処理を行い、合間に制御機能を実行するようスケジューリングする。こうしたスケジューリングの場合の制御機能と通信機能の時間配分を示す。
【００３１】
通信要求を受け付けた後、実際に通信処理を行いスケジューリング単位時間である１０ｍｓを超えるが、この場合には図４に基づいてした説明と同様に、制御機能への切替は行わず最大連続実行時間τｍａｘ（ここでは５ｍｓに設定されている）を経過するまで通信処理を実行する。その後、一旦制御機能に切り替えを行う（制御のための処理時間τｒ：５ｍｓ）。ここで、制御機能は、スケジューリング単位時間（１０ｍｓ）から最大連続実行時間τｍａｘを差し引いた時間（１０ｍｓ−５ｍｓ＝５ｍｓ）で行う。したがって、当初設定のスケジューリング単位時間より９ｍｓを経過した時点で、再度通信機能に切り替わる。ここから一旦中断していた通信処理を再開するが、再度、最大連続実行時間τｍａｘ（５ｍｓ）を経過するため、その経過時点で再度、制御機能に切り替わる。
【００３２】
これらの切り替え動作を通信処理が完了するまで行い、以降は次の通信要求を受付けるまでは図３と同じ動作を行う。
【００３３】
以上のように、本実施例においては、制御機能と通信機能の時分割処理を、予め設定された通信負荷テーブルを参照することにより、動的に時間配分を割当てることができ、通信要求がある場合にだけ通信機能に時間配分が可能となるため、通信を行わない場合には制御機能が高速処理され、通信を行っている場合においても通信の応答性能を落とすことなく処理することが可能となる。
【００３４】
上記の各時分割方式では、通信優先モードで説明したが、制御優先モードとして時分割してもよいことは明らかである。
【符号の説明】
【００３５】
１…ＣＰＵモジュール                  ２…周辺装置
３…外部入力モジュール                ４…外部出力モジュール
１０…ＭＰＵ                          １１…周辺装置インタフェース
１２…システムプログラムメモリ        １３…シーケンスプログラムメモリ
１４…内部データメモリ                １５…外部バスインタフェース
２０…スケジューラ                    ２１…制御機能
２２…通信機能                        ２３…通信負荷検出処理
【図１】
2011134197.tif 000003
【図２】
2011134197.tif 000004
【図３】
2011134197.tif 000005
【図４】
2011134197.tif 000006
【図５】
2011134197.tif 000007
【図６】
2011134197.tif 000008
【図７】
2011134197.tif 000009
【図８】
2011134197.tif 000010
【図９】
2011134197.tif 000011