(57)【特許請求の範囲】
【請求項１】
逐次出力される所定の単位の通信データに対して、相対的な安全性の高低を示す動作フラグを付する手段と、
前記所定の単位の通信データに付された前記動作フラグが相対的に安全性が高い事を示す場合に、前記所定の単位の通信データごとに誤り符号を作成し、当該通信データへ前記誤り符号を付する手段と、  
前記動作フラグが付された所定の単位の前記通信データを複数格納する手段と、
格納された前記複数の通信データを取出し、当該複数の通信データに対して第二の誤り符号を作成するとともに、当該複数の通信データに前記第二の誤り符号を付した通信フレームを作成する手段と、を有し、
前記通信フレームには通信過程のエラー発生状態を反映するステータスが含まれることを特徴とする送信装置。
【請求項２】
請求項１において、コントローラとプロセス入出力装置とが通信装置を介して通信するものであって、前記コントローラ，前記通信装置，前記プロセス入出力装置のいずれかでエラーが発生した場合に通信データのフォーマットのステータスにエラー発生情報を反映する機能を有することを特徴とする送信装置。
【請求項３】
逐次出力される所定の単位の通信データに対して、相対的な安全性の高低を示す動作フラグを付する手段と、
前記所定の単位の通信データに付された前記動作フラグが相対的に安全性が高い事を示す場合に、前記所定の単位の通信データごとに誤り符号を作成し、当該通信データへ前記誤り符号を付する手段と、
前記動作フラグが付された所定の単位の前記通信データを複数格納する手段と、
格納された前記複数の通信データを取出し、当該複数の通信データに対して第二の誤り符号を作成するとともに、当該複数の通信データに前記第二の誤り符号を付した通信フレームを作成する手段と、を有し、
予め設定された動作モードと前記通信フレームのステータスに反映されたデータ出力側の動作モードを比較チェックする機能を有することを特徴とする送信装置。
【請求項４】
送信装置と、前記送信装置からの通信フレームを受信する受信装置を有する通信システムにおいて、
前記送信装置は、逐次出力される所定の単位の通信データに対して、相対的な安全性の高低を示す動作フラグを付する手段と、前記所定の単位の通信データに付された前記動作フラグが相対的に安全性が高い事を示す場合に、前記所定の単位の通信データごとに誤り符号を作成し、当該通信データへ前記誤り符号を付する手段と、前記動作フラグが付された所定の単位の前記通信データを複数格納する手段と、格納された前記複数の通信データを取出し、当該複数の通信データに対して第二の誤り符号を作成するとともに、当該複数の通信データに前記第二の誤り符号を付した通信フレームを作成する手段と、を有してなり、
前記受信装置は、前記通信フレームを受け取る手段と、受け取った前記通信フレームに含まれる前記第二の誤り符号から前記通信フレームの誤りか否かを判断する手段と、前記通信フレームから前記通信データを前記所定の単位ごとに取出し、取出した前記通信データに付された前記動作フラグが相対的に安全性が高い事を示す場合、前記所定の単位の通信データごとに付されている前記誤り符号から前記所定の単位の通信データが誤りか否かを判断する手段と、を有してなることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置，受信装置及び通信システムに係り、特に、高信頼を必要とする計算制御システムにおいてシリアルバスを経由したプロセッサと入出力装置の通信における送信装置，受信装置及び通信システムに関する。
【背景技術】
【０００２】
エレクトロニクス・情報分野の技術進歩，単一装置に求められる機能の複雑化・複合化が原動力となってプログラマブル電子装置の適用範囲は広がり、同時にプログラマブル電子装置に求められる信頼性も高まっている。
【０００３】
近年、プラントの大規模化・統合化が進み、また高度に自動化されたプラント操業が行われている中で、国際的な安全規格の波及や熟練者不足という問題もあり、従来から築き上げた安全対策の上に、更なる安全性向上が必要な状況になりつつあり、機能安全規格のIEC61508−１〜７，“Functional Safety of electrical/electronic/programmable 
electric safetyrelated systems”part１〜part７（ＩＥＣ  ６１５０８／６１５１１，ＪＩＳ  Ｃ  ０５０８）に明記されるように、事故の発生や被害の拡大をそれぞれの階層で防ぐことや緩和することが重要視されてきている。
【０００４】
プラント制御装置において上記機能安全規格を満たすためには、異常を検知した場合に、確実に動作することが要求され、万が一故障した場合でも、プロセスを安全側へ停止させることが求められ、機能安全システムは、制御システムとは異なる「安全性」重視の特別な設計を要求される。
【０００５】
また、大規模な制御システムにおいては、プロセス入出力装置はセンサなどのプロセスの近くに設置し、コントローラはプロセスからやや離れた制御室に設置する分散型制御システムが主流となっており、コントローラとプロセス入出力装置の間のデータ通信の誤りによるプロセス入出力装置の誤動作をいかに防止するかが機能安全においては重要になっている。
【０００６】
データ伝送におけるもっとも一般的な誤り検出の方法の一つとして特開平１１−74869号公報に記載されるようにＣＲＣ（Cyclic Redundancy Check）がある。
【０００７】
【特許文献１】特開平１１−７４８６９号公報
【非特許文献１】IEC61508−１〜７，“Functional Safety of electrical/        electronic/programmable electric safetyrelated systems”part１〜part７(IEC  ６１５０８／６１５１１，ＪＩＳ  Ｃ  ０５０８）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プログラマブル電子装置に要求される信頼性の要素には可用性と安全性がある。機器の制御では可用性が重要となり、機器の保護では安全性が重要となる。これら２要素の実現手段は二律背反している部分が多い。
【０００９】
このため、従来は可用性を担う部分装置と安全性を担う部分装置に分けるのが常識とされてきた。このために装置が大型化するだけでなく、運転・保守作業の重複・複雑化が人的要素の信頼性低下を招くことがあった。
【００１０】
本発明の目的は、高性能と安全性を両立することが可能な送信装置，受信装置及び通信システムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、逐次出力される所定の単位の通信データに対して、相対的な安全性の高低を示す動作フラグを付する手段と、前記所定の単位の通信データに付された前記動作フラグが相対的に安全性が高い事を示す場合に、前記所定の単位の通信データごとに誤り符号を作成し、当該通信データへ前記誤り符号を付する手段と、前記動作フラグが付された所定の単位の前記通信データを複数格納する手段と、格納された前記複数の通信データを取出し、当該複数の通信データに対して第二の誤り符号を作成するとともに、当該複数の通信データに前記第二の誤り符号を付した通信フレームを作成する手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、高性能と安全性を両立することが可能となる。
【発明を実施するための最良の形態】
【００１３】
まず、本発明を実施するための最良の形態について、概念的に説明する。プロセス入出力装置４とプロセスの入出力を制御するコントローラ１とにＳ−ＣＲＣ生成／チェック回路１０４（Ｓ−ＣＲＣ生成回路４０６）および動作モード制御部１０５（４０４）を備え、動作モード制御部１０５（４０４）の出力に応じてＳ−ＣＲＣ生成／チェック回路104（Ｓ−ＣＲＣ生成回路４０６）を動作・停止させるように構成する。動作モード制御部
１０５がＳ−ＣＲＣ生成／チェック回路１０４を動作させるモード（以下安全モードと称する）に設定された場合、プロセス入出力装置４からコントローラ１へのデータ送信時、プロセス入出力装置４のＳ−ＣＲＣ生成回路４０６がデータにＳ−ＣＲＣを付加してコントローラ１に通信装置を経由して送信し、コントローラ１は受信したデータとプロセス入出力装置４において付加されたＳ−ＣＲＣをチェックし誤りがあった場合には当該受信データを使用せず破棄すると同時にエラーステータスをたてる。反対にコントローラ１からプロセス入出力装置４にデータを送信する場合は、コントローラ１に実装されたＳ−CRC生成／チェック回路１０４でプロセス入出力装置４へ送信するデータにＳ−ＣＲＣを付加してプロセス入出力装置４に送信し、プロセス入出力装置４に実装されたＳ−ＣＲＣチェック回路４０９がコントローラ１から受信データに対するＳ−ＣＲＣチェックを行い、誤りがあった場合は受信データを破棄し、エラーステータスを立てる。さらに、コントローラ１とプロセス入出力装置４の間のデータの送受信を行う通信装置２，３にコントローラ１から受信したデータとＳ−ＣＲＣおよびプロセス入出力装置４から受信したデータとＳ−ＣＲＣのチェックを行うことによりコントローラ１からプロセス入出力装置４まで端末相互間でのデータ通信の信頼性を高めることができる。動作モード制御部１０５(４０４)がＳ−ＣＲＣ生成／チェック回路１０４（Ｓ−ＣＲＣ生成回路４０６）を停止させるモード（以下通常モードと称する）に設定された場合、コントローラ１およびプロセス入出力装置４でのＳ−ＣＲＣ生成とチェックは行わない。
【００１４】
上記のようにコントローラ１とプロセス入出力装置４の端末相互間のみならず両者の通信の中継をする通信装置２，３においても両端末で生成されるＳ−ＣＲＣのチェックを行う構成とすることにより、Ｓ−ＣＲＣを付加しない通常モードのデータが誤って安全モードのプロセス入出力装置４に出力されるあるいは、通常モードのプロセス入出力装置４の入力データがコントローラ１の安全機能に関するデータ領域に誤って格納されることを防止することができ、従来は可用性を担う部分装置と安全性を担う部分装置に分けていたものを統合し同一装置とすることが可能である。
【００１５】
また、コントローラ１とプロセス入出力装置４との間で送受信されるデータフォーマットをプロセス入出力装置４のアドレスおよび入出力データ（以降データを称す）とデータに対するＳ−ＣＲＣと、装置の動作モードや故障状態を表すステータスとで構成し、送受信するデータが安全モードであるか通常モードであるかを識別するフラグをコントローラ１およびプロセス入出力装置４に実装された動作モード制御部１０５（４０４）がデータ送信時に動作モードフラグをデータフォーマットのステータスの中に反映し、コントローラ１とプロセス入出力装置４の間のデータの送受信を中継する通信装置２，３が上記の動作モードフラグを確認する手段を有し、動作モードフラグが安全モードである場合のみ
ＣＲＣチェックを行い、通常モードの場合はＣＲＣチェックを行わない。
【００１６】
さらにコントローラ１およびプロセス入出力装置４では受信したデータの動作モードフラグと自身の動作モードが一致していることを確認する手段をもち、データの送信側と受信側で動作モードが一致していることを確認し、動作モードが一致しない場合、プロセス入出力装置４側ではプロセスへの出力の許可を行わず、コントローラ１側ではコントローラ１内のプロセッサ１０１あるいはメモリなどへの当該データの出力を禁止するように動作する。
【００１７】
また、コントローラ１とプロセス入出力装置４の間の通信データフォーマットのステータスの中のＳ−ＣＲＣエラーを反映するレジスタをコントローラ１，中継の通信装置２，３，プロセス入出力装置４個別に設けることにより、エラー発生箇所の特定が容易となり、故障発生時の故障箇所の特定，解析および修理時間を短縮することができる。
【実施例１】
【００１８】
上記説明と一部繰り返しになるが、本発明の実施の形態について図１，図２，図３を参照して詳細に説明する。図１は、本発明の実施の形態を示すブロック図である。図２はプロセス入出力装置４とコントローラ１間で受け渡しが行われるデータのフォーマットを示す説明図である。図３は、図１に示す通信装置２および通信装置３のデータ通信のシリアル伝送のフレームのフォーマットを示す説明図である。
【００１９】
まず、図１で全体構成と各部動作の概要を説明する。
【００２０】
本図で、プログラマブル電子制御装置は内部にプロセッサメモリなどを有するコントローラ１とプラントのプロセスとの入出力インターフェースであるプロセス入出力装置４，コントローラ１とプロセス入出力装置４とのデータ通信の中継を行う中継通信装置となる通信装置２と通信装置３とで構成される。
【００２１】
まずコントローラ１からプロセス入出力装置４にプロセスへの出力データを安全モードで送信する場合について説明する。
【００２２】
プロセッサ１０１から出力されたデータは、一度、メモリ１０３に格納される。このデータは、例えば、プロセス入出力装置４からのプロセス状態情報に基づいて演算されるプロセス制御データなどである。このメモリ１０３に格納されたデータは、プロセッサ101の指令により、Ｓ−ＣＲＣ生成／チェック回路１０４でＳ−ＣＲＣを付加されてレジスタ１０６に書き込まれる。ここでＳ−ＣＲＣは安全データに対してコントローラ１またはプロセス入出力装置４でデータ送信時に付加されるＣＲＣ(Cyclic Redundancy Check) である。具体的には、データを所定に区切って、このデータを基に１６bitから３２bit程度のＣＲＣ符号を作成し、データを送信するときは、データをこのＣＲＣ符号とともに送信し、受信側ではデータとＣＲＣ符号の関連が正しいかどうかを確認して、誤り検出するものである。すなわち、データを基にＣＲＣ生成多項式と呼ばれるシフトや加算などを組み合わせた計算を行い、ＣＲＣ符号としてデータに付加して送信し、受信に際しては、受信データをＣＲＣ生成多項式で演算し、受信したＣＲＣとの一致を確認するものである。なお、詳細は後述するが、本実施例では、入出力データに対するＣＲＣをＳ−ＣＲＣと呼び、一方、フレームに対するＣＲＣを単にＣＲＣと呼ぶこととする。
【００２３】
コントローラ１が安全モード，通常モードのどちらで動作しているかは動作モード制御部１０５で管理される。レジスタ１０６のステータスの部分には装置の動作モードや故障状態を表す複数のレジスタがあり、動作モード制御部１０５からの指令により、コントローラ１が安全モード，通常モードのどちらで動作しているかはレジスタ１０６のステータス部に反映される。なお、ステータス，Ｓ−ＣＲＣ及び入出力データを組み合わせたものを単位データと呼ぶ。レジスタ１０６の内容である単位データはコントローラ１のバスインターフェース制御部１０７と通信装置２のバスインターフェース制御部２０１によりレジスタ２０８に複写される。
【００２４】
通信装置２では、レジスタ２０８のステータス部を直接レジスタ２０４に複写し、Ｓ−ＣＲＣに基づき入出力データに誤りがないかをＳ−ＣＲＣチェック回路２０５でチェックしレジスタ２０４に複写する。Ｓ−ＣＲＣチェック回路２０５でのＳ−ＣＲＣチェックで入出力データ誤りが確認された場合、Ｓ−ＣＲＣチェック回路２０５は通信装置２でＳ−ＣＲＣエラーが発生したことを示すフラグをレジスタ２０４のステータス部に反映する。レジスタ２０４の内容はメモリインターフェース制御部２０６を経由してメモリ２０９に格納される。メモリ２０９に単位データ（ステータス，Ｓ−ＣＲＣ及び入出力データを組み合わせた）が格納されると、次の単位データがコントローラ１のレジスタ１０６から通信装置２のレジスタ２０８に複写され、メモリインターフェース制御部２０６を経由して
、メモリ２０９に、既に記憶されている単位データに追加されて記憶される。この動作が繰り返しに行われ、メモリ２０９に複数の単位データが格納される。
【００２５】
所定の数の単位データがメモリ２０９に格納されると、送信動作に移る。図３に示されるように、メモリ２０９に格納された内容は単位データ６１２，６１３をシリアルに複数まとめ、ＣＲＣ生成回路２０２でヘッダ６１１を付加して送信フレームに構成すると同時に、フレームに対するＣＲＣ６１４を付加してフレーム６０１を構成する。このように、入出力の単位データ毎に付加されるＳ−ＣＲＣとフレーム毎に付加されるＣＲＣとで二重の誤りチェックを付加することでデータの誤り検出効果を向上している。ＣＲＣ生成回路
２０２で生成された送信フレームはシリアルバスインターフェース部２０７でシリアルデータに変換され、通信メディア５を介して通信装置３のシリアルバスインターフェース部３０７に送られる。なお、図２に示すように、フレーム６０１を構成する単位データ612には、ステータス５１１として、Ｓ−ＣＲＣチェック回路２０５で誤りが検出されれば、Ｓ−ＣＲＣエラー５２２が追記され、ＣＲＣチェック回路２０３で誤りが検出されれば、ＣＲＣエラーが５２３追記される。説明が前後するが、Ｓ−ＣＲＣエラー５２２及びCRCエラー５２３は、さらに、誤り検出がされた回路が分かるように、例えば、ＣＰＵで誤り検出された場合にはＣＰＵ５２１と追記されるように、通信装置２（５３２），通信装置３（５３３），ＰＩ／Ｏ５３４、或いは、通信装置２（５３５），通信装置３（５３６）のように追記される。
【００２６】
通信装置３では、シリアルバスインターフェース部３０７は受信したフレームをＣＲＣチェック回路３０３に送りＣＲＣチェック回路３０３はフレーム毎に付加されたＣＲＣのチェックを行い、フレームから個々のデータに分解してメモリ３０９に格納する。メモリ３０９に格納されたデータはメモリインターフェース部３０６を介してレジスタ３０８に送られ、続いてレジスタ３０８のステータス部はレジスタ３０４のステータス部に直接複写され、Ｓ−ＣＲＣおよび入出力データ部はＳ−ＣＲＣチェック回路３０５でＳ−ＣＲＣのチェックを実施後レジスタ３０４に複写される。Ｓ−ＣＲＣチェック回路３０５で誤りが検出された場合、通信装置３でＳ−ＣＲＣエラーが発生したことを示すステータスをレジスタ３０４のステータスに反映する。レジスタ３０４の内容はバスインターフェース制御部３０１とプロセス入出力装置４のバスインターフェース制御部４０１によってプロセス入出力装置４のレジスタ４０３に複写される。
【００２７】
プロセス入出力装置４では、レジスタ４０３に複写されたＳ−ＣＲＣと出力データは、タイミング制御部４０２の指令を受け、Ｓ−ＣＲＣチェック回路４０９でＳ−ＣＲＣチェックをする。ステータス部は動作モード制御部４０８に送られ、ステータス部に反映されたデータ出力元の動作モードが安全モードであるかどうかのチェックを行うとともに、出力データがコントローラ１からの伝送過程でエラーが発生していないかをステータス部のフラグで確認し、動作モードが安全モードで且つステータスにエラー情報が含まれていない場合のみ、レジスタ４０３の出力データ部をレジスタ４１０に複写し、データ出力制御部４１１がプロセスへの出力信号４１３の出力を行う。
【００２８】
次にプロセス入出力装置４からコントローラ１へデータを安全モードで送信する場合について説明する。
【００２９】
プロセス入出力装置４では、プロセスからの入力信号４１２はデータ入力制御部４０５でプロセス入出力装置４内に取り込まれ、入力データはレジスタ４０７のデータ部に複写されると同時にＳ−ＣＲＣ生成回路４０６に送られ、Ｓ−ＣＲＣ回路４０６は入力データに対するＳ−ＣＲＣを生成してレジスタ４０７のＳ−ＣＲＣ部にＳ−ＣＲＣを格納する。動作モード制御部４０４には、入力データの通信の前に、コントローラ１から、動作モードが安全モードか通常モードかのどちらであるかの情報が、通信装置２及び通信装置３を介して、送信されている。動作モード制御部４０４はプロセス入出力装置４の動作モードが安全モード，通常モードのどちらであるかを示す動作モードステータスをレジスタ407のステータス部に反映する。レジスタ４０７の内容はバスインターフェース部４０１と通信装置３内のバスインターフェース制御部３０１により通信装置３内のレジスタ３０４に複写される。
【００３０】
通信装置３では、レジスタ３０４のステータス部は直接レジスタ３０８のステータス部に複写され、Ｓ−ＣＲＣおよびデータ部はＳ−ＣＲＣチェック回路３０５でチェックを行い、誤りがなければレジスタ３０８のＳ−ＣＲＣおよび入出力データ部にそれぞれ複写される。Ｓ−ＣＲＣチェック回路３０５でエラーが検出された場合、Ｓ−ＣＲＣチェック回路はレジスタ３０８のステータス部に通信装置３でＳ−ＣＲＣエラーが発生したフラグ立てる。レジスタ３０８に複写された単位データはメモリインターフェース制御部３０６によってメモリ３０９に複写される。ＣＲＣ生成回路３０２はメモリ３０９に複写された複数のデータ単位をまとめて伝送フレームを構成するとともにフレームに対するＣＲＣを生成し、シリアルバスインターフェース部３０７に送る。シリアルバスインターフェース部３０７は受け取ったフレームをシリアルデータに変換し、メディア５を通して通信装置２のシリアルバスインターフェース部２０７に送信する。
【００３１】
通信装置２では、シリアルバスインターフェース部２０７は受信したフレームをＣＲＣチェック回路２０３に送り、ＣＲＣチェック回路２０３は受信フレームに対するＣＲＣエラーの有無をチェックし、フレームを個々のデータ単位に分割してメモリ２０９に格納する。メモリ２０９のデータはメモリインターフェース制御部２０６によってレジスタ204に複写され、レジスタ２０４のステータス部は直接レジスタ２０８に複写され、Ｓ−CRCおよび入出力データ部はＳ−ＣＲＣチェック回路２０５でＳ−ＣＲＣチェックを行い、誤りがなければレジスタ２０８のＳ−ＣＲＣ部および入出力データ部にそれぞれ複写される。Ｓ−ＣＲＣチェック回路２０５で誤りが見つかった場合、Ｓ−ＣＲＣチェック回路205はレジスタ２０８のステータス部に通信装置２のＳ−ＣＲＣエラーが発生したフラグを立てる。レジスタ２０８のデータはバスインターフェース制御部２０１およびコントローラ１のバスインターフェース制御部１０７によってレジスタ１０６に複写される。
【００３２】
コントローラ１では、動作モード制御部１０５はレジスタ１０６のステータス部のデータ送信元の動作モードのフラグで送信元が安全モードであるかどうかを確認し、安全モードでなければエラー情報をプロセッサ１０１に送り、レジスタ１０６のデータを破棄する。送信元が安全モードであると確認した場合、レジスタ１０６のＳ−ＣＲＣ部およびデータ部はＳ−ＣＲＣ生成／チェック回路１０４に送られ、Ｓ−ＣＲＣチェックの結果誤りがなければ入出力データをプロセッサ１０１に送信する。
【００３３】
通常モードでのコントローラ１とプロセス入出力装置４の間のデータの通信では、ステータスの設定あるいは動作モード制御部１０５，４０４により、Ｓ−ＣＲＣ生成／チェック回路１０４，Ｓ−ＣＲＣチェック回路２０５，３０５，Ｓ−ＣＲＣ生成回路４０６およびＳ−ＣＲＣチェック回路４０９は動作せず、その他は安全モード時と同様にデータの送受信を行う。これにより、コントローラ１からプロセス入出力装置４までのデータ送受信において、中継の通信装置２，通信装置３を含め、データのフォーマットおよび通信装置２および通信装置３の間のデータ伝送フレーム構成を変えることなく、安全モードと通常モードの両方の通信を同一装置で実現することができる。
【００３４】
コントローラ１からプロセス入出力装置４にプロセスへの出力データを通常モードで送信する場合について説明する。特に、安全モードとの異なる動作を主として説明し、安全モードと同様な部分については、一部省略して説明する。
【００３５】
プロセッサ１０１から出力されたデータは、一度、メモリ１０３に格納される。このメモリ１０３に格納されたデータは、安全モードとは異なり、Ｓ−ＣＲＣ生成／チェック回路１０４は動作せず、Ｓ−ＣＲＣの領域には何も付加されずにレジスタ１０６に書き込まれる。
【００３６】
コントローラ１が安全モード，通常モードのどちらで動作しているかは動作モード制御部１０５で管理される。コントローラ１が安全モード，通常モードのどちらで動作しているかはレジスタ１０６のステータス部に反映される。レジスタ１０６の内容である単位データはコントローラ１のバスインターフェース制御部１０７と通信装置２のバスインターフェース制御部２０１によりレジスタ２０８に複写される。
【００３７】
通信装置２では、レジスタ２０８のステータス部を直接レジスタ２０４に複写する。安全モードとは異なり、Ｓ−ＣＲＣチェック回路２０５は動作せず、Ｓ−ＣＲＣに基づく入出力データの誤りチェックを行わずに、レジスタ２０４に複写する。レジスタ２０４の内容はメモリインターフェース制御部２０６を経由してメモリ２０９に格納される。メモリ２０９に単位データ（ステータス，入出力データを組み合わせた）が格納されると、次の単位データがコントローラ１のレジスタ１０６から通信装置２のレジスタ２０８に複写され、メモリインターフェース制御部２０６を経由して、メモリ２０９に、既に記憶されている単位データに追加されて記憶される。この動作が繰り返しに行われ、メモリ２０９に複数の単位データが格納される。なお、Ｓ−ＣＲＣ領域には何も格納されない。
【００３８】
所定の数の単位データがメモリ２０９に格納されると、送信動作に移る。図３に示されるように、メモリ２０９に格納された内容は単位データ６１２，６１３をシリアルに複数まとめ、ＣＲＣ生成回路２０２でヘッダ６１１を付加して送信フレームに構成すると同時に、フレーム対するＣＲＣ６１４を付加してフレーム６０１を構成する。安全モードでは、Ｓ−ＣＲＣが入出力の単位データ毎に付加され、ＣＲＣがフレーム毎に付加されるが、通常モードでは、ＣＲＣの誤りチェックにとどめている。ＣＲＣ生成回路２０２で生成された送信フレームはシリアルバスインターフェース部２０７でシリアルデータに変換され、通信メディア５を介して通信装置３のシリアルバスインターフェース部３０７に送られる。
【００３９】
通信装置３では、シリアルバスインターフェース部３０７は受信したフレームをＣＲＣチェック回路３０３に送りＣＲＣチェック回路３０３はフレーム毎に付加されたＣＲＣのチェックを行い、フレームから個々のデータに分解してメモリ３０９に格納する。メモリ３０９に格納されたデータはメモリインターフェース部３０６を介してレジスタ３０８に送られ、続いてレジスタ３０８のステータス部はレジスタ３０４のステータス部に直接複写され、Ｓ−ＣＲＣ（何も格納されない）および入出力データ部は、通常モードであるので、Ｓ−ＣＲＣチェック回路３０５によるＳ−ＣＲＣのチェックはされずに、レジスタ
３０４に複写される。レジスタ３０４の内容はバスインターフェース制御部３０１とプロセス入出力装置４のバスインターフェース制御部４０１によってプロセス入出力装置４のレジスタ４０３に複写される。
【００４０】
プロセス入出力装置４では、レジスタ４０３に複写されたＳ−ＣＲＣ（何も格納されない）と出力データについて、通常モードであるので、Ｓ−ＣＲＣチェック回路４０９でＳ−ＣＲＣチェックされない。ステータス部は動作モード制御部４０８に送られ、ステータス部に反映されたデータ出力元の動作モードが通常モードであるかどうかのチェックを行うとともに、出力データがコントローラ１からの伝送過程でエラーが発生していないかをステータス部のフラグで確認し、エラー情報が含まれていない場合は、レジスタ４０３の出力データ部をレジスタ４１０に複写し、データ出力制御部４１１がプロセスへの出力信号４１３の出力を行う。
【００４１】
次にプロセス入出力装置４からコントローラ１へデータを通常モードで送信する場合について説明する。
【００４２】
プロセス入出力装置４では、プロセスからの入力信号４１２はデータ入力制御部４０５でプロセス入出力装置４内に取り込まれ、入力データはレジスタ４０７のデータ部に複写される。通常モードであるので、Ｓ−ＣＲＣ回路４０６は動作しない。Ｓ−ＣＲＣの領域は何も格納されない。動作モード制御部４０４には、入力データの通信の前に、コントローラ１から、動作モードが安全モードか通常モードかのどちらであるかの情報が、通信装置２及び通信装置３を介して、送信されている。動作モード制御部４０４はプロセス入出力装置４の動作モードが安全モード，通常モードのどちらであるかを示す動作モードステータスをレジスタ４０７のステータス部に反映する。レジスタ４０７の内容はバスインターフェース部４０１と通信装置３内のバスインターフェース制御部３０１により通信装置３内のレジスタ３０４に複写される。
【００４３】
通信装置３では、レジスタ３０４のステータス部は直接レジスタ３０８のステータス部に複写される。通常モードであるので、Ｓ−ＣＲＣチェック回路３０５でのチェックは行われずに、入出力データ部に複写される。このとき、Ｓ−ＣＲＣの領域は何も格納されていない。レジスタ３０８に複写された単位データはメモリインターフェース制御部３０６によってメモリ３０９に複写される。ＣＲＣ生成回路３０２はメモリ３０９に複写された複数のデータ単位をまとめて伝送フレームを構成するとともにフレームに対するＣＲＣを生成し、シリアルバスインターフェース部３０７に送る。シリアルバスインターフェース部３０７は受け取ったフレームをシリアルデータに変換し、メディア５を通して通信装置２のシリアルバスインターフェース部２０７に送信する。
【００４４】
通信装置２では、シリアルバスインターフェース部２０７は受信したフレームをＣＲＣチェック回路２０３に送り、ＣＲＣチェック回路２０３は受信フレームに対するＣＲＣエラーの有無をチェックし、フレームを個々のデータ単位に分割してメモリ２０９に格納する。メモリ２０９のデータはメモリインターフェース制御部２０６によってレジスタ204に複写され、レジスタ２０４のステータス部は直接レジスタ２０８に複写され、通常モードであるので、Ｓ−ＣＲＣチェック回路２０５でのＳ−ＣＲＣチェックを行わずに、入出力データ部にそれぞれ複写される。レジスタ２０８のデータはバスインターフェース制御部２０１およびコントローラ１のバスインターフェース制御部１０７によってレジスタ
１０６に複写される。Ｓ−ＣＲＣの領域は何も格納されない。
【００４５】
コントローラ１では、動作モード制御部１０５はレジスタ１０６のステータス部のデータ送信元の動作モードのフラグで送信元を確認し、入出力データをプロセッサ１０１に送信する。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施例を示したブロック図。
【図２】コントローラとプロセス入出力装置の間で送受信されるデータフォーマットを示す説明図。
【図３】通信装置間で転送されるフレームのフォーマットを示す説明図。
【符号の説明】
【００４７】
１…コントローラ、２…通信装置１、３…通信装置２、４…プロセス入出力装置、５…通信メディア、１０１…プロセッサ、１０２…プロセッサインターフェース制御部、103
，２０９，３０９…メモリ、１０４…Ｓ−ＣＲＣ生成／チェック回路、１０５，４０４，４０８…動作モード制御部、１０６，２０４，２０８，３０４，３０８，４０３，４０７
，４１０…レジスタ、１０７，２０１，３０１…バスインターフェース制御部、２０２，３０２…ＣＲＣ生成回路、２０３，３０３…ＣＲＣチェック回路、２０５,３０５,４０９…Ｓ−ＣＲＣチェック回路、２０６，３０６…メモリインターフェース制御部、２０７，３０７…シリアルバスインターフェース部、４０１…バスインターフェース部、４０２…タイミング制御部、４０５…データ入力制御部、４０６…Ｓ−ＣＲＣ生成回路、４１１…データ出力制御部、４１２…入力信号、４１３…出力信号。
【図１】
0004812546.tif 000002
【図２】
0004812546.tif 000003
【図３】
0004812546.tif 000004