(57)【特許請求の範囲】
【請求項１】
プロセス制御システムのプロセス制御デバイスの内部にプロセッサを用いてプロトコル検知器を実装する方法であって、
プロセッサと、プロセス制御デバイスの遠隔構成、制御、及びデータ報告を可能にする通信能力とを含む当該プロセス制御デバイスを設ける工程であって、前記プロセス制御デバイスが第１及び第２のポートを有し、かつ、前記通信能力が前記第１のポートを介した前記プロセス制御デバイスの遠隔構成並びに前記第２のポートを介した前記プロセス制御デバイスに関する制御及びデータ報告を可能にする工程と、
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記プロセス制御デバイスが、前記プロセス制御システムのホストから、前記プロセス制御デバイスの前記第１のポートを介して、複数のプロセス制御メッセージプロトコルのうちの第１のプロセス制御メッセージプロトコルに対応するメッセージ構造を有する第１のプロセス制御メッセージを受信したことを決定する工程と、
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記第１のプロセス制御メッセージプロトコルに従って前記プロセス制御デバイスを構成するよう前記第１のプロセス制御メッセージを処理する工程と、
前記プロセス制御システムの内部における制御を可能にするために前記第２のポートを介して前記プロセス制御デバイスに関するデータを報告する工程と、を含み、
前記データが前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルに対応するメッセージ構造を有し、前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルが前記第１のプロセス制御メッセージを介した前記プロセス制御デバイスの構成に基づいており、かつ、前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルが前記複数のプロセス制御メッセージプロトコルのうちの前記第２のプロセス制御メッセージプロトコルと異なっている、方法。
【請求項２】
前記複数のプロセス制御メッセージプロトコルの前記第１のプロセス制御メッセージプロトコルが、ハイウェイアドレス可能遠隔トランスデューサプロトコル、ＭＯＤＢＵＳプロトコル、またはＢｒｉｓｔｏｌ標準非同期プロトコルのうちの１つに対応する、請求項１に記載の方法。
【請求項３】
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記第１のプロセス制御メッセージをパースして前記第１のプロセス制御メッセージのメッセージフィールドを特定する工程と、
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージフィールドのコンテンツを、前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルに対応する前記メッセージ構造のメッセージフィールドと一致させる工程と、をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記メッセージフィールドがプリアンブルフィールドに対応するときに前記メッセージフィールドの前記コンテンツが０ｘｆｆバイトの５〜２０バイトのプリアンブルを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する工程をさらに含む、請求項３に記載の方法。
【請求項５】
前記メッセージフィールドがデリミタフィールドに対応するときに前記メッセージフィールドの前記コンテンツがデリミタバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する工程をさらに含む、請求項３又は４に記載の方法。
【請求項６】
前記メッセージフィールドがアドレスに対応するときに前記メッセージフィールドの前記コンテンツが５バイトのアドレスを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する工程をさらに含む、請求項３〜５のいずれか１項に記載の方法。
【請求項７】
前記メッセージフィールドがコマンドフィールドに対応するときに前記メッセージフィールドの前記コンテンツがコマンドバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する工程をさらに含む、請求項３〜６のいずれか１項に記載の方法。
【請求項８】
前記メッセージフィールドがチェックサムフィールドに対応するときに前記メッセージフィールドの前記コンテンツが単一のチェックサムバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する工程をさらに含む、請求項３〜７のいずれか１項に記載の方法。
【請求項９】
前記メッセージフィールドが開始間隔または終了間隔に対応するときに前記メッセージフィールドの前記コンテンツが開始間隔または終了間隔と関連付けられたデータを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＭＯＤＢＵＳプロトコルに対応すると決定する工程をさらに含む、請求項３〜８のいずれか１項に記載の方法。
【請求項１０】
前記メッセージフィールドが機能フィールドに対応するときに前記メッセージフィールドの前記コンテンツが機能バイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＭＯＤＢＵＳプロトコルに対応すると決定する工程をさらに含む、請求項３〜９のいずれか１項に記載の方法。
【請求項１１】
前記メッセージフィールドが７バイトまたは１２バイトのヘッダフィールドに対応するときに前記メッセージフィールドの前記コンテンツが７または１２ヘッダバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する工程をさらに含む、請求項３〜１０のいずれか１項に記載の方法。
【請求項１２】
前記メッセージフィールドがデータリンク拡張フィールドに対応するときに前記メッセージフィールドの前記コンテンツがデータリンク拡張バイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する工程をさらに含む、請求項３〜１１のいずれか１項に記載の方法。
【請求項１３】
前記メッセージフィールドが第２のデータリンク拡張フィールドに対応するときに第２のメッセージフィールドの第２のコンテンツが第２のデータリンク拡張バイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する工程をさらに含む、請求項３〜１２のいずれか１項に記載の方法。
【請求項１４】
前記メッセージフィールドが開始テキストフィールドに対応するときに前記メッセージフィールドの前記コンテンツが開始テキストバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する工程をさらに含む、請求項３〜１３のいずれか１項に記載の方法。
【請求項１５】
前記メッセージフィールドが終了テキストフィールドに対応するときに前記メッセージフィールドの前記コンテンツが終了テキストバイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する工程をさらに含む、請求項３〜１４のいずれか１項に記載の方法。
【請求項１６】
前記メッセージフィールドが２バイトの巡回冗長検査フィールドに対応するときに前記メッセージフィールドの前記コンテンツが２つの巡回冗長検査バイトを含む場合、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＭＯＤＢＵＳプロトコルまたはＢｒｉｓｔｏｌ標準非同期プロトコルのうちの１つに対応すると決定する工程をさらに含む、請求項３〜１５のいずれか１項に記載の方法。
【請求項１７】
前記第１のポートがＲＳ４８５バス上通信し、かつ、前記第２のポートが周波数偏移変調バス上で通信するように構成される、請求項１〜１６のいずれか一項に記載の方法。
【請求項１８】
プロセス制御デバイスの内部にプロセッサを用いてプロトコル検知器を実装するためのプロセッサと前記プロセス制御デバイスの遠隔構成、制御、及びデータ報告を可能にする通信能力とを有する当該プロセス制御デバイスとして構成された装置であって、
ホストからプロセス制御メッセージを受信するための第１のポートと、
前記プロセッサによって前記プロセス制御デバイスの内部に実装され、前記プロセス制御メッセージが複数のプロセス制御メッセージプロトコルのうちの第１のプロセス制御メッセージプロトコルに対応するメッセージ構造を有すると決定するための前記プロトコル検知器と、
前記第１のプロセス制御メッセージプロトコルに従って前記プロセス制御デバイスを構成するよう前記プロセス制御メッセージを処理するための前記プロセッサと、
プロセス制御システムの内部における制御を可能にするために前記プロセス制御デバイスに関するデータを報告するための第２のポートと、を備え、
前記データが前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルに対応するメッセージ構造を有し、前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルが前記プロセス制御メッセージを介した前記プロセス制御デバイスの構成に基づいており、かつ、前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルが前記複数のプロセス制御メッセージプロトコルのうちの前記第２のプロセス制御メッセージプロトコルと異なっている、装置。
【請求項１９】
前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルが、ハイウェイアドレス可能遠隔トランスデューサプロトコル、ＭＯＤＢＵＳプロトコル、またはＢｒｉｓｔｏｌ標準非同期プロトコルのうちの１つに対応する、請求項１８に記載の装置。
【請求項２０】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドがプリアンブルフィールドに対応する場合、０ｘｆｆバイトの５〜２０バイトのプリアンブル、
前記メッセージフィールドがデリミタフィールドに対応する場合、デリミタバイト、
前記メッセージフィールドがアドレスに対応する場合、５バイトのアドレス、
前記メッセージフィールドがコマンドフィールドに対応する場合、コマンドバイト、または
前記メッセージフィールドがチェックサムフィールドに対応する場合、単一のチェックサムバイト
を含む場合、前記プロトコル検知器が、前記プロセス制御メッセージの前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定する、請求項１８又は１９のいずれかに記載の装置。
【請求項２１】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドが開始間隔に対応する場合、開始間隔と関連付けられたデータ、
前記メッセージフィールドが終了間隔に対応する場合、終了間隔と関連付けられたデータ、
前記メッセージフィールドが機能フィールドに対応する場合、機能バイト、または
前記メッセージフィールドが巡回冗長検査フィールドに対応する場合、２つの巡回冗長検査バイト
を含む場合、前記プロトコル検知器が、前記プロセス制御メッセージの前記メッセージ構造がＭＯＤＢＵＳプロトコルに対応すると決定する、請求項１８〜２０のいずれか１項に記載の装置。
【請求項２２】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドがデータリンク拡張フィールドに対応する場合、データリンク拡張バイト、
前記メッセージフィールドが開始テキストフィールドに対応する場合、開始テキストバイト、
前記メッセージフィールドが７バイトのヘッダフィールドに対応する場合、７ヘッダバイト、
前記メッセージフィールドが１２バイトのヘッダフィールドに対応する場合、１２ヘッダバイト、
前記メッセージフィールドが第２のデータリンク拡張フィールドに対応する場合、第２のデータリンク拡張バイト、
前記メッセージフィールドが終了テキストフィールドに対応する場合、終了テキストバイト、または
前記メッセージフィールドが２バイトの巡回に対応する場合、２つの巡回冗長検査バイト
を含む場合、前記プロトコル検知器が、前記プロセス制御メッセージの前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定する、請求項１８〜２１のいずれか１項に記載の装置。
【請求項２３】
機械可読命令を含む有形の機械可読な記憶媒体であって、実行されると、プロセッサと、プロセス制御デバイスの遠隔構成、制御、及びデータ報告を可能にする通信能力とを含む当該プロセス制御デバイスの内部の機械に少なくとも
第１のポートを介してプロセス制御メッセージを受信させ、
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記プロセス制御メッセージが複数のプロセス制御メッセージプロトコルのうちの第１のプロセス制御メッセージプロトコルに対応するメッセージ構造を有すると決定させ、
前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルに従って前記プロセス制御デバイスを構成するよう前記プロセス制御メッセージを処理させ、かつ
プロセス制御システムの内部における制御を可能にするために第２のポートを介して前記プロセス制御デバイスに関するデータを報告させ、
前記データが前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルに対応するメッセージ構造を有し、前記複数のプロセス制御メッセージプロトコルのうちの第２のプロセス制御メッセージプロトコルが前記プロセス制御メッセージを介した前記プロセス制御デバイスの構成に基づいており、かつ、前記複数のプロセス制御メッセージプロトコルのうちの前記第１のプロセス制御メッセージプロトコルが前記複数のプロセス制御メッセージプロトコルのうちの前記第２のプロセス制御メッセージプロトコルと異なっている、記憶媒体。
【請求項２４】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドがプリアンブルフィールドに対応する場合、０ｘｆｆバイトの５〜２０バイトのプリアンブル、
前記メッセージフィールドがデリミタフィールドに対応する場合、デリミタバイト、
前記メッセージフィールドがアドレスに対応する場合、５バイトのアドレス、
前記メッセージフィールドがコマンドフィールドに対応する場合、コマンドバイト、または
前記メッセージフィールドがチェックサムフィールドに対応する場合、単一のチェックサムバイト
を含む場合、前記命令が、さらに前記機械に、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がハイウェイアドレス可能遠隔トランスデューサプロトコルに対応すると決定させる、請求項２３に記載の記憶媒体。
【請求項２５】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドが開始間隔に対応する場合、開始間隔と関連付けられたデータ、
前記メッセージフィールドが終了間隔に対応する場合、終了間隔と関連付けられたデータ、
前記メッセージフィールドが機能フィールドに対応する場合、機能バイト、または
前記メッセージフィールドが巡回冗長検査フィールドに対応する場合、２つの巡回冗長検査バイト
を含む場合、前記命令が、さらに前記機械に、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＭＯＤＢＵＳプロトコルに対応すると決定させる、請求項２３又は２４に記載の記憶媒体。
【請求項２６】
前記プロセス制御メッセージのメッセージフィールドのコンテンツが、以下のうちの少なくとも１つ：
前記メッセージフィールドがデータリンク拡張フィールドに対応する場合、データリンク拡張バイト、
前記メッセージフィールドが開始テキストフィールドに対応する場合、開始テキストバイト、
前記メッセージフィールドが７バイトのヘッダフィールドに対応する場合、７ヘッダバイト、
前記メッセージフィールドが１２バイトのヘッダフィールドに対応する場合、１２ヘッダバイト、
前記メッセージフィールドが第２のデータリンク拡張フィールドに対応する場合、第２のデータリンク拡張バイト、
前記メッセージフィールドが終了テキストフィールドに対応する場合、終了テキストバイト、または
前記メッセージフィールドが２バイトの巡回に対応する場合、２つの巡回冗長検査バイト
を含む場合、前記命令が、さらに前記機械に、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＢｒｉｓｔｏｌ標準非同期プロトコルに対応すると決定させる、請求項２３に記載の記憶媒体。
【請求項２７】
前記メッセージフィールドが２バイトの巡回冗長検査フィールドに対応するときに前記メッセージフィールドの前記コンテンツが２つの巡回冗長検査バイトを含む場合、前記命令が、さらに前記機械に、前記プロセス制御デバイスの内部の前記プロセッサを用いて、前記メッセージ構造がＭＯＤＢＵＳプロトコルまたはＢｒｉｓｔｏｌ標準非同期プロトコルのうちの１つに対応すると決定させる、請求項２４〜２６のいずれか１項に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、プロセス制御に関し、より具体的には、プロセス制御システムで使用される通信プロトコルを特定するための方法及び装置に関する。
【背景技術】
【０００２】
プロセス制御デバイスは、データを収集し、及び／又はプロセス制御環境において機器を制御する。これらのプロセス制御デバイスには、プロセス制御デバイスの遠隔構成、制御、及び／又はデータ報告を可能にする通信能力が備わっている。
【発明の概要】
【０００３】
プロセス制御システムで使用される通信プロトコルを特定するための方法及び装置が開示される。方法の一例には、ポートを介して受信されたプロセス制御メッセージのメッセージ構造を決定すること、メッセージ構造が複数のプロセス制御メッセージプロトコルのうちの第１のプロセス制御メッセージプロトコルに対応すると決定すること、及び第１のプロセス制御メッセージプロトコルに従ってプロセス制御メッセージを処理することが挙げられる。
【図面の簡単な説明】
【０００４】
【図１】プロトコル検出器を含むプロセス制御デバイスの一例のブロック図である。
【図２】ＭＯＤＢＵＳプロトコル通信を検出するために図１のプロトコル検出器によって使用され得るＭＯＤＢＵＳプロトコルメッセージ構造の一例を図示する。
【図３】図１のプロトコル検出器によってＭＯＤＢＵＳメッセージと特定することができるＭＯＤＢＵＳプロトコルに従うメッセージの一例を図示する。
【図４】ＨＡＲＴプロトコル通信を検出するために図１のプロトコル検出器によって使用され得るＨＡＲＴプロトコルメッセージ構造の一例を図示する。
【図５】図１のプロトコル検出器によってＨＡＲＴメッセージと特定することができるＨＡＲＴプロトコルに従うメッセージの一例を図示する。
【図６Ａ】ＢＳＡＰプロトコル通信を検出するために図１のプロトコル検出器によって使用され得るＢＳＡＰプロトコルメッセージ構造６００の第１の例を図示する。
【図６Ｂ】ＢＳＡＰプロトコル通信を検出するために図１のプロトコル検出器によって使用され得るＢＳＡＰプロトコルメッセージ構造６００の第２の例を図示する。
【図７】図１のプロトコル検出器によってＢＳＡＰメッセージと特定することができるＢＳＡＰプロトコルに従うメッセージの一例を図示する。
【図８】メッセージプロトコルを検出するための方法の一例を代表する流れ図である。
【図９】図１のプロトコル検出器の一例を実装するために使用され得るプロセッサシステムの一例のブロック図である。
【発明を実施するための形態】
【０００５】
以下は、他のコンポーネントの中でもとりわけハードウェア上で実行されるソフトウェア及び／またはファームウェアを含むシステムの例を開示するものであるが、そのようなシステムが例証にすぎず、限定するものと見なされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェアコンポーネントのうちのいずれかまたはすべてが、ハードウェア内でのみ、ソフトウェア内でのみ、またはハードウェア及びソフトウェアの任意の組み合わせで具現化され得ることが企図される。従って、以下はシステムの例を説明するものであるが、当業者であれば、提供される例がそ
のようなシステムを実装する唯一の方法ではないことを容易に理解する。
【０００６】
プロセス制御システムにおいて、変数送信機等のデバイスは、中央制御システムと同期化及び通信して、製造ラインの各セグメント上にデータを提供する。ホストには、数例を挙げると、ＨＡＲＴ、ＭＯＤＢＵＳ、及び／またはＢＳＡＰ等の異なる通信プロトコルが備わっている。
【０００７】
本明細書に記載の例示の方法及び装置は、プロセス制御デバイスが複数のプロセス制御ホストと通信し、かつ／または複数のプロトコルのユーザ構成なしでそれらの複数のプロトコルと同時に通信することを可能にする。例示の方法及び装置は、製品の柔軟性を向上させ、ユーザー（例えば、インストールする人、技術者）がどのプロトコルがプロセス制御デバイスのどのポート上で構成されるかを記憶する必要性から解放する。さらに、例示の方法及び装置は、プロセス制御デバイスのさらなるユーザ構成なしでプロセス制御デバイスとの通信が異なるプロトコル間で変更されることを許可し、相互動作性を確実にする。従って、本明細書に開示の例示の方法及び装置は、プロセス制御デバイスのインストール、構成、及び／または研修費を削減する。
【０００８】
図１は、プロトコル検出器１０２を含むプロセス制御デバイス１００の一例のブロック図である。本明細書で使用されるとき、「プロセス制御デバイス１００」という用語は、製造、工業的、及び／または商業的プロセス制御システム等のプロセス制御システムを制御し、感知し、測定し、それらと通信し、及び／又はさもなければそれらと対話するために使用され得る任意のデバイスを含む。例示のプロセス制御デバイス１００は、流体またはガス圧力を測定し、測定結果を電子表示に変換し、かつ測定結果を別のコントローラまたは処理デバイス及び／もしくは記憶デバイスに送信する多変数圧力送信機等の任意の種類のプロセス制御デバイスであり得る。
【０００９】
例示のプロセス制御デバイス１００は、２つのポート１０４、１０６を含む。例示のポート１０４は、ＲＳ４８５バス１０５上で通信するように構成される。対照的に、例示のポート１０６は、周波数偏移変調（ＦＳＫ）バス１０７上で通信するように構成される。例示のプロセス制御デバイス１００は、ポート１０４、１０６を介してコマンド及び／又はデータを受信及び／又は送信するためのプロセッサ１０８（または他の種類の論理回路）を含む。例示のポート１０４は、ＲＳ４８５ホスト１１０に通信可能に連結され、例示のポート１０６は、ＦＳＫホスト１１２に通信可能に連結される。図１のプロセス制御デバイス１００は、それぞれのバス１０５、１０７を介して例示のホストデバイス１１０または１１２のいずれかと通信し得る。
【００１０】
例示のＲＳ４８５ホスト１１０は、例えば、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ製のパーソナルコンピュータで実行するＲｏｃＬｉｎｋ８００ソフトウェア、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ製のパーソナルコンピュータで実行するＴｅｃｈＶｉｅｗソフトウェア、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ製のフィールド通信機、及び／又はＲＳ４８５バス１０５を介して通信することができる任意の他のデバイスであり得る。例示のＦＳＫホスト１１２は、例えば、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ製のパーソナルコンピュータで実行するＴｅｃｈＶｉｅｗソフトウェア、フィールド通信機、パーソナルコンピュータで実行するＤＤ  Ｖｉｅｗｅｒソフトウェア、及び／またはＦＳＫバス１０７を介して通信することができる任意の他のデバイスであり得る。
【００１１】
異なる種類の通信プロトコルが異なるプロセス制御システム及び／又は環境において使用される。各種類の通信プロトコルには利点及び不利点があり、及び／又はデバイスの特定の構成に適している。ＲＳ４８５バスは、多くの場合、ＭＯＤＢＵＳプロトコルまたは
Ｂｒｉｓｔｏｌ標準非同期プロトコル（ＢＳＡＰ）を介して通信するために使用される。図１の例示のポート１０４は、ＭＯＤＢＵＳ及び／又はＢＳＡＰプロトコルを使用して通信するように構成される。ＦＳＫバスは、多くの場合、ＢＳＡＰプロトコル、ＭＯＤＢＵＳプロトコル、及び／またはハイウェイアドレス可能遠隔トランスデューサ（ＨＡＲＴ）プロトコルを介して通信するために使用される。図１の例示のポート１０６は、ＢＳＡＰ、ＭＯＤＢＵＳ、及びＨＡＲＴプロトコルを介して通信するように構成される。
【００１２】
例示のプロセッサ１０８は、ＢＳＡＰ、ＭＯＤＢＵＳ、及びＨＡＲＴプロトコルを介して送信及び／または受信することもできる。例示のＲＳ４８５ホスト１１０は、複数の通信プロトコルのうちの１つにおいてポート１０４を介して例示のデバイス１００にパケットを送信し得る。同様に、例示のＦＳＫホスト１１２は、複数の通信プロトコルのうちの１つにおいてポート１０６を介して例示のデバイス１００にパケットを送信し得る。ユーザー（例えば、技術者、インストールする人）によって特定のポート上で特定のプロトコルのために構成される既知のプロセス制御デバイスとは対照的に、例示のデバイス１００は、どの使用可能な通信プロトコルがポート１０４、１０６を介してデバイス１００に送信されているかを自動的に検出する。この構成は、通常、デバイスが接続されるホスト及び／またはバスの通信能力に基づいてデバイスが最初に初期化されるときに実行される。
【００１３】
１つ以上のプロトコルを介した通信を容易にすべく、図１の例示のプロトコル検出器１０２は、どの通信プロトコルが着信メッセージで使用されるかを検出する。例えば、図１のプロトコル検出器１０２は、デバイス１００が最初に初期化され、かつ／または受信されたパケットが予期された通信プロトコルと一致しないときに、ポート１０４、１０６のうちの１つを介して受信されたパケットに基づいて通信プロトコルを特定し得る。
【００１４】
プロトコルを特定するために、例示のプロトコル検出器１０２は、ポート１０４、１０６を介して受信されたパケットの構造、長さ、及び／またはコンテンツを、１つ以上のプロトコルメッセージ構造と比較する。例示のプロトコル検出器１０２は、どのプロトコルが使用されているかを肯定的に特定し得るか（例えば、プロトコルに一致させることにより）、または否定的に特定し得る（例えば、他のプロトコルを除外することにより）。１つ以上の通信プロトコルは、観察時に、プロトコル検出器１０２に通信プロトコルが使用されている（または使用されていない）と決定させる決定的要因を有し得る。さらに、またはあるいは、１つ以上の通信プロトコルは、組み合わせで観察されるときに、プロトコル検出器１０２に通信プロトコルが使用されている（または使用されていない）と決定させる１つ以上の組の要因を有し得る。例示のプロトコルメッセージ構造及び例示のメッセージは、図２〜７を参照して以下で説明される。
【００１５】
どの通信プロトコルが受信されたメッセージと一致するかを特定すると、例示のプロトコル検出器１０２は、通信プロトコルのプロセッサ１０８及びポート１０４、１０６にどのメッセージが受信されたかを知らせる。その後、例示のプロセッサ１０８は、決定されたプロトコルに従って受信されたメッセージ及び今後受信されるメッセージを処理する。さらに、例示のプロセッサ１０８は、決定されたプロトコルの慣習に従い、決定されたプロトコルに従って発信メッセージを生成する。
【００１６】
図１の例示のプロトコル検出器１０２が別個のブロックとして図示されているが、プロトコル検出器１０２は、例示のプロセッサ１０８の一部として実装されてもよい。
【００１７】
図２は、ＭＯＤＢＵＳプロトコル通信を検出するために図１のプロトコル検出器１０２によって使用され得るＭＯＤＢＵＳプロトコルメッセージ構造２００の一例を図示する。図３は、図１のプロトコル検出器１０２によってＭＯＤＢＵＳメッセージと特定することができるＭＯＤＢＵＳプロトコルに従うメッセージ３００の一例を図示する。図１の例示
のプロトコル検出器１０２は、例えば、１）開始及び／もしくは終了間隔２０２、２０４、２）機能フィールド２０６に対応する機能バイト３０２、ならびに／または３）巡回冗長検査（ＣＲＣ）フィールド２０８に対応する２つのＣＲＣバイト３０４のうちの１つ以上を観察することにより、例示のＭＯＤＢＵＳメッセージ３００が（ＨＡＲＴまたはＢＳＡＰプロトコルとは対照的に）ＭＯＤＢＵＳプロトコルに従うことを検出することができる。
【００１８】
図４は、ＨＡＲＴプロトコル通信を検出するために図１のプロトコル検出器１０２によって使用され得るＨＡＲＴプロトコルメッセージ構造４００の一例を図示する。図５は、図１のプロトコル検出器１０２によってＨＡＲＴメッセージと特定することができるＨＡＲＴプロトコルに従うメッセージ５００の一例を図示する。図１の例示のプロトコル検出器１０２は、１）プリアンブルフィールド４０２に対応する０ｘｆｆバイトの５〜２０バイトのプリアンブル５０２、２）デリミタフィールド４０４に対応するデリミタバイト５０４、３）アドレスフィールド４０６に対応する５バイトのアドレス５０６、４）コマンドフィールド４０８に対応するコマンドバイト５０８、及び／または５）チェックサムフィールド４１０に対応するチェックサムバイト５１０のうちの１つ以上を観察することにより、例示のＨＡＲＴメッセージ５００が（ＭＯＤＢＵＳまたはＢＳＡＰプロトコルとは対照的に）ＨＡＲＴプロトコルに従うことを検出することができる。
【００１９】
図６Ａは、ＢＳＡＰプロトコル通信を検出するために図１のプロトコル検出器１０２によって使用され得るＢＳＡＰプロトコルメッセージ構造６００の第１の例を図示する。図６Ｂは、ＢＳＡＰプロトコル通信を検出するために図１のプロトコル検出器１０２によって使用され得るＢＳＡＰプロトコルメッセージ構造６０２の第２の例を図示する。図７は、図１のプロトコル検出器によってＢＳＡＰメッセージと特定することができるＢＳＡＰプロトコルに従うメッセージ７００の一例を図示する。図１の例示のプロトコル検出器１０２は、１）データリンク拡張（ＤＥＬ）フィールド６０４に対応するＤＥＬバイト７０２、２）開始テキスト（ＳＴＸ）バイト６０６に対応する開始テキストバイト７０４、３）１２バイトのヘッダフィールド６０８もしくは７バイトのヘッダフィールド６１０に対応する７もしくは１２ヘッダバイト７０６、４）第２のＤＥＬフィールド６１２に対応する第２のＤＥＬバイト７０８、５）終了テキスト（ＥＴＸ）フィールド６１４に対応するＥＴＸバイト７１０、及び／または６）２バイトのＣＲＣフィールド６１６に対応する２つのＣＲＣバイト７１２のうちの１つ以上を観察することにより、例示のＢＳＡＰメッセージ７００が（ＭＯＤＢＵＳまたはＨＡＲＴプロトコルとは対照的に）ＢＳＡＰプロトコルに従うことを検出することができる。
【００２０】
プロトコル検出器１０２を実装する方法の一例が図１に図示されているが、図１に図示される要素、プロセス、及び／またはデバイスのうちの１つ以上は、組み合わせられ、分割され、再編成され、取り除かれ、除外され、かつ／または任意の他の方法で実装され得る。さらに、例示のプロトコル検出器１０２、及び／またはより一般的には、図１の例示のデバイス１００は、ハードウェア、ソフトウェア、ファームウェア、ならびに／またはハードウェア、ソフトウェア、及び／もしくはファームウェアの任意の組み合わせによって実装され得る。従って、例えば、例示のプロトコル検出器１０２、及び／またはより一般的には、図１の例示のプロセス制御デバイス１００は、１つ以上の回路（複数可）、プログラム可能プロセッサ（複数可）、特定用途向け集積回路（複数可）（ＡＳＩＣ（複数可））、プログラム可能論理デバイス（複数可）（ＰＬＤ（複数可））、及び／またはフィールドプログラム可能論理デバイス（複数可）（ＦＰＬＤ（複数可））等によって実装され得る。なおさらに、図１の例示のプロトコル検出器１０２は、図１に図示されるものに加えて、または図１に図示されるものの代わりに、１つ以上の要素、プロセス、及び／もしくはデバイスを含んでもよく、かつ／または図示される要素、プロセス、及びデバイスのうちのいずれかのうちの２つ以上もしくはすべてを含んでもよい。
【００２１】
図１の例示のプロトコル検出器１０２及び／または例示のプロセッサ１０８を実装するための方法８００の一例を代表する流れ図が図８に示される。この例において、例示の方法８００は、図９に関連して以下で論じられる例示のコンピュータ９００に示されるプロセッサ９１２等のプロセッサによる実行のためのプログラムを含む機械可読命令を使用して実装され得る。プログラムは、コンピュータ可読記憶媒体（例えば、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク、またはプロセッサ９１２と関連付けられたメモリ）等の有形のコンピュータ可読媒体に記憶されるソフトウェア内で具現化され得るが、全プログラム及び／またはその一部は、プロセッサ９１２以外のデバイスによって代替的に実行されてもよく、かつ／またはファームウェアまたは専用のハードウェア内で具現化されてもよい。さらに、例示のプログラムが図８に図示される流れ図を参照して説明されるが、例示のプロトコル検出器１０２を実装する多くの他の方法が代替的に用いられてもよい。例えば、ブロックの実行の順序を変更してもよく、かつ／あるいは記載のブロックのいくつかを変更、除外、または組み合わせてもよい。
【００２２】
上述のように、図８の例示の方法８００は、情報が任意の期間（例えば、長期間、恒久的に、短期間、情報を一時的にバッファリングする期間、及び／または情報をキャッシングする期間）記憶されるハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、及び／または任意の他の記憶媒体等の有形のコンピュータ可読媒体に記憶されるコード化された命令（例えば、コンピュータ可読命令）を使用して実装され得る。本明細書で使用されるとき、「有形のコンピュータ可読媒体」という用語は、任意の種類のコンピュータ可読記憶を含み、かつ伝搬信号を除外するように明確に定義される。さらに、またはあるいは、図８の例示の方法８００は、情報が任意の期間（例えば、長期間、恒久的に、短期間、情報を一時的にバッファリングする期間、及び／または情報をキャッシングする期間）記憶されるハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び／または任意の他の記憶媒体等の非一時的コンピュータ可読媒体に記憶されるコード化された命令（例えば、コンピュータ可読命令）を使用して実装され得る。
【００２３】
例示の方法８００は、例示のプロトコル検出器１０２、例示のプロセッサ１０８、及び／またはより一般的には、図１の例示のプロセス制御デバイス１００を用いて実行され得る。図８の方法８００は、例えば、プロセス制御デバイス１００が初期化され、かつ／またはホストデバイス（例えば、ホスト１１０、１１２）が例示のプロセス制御デバイス１００のポート（例えば、ポート１０４、１０６）に差し込まれたときに実行され得る。いくつかの他の例において、方法８００は、予期されたプロトコルに従わない１つ以上のメッセージの受信に応答して、プロトコル検出器１０２を用いて実行される。
【００２４】
例示の方法８００は、初期状態に入る（ブロック８０２）ことから始まる。例示の初期状態において、プロトコル検出器１０２及び／またはプロセッサ１０８は、任意の特定のプロトコルに従ってメッセージを処理するようには構成されていない。ある時点において、例示のプロトコル検出器１０２は、（例えば、ポート１０４、１０６を介して）プロセス制御メッセージを受信する（ブロック８０４）。例示のプロトコル検出器１０２は、プロセス制御メッセージをパースして１つ以上のフィールドを特定する（ブロック８０６）。
【００２５】
プロトコル検出器１０２は、任意のＨＡＲＴプロトコルフィールドが存在するかを決定する（ブロック８０８）。例えば、プロトコル検出器１０２は、メッセージが、１）プリ
アンブルフィールド（例えば、図４のプリアンブルフィールド４０２）に対応する０ｘｆｆバイトの５〜２０バイトのプリアンブル（例えば、図５のプリアンブルフィールド５０２）、２）デリミタフィールド（例えば、デリミタフィールド４０４）に対応するデリミタバイト（例えば、デリミタバイト５０４）、３）アドレスフィールド（例えば、アドレスフィールド４０６）に対応する５バイトのアドレス（例えば、アドレス５０６）、４）コマンドフィールド（例えば、コマンドフィールド４０８）に対応するコマンドバイト（例えば、コマンドバイト５０８）、及び／または５）チェックサムフィールド（例えば、チェックサムフィールド４１０）に対応するチェックサムバイト（例えば、チェックサムバイト５１０）のうちの１つ以上を含むかを決定することができる。ＨＡＲＴフィールドが存在する場合（ブロック８０８）、例示のプロトコル検出器１０２は、メッセージがＨＡＲＴ構文（例えば、メッセージプロトコル）に従うかを決定する（ブロック８１０）。メッセージがＨＡＲＴ構文を有する場合（ブロック８１０）、例示のプロトコル検出器１０２は、プロセッサ１０８にＨＡＲＴプロトコルを使用してメッセージを処理するように命令する（ブロック８１２）。
【００２６】
ＨＡＲＴフィールドが存在しない場合（ブロック８０８）、またはメッセージが適切なＨＡＲＴ構文を有しない場合（ブロック８１０）、例示のプロトコル検出器１０２は、いくつかのＭＯＤＢＵＳプロトコルフィールドが存在するかを決定する（ブロック８１４）。例えば、プロトコル検出器１０２は、メッセージが、１）開始及び／または終了間隔（例えば、図２の開始及び／もしくは終了間隔２０２、２０４）、２）機能フィールド（例えば、機能フィールド２０６）に対応する機能バイト（例えば、図３の機能バイト３０２）、ならびに／または３）ＣＲＣフィールド（例えば、ＣＲＣフィールド２０８）に対応する２つのＣＲＣバイト（例えば、ＣＲＣバイト３０４）のうちの１つ以上を含むかを決定することができる。ＭＯＤＢＵＳフィールドが存在する場合（ブロック８１４）、例示のプロトコル検出器１０２は、メッセージがＭＯＤＢＵＳ構文（例えば、メッセージプロトコル）に従うかを決定する（ブロック８１６）。メッセージがＭＯＤＢＵＳ構文を有する場合（ブロック８１６）、例示のプロトコル検出器１０２は、プロセッサ１０８にＭＯＤＢＵＳプロトコルを使用してメッセージを処理するように命令する（ブロック８１８）。
【００２７】
ＭＯＤＢＵＳフィールドが存在しない場合（ブロック８１４）、またはメッセージが適切なＭＯＤＢＵＳ構文を有しない場合（ブロック８１６）、例示のプロトコル検出器１０２は、いくつかのＢＳＡＰプロトコルフィールドが存在するかを決定する（ブロック８２０）。例えば、プロトコル検出器１０２は、メッセージが、１）データリンク拡張（ＤＥＬ）フィールド（例えば、図６Ａ及び６ＢのＤＥＬフィールド６０４）に対応するＤＥＬバイト（例えば、図７のＤＥＬバイト７０２）、２）開始テキスト（ＳＴＸ）バイト（例えば、ＳＴＸバイト６０６）に対応する開始テキストバイト（例えば、ＳＴＸバイト７０４）、３）１２バイトのヘッダフィールド（例えば、図６Ａのヘッダフィールド６０８）もしくは７バイトのヘッダフィールド（例えば、図６Ａのヘッダフィールド６１０）に対応する７もしくは１２ヘッダバイト（例えば、ヘッダバイト７０６）、４）第２のＤＥＬフィールド（例えば、ＤＥＬフィールド６１２）に対応する第２のＤＥＬバイト（例えば、ＤＥＬバイト７０８）、５）終了テキスト（ＥＴＸ）フィールド（例えば、ＥＴＸフィールド６１４）に対応するＥＴＸバイト（例えば、ＥＴＸバイト７１０）、及び／または６）２バイトのＣＲＣフィールド（例えば、ＣＲＣフィールド６１６）に対応する２つのＣＲＣバイト（例えば、ＣＲＣバイト７１２）のうちの１つ以上を含むかを決定することができる。ＢＳＡＰフィールドが存在する場合（ブロック８２０）、例示のプロトコル検出器１０２は、メッセージがＢＳＡＰ構文（例えば、メッセージプロトコル）に従うかを決定する（ブロック８２２）。メッセージがＢＳＡＰ構文を有する場合（ブロック８２２）、例示のプロトコル検出器１０２は、プロセッサ１０８にＢＳＡＰプロトコルを使用してメッセージを処理するように命令する（ブロック８２４）。
【００２８】
プロトコル検出器１０２が、メッセージが構文のうちのいずれも有しないと決定する場合（ブロック８１０、８１６、８２２）、例示の方法８００はブロック８０２に戻り、初期状態のまま留まる。しかしながら、例示のプロトコル検出器１０２がプロセッサ１０８にＨＡＲＴを使用して（ブロック８１２）、ＭＯＤＢＵＳを使用して（ブロック８１８）、またはＢＳＡＰを使用して（ブロック８２４）メッセージを処理させる場合、例示のプロトコル検出器１０２は、例示の方法８００を終了し得る。
【００２９】
図９は、図１の例示のプロトコル検出器１０２、例示のプロセス制御デバイス１００、例示のＲＳ４８５ホスト１１０、及び／または例示のＦＳＫホスト１１２を実装するために使用され得るプロセッサシステム９１０の一例のブロック図である。図９に示されるように、プロセッサシステム９１０は、相互接続バス９１４に連結されるプロセッサ９１２（例えば、プロセッサ１０８）を含む。プロセッサ９１２は、レジスタセットまたはレジスタ空間９１６を含み、これは、完全にオンチップであるように図９に描写されているが、代替として完全にまたは部分的にオフチップであってもよく、かつ専用の電気接続部及び／または相互接続バス９１４を介してプロセッサ９１２に直接連結されてもよい。プロセッサ９１２は、任意の好適なプロセッサ、処理ユニット、またはマイクロプロセッサであり得る。図９に示されていないが、システム９１０は、マルチプロセッサシステムであってもよく、従って、プロセッサ９１２と同一であるか、またはそれに類似しており、かつ相互接続バス９１４に通信可能に連結される１つ以上のさらなるプロセッサを含んでもよい。
【００３０】
図９のプロセッサ９１２は、メモリコントローラ９２０及び入出力（Ｉ／Ｏ）コントローラ９２２を含むチップセット９１８に連結される。周知であるように、チップセットは、典型的には、Ｉ／Ｏ及びメモリ管理機能、ならびにチップセット９１８に連結される１つ以上のプロセッサによってアクセス可能であるか、または使用される複数の汎用及び／もしくは専用レジスタ、タイマー等を提供する。メモリコントローラ９２０は、プロセッサ９１２（または複数のプロセッサが存在する場合、複数のプロセッサ）がシステムメモリ９２４及び大容量記憶メモリ９２９にアクセスすることを可能にする機能を実行する。
【００３１】
システムメモリ９２４には、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）等の任意の所望の種類の揮発性及び／または不揮発性メモリが含まれ得る。大容量記憶メモリ９２９には、ハードディスクドライブ、光学ドライブ、テープ記憶デバイス等を含む任意の所望の種類の大容量記憶デバイスが含まれ得る。
【００３２】
Ｉ／Ｏコントローラ９２２は、プロセッサ９１２が入出力（Ｉ／Ｏ）バス９３２を介して周辺Ｉ／Ｏデバイス９２６及び９２８ならびにネットワークインターフェース９３０と通信することを可能にする機能を実行する。Ｉ／Ｏデバイス９２６及び９２８は、例えば、キーボード、ビデオディスプレイまたはモニタ、マウス等の任意の所望の種類のＩ／Ｏデバイスであり得る。ネットワークインターフェース９３０は、例えば、プロセッサシステム９１０が別のプロセッサシステムと通信することを可能にするイーサネット（登録商標）デバイス、非同期転送モード（ＡＴＭ）デバイス、８０２．１１デバイス、ＤＳＬモデム、ケーブルモデム、セルラーモデム等であり得る。
【００３３】
メモリコントローラ９２０及びＩ／Ｏコントローラ９２２がチップセット９１８内の別個の機能ブロックとして図９に示されているが、これらのブロックによって実行される機能は、単一の半導体回路内に集積され得るか、または２つ以上の別個の集積回路を使用して実装され得る。
【００３４】
ある例示の方法、装置、及び製品が本明細書に開示されているが、本特許の包含範囲は、それに限定されない。むしろ、本特許は、本特許の特許請求の範囲内に十分に収まるすべての方法、装置、及び製品を包含する。
【図１】
0006676689.tif 000002
【図２】
0006676689.tif 000003
【図３】
0006676689.tif 000004
【図４】
0006676689.tif 000005
【図５】
0006676689.tif 000006
【図６Ａ】
0006676689.tif 000007
【図６Ｂ】
0006676689.tif 000008
【図７】
0006676689.tif 000009
【図８】
0006676689.tif 000010
【図９】
0006676689.tif 000011