(57)【特許請求の範囲】
【請求項１】
入出力（I／Ｏ）装置に組み込まれたインターフェース・モジュールがネットワークを介して、前記入出力（I／Ｏ）装置にアクセスするユーザ・デバイスからの要求を受け取り、
ドライバを用いて、前記Ｉ／Ｏデバイスへのアクセス要求を処理し、
前記Ｉ／Ｏ装置に組み込まれたサーバを用いて、前記要求への応答を送出し、および
デュアル・プロトコル・スタックを用いて、前記ユーザ・デバイスと前記入出力（Ｉ/Ｏ）装置との間でデータ転送を可能とし、前記デュアル・プロトコル・スタックは広い領域のメッセージを扱うよう構成された第１のプロトコル・スタックと、前記第１のプロコトコル・スタックよりも速やかにより狭い領域のメッセージを取り扱うよう構成された第２のプロトコル・スタックとからなる、
ことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記ネットワークは、インターネットと、ユーザ・デバイスにロードされたウエッブ・ブラウザを用いて前記インターネットに接続する当該ユーザ・デバイス、とからなる方法。
【請求項３】
請求項２に記載の方法であって、前記要求への応答は、前記ウエブ・ブラウザに、前記Ｉ／Ｏ装置に関する、トラブル・シューティング指示、メンテナンス記録、修理診断情報、及びクオリティ・コントロール・パラメータを前記ユーザ・デバイスに関連したディスプレイ上に表示することを許容する、ことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、前記Ｉ／Ｏ装置は、センサ、リレー、ゲージ、バルブ、メッセージ・ディスプレイ、スイッチ、モータ制御器及びモータ・スタータからなるグループから選ばれる、ことを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、前記ネットワークは、前記ユーザ・デバイスからの前記Ｉ／Ｏ装置に対する制御を可能とする、ことを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、更に前記ネットワークを介してプログラマブル・ロジック・コントローラ（ＰＬＣ）を接続することを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、前記インターフェース・モジュールは、クリスタルＣＳ８９５２イーサネット・コミュニケーション・チップを用いるネットワークに接続される、ことを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、前記要求は、少なくとも、光ファイバー・ケーブル及びツイスト・ペア銅線の、何れか一つを通して送られる、ことを特徴とする方法。
【請求項９】
請求項１に記載の方法であって、前記要求への応答は前記ユーザ・デバイスに前記Ｉ／Ｏ装置に関するデータの閲覧を許容し、当該データは前記Ｉ／Ｏ装置に関連するメモリに格納された如何なるプログラム情報をも含む、ことを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、前記所定の応答は、前記ユーザ・デバイスに、前記Ｉ／Ｏ装置へのデータ書き込みを許容する、ことを特徴とする方法。
【請求項１１】
請求項１に記載の方法において、前記要求は、前記Ｉ／Ｏ装置のコンフィギュレーション・ビュー及びステータスを要求する、ことを特徴とする方法。
【請求項１２】
ユーザ・デバイスを用いて通信ネットワークから入出力（Ｉ／Ｏ）装置へのアクセスを可能にする制御システムであって、
インターフェース・モジュールであって、マイクロプロセッサと、前記通信ネットワークに前記インターフェース・モジュールを結合するネットワーク・インターフェースとを有するインターフェース・モジュールと、
前記Ｉ／Ｏ装置に前記インターフェース・モジュールを結合しかつ前記インターフェース・モジュールと前記Ｉ／Ｏ装置との間でデータを転送するドライバと、及び
前記ユーザ・デバイスと前記Ｉ／Ｏ装置との間でデータ転送を可能にするデュアル・プロトコル・スタックであって、当該デュアル・プロトコル・スタックは広い領域のメッセージを取り扱うよう構成された第１のプロトコル・スタックと、当該第１のプロトコル・スタックより狭い領域のメッセージをより早く取り扱うよう構成された第２のプロトコル・スタック、
を含む制御システム。
【請求項１３】
前記通信ネットワークがインターネット・プロトコル（ＩＰ）を用いたインターネットとして知られたワールド・ワイド・ネットワークである請求項１２記載の制御システム。
【請求項１４】
前記インターフェース・モジュールが前記インターネット上のウエブ・サイトとして機能する請求項１３記載の制御システム。
【請求項１５】
前記第１のプロトコル・スタック及び第２プロトコル・スタックが、送信制御プロトコル（ＴＣＰ）／ＩＰスタックである請求項１４記載の制御システム。
【請求項１６】
前記第２のプロトコル・スタックは、更に、イーサネット・プロトコル上のモドバスに向けたＴＣＰ／ＩＰメッセージを扱うよう構成された、請求項１５記載の制御システム。
【請求項１７】
前記デュアル・プロトコル・スタックは前記ユーザ・デバイスが前記Ｉ／Ｏ装置内のデータを閲覧することを可能にするデータ要求を送信する請求項１３記載の制御システム。
【請求項１８】
前記データ要求は、さらに前記ユーザ・デバイスが前記Ｉ／Ｏ装置にデータを書き込むことを可能にする請求項１７記載の制御システム。
【請求項１９】
前記データ要求は、前記Ｉ／Ｏ装置構成及びステータスの閲覧要求をさらに含む請求項１７記載の制御システム。
【請求項２０】
前記データ要求は、前記ユーザ・デバイスが前記Ｉ／Ｏ装置に関連したメモリに記憶されているデータ及び任意のプログラム情報を閲覧することを可能とする請求項１９記載の制御システム。
【請求項２１】
前記データ要求は、前記ユーザ・デバイスが前記Ｉ／Ｏ装置に関連したメモリにデータ及び任意のプログラム情報を書き込むことを可能にする請求項１８記載の制御システム。
【請求項２２】
請求項１に記載の方法において、
前記デュアル・プロトコル・スタックはデュアルＴＣＰ／ＩＰスタックからなり、
前記広い領域のメッセージは、イーサネット・プロトコル上のＭｏｄｂｕｓに向けられたＴＣＰ／ＩＰメッセージではないメッセージからなり、
前記より狭い領域のメッセージはイーサネット・プロトコル上のＭｏｄｂｕｓに向けられたＩＣＰ／ＴＰメッセージからなる、ことを特徴とする方法。
【請求項２３】
請求項１２に記載の制御システムにおいて、
前記デュアル・プロトコル・スタックはデュアルＴＣＰ／ＩＰスタックからなり、
前記広い領域のメッセージは、イーサネット・プロトコル上のＭｏｄｂｕｓに向けられたＴＣＰ／ＩＰメッセージではないメッセージからなり、
前記より狭い領域のメッセージはイーサネット・プロトコル上のＭｏｄｂｕｓに向けられたＩＣＰ／ＴＰメッセージからなる、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、工場自動化システム用の複数の入出力モジュール又は装置を監視および制御する分野に関する。特に、本発明は、複数の入出力モジュール又は装置をウェブ・サーバに結合するシステムに関する。
【０００２】
（関連出願）
本出願は、「プログラムラマブル・コントローラに対するウェブ・インターフェース」と題して１９９７年９月１０日に出願された米国特許出願第０８／９２７，００５号の一部継続出願である。この出願は、１９９８年１０月６日に出願された米国特許出願第０９／１６６，８７０号の「モジュラー端末入出力システム用にイーサネットを介してメッセージング・アプリケーション・レイヤ（ＭＯＤＢＵＳ）からトランスポート・レイヤ（ＴＣＰ）に通信する方法及び装置」と、１９９９年４月３０日に出願された米国特許出願第０９／３０３，４５８号の「プログラム・コントローラに対するウェブ・インターフェース」と、１９９８年１２月３０日に出願された米国特許出願第０９／２２３，３４９号の「プログラムラマブル・ロジック・コントローラに対するインターフェース」と、１９９８年３月１６日に出願された米国仮特許出願第６０／０７８，２２３号の「イーサネット及びＩＰネットワークを介する制御システム用の通信システム及びそのようなシステム用の通信インターフェース」と題して共通に譲渡された出願に関連する。
【背景技術】
【０００３】
複数のシステム、複数のプロセス及び複数の入出力装置の遠隔監視及び遠隔制御は多くの形式を有していた。過去において、複数の専用回線が制御システムと遠方位置との間における通信の共通形式であった。この形式の通信は、制御システムが多数の位置からアクセスできなかったので、応用が限定されていた。複数のモデムは異なる位置から制御システムをアクセスできるようにされていたが、これらの形式のシステムは、一般に、複数のデータ・ファイルのダウンロード及びアップロードに限られている。むしろ、複数の位置の間に任意形式の制御機能を設けることは、この形式の環境に限定される。更に、カスタマイズされたインターフェースは、一般に、エンド・ユーザによって制御システムをアクセスすることが要求される。
【０００４】
インターネットの発展とハイパーテキスト・リンクを介してインターネット・データを編成する送出プラットフォームを提供するそれのワールド・ワイド・ウェブとにより、各エンド・ユーザに、同一形式のユーザに優しいインターフェースとウェブ上のサービスへの普遍的なアクセスとを与えるクライアント・サーバ・システムが設計可能とされている。そのウェブは、世界中のサーバ・コンピュータに記憶されたサイト又はページと呼ばれるドキュメントのネットワークである。各ページは、典型的には、テキストと、マルチメディア提供（すなわち、グラフィック・イメージ、ビデオ又はオーディオ）と、他のウェブ・ページ又はドキュメントに対するハイパーテキスト・リンクとを含む。ブラウザは、ユーザがウェブ・ページを読んだりウェブ・ページと対話することを可能にさせる。ブラウザは、インターネット・ウェブ・サイトに複数のコマンドを送出しかつウェブ・ページ上で利用可能などのような情報であっても表示するグラフィック・ソフトウェア・プログラムである。種々のブラウザ・プログラムは、周知のように、異なる製造者から商業的に入手可能である。
【０００５】
インターネット・ネットワークは、一本のケーブルを共有する数千の汎用コンピュータを取り扱うように設計された方法を採用しており、したがって、それの目的又はそれのデータの重要性の観点からトラヒックを識別する能力は持っていない。インターネットは、もはや一本のケーブルを共有するコンピュータのネットワークではなく、むしろ、複数の汎用局と複数のルーター及び複数のファイヤウォールのような特殊なインフラストラクチュア構成要素との両方に係わる相互接続された複数のポイント・ツー・ポイント・リンクのウェブである。
【０００６】
大抵のパーソナル・コンピュータ又はワーク・ステーションは、商業的に入手可能なブラウザを介してウェブに接続するためにエンド・ユーザによって使用可能にされている。インターネット及び他のネットワークを介する通信は、利用可能ないくつかのプロトコルのうちの１つを必要とする。インターネット・プロトコル（ＩＰ）のようなプロトコルは、ファイル転送、電子メール及び他のサービスを提供する。ハイパーテキスト・マークアップ言語（ＨＴＭＬ）と共にジャバ（Ｊａｖａ（登録商標））のような商業的に入手可能なプログラミング言語は、設計レイアウトとウェブ・サイト又はページ用グラフィックスとに使用されるとともに、ウェブが複数のダイナミック・アプリケーション（例えば、エンド・ユーザによってダウンロードされて実行可能とされる複数のアプレット）に使用可能とされる拡張インターネット技術を有する。これらのアプレットは、ウェブ・ブラウザ内で解釈されて実行されるとともに、ワード・プロセシングや類似の使用に一般に限定されていた。ダウンロード処理アプレット及び実行処理アプレットは、他形式のコンパイル言語に比較して遅くなる恐れがある。ブラウザに課せられかつ下層のジャバ言語によって強化されたセキュリティ・ルールは、アプレットがウェブ・サーバそれ自体よりも他の装置から一定のデータを得ることを妨げる。
【０００７】
プログラムラマブル・ロジック・コントローラ（ＰＬＣ）は工業及びプロセス制御に広く使用されている。多くの製造者は、マイクロソフト・ウィンドウズ（登録商標）及び他の形式の通信ネットワーキング環境を用いた工場自動化情報を提供している。これらのネットワークは、通常、低速であり、普遍的なアクセスができず、監視及びデータ交換に限定されている。専用フィールドバス代替を用いた特殊工業ネットワークは、非常に高価である。コンバージョン製品は、これらのネットワークを介して搬送される情報が汎用ネットワーク上で可視的であることを可能にすることを要求される。そのような介在装置の存在に関連して大きな設置及び他の配置コストが存在する。ウェブ・サーバとアプリケーションとの間のファイヤウォールは、セキュリティの問題を解決するように設計されたものであって、高いパフォーマンス用に設計されたものではない。
【０００８】
プログラムラマブル・ロジック・コントローラに対する１形式のインターフェースは、クレータらに対する米国特許第５，８０５，４４２号に開示されている。この特許は、制御機能を実行しかつ制御機能に関連する（通常は、複数のセンサからの）データを収集するようにそれぞれ装備された１つ以上のコントローラを備えている。各コントローラは、データに関連した関連データ及び命令を記憶しかつ所定のフォーマットでデータに組み込まれている可視表示をリモート・コンピュータに発生させるコンピュータ・メモリのようなコンピュータ・ストレージ手段を含む。監視ＰＣにプログラムラマブル・ロジック・コントローラを介してデータを転送するために必要とされる付加的な時間は、監視される情報の値を減少させる。また、リモートＰＣによるシステムの複数の入出力装置の監視及び制御は、監視しているＰＣとこれらの装置との間に配置されたプログラムラマブル・ロジック・コントローラを使用することによってのみ達成される。集積ＰＬＣに関連したリアル・タイム遅延は、ネットワーク通信トラヒックを増大させかつネットワーク情報の更新を遅くさせる原因となる。入出力装置への直接接続は、特に工場自動化システム及び機械の設置中の保守、修理、デバッグ及び診断問題に都合がよい。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数の入出力モジュール又は装置の遠隔監視及び遠隔制御のために複数の入出力装置に直接接続された汎用ネットワーク（例えば、インターネット及び特殊工業ネットワーク）をユーザが使用できる自動化制御システムを開発することが望ましい。
【００１０】
本発明は、これらの問題及び他の問題を解決することを意図している。
【００１１】
したがって、本発明の主な目的は、工業制御システムとインターネットのようなネットワークに結合されたウェブ・ブラウザとの間のインターフェースを提供することにある。
【００１２】
本発明の他の目的は、入出力（Ｉ／Ｏ）装置に含まれた情報及びデータへのウェブ・ブラウザを介した遠隔アクセスを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の好ましい実施例では、本発明は、インターネットのような商業ネットワークを介して少なくとも１つの入出力装置内の情報にアクセスすることを容易にする。アクセスは、商業ウェブ・ブラウザを用いてローカル又は世界的になされる。本発明は、ウェブ・インターフェースに限定されることなく、ローカル・ネットワークと少なくとも１つの入出力装置に対するネットワーク・インターフェースとを含む必須構成要素の制御システムからなる。ウェブ・インターフェースは、入出力バック・プレーンに直接結合されたイーサネット（登録商標）・ボードからウェブ・ページを走らせるとともに、ハイパーテキスト転送プロトコル（ＨＴＴＰ）インタプリターと入出力モジュール・バック・プレーン・ドライバと送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スタックとイーサネット・ボード・カーネルとを含む。ウェブ・インターフェースは、インターネットを介して遠方位置にいるユーザによる入出力装置バック・プレーンに対するアクセスを提供する。このインターフェースは、工業基準イーサネットとＴＣＰ／ＩＰとインターネット上で使用されるＨＴＴＰプロトコルとを入出力装置が認識可能なデータに変換する。このインターフェースを用いて、ユーザは、入出力装置構成と入出力ステータスと動作統計と診断と分散入出力構成とを含む入出力装置の動作に関する全ての関係データを検索することができる。オペレーティング・ソフトウエアの更新はインターネット・アクセスを介してダウンロードされ得る。
【００１４】
新しくかつ非自明であると思われる本発明の他の特徴及び効果は、本発明の好ましい実施例に示された添附図面に関連する下記の詳細な説明から明らかである。そのような実施例によって必ずしも示されていない本発明の完全な範囲を解釈するために、特許請求の範囲を参照すべきである。
【図面の簡単な説明】
【００１５】
【図１】遠方位置のユーザと本発明よるプロセス制御システムを監視するために使用されるインターネット・ウェブ・サイトとの間の関係を示す典型的なシステムの概要ブロック図を示す。
【図２】入出力装置に対するインターネット・インターフェースを示す本発明の基本的なブロック図である。
【図３】本発明による図２に示したウェブ・サーバ・モジュールのブロック図である。
【図４】プログラムラマブル・ロジック・コントローラとインターネットに接続されたアプリケーション・プログラムとをさらに含む図２に示した本発明の他のブロック図である。
【図５】図２に示した本発明の他のブロック図である。
【図６】図２に示した本発明の他のブロック図である。
【発明を実施するための形態】
【００１６】
本発明は多くの異なる形式の実施例が可能であるが、ここでは好ましい実施例を詳細に示しかつ説明する。この開示は、本発明の要旨を例示するが、説明した特定の実施例に本発明の広範な態様に対して限定することを意図するものではない。
【００１７】
図１は、遠方位置のユーザ２とプロセス制御システム６を監視するために使用されるインターネット・ウェブ・サイト４との間の関係を示す典型的なシステムの概要ブロック図を示す。ユーザ２は、パーソナル・コンピュータ（ＰＣ）８を有する。ＰＣ８は、インターネット１４のようなネットワークを介してモニタ１２によってウェブ・サイト４で内容を閲覧するために設置されたネットスケープ通信のナビゲータ又はマイクロソフトのインターネット・エクスプローラのような商業的に入手可能なブラウザ１０を有する。ＰＣは、プロセス制御システム６に対するリモート・ヒューマン・マシン・インターフェース（ＨＭＩ）を提供する。ＰＣ８からインターネット１４自体への物理的かつ電気的な相互接続を提供するために、種々の相互接続サービスが容易に利用できる。インターネット１４は、単一のコネクションレス・エンティティとして互いに相互接続されかつ機能する独立ワールド・ワイド通信ネットワークの集合である。通信は、クライアントとサーバとの間での通信及びファイル転送を可能とする多数の確立されたプロトコルを用いたクライアント・サーバ方式に基づいている。最も広く使用されているプロトコルのうちの１つは、インターネット・プロトコル（ＩＰ）である。ウェブ・ブラウザに対するアプリケーション・レイヤ・プロトコル・インターフェースは、典型的には、ＨＴＭＬ又はＪＡＶＡ（登録商標）言語を用いたＨＴＴＰプロトコルを介したものである。
【００１８】
ウェブ・サイト４は、固有のインターネット・アドレス１８とサーバ２０と入出力システム・エグゼキュティブ・ファームウェア２２とを有するネットワーク・インターフェース１６を含む。サーバ２０は、送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スタック２４を介してインターネット・プロトコルと連係して送信制御プロトコル（ＴＣＰ）を使用するハイパーテキスト転送プロトコル（ＨＴＴＰ）インタプリターとして動作して、ネットワーク・インターフェース１６及び入出力システム・エグゼキュティブ・ファームウェア２２と対話する。これは、インターネット１４を介したアプリケーション・プログラム２２とユーザ２との間のデータ転送を可能にする。入出力システム・エグゼキュティブ・ファームウェア２２は、プロセス制御システム６からデータを供給する。このデータは、遠方位置のユーザ２によって制御プロセスを監視するために使用されることができる。ＴＣＰ／ＩＰスタック２４は、ＩＰプロトコルによって指定された種々のレイヤに必要なユーザ２とウェブ・サイト４との間のインターネット１４を介したデータ転送を可能にする。
【００１９】
ユーザ２は、多数のインターネット・サービス・プロバイダのうちの１つを用いてインターネット１４に接続することができ、また、接続されたときにはウェブ・サイト４のアドレスを入力する。ウェブ・サイト４は、テキストと、グラフィック・イメージ、ビデオ又はオーディオのようなある形式のマルチメディア提供と、他の複数のウェブ・サイト又はドキュメントに対する可能なハイパーテキスト・リンクを含むホーム・ページを表示する。トラブル・シューティング命令、保守ログ、修理診断情報及び品質制御パラメータなどは、ユーザによる便宜的なアクセスのためにウェブ・サイト４内に存在する。ブラウザ１０は、ユーザ２がそのページを読むこと及びそのページと対話することを可能にする。ブラウザ１０は、プロセス制御システム６から得られるどのような情報も表示するために入出力システム・エグゼキュティブ・ファームウェア２２を用いるウェブ・サイト４にコマンドを送出する。ブラウザ１０は、以下で詳細に説明するように、プロセス制御システム６のリモート・ヒューマン・マシン・インターフェース（ＨＭＩ）制御として機能する。
【００２０】
図２は、入出力装置４０に対するインターネット・インターフェースを示す本発明の基本的なブロック図を示す。ウェブ・サイト４は、固有のインターネット・アドレス１８とウェブ・サーバ３０とを有するネットワーク・インターフェース１６を含む。ウェブ・サーバ３０は、ウェブ・サイトのホーム・ページを提供する。システム全体に対するセキュリティは、ウェブ・サーバ３０に含まれ得るが、ネットワーク・インターフェース１６の一部として一般的に保持される。サイトで種々のページに対してセキュリティを提供するのに加えて、ユーザはウェブ・サーバ３０をディスエーブルすることができる。パスワード及びユーザ・リストは、遠隔サーバからダウンロードされる、ウェブ・サーバ３０に格納された初期コンフィギュレーション・ファイルに設けられる。コンフィギュレーション・ファイルの保護は、パスワード及びユーザ・リストにより遠隔サーバ及びウェブ・サーバ３０によって提供される。ウェブ・サーバ３０は、バック・プレーン３４を介して入出力装置４０にウェブ・サーバ３０をプラグインすることによりインターネット１４への入出力装置４０用の直接接続を提供する。
【００２１】
入出力装置４０は、ウェブ・サーバ３０又は他の装置とインターフェースすることができる通信入力及び／又は出力を有する装置を含む。入出力装置４０は、ＰＬＣシステムに対する伝統的な入出力モジュールと共に、センサ、リレー、ゲージ、バルブ、メッセージ表示、スイッチ、リミット・スイッチ、近接スイッチ、モータ・スタータ、モータ・コントローラ及び他の同様の装置のような複数の装置を含む。ウェブ・サーバ３０はクライアント及びサーバ・インターフェースの両方を提供する。入出力装置４０とウェブ・サーバ３０との間の全ての信号はバック・プレーン３４を通る。バック・プレーン信号はアドレス指定、制御、データ及び電力を含む。クライアント・インターフェースは、入出力モジュールがインターネットを介して遠隔ノードにコマンドを送出することを可能にし、またサーバ・インターフェースは、遠隔ノードから発生されたコマンドを処理することを可能にする。遠隔ＨＭＩからの入出力装置４０の近リアル・タイム制御は、ウェブ・サーバ３０を介してデータ・フローを制御することによって可能である。
【００２２】
図４は、インターネット１４を介してプロセス制御システム内で相互接続された少なくとも１つのＰＣＬ３２とアプリケーション・プログラム３６とを示す。図５は、入出力装置４０がウェブ・サーバ３０に直接に相互接続された本発明の他の実施例を示す。本発明の別の実施例が図６に示されており、そこでは、入出力装置４０は、インターネット１４と相互接続することができる組込みインターフェースを有する。
【００２３】
ウェブ・サーバ３０は、それが入出力装置４０にコマンドを送出して応答を受け取ることを可能にするＴＣＰ／ＩＰネットワーク４２上のノードとして機能する。好ましい実施例におけるＴＣＰ／ＩＰネットワーク４２はイーサネット・ネットワークであるけれども、他のハイ・レベル・プロトコルを使用することができる。ユーザは、遠方位置でウェブ・ブラウザ１０を用いることによってインターネット１４を介して入出力装置４０を制御しかつその構成情報を閲覧することができる。
【００２４】
ウェブ・サーバ３０は図３にもっと詳細に示されている。種々のコンポーネントは、それの機能を実行するために必要とされる接続性を備えている。リアル・タイム・オペレーティング・システム４４は構成要素間の対話を制御する。オペレーティング・システム４４は、中央処理装置（ＣＰＵ）４６上のプロセッサ時間を種々のタスクに割り付け、メモリ管理を提供し、一組のメッセージ・サービス及び信号サービスを提供する。メッセージ・サービス及び信号サービスは、タスク間の通信及びドライバとタスクとの間の通信を可能にする。
【００２５】
ＴＣＰ／ＩＰネットワーク４２への接続は、１００Ｍｂｓイーサネットの場合にはシラス・ロジック社から入手可能なクリスタルＣＳ８９５２のようなイーサネット通信チップ４９を介して１０Ｍｂｓ（メガビット／秒）又はそれ以上の速度でメッセージを送受信するイーサネット・ドライバ４８を通る。将来は１Ｇｂｓ（ギガビット／秒）以上の速度が可能なイーサネット通信チップが使用され得ることが意図されている。通信を容易にする物理的接続は、光ファイバ・ケーブル又はツイスト・ペア形式の銅線を介したものであり得る。ツイスト・ペア形式の銅線を介した１００Ｍｂｓイーサネットの場合には、銅線及びワイヤ接続は少なくともカテゴリ５の銅線基準に適合しなければならない。
【００２６】
代替として、ＴＣＰ／ＩＰスタック２４は２重ＴＣＰ／ＩＰスタックで置換され得る。２重ＴＣＰ／ＩＰスタックは、広範な範囲のＴＣＰ／ＩＰメッセージに対してサポートを提供する第１のＴＣＰ／ＩＰスタックを備えている。第２のＴＣＰ／ＩＰスタックは、入出力装置４０に対して高優先順位制御メッセージを管理する「短いスタック」である。発信ＴＣＰ／ＩＰメッセージについては、適当なＴＣＰ／ＩＰスタックが入出力装置４０によって選択される。着信ＴＣＰ／ＩＰメッセージについては、ＴＣＰ／ＩＰメッセージが、解釈され、また、それがイーサネット・プロトコル上のＭｏｄｂｕｓを意図するＴＣＰ／ＩＰメッセージであるか否かを判断される。それがイーサネット・プロトコル上のＭｏｄｂｕｓを意図するＴＣＰ／ＩＰメッセージであるならば、このメッセージは第２のスタックに送出される。それがイーサネット・プロトコル上のＭｏｄｂｕｓを意図するＴＣＰ／ＩＰメッセージでないならば、第１のＴＣＰ／ＩＰスタックがそのメッセージを処理する。このようにして、イーサネット・プロトコル上のＭｏｄｂｕｓを意図するＴＣＰ／ＩＰスタックは、単一のＴＣＰ／ＩＰスタックが実行されるときよりも速くかつ効率的に処理される。
【００２７】
ウェブ・サーバは、それがネットワーク上の他の装置によってアドレス指定されることを可能にする固有のグローバル・アドレス１８を有する。イーサネット・ドライバ４８は、メモリ５２の送信バッファ５０及び受信バッファ５１を管理するとともに、イーサネット通信チップ４９とインターフェースする。送信バッファ５０及び受信バッファ５１はイーサネット通信チップ４９及びイーサネット・ドライバ４８の両方によって共有される。イーサネット・ドライバ４８は、ＴＣＰ／ＩＰスタック５４に対する送信要求インターフェース及び受信表示インターフェースも備えている。イーサネット通信チップ４９は、送信キュー・インターフェース及び受信キュー・インターフェースを備えるとともに、メッセージの送信完了時に及び新しいメッセージの受信時に割込みを発生する。イーサネット・ドライバ４６は受信バッファを受信キューに配置する。割込みルーチンで、イーサネット・ドライバ４８は受信キューを調べる。受信キューに何らかのメッセージがあれば、受信バッファをＴＣＰ／ＩＰスタック５４に渡す。ＴＣＰ／ＩＰスタック５４は、受信バッファをコピーし、その後のある時点で、イーサネット・ドライバ４８をコールして受信バッファを戻し、返送されたバッファを受信キューに配置する。
【００２８】
ＴＣＰ／ＩＰスタック５４は、イーサネット・ドライバ４８をコールしてメッセージを送信する。イーサネット・ドライバ４８は、共有メモリ５２からバッファを割り付けることを試みる。それが成功すれば、それは、メッセージをバッファにコピーするとともに、バッファをイーサネット通信チップ４９送信キューに配置する。送信バッファが存在しなければ、ドライバは送信メッセージを落とす。割込みルーチンでは、イーサネット・ドライバ４８は、送信キューを調べるとともに、送信バッファを開放する。
【００２９】
ＴＣＰ／ＩＰネットワーク４２は、ＰＬＣ（又は他の装置）が入出力装置４０からデータを読み出すこと又は書き込むことを要求するとともに、応答を受信することを要求する。バック・プレーン・ドライバ５６は、コマンドを送出するとともに、バック・プレーン３４を介して入出力装置４０から応答を受け取る。バック・プレーン・ドライバ５６はアプリケーションにサーバ・タスク６０を提供する。サーバ・タスク６０インターフェースは、アプリケーションが入出力装置４０に要求コマンドを発行しかつそれの応答を受け取ることを可能にする。
【００３０】
サーバ・タスク６０はキューイング機構及びコールバック機能を用いる。要求及び要求に関連したコールバック機能の両方が待ち行列にされる。バック・プレーン・ドライバ５６がそれの割込みルーチンで要求にサービスするときは、それは関連のコールバック機能を呼び出す。応答及び元の要求はコールバック機能に渡される。コールバック機能は、メッセージ又は信号を通過させる動作ルーチンを呼び出すことができる。
【００３１】
ウェブ・サーバ３０ハードウェアは、二重ポート・メモリ３８を介して入出力装置４０とインターフェースする。それは、ＡＳＩＣチップを用いて二重ポート・メモリ３８から読み出すとともにこれに書き込む。指定位置への書込みは割込みを発生させる。入出力装置４０は、二重ポート・メモリ３８にメッセージを書き込んだのち、割込みを発生させる。メッセージは、ある形式のコマンドを表す。他のコマンド形式は、入出力装置４０に要求を渡しかつ要求に対する応答を得るために使用される。入出力装置４０は、メッセージを渡したのちに、バック・プレーン・ドライバ５６によって配置されたコマンドに対する二重ポート・メモリ３８をポーリングする。これらのコマンドは、メモリ読出しおよびメモリ書込みであり、処理が完了される。
【００３２】
２つの割込みは要求を処理するために使用される。プリポート割込みと呼ばれる最初の割込みでは、バック・プレーン・ドライバ５６は、入出力装置の二重ポート・メモリ３８に配置されたデータ構造に要求をコピーする。スキャン割込みと呼ばれる第２の割込みでは、バック・プレーン・ドライバ５６は、入出力モジュールのデータ構造からの応答をユーザのバッファにコピーする。その後、それはユーザの関連コールバック機能を呼び出す。
【００３３】
入出力装置４０にアクセスする要求はバック・プレーン・ドライバ５６によって処理される。イーサネット・ドライバ・ボードはマスタとして機能し、また、入出力装置４０はスレーブとして機能する。バック・プレーン・ドライバ５６は、入出力装置４０のメモリ３８におけるメモリ位置を決定する。スキャン割込みの終りに、バック・プレーン・ドライバ５６は、二重ポート・メモリ３８を介して入出力装置４０にコマンドを送出してデータを含む位置を読み出すか書き込むことによって、読出し／書込みデータ要求を処理する。
【００３４】
サーバ・タスク６０は、遠方位置のユーザから送出された要求を処理する。サーバ・タスク６０は、バック・プレーン・ドライバ５６、ＴＣＰ／ＩＰスタック５４及びオペレーティング・システム４４のメッセージ・サービスとインターフェースする。サーバ・タスク６０はバック・プレーン・ドライバ５６に要求を投函し、また、関連のコールバック・ルーチンはオペレーティング・システム４４メッセージ・サービスを使用してサーバ・タスク６０に応答を送出する。ＴＣＰ／ＩＰスタック５４信号機能はまた、オペレーティング・システム４４の送出サービスを使用してサーバ・タスク６０にＴＣＰ／ＩＰイベントを送出する。サーバ・タスク６０は多重トランザクション及びコネクションを処理することができる。クライアント・タスク５８のように、サーバ・タスク６０はコネクション・ステート・マシンのリストを維持し、また、各コネクション・ステート・マシンはトランザクション・ステート・マシンのリストを含む。コネクション・ステート・マシンはコネクションを管理するためのものであり、また、トランザクション・ステート・マシンは着信要求及び応答を管理する。
【００３５】
サーバ・タスク６０は、初期化を実行した後にループに入り、オペレーティング・システム４４をコールしてメッセージを受け取る。オペレーティング・システム４４は、メッセージが存在するまで又はタイム・アウトになるまで、サーバ・タスク６０を阻止する。それは、ＴＣＰ／ＩＰタスク５４の信号ハンドラからかバック・プレーン・ドライバ５６からメッセージを受け取るか、タイム・アウトになる。それは、メッセージ又は時間を処理し、ループに再び入る。オペレーティング・システム４４から受け取ったメッセージがＴＣＰ／ＩＰタスク５４の信号ハンドラからのものであるならば、サーバ・タスク６０は、イベントがコネクション要求かクローズ・ソケット・イベントか受取りデータ・イベントかを判断する。ＴＣＰ／ＩＰイベントに基づいて、サーバ・タスク６０は、コネクション・ステート・マシン及びトランザクション・ステート・マシンを使用してトランザクションを進める。ある要求に対する受信データはいくつかの受取りデータ・イベントにわたって発生することがあり、トランザクション・ステート・マシンはこれらのイベントを１つの要求メッセージにまとめる。応答メッセージがオペレーティング・システム４４から受け取られると、サーバ・タスク６０は、応答を送出するためにコネクション・ステート・マシン及びトランザクション・ステート・マシンを見つける。
【００３６】
サーバ・タスク６０がＴＣＰ／ＩＰスタック５４にメッセージを送信するように要求すると、全てのメッセージが送信されないことがある。これは、遠隔ノードがフロー制御されているときに発生する。オペレーティング・システム４４に対するコールがタイム・アウトによりメッセージ返送を受け取ることであるときか、メッセージが存在するときは、サーバ・タスク５４は、フロー制御されたコネクション・ステート・マシンのリストを検索する。各フロー制御されたコネクションについては、それは、フロー制御されているコネクション・ステート・マシンにトランザクション・ステート・マシンを進めるように試みる。
【００３７】
サーバ・タスク６０が着信要求のヘッダを調べたのち、それは、構造を割り付けて要求をバック・プレーン・ドライバ５６に渡すように試みる。サーバ・タスク６０が所定数の未処理要求を既に処理しているときは、試行が失敗であり、コネクションは阻止状態に置かれ、要求の本体はＴＣＰ／ＩＰスタック５４から読み出されない。その結果、ＴＣＰ／ＩＰスタックは遠隔ノードにフロー制御を適用することができない。他の要求の１つが終了すると、フリー・データ構造イベントは、阻止されたコネクション・ステート・マシンに着信Ｍｏｄｂｕｓ要求を処理し続けさせる。
【００３８】
ＨＴＴＰタスク６２は、ＴＣＰ／ＩＰスタック５４及びバック・プレーン・ドライバ５６とインターフェースする。ＨＴＴＰサーバ・タスク６２はＴＣＰ／ＩＰスタック５４からＨＴＴＰ要求を受け取る。要求を処理するために、それはバック・プレーン・ドライバ５６及びバック・プレーン３４を介して入出力装置４０にアクセスする。ＨＴＴＰサーバ・タスク６２はＴＣＰ／ＩＰスタック５４を介して応答を返送する。フレームワークはオペレーティング・システム４４によって供給される。フレームワークは、ＨＴＴＰタスクを作成し、コネクションにアクセスし、ＨＴＴＰ要求を調べる。要求を調べたのち、それはオペレーティング・システム４４を呼び出して要求を処理する。要求の処理は、要求形式を判断することと、実際の要求を処理することとを含む。異なる要求形式は、入出力装置４０及び二重メモリ３８内の種々のデータの閲覧を可能にすることによってユーザが入出力装置４０動作のスナップショットを獲得することを可能にする。これらの要求形式はまた、表１に示すように、入出力装置４０構成、遠隔分散入出力及びモジュール健全さ統計、表示レジスタ、バック・プレーン構成、イーサネット統計などの表示を含む。
【００３９】
【表１】
0005461501.tif 000002
【００４０】
ホーム・ページはいくつかのデータ・ページに対するハイパーリンクを含む。コンフィギュレーション・ページは入出力装置４０の構成を表示する。入出力モジュール健全さステータス・ページは一連のリンク・ページである。第１のページは、ヘッドにおける通信健全さ統計を表示するとともに、構成されたドロップ・ページに対するリンクを含む。構成されたドロップ・ページは２つの表を表示する。２つの表の一方はドロップの通信ステータスを示すためのものであり、他方は入出力モジュール４０を示すためのものである。コンフィギュレーション・ページは、入出力モジュール４０、これらの健全さ及び与えられたラックに対するスロット位置を表示する。選択された入出力モジュール４０から、ユーザはそれの入力値及び出力値を閲覧することができる。複数のオプション・モジュール及びそれらのスロット位置を示す表は、バック・プレーン・コンフィギュレーション・ページ上に表示される。ページ上に現れるデータは、ユーザの必要性に依存して静的及び動的である。
【００４１】
オペレーティング・システム４４は、これらの要求を処理するとともに、ＴＣＰ／ＩＰスタック５４を介してＨＴＴＰメッセージを送ることにより応答する。これら要求のいくつかを処理することは、統計が保持されているデータ又はメモリ位置を読み出すことを含む。これらの読出しを実行するために、オペレーティング・システム４４は、バック・プレーン・ドライバ５６に要求を送るとともに、イベント信号機構及びイベント・フラグを用いて要求が完了した時を判断する。要求をバック・プレーン・ドライバ５６に送ったのち、オペレーティング・システム４４はイベント・フラッグが送られるのを待機する。バック・プレーン・ドライバが要求を完了すると、バック・プレーン・ドライバ５６は、イベントをセットするコール・バック・ルーチンを呼び出す。その後、オペレーティング・システム４４は要求の処理を再開する。
【００４２】
遠方位置のユーザは、入出力装置４０の設置のホーム・ページのためにインターネットをブラウザする。入出力装置４０は同様に他の制御機能を備えてもよく、また、ユーザが必要な認証を有するのであれば、種々のオプションが利用可能となる。ホーム・ページは、入出力装置４０内のデータに対するアクセスを可能にする種々のページの閲覧を許容することにより、ユーザが入出力装置４０動作のスナップショットを獲得することを可能にする。他のページは、入出力装置４０構成、遠隔分散入出力モジュールの健全さ統計、バック・プレーン構成、イーサネット統計及び表１に既に示した他のものの表示を含む。
【００４３】
特定の実施例が図示され説明されたが、多数の変更が本発明の範囲及び精神を逸脱することなく可能である。
【符号の説明】
【００４４】
３０  ウェブ・サーバ
４０  入出力装置
４２  ＴＣＰ／ＩＰネットワーク
４４  オペレーティング・システム
４６  ＣＰＵ
４８  イーサネット・ドライバ
５４  ＴＣＰ／ＩＰスタック
５６  バック・プレーン・ドライバ
５８  クライアント・タスク
６０  サーバ・タスク
６２  ＨＴＴＰタスク
６６  プロセス制御システム
【図１】
0005461501.tif 000003
【図２】
0005461501.tif 000004
【図３】
0005461501.tif 000005
【図４】
0005461501.tif 000006
【図５】
0005461501.tif 000007
【図６】
0005461501.tif 000008