(57)【要約】制御システムは、入力装置の状態に応答して出力装置を制御するアプリケーション・プログラムを実行する少なくとも１つのプログラマブル論理制御システムのネットワークとのインターネット・ウェブ・インターフェイスを含んでいる。ウェブ・インターフェイスは、ＰＬＣバックプレーンに直接接続されたイーサネット・ボードからのウェブ・ページを実行し、ＨＴＴＰプロトコル・インタプリタ、ＰＬＣバックプレーン・ドライバ、ＴＣＰ／ＩＰスタックおよびイーサネット・ボード・カーネルを含んでいる。ウェブ・インターフェイスは、インターネットを介した遠隔地のユーザによるＰＬＣバックプレーンへのアクセスを提供する。インターフェイスは、インターネット上で使用される産業標準イーサネット、ＴＣＰ／ＩＰおよびＨＴＴＰプロトコルをＰＬＣが認識可能なデータに変換する。このインターフェイスを使用して、ユーザは、プログラマブル論理コントローラ・システムの動作に関する全ての関連データを検索することができる。
2004516540.tif 000002
【特許請求の範囲】
【請求項１】
遠隔地の通信網からプログラマブル論理コントローラ・システムへのアクセスを許すインターフェイス・モジュールであって、インターフェイス・モジュールは、バックプレーンを介してプログラマブル論理コントローラに接続されるスロット内にインストールするようにされており、モジュールは、
Ａ．マイクロプロセッサと、
Ｂ．インターフェイス・モジュールを前記通信網を介してブラウザに接続する手段と、
Ｃ．インターフェイス・モジュールを前記バックプレーンに接続する手段と、
を含むインターフェイス・モジュール。
【請求項２】
請求項１記載のインターフェイス・モジュールであって、前記インターフェイス・モジュールは、プロトコル・タスクを前記バックプレーンとインターフェイスする手段を含み、前記インターフェイス手段は、前記イネーブリング手段からデータ要求を受信し、前記要求されたデータに対して前記プログラマブル論理コントローラ・システムにアクセスし、前記イネーブリング手段を介して前記遠隔地に応答を送るインターフェイス・モジュール。
【請求項３】
請求項１記載のインターフェイス・モジュールであって、前記通信網は、インターネット・プロトコル（ＩＰ）を使用するインターネットとして知られるワールドワイド網であるインターフェイス・モジュール。
【請求項４】
請求項２記載のインターフェイス・モジュールであって、前記インターフェイス・モジュールは、前記インターネット上のウェブ・サイトとして機能し、前記インターフェイス・モジュールは、グローバルＩＰアドレスを含むインターフェイス・モジュール。
【請求項５】
遠隔地の通信網からプログラマブル論理コントローラ・システムへのアクセスを許すインターフェイス・モジュールであって、インターフェイス・モジュールは、プログラマブル論理コントローラのバックプレーン内のスロット内にインストールするようにされており、モジュールは、
Ａ．マイクロプロセッサと、
Ｂ．インターフェイス・モジュールを前記通信網を介してブラウザに接続する網インターフェイスと、
Ｃ．インターフェイス・モジュールを前記バックプレーンに物理的に接続するバックプレーン・インターフェイスと、
を含むインターフェイス・モジュール。
【請求項６】
請求項５記載のインターフェイス・モジュールであって、さらに、遠隔地および前記プログラマブル論理コントローラ・システム間でデータ転送を可能にするプロトコル・スタックを含むインターフェイス・モジュール。
【請求項７】
請求項６記載のインターフェイス・モジュールであって、さらに、前記プロトコル・タスクを前記バックプレーンとインターフェイスするサーバ・タスクを含み、前記サーバ・タスクは、前記プロトコル・スタックからデータ要求を受信し、前記要求されたデータに対して前記プログラマブル論理コントローラ・システムにアクセスし、前記プロトコル・スタックおよび網インターフェイスを介して前記遠隔地に応答を送るインターフェイス・モジュール。
【請求項８】
請求項５記載のインターフェイス・モジュールであって、前記通信網は、インターネット・プロトコル（ＩＰ）を使用するインターネットとして知られるワールドワイド網であるインターフェイス・モジュール。
【請求項９】
請求項５記載のインターフェイス・モジュールであって、前記インターフェイス・モジュールは、前記インターネット上のウェブ・サイトとして機能するインターフェイス・モジュール。
【請求項１０】
請求項６記載のインターフェイス・モジュールであって、前記プロトコル・スタックは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ）スタックを含むインターフェイス・モジュール。
【請求項１１】
請求項１０記載のインターフェイス・モジュールであって、プロトコル・スタックは、ハイパ・テキスト・ドキュメントを配信するＨＴＴＰ（Ｈｙｐｅｒ Ｔｅｘｔ Ｔｒａｎｓｐｏｒｔ Ｐｒｏｔｏｃｏｌ）を含むインターフェイス・モジュール。
【請求項１２】
請求項７記載のインターフェイス・モジュールであって、前記データ要求により遠隔地のユーザは、前記プログラマブル論理コントローラ内のデータを見ることができるインターフェイス・モジュール。
【請求項１３】
請求項１２記載のインターフェイス・モジュールであって、前記データ要求は、さらに前記プログラマブル論理コントローラの構成およびプログラマブル論理コントローラに接続された入力および出力装置のビューを含むインターフェイス・モジュール。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、一般的にプログラマブル・コントローラの分野に関し、特にプログラマブル・コントローラ網をインターネット・ワークを介して監視制御装置に接続するシステムに関する。
【０００２】
（背景技術）
システムおよびプロセスの遠隔監視制御は、多くの形をとってきている。過去、専用回線は、制御システムと遠隔場所間の通信の最も一般的な形となった。制御システムは、多数の場所からアクセスすることができないため、その応用は、制限されている。モデムにより、さまざまな場所から制御システムにアクセスできるようになったが、この種のシステムは、一般的にデータ・ファイルのダウンロードおよびアップロードに制限される。場所間に任意の種類の制御機能を提供することは、この種の環境に制限される。さらに、エンド・ユーザは、制御システムにアクセスするのに一般的にカスタマイズされたインターフェイスが必要である。
【０００３】
インターネットの成長、およびハイパ・テキスト・リンクを介してインターネット・データを編成する配信プラットフォームを提供するそのワールドワイド・ウェブにより、ウェブ上のサービスへの同じユニバーサル・アクセスを有する同種のユーザ・フレンドリ・インターフェイスを各ユーザに与えるクライアント・サーバ・システムを設計することができる。ウェブは、世界中のサーバ・コンピュータ上に格納されたサイトまたはページと呼ばれるドキュメントのネットワークである。各ページは、通常、テキスト、グラフィック・イメージ、ビデオまたはオーディオ等のある種のマルチ・メディア提供作品および恐らくは他のドキュメントへの可能なハイパ・テキスト・リンクを含んでいる。ブラウザによりユーザは、ページを読み出してそれに関連づけられた選択とインタラクトすることができる。ブラウザは、インターネット・ウェブ・サイトにコマンドを送り入手できるどのような情報もページ上にディスプレイするグラフィック・ソフトウェア・プログラムである。さまざまなブラウザ・プログラムがさまざまなメーカから市販されている。
【０００４】
インターネット網は、単一ケーブルを共用する数千の汎用コンピュータに対処するように設計された方法を利用するため、その目的やそのデータの重要度の点からトラフィックを区別する能力がない。インターネットは、もはや単一ケーブルを共用するコンピュータ網ではなく、汎用ステーションとルータおよびファイア・ウォール等の特殊化されたインフラ・ストラクチュア・コンポーネントの両方を含む相互接続されたポイント・ツー・ポイント・リンクのウェブである。
【０００５】
ウェブに接続するためにエンド・ユーザにより使用されるパーソナルコンピュータやワーク・ステーションの種類は考慮されない。インターネットおよび他の網を介した通信には、数種類のプロトコルの中の１つが必要である。インターネット・プロトコル（ＩＰ）等のプロトコルは、ファイル転送、電子メール、その他のサービスを提供する。サンマイクロシステム社のＪａｖａ（Ｒ）として知られるプログラミング言語は、ウェブ・サイト、すなわちページに対するレイアウトおよびグラフィックスを設計するのに使用されるＨＴＭＬ（Ｈｙｐｅｒ Ｔｅｘｔ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）と共に、エンド・ユーザがダウンロードして実行することができる、一般的にアプレットと呼ばれる、ダイナミック・アプリケーションに対してウェブ・サイトを使用できるように拡張されたインターネット技術を有している。これらのアプレットは、ウェブ・ブラウザ内で解釈かつ実行され、一般的にワード・プロセッシングおよび類似用途に制限されている。アプレットをダウンロードおよび実行することは、他種のコンパイルされた言語に比べて遅くなることがある。ブラウザに課されかつ基礎をなすＪＡＶＡ（Ｒ）言語により実施されるセキュリティ・ルールは、アプレットがウェブサーバ自体以外の任意他の装置からあるデータを得るのを防止する。
【０００６】
ＰＬＣ（ｐｒｏｇｒａｍｍａｂｌｅ ｌｏｇｉｃ ｃｏｎｔｒｏｌｌｅｒ）は、産業およびプロセス制御において広く使用されている。多くのメーカがマイクロソフトＷｉｎｄｏｗｓ（Ｒ）および他種の通信網環境を使用する工場オートメーション情報を提供している。これらの網は、通常、遅く、ユニバーサルにアクセス可能ではなく監視およびデータ交換に制限される。制御を実施することができるが、通信網が非決定性であるため、制御は、リアルタイムではない。所有フィールド・バス代替策を使用する特殊化された産業網は、非常に費用がかかることがある。これらの網により運ばれる情報を汎用網上で見られるようにするには、変換プロダクトが必要である。このような中間装置の存在には著しい設置および他の配置コストが付随する。ウェブ・サーバとアプリケーション間のファイア・ウォールは、セキュリティの問題を解決するように設計され高性能とするために設計はされない。
【０００７】
ユーザが特殊化された産業網の代わりにインターネット等の一般的な商業網を使用してＰＬＣ等のオートメーション制御装置を遠隔監視することができるようなオートメーション制御システムを開発することが望ましい。
【０００８】
（発明の開示）
したがって、本発明の主要目的は、産業制御システムとインターネット等のコネクションレス網に接続されたウェブ・ブラウザ間のインターフェイスを提供することである。
【０００９】
本発明のもう１つの目的は、ウェブ・ブラウザを介してＰＬＣを有する産業制御システム内に含まれる情報およびデータへの遠隔アクセスを提供することである。
【００１０】
本発明の好ましい実施例において、本発明は、インターネット等の商業網を介したＰＬＣ内の情報へのアクセスを容易にする。アクセスは、商業ウェブ・ブラウザを使用して局所的にまたは世界的に行うことができる。本発明は、ウェブ・インターフェイスに限定はしないが、ローカル網を含む本質的要素の制御システムおよび入力装置の状態に応答して出力装置を制御するアプリケーション・プログラムを実行する少なくとも１つのＰＬＣ制御システムへの網インターフェイスにより構成される。ウェブ・インターフェイスは、ＰＬＣバックプレーンに直接接続されたイーサネット（Ｒ）・ボードからのウェブ・ページを実行し、ＨＴＴＰプロトコル・インタプリタ、ＰＬＣバックプレーン・ドライバ、ＴＣＰ／ＩＰスタックおよびイーサネット（Ｒ）・ボード・カーネルを含んでいる。ウェブ・インターフェイスは、インターネットを介した遠隔地のユーザによるＰＬＣバックプレーンへのアクセスを提供する。インターフェイスは、インターネット上で使用される産業標準イーサネット（Ｒ）、ＴＣＰ／ＩＰおよびＨＴＴＰプロトコルをＰＬＣが認識可能なデータに変換する。このインターフェイスを使用して、ユーザは、ＰＬＣ構成、Ｉ／Ｏおよびレジスタ状態、動作統計、診断および分散Ｉ／Ｏ構成を含むＰＬＣの動作に関する全ての関連データを検索することができる。
【００１１】
新しくかつ容易には理解できないと信じる本発明の他の特徴および利点は、本発明の好ましい実施例が示されている添付図面と共に下記の明細書から自明である。このような実施例により必ずしも表現されない本発明の全範囲を解釈するために特許請求の範囲が参照される。
【００１２】
（詳細な説明）
本発明は、多くの異なる形で実施することができるが、ここでは好ましい実施例について説明し例示する。本開示は、本発明の原理を例示するものであり、本発明の広範な側面を説明される特定の実施例に限定するものと考えてはならない。
【００１３】
図１は、遠隔地のユーザ２とプロセス制御システム６の監視に使用されるインターネット・ウェブ・サイト４間の関係を例示している典型的なシステムの概観ブロック図である。ユーザ２は、モニタ１２によりウェブ・サイト４のコンテンツを見るためにインストールされた、ネットスケープ通信社のＮａｖｉｇａｔｏｒまたはマイクロソフト社のＩｎｔｅｒｎｅｔ Ｅｘｐｌｏｒｅｒ等の市販のブラウザ１０を有するパーソナル・コンピュータ（ＰＣ）８を有する。ＰＣは、プロセス制御システム６への遠隔ヒューマン・マシン・インターフェイス（ＨＭＩ）を提供する。さまざまな相互接続サービスを容易に入手してＰＣからインターネット１４自体への物理的および電気的相互接続を提供することができる。インターネット１４は、互いに相互接続されて単一コネクション・レスエンティティとして機能する独立したワールドワイド通信網の集まりである。通信は、クライアントおよびサーバ間で通信およびファイル転送を行うことができるいくつかの確立されたプロトコルを使用するクライアント・サーバ・ベースに基づいている。最も広く使用されるプロトコルは、インターネット・プロトコル（ＩＰ）である。
【００１４】
ウェブ・サイト４は、一意的インターネット・アドレス１８、サーバ２０およびアプリケーション・プログラム２２を有する網インターフェイス１６を含んでいる。サーバ２０は、ＩＰと共にＴＣＰを使用し、ＴＣＰ／ＩＰスタック２４を介して網インターフェイス１６およびアプリケーション・プログラム２２とインタラクトするＨＴＴＰインタプリタとして作用する。これは、インターネット１４を介したアプリケーション・プログラム２２とユーザ２間のデータ転送を可能とする。アプリケーション・プログラムは、プロセス制御システム６からデータを提供する。このデータは、遠隔地のユーザ２が制御プロセスを監視するのに使用することができる。ＴＣＰ／ＩＰスタック２４は、ＩＰプロトコルにより指定されるさまざまなレイヤに対して必要なユーザ２およびウェブ・サイト４間のインターネット１４を介したデータ転送を可能とする。
【００１５】
ユーザ２は、いくつかのインターネット・サービス・プロバイダの中の１つのサービス・プロバイダを使用してインターネット１４に接続することができ、接続されるとウェブ・サイト４のアドレスを入力する。ウェブ・サイト４は、テキスト、グラフィックイメージ、ビデオ、オーディオ等のある種のマルチメディア提供作品および他のドキュメントへの可能なハイパ・テキスト・リンクを含むことができるホームページをディスプレイする。ブラウザ１０によりユーザ２は、ページを読み出してそれに関連する選択とインタラクトすることができる。ブラウザ１０は、ウェブ・サイト４にコマンドを送り、それはアプリケーション・プログラム２２を使用してプロセス制御システム６から入手できるいかなる情報もディスプレイする。後述するように、ブラウザ１０は、プロセス制御システムの遠隔ヒューマン・マシン・インターフェイス、すなわちＨＭＩコントロールとして機能する。
【００１６】
図２は、プログラマブル論理コントローラ・システムとのインターネット・インターフェイスを例示する本発明の基本的ブロック図を示す。ウェブ・サイト４は、一意的インターネット・アドレス１８およびウェブ・サーバ３０を有する網インターフェイス１６を含んでいる。ウェブ・サーバ３０は、ウェブ・サイト用ホーム・ページを提供する。全体システムに対するファイア・ウォール、すなわちセキュリティをウェブ・サーバ３０内に含めることができるが、一般的には、網インターフェイス１６の一部として維持される。サイトのさまざまなページに対するセキュリティを提供する他に、ユーザは、ウェブ・サーバ３０をディセーブルすることができる。遠隔サーバからダウンロードされウェブ・サーバ３０内に格納されている初期構成ファイル内にパスワードおよびユーザ・リストが与えられる。次に、パスワードおよびユーザ・リストを介して遠隔サーバおよびウェブ・サーバ３０により構成ファイルの保護がなされる。ウェブ・サーバ３０は、それをそのバックプレーン３４にプラグ・インすることによりプログラマブル論理コントローラ（ＰＬＣ）３２のインターネット１４への直接接続を提供する。ウェブ・サーバ３０は、クライアントおよびサーバ・インターフェイスも提供する。ＰＬＣ３２およびウェブ・サーバ３０間の全ての信号は、それ自体がバックプレーン３４にプラグ・インされる入出力モジュールに通常、接続しなければならない一組のケーブルではなく、バックプレーン３４を通る。バックプレーン信号は、アドレッシング、制御、データおよび電力を含んでいる。クライアント・インターフェイスによりユーザは、インターネットを介して遠隔ノードにコマンドを送ることができ、サーバ・インターフェイスにより遠隔ノードから発信されるコマンドを処理することができる。遠隔ＨＭＩからのＰＬＣ３２の制御は、ウェブ・サーバ３０を通るデータ・フローを制御することにより本質的にリアル・タイム・ベースで可能となる。
【００１７】
ＰＬＣ３２には、そのアプリケーション・プログラム３６、デュアル・ポート・メモリ３８およびＩ／Ｏ装置４０が関連づけられる。アプリケーション・プログラムはＩ／Ｏ装置４０を制御するためのラダー論理プログラムを含んでいる。ウェブ・サーバ３０は、ＴＣＰ／ＩＰ網４２上のノードとして機能して、それがＰＬＣ３２へコマンドを送りかつ応答を受信できるようにする。好ましい実施例におけるＴＣＰ／ＩＰ網４２は、イーサネット（Ｒ）網であるが、他のハイレベル・プロトコルを使用することができる。インターネット１４を介して遠隔地においてウェブ・ブラウザを使用することにより、ユーザは、ＰＬＣ３２のビュー構成情報を制御することができる。
【００１８】
ウェブ・サーバ３０は、図３により詳細に示されている。さまざまなコンポーネントがその機能を実施するのに必要な接続性を提供する。リアルタイム・オペレーティング・システム４４がコンポーネント間のインタラクションを制御する。オペレーティング・システム４４は、中央処理装置（ＣＰＵ）４６をさまざまなタスクに割当て、メモリ管理を行い、一組のメッセージ・サービスおよび信号サービスを提供する。メッセージおよび信号サービスによりタスク間およびドライバとタスク間で通信を行うことができる。ＴＣＰ／ＩＰ網４２との接続は、ＡＭ７９Ｃ９６１等のイーサネット（Ｒ）計算チップを経てイーサネット（Ｒ）によりメッセージを送受信するイーサネット（Ｒ）・ドライバ４８を介してなされる。ウェブサーバは、一意的グローバル・アドレス１８を有し、網上の他の装置によりアドレスすることができる。通信は、光ファイバ・ケーブルや撚り線対を介して行うことができる。イーサネット（Ｒ）・ドライバ４８は、メモリ５２内の送信５０および受信５１バァッファを管理し、ＡＭ７９Ｃ９６１チップとインターフェイスする。送信５０および受信５１バァッファは、ＡＭ７９Ｃ９６１およびイーサネット（Ｒ）・ドライバ４８により共用される。イーサネット（Ｒ）・ドライバ４８は、ＴＣＰ／ＩＰスタック５４への送信要求インターフェイスおよび受信表示インターフェイスも提供する。ＡＭ７９Ｃ９６１は、送信キュー・インターフェイス、受信キュー・インターフェイスを与え、メッセージの送信完了時および新しいメッセージの受信時に割込みを発生する。イーサネット（Ｒ）・ドライバ４６は受信バァッファを受信キューに加える。割込みルーチン内で、イーサネット（Ｒ）・ドライバ４６は、受信キューを調べる。いずれかのメッセージが受信キュー内にあれば、それは受信バァッファをＴＣＰ／ＩＰスタック５４に通す。ＴＣＰ／ＩＰスタック５４は、バァッファをコピーし、しばらく後にバァッファを戻してまた受信キューに加えるようイーサネット（Ｒ）・ドライバ４８に指令する。
【００１９】
ＴＣＰ／ＩＰスタック５４は、メッセージを送信するようイーサネット（Ｒ）・ドライバ４８に指令する。イーサネット（Ｒ）・ドライバ４６は、共用メモリ５２からバァッファを割り当てるよう試みる。成功すると、それはメッセージをバァッファ内にコピーし、バァッファをＡＭ７９Ｃ９６１送信キューに加える。送信バァッファがなければ、ドライバは、送信メッセージをドロップする。割込みルーチン内でイーサネット（Ｒ）・ドライバ４８は、受信キューを調べ、送信したバァッファを自由にする。
【００２０】
ＴＣＰ／ＩＰ網４２は、網上のノードがメッセージ・トランザクションを開始できるようにする特殊なＭＳＴＲ（マスタ）機能を与える。これらのＭＳＴＲ機能は、データ読出しおよび書込みを含みコマンドおよび応答に使用される。それによりＰＬＣ３２内で実行中のプログラムは、ＴＣＰ／ＩＰ網４２上の遠隔ノードにコマンドを送り応答を受信することができる。バックプレーン・ドライバ５６は、バックプレーン３４を介してＰＬＣ３２にコマンドを送り応答を受信する。
【００２１】
バックプレーン・ドライバ５６は、ＰＬＣのメモリ３８内に格納されたそのラダー論理ＭＳＴＲブロックから要求を受信する。応答が得られれば、バックプレーン・ドライバ５６は、それをＭＳＴＲブロックへ戻す。バックプレーン・ドライバ５６は、サーバ５８およびクライアント６０インターフェイスをアプリケーションに提供する。サーバ５８インターフェイスによりアプリケーションは、ＰＬＣの３２エグゼクティブ・プログラムに要求コマンドを発し、その応答を受信する。クライアント６０インターフェイスによりアプリケーションは、新しいＭＳＴＲ要求を受信し、ラダー論理プログラムに応答を返すことができる。
【００２２】
サーバ５８インターフェイスは、キューイング機構およびコールバック機能を使用する。アプリケーションは、要求とそれに関連するコールバック機能の両方を待ち行列に加える。バックプレーン・ドライバ５６がその割込みルーチン内で要求にサービスする場合、それは関連するコールバック機能を呼び出す。応答およびオリジナル要求は、コールバック機能へ通される。コールバック機能は、メッセージを通すかまたはアプリケーションに信号を送るようオペレーティング・ルーチンに指令することができる。
【００２３】
クライアント６０インターフェイスもキューおよびコールバック機能を使用する。クライアント・アプリケーションは、キュー上の表示要求と要求に関連するコールバック機能の両方を待ち行列に加える。バックプレーン・ドライバ５６がその割込みルーチン内で新しいＭＳＴＲブロック要求を検出すると、それは関連するコールバック機能を呼び出す。要求は、コールバック機能へ通される。コールバック機能は、オペレーティング・システム・ルーチンにメッセージを通すか、またはアプリケーションに信号を送るよう指令することができる。ＭＳＴＲブロックは、中断されている、すなわち、もはや解決しないことをバックプレーン・ドライバ５６が検出すると、それはユーザが供給した関連する中断コールバック機能を呼び出す。アプリケーションは、ＭＳＴＲ応答および関連するコールバック・ルーチンをドライバに通すようルーチンを指令する。しばらく後で、ドライバは、その割込みサービス・ルーチン内でラダー論理プログラムに応答を戻し、次にユーザが供給したコールバック機能を呼び出す。
【００２４】
ＰＬＣ３２は、デュアル・ポート・メモリ３８を介してウェブ・サーバ３０ハードウェアとインターフェイスする。ＡＳＩＣチップを使用してデュアル・ポート・メモリ３８の読出しおよび書込みを行う。指定された場所への書込みにより割込みを生じる。ＰＬＣ３２は、最初にデュアル・ポート・メモリ３８内にメッセージを書込み、次に割込みを生じる。メッセージは、コマンドの種類を示す。１つの種類は、ＭＳＴＲブロックは解決することを示す。他の種類は、ＰＬＣ３２へ要求を通し、要求に対する応答を得るのに使用される。メッセージを通した後で、ＰＬＣ３２は、バックプレーン・ドライバ５６により出されたコマンドについてデュアル・ポート・メモリ３８に送信要求する。これらのコマンドは、リード・メモリ、ライト・メモリおよび処理完了である。バックプレーン・ドライバ５６は、状態機械を使用してＭＳＴＲ割込みを処理する。本発明では、アクティブＭＳＴＲブロックの最大数は、４にセットされ、４台の状態機械が必要である。ＭＳＴＲ割込みを受信すると、バックプレーン・ドライバ５６は、ＭＳＴＲブロックに一致する関連する状態機械を見つけようと試みる。既に４つの未決定トランザクションがある場合には、それ以上は得られず、バックプレーン・ドライバ５６は、ＭＳＴＲの出力を偽に設定する。状態機械が見つかる場合には、バックプレーン・ドライバ５６は、それが新しいトランザクションであるか、未決定トランザクションであるか、または応答が得られるかを確認する。新しいトランザクションであれば、要求をコピーし、アプリケーションの関連するコールバック・ルーチンを呼び出す。未決定トランザクションであれば、ＭＳＴＲブロックがまだ繁忙であることをラダー論理プログラムに示す。応答が得られる場合には、バックプレーン・ドライバ５６は、応答をコピーし、ＭＳＴＲの完了またはエラー出力を設定し、アプリケーションのコールバック・ルーチンを呼び出す。
【００２５】
要求を処理するのに２つの割込みが使用される。プリポート割込みと呼ばれる第１の割込みがあると、バックプレーン・ドライバ５６は、ＰＬＣの３２デュアルメモリ３８内に配置されたデータ構造内に要求をコピーする。走査の終り割込みと呼ばれる第２の割込みがあると、バックプレーン・ドライバ５６は、コントローラのデータ構造からの応答をユーザのバァッファ内にコピーする。次に、ユーザの関連するコールバック機能を呼び出す。
【００２６】
ＰＬＣの３２レジスタにアクセスする要求は、バックプレーン・ドライバ５６により処理され、ＰＬＣのエグゼクティブ・プログラムに送られて処理されることはない。バックプレーン・ドライバ５６は、ＰＬＣ３２のレジスタのメモリ３８内のメモリ場所を決定する。走査割込みの終りに、バックプレーン・ドライバ５６は、デュアル・メモリ３８を介してＰＬＣ３２にコマンドを送ることによりリード／ライト・レジスタ要求を処理してレジスタを含む場所を読み出すまたは書き込む。バックプレーン・ドライバ５６は、走査割込みの終りに最大４つのリード／ライト・レジスタ要求にサービスする。
【００２７】
クライアント・タスク５８は、ＴＣＰ／ＩＰスタック５４、バックプレーン・ドライバ５６とインターフェイスし、オペレーティング・システム４４メッセージ・サービスを使用する。それはＭＳＴＲ要求を処理する。バックプレーン・ドライバ５６からＭＳＴＲ要求を受信すると、バックプレーン・ドライバ５６は、要求をＴＣＰ／ＩＰスタック５４に通す。クライアント・タスク５８へ応答を戻すと、ＴＣＰ／ＩＰスタック５４は、応答をバックプレーン・ドライバ５６に通す。ＴＣＰ／ＩＰスタック５４は、Ｂｅｒｋｅｌｅｙ ＴＣＰ／ＩＰインターフェイスおよび信号拡張を提供する。信号拡張は、ソケット番号、タスクＩＤおよびイベントを渡すユーザ供給機能を呼び出す。信号機能は、タスクＩＤにより示されるタスクへメッセージを送るようオペレーティング・システム４４を指令する。それはクライアント５８またはサーバ６０タスクにメッセージを送る。クライアント・タスク５８は、要求表示をバックプレーン・ドライバ５６に知らせ、関連するコールバック・ルーチンが新しいＭＳＴＲトランザクションに対してクライアント・タスク５８にメッセージを送るようオペレーティング・システム４４を指令する。
【００２８】
クライアント・タスク５８は、状態機械を使用して多数の未決定ＭＳＴＲトランザクションを管理する。コネクション状態機械のリンクされたリストがある。コネクション状態機械は、コネクションの確立およびコネクションの終了に使用される。さらに、各コネクション状態機械は、トランザクション状態機械のリストを含んでいる。コネクション状態機械上の各トランザクション機械は、コネクション機械により表わされるノードとのトランザクションを表わす。トランザクション機械は、要求を送り、応答を処理するのに使用される。クライアント・タスク５８は、初期化を実施した後でループに入る。それはメッセージを受信するようオペレーティング・システム４４を指令する。オペレーティング・システムは、メッセージがあるか、またはタイム・アウトとなるまでクライアント・タスク５８をブロックする。それはＴＣＰ／ＩＰスタック５４またはＭＳＴＲコールバック・ルーチンからメッセージを受信するか、あるいはタイム・アウトする。それはメッセージを処理するか、またはタイム・アウトし、次に再びループに入る。オペレーティング・システム４４から受信したメッセージが新しいＭＳＴＲ要求であれば、クライアント・タスクは、コネクション状態機械を得て、新しい状態機械をコネクション状態機械リストの終りに置く。この点において、トランザクション機械は、メッセージの送信を試みる。コネクションが確立されていなかったり、遠隔側がフロー制御を適用しているためにメッセージを送信できないことがある。
【００２９】
オペレーティング・システム４４から受信したメッセージがＴＣＰ／ＩＰイベントであれば、クライアント・タスク５８は、関連するコネクション機械を見つけてＴＣＰ／ＩＰイベントが受理されたコネクション、中断されたコネクションまたは受信したデータ・イベントであるかを確認する。コネクション状態およびトランザクション機械の状態の両方に基づいて、クライアント・タスク５８はメッセージを処理しトランザクションがあれば、それを進める。ＭＳＴＲ応答に対するデータ受信は、いくつかのＴＣＰ／ＩＰイベントを介して行われることがあり、トランザクション状態機械は、データを応答へアセンブルする。
【００３０】
クライアント・タスク５８がＴＣＰ／ＩＰスタックにメッセージの送信を要求する時は、全メッセージは、送信されないことがある。これは、遠隔ノードがフロー制御される時に生じ、それについては後述する。メッセージを受信するというオペレーティング・システム４４への指令にタイム・アウトの返答がされるか、あるいはメッセージがある場合には、クライアント・タスク５８は、フロー制御されるコネクション機械のリストを探索する。フロー制御された各コネクションに対して、それはフロー制御されるコネクション状態機械上のトランザクション状態機械を進めるよう試みる。
【００３１】
サーバ・タスク６０は、遠隔地のユーザから発信される要求を処理する。サーバ・タスク６０は、バックプレーン・ドライバ５６、ＴＣＰ／ＩＰスタック５４およびオペレーティング・システムの４４メッセージ・サービスとインターフェイスする。サーバ・タスク６０は、バックプレーン・ドライバ５６に要求を知らせ、関連するコールバック・ルーチンがオペレーティング・システム４４メッセージ・サービスを使用してサーバ・タスク６０に応答を送る。ＴＣＰ／ＩＰスタック５４信号機能もオペレーティング・システムの４４送信サービスを使用してサーバ・タスク６０にＴＣＰ／ＩＰイベントを送る。サーバ・タスク６０は多数のトランザクションおよびコネクションを処理することができる。クライアント・タスク５８と同様に、それはコネクション機械のリストを維持し、各コネクション機械は、トランザクション機械のリストを含んでいる。コネクション機械は、コネクションを管理するものであり、トランザクション機械は、着信要求および応答を管理する。
【００３２】
サーバ・タスク６０は、初期化を実施した後でループに入る。それはメッセージを受信するようオペレーティング・システム４４を指令する。オペレーティング・システム４４は、メッセージがあるか、あるいはタイム・アウトするまでサーバ・タスク６０をブロックする。それはＴＣＰ／ＩＰタスクの５４信号ハンドラ、バックプレーン・ドライバ５６からメッセージを受信するか、あるいはタイム・アウトする。それはメッセージまたは時間を処理して再びループに入る。オペレーティング・システム４４から受信したメッセージがＴＣＰ／ＩＰタスクの５４信号ハンドラからのものであれば、サーバ・タスク６０は、イベントがコネクション要求、ソケット閉じイベントまたは受信データ・イベントであるかを確認する。ＴＣＰ／ＩＰイベントに基づいて、サーバ・タスク６０は、コネクション機械およびトランザクション機械を使用してトランザクションを進める。要求に対する受信データは、いくつかの受信データ・イベントにわたって生じることがあり、トランザクション機械は、イベントを要求メッセージへアセンブルする。オペレーティング・システム４４から応用メッセージが受信されると、サーバ・タスク６０は応用を送るためにコネクションおよびトランザクション機械を見つける。
【００３３】
サーバ・タスク６０がＴＣＰ／ＩＰスタック５４にメッセージの送信を要求する時は、全メッセージは送信されないことがある。これは遠隔ノードがフロー制御される時に生じる。メッセージを受信するというオペレーティング・システム４４への指令にタイム・アウトの返答がされるか、あるいはメッセージがある場合には、サーバ・タスク５４は、フロー制御されるコネクション機械のリストを探索する。フロー制御された各コネクションに対して、それはフロー制御されるコネクション状態機械上のトランザクション状態機械を進めるよう試みる。
【００３４】
着信要求のヘッダを解析した後で、サーバ・タスク６０は、要求を通す構造をバックプレーン・ドライバ５６に割り当てるよう試みる。サーバ・タスクが予め定められた数の未決定要求を既に処理している場合には、試みは、失敗であり、コネクションは、ブロックされた状態とされ、要求の本体は、ＴＣＰ／ＩＰスタック５４から読み出されない。その結果、ＴＣＰ／ＩＰスタックは、遠隔ノードにフロー制御を適用することがある。他の要求の１つが完全であれば、自由データ構造イベントは、ブロックされたコネクション機械に着信Ｍｏｄｂｕｓ要求の処理を継続させる。
【００３５】
ＨＴＴＰタスク６２は、ＴＣＰ／ＩＰスタック５４およびバックプレーン・ドライバ５６とインターフェイスする。ＨＴＴＰタスク６２は、ＴＣＰ／ＩＰスタック５４からＨＴＴＰ要求を受信する。要求を処理するために、それはバックプレーン・ドライバ５６およびバックプレーン３４を介してＰＬＣ３２にアクセスすることができる。ＨＴＴＰサーバタスク６２は、ＴＣＰ／ＩＰスタック５４を介して応用を返送する。フレームワークは、オペレーティング・システム４４により供給される。フレームワークは、ＨＴＴＰタスクを生成し、コネクションを受理し、ＨＴＴＰ要求を解析する。要求を解析した後で、それは要求を処理するようオペレーティング・システム４４を指令する。要求の処理には要求タイプを確認して実際の要求を処理することが含まれる。さまざまな要求タイプにより、ユーザは、ＰＬＣ３２およびデュアル・メモリ３８内のさまざまなレジスタを見ることによりＰＬＣ３２動作のスナップ・ショットを得ることができる。これらの要求タイプには、表１に示すようなＰＬＣ３２構成のディスプレイ、遠隔および分散Ｉ／Ｏおよびモジュール健全性統計、ディスプレイ・レジスタ、バックプレーン構成、イーサネット（Ｒ）統計その他が含まれる。
【表１】
ホームページを示す。
プログラマブル論理コントローラの構成を示す。
イーサネット（Ｒ）統計を示す。
リード・レジスタ要求ページを示す。
４×レジスタを示す。
コントローラのバックプレーンに取り付けられたラックを示す。
イメージを送る。さまざまなイメージは、さまざまなページ上にディスプレイ
されるｇｉｆファイルである。
遠隔Ｉ／Ｏ統計を示す。
構成された遠隔Ｉ／Ｏドロップのリストを示す。
遠隔Ｉ／Ｏラックの構成および健全性を示す。
遠隔Ｉ／Ｏドロップの通信統計を示す。
遠隔Ｉ／ＯモジュールのＩ／Ｏ基準値を示す。
構成された分散Ｉ／Ｏノードのリストを示す。
分散Ｉ／Ｏノードの構成および健全性を示す。
分散Ｉ／ＯモジュールのＩ／Ｏ基準値を示す。
【００３６】
ホーム・ページは、データの７ページへのハイパ・リンクを含んでいる。構成ページは、ＰＬＣ３２の構成をディスプレイする。遠隔Ｉ／Ｏおよび分散Ｉ／Ｏモジュール健全性状態ページは、一連のリンクされたページである。第１ページは、遠隔Ｉ／Ｏおよび分散Ｉ／Ｏヘッドにおける通信健全性統計をディスプレイし構成されたドロップ・ページへのリンクを含んでいる。構成されたドロップ・ページは、ドロップ状態にリンクされるドロップ数およびドロップおよびラック構成ページにリンクされるラック数を含むテーブルをディスプレイする。２つのテーブルは、ドロップ状態ページに含まれ、一方は、ドロップの通信状態を示すために、他方は、どのラックがＩ／Ｏモジュールで占められるかを示すために含まれる。ドロップおよびラック構成ページは、Ｉ／Ｏモジュール、それらの健全性および所与のラックに対するスロット場所をディスプレイする。選択されたモジュールから、ユーザは、その入力および出力値を見ることができる。レジスタ・データが形式およびテーブルを有するテンプレート内にディスプレイされ、ユーザがアドレスおよび長さを入力する。テーブルは、レジスタ値をディスプレイする。オプション・モジュールおよびそれらのスロット場所を示すテーブルがバックプレーン構成ページ上にディスプレイされる。ページ上に現れるデータは、スタティックであるが、予め選択された時間に自動的に更新することができる。
【００３７】
オペレーティング・システム４４は、これらの要求を処理しＴＣＰ／ＩＰスタック５４を介してＨＴＴＰメッセージを送ることにより応答する。これらの要求のいくつかの処理には、ＰＬＣのトラフィック・コップ、レジスタ、コイルまたは統計が維持されるさまざまなページゼロ場所の読出しが含まれる。これらの読出しを実施するために、オペレーティング・システム４４は、バックプレーン・ドライバ５６に要求を送り、イベント信号機構およびイベント・フラグを使用して、いつ要求が完了するかを決定する。バックプレーン・ドライバ５６に要求を送った後で、オペレーティング・システム４４は、イベント・フラグが送られるのを待つ。要求を完了すると、バックプレーン・ドライバ５６は、イベントを設定するコールバック・ルーチンを呼び出す。次に、オペレーティング・システム４４は、要求の処理を再開する。
【００３８】
プログラマブル論理コントローラ・システムに物理的に接続されたあるハードウェアを表わす模擬ページを容易に入手できるさまざまなグラフィック・プログラムを利用して構成することができ、それは本発明の目的ではない。本発明により遠隔地のユーザは、ブラウザを使用して、模擬ページを見て、そこに例示されたさまざまなコンポーネントを実際に制御することができる。図４は、模擬ページとしてユーザが入手できるラダー論理図形式の単純なモータ起動停止制御を示す。モータ起動押釦１５０を押すことによりモータ起動リレー１５２が常閉停止押釦１５４および常閉過負荷接点１５６を介して励起される。補助モータ起動接点１５８は、起動押釦１５０が解除された後でリレー１５２をラッチしパイロット・ライト１６０が照光する。補助モータ起動接点１６２がポンプ・モータ１６４に給電し、それは停止押釦１５４が押下されるか過負荷リレー１６６が過負荷状態を検出するまで運転し続ける。この例では、起動押釦１５０、停止押釦１５４、過負荷接点１５６、補助モータ起動接点１５８、１６２および過負荷リレー１６６は、プログラマブル論理コントローラ・システムに入力される。リレー１５２、パイロット・ライト１６０およびポンプ・モータ１６４は出力である。ＰＬＣは、入力および出力用アニメーション・データを含むレジスタを有する。ＰＬＣ内のアプリケーション・プログラムは、入力に応答して出力を制御する。
【００３９】
遠隔地のユーザは、プログラマブル論理コントローラ・システムのインスタレーションのホーム・ページに対してインターネットをブラウズする。ＰＬＣは、他の制御機能も有し、ユーザが必要な認証を有する場合には、さまざまなオプションを利用することができる。ホーム・ページにより、ユーザは、ＰＬＣ内のレジスタへのアクセスを許すさまざまなページを見ることによりＰＬＣ動作のスナップ・ショットを取得することができる。他のページも表１に示すようなＰＬＣの構成の遠隔および分散Ｉ／Ｏおよびモジュール健全性統計、ディスプレイレジスタ、バックプレーン構成、イーサネット（Ｒ）統計その他のディスプレイを含んでいる。
【００４０】
模擬ダイヤグラム・ページは、ユーザがシステムの状態を見られるようにするブラウザ画面上に呼び出される。模擬ダイヤグラムのライト１６０、リレー１５２、接点１５８，１６２およびポンプ・モータ１６４は、実際の装置の状態に対応するように更新される。次に、入力および出力の状態がラダー・ダイヤグラム上に示され、それは変更されると自動的に更新される。起動１５０および停止１５４釦を表わすアプレットの使用により、ユーザは、マウスやキーボードを使用して起動１６８または停止１７０ボックス上にカーソルを置いて「クリックする」ことによりモータの起動停止を手動制御することができる。
【００４１】
特定の実施例を例示して説明してきたが、発明の範囲および精神を逸脱することなくさまざまな修正が可能である。
【００４２】
（関連出願）
本出願は、１９９７年９月１０日に出願された米国特許出願第０８／９２７，００５号“Ｗｅｂ Ｉｎｔｅｒｆａｃｅ Ｔｏ Ａ Ｐｒｏｇｒａｍｍａｂｌｅ Ｃｏｎｔｒｏｌｌｅｒ”の継続出願である。本出願は、同一譲受人が譲り受けた出願“Ａｐｐａｒａｔｕｓ ｆｏｒ Ｃｏｎｔｒｏｌｌｉｎｇ Ｉｎｔｅｒｎｅｔｗｏｒｋ Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ”（特許出願第０８／９２６，８３７号、出願人ドケット番号第ＳＡＡ−２号）に関連している。本出願は、同一譲受人が譲り受けた下記の出願にも関連している。１９９８年１０月６日に出願された米国特許出願第０９／１６６，８７０号“Ｍｅｓｓａｇｉｇ Ａｐｐｌｉｃａｔｉｏｎ Ｌａｙｅｒ （ＭＯＤＢＵＳ） Ｏｖｅｒ Ｅｔｈｅｒｎｅｔ（Ｒ） Ｔｏ Ｔｒａｎｓｐｏｒｔ Ｌａｙｅｒ （ＴＣＰ） Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ Ｍｅｔｈｏｄ ａｎｄ Ａｐｐａｒａｔｕｓ Ｆｏｒ Ａ Ｍｏｄｕｌａｒ Ｔｅｒｍｉｎａｌ Ｉｎｐｕｔ／Ｏｕｔｐｕｔ Ｓｙｓｔｅｍ”、１９９９年４月３０日に出願された米国特許出願第０９／３０３，４５８号“Ｗｅｂ Ｉｎｔｅｒｆａｃｅ Ｔｏ Ａ Ｐｒｏｇｒａｍｍａｂｌｅ Ｃｏｎｔｒｏｌｌｅｒ”、１９９８年１２月３０日に出願された米国特許出願第０９／２２３，３４９号“Ｉｎｔｅｒｆａｃｅ Ｔｏ Ａ Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｃｏｎｔｒｏｌｌｅｒ”、および１９９８年３月１６日に出願された米国特許出願第６０／０７８，２２３号“Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ Ｓｙｓｔｅｍ Ｆｏｒ Ａ Ｃｏｎｔｒｏｌ Ｓｙｓｔｅｍ Ｏｖｅｒ Ｅｔｈｅｒｎｅｔ（Ｒ） Ａｎｄ ＩＰ Ｎｅｔｗｏｒｋｓ Ａｎｄ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｉｎｔｅｒｆａｃｅｓ Ｆｏｒ Ｓｕｃｈ Ｓｙｓｔｅｍｓ”。これら出願の内容は、本開示の一部としてここに組み入れられている。
【図面の簡単な説明】
【図１】
本発明に従って遠隔地のユーザとプロセス制御システムを監視するために使用されるインターネット・ウェブ・サイト間の関係を例示する典型的なシステムの概観ブロック図を示す。
【図２】
プログラマブル論理コントローラ・システムとのインターフェイスを例示する本発明の基本ブロック図である。
【図３】
本発明に従った図２に例示したウェブ・サーバ・モジュールのブロック図である。
【図４】
プログラマブル・コントローラ・システムを監視する本発明を例示し、ブラウザを利用して遠隔地のユーザが入手できる典型的な模擬ページである。
【図１】
2004516540.tif 000003
【図２】
2004516540.tif 000004
【図３】
2004516540.tif 000005
【図４】
2004516540.tif 000006
【国際公開パンフレット】
2004516540.tif 000007
2004516540.tif 000008
2004516540.tif 000009
2004516540.tif 000010
2004516540.tif 000011
2004516540.tif 000012
2004516540.tif 000013
2004516540.tif 000014
2004516540.tif 000015
2004516540.tif 000016
2004516540.tif 000017
2004516540.tif 000018
2004516540.tif 000019
2004516540.tif 000020
2004516540.tif 000021
2004516540.tif 000022
2004516540.tif 000023
2004516540.tif 000024
2004516540.tif 000025
2004516540.tif 000026
2004516540.tif 000027
2004516540.tif 000028
2004516540.tif 000029
2004516540.tif 000030
【国際公開パンフレット（コレクトバージョン）】
2004516540.tif 000031
【国際調査報告】
2004516540.tif 000032
2004516540.tif 000033