(57)【特許請求の範囲】
【請求項１】
外部入力の監視と、制御演算処理を行う定周期タスクと、制御プログラム・パラメータの書き換え、制御演算情報のモニタリング、制御データの取り込み等のためのイベント起動タスクとを設けるコントローラの通信処理方法において、
前記外部入力の監視は周期Ｔ１で行い、前記定周期タスクは周期Ｔ２＝ｎ×Ｔ１で行い、前記周期Ｔ１で行う前記外部入力の監視で通信データの有無を監視し、通信データが有る場合は、その通信データのコマンドの内容をチェックし、制御データの有無を判定し、制御データが有る場合は、前記周期Ｔ２で行う前記定周期タスクで前記制御演算処理の前に前記イベント起動タスクにおける制御データの取り込みに関する通信データ処理を行うようにしたことを特徴とするコントローラの通信処理方法。
【請求項２】
前記定周期タスクは前記外部入力の監視よりも優先度が低く、前記イベント起動タスクは前記外部入力の監視及び前記定周期タスクよりも優先度が低いことを特徴とする請求項１記載のコントローラの通信処理方法。
【請求項３】
前記外部入力の監視で制御データが無い場合は、前記イベント起動タスクを行うことを特徴とする請求項１又は請求項２記載のコントローラの通信処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プロセス制御装置等のコントローラの通信処理方法に関する。
【０００２】
【従来の技術】
一般に、プロセス制御装置は、図４に示すように、コントローラ１-1、１-2、……がデータバス３を介してネットワークインタフェース２に接続され、このネットワークインタフェース２は制御ＬＡＮ４でＭＭＩ（マンマシンインタフェース）５に接続されている。
【０００３】
この種の制御装置における通信データ処理の流れは、図５に示す通りであり、先ずＭＭＩ５より制御ＬＡＮ４を通じて、ａ．コントローラ１にデータ（制御データ）を送信する。ネットワークインタフェース２では、ｂ．コントローラ１にデータを振り分け、コントローラ１上の「通信データ有り」のフラグをＯＮする。コントローラ１では、下記のＣの処理を行う。先ず、第１にＣ1 の処理として、図６に示すように、通信データ有りかを判定して（ステップＳＴ１）、通信データ有りの場合にＣ3 の処理を起動する（ステップＳＴ２）。この起動後、あるいはステップＳＴ１で通信データ無しの場合に、その他の処理（ステップＳＴ３）を経て、Ｃ1 の処理を終了する。
【０００４】
Ｃ2 の処理は、図７で示すように、定周期でユーザアプリケーションとして設定された演算ブロック順に演算処理を行う（ステップＳＴ４）。Ｃ1 処理のステップＳＴ２にてＣ3 の処理が起動されると、図８に示すように通信データを読み出し（ステップＳＴ５）、コマンドに従い、必要な処理（Ｃ2 に制御データを流す）を行う（ステップＳＴ６）。Ｃ3 でのこのような処理を行うのは、Ｃ2 処理で行う制御演算処理の中には、図１１で示すように、ＭＭＩ５からの制御データに基づき、演算処理を行うブロック６が用意されており、ユーザアプリケーションで設定することができる。このようなブロックに対しても、ＭＭＩ５からの取り込みに関しては、Ｃ3 で行うことにしていることによる。そして、ネットワークインタフェース２にデータを返送する（ステップＳＴ７）。
【０００５】
ネットワークインタフェース２では、ｄ．ＭＭＩ５にコントローラ１からの通信を転送する。ＭＭＩ５では、ｅ．コントローラ１からの通信を確認する。
【０００６】
以上のように、従来のコントローラではＣ1 ：外部入力の監視と、Ｃ2 ：制御演算処理を行う定周期タスクと、Ｃ3 ：制御プログラム・パラメータの書き換え、制御演算情報のモニタリング、制御データの取り込み等のため、イベント起動される通信タスクとを設けている。コントローラの性質上、制御演算の定周期性を保つことがもっとも重要なため、Ｃ1 、Ｃ2 の各タスクの優先順位をＣ3 より上げて処理を行っている。
【０００７】
【発明が解決しようとする課題】
上記した従来のコントローラの処理において、Ｃ2 の定周期タスクはユーザが設定したアプリケーションプログラムを実行する部分であり、コントローラの処理負荷はＣ2 の処理の大きさ、つまりアプリケーションプログラムのサイズで決まる。各タスクの優先順位の関係から、Ｃ2 の処理が大きくなるとＣ3 のイベント起動されるタスクに対する応答が悪くなる場合が起こりうる。Ｃ3 で行われるべき処理の中に制御演算上必要となる情報が含まれる場合、応答不良に起因する誤操作につながることも考えられる、という問題がある。
【０００８】
この発明は上記問題点に着目してなされたものであって、従来のコントローラのＣ3 で行われる処理の中でも制御データの取り込みに関するイベント通信処理に対応する応答性向上を図ることを課題としている。
【０００９】
【課題を解決するための手段】
この発明のコントローラの通信処理方法は、外部入力の監視と、制御演算処理を行う定周期タスクと、制御プログラム・パラメータの書き換え、制御演算情報のモニタリング、制御データの取り込み等のためのイベント起動タスクとを設けるコントローラの通信処理方法において、前記外部入力の監視は周期Ｔ１で行い、前記定周期タスクは周期Ｔ２＝ｎ×Ｔ１で行い、前記周期Ｔ１で行う前記外部入力の監視で通信データの有無を監視し、通信データが有る場合は、その通信データのコマンドの内容をチェックし、制御データの有無を判定し、制御データが有る場合は、前記周期Ｔ２で行う前記定周期タスクで前記制御演算処理の前に前記イベント起動タスクにおける制御データの取り込みに関する通信データ処理を行うようにしている。
【００１０】
この通信処理方法では、従来のコントローラでは一律Ｃ3 で行っていた通信処理のうち、制御データの取り込みに関する処理は、Ｃ2 の定周期処理と関連付けられている。そのため、Ｃ2 の中にも通信に関する処理が加えられ、定周期で制御データの受信に関する処理が行われる。Ｃ2 での通信処理が制御演算処理の負荷に影響を与えることを極力避けるために、制御データの取り込みに関するコマンドのみに対応可能としている。
【００１１】
【発明の実施の形態】
以下、実施の形態により、この発明をさらに詳細に説明する。図９は従来のコントローラ１の機能構成を示すブロック図である。このコントローラ１は、メインプログラム１１と、外部入力の監視部１２と、制御演算処理部１３と、イベント通信処理部１４と、通信データに関するフラグ１５とを備えている。外部入力の監視部１２は、メインプログラム１１からの定周期の起動Ａ１で図６に示すＣ１の処理を実行し、監視Ａ２を行う。また、制御演算処理部１３はメインプログラム１１からの定周期の起動Ａ１で図７に示すＣ２処理を、イベント通信部１４は外部入力の監視部１２からの起動Ａ３で図８に示すＣ３の処理を実行する。
【００１２】
このコントローラ１の一連の処理動作例を図１０のタイムチャートを参照して説明する。図１０において、Ｃ1 は周期Ｔ1 で外部入力等、コントローラＨ／Ｗに関する情報の監視、処理を行う。Ｃ2 は周期Ｔ2 （＝ｎ×Ｔ1 ）で定期演算処理を行う。Ｃ2 はＣ1 よりも優先度を低くしてあり、処理が完結するまでの間、Ｃ1 が割り込む場合もある。Ｃ3 はＣ1 において「通信データＯＮ」の場合に起動される。優先度はＣ1 、Ｃ2 よりも低くしてあり、Ｃ1 、Ｃ2 の空き時間に処理する。
【００１３】
Ｃ2 処理は、ユーザアプリケーションにより増加する余地があるため、Ｃ2 の処理が大きくなるとＣ3 の処理に対する余裕が小さくなり、コントローラ１の外から見て、イベント通信に対する応答が悪くなる。
【００１４】
図１は、この発明の一実施形態コントローラ１の機能構成を示すブロック図である。この実施形態コントローラ１はメインプログラム２１と、外部入力の監視部２２と、制御演算処理部２３と、イベント通信処理部２４と、通信データに関するフラグ２５と、制御データフラグ２６を備えており、上記した従来のコントローラの不具合を解消する構成となっている。
【００１５】
外部入力の監視部２２は、メインプログラム２１からの定周期の起動Ａ1 で図２に示すＣ1 の処理を実行し、また監視Ａ2 を行う。制御演算処理部２３は、メインプログラム２１からの定周期の起動Ａ1 で図３に示すＣ2 の処理を実行する。またＣ2 処理でチェックＡ4 を行う。イベント通信処理部２４は、外部入力の監視部２２よりの起動Ａ3 で図８に示した従来のＣ3 とほぼ同様の処理を実行し、また監視Ａ2 を行う。この発明の実施形態コントローラは、外部入力の監視部２２と制御演算処理部２３で実行するＣ1 の処理とＣ2 の処理に特徴がある。
【００１６】
この実施形態コントローラ１では、定周期処理で図１０のＴ1 毎に、Ｃ1 処理を開始し、先ず通信データフラグ２５をチェックし、通信データ有りか判定する（ステップＳＴ１１）。通信データがなければ、その他の処理を経て（ステップＳＴ１６）、Ｃ1 の処理を終了する。ステップＳＴ１１において、通信データ有りの場合は、コマンドの内容をチェックし（ステップＳＴ１２）、制御データ有りか否か判定する（ステップＳＴ１３）。制御データでない場合は、従来と同様、Ｃ3 の処理を起動し（ステップＳＴ１５）、その他の処理（ステップＳＴ１６）を経て、Ｃ1 の処理を終了する。
【００１７】
ステップＳＴ１３で、制御データ有りの場合は、Ｃ2 の定周期処理で制御データに関する処理を行わせるため、「制御データ有り」のフラグ２６をＣ2 に付す（ステップＳＴ１４）。その後、その他の処理を経て（ステップＳＴ１６）、Ｃ1 の処理を終了する。
【００１８】
この実施形態コントローラ１でも図１０に示すＴ２＝ｎ×Ｔ１毎の定周期で、Ｃ２の処理を実行する。Ｃ２の処理開始で、先ず「制御データ有り」のフラグ２６を参照して、制御データ有りかの判定を行う（ステップＳＴ２１）。図２のステップＳＴ１４で説明したように、Ｃ１の処理で「制御データ有り」のフラグ２６が立っていると、本来の制御演算処理の前に制御の取り込みに関する通信データ処理を行う。すなわち、制御データの取り込みに関する通信データ処理を行う（ステップＳＴ２２）とともに、ネットワークインタフェース２にデータを返送し（ステップＳＴ２３）、その後、ユーザアプリケーションとして設定された演算ブロックの順に演算処理、つまり本来の制御演算処理を行う（ステップＳＴ２４）。ステップＳＴ２１で「制御データ有り」のフラグ２６が立っていない場合は、本来の制御演算処理を実行して（ステップＳＴ２４）、Ｃ２の処理を終了する。
【００１９】
【発明の効果】
この発明によれば、周期Ｔ１で行う外部入力の監視で通信データの有無を監視し、通信データが有る場合は、その通信データのコマンドの内容をチェックし、制御データの有無を判定し、制御データが有る場合は、周期Ｔ２＝ｎ×Ｔ１で行う定周期タスクで制御演算処理の前にイベント起動タスクにおける制御データの取り込みに関する通信データ処理を行うので、コントローラの負荷、つまりアプリケーションプログラムに関する処理量が増大しても、制御データの取り込みに関する応答性を確保することができる。
【図面の簡単な説明】
【図１】この発明の実施形態コントローラの機能構成を示すブロック図である。
【図２】同実施形態コントローラにおける外部入力の監視処理を説明するフロー図である。
【図３】同実施形態コントローラの定周期制御演算処理を説明するフロー図である。
【図４】一般的なプロセス制御装置の構成を示すブロック図である。
【図５】同プロセス制御装置におけるデータ処理の流れを説明する図である。
【図６】従来のコントローラの外部入力の監視の処理を説明するフロー図である。
【図７】従来のコントローラの定周期の制御演算処理を説明するフロー図である。
【図８】従来のコントローラのイベント通信処理を説明するフロー図である。
【図９】従来のコントローラの機能構成を示すブロック図である。
【図１０】従来のコントローラのタスクの優先順位を説明するためのタイムチャートである。
【図１１】従来のコントローラにおける制御データ処理について説明する図である。
【符号の説明】
１      コントローラ
２      ネットワークインタフェース
３      データバス
２１    メインプログラム
２２    外部入力の監視部
２３    制御演算処理部
２４    イベント通信処理部
２５    通信データに関するフラグ
２６    制御データフラグ
【図２】
0004283421.tif 000002
【図３】
0004283421.tif 000003
【図４】
0004283421.tif 000004
【図６】
0004283421.tif 000005
【図７】
0004283421.tif 000006
【図９】
0004283421.tif 000007
【図１０】
0004283421.tif 000008
【図１１】
0004283421.tif 000009
【図１】
0004283421.tif 000010
【図５】
0004283421.tif 000011
【図８】
0004283421.tif 000012