(57)【要約】【課題】Ｗｅｂサーバに代表される情報通信サービスを提供するコントローラにおいて、情報通信サービスのリアルタイム処理機能を強化し、機器と機器との間の通信制御への適用範囲を広げる。【解決手段】通信内容に優先度情報を持たせ、優先度情報に基づいて対応する情報通信サービスの実行順序を制御するサービス実行優先度制御９２１を設ける。サービス実行優先度制御９２１が、優先度情報を有する通信内容と優先度情報とに基づいて対応する情報通信サービスの実行順序を制御し、通信内容により起動される通信サービスのうちで優先して処理すべきサービスと後回しにしてよいサービスとを判別し、優先して処理すべきサービスのリアルタイム処理をタスク実行制御タスク９３で確実に実行する。【選択図】　　　　図１
2004054622.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムＯＳと、前記リアルタイムＯＳにより管理される複数のタスクを含むアプリケーションタスク群と、ネットワーク通信サービスを提供する情報通信サービス手段と、タスクの実行を制御するタスク実行制御手段とを含み、機器を制御するとともに、ネットワーク上で情報通信サービスを実行するコントローラにおいて、
前記ネットワーク上の通信情報が、サービス優先度情報を含む情報であり、
前記コントローラが、前記通信情報のサービス優先度情報に応じてタスク優先度を変更し前記タスク実行制御手段にわたすサービス実行優先度制御手段を備えた
ことを特徴とするコントローラ。
【請求項２】
リアルタイムＯＳと、前記リアルタイムＯＳにより管理される複数のタスクを含むアプリケーションタスク群と、ネットワーク通信サービスを提供する情報通信サービス手段と、タスクの実行を制御するタスク実行制御手段とを含み、機器を制御するとともに、ネットワーク上で情報通信サービスを実行するコントローラにおいて、
前記ネットワーク上の通信情報が、サービス優先度情報およびサービス起動情報を含む情報であり、
前記コントローラが、前記通信情報のサービス優先度情報に応じてタスク優先度を変更し、前記サービス起動情報に応じて起動すべきタスクを前記タスク実行制御手段にわたすサービス実行優先度制御手段を備えたことを特徴とするコントローラ。
【請求項３】
請求項１または２に記載のコントローラにおいて、
前記ネットワーク上の通信情報が、起動すべきサービス情報を複数個含み、
前記タスク実行制御手段が、前記複数のタスクを続けて起動する
ことを特徴とするコントローラ。
【請求項４】
請求項１ないし３のいずれか一項に記載のコントローラにおいて、
前記ネットワーク上の通信情報が、実行するノード情報および前記ノードで実行すべきサービス情報を含む情報であり、
各前記タスク実行制御手段が、前記ノード情報および前記ノードで実行すべきサービス情報に応じて他のタスク実行制御手段と連動し、前記複数のタスクを起動する
ことを特徴とするコントローラ。
【請求項５】
プログラマブルコントローラ基本ブロックと、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、
前記プログラマブルコントローラ基本ブロックが、シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、プログラマブルコントローラ基本ブロックの実行状態を制御しモニタする実行状態制御モニタと、従来のプログラミングツールとの間の通信を処理する通信処理とからなり、
前記シーケンス制御連携Ｗｅｂサービスが、Ｗｅｂサービスを記述したスクリプト群と、Ｗｅｂサービススクリプトを実行するＷｅｂサービス実行エンジンとを含み、
前記Ｗｅｂサービス実行エンジンが、前記Ｗｅｂサービススクリプトに記載されているスクリプト言語の各命令を逐次解釈して実行する命令解釈と、通信処理内の各処理を起動する処理からなる通信処理起動ライブラリと、算術演算や文字列演算などの汎用命令を実行する処理からなる汎用処理ライブラリと、ＨＴＭＬテキスト作成とを含んでいる
ことを特徴とするプログラマブルコントローラ。
【請求項６】
プログラマブルコントローラ基本ブロックと、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、
前記プログラマブルコントローラ基本ブロックが、シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、プログラマブルコントローラ基本ブロックの実行状態を制御しモニタする実行状態制御モニタと、従来のプログラミングツールとの間の通信を処理する通信処理とからなり、
前記シーケンス制御連携Ｗｅｂサービスが、Ｗｅｂサービスマイコン命令コード群と、Ｗｅｂサービスマイコン命令コードを実行するＷｅｂサービス実行エンジンとを含み、
前記Ｗｅｂサービス実行エンジンが、通信処理起動ライブラリと、汎用処理ライブラリと、ＨＴＭＬテキスト作成とを含んでいる
ことを特徴とするプログラマブルコントローラ。
【請求項７】
シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、
前記シーケンス制御手段が、シーケンス制御処理と、Ｗｅｂサービス処理群と、シーケンス制御実行エンジンとを備え、
前記シーケンス制御実行エンジンが、前記シーケンス制御処理およびＷｅｂサービス処理群の命令コードを解釈して逐次実行する手段であり、
前記シーケンス制御連携Ｗｅｂサービスが、前記Ｗｅｂサービス処理群内の各サービスを起動するための設定情報からなるＷｅｂサービス起動情報群と、Ｗｅｂサービス起動情報群内のＷｅｂサービス起動情報を参照して対応するＷｅｂサービス処理群内のＷｅｂサービスを起動する処理を実行するＷｅｂサービス起動処理実行手段とからなる
ことを特徴とするプログラマブルコントローラ。
【請求項８】
タスクの実行順序を優先度に基づいて管理するリアルタイムＯＳと前記リアルタイムＯＳにより管理される複数個のタスクを含むプログラムを用いてネットワーク通信サービスを提供する情報通信サービス方法において、ネットワークの通信情報が、起動するネットワークサービス情報と優先度情報を含み、
前記優先度情報に応じてタスクの優先度を変更し、前記ネットワークサービスタスクを起動する
ことを特徴とする情報通信サービス方法。
【請求項９】
タスクの実行順序を優先度に基づいて管理するリアルタイムＯＳと前記リアルタイムＯＳにより管理される複数個のタスクを含むプログラムを用いてネットワーク通信サービスを提供する情報通信サービス方法において、ネットワークの通信情報が、起動するネットワークサービス情報と優先度情報とサービス起動情報とを有し、
前記優先度情報に応じてタスクの優先度を変更し、前記サービス起動情報に応じて前記ネットワークサービスタスクを起動する
ことを特徴とする情報通信サービス方法。
【請求項１０】
請求項８または９に記載の情報通信サービス方法において、
前記ネットワークの通信情報が、起動するネットワークサービス情報を複数個有し、
前記複数のネットワークサービスタスクを続けて起動する
ことを特徴とする情報通信サービス方法。
【請求項１１】
請求項８ないし１０のいずか一項に記載の情報通信サービス方法において、
前記ネットワークの通信情報が、実行するノード情報と、前記ノードで実行するネットワークサービス情報を有し、
ネットワークの通信情報を複数のコントローラにまたがって起動する
ことを特徴とする情報通信サービス方法。
【請求項１２】
機器をリアルタイム制御するプログラマブルなシーケンス制御手段と情報通信サービスを実行するＷｅｂサーバとを用いてネットワーク通信サービスを提供する情報通信サービス方法において、
各Ｗｅｂサービスのタイトル，メモリ割り付け情報を参照して追加する新しいＷｅｂサービスを格納できるだけの空き領域をメモリ上方に確保し、
新しいＷｅｂサービススクリプトをプログラマブルコントローラの臨時メモリ領域にダウンロードし、
ダウンロードしたスクリプトの使用変数，使用Ｉ／Ｏとプロファイル情報に登録されている変数情報，Ｉ／Ｏ情報とを比較して整合しているか否かを確認し、
確保した領域にダウンロードしたスクリプトを書き込み、
そのＷｅｂサービスの起動条件を設定してプロファイル情報内のＷｅｂサービス起動条件を更新する
ことを特徴とする情報通信サービス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、産業応用向けの製造ライン装置やロボットを監視制御するプログラマブルコントローラ、ビル内や家庭内の空調機器，セキュリティ機器，照明機器，エレベータなどの種々の装置を監視制御するプログラマブルコントローラ、電力，ガス，水道などのインフラストラクチャを支える機器を監視制御するプログラマブルコントローラに係り、特に、インターネットに代表される情報通信ネットワークに接続されＷｅｂ通信するコントローラまたはＸＭＬを用いて通信するコントローラに関する。
【０００２】
【従来の技術】
情報通信ネットワークに対応するＷｅｂサーバを搭載したコントローラの従来技術としては、例えば、特開平１１−２４７１６号公報に記載されたプログラマブルコントローラがある。
【０００３】
図２７は、従来のＷｅｂサーバ機能を搭載したプログラマブルコントローラの基本構成を示すブロック図である。プログラマブルコントローラ（本体）１は、プログラマブルコントローラのシーケンスプログラムを実行するシーケンス制御手段１１と、図示しない入出力モジュールとの間でデータを入出力する入出力処理１２と、プログラマブルコントローラの実行状態を制御しモニタする実行状態制御モニタ１３と、従来のプログラミングツールとの通信を処理する通信処理１４と、Ｗｅｂサーバ１５と、プログラマブルコントローラ１が装備する監視制御機能をメニュー形式で表現したテキストを格納するＨＴＭＬテキスト格納手段１６とからなる。
【０００４】
プログラマブルコントローラ１とコンピュータ３とは、Ｅｔｈｅｒｎｅｔ（登録商標）などのネットワーク２で接続されている。コンピュータ３は、Ｗｅｂブラウザを搭載していれば、パーソナルコンピュータでも、ワークステーション３でもよい。
【０００５】
コンピュータ３が、汎用Ｗｅｂブラウザを実行し、プログラマブルコントローラ１のＨＴＭＬテキストを指定すると、プログラマブルコントローラ１のＷｅｂサーバ１５は、ＨＴＴＰによる読み出し要求を実行し、ＨＴＭＬテキスト格納手段１６に格納されているＨＴＭＬテキストをコンピュータ３に返送する。
【０００６】
より詳細に記述すると、ＨＴＭＬテキストが、汎用Ｗｅｂブラウザに読み込まれ、プログラマブルコントローラ１がサポートする監視制御機能をＷｅｂサービスとしてメニュー形式で表示する。
【０００７】
メニューにハイパーテキストで表示されているＷｅｂサービス項目を選択して、ハイパーテキストにリンクされているＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）を呼び出せば、Ｗｅｂサーバ１５は、従来のプログラミングツールと通信する通信処理１４を呼び出す。
【０００８】
通信処理１４は、従来と同様のプログラマブルコントローラ専用のコマンドで実行状態制御モニタ１３に要求を送る。通信処理１４は、実行状態制御モニタ１３からの応答をＨＴＭＬテキスト形式でＷｅｂサーバ１５に返送する。
【０００９】
Ｗｅｂサーバ１５は、その応答をＨＴＭＬテキスト形式でコンピュータ３に返送し、実行中の汎用ＨＴＭＬブラウザに表示させる。
【００１０】
この種の従来技術には、特開２０００−１００８１０号公報，特開平１１−１６１３２２号公報，特開平１１−２４９７１７号公報，ＵＳＰ６，０６１，６０３に記載されたコントローラがある。
【００１１】
【発明が解決しようとする課題】
上記従来のプログラマブルコントローラ１において、Ｗｅｂサーバ１５に代表される情報通信サービスの第一の問題は、人と機器との間の情報のやりとりを改善することを主目的としており、機器と機器との間の通信制御で重要なサービスのリアルタイム処理を保証する機能を備えていないことである。
【００１２】
例えば、人がパーソナルコンピュータ３のＷｅｂブラウザを操作してプログラマブルコントローラ１の情報を監視しようとする時に、ある制御機器がプログラマブルコントローラ１の制御データを至急要求しているとする。
【００１３】
もし、パーソナルコンピュータ３からプログラマブルコントローラ１への通信の方が、制御機器からプログラマブルコントローラ１への通信よりも少しでも先に実行されれば、プログラマブルコントローラ１のＷｅｂサーバは、外部からの通信を先着順に処理をするので、パーソナルコンピュータ３からの通信の処理が終了しないと、制御機器から至急要求されている通信は、処理されない。
【００１４】
このように、制御機器からの通信は，例えばコンマ何秒といったリアルタイム処理が要求されているにもかかわらず、他の通信によりも、応答速度が悪化してしまう可能性がある。
【００１５】
一方で、パーソナルコンピュータからの通信の処理は、人がＷｅｂブラウザを監視しているのであるから、応答速度はあまり要求されず、例えばプログラマブルコントローラ１からの応答が２〜３秒後と返されたとしても、大きな問題にはならない。
【００１６】
上記従来技術における第二の問題は、Ｗｅｂサーバ１５により提供されるＷｅｂサービスなどの通信サービスが、プログラマブルでないことである。Ｗｅｂサーバ１５により提供可能なＷｅｂサービスは、通信処理１４が予め有するサービスのみであり、通信処理１４が有するサービス以外のサービスを提供できない。
【００１７】
特に、コントローラが上記従来技術のプログラマブルコントローラである場合には、シーケンス制御手段１１において実行されるシーケンス処理プログラムがユーザにより任意に内容を変更できるので、対応するＷｅｂサービスがプログラマブルでないことは、使い勝手を悪くしていた。
【００１８】
本発明の第一の目的は、Ｗｅｂサーバに代表される情報通信サービスのリアルタイム処理機能を強化し、機器と機器との間の通信制御への適用範囲を広げる手段を備えたプログラマブルコントローラを提供することである。
【００１９】
本発明の第二の目的は、前記プログラマブルコントローラを用いてプログラマブルな情報通信サービスを提供することである。
【００２０】
【課題を解決するための手段】
本発明は、上記第一の目的を達成するために、通信内容に優先度情報を持たせ、この優先度情報に基づいて対応する情報通信サービスの実行順序を制御するサービス実行優先度制御手段を設ける。
【００２１】
すなわち、本発明は、リアルタイムＯＳと、前記リアルタイムＯＳにより管理される複数のタスクを含むアプリケーションタスク群と、ネットワーク通信サービスを提供する情報通信サービス手段と、タスクの実行を制御するタスク実行制御手段とを含み、機器を制御するとともに、ネットワーク上で情報通信サービスを実行するコントローラにおいて、前記ネットワーク上の通信情報が、サービス優先度情報を含む情報であり、前記コントローラが、前記通信情報のサービス優先度情報に応じてタスク優先度を変更し前記タスク実行制御手段にわたすサービス実行優先度制御手段を備えたコントローラを提案する。
【００２２】
本発明においては、優先度情報を有する通信内容とこの優先度情報に基づき動作するサービス実行優先度制御手段とが、対応する情報通信サービスの実行順序を制御するので、通信内容により起動される通信サービスのうちで優先して処理すべき通信サービスと後回しにしてよい通信サービスとを判別でき、優先して処理すべき通信サービスを確実にリアルタイム処理できる。
【００２３】
本発明は、また、リアルタイムＯＳと、前記リアルタイムＯＳにより管理される複数のタスクを含むアプリケーションタスク群と、ネットワーク通信サービスを提供する情報通信サービス手段と、タスクの実行を制御するタスク実行制御手段とを含み、機器を制御するとともに、ネットワーク上で情報通信サービスを実行するコントローラにおいて、前記ネットワーク上の通信情報が、サービス優先度情報およびサービス起動情報を含む情報であり、前記コントローラが、前記通信情報のサービス優先度情報に応じてタスク優先度を変更し、前記サービス起動情報に応じて起動すべきタスクを前記タスク実行制御手段にわたすサービス実行優先度制御手段を備えたコントローラを提案する。
【００２４】
本発明において、サービス起動情報を参照すれば、周期タイマまたはイベント発生により毎回起動される通信内容のタスクを待ち行列から排除したり、待ち行列に登録された通信内容のタスクが起動される前に、そのタスクを待ち行列から排除し、そのタスクの実行を取り止めることが可能になる。
【００２５】
前記ネットワーク上の通信情報は、起動すべきサービス情報を複数個含み、前記タスク実行制御手段が、前記複数のタスクを続けて起動することができる。
【００２６】
タスク実行起動タスクの処理手順において、複数のサービスを有する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。通信内容のサービス優先度を高く設定しておけば、これらの複数のサービスは、優先的に実行されるので、確実なリアルタイム処理を保証できるようになる。
【００２７】
前記ネットワーク上の通信情報が、実行するノード情報および前記ノードで実行すべきサービス情報を含む情報とし、各前記タスク実行制御手段が、前記ノード情報および前記ノードで実行すべきサービス情報に応じて他のタスク実行制御手段と連動し、前記複数のタスクを起動することもできる。
【００２８】
タスク実行起動タスクの処理手順において、複数のコントローラ間で連動制御を実行する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。通信内容のサービス優先度を高く設定しておけば、これら複数のサービスは、優先的に実行されるので、複数のコントローラ間の連動制御の確実なリアルタイム処理を保証できるようになる。
【００２９】
本発明は、さらに、プログラマブルコントローラ基本ブロックと、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、前記プログラマブルコントローラ基本ブロックが、シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、プログラマブルコントローラ基本ブロックの実行状態を制御しモニタする実行状態制御モニタと、従来のプログラミングツールとの間の通信を処理する通信処理とからなり、前記シーケンス制御連携Ｗｅｂサービスが、Ｗｅｂサービスを記述したスクリプト群と、Ｗｅｂサービススクリプトを実行するＷｅｂサービス実行エンジンとを含み、前記Ｗｅｂサービス実行エンジンが、前記Ｗｅｂサービススクリプトに記載されているスクリプト言語の各命令を逐次解釈して実行する命令解釈と、通信処理内の各処理を起動する処理からなる通信処理起動ライブラリと、算術演算や文字列演算などの汎用命令を実行する処理からなる汎用処理ライブラリと、ＨＴＭＬテキスト作成とを含んでいるプログラマブルコントローラを提案する。
【００３０】
本発明は、プログラマブルコントローラ内のＷｅｂサーバと通信処理との間にシーケンス制御連携Ｗｅｂサービスを設けたので、Ｗｅｂサーバを搭載するプログラマブルコントローラにおいて、優先して処理すべき通信サービスを確実にリアルタイム処理する効果の他に、プログラマブルなＷｅｂサービスを提供できる効果が得られる。
【００３１】
本発明は、プログラマブルコントローラ基本ブロックと、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、前記プログラマブルコントローラ基本ブロックが、シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、プログラマブルコントローラ基本ブロックの実行状態を制御しモニタする実行状態制御モニタと、従来のプログラミングツールとの間の通信を処理する通信処理とからなり、前記シーケンス制御連携Ｗｅｂサービスが、Ｗｅｂサービスマイコン命令コード群と、Ｗｅｂサービスマイコン命令コードを実行するＷｅｂサービス実行エンジンとを含み、前記Ｗｅｂサービス実行エンジンが、通信処理起動ライブラリと、汎用処理ライブラリと、ＨＴＭＬテキスト作成とを含んでいるプログラマブルコントローラを提案する。
【００３２】
本発明のように、マイコン命令コード列中に情報を挿入すると、通信処理起動ライブラリ，汎用処理ライブラリ，ＨＴＭＬテキスト作成を直接呼び出すことが可能になる。
【００３３】
本発明は、また、シーケンスプログラムを実行処理するシーケンス制御手段と、入出力モジュールとの間でデータを入出力する入出力処理と、Ｗｅｂサーバと、ＨＴＭＬメニューと、シーケンス制御連携Ｗｅｂサービスと、プロファイル情報格納手段とから構成され、前記シーケンス制御手段が、シーケンス制御処理と、Ｗｅｂサービス処理群と、シーケンス制御実行エンジンとを備え、前記シーケンス制御実行エンジンが、前記シーケンス制御処理およびＷｅｂサービス処理群の命令コードを解釈して逐次実行する手段であり、前記シーケンス制御連携Ｗｅｂサービスが、前記Ｗｅｂサービス処理群内の各サービスを起動するための設定情報からなるＷｅｂサービス起動情報群と、Ｗｅｂサービス起動情報群内のＷｅｂサービス起動情報を参照して対応するＷｅｂサービス処理群内のＷｅｂサービスを起動する処理を実行するＷｅｂサービス起動処理実行手段とからなるプログラマブルコントローラを提案する。
【００３４】
プログラマブルコントローラで動作するＷｅｂサービスをコンパイルして作成するには、事前にプロファイル情報に登録されているライブラリ内の処理のメモリ割り付けなどの情報を取り出しておく。取り出した情報を利用して、ライブラリ内の処理へのジャンプ先アドレスなどの情報を、コンパイルして生成されるＷｅｂサービスのマイコン命令コード列中に挿入する。このようにマイコン命令コード列中に情報を挿入すると、通信処理起動ライブラリ，汎用処理ライブラリ，ＨＴＭＬテキスト作成を直接呼び出すことが可能になる。
【００３５】
本発明は、上記第二の目的を達成するために、従来の通信処理手段とＷｅｂサーバとの間にプログラマブルコントローラの通信処理手段内の各処理を起動する手段と、算術演算や文字列演算などの汎用処理を実行する手段と、ＨＴＭＬテキスト作成手段と、スクリプトを解釈してこれらの手段を呼び出しスクリプトに記載されている処理を実行する命令解釈手段と、Ｗｅｂサービスを記述したスクリプトとからなるシーケンス制御連携Ｗｅｂサービス手段を設ける。
【００３６】
すなわち、本発明は、タスクの実行順序を優先度に基づいて管理するリアルタイムＯＳと前記リアルタイムＯＳにより管理される複数個のタスクを含むプログラムを用いてネットワーク通信サービスを提供する情報通信サービス方法において、ネットワークの通信情報が、起動するネットワークサービス情報と優先度情報を含み、前記優先度情報に応じてタスクの優先度を変更し、前記ネットワークサービスタスクを起動する情報通信サービス方法を提案する。
【００３７】
本発明によれば、Ｗｅｂサービススクリプト群内のＷｅｂサービススクリプトにおいて、これらの基本的な通信処理と汎用処理ライブラリ内の汎用処理とを組み合わせて実行し、種々の応用的なＷｅｂサービスを実現できる。
【００３８】
本発明は、タスクの実行順序を優先度に基づいて管理するリアルタイムＯＳと前記リアルタイムＯＳにより管理される複数個のタスクを含むプログラムを用いてネットワーク通信サービスを提供する情報通信サービス方法において、ネットワークの通信情報が、起動するネットワークサービス情報と優先度情報とサービス起動情報とを有し、前記優先度情報に応じてタスクの優先度を変更し、前記サービス起動情報に応じて前記ネットワークサービスタスクを起動する情報通信サービス方法を提案する。
【００３９】
本発明において、サービス起動情報を参照すれば、周期タイマまたはイベント発生により毎回起動される通信内容のタスクを待ち行列から排除したり、待ち行列に登録された通信内容のタスクが起動される前に、そのタスクを待ち行列から排除し、そのタスクの実行を取り止めることが可能になる。
【００４０】
前記ネットワークの通信情報は、起動するネットワークサービス情報を複数個有し、前記複数のネットワークサービスタスクを続けて起動することができる。
【００４１】
タスク実行起動タスクの処理手順において、複数のサービスを有する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。通信内容のサービス優先度を高く設定しておけば、これらの複数のサービスは、優先的に実行されるので、確実なリアルタイム処理を保証できるようになる。
【００４２】
前記ネットワークの通信情報は、実行するノード情報と前記ノードで実行するネットワークサービス情報とを有し、ネットワークの通信情報を複数のコントローラにまたがって起動するも可能である。
【００４３】
タスク実行起動タスクの処理手順において、複数のコントローラ間で連動制御を実行する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。通信内容のサービス優先度を高く設定しておけば、これら複数のサービスは、優先的に実行されるので、複数のコントローラ間の連動制御の確実なリアルタイム処理を保証できるようになる。
【００４４】
本発明は、機器をリアルタイム制御するプログラマブルなシーケンス制御手段と情報通信サービスを実行するＷｅｂサーバとを用いてネットワーク通信サービスを提供する情報通信サービス方法において、各Ｗｅｂサービスのタイトル，メモリ割り付け情報を参照して追加する新しいＷｅｂサービスを格納できるだけの空き領域をメモリ上方に確保し、新しいＷｅｂサービススクリプトをプログラマブルコントローラの臨時メモリ領域にダウンロードし、ダウンロードしたスクリプトの使用変数，使用Ｉ／Ｏとプロファイル情報に登録されている変数情報，Ｉ／Ｏ情報とを比較して整合しているか否かを確認し、確保した領域にダウンロードしたスクリプトを書き込み、そのＷｅｂサービスの起動条件を設定してプロファイル情報内のＷｅｂサービス起動条件を更新する情報通信サービス方法を提案する。
【００４５】
Ｗｅｂサービススクリプト群内のＷｅｂサービスは、通信処理や汎用処理を使用可能なスクリプト言語で記述でき、プログラマブルである。さらに、プロファイル情報内のＷｅｂサービス情報を利用すると、プログラマブルコントローラ稼動中にＷｅｂサービスを更新（追加および削除）できる。
【００４６】
【発明の実施の形態】
次に、図１〜図２６を用いて，本発明によるプログラマブルコントローラおよびこのコントローラを応用したプログラマブルな情報通信サービスの実施形態を説明する。
≪コントローラ１の実施形態≫
図１は、リアルタイム処理に優れた情報通信サービスを実現するための本発明によるコントローラの基本構成を示すブロック図である。
【００４７】
コントローラ１００は、メモリ８１と、Ｉ／Ｏインタフェース８３と、ＣＰＵ８４と、ネットワーク制御回路８５とから構成され、メモリ８１，Ｉ／Ｏインタフェース８３，ＣＰＵ８４，ネットワーク制御回路８５は、バス８２に接続されている。
【００４８】
Ｉ／Ｏインタフェース８３は、機器３１をプログラマブルコントローラ１００に接続する。
【００４９】
ＣＰＵ８４は、タイマ８４１と、割り込み制御回路ＩＮＴ８４２とを含む。
【００５０】
ネットワーク制御回路８５は、ネットワーク２をプログラマブルコントローラ１００に接続する。
【００５１】
ネットワーク２には、Ｗｅｂブラウザ９０を内蔵するパーソナルコンピュータ３と機器３２とが接続されている。パーソナルコンピュータ３は、ＰＤＡや携帯電話機でもよい。
【００５２】
メモリ８１には、ＣＰＵ８４で実行されるプログラムが格納されている。プログラムには、基本ソフトウェアであるオペレーティングシステムＯＳと、ＯＳにより管理実行されるタスクとが含まれている。すなわち、ＣＰＵ８４で実行されるプログラムは、アプリケーションタスク群９１と、情報通信サービス手段としての情報通信サービスタスク９２と、タスク実行制御手段としてのタスク実行制御タスク９３と、リアルタイムＯＳ９４とから構成される。
【００５３】
アプリケーションタスク群９１は、例えば、４個のタスク９１０１，９１０２，９１０３，９１０４からなる。
【００５４】
情報通信サービスタスク９２は、サービス実行制御９２１と情報通信サービス９２２とからなる。情報通信サービス９２２は、ＷｅｂサーバやＸＭＬパーサなどである。
【００５５】
特に、情報通信サービス９２２がＷｅｂサーバである場合は、情報通信サービス９２２とサービス実行制御９２１とのインタフェースは、一般的にはＣＧＩである。
【００５６】
リアルタイムＯＳ９４は、Ｉ／Ｏドライバ９４１と、タスクスケジューラ９４２と、ネットワークドライバ９４３とを内部に含む。
【００５７】
図１は、パーソナルコンピュータ３からプログラマブルコントローラ１００に送られる通信内容２１と、機器３２からプログラマブルコントローラ１００に送られる通信内容２２とを併せて示している。
【００５８】
通信内容２１は、優先度２１１，起動サービスＩＤ２１２，データ２１３などの情報を内部に有し、通信内容２２は、優先度２２１，起動サービスＩＤ２２２，データ２２３などの情報を内部に有する。
【００５９】
次に、プログラマブルコントローラ１００の基本動作を説明する。ＣＰＵ８４は、リアルタイムＯＳ９４内のタスクスケジューラ９４２に基づき、内部のタスク実行待ち行列に登録されている実行可能状態のタスクのうち、優先度の高いタスクから順番に実行していく。
【００６０】
実行するタスクが、情報通信サービスタスク９２のように、ネットワーク通信を実行するタスクであれば、そのタスクは、ネットワークドライバ９４３を経由して、ネットワーク制御回路８５がネットワーク２から受信した通信内容を読み込み、対応する通信処理を実行する。そのネットワーク通信タスクは、通信処理で得られた送信すべき通信内容をネットワーク制御回路８５に渡して、ネットワーク２に送信してもらう。
【００６１】
一方、実行するタスクが機器３１を制御するタスクであれば、その制御タスクは、Ｉ／Ｏドライバ９４１，Ｉ／Ｏインタフェース８３を経由して、機器３１からデータを入力し、対応する制御処理を実行する。その制御タスクは、制御処理で得られた結果を、Ｉ／Ｏドライバ９４１，Ｉ／Ｏインタフェース８３を経由して、機器３１に出力し、機器３１を監視制御する。
【００６２】
サービス実行優先度制御９２１は、ネットワークから受信した通信内容２１，２２内の優先度情報および起動サービス情報を参照して起動サービスを実行するタスクを見つけ出し、そのタスクを実行するために、タスク実行制御タスク９３に通知する。
【００６３】
サービス実行優先度制御９２１およびタスク実行制御タスク９３の詳細は後述する。
【００６４】
タスク実行制御タスク９３は、周期タイマまたはイベント割り込みにより起動される。タスク実行制御タスク９３は、サービス実行優先度制御９２１により予め通知されたタスクのうち、タスク実行制御タスク９３を起動した割り込み要因に対応して起動すべきタスクを実行可能状態にして、そのタスクをタスクスケジューラ９４が管理するタスク実行待ち行列に登録する。
【００６５】
なお、タスク実行制御タスク９３は、タスクではなく、割り込み処理ルーチンとして実装してもよい。
≪サービス実行優先度制御９２１および
タスク実行制御タスク９３の実施形態１≫
図２〜図６を参照して、サービス実行優先度制御９２１およびタスク実行制御タスク９３の実施形態１を説明する。
【００６６】
図２は、パーソナルコンピュータ３または機器３２からプログラマブルコントローラ１００に送られる通信内容の一例を示す図である。通信内容２０１は、サービス優先度２０１１と、起動サービスＩＤ２０１２と、起動サービスに渡すデータ２０１３とからなる。サービス優先度の値および起動動サービスＩＤは、システム全体で一意に定義される。
【００６７】
図３は、サービス実行優先制御９２１の基本構成および通信内容の推移を示すブロック図である。サービス実行優先度制御９２１は、サービス優先度→タスク優先度変換９２１１、起動サービスＩＤ→タスクＩＤ変換９２１２、情報変換９２１３、サービス優先度〜タスク優先度対応表９２１４、起動サービス〜タスク対応表９２１５からなる。
【００６８】
サービス優先度〜タスク優先度対応表９２１４は、サービス優先度を各コントローラ内のタスク優先度に置き換えるための変換表である。この変換表により各コントローラ毎に適切な変換表を作成すると、コントローラ毎にタスクの優先度の扱いが異なっても、システム全体を通してタスクの優先度の重み付けを統一化できる。
【００６９】
一方、起動サービス〜タスク対応表９２１５は、起動サービスＩＤを各コントローラ内で該当する起動サービスを実行するタスクＩＤに置き換えるための変換表である。
【００７０】
通信内容２００，２００１，２００２，２００３は、通信内容が情報通信サービス９２２からタスク実行制御タスク９３に渡る間の途中経過を含めた通信内容を示している。
【００７１】
情報通信サービス９２２から取り出された通信内容２００のサービス優先度が２であり、サービスＩＤが１である場合のサービス実行優先制御９２１の動作を説明する。
【００７２】
サービス実行優先制御９２１は、サービス実行優先制御９２１内のサービス優先度→タスク優先度変換９２１１において、サービス優先度〜タスク優先度対応表９２１４を参照し、サービス優先度＝２に対応するタスク優先度として９を見つけ出し、通信内容２００のサービス優先度２をタスク優先度９に置き換える（２００１）。
【００７３】
サービス実行優先制御９２１は、起動サービスＩＤ→タスクＩＤ変換９２１２において、起動サービス〜タスク対応表９２１５を参照し、更新された通信内容２００１内のサービスＩＤ＝サービス１に対応するタスクＩＤとして３を見つけ出し、通信内容のサービスＩＤをタスクＩＤに置き換える（２００２）。
【００７４】
もし、ネットワークから送られてくる通信内容が、ＸＭＬまたはＨＴＭＬのような文字列情報である場合、最後に、情報変換９２１３において、文字列情報である通信内容２００２をバイトコードの通信内容２００３に変換し、タスク実行制御タスク９３に渡す。
【００７５】
もし、ネットワークから送られてくる通信内容が、最初からバイトコードである場合は、情報変換９２１３は、不要である。
【００７６】
図４は、サービス実行優先制御９２１とタスク実行制御タスク９３との連携動作を示すブロック図である。起動サービス登録待ち行列９３１は、サービス起動方法９３０のメンバである各サービス起動方法を含んでいる。
【００７７】
図４のサービス起動方法９３０は、以下の１３種類のサービス起動方法
１０ｍｓ　一回：１０ｍｓ周期タイマにより一回のみ起動
２０ｍｓ　一回：２０ｍｓ周期タイマにより一回のみ起動
４０ｍｓ　一回：４０ｍｓ周期タイマにより一回のみ起動
１０ｍｓ　毎回：１０ｍｓ周期タイマにより毎回起動
２０ｍｓ　毎回：２０ｍｓ周期タイマにより毎回起動
４０ｍｓ　毎回：４０ｍｓ周期タイマにより毎回起動
イベント１　一回：イベント１発生時に一回だけ起動
イベント２　一回：イベント２発生時に一回だけ起動
イベント３　一回：イベント３発生時に一回だけ起動
イベント１　毎回：イベント１発生時に毎回起動
イベント２　毎回：イベント２発生時に毎回起動
イベント３　毎回：イベント３発生時に毎回起動
即時起動　一回：サービス実行優先度制御が通信内容を登録次第、直ちにタスク実行制御タスクを起動し、登録した通信内容に対応するタスクを起動
からなる。
【００７８】
起動サービス登録待ち行列９３１では、「１０ｍｓ　毎回」の待ち行列に＜優先度４，タスクＡ＞の通信内容２００Ｄ１が登録され、「イベント２　一回」の待ち行列に＜優先度５，タスクＢ＞の通信内容２００Ｃ１が登録され、「即時起動　一回」の待ち行列に＜優先度９，タスク３＞の通信内容２００Ａ１が登録されている。
【００７９】
図４では、サービス実行優先度制御９２１において更新された通信内容２００Ｘ１は、「即時起動　一回」の待ち行列に登録されるとする。
【００８０】
タスク実行制御タスク９３は、各種割り込みにより起動される。図４の例において、タスク実行制御タスク９３は、１０ｍｓタイマ割り込み８４１１，２０ｍｓタイマ割り込み８４１１，４０ｍｓタイマ割り込み８４１１，イベント１割り込み８４２１，イベント２割り込み８４２２，イベント３割り込み８４２３，即時起動割り込み８４３の各種割り込みにより起動される。
【００８１】
なお、サービス実行優先制御９２１は、通信内容２００Ｘ１を起動サービス登録待ち行列９３１内の「即時起動　一回」の待ち行列に登録したら、直ちに即時起動割り込み８４３に割り込みイベントを発生させる。
【００８２】
図５は、タスク実行制御タスク９３の動作を示すフローチャートである。タスク実行制御タスク９３は、各種割り込みにより起動されると、割り込みの原因を調べる。タスク実行制御タスク９３は、起動サービス登録待ち行列９３１内のサービス起動方法９３０において、割り込みの原因に対応するサービス起動方法にからなり待ち行列に登録されている全ての通信内容について、通信内容に対応したタスクを起動する（７０１）。
【００８３】
なお、割り込み原因と対応するサービス起動方法との関係は、
１０ｍｓタイマ割り込み→１０ｍｓ　一回，１０ｍｓ　毎回
２０ｍｓタイマ割り込み→２０ｍｓ　一回，２０ｍｓ　毎回
４０ｍｓタイマ割り込み→４０ｍｓ　一回，４０ｍｓ　毎回
イベント１割り込み→イベント１　一回，イベント１　毎回
イベント２割り込み→イベント２　一回，イベント２　毎回
イベント３割り込み→イベント３　一回，イベント３　毎回
即時起動割り込み→　即時起動　一回
となる。
【００８４】
タスクの起動とは、具体的には、リアルタイムＯＳ９４内のタスクスケジューラ９４２において、起動すべきタスクの優先度を通信内容に登録されている優先度の値に更新し、そのタスクを実行可能状態にすることである。
【００８５】
その際、実行対象の通信内容が、「＊＊＊　一回」、すなわち、一回のみ起動のサービス起動方法に登録されているか否か調べ（７０２）、一回のみ起動のサービス起動方法に登録されているならば、その通信内容を待ち行列から削除する（７０３）。
【００８６】
なお、７０２において一回のみ起動のサービス起動方法に登録されていない場合は、その通信内容は、待ち行列に登録したままとする。
【００８７】
図４の場合、サービス実行優先度制御９２１において更新された通信内容２００Ｘ１は、「即時起動　一回」の待ち行列に登録されるとしたが、通信内容２００Ｘ１は、「即時起動　一回」ではない待ち行列に登録されてもよい。
【００８８】
図６は、サービス実行優先制御９２１とタスク実行制御タスク９３との連携動作の別の例を示すブロック図である。ここでは、通信内容２００Ｘ１は、「１０ｍｓ　一回」の待ち行列に登録されるとしている。
【００８９】
この場合、１０ｍｓタイマ割り込みが発生する度に、それまでにサービス実行優先度制御９２１により「１０ｍｓ　一回」の待ち行列に登録された通信内容に登録されているタスクが起動されることになる。
【００９０】
この場合、サービス実行優先度制御９２１は、通信内容を登録後、即時起動割り込み８４３に割り込みイベントを発生させる必要は無くなる。
≪サービス実行優先度制御９２１および
タスク実行制御タスク９３の実施形態２≫
図７〜図９を参照して、サービス実行優先度制御９２１およびタスク実行制御タスク９３の実施形態２を説明する。
【００９１】
図７は、パーソナルコンピュータ３または機器３２からプログラマブルコントローラ１００に送られる通信内容の他の例を示す図である。通信内容２０１は、サービス優先度２０１１と、動サービスＩＤ２０１２と、起動サービスに渡すデータ２０１３とからなる。本実施形態２のサービス優先度２０１１は、サービス優先度２０１１１とサービス起動方法２０１１２とを含んでいる。サービス優先度の値および起動サービスＩＤは、図２の場合と同様に、システム全体で一意に定義される。
【００９２】
図８は、サービス実行優先制御９２１における入力時と出力時の通信内容を示す図である。図８において、サービス実行優先度制御９２１は、図２の場合と同様である。
【００９３】
通信内容２０１，２０１３は、通信内容が情報通信サービス９２２からタスク実行制御タスク９３に渡る際のサービス実行優先制御９２１への入力時と出力時の通信内容を示している。通信内容２０１，２０１３は、図３の２００，２００３と比較して、サービス起動方法の情報（この場合「４０ｍｓ　一回」）が増えている。
【００９４】
図９は、本実施形態２におけるサービス実行優先制御９２１とタスク実行制御タスク９３との連携動作を示すブロック図である。本構成は、起動サービス登録待ち行列９３１内に登録されている通信内容を除けば、図３と同じである。
【００９５】
図３との違いは、サービス実行優先度制御９２１において更新された通信内容２００Ｘ１が、通信内容の「サービス起動方法」に対応する待ち行列に登録されることである。
【００９６】
例えば、図３の起動サービス登録待ち行列９３１において、サービス実行優先度制御９２１により、
「４０ｍｓ　一回」の待ち行列：＜優先度９，４０ｍｓ　一回，タスク３＞の通信内容２００Ａ１，＜優先度２３，４０ｍｓ　一回，タスク１＞の通信内容２００Ｂ１
「イベント１　毎回」の待ち行列：＜優先度１７，イベント１　毎回，タスク４＞の通信内容２００Ｃ１、
「即時起動　一回」の待ち行列：＜優先度４，即時起動　一回，タスク２＞の通信内容２００Ｄ１
という通信内容が、それぞれ登録される。
【００９７】
タスク実行制御タスク９３の動作は、上記実施形態と同じである。
【００９８】
なお、通信内容のサービス起動方法として、今までに説明してきた方法の他に、新たに「起動停止」を設けると、サービス実行優先度制御９２１により、既に起動サービス待ち行列９３１に登録されている同一タスクＩＤを有する通信内容を削除できる。
【００９９】
この方法により、サービス起動情報を参照すれば、周期タイマまたはイベント発生により毎回起動される通信内容のタスクを待ち行列から排除したり、待ち行列に登録された通信内容のタスクが起動される前に、そのタスクを待ち行列から排除し、そのタスクの実行を取り止めることが可能になる。
【０１００】
以上の実施形態によれば、優先度情報を有する通信内容に基づいて動作するサービス実行優先度制御とが、対応する情報通信サービスの実行順序を制御するので、通信内容により起動される通信サービスのうち、優先して処理すべき通信サービスと、後回しにしてよい通信サービスとを判別でき、優先して処理すべき通信サービスを確実にリアルタイム処理できる。
≪複数サービスの連続起動≫
図１０〜図１３を参照して、複数のサービスを含む通信内容を受信した場合の実施形態を説明する。
【０１０１】
図１０は、複数のサービスを連続起動する場合の通信内容を示す図である。図１０の実施形態においては、機器１（３０１）を監視制御するコントローラ１（１０１）と、機器２（３０２）を監視制御するコントローラ２（１０２）とが、ネットワーク２により接続されている。
【０１０２】
図１０では、コントローラ１（１０１）が、通信内容２５の情報をコントローラ２（１０２）に送る。通信内容２５には、コントローラ２（１０２）で実行される起動サービスが２つ存在する。通信内容２５は、優先度２５１と、起動サービス１（２５２１）と、起動サービス１用のデータ１（２５３１）と、起動サービス２（２５２２）と、起動サービス２用のデータ２（２５３２）とからなる。
【０１０３】
図１１は、起動サービス登録待ち行列への通信内容の一登録例を示す図である。図１２は、起動サービス登録待ち行列への通信内容の一登録例を示す図である。すなわち、これらの図は、コントローラ２（１０２）における起動サービス登録待ち行列９３１を示す図である。
【０１０４】
図１１は、通信内容が、サービス実行優先度制御９２１により、サービス起動方法９３０内の「即時起動　一回」の待ち行列に最初に登録された状態を示している。待ち行列に登録されている通信内容２５０３は、まだ起動サービスを実行していないので、起動サービス１（２５２１），起動サービス２（２５２２）に対応するタスク３，タスク１が、通信内容２５０３内に登録されている。
【０１０５】
一方、図１２は、図１１の状態から、タスク実行起動タスク９３が通信内容２５０３内に登録されているタスクを頭から１つ実行した後の状況を示している。
最初の起動サービス１（２５２１）に対応するタスク３が起動されたので、タスク３およびタスク３用のデータが、「即時起動　一回」の待ち行列に登録されている通信内容２５０３１から削除され、次に起動する起動サービス２（２５２２）に対応するタスク１のみが通信内容２５０３内に登録されている。
【０１０６】
図１３は、複数のサービスを連続起動する場合のタスク実行制御タスク９３の動作を示すフローチャートである。タスク実行制御タスク９３は、各種割り込みにより起動されると、割り込みの原因を調べる。タスク実行制御タスク９３は、起動サービス登録待ち行列９３１内のサービス起動方法９３０において、割り込みの原因に対応して待ち行列に登録されている全ての通信内容について、通信内容に登録されているタスクを先頭から１個起動する（７０１）。
【０１０７】
実行対象の通信内容が「＊＊＊　一回」、すなわち、一回のみ起動のサービス起動方法に登録されているか否か調べ（７０２）、一回のみ起動のサービス起動方法に登録されているならば、その通信内容より、今回起動されたタスクを削除する（７０２１）。
【０１０８】
その際、通信内容内に未実行のタスクが存在するか否かを確認し（７０２２）、存在しないならば、その通信内容を待ち行列から削除する（７０３）。
【０１０９】
なお、７０２において一回のみ起動のサービス起動方法に登録されていない場合、および、７０２２において、未実行のタスクが存在する場合は、その通信内容は、待ち行列に登録したままとする。
【０１１０】
タスク実行起動タスク９３の上記処理手順において、複数のサービスを有する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。
【０１１１】
通信内容のサービス優先度を高く設定しておけば、これらの複数のサービスは、優先的に実行されるので、確実なリアルタイム処理を保証できるようになる。
【０１１２】
なお、図１０では、通信内容に起動サービスが２つ存在する例を示したが、通信内容中の起動サービスの個数に制限はない。
≪複数コントローラ間の連動制御≫
図１４〜図１７を参照して、複数のコントローラが連動制御する実施形態を説明する。
【０１１３】
図１４は、複数のコントローラ１０１〜１０３が連動制御する場合の通信内容を示す図である。図１４の実施形態においては、機器１（３０１）を監視制御するコントローラ１（１０１）と、機器２（３０２）を監視制御するコントローラ２（１０２）と、機器３（３０３）を監視制御するコントローラ３（１０３）とが、ネットワーク２により接続されている。
【０１１４】
図１４では、コントローラ１（１０１）からコントローラ２（１０２）に通信内容２３を送る。コントローラ２（１０２）は、通信内容２３に応じて起動されるサービスを実行した後、コントローラ３（１０３）に対して、通信内容２３′を送信する。コントローラ３（１０３）は、通信内容２３′に応じてサービスを起動する。
【０１１５】
コントローラ１（１０１）から送られる通信内容２３には、これから一連の処理を複数のコントローラで連携して実行するための処理手順、すなわち、実行すべきコントローラおよびそのコントローラにおいて実行するサービスが記載されている。
【０１１６】
図１４の通信内容２３では、一連の処理を優先度２３１で実行しようとしており、最初にコントローラ２（２３０１）において、起動サービスＡ（２３２１）を実行し、続いて、コントローラ３（２３０２）において、起動サービスＢ（２３２２）を実行する。処理内容２３は、コントローラ１→コントローラ２→コントローラ３と渡り歩くことになり、これらコントローラ間の連携制御を実現する。
【０１１７】
なお、起動サービスは、実行されると通信内容から削除されるので、コントローラ２からコントローラ３に送る通信内容２３′では、もとの通信内容２３から、コントローラ３で実行されたサービスに相当する部分２３０１，２３２１，２３３１が削除されている。
【０１１８】
また、通信内容２３′内のコントローラ３で実行する起動サービスＢ用のデータは、コントローラ２において変更または追加される場合がある。その場合、通信内容２３内の起動サービスＢ用のデータと比較して、情報が更新される。
【０１１９】
図１５は、起動サービス登録待ち行列への通信内容の一登録例を示す図である。図１６は、起動サービス登録待ち行列への通信内容の一登録例を示す図である。すなわち、図１５および図１６は、コントローラ２（１０２）およびコントローラ３（１０３）における起動サービス登録待ち行列９３１を示している。
【０１２０】
本実施形態では、通信内容のサービス起動方法が「１０ｍｓ　一回」のため、図１５，図１６ともに、通信内容は、サービス実行優先度制御９２１により、サービス起動方法９３０内の「１０ｍｓ　一回」の待ち行列に登録される。
【０１２１】
図１７は、複数のコントローラ間で連動制御する場合のタスク実行制御タスク９３の動作を示すフローチャートである。
【０１２２】
タスク実行制御タスク９３は、各種割り込みにより起動されると、割り込みの原因を調べ、起動サービス登録待ち行列９３１内のサービス起動方法９３０において、割り込みの原因に対応するサービス起動方法により構成される待ち行列に登録されている全ての通信内容について、通信内容に登録されているタスクを先頭から１個起動する（７０１）。
【０１２３】
実行対象の通信内容が「＊＊＊　一回」、すなわち、一回のみ起動のサービス起動方法に登録されているか否か調べ（７０２）、一回のみ起動のサービス起動方法に登録されているならば、その通信内容から、今回起動されたタスクを削除する（７０２１）。
【０１２４】
その際、通信内容内に自コントローラで実行すべき未実行のタスクが存在するか否かを確認し（７０２２１）、存在しないならば、その通信内容内で自コントローラで実行する起動サービス情報を削除し、通信内容を待ち行列から削除する（７０３１）。
【０１２５】
さらに、通信処理内で実行すべき起動サービスが空になったか否かを確認し（７０４）、空でないならば、通信内容を次に実行するコントローラに送る。
【０１２６】
一方、７０２において一回のみ起動のサービス起動方法に登録されていない場合、７０２２１において、自コントローラで実行すべき未実行のタスクが存在する場合は、その通信内容を待ち行列に登録したままとする。
【０１２７】
７０４において通信内容内で実行すべき起動サービスが空になった場合は、その通信内容で実行すべきサービスを全て実行し、通信内容が完了したことを意味する。
【０１２８】
タスク実行起動タスク９３の上記処理手順において、複数のコントローラ間で連動制御を実行する通信内容が実行される場合、この通信内容内の各サービスは、一回のみ起動のサービス起動である。
【０１２９】
通信内容のサービス優先度を高く設定しておけば、これら複数のサービスは、優先的に実行されるので、複数のコントローラ間の連動制御の確実なリアルタイム処理を保証できるようになる。
【０１３０】
なお、図１４では、３つのコントローラ間の連動制御の例を示したが、連動制御するコントローラの個数に制限はない。
【０１３１】
また、説明を簡単にするため、各コントローラにおける起動サービスの個数を１個としたが、起動サービスの個数にも制限はない。
【０１３２】
さらに、本発明では、主に受信の場合を説明したが、通信内容を新規に送る場合は、基本的に送る通信サービスの中で、通信内容を定義することになる。
【０１３３】
また、通信内容を受信して返信する場合、返信の通信内容の優先度情報は、特に問題がない限り、受信した通信内容の優先度情報と同一とする。
≪通信内容のＸＭＬ表記≫
図１８は、通信内容をＸＭＬで表現した場合の一例を示す図である。通信内容タグにより囲まれる部分が通信内容の中味を示している。
【０１３４】
優先度タグ内には、サービス優先度タグとサービス起動方法タグとの２種類が入り、サービス優先度とサービス起動方法とを示す。
【０１３５】
起動サービスタグは、ノードの起動サービスを表しており、実行ノードＩＤを示す実行ノードタグとサービス内容を示すサービスタグとからなる。
【０１３６】
サービスタグは、サービスＩＤを示すサービス名タグとサービス実行に必要なデータを格納するデータタグとからなる。
【０１３７】
データタグ内へのデータは、データの種類を示すタグとセットで格納する。
【０１３８】
図１８の実施形態では、スイッチ状態タグにデータ“ＯＮ”が格納され、さらに、ＲＰＭタグに回転数２００が格納されている。
【０１３９】
なお、データタグに格納されるデータの個数は、任意であり、起動サービスタグ内のサービスタグにより表されるサービスの個数も任意である。
【０１４０】
また、通信内容タグ内の起動サービスタグにより表されるノードの起動サービスの個数も任意である。
【０１４１】
さらに、サービス起動方法タグおよび実行ノードタグは、省略可能である。
【０１４２】
以上、ＸＭＬによる通信内容の一例を示したが、通信内容において、特に、上記複数のサービスの連続起動や複数のコントローラ間の連動制御など、複数のサービスを起動する複雑な処理手順の場合は、これらサービスの連続起動やコントローラ間の連動制御を管理するエージェントプログラムにおいて通信内容を実現する方法もある。
≪プログラマブルな情報通信サービス≫
≪スクリプト実行によるＷｅｂサービス≫
≪プログラマブルコントローラ１０の全体構成≫
図１９は、プログラマブルなＷｅｂサービスを実現するコントローラ１０のソフトウェアモジュールの基本構成を示すブロック図である。
図１９において、プログラマブルコントローラ１０は、プログラマブルコントローラ基本ブロック１１０と、Ｗｅｂサーバ１５と、ＨＴＭＬメニュー１６と、シーケンス制御連携Ｗｅｂサービス１７と、プロファイル情報格納手段１８とから構成されている。
【０１４３】
プログラマブルコントローラ基本ブロック１１０は、プログラマブルコントローラのシーケンスプログラムを実行処理するシーケンス制御手段１１と、入出力モジュールとの間でデータを入出力する入出力処理１２と、プログラマブルコントローラ基本ブロック１１０の実行状態を制御しモニタする実行状態制御モニタ１３と、従来のプログラミングツールとの間の通信を処理する通信処理１４とからなる。
【０１４４】
ＨＴＭＬメニュー１６は、ＨＴＭＬで記述されたプログラマブルコントローラ１０へのＷｅｂサービスをメニュー形式で表現したテキストを格納するＨＴＭＬテキスト格納手段である。
【０１４５】
シーケンス制御連携Ｗｅｂサービス１７は、スクリプト言語で記載された命令列に従って対応する処理を逐次実行し、通信処理１４を起動し、その結果をＨＴＭＬテキストにしてＷｅｂサーバ１５に返送する。
【０１４６】
プロファイル情報格納手段１８は、プログラマブルコントローラ基本ブロック１１０が参照しまたは更新するシステム情報やＷｅｂサービス情報などを格納する。
【０１４７】
通信処理１４は、メモリライト処理１４１，メモリリード処理１４２，ＣＰＵ制御処理１４３，Ｉ／Ｏ制御処理１４４などの従来と同様のプログラマブルコントローラ専用のコマンドを含んでいる。
【０１４８】
シーケンス制御連携Ｗｅｂサービス１７は、Ｗｅｂサービスを記述したスクリプト群１７１と、Ｗｅｂサービススクリプトを実行するＷｅｂサービス実行エンジン１７２とを含んでいる。
【０１４９】
Ｗｅｂサービススクリプト群１７１は、一例として、Ｗｅｂサービス１（１７１１）、Ｗｅｂサービス２（１７１２）、Ｗｅｂサービス３（１７１３）、プロファイル表示１７１４、Ｗｅｂサービス追加１７１５を有する。
【０１５０】
Ｗｅｂサービス実行エンジン１７２は、Ｗｅｂサービススクリプトに記載されているスクリプト言語の各命令を逐次解釈して実行する命令解釈１７２２と、通信処理１４内の各処理を起動する処理からなる通信処理起動ライブラリ１７２１と、算術演算や文字列演算などの汎用命令を実行する処理からなる汎用処理ライブラリ１７２３と、ＨＴＭＬテキスト作成１７２４を含んでいる。
【０１５１】
通信処理起動ライブラリ１７２１は、通信処理１４内のメモリライト処理１４１、メモリリード処理１４２、ＣＰＵ制御処理１４３、Ｉ／Ｏ制御処理１４４をそれぞれ起動するメモリライト起動処理２４１、メモリリード起動処理２４２、ＣＰＵ制御起動処理２４３、Ｉ／Ｏ制御起動処理２４４を有する。
【０１５２】
プロファイル情報格納手段１８は、システム情報格納１８１、シーケンス制御プログラム情報１８２、Ｉ／Ｏ割り付け情報１８３、Ｗｅｂサービス情報１８４などを格納する。
【０１５３】
プログラマブルコントローラ１０と、Ｗｅｂブラウザを搭載するパーソナルコンピュータまたはワークステーション３とは、例えばＥｔｈｅｒｎｅｔ（登録商標）などのネットワーク２により接続されている。
≪プログラマブルコントローラ１０の全体動作≫
図２０は、プログラマブルコントローラ１０のＷｅｂサービスの動作を説明するフローチャートである。
【０１５４】
パーソナルコンピュータまたはワークステーション３において、汎用Ｗｅｂブラウザを実行し、プログラマブルコントローラ１０のＨＴＭＬテキストを指定すると（５１）、ＨＴＴＰでの読み出し要求が実行され、Ｗｅｂサーバ１５からＨＴＭＬテキスト格納手段１６に格納されているＨＴＭＬテキストが返送される（５２）。
【０１５５】
ＨＴＭＬテキストが汎用Ｗｅｂブラウザに読み込まれると、プログラマブルコントローラ１０のサポートするＷｅｂサービス一覧がメニュー形式で表示される（５１１）。
【０１５６】
メニューにハイパーテキストで表示されているＷｅｂサービス項目を選択し、ハイパーテキストにリンクされているＣＧＩを呼び出せば、Ｗｅｂサーバ１５は、Ｗｅｂサービススクリプト群１７１内の対応するＷｅｂサービスを呼び出す（５３）。呼び出されたＷｅｂサービスは、図２０中のボックス５４０内の処理手順で実行される。
【０１５７】
命令解釈１７２２が、呼び出されたＷｅｂサービスを構成するスクリプト言語の命令列中の先頭から命令を取り出し（５４）、そのサービスを構成する命令列中の命令を逐次解釈し、対応するライブラリ内の処理をコールする（５５）。
【０１５８】
命令解釈１７２２が解釈した命令がプログラマブルコントローラ基本ブロック１１０の実行状態を制御したりモニタする命令であれば、通信制御起動ライブラリ１７２１を経由して、従来のプログラミングツールと通信する通信処理１４を呼び出す。通信処理１４は、従来と同様のプログラマブルコントローラ専用のコマンドで実行状態制御モニタ１３に要求を送る。その応答は、通信処理１４から通信処理起動ライブラリ１７２１を経由して、命令解釈１７２２に返される（５７）。その際、必要に応じてプロファイル情報格納手段１８内の情報が参照または更新される。
【０１５９】
命令解釈１７２２は、次の命令を取り出す（５１０）。
【０１６０】
解釈した命令が算術演算や文字列演算などの汎用命令であれば、命令解釈１７２２は、汎用処理ライブラリ１７２３内の対応する処理を動作させる。命令解釈１７２２は、その処理結果を受け取り（５８）、次の命令を取り出す（５１０）。
【０１６１】
解釈した命令がＨＴＭＬテキスト生成であれば、命令解釈１７２２は、それまでの他の命令による処理結果をもとに、ＨＴＭＬテキストを作成し（５９）、次の命令を取り出す（５１０）。
【０１６２】
解釈した命令が、スクリプトの終了命令であれば、命令解釈１７２２は、Ｗｅｂサービス処理を終了し、作成したＨＴＭＬテキストをＷｅｂサーバ１５に返す（５６）。Ｗｅｂサーバ１５は、そのＨＴＭＬテキストをパーソナルコンピュータまたはワークステーション３に返送し（５２）、実行中の汎用ＨＴＭＬブラウザに表示させる（５１１）。
≪通信処理≫
図２１は、通信処理１４が提供するプログラマブルコントローラ専用のコマンド一覧である。メモリライト処理としては、メモリの領域をゼロクリアするオールクリア処理、アドレス指定のプログラム転送処理、メモリ割り付け情報すなわちユーザプログラムがメモリのどこに割り付けられているかの情報の書き込み処理、パラメータ変更終了処理、タイマカウンタの設定値変更処理がある。
【０１６３】
メモリリード処理としては、アドレス指定プログラム読み出し処理、ユーザプログラムの最終回路検索処理、メモリ割り付け情報の読み出し処理がある。
【０１６４】
ＣＰＵ制御処理としては、ＣＰＵステータスリード処理、ＣＰＵ運転／停止指定処理、ＣＰＵの排他占有／解除処理、ＣＰＵ占有の強制解除処理、カレンダ時計の設定、読み出し処理がある。
【０１６５】
Ｉ／Ｏ制御処理としては、Ｉ／Ｏ　Ｎｏ．指定によるモニタ処理（指定Ｎｏ．から連続Ｎ点設定）、Ｉ／Ｏ　Ｎｏ．指定による強制セット／リセット処理（指定Ｎｏ．から連続Ｎ点設定）、Ｉ／Ｏ　Ｎｏ．指定によるモニタ処理（ランダムなＮ点を指定可）、Ｉ／Ｏ　Ｎｏ．指定による強制セット／リセット処理（ランダムなＮ点を指定可）がある。
【０１６６】
一方、通信処理起動ライブラリ１７２１内には、これらの通信処理に１対１に対応して、各通信処理を起動する処理が用意されている。
【０１６７】
Ｗｅｂサービススクリプト群１７１内のＷｅｂサービススクリプトにおいて、これらの基本的な通信処理と汎用処理ライブラリ１７２３内の汎用処理とを組み合わせて実行すると、種々の応用的なＷｅｂサービスを実現できる。
≪プロファイル情報≫
図２２は、プロファイル情報格納手段１８に格納されているプロファイル情報の一例を示す図である。
【０１６８】
システム情報は、制御ソフトウェアのバージョン情報、シーケンスプログラム実行タスクの実行周期、割り込みプログラム実行タスクの割り込み要因、プログラマブルコントローラの実行状態を含んでいる。
【０１６９】
シーケンス制御プログラム情報は、実行される各プログラムのタイトル、各プログラムが割り付けられている実行タスク、メモリ割り付け情報、プログラム内で使用されている各変数へのコメント情報、データ型、サイズなどの各種属性情報、変数のメモリ割り付け情報を有する。
【０１７０】
Ｉ／Ｏ割り付け情報は、プログラマブルコントローラの各Ｉ／Ｏスロットへの実装Ｉ／Ｏモジュール情報、実装されている各Ｉ／Ｏへのコメント情報、データ型，サイズなどの各種属性情報を有する。
【０１７１】
Ｗｅｂサービス情報は、登録されている各Ｗｅｂサービスのタイトル、メモリ割り付け情報、サービス起動条件（呼び出し時起動、イベント起動、周期起動）、ライブラリに登録されている各処理のタイトル、Ｉ／Ｏ情報（引数、返り値のデータ型、サイズなどの属性情報）、メモリ割り付け情報を有する。
【０１７２】
プロファイル情報は、プログラマブルコントローラ基本ブロック１１０により参照されまたは更新される。
【０１７３】
プロファイル情報全体は、Ｗｅｂサービス群１７１内のプロファイル表示サービスに参照され、ＨＴＭＬテキストとしてパーソナルコンピュータまたはワークステーション３に返送され、その汎用Ｗｅｂブラウザで、プロファイル情報の一覧を参照しまたは更新できる。
【０１７４】
なお、プロファイル情報は、構造体または配列の形において、プログラマブルコントローラのメモリに保管されるか、Ｗｅｂサービスとの連携効率をあげるために、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）を用いたテキスト形式で保管される。
≪Ｗｅｂサービス追加動作≫
以上説明したように、Ｗｅｂサービススクリプト群１７１内のＷｅｂサービスは、通信処理１４や汎用処理１７２３を使用可能なスクリプト言語で記述でき、プログラマブルである。さらに、プロファイル情報１８内のＷｅｂサービス情報を利用すると、プログラマブルコントローラ稼動中にＷｅｂサービスを更新（追加および削除）できる。
【０１７５】
図２３は、Ｗｅｂサービス追加１７１５の動作を示すフローチャートである。
すなわち、図２３は、図２０のＷｅｂサービス動作のボックス５４０内で実行されるサービススクリプトの内容を示す図である。
【０１７６】
まず、プロファイル情報１８内に登録されている各Ｗｅｂサービスのタイトル、メモリ割り付け情報を参照して、追加する新しいＷｅｂサービスを格納できるだけの空き領域をメモリ上方に確保する（６１）。
【０１７７】
次に、新しいＷｅｂサービススクリプトをプログラマブルコントローラの臨時メモリ領域にダウンロードする（６２）。
【０１７８】
ダウンロードは、通信処理１４内のメモリライト処理１４１を利用して実行する。ＴＣＰ／ＩＰで一般的なＦＴＰサービスを使用してもよい。
【０１７９】
さらに、ダウンロードしたスクリプトの使用変数（６３），使用Ｉ／Ｏ（６４）とプロファイル情報に登録されている変数情報，Ｉ／Ｏ情報とを比較し、整合しているか否かを確認し、問題無ければ、確保した領域にダウンロードしたスクリプトを書き込む（６５）。
【０１８０】
最後に、そのＷｅｂサービスの起動条件を設定し、プロファイル情報内のＷｅｂサービス起動条件を更新し（６６）、成功表示のＨＴＭＬテキストを作成する（６７）。一方、上記処理手順６１，６３，６４，６５において、エラーとなった場合には、そのエラー表示のＨＴＭＬテキストを作成する（６８）。
【０１８１】
なお、プロファイル情報１８を参照すると、既に登録済みのＷｅｂサービスを削除することも、容易である。ここでは、Ｗｅｂサービスの削除手順の説明は省略する。
【０１８２】
ここでは、Ｗｅｂサービスはスクリプトである場合において、実施形態を説明した。スクリプト言語としては、情報系のＷｅｂサーバでよく使われているＰｅｒｌ言語を使用できる。スクリプト言語は、自作のをスクリプト言語や他のスクリプト言語であってもよい。
【０１８３】
一方、図１９において、スクリプト言語ではなく、ＪＡＶＡ（登録商標）のバイトコードのような標準的なコードでＷｅｂサービス群１７１内の各Ｗｅｂサービスを実現し、命令解釈１７２２をそのバイトコードを実行する仮想マシンとする構成に置き換えてもよい。
【０１８４】
この場合のプログラマブルコントローラ１０の構成および動作は、スクリプトの場合とほとんど同じなので、説明を省略する。
≪マイコン命令コードの直接実行によるＷｅｂサービス≫
ここまでの実施形態では、Ｗｅｂサービスは、スクリプトまたはバイトコードで実現し、命令解釈１７２２においてスクリプト言語の各命令を逐次解釈して実行、または、バイトコードを仮想マシンとして実行する構成を採用していた。
【０１８５】
Ｗｅｂサービスは、マイコンの命令コードにコンパイルして実行することも可能である。
【０１８６】
図２４は、Ｗｅｂサービスをマイコン命令コードで実現する場合のプログラマブルコントローラ１０のソフトウェアモジュールの構成を示すブロック図である。
【０１８７】
図１９のソフトウェアモジュールと図２４のソフトウェアモジュールとの相違は、２つある。
【０１８８】
第１に、図１９のＷｅｂサービススクリプト群１７１および内部のＷｅｂサービスが、図２４のソフトウェアモジュールでは、スクリプトではなく、マイコン命令コードで構成されている。したがって、図２４には、ブロック１７１をＷｅｂサービスマイコン命令コード群とラベル付けしてある。
【０１８９】
第２に、図２４のソフトウェアモジュールには、図１９の命令解釈１７２２が存在せず、Ｗｅｂサービスマイコン命令コード群１７１内部のＷｅｂサービスが、通信処理起動ライブラリ１７２１，汎用処理ライブラリ１７２３，ＨＴＭＬテキスト作成１７２４を直接呼び出す。
【０１９０】
図２４のプログラマブルコントローラ１０の動作を説明する。図１９のソフトウェアモジュールと図２４のソフトウェアモジュールとの動作の相違は、図２０のＷｅｂサービス実行５４０内に記載の処理を、図１９の場合は、命令解釈１７２２が実行しているのに対し、図２４の場合は、マイコン自体が実行している点である。
【０１９１】
それ以外の動作は、基本的に、図１９のソフトウェアモジュールと図２４のソフトウェアモジュールとおいて、同様である。
【０１９２】
図２４のプログラマブルコントローラ１０で動作するＷｅｂサービスをコンパイルして作成するには、事前にプロファイル情報１８に登録されているライブラリ内の処理のメモリ割り付けなどの情報を取り出しておく。
【０１９３】
取り出した情報を利用して、ライブラリ内の処理へのジャンプ先アドレスなどの情報を、コンパイルして生成されるＷｅｂサービスのマイコン命令コード列中に挿入する。このようにマイコン命令コード列中に情報を挿入すると、通信処理起動ライブラリ１７２１，汎用処理ライブラリ１７２３，ＨＴＭＬテキスト作成１７２４を直接呼び出すことが可能になる。
≪シーケンス制御活用によるＷｅｂサービス≫
≪プログラマブルコントローラ１０の全体構成≫
以上の実施形態では、Ｗｅｂサービスは、プログラマブルコントローラ基本ブロック１１０の実行状態を制御したりモニタするためには、従来のプログラミングツールと通信処理する機能とを有する通信処理１４を使用したが、ここでは、通信処理１４を使用せず、Ｗｅｂサービス処理をシーケンス制御手段１１で実行する別の実施形態を説明する。
【０１９４】
図２５は、プログラマブルなＷｅｂサービスを実現するコントローラのソフトウェアモジュールの基本構成を示すブロック図である。
【０１９５】
図２５において、プログラマブルコントローラ（本体）１０は、プログラマブルコントローラのシーケンスプログラムを実行処理するシーケンス制御手段１１と、入出力モジュールとの間でデータを入出力する入出力処理１２と、Ｗｅｂサーバ１５と、ＨＴＭＬで記述されたプログラマブルコントローラ１０へのＷｅｂサービスをメニュー形式で表現したテキストを格納するＨＴＭＬテキスト格納手段１６とを含んでいる。
【０１９６】
シーケンス制御手段１１は、通常のシーケンス制御処理１１１に加え、Ｗｅｂサービス処理群１１２と、シーケンス制御実行エンジン１１３とを備えている。
シーケンス制御実行エンジン１１３は、シーケンス制御処理１１１およびＷｅｂサービス処理群１１２の命令コードを解釈して逐次実行する。
【０１９７】
Ｗｅｂサービス処理群１１２は、一例として、Ｗｅｂサービス１（１１２１）、Ｗｅｂサービス２（１１２２）、Ｗｅｂサービス３（１１２３）、プロファイル表示１１２４、Ｗｅｂサービス追加１１２５などのＷｅｂサービス処理を有する。
【０１９８】
ＨＴＭＬテキスト作成１１３２２は、Ｗｅｂサービスの処理結果をＨＴＭＬテキストにしてＷｅｂサーバ１５に返送する。
【０１９９】
シーケンス制御実行エンジン１１３は、ラダー基本命令実行手段１１３１、応用命令実行手段１１３２から構成される。応用命令実行手段１１３２は、算術演算や文字列演算などの汎用命令を実行する汎用命令実行手段１１３２１と、ＨＴＭＬテキスト作成１１３２２とからなる。
【０２００】
シーケンス制御連携Ｗｅｂサービス１７０は、Ｗｅｂサービス処理群１１２内のサービスを起動する。
【０２０１】
シーケンス制御連携Ｗｅｂサービス１７０は、Ｗｅｂサービス処理群１１２内の各サービスを起動するための設定情報からなるＷｅｂサービス起動情報群１７１０と、Ｗｅｂサービス起動情報群１７１０内のＷｅｂサービス起動情報を参照して、対応するＷｅｂサービス処理群１１２内のＷｅｂサービスを起動する処理を実行するＷｅｂサービス起動処理実行手段１７２０から構成される。
【０２０２】
Ｗｅｂサービス起動情報群１７１０は、１１２１のＷｅｂサービス１、１１２２のＷｅｂサービス２、１１２３のＷｅｂサービス３、１１２４のプロファイル表示、１１２５のＷｅｂサービス追加をそれぞれ起動するための設定情報であるＷｅｂサービス１起動情報１７０１、Ｗｅｂサービス２起動情報１７０２、Ｗｅｂサービス３起動情報１７０３、プロファイル表示起動情報１７０４Ｗｅｂサービス追加起動情報１７０５に相当する。
【０２０３】
プロファイル情報１８は、システム情報やＷｅｂサービス情報などを格納するプログラマブルコントローラ１０のプロファイル情報格納手段であり、応用命令実行手段１１３２により参照されまたは更新される。
【０２０４】
プロファイル情報格納手段１８は、システム情報格納１８１と、シーケンス制御プログラム情報１８２と、Ｉ／Ｏ割り付け情報１８３と、Ｗｅｂサービス情報１８４などを格納する。
【０２０５】
プログラマブルコントローラ１０と、Ｗｅｂブラウザを搭載するパーソナルコンピュータまたはワークステーションとは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）などのネットワーク２により接続されている。
≪プログラマブルコントローラ１０の全体動作≫
図２６は、プログラマブルコントローラ１０のＷｅｂサービスの動作を示すフローチャートである。
【０２０６】
パーソナルコンピュータまたはワークステーション３において、汎用Ｗｅｂブラウザを実行し、プログラマブルコントローラ１０のＨＴＭＬテキストを指定すると（５１）、ＨＴＴＰでの読み出し要求が実行され、Ｗｅｂサーバ１５からＨＴＭＬテキスト格納手段１６に格納されているＨＴＭＬテキストが返送される（５２）。
【０２０７】
ＨＴＭＬテキストが汎用Ｗｅｂブラウザに読み込まれると、プログラマブルコントローラ１０がサポートするＷｅｂサービス一覧をメニュー形式で表示する（５１１）。
【０２０８】
メニューにハイパーテキストで表示されているＷｅｂサービス項目を選択し、ハイパーテキストにリンクされているＣＧＩを呼び出せば、Ｗｅｂサーバ１５により、Ｗｅｂサービス起動処理実行手段１７２０に対して、Ｗｅｂサービス起動情報群１７１０内の対応するＷｅｂサービス起動情報を参照して、対応するＷｅｂサービス処理群１１２内のＷｅｂサービスを起動する（５４）。
【０２０９】
シーケンス制御実行エンジン１１３２は、起動したＷｅｂサービスを実行し、Ｗｅｂサービス実行中に作成したＨＴＭＬテキストをＷｅｂサーバ１５に返す（５４１）。
【０２１０】
Ｗｅｂサーバ１５は、そのＨＴＭＬテキストをパーソナルコンピュータまたはワークステーション３に返送し（５２）、実行中の汎用ＨＴＭＬブラウザにおいて表示させる（５１１）。
【０２１１】
本実施形態では、Ｗｅｂサービス処理群１１２をプログラマブルなシーケンス制御手段１１で実現したので、Ｗｅｂサービス処理群１１２がプログラマブルになる。
【０２１２】
以上の実施形態では、Ｗｅｂサーバ１５が、対応するＷｅｂサービスを呼び出すために、ＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）を用いたが、ＣＧＩの代わりにＳＳＩ（Ｓｅｒｖｅｒ　Ｓｉｄｅ　Ｉｎｃｌｕｄｅ）を用いてもよい。
【０２１３】
ＳＳＩでは、パーソナルコンピュータまたはワークステーション３のＷｅｂブラウザからＨＴＭＬテキストの読み出し要求が出される際、Ｗｅｂサーバ１５は、返送すべきＨＴＭＬテキスト中に取り込まれているＳＳＩの処理を見つけ出して実行し、その処理結果をＨＴＭＬテキストに置換して返送する。
【０２１４】
ＳＳＩでも、ＣＧＩと同様のサービスを実現できる。
【０２１５】
ここでは、ＳＳＩを用いた実施例の詳細な説明を省略する。
【０２１６】
【発明の効果】
本発明によれば、優先度情報を有する通信内容とこの優先度情報に基づき動作するサービス実行優先度制御手段とが、対応する情報通信サービスの実行順序を制御するので、通信内容により起動される通信サービスのうちで優先して処理すべき通信サービスと後回しにしてよい通信サービスとを判別でき、優先して処理すべき通信サービスを確実にリアルタイム処理できる。
【０２１７】
プログラマブルコントローラ内のＷｅｂサーバと通信処理との間にシーケンス制御連携Ｗｅｂサービスを設けると、Ｗｅｂサーバを搭載するプログラマブルコントローラにおいて、優先して処理すべき通信サービスを確実にリアルタイム処理する効果の他に、プログラマブルなＷｅｂサービスを提供できる効果が得られる。
【図面の簡単な説明】
【図１】リアルタイム処理に優れた情報通信サービスを実現するための本発明によるコントローラの基本構成を示すブロック図である。
【図２】パーソナルコンピュータ３または機器３２からプログラマブルコントローラ１００に送られる通信内容の一例を示す図である。
【図３】サービス実行優先制御９２１の基本構成および通信内容の推移を示すブロック図である。
【図４】サービス実行優先制御９２１とタスク実行制御タスク９３との連携動作を示すブロック図である。
【図５】タスク実行制御タスク９３の動作を示すフローチャートである。
【図６】サービス実行優先制御９２１とタスク実行制御タスク９３との連携動作の他の例を示すブロック図である。
【図７】パーソナルコンピュータ３または機器３２からプログラマブルコントローラ１００に送られる通信内容の他の例を示す図である。
【図８】サービス実行優先制御９２１における入力時と出力時の通信内容を示す図である。
【図９】サービス実行優先制御９２１とタスク実行制御タスク９３との連携動作を示すブロック図である。
【図１０】複数のサービスを連続起動する場合の通信内容を示す図である。
【図１１】起動サービス登録待ち行列への通信内容の一登録例を示す図である。
【図１２】起動サービス登録待ち行列への通信内容の一登録例を示す図である。
【図１３】複数のサービスを連続起動する場合のタスク実行制御タスク９３の動作を示すフローチャートである。
【図１４】複数のコントローラ１０１〜１０３の間で連動制御する場合の通信内容を示す図である。
【図１５】起動サービス登録待ち行列への通信内容の一登録例を示す図である。
【図１６】起動サービス登録待ち行列への通信内容の一登録例を示す図である。
【図１７】複数のコントローラ間で連動制御するタスク実行制御タスク９３の動作を示すフローチャートである。
【図１８】通信内容をＸＭＬで表現した場合の一例を示す図である。
【図１９】プログラマブルなＷｅｂサービスを実現するコントローラのソフトウェアモジュールの基本構成を示すブロック図である。
【図２０】プログラマブルコントローラ１０のＷｅｂサービスの動作を説明するフローチャートである。
【図２１】通信処理１４が提供するプログラマブルコントローラ専用のコマンド一覧である。
【図２２】プロファイル情報格納手段１８に格納されているプロファイル情報の一例を示す図である。
【図２３】Ｗｅｂサービス追加１７１５の動作を示すフローチャートである。
【図２４】Ｗｅｂサービスをマイコン命令コードで実現する場合のプログラマブルコントローラ１０のソフトウェアモジュールの構成を示すブロック図である。
【図２５】プログラマブルなＷｅｂサービスを実現するコントローラのソフトウェアモジュールの基本構成を示すブロック図である。
【図２６】プログラマブルコントローラ１０のＷｅｂサービスの動作を示すフローチャートである。
【図２７】従来のＷｅｂサーバ機能を搭載したプログラマブルコントローラの基本構成を示すブロック図である。
【符号の説明】
１，１０，１００　コントローラ
１１　シーケンス制御手段
１１０　プログラマブルコントローラ基本ブロック
１１１　シーケンス制御処理
１１２　Ｗｅｂサービス処理群
１１２１，１１２２，１１２３，１１２４，１１２５　Ｗｅｂサービス
１１３　シーケンス制御実行エンジン
１１３１　ラダー基本命令手段
１１３２　応用命令手段
１１３２１　汎用命令手段
１１３２２　ＨＴＭＬテキスト作成
１２　データ入出力手段
１３　実行状態制御モニタ
１４　通信処理手段
１４１　メモリライト処理
１４２　メモリリード処理
１４３　ＣＰＵ制御処理
１４４　Ｉ／Ｏ制御処理
１５　Ｗｅｂサーバ
１６　ＨＴＭＬメニュー
１７，１７０　シーケンス制御Ｗｅｂサービス
１７０１，１７０２，１７０３，１７０４，１７０５　Ｗｅｂサービス起動手段１７１　Ｗｅｂサービススクリプト群，Ｗｅｂサービスマイコン命令コード群
１７１０　Ｗｅｂサービス起動情報群
１７１１，１７１２，１７１３，１７１４，１７１５　Ｗｅｂサービス
１７２　Ｗｅｂサービス実行エンジン
１７２１　通信処理起動ライブラリ
２００，２００１，２００２，２００３，２００Ａ１，２００Ｂ１，２００Ｃ１，２００Ｄ１，２００Ｘ１，２００Ｙ１，２０１，２０１３，２１，２２，２３，２３′，２３０３，２３０３１，２５，２５０３，２５０３１　通信内容
２１１，２２１，２３１，２５１　優先度
２０１１，２０１１１　サービス優先度
２０１２，２１２，２２２，２３２１，２３２２，２５２１，２５２２　起動サービス
２０１３，２１３，２２３，２３３１，２３３２，２３３２′，２５３１，２５３２　データ
２３０１，２３０２
２４１　メモリライト起動
２４２　メモリリード起動
２４３　ＣＰＵ制御起動
２４４　Ｉ／Ｏ制御起動
１７２２　命令解釈
１７２３　汎用処理ライブラリ
１７２４　ＨＴＭＬテキスト作成
１８　プロファイル情報
１８１　システムプロファイル情報
１８２　シーケンス制御プログラムプロファイル情報
１８３　Ｉ／Ｏ割り付けプロファイル情報
１８４　Ｗｅｂサービスプロファイル情報
２　ネットワーク
３　パーソナルコンピュータ
３１，３２，３０１，３０２，３０３　機器
５１，５２，５３，５４，５５，５６，５７，５８，５９，５１０，５１１，５４０，５４１　プログラマブルコントローラのＷｅｂサービスの動作を示すフローを構成するステップ
６１，６２，６３，６４，６５，６６，６７，６８　Ｗｅｂサービス追加処理の動作を示すフローを構成するステップ
７０１，７０２，７０２１，７０２２，７０２２１，７０３，７０３１，７０４，７０５　タスク実行制御タスクの動作を示すフローを構成するステップ
８１　メモリ
８２　バス
８３　Ｉ／Ｏインタフェース
８４　ＣＰＵ
８４１　タイマ
８４１１，８４１２，８４１３　タイマ割り込み
８４２　ＩＮＴ（割り込み）
８４２１，８４２２，８４２３，８４３　イベント割り込み
８５　ネットワーク制御回路
９０　Ｗｅｂブラウザ
９１，９１１，９１２　アプリケーションタスク群
９１０１，９１０２，９１０３，９１０４，９１１１，９１１２，９１２１，９１２２　アプリケーションタスク
９２　情報通信サービスタスク
９２１　サービス実行優先度制御
９２１１　サービス優先度→タスク優先度変換
９２１２　起動サービスＩＤ→タスクＩＤ変換
９２１３　情報変換
９２１４　サービス優先度〜タスク優先度対応表
９２１５　起動サービス〜タスク対応表
９２２　情報通信サービス
９３　タスク実行制御タスク
９３０　サービス起動方法
９３１　起動サービス登録待ち行列
９４　リアルタイムＯＳ
９４１　Ｉ／Ｏドライバ
９４２　タスクスケジューラ
９４３　ネットワークドライバ
【図１】
2004054622.tif 000003
【図２】
2004054622.tif 000004
【図３】
2004054622.tif 000005
【図４】
2004054622.tif 000006
【図５】
2004054622.tif 000007
【図６】
2004054622.tif 000008
【図７】
2004054622.tif 000009
【図８】
2004054622.tif 000010
【図９】
2004054622.tif 000011
【図１０】
2004054622.tif 000012
【図１１】
2004054622.tif 000013
【図１２】
2004054622.tif 000014
【図１３】
2004054622.tif 000015
【図１４】
2004054622.tif 000016
【図１５】
2004054622.tif 000017
【図１６】
2004054622.tif 000018
【図１７】
2004054622.tif 000019
【図１８】
2004054622.tif 000020
【図１９】
2004054622.tif 000021
【図２０】
2004054622.tif 000022
【図２１】
2004054622.tif 000023
【図２２】
2004054622.tif 000024
【図２３】
2004054622.tif 000025
【図２４】
2004054622.tif 000026
【図２５】
2004054622.tif 000027
【図２６】
2004054622.tif 000028
【図２７】
2004054622.tif 000029