(57)【要約】      （修正有）【課題】リアルタイムオペレーティングシステムで動作するスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、アプリケーションスケジューラで管理されない処理のうち、データ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合とユーザアプリケーションの実行性能を優先したい場合がある。両者の優先度をユーザが設定するときに、データ処理が実行可能か否かを判別する。【解決手段】「アプリケーション実行時間」と「データ処理系に代表されるユーザが管理を必要とする処理系の実行時間」の両者を簡易に管理する上位構造として帯域管理層を提供し、該帯域管理層におけるパラメータの増減により、１実行サイクルにおける処理時間を配分／制御する。また、バッファデータよりシステム全体の転送データ量を導出し、現在の設定でデータ処理帯域に不足が無いか判定し、ユーザに通知する。【選択図】図６
2008146357.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、
システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理するために、前記リアルタイムオペレーティングシステムの１つの処理系として管理される帯域管理層と、
ユーザによって前記帯域管理層の実行時間が設定されるときには、前記データ処理の実行時間が十分に確保されているか否かを判別し通知する判定手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラにおいて、
前記判定手段は、システムに接続される転送モジュール数と、システム全体の転送ワード数に基づいてデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定を行うこと、
を特徴とするプログラマブルコントローラ。
【請求項３】
請求項１に記載のプログラマブルコントローラにおいて、
前記判定手段は、データ転送ワード数最大とモジュール数最大のシステムを設定してデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定を行うこと、
を特徴とするプログラマブルコントローラ。
【請求項４】
リアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラを支援する支援装置において、
前記プログラマブルコントローラは、システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理するために、前記リアルタイムオペレーティングシステムの１つの処理系として管理される帯域管理層を有し、
前期支援装置は、ユーザによって前記帯域管理層の実行時間が設定されているときは、設定された実行時間が前記データ処理の実行時間を十分に確保しているか否かを判別し通知する判定手段を有すること、
を特徴とする支援装置。
【請求項５】
請求項４に記載の支援装置において、
前記判定手段は、システムに接続される転送モジュール数と、システム全体の転送ワード数に基づいてデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定を行うこと、
を特徴とする支援装置。
【請求項６】
請求項４に記載の支援装置において、
前記判定手段は、データ転送ワード数最大とモジュール数最大のシステムを設定してデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定を行うこと、
を特徴とする支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザアプリケーション、通信、データ処理、その他の処理実行をスケジューリングするスケジューラを実装したプログラマブルコントローラに関する。
【背景技術】
【０００２】
一般にプログラマブルコントローラなどの組込み機器では、ユーザプログラム、通信、システムを維持するための基本システム処理など、様々な種類の処理が並行的、すなわちマルチタスクで処理されることが多い。組込み機器において使用されるリアルタイムオペレーティングシステム（以下、リアルタイムＯＳ）も、μＩＴＲＯＮなどのようにマルチタスクプロセッシングをサポートしており、１つの処理の遅延によって他の処理が大幅に遅れないよう優先度や内部的に規定したタイミングなどによりスケジューリングして処理を走らせている。
【０００３】
図８は、従来のプログラマブルコントローラのソフトウェア構造概略を示す図である。リアルタイムＯＳ２０上に、プログラマブルコントローラのシステム管理、データ通信処理、故障データ収集などを行う基本システム１４の処理タスクと、ユーザアプリケーションプログラム１０を実行管理するアプリケーションスケジューラ１６とがあり、これらがハードウェア２２上で処理を順次行っている。
【０００４】
図９は、従来のシステムにおけるタスクスケジューリングの一例を示したものである。縦軸にタスクの優先度、横軸に経過時間を示しており、1実行サイクル時間はアプリケーションスケジューラ、基本システム／通信などの許容時間に割り当てられる。優先度の最上位に、ＯＳの割込み処理／高位のハードウェア割込みなどがあり、そのすぐ下位の優先度にアプリケーションスケジューリングされたユーザアプリケーションのタスクがある。この優先度の高い順である、タスク１、タスク２、タスク３の順に実行される。これらの処理が終わると、基本システム、通信などを行う帯域が割付けられ、優先度の高い順である、タスクＡ、タスクＢ、タスクＣの順に実行される。1実行サイクル時間経過すると、次のサイクルが実行される。
【０００５】
リアルタイムＯＳにおけるスケジューリングの具体的な方法としては、例えば特許文献１、または特許文献２に記載されたものが知られている。特許文献１に記載された第１の制御方法では、リアルタイムＯＳ上のスケージューラは、タスクの経過時間などの情報より、処理時間配分、優先度制御を効率的に判断／実行し、予想許容時間と実際の走行時間を比較することによりタスクの異常事態の判定を可能としている。特許文献２に記載された第２の制御方法では、計算機のプロセススケジューラの固定優先度プロセススケジューラ空間にユーザレベルプロセススケジューラを設け、最上位としてスケジューリングを管理することを可能としている。
【特許文献１】特開２００４−１７１５８８号公報
【特許文献２】特開平９−５４６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術においてプログラマブルコントローラのタスク管理は、ユーザアプリケーションをいかに快適かつ効率よく稼動させるかという点に主眼が置かれており、そのために、アプリケーションスケジューラは優先度が高く、ユーザアプリケーションは優先的に実行される。ユーザアプリケーションの実行を終了すると、１実行サイクルの余った時間で基本システム処理が行われる。
【０００７】
基本システム処理の中で、優先度の非常に高い処理、例えばシステムを維持するための故障診断処理、割込み処理などは、場合によってはアプリケーションスケジューラよりも高い優先度で実行されるが、データ通信処理、データ転送処理、故障データ収集処理などのデータ処理系は、一般的に優先度が低く設定されており、バックグラウンドで行われることが多い。しかしながら、プログラマブルコントローラの用途は、近年多様化してきており、性能上からも必ずしもラダープログラムが最優先実行アプリケーションではないケースも増えてきている。ユーザアプリケーションを広義でとらえた場合、プログラマブルコントローラの実行すべき処理は、ラダーシーケンスなどで記述されたアプリケーションプログラムのほか、支援装置、マンマシンインタフェースとの間のモニタコマンド通信処理、監視、他の機器やコントローラとのネットワーク処理など、様々なものがある。ユーザによっては、ラダーシーケンスよりもデータ通信処理やデータ転送処理のほうが重要度や定時性確保の要求が高い場合もある。
【０００８】
従来のプログラマブルコントローラシステムでは、そのような場合においても、まずラダーシーケンスのユーザアプリケーションが最優先で実行され、その後の時間に通信やデータ変換処理などが行われる。従って、ユーザの観点からすると、処理の性能や処理時間の配分を、例えばネットワーク処理に重点を置いて配分したいのに、実際には常にラダーシーケンスが優先になってしまう問題があった。プログラマブルコントローラのアプリケーション処理は、定時性確保の都合上一定時間の周期でサイクリックに実行されることが多いので、処理実行サイクル時間が短くなればなるほど、サイクル時間に占めるラダーアプリケーション実行時間の割合が高くなり、相対的に通信やその他の処理に割当てられる実行時間が少なくなり、通信やその他の処理を主眼としてみた場合、性能低下につながる。
【０００９】
これを回避するため、プログラマブルコントローラは、処理の優先度や定時性制約に合せて実行優先順位のついたタスクに処理を割付けてプログラミングしたり、定周期タスクなどを設定して一定時間ごとにタスクが起動されるようにプログラミングできるようになっている。しかし、実際には、それら全ての処理はアプリケーションスケジューラの上で実行されることになり、アプリケーションスケジューラ外で実行される処理、すなわちユーザアプリケーション以外の処理は後回しになってしまう。
【００１０】
上記第１の制御方法では、タスク個々に関して極め細かく制御でき、各タスクの処理時間の最適化により無駄時間を削減し、システム全体としての処理時間の向上にも寄与する。しかしながら図８に示す、基本システム１４の処理に関する制御は示されておらず、タスクであるユーザアプリケーションプログラム１０への適応方法の記述内容に留まっている。
【００１１】
上記第２の制御方法では、計算機のプロセススケジューラの固定優先度プロセススケジューラ空間にユーザレベルプロセススケジューラを設け、最上位としてスケジューリングすることにより、マルチメディアシステムで必要としている新しいプロセスの導入を容易にしている。しかしながら図８で示す、基本システム１４の処理に関する制御は示されておらず、あくまでもリアルタイムＯＳが管理するスケジューラを制御する記述内容に留まっている。
【００１２】
このように従来の技術においては、タスク管理の方法は多々提案されているが、ユーザがスケジューリングできない。また、基本システム１４とアプリケーションスケジューラ１６の時間配分の制御に関して言及している文献も無い。
本発明は、「ユーザアプリケーションの実行性能を優先したい場合」と「アプリケーションスケジューラで管理されない処理のうちデータ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合」、の切替えをユーザが簡易に設定可能であって、加えてアプリケーションの停止／起動の状態の時間配分をユーザが設定したときに、その設定でデータ処理実行可能か否かを判定し通知する装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
第１に、リアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理するために、前記リアルタイムオペレーティングシステムの１つの処理系として管理される帯域管理層と、ユーザによって前記帯域管理層の実行時間が設定されるときには、前記データ処理の実行時間が十分に確保されているか否かを判別し通知する判定手段と、を有するように構成する。
【００１４】
第２に、前記判定手段は、システムに接続される転送モジュール数と、システム全体の転送ワード数に基づいてデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定するように構成する。
第３に、前記判定手段は、データ転送ワード数最大とモジュール数最大のシステムを設定してデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定するように構成する。
【００１５】
第４に、リアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラを支援する支援装置において、前記プログラマブルコントローラは、システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理するために、前記リアルタイムオペレーティングシステムの１つの処理系として管理される帯域管理層を有し、前期支援装置は、ユーザによって前記帯域管理層の実行時間が設定されているときは、設定された実行時間が前記データ処理の実行時間を十分に確保しているか否かを判別し通知する判定手段を有するように構成する。
【００１６】
第５に、前記判定手段は、システムに接続される転送モジュール数と、システム全体の転送ワード数に基づいてデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定するように構成する。
第６に、前記判定手段は、データ転送ワード数最大とモジュール数最大のシステムを設定してデータ転送処理全体に掛かる時間を求め、設定された実行時間と比較して判定するように構成する。
【発明の効果】
【００１７】
本発明により、帯域管理層を介して、基本システム１４とアプリケーションスケジューラ１６との時間配分の制御が可能となり、その結果として、「ユーザアプリケーションの実行性能を優先したい場合」と「アプリケーションスケジューラで管理されない処理のうちデータ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合」、の切替えを簡易に調整可能になる。ユーザが調整・設定した状態において、データ処理実行可能か否かを判定し通知する機能も具備するので、ユーザの設定が不適なことに起因する処理の低下（例えば、運用中のデータ転送処理の抜けが発生したり、同時更新されるべきデータの一意性が保障されない）を回避するという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。始めに、プログラマブルコントローラ内におけるソフトウェア構造とスケジューリングについて説明する。
図１は、本発明のプログラマブルコントローラにおけるソフトウェア構造概略を示す図である。図２は、図１のプログラマブルコントローラにおけるタスク処理の流れを説明する図である。また、図３は、図２の操作をアプリケーションの実施例で説明する図である。
【００１９】
図１において、リアルタイムＯＳ２０は、帯域管理層１８を１つの処理系として呼び出し、その中で、アプリケーションスケジューラ１６とデータ処理１２とが呼び出される。帯域管理層１８は１実行サイクルの時間配分比率を、アプリケーションスケジューラ１６とデータ処理１２とに対して設定する。アプリケーションスケジューラ１６は、帯域管理層１８が設定した実行時間比率に従って、ユーザアプリケーションプログラム１０の処理を行い、残る時間はデータ処理１２が使用する。データ処理１２においては、データ通信処理やデータ転送処理、故障データ収集処理などが実行される。データ処理１２の処理が終わると、基本システム１４を実行する。
【００２０】
帯域管理層１８の時間配分比率は、図示しない外部の支援装置などから変更する。時間配分比率とは、基本システム１４での処理時間を除いた帯域管理層１８に割当てられる１実行サイクル時間を、アプリケーションスケジューラ１６とデータ処理１２の間でどのように時間配分するかを指定するパラメータである。ユーザは、全体の実行サイクル時間と、アプリケーション実行時間、データ処理実行時間を勘案し、システムに合った時間配分比率を設定する。
【００２１】
例えばデータ処理を優先させたカスタマイズを行う場合、図２（ａ）で示す状態から図２（ｂ）で示す状態に遷移させる。図中の破線はアプリケーションスケジューラとデータ処理の時間配分比率を、帯域管理層１８により可変させたことを示している。図２（ａ）ではアプリケーションに大きな時間配分比率を割当てラダーシーケンス重視の設定となっているが、図２（ｂ）ではデータ処理に大きな時間配分比率を割り当てているので、相対的にラダーシーケンスが使用できる実行時間は少なくなる。実行時間が少なくなり、はみ出した分は次の実行サイクルで処理される。従って、図２（ａ）では１実行サイクルで処理が終了していたラダーシーケンス処理が、図２（ｂ）では２実行サイクル掛かる。その反面、図２（ａ）では処理を終了するのに２実行サイクル掛かっていたデータ処理、バックグラウンド処理が、図２（ｂ）では１実行サイクルで終了する。このような使い分けの実施例を、図３に示す。図３（ａ）は、リアルタイム制御の例として位置決めなどを行うシステムを想定している。この場合、できる限りラダーシーケンス系の時間配分を大きく取り、位置決め性能を発揮できるようになる。図３（ｂ）は、監視系のアプリケーションの例として、画面にプログラマブルコントローラで収集したデータを表示するシステムを想定している。この場合、データ処理系に時間を大きく割当てることで、画面表示／更新性能を大きく向上できるようになる。
【００２２】
以上のように、図２（ａ）を図２（ｂ）に切替える操作、すなわち帯域管理層１８によりアプリケーションスケジューラとデータ処理の時間配分比率を可変させることにより、ユーザは、アプリケーション性能を優先（図３（ａ）参照）、或はデータ処理性能優先（図３（ｂ）参照）にするかの切替えを容易に実現可能となる。また、いずれの場合でも、プログラマブルコントローラとしてシステムを動作させるために必須の基本処理系は、１実行サイクルについて必要な時間を確保することができ、動作に支障のない範囲でカスタマイズを行う。
【００２３】
次に、プログラマブルコントローラシステムの構成と、同システムにおけるプログラマブルコントローラのＣＰＵモジュールのハードウェア構成例について説明する。
図４は、本発明で用いられるプログラマブルコントローラのシステム構成の一例を説明したものである。プログラマブルコントローラシステムは、演算機能を持つＣＰＵモジュール３２・３４・３６と、これらのＣＰＵモジュールへデータを入出力するＩ／Ｏモジュール３８と、ＣＰＵモジュールの設定等を支援する支援装置３０、及びこれらを接続する機器から構成される。
【００２４】
支援装置３０は専用の装置のときもあるが、通常は一般的なパソコン上のソフトウェアとして構成される。ここでは便宜上、ソフトウェアを管理するパソコンも含めて支援装置と呼称する。支援装置３０とＣＰＵモジュール３２はRS-232やUSB等の通信ケーブル４２により接続されている。なお、通信ケーブル４２はＣＰＵモジュール３４やＣＰＵモジュール３６と繋いでも構わない。
【００２５】
ＣＰＵモジュール３２・３４・３６とＩ／Ｏモジュール３８とは、入出力データ転送やメッセージ通信のため
に制御用ネットワーク４０にて接続されている。この制御用ネットワーク４０は、プログラマブルコントローラのメーカ専用であることが多く、例えば、制御用ネットワーク４０の一例としては、出願人の製品であるMICREX-SXシリーズで使用しているSXバスなどがある。
【００２６】
ＣＰＵモジュール３２・３４・３６とＩ／Ｏモジュール３８とは、ユーザの制御したいシステムの規模や構成によって自由に取捨選択可能である。ユーザは支援装置３０にて、システムの構成設定や各モジュールの動作設定を決定したり、アプリケーションプログラムを作成したりする。その後、これらの情報をＣＰＵモジュール３２・３４・３６にダウンロードする。
【００２７】
図５は、ＣＰＵモジュール５０の概略ハードウェア構成を説明したものであり、制御用ネットワーク６０関連部分のみ記載している（機能の一部を模式的に示したものであり、例えば、支援装置３０とのインタフェースや電源回路等は割愛している）。ＣＰＵモジュール５０は、前述のＣＰＵモジュール３２・３４・３６の各個を指し、制御用ネットワーク６０は制御用ネットワーク４０に相当する。
【００２８】
ＣＰＵモジュール５０は制御用ネットワーク６０に接続されるが、前述のように制御用ネットワーク６０はメーカ専用であるため、処理を制御するための専用ＬＳＩ５６が搭載されている。また、制御用ネットワーク６０へのデータ送受信のために、バッファ用のＲＡＭ５８も実装されている。ＣＰＵ５２と専用ＬＳＩ５６とは内部バス５４で通信し、データの送受信バッファを持つＲＡＭ５８を共用する。専用ＬＳＩ５６にはＲＡＭ５８にアクセスするための調停回路が含まれているので、ＣＰＵ５２は専用ＬＳＩ５６を経由してＲＡＭ５８に接続されている。
【００２９】
ここで調停回路とは、ＣＰＵ５２と専用ＬＳＩ５６とがＲＡＭ５８に同時アクセスするのを制限する回路である。
制御用ネットワーク６０へのデータ転送処理は、専用ＬＳＩ５６の機能であり、制御用ネットワーク６０上に接続された他のＣＰＵモジュールの専用ＬＳＩと同期を計り、自局の送受信タイミングにてバッファ用のＲＡＭ５８からデータを転送したり、制御用ネットワーク６０からデータを受信してバッファ用のＲＡＭ５８に書き込んだりする。これらの機能は専用ＬＳＩ５６のハードウェア的な機能であり、ＣＰＵ５２上で動作しているソフトウェアの処理は介在しない。従って、図１で示されているデータ処理帯域での処理は、主に専用ＬＳＩ５６への設定処理や、専用ＬＳＩ５６を介したバッファ用のＲＡＭ５８へのデータ転送処理となる。
【００３０】
プログラマブルコントローラシステムは以上のように構成され、また各ＣＰＵモジュールは専用ＬＳＩ５６を介して制御用ネットワーク６０からデータを送受信する。また、ここではＣＰＵモジュール５０が専用ＬＳＩ５６を具備する例を示したが、制御用ネットワーク６０との処理をソフトウェア的に処理したり、ＲＡＭ５８が専用ＬＳＩ５６に内蔵されていても構わない。
【００３１】
最後に、データフォーマットとデータ転送、及びユーザの設定に基づいたデータ処理時間帯域の判定処理について説明する。
図６は、バッファ用のＲＡＭ５８へのデータ転送処理フローチャートを示している。図７は、バッファ上の転送データフォーマットの一例を示しており、転送データフォーマットは使用するネットワークのプロトコルなどにより決まるが、一般的にこのような情報を含んだフォーマットになる。
【００３２】
図７ではＣＰＵモジュールからＩ／Ｏモジュールへの出力データの転送を想定しており、転送データはトータルサイズ７０（出力データ全体の大きさの情報）と送信局情報７２（送信元モジュールの局番などの情報）と各局番用データ７４（個々の出力モジュールへ転送するデータで、対象モジュールがｎ局あると想定）とから構成されている。各局番用データ７４は、ヘッダ情報７６と転送データ７８（実際のモジュールから出力されるデータ）とから構成され、更にヘッダ情報７６は宛先局番８０や転送データサイズ８２（転送データ７８の大きさの情報）とステータス８４（ステータスなどの補助情報）とから構成されている。図７に示すフォーマットのようなデータをセットするためには、各局は各出力ワードへデータをセットし、それをシステムに構成されている全局分繰り返せばよい。ここでワードとは、プログラマブルコントローラにおけるワードタグのことであり、内部メモリを数値情報として扱う際に使用する最小単位である。
【００３３】
図６のデータ転送処理フローチャートでは、内部ループにて各局の各ワードについてのデータセットを行い（ステップＳ１０８〜Ｓ１１２）、外部ループにてシステムに構成されている全モジュール分の転送処理を行う（ステップＳ１０２〜Ｓ１１４）。以下に、図７で示すようなデータフォーマットを転送することを想定し、その各ステップごとの処理の一例を説明する。
【００３４】
始めに転送モジュール数を初期化する（ステップＳ１００）。転送モジュール数には、転送処理の終わった対象モジュール（局）の数を格納する。また、始めに処理対象とするモジュールも決める。対象モジュールは一意に決まればよく、転送モジュール数から自動的に決めてもよい。例えば、図７のように局番が１からｎまで連番のときには、
転送モジュール数＝０なら局番１を対象
転送モジュール数＝１なら局番２を対象
・・・
転送モジュール数＝ｎ−１なら局番ｎを対象
のように決めても構わない。
【００３５】
次に外部ループを開始する。外部ループは、各局番用データ７４の転送の処理に相当する。まずは、転送モジュール数が設定モジュール数より小さければ続行し、それ以外の場合は転送処理を終了する（ステップＳ１０２）。ここで、設定モジュール数とは送信するモジュールや局の総数の情報である。ステップＳ１０２で転送モジュール数が設定モジュール数より小さかったときは、現在対象としているモジュールのヘッダデータ部分を設定する（ステップＳ１０４）。ヘッダデータは、ヘッダ情報７６に相当する。
【００３６】
次に内部ループの前処理として、転送ワード数を初期化する（ステップＳ１０６）。転送ワード数には、転送処理の終わったワードの数を格納する。
その後、内部ループを開始する。内部ループは、転送データ７８の転送の処理に相当する。まずは、転送ワード数がモジュールワード数より小さければ続行し、それ以外の場合はステップＳ１１４に分岐する（ステップＳ１０８）。ここで、モジュールワード数とは送信するモジュールの転送データの総ワード数を指す。ステップＳ１０８で転送ワード数がモジュールワード数より小さかったときは、現在対象としているモジールの転送データを設定する（ステップＳ１１０）。転送データは、転送データ７８に相当する。その後、転送ワード数を一つ増やしてステップＳ１０８に戻る（ステップ１１２）。
【００３７】
ステップＳ１１４に分岐したときは、転送モジュール数を一つ増やしてステップＳ１０２に戻る。
以上でデータ転送処理が完了するが、図示しないデータ転送の前後処理も併せて実行する。これは、トータルサイズ７０や送信局情報７２などのデータ転送や、通信において付加するエラー訂正用の情報などの処理を指す。
【００３８】
ここで、以上のフローチャートを数式化すると、内部ループの転送処理に掛かる時間は、
【００３９】
［数１］
a + bWi  ・・・  式１
で表される。ここで、aはヘッダデータ設定処理、bは転送データ設定処理に係わる定数、Wiはi番目のモジュールのワード数とする。これが、全モジュール分繰り返されるので、データ転送処理全体にかかる時間は、
【００４０】
［数２］
c + Σ(a + bWi)  ・・・  式２
で表される。ここで、cはデータ転送の前後処理、Σは全モジュールの和を表す。ΣWiはシステム全体の転送ワード数を示すので、これを改めてmとすると、式２は、
【００４１】
［数３］
c + an + bm  ・・・  式３
で表される。ここで、nは全モジュール数とする。
一方で、データ処理帯域にユーザによって割り当てられた時間は、1実行サイクル時間とデータ処理時間帯域の割合の設定から、
【００４２】
［数４］
rT  ・・・  式４
で表される。ここで、rはデータ処理帯域割合、Tは1実行サイクル時間とする。
以上の式１〜式４から、
【００４３】
［数５］
rT ＞ c + an + bm  ・・・  式５
の関係が判定処理として導出される。式５を満たすように、システムの構成、および1実行サイクル時間、データ処理時間帯域の割合を設定する。但し、実際には、データ処理時間帯域でその他のデータ処理も実行されるので、若干の余裕が必要になる。
【００４４】
ここで、式５に示す定数a、b、cは、ＣＰＵモジュール５０で使用するＣＰＵ５２、専用ＬＳＩ５６、ＲＡＭ５８やＣＰＵモジュール上のソフトウェア構造などによって定まる定数であるので、ＣＰＵモジュール毎に処理を実装していれば、支援装置にてＣＰＵモジュールの機種追加の度に判定処理を追加しなくともよい。その反面、ＣＰＵモジュール側で判定を行うため、支援装置上で設定を行っても、その時点では異常を判断できない。
【００４５】
一方で、支援装置に判定処理を実装していれば、設定を行った段階で異常を検出できるが、新しい種類のＣＰＵモジュールが追加されるたびに、支援装置の判定処理のバージョンアップを行う必要になる。
式５では、システムの構成に応じて、データ転送時間を細かく計算する方法を示した。より簡便な方法として、プログラマブルコントローラシステムの入力・演算・出力が安全に行えることにのみ着目すれば、データ転送ワード数最大、モジュール数最大のシステムを想定し、そのときに必要となるデータ転送時間を式４と比較して、設定可能か否かを判定しても構わない。
【００４６】
以上の本発明の説明から明らかなように、帯域管理層を介して、基本システム１４とアプリケーションスケジューラ１６との時間配分の制御が可能となり、切替えを簡易に調整可能になる。その際にユーザが調整・設定した配分でデータ処理の実行が可能か否かを、例えば、式５で示すような判定処理で判断し、結果をユーザに通知すればよい。また判定処理は、プログラマブルコントローラや支援装置のいずれかに搭載する。この結果、ユーザの設定が不適なことに起因する処理の低下（例えば、運用中のデータ転送処理の抜けが発生したり、同時更新されるべきデータの一意性が保障されない）を回避することが可能になる。
【図面の簡単な説明】
【００４７】
【図１】本発明のプログラマブルコントローラにおけるソフトウェア構造概略の説明図
【図２】本発明のプログラマブルコントローラにおけるタスクスケジューリングの説明図
【図３】本発明を利用したアプリケーション実施の一例を示した説明図
【図４】本発明のプログラムコントローラのシステム構成の一例を示す説明図
【図５】ＣＰＵモジュールの概略ハードウェア構成の説明図
【図６】本発明のデータ転送処理フローチャート
【図７】バッファ上の転送データフォーマットの一例を示す説明図
【図８】従来のプログラマブルコントローラにおけるソフトウェア構造概略の説明図
【図９】従来のシステムにおけるタスクスケジューリングの一例の説明図
【符号の説明】
【００４８】
１０  ユーザアプリケーションプログラム
１２  データ処理
１４  基本システム
１６  アプリケーションスケジューラ
１８  帯域管理層
２０  リアルタイムＯＳ
２２  ハードウェア
３０  支援装置
３２、３４、３６、５０  ＣＰＵモジュール
３８  Ｉ／Ｏモジュール
４０、６０  制御用ネットワーク
４２  通信ケーブル
５２  ＣＰＵ
５４  内部バス
５６  専用ＬＳＩ
５８  ＲＡＭ
７０  トータルサイズ
７２  送信局情報
７４  局番用情報
７６  ヘッダ情報
７８  転送データ
８０  宛先局番
８２  転送データサイズ
８４  ステータス
Ｓ１００〜Ｓ１１４  データ転送処理のステップ
【図１】
2008146357.tif 000003
【図４】
2008146357.tif 000004
【図５】
2008146357.tif 000005
【図６】
2008146357.tif 000006
【図７】
2008146357.tif 000007
【図８】
2008146357.tif 000008
【図９】
2008146357.tif 000009
【図２】
2008146357.tif 000010
【図３】
2008146357.tif 000011