(57)【要約】【課題】シリアルバス上の伝送エラーを簡易な構成で正確に検出して記録することが可能なプログラマブルロジックコントローラを得ること。【解決手段】シリアルバス２００およびパラレルバス３００で接続されたＣＰＵユニット１とインテリジェント機能ユニット１００との間のシリアルバス２００上のエラーを検出するプログラマブルロジックコントローラにおいて、インテリジェント機能ユニット１００は、ＣＰＵユニット１からシリアルバス２００を介して受信したデータをＣＲＣ機能によってエラー検出し、ＣＰＵユニット１はインテリジェント機能ユニット１００がエラー検出すると、インテリジェント機能ユニット１００が受信したデータとＣＰＵユニット１がインテリジェント機能ユニット１００に送信したデータを対応付けて記憶する。【選択図】        図１
2006301784.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスおよびパラレルバスで接続された第１のユニットおよび第２のユニットを備え、前記第１のユニットと第２のユニットとの間のシリアルバス上のエラーを検出するプログラマブルロジックコントローラにおいて、
前記第１のユニットは、
前記第２のユニットに送信する第１の送信データを記憶しておく第１の送信データ記憶部と、
前記第１の送信データ毎のＣＲＣコードを送信側ＣＲＣコードとして生成する第１の送信側ＣＲＣコード生成部と、
を備え、
前記第２のユニットは、
前記第１のユニットから受信した第１の送信データのＣＲＣコードを受信側ＣＲＣコードとして生成する第１の受信側ＣＲＣコード生成部と、
前記受信側ＣＲＣコードと前記送信側ＣＲＣコードを比較して前記第１のユニットと第２のユニットとの間のシリアルバス上のエラーを検出する第１のＣＲＣ比較部と、
前記第１のＣＲＣ比較部によってシリアルバス上のエラーが検出された送信側ＣＲＣコードに対応する第１の送信データを格納する第１のエラーデータ格納部と、
前記第１のＣＲＣ比較部がシリアルバス上のエラーを検出した際に、前記第１のユニットにエラー通知を行う第１のエラー通知部と、
を備え、
前記第１のユニットは前記第１の送信データおよび前記送信側ＣＲＣコードを前記シリアルバスを介して前記第２のユニットに送信するとともに、前記第２のユニットは前記エラー通知を前記パラレルバスを介して前記第１のユニットに送信し、
前記第１のユニットは、前記第２のユニットから前記エラー通知を受けると前記パラレルバスを介して前記第１のエラーデータ格納部が格納する第１の送信データを読み出して、該読み出した第１の送信データと前記読み出した第１の送信データに対応する前記第１の送信データ記憶部内の第１の送信データとを対応付けて記憶することを特徴とするプログラマブルロジックコントローラ。
【請求項２】
前記第２のユニットは、
前記第１のユニットに送信する第２の送信データを記憶する第２の送信データ記憶部と、
前記第２の送信データ毎のＣＲＣコードを送信側ＣＲＣコードとして生成する第２の送信側ＣＲＣコード生成部と、
をさらに備え、
前記第１のユニットは、
前記第２のユニットから受信した第２の送信データのＣＲＣコードを受信側ＣＲＣコードとして生成する第２の受信側ＣＲＣコード生成部と、
前記受信側ＣＲＣコードと前記送信側ＣＲＣコードを比較して前記第２のユニットと第１のユニットとの間のシリアルバス上のエラーを検出する第２のＣＲＣ比較部と、
前記第２のＣＲＣ比較部によってシリアルバス上のエラーが検出された送信側ＣＲＣコードに対応する第２の送信データを格納する第２のエラーデータ格納部と、
前記第２のＣＲＣ比較部がシリアルバス上のエラーを検出した際に、前記第２のユニットにエラー通知を行う第２のエラー通知部と、
をさらに備え、
前記第２のユニットは前記第２の送信データおよび前記送信側ＣＲＣコードを前記シリアルバスを介して前記第１のユニットに送信するとともに、前記第１のユニットは前記エラー通知を前記パラレルバスを介して前記第２のユニットに送信し、
前記第２のユニットは、前記第１のユニットから前記エラー通知を受けると前記パラレルバスを介して前記第２のエラーデータ格納部が格納する第２の送信データを読み出して、該読み出した第２の送信データと前記読み出した第２の送信データに対応する前記第２の送信データ記憶部内の第２の送信データとを対応付けて記憶することを特徴とする請求項１に記載のプログラマブルロジックコントローラ。
【請求項３】
前記第１のユニットは、
前記第２のユニットに送信する第１の送信データを識別する識別番号を送信側識別番号として生成し当該第１の送信データに付加する第１の識別番号付加部と、
前記識別番号付加部が付加した送信側識別番号を前記第１の送信データと対応付けて記憶する第１の送信側識別番号記憶部と、
をさらに備え、
前記第２のユニットは、
前記第１のＣＲＣ比較部によってシリアルバス上のエラーが検出された送信側ＣＲＣコードに対応する第１の送信データを識別する識別番号をエラー識別番号として格納する第１のエラー識別番号記憶部をさらに備え、
前記第１のユニットは、前記第１のエラーデータ格納部が格納する第１の送信データとともに前記第１のエラー識別番号記憶部が格納するエラー識別番号を読み出し、該読み出したエラー識別番号および前記第１の送信側識別番号記憶部が記憶する送信側識別番号に基づいて、前記読み出した第１の送信データと前記第１の送信データ記憶部が記憶する第１の送信データとを対応付けし記憶することを特徴とする請求項１に記載のプログラマブルロジックコントローラ。
【請求項４】
前記第２のユニットは、
前記第１のユニットに送信する第２の送信データを識別する識別番号を送信側識別番号として生成し当該第２の送信データに付加する第２の識別番号付加部と、
前記識別番号付加部が付加した送信側識別番号を前記第２の送信データと対応付けて記憶する第２の送信側識別番号記憶部と、
をさらに備え、
前記第１のユニットは、
前記第２のＣＲＣ比較部によってシリアルバス上のエラーが検出された送信側ＣＲＣコードに対応する第２の送信データを識別する識別番号をエラー識別番号として格納する第２のエラー識別番号記憶部をさらに備え、
前記第２のユニットは、前記第２のエラーデータ格納部が格納する第２の送信データとともに前記第２のエラー識別番号記憶部が格納するエラー識別番号を読み出し、該読み出したエラー識別番号および前記第２の送信側識別番号記憶部が記憶する送信側識別番号に基づいて、前記読み出した第２の送信データと前記第２の送信データ記憶部が記憶する第２の送信データとを対応付けし記憶することを特徴とする請求項２に記載のプログラマブルロジックコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルバスで発生したエラーを検出するプログラマブルロジックコントローラに関するものである。
【背景技術】
【０００２】
近年、ホスト側の装置と端末装置をシリアルバスなどで接続し、ホスト側の装置によって遠隔から端末装置を管理するシステムが普及している。このようなシステムにおいては、ホスト側の装置が端末装置の異常やシリアルバスの異常を検出することが望まれる。
【０００３】
従来の端末制御方式は、主通信パスに接続されるメイン回路と、メイン回路のメインデータバスに接続され当該端末装置の異常情報を表示する操作パネルと、メイン回路とは独立して動作する監視回路とを有し、監視回路は、メイン回路のメインデータバスに接続され操作パネルに表示される異常情報を取り込んで格納するための異常情報監視レジスタと、異常情報監視レジスタに格納された異常情報を補助通信バスによってホストに伝送するためのシリアルパラレル変換部と、異常情報監視レジスタ及びシリアルパラレル変換部を制御するプロセッサとを有して構成している。（例えば、特許文献１参照）
【０００４】
【特許文献１】特開平４−３４４９６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来の技術によれば、端末装置のメイン回路に異常が発生した場合に、ホスト側において端末装置の異常を検出することはできる。しかしながら、主通信バスそのものの異常を検出することはできるが、バス内で発生する伝送エラー検出やエラー解析のための仕組みがなく、バス内で発生するエラー解析に対応できないという問題があった。
【０００６】
また、ＣＰＵユニットとインテリジェント機能ユニット間をシリアルバスで接続する場合、シリアルバスで発生する伝送エラーを解析するためには、シリアルバスにデジタルオシロスコープやプロトコルアナライザーのプローブなどを物理的に接続し、伝送エラーの解析作業を行なう必要があった。しかしながら、シリアルバスの転送レートが数Ｇｂｐｓを越える場合、計測機のプローブなどを接続したことによる容量増加やインピーダンスの不整合によって波形に大きな影響を与える。このため、プローブなどを接続することによってエラーの検出がしにくくなったり、実機で発生しているエラーとは異なるエラーが発生する場合があり、伝送エラーの解析作業が困難で不確実になるという問題があった。
【０００７】
また、プローブなどを接続したことによる容量増加やインピーダンスの不整合によって波形に大きな影響を与えるため、実機において実際に発生しているビット化け（送信データと受信データの相違）の内容やエラーの発生頻度を正確に把握することが困難になるという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、実機で発生しているシリアルバス上の伝送エラーの内容を、簡易な構成で正確に検出して記録することが可能なプログラマブルロジックコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、シリアルバスおよびパラレルバスで接続された第１のユニットおよび第２のユニットを備え、前記第１のユニットと第２のユニットとの間のシリアルバス上のエラーを検出するプログラマブルロジックコントローラにおいて、前記第１のユニットは、前記第２のユニットに送信する第１の送信データを記憶しておく第１の送信データ記憶部と、前記第１の送信データ毎のＣＲＣコードを送信側ＣＲＣコードとして生成する第１の送信側ＣＲＣコード生成部と、を備え、前記第２のユニットは、前記第１のユニットから受信した第１の送信データのＣＲＣコードを受信側ＣＲＣコードとして生成する第１の受信側ＣＲＣコード生成部と、前記受信側ＣＲＣコードと前記送信側ＣＲＣコードを比較して前記第１のユニットと第２のユニットとの間のシリアルバス上のエラーを検出する第１のＣＲＣ比較部と、前記第１のＣＲＣ比較部によってシリアルバス上のエラーが検出された送信側ＣＲＣコードに対応する第１の送信データを格納する第１のエラーデータ格納部と、前記第１のＣＲＣ比較部がシリアルバス上のエラーを検出した際に、前記第１のユニットにエラー通知を行う第１のエラー通知部と、を備え、前記第１のユニットは前記第１の送信データおよび前記送信側ＣＲＣコードを前記シリアルバスを介して前記第２のユニットに送信するとともに、前記第２のユニットは前記エラー通知を前記パラレルバスを介して前記第１のユニットに送信し、前記第１のユニットは、前記第２のユニットから前記エラー通知を受けると前記パラレルバスを介して前記第１のエラーデータ格納部が格納する第１の送信データを読み出して、該読み出した第１の送信データと前記読み出した第１の送信データに対応する前記第１の送信データ記憶部内の第１の送信データとを対応付けて記憶することを特徴とする。
【発明の効果】
【００１０】
この発明によれば、実機で発生しているシリアルバス上の伝送エラーの内容を簡易な構成で正確に検出して記録することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるプログラマブルロジックコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、本実施の形態では、データの送信側をＣＰＵ（Central Processing Unit）ユニット、データの受信側をインテリジェント機能ユニットとして説明するが、データの送信側がインテリジェント機能ユニットで、データの受信側がＣＰＵユニットの場合であっても同様の処理を行なうことが可能である。
【００１２】
実施の形態
図１は、本発明にかかるプログラマブルロジックコントローラのＣＰＵユニットとインテリジェント機能ユニット間のシステム構成を示す図である。図１において、ＣＰＵユニット１とインテリジェント機能ユニット１００は、シリアルバス２００とパラレルバス３００を介して相互にデータ通信を行なう。
【００１３】
ＣＰＵユニット１は、マイクロプロセッサ（以下、ＭＰＵ１０という）、シリアルバス回路６０、パラレルバス回路８０、シリアルバス用のコネクタ５０、パラレルバス用のコネクタ８１、エラーフレーム格納メモリ９０、デュアルポートメモリ８２を備えている。
【００１４】
コネクタ５０は、インテリジェント機能ユニット１００とシリアルバス２００によって接続し、インテリジェント機能ユニット１００とデータの通信を行う。コネクタ８１は、インテリジェント機能ユニット１００とパラレルバス３００によって接続し、インテリジェント機能ユニット１００とデータの通信を行う。コネクタ８１へは、インテリジェント機能ユニット１００から出力されたＣＲＣコードエラー割り込みなどが入力される。
【００１５】
パラレルバス回路８０は、シリアルバス２００においてエラーが発生した場合に、インテリジェント機能ユニット１００に対しエラー割り込み（ＣＲＣコードエラー割り込み）を発生させる。
【００１６】
デュアルポートメモリ８２は、ＭＰＵ１０とパラレルバス３００の両方から読み出しと書き込みが可能なメモリである。デュアルポートメモリ８２は、エラー発生時の基本フレームと、エラー発生直前のフレーム番号を格納する。
【００１７】
エラーフレーム格納メモリ９０は、ＭＰＵ１０から読み出しと書き込みが可能なメモリである。エラーフレーム格納メモリ９０は、エラー発生時の基本フレーム（ＣＰＵユニット１が送信した基本フレームとインテリジェント機能ユニット１００が受信した基本フレーム）と、エラー発生直前のフレーム番号を格納する。
【００１８】
シリアルバス回路６０は、実行ユニット２０、送信バッファ３０、パラレルシリアル変換回路３１，４１、符号化回路３２、差動送信バッファ（差動ドライバ）３３、ＣＲＣコード生成回路３５，４５、受信バッファ４０、復号化回路４２、差動受信バッファ（差動受信レシーバ）４３を備えている。
【００１９】
実行ユニット２０は、ＣＲＣ（Cyclic Redundancy Check character）コードによってエラー検出を行なうユニットであり、受信バッファ４０に格納されたコマンドをデコードするデコード回路２１、ＣＲＣコード生成回路４５が生成したＣＲＣコードと受信バッファ４０に格納されたＣＲＣコードを比較するＣＲＣ比較回路２２、ＣＲＣコードの比較対象となっているフレームを格納するフレームレジスタ２３、及び、ＣＲＣコード比較によって正常な受信が確認されたフレーム番号を格納するフレーム番号レジスタ２４を備えている。
【００２０】
送信バッファ３０へは、インテリジェント機能ユニット１００への基本フレームが実行ユニット２０によって書き込まれる。送信バッファ３０は、シリアルバス２００に送信するデータを蓄積する。送信バッファ３０は、ＦＩＦＯ（Fast In Fast Out）機能を有しており、実行ユニット２０によって書き込まれた基本フレーム２０１を、書込みが古い順にパラレルデータとして出力する。
【００２１】
パラレルシリアル変換回路３１は、送信バッファ３０から出力されるパラレルデータをシリアルデータに変換する。ＣＲＣコード生成回路３５は、パラレルシリアル変換回路３１がパラレルデータをシリアルデータに変換する際に、送信側のＣＲＣコード（送信側ＣＲＣコード）を生成し基本フレームに付加する。
【００２２】
符号化回路３２は、ＣＲＣコード生成回路３５によってＣＲＣコードが付加されたシリアルデータを符号化（エンコーディング）する。差動送信バッファ３３は、符号化回路３２によって符号化されたデータを差動式の電気信号に変換する。
【００２３】
差動受信バッファ４３は、差動式の電気信号をシングルエンドのデータに戻す。復号化回路４２は、符号化されたシリアルデータを復号化する。パラレルシリアル変換回路４１は、復号化回路４２から出力されるシリアルデータをパラレルデータに変換する。ＣＲＣコード生成回路４５は、パラレルシリアル変換回路４１がシリアルデータをパラレルデータに変換する際に、受信側のＣＲＣコード（受信側ＣＲＣコード）を生成し基本フレームに付加する。
【００２４】
受信バッファ４０は、インテリジェント機能ユニット１００から受信したフレーム（後述するＣＲＣ付き基本フレーム２０２）と、ＣＲＣコード生成回路４５で生成する受信側ＣＲＣコードを格納する。受信バッファ４０は、ＦＩＦＯ機能を有しており、格納したデータを書込まれた順番が古い順に出力する。リトライバッファ３６は、シリアルバス２００に再送信するためのデータを蓄積する。
【００２５】
ＭＰＵ１０は、ＣＰＵユニット１を制御する。ＭＰＵ１０は、シリアルバスとパラレルバスの両方にアクセス可能であり、フレームレジスタ２３、フレーム番号レジスタ２４、送信バッファ３０、リトライバッファ３６、受信バッファ４０に対し読み出しと書き込みを行なう。ローカルバス１５は、ＭＰＵ１０、シリアルバス回路６０、パラレルバス回路８０、エラーフレーム格納メモリ９０を接続する。
【００２６】
インテリジェント機能ユニット１００は、ＣＰＵユニット１と同様の機能を有している。すなわち、インテリジェント機能ユニット１００のＭＰＵ１００がＭＰＵ１０に対応し、コネクタ１５０がコネクタ５０に対応し、コネクタ１８１がコネクタ８１に対応し、パラレルバス回路１８０がパラレルバス回路８０に対応し、デュアルポートメモリ１８２がデュアルポートメモリ８２に対応し、シリアルバス回路１６０がシリアルバス回路６０に対応し、エラーフレーム格納メモリ１９０がエラーフレーム格納メモリ９０に対応する。
【００２７】
また、実行ユニット１２０が実行ユニット２０に対応し、送信バッファ１３０が送信バッファ３０に対応し、パラレルシリアル変換回路１３１，１４１がパラレルシリアル変換回路３１，４１に対応し、符号化回路１３２が符号化回路３２に対応し、差動送信バッファ１３３が差動送信バッファ３３に対応し、ＣＲＣコード生成回路１３５，１４５がＣＲＣコード生成回路３５，４５に対応し、受信バッファ１４０が受信バッファ４０に対応し、復号化回路４２が復号化回路４２に対応し、差動受信バッファ１４３が差動受信バッファ４３に対応する。
【００２８】
また、デコード回路１２１がデコード回路２１に対応し、ＣＲＣ比較回路１２２がＣＲＣ比較回路２２に対応し、フレームレジスタ１２３がフレームレジスタ２３に対応し、フレーム番号レジスタ１２４がフレーム番号レジスタ２４に対応する。なお、ＣＰＵユニット１とインテリジェント機能ユニット１００は、シリアルバス２００とパラレルバス３００の何れを使用してもデータ通信が可能な構成となっている。
【００２９】
なお、ここでのＣＰＵユニット１、インテリジェント機能ユニット１００が、特許請求の範囲に記載の第１のユニットまたは第２のユニットのいずれか一方に対応する。すなわち、ＣＰＵユニット１が第１のユニットに対応する場合はインテリジェント機能ユニット１００が第２のユニットに対応し、ＣＰＵユニット１が第２のユニットに対応する場合はインテリジェント機能ユニット１００が第１のユニットに対応する。
【００３０】
ＣＰＵユニット１が第１のユニットに対応しインテリジェント機能ユニット１００が第２のユニットに対応する場合、リトライバッファ３６，１３６がそれぞれ第１の送信データ記憶部，第２の送信データ記憶部に対応し、ＣＲＣコード生成回路３５，１３５がそれぞれ第１の送信側ＣＲＣコード生成部、第２の送信側ＣＲＣコード生成部に対応する。そして、ＣＲＣコード生成回路１４５，４５がそれぞれ第１の受信側ＣＲＣコード生成部、第２の受信側ＣＲＣコード生成部に対応し、ＣＲＣ比較回路１２２，２２がそれぞれ第１のＣＲＣ比較部，第２のＣＲＣ比較部に対応し、デュアルポートメモリ１８２，８２がそれぞれ第１のエラーデータ格納部および第１のエラー識別番号記憶部、第２のエラーデータ格納部および第２のエラー識別番号記憶部に対応し、パラレルバス回路１８０，８０がそれぞれ第１のエラー通知部、第２のエラー通知部に対応する。さらに、フレームレジスタ番号レジスタ２４，１２４が第１の識別番号付加部および第１の送信側識別番号記憶部、第２の識別番号付加部および第２の送信側識別番号記憶部に対応する。
【００３１】
一方、ＣＰＵユニット１が第２のユニットに対応しインテリジェント機能ユニット１００が第１のユニットに対応する場合、リトライバッファ３６，１３６がそれぞれ第２の送信データ記憶部，第１の送信データ記憶部に対応し、ＣＲＣコード生成回路３５，１３５がそれぞれ第２の送信側ＣＲＣコード生成部、第１の送信側ＣＲＣコード生成部に対応する。そして、ＣＲＣコード生成回路１４５，４５がそれぞれ第２の受信側ＣＲＣコード生成部、第１の受信側ＣＲＣコード生成部に対応し、ＣＲＣ比較回路１２２，２２がそれぞれ第２のＣＲＣ比較部，第１のＣＲＣ比較部に対応し、デュアルポートメモリ１８２，８２がそれぞれ第２のエラーデータ格納部および第２のエラー識別番号記憶部、第１のエラーデータ格納部および第１のエラー識別番号記憶部に対応し、パラレルバス回路１８０，８０がそれぞれ第２のエラー通知部、第１のエラー通知部に対応する。さらに、フレームレジスタ番号レジスタ２４，１２４が第２の識別番号付加部および第２の送信側識別番号記憶部、第１の識別番号付加部および第１の送信側識別番号記憶部に対応する。
【００３２】
ここで、ＣＰＵユニット１とインテリジェント機能ユニット１００の接続について説明する。図１においては、ＣＰＵユニット１とインテリジェント機能ユニット１００をシリアルバス２００、パラレルバス３００によって接続する場合について説明したが、ＣＰＵユニット１とインテリジェント機能ユニット１００の接続はこの接続に限られるものではない。
【００３３】
図２は、ベース上にシリアルバスとパラレルバスを敷設した場合のシステム構成を示す図であり、図３は、ベース上にパラレルバスを敷設し、ＣＰＵユニットとインテリジェント機能ユニットをケーブルで接続した場合のシステム構成を示す図である。
【００３４】
図２および図３に示すように、ベース５０１，５０２は、電源ユニット５１０、ＣＰＵユニット１、インテリジェント機能ユニット１００、ＩＯユニット５２０を含んで構成されている。また、ベース５０１はパラレルバス３００とシリアルバス２００を備え、ベース５０２はパラレルバス３００とケーブル２０１（シリアルバス）を備えている。
【００３５】
図２に示すように、ＣＰＵユニット１とインテリジェント機能ユニット１００をベース５０１上のパラレルバス３００とシリアルバス２００を介して接続してもよいし、図３に示すように、ＣＰＵユニット１とインテリジェント機能ユニット１００をベース５０２上のパラレルバス３００とケーブル（シリアルバス）２０１を介して接続してもよい。
【００３６】
なお、プログラマブルロジックコントローラが１つのＣＰＵユニット１と１つのインテリジェント機能ユニット１００を備える場合に限られず、図２，３に示すようにプログラマブルロジックコントローラが複数のＣＰＵユニット１を備える構成としてもよい。
【００３７】
次に、ＣＰＵユニット１とインテリジェント機能ユニット１００の動作処理手順について説明する。まず、通常動作時（エラー不発生時）の動作について説明する。ＣＰＵユニット１内のＭＰＵ１０は、シリアルバス２００に接続されたインテリジェント機能ユニット１００の内部のリソースにアクセスし、インテリジェント機能ユニット１００が備えるメモリマップ上のシリアルバス領域のエリアを読み書きする。
【００３８】
図４は、メモリマップの構成の一例を示す図である。同図に示すように、メモリマップ４００において、所定の領域にシリアルバス領域４０１が配置されている。ＭＰＵ１０は、このシリアルバス領域４０１内のデータを読み書き（リード／ライト）する。例えば、ＭＰＵ１０がシリアルバス領域４０１をリードする場合の動作について説明する。
【００３９】
実行ユニット２０は、ＭＰＵ１０がローカルバス１５にストローブしたコマンド（リードコマンド）、アドレスの情報（インテリジェント機能ユニット１００内のメモリなどのアドレス）に、実行ユニット２０で生成したフレーム番号を付加し、所定のデータとともに送信バッファ３０とリトライバッファ３６に書き込みを行う。ここでの実行ユニット２０は、フレーム番号レジスタ２４に基づいてフレーム番号を生成する。すなわち、実行ユニット２０が生成するフレーム番号は、その前（直前）にフレーム番号レジスタ２４が生成したフレーム番号に１を加えた番号をフレーム番号として生成し書き込みを行なう。このフレーム番号、コマンド、アドレス、データからなるデータが基本フレーム（後述する基本フレーム２０１）となる。
【００４０】
送信バッファ３０は、実行ユニット２０によって書き込まれた基本フレーム２０１を、書込みが古い順にパラレルデータとして出力する。送信バッファ３０から出力されたパラレルデータは、パラレルシリアル変換回路３１によってシリアルデータに変換される。その際、ＣＲＣコード生成回路１３５が基本フレーム２０１から送信側ＣＲＣコードを生成し、基本フレーム２０１の例えば一番後ろに付加する。この、基本フレーム２０１に送信側ＣＲＣコードを付加したフレームがＣＲＣ付き基本フレーム２０２となる。
【００４１】
ここで、基本フレーム２０１、ＣＲＣ付き基本フレーム２０２のデータ構成を説明する。図５は、基本フレームおよびＣＲＣ付き基本フレーム２０２の構成を示す図である。基本フレーム２０１は、フレーム番号レジスタ２４に基づいて生成されたフレーム番号、ＭＰＵ１０がローカルバス１５にストローブしたコマンド、インテリジェント機能ユニット１００内のアドレス、インテリジェント機能ユニット１００に送るデータを含んで構成されている。また、ＣＲＣ付き基本フレーム２０２は、基本フレーム２０１と送信側ＣＲＣコードを含んで構成されている。
【００４２】
ＣＲＣ付き基本フレーム２０２は、「１」や「０」が決められた所定の回数以上に連続しないよう、符号化回路３２によってエンコーディングされ、差動送信バッファ３３から出力される。差動送信バッファ３３から出力されたＣＲＣ付き基本フレーム２０２は、コネクタ５０、シリアルバス２００を介してインテリジェント機能ユニット１００に送られる。
【００４３】
ＣＰＵユニット１からのＣＲＣ付き基本フレーム２０２は、インテリジェント機能ユニット１００のコネクタ１５０を介して差動受信バッファ１４３に入力される。このＣＲＣ付き基本フレーム２０２は、復号化回路１４２とシリアルパラレル変換回路１４１によってパラレルデータに戻される。その際に、ＣＲＣコード生成回路１４５が改めて基本フレーム２０１からＣＲＣコード（受信側ＣＲＣコード）を生成する。
【００４４】
受信バッファ１４０には、ＣＲＣ付き基本フレーム２０２と受信側ＣＲＣコードが格納される。受信バッファ１４０はＦＩＦＯメモリになっているので、格納したデータ（ＣＲＣ付き基本フレーム２０２と受信側ＣＲＣコード）を古い順にパラレルデータとして出力する。
【００４５】
受信バッファ１４０から出力されたＣＲＣ付き基本フレーム２０２内の送信側ＣＲＣコードと、ＣＲＣコード生成回路１４５が生成した受信側ＣＲＣコードは、実行ユニット１２０のＣＲＣ比較回路１２２で比較される。
【００４６】
ＣＲＣ比較回路１２２において、送信側ＣＲＣコードと受信側ＣＲＣコードが同一である（相違なし）と判断されると、ＣＰＵユニット１からのデータを正常に受信できたものと判断し、基本フレーム２０１内のフレーム番号をフレーム番号レジスタ１２４に書き込む。
【００４７】
さらに、ＣＲＣ付き基本フレーム２０２がデコード回路１２１でデコードされ、ＣＲＣ付き基本フレーム２０２内のコマンドに従った処理が実行される。例えば、コマンドがメモリリードコマンドであれば、ＣＲＣ付き基本フレーム２０２内のアドレス（シリアルバス領域４０１のアドレス）のメモリ（図示せず）をリードし、読み出したデータを送信バッファ１３０に書き込む。送信バッファ１３０に書き込む際のフレーム番号は、ＣＰＵユニット１から要求のあったフレーム（基本フレーム２０１内のフレーム番号）と同じフレーム番号を使用する。
【００４８】
実行ユニット１２０は、メモリから読み出したデータ、ＣＰＵユニット１内のアドレスなどに、フレーム番号を付加し、送信バッファ１３０に書き込み（インテリジェント機能ユニット１００側の基本フレーム２０１の書込み）を行う。
【００４９】
送信バッファ１３０は、インテリジェント機能ユニット１００側の基本フレーム２０１を書込みが古い順にパラレルデータとして出力する。送信バッファ１３０から出力されたパラレルデータは、パラレルシリアル変換回路１３１によってシリアルデータに変換される。その際、ＣＲＣコード生成回路１３５がインテリジェント機能ユニット１００側の基本フレーム２０１から送信側ＣＲＣコードを生成し、インテリジェント機能ユニット１００側の基本フレーム２０１の例えば一番後ろに付加する。送信側ＣＲＣコードが付加されたインテリジェント機能ユニット１００側の基本フレーム２０１が応答用のＣＲＣ付き基本フレーム２０２となる。
【００５０】
応答用のＣＲＣ付き基本フレーム２０２は、符号化回路１３２によってエンコーディングされ、差動送信バッファ１３３から出力される。差動送信バッファ１３３から出力された応答用のＣＲＣ付き基本フレーム２０２は、ＣＰＵユニット１の差動受信バッファ４３に入力される。この応答用のＣＲＣ付き基本フレーム２０２は、要求用のＣＲＣ付き基本フレーム（ＣＰＵユニット１からインテリジェント機能ユニット１００へのＣＲＣ付き基本フレーム２０２）と同様に、復号化回路４２とシリアルパラレル変換回路４１によってパラレルデータに戻される。その際に、ＣＲＣコード生成回路４５が改めてインテリジェント機能ユニット１００側の基本フレーム２０１からＣＲＣコード（受信側ＣＲＣコード）を生成する。
【００５１】
受信バッファ４０には、インテリジェント機能ユニット１００側のＣＲＣ付き基本フレーム２０２と受信側ＣＲＣコードが格納される。受信バッファ４０はＦＩＦＯメモリになっているので、格納したデータ（インテリジェント機能ユニット１００側のＣＲＣ付き基本フレーム２０２と受信側ＣＲＣコード）を古い順にパラレルデータとして出力する。
【００５２】
実行ユニット２０は、受信バッファ４０から出力される応答用のＣＲＣ付き基本フレーム２０２内の送信側ＣＲＣコードと、受信側ＣＲＣコードを比較回路２２で比較する。ＣＲＣ比較回路２２において、送信側ＣＲＣコードと受信側ＣＲＣコードが同一であると判断されると、インテリジェント機能ユニット１００からのデータを正常に受信できたものと判断する。実行ユニット２０は、リトライバッファ３６に格納されている同一フレーム番号（正常に受信できたフレーム番号と同一のフレーム番号）の基本フレームデータを削除（無効化）するとともに、応答用のＣＲＣ付き基本フレーム２０２内のデータをＭＰＵ１０に通知する。そして、ＭＰＵ１０が応答用のＣＲＣ付き基本フレーム２０２内のデータに基づいた処理を行なう。
【００５３】
次に、エラー発生時の動作について説明する。なお、通常動作時と同様の処理を行なう動作については説明を省略する。ここでは、インテリジェント機能ユニット１００がエラーを検出した場合について説明するが、ＣＰＵユニット１がエラーを検出した場合も同様の動作を行なう。
【００５４】
ＣＰＵユニット１の差動送信バッファ３３から出力されたＣＲＣ付き基本フレーム内の送信側ＣＲＣコードと受信側ＣＲＣコードは、通常動作時と同様に、インテリジェント機能ユニット１００の実行ユニット１２０のＣＲＣ比較回路１２２で比較される。
【００５５】
ＣＲＣ比較回路１２２において、送信側ＣＲＣコードと受信側ＣＲＣコードが同一でない（相違あり）と判断されると、ＣＰＵユニット１からのデータを正常に受信できなかったもの（エラー）と判断し、実行ユニット１２０はＭＰＵ１１０に対してＣＲＣコードエラー割り込みによってエラーを通知する。
【００５６】
エラーの検出されたフレーム（ＣＲＣ付き基本フレーム２０２）は、フレームレジスタ１２３に格納される。また、フレーム番号レジスタ１２４には、エラー検出前の正常に受信したフレームのフレーム番号（以下、直前正常フレーム番号という）が格納されている。
【００５７】
インテリジェント機能ユニット１００のＭＰＵ１１０は、実行ユニット１２０からの割り込みによってＣＲＣコードエラーの通知を受けると、フレームレジスタ１２３に格納されているエラー発生時の基本フレーム２０１と、フレーム番号レジスタ１２４に格納されている直前正常フレーム番号を、デュアルポートメモリ１８２に格納させる。
【００５８】
更に、デュアルポートメモリ１８２へ基本フレーム２０１、直前正常フレーム番号を格納した後に、パラレルバス回路１８０を使用して、ＣＰＵユニット１に対しＣＲＣコードエラー割り込みを発生させる。このＣＲＣコードエラー割り込みは、コネクタ１８１を介して出力される。出力されたＣＲＣコードエラー割り込みは、パラレルバス３００を介してＣＰＵユニット１に送られコネクタ８１から入力される。
【００５９】
インテリジェント機能ユニット１００からＣＲＣコードエラー割り込みの通知を受けたＣＰＵユニット１のＭＰＵ１０は、パラレルバス回路８０を使用して、エラー発生時の基本フレーム２０１と直前正常フレーム番号を、デュアルポートメモリ１８２から読み出し、エラーフレーム格納メモリ９０に書き込む。
【００６０】
また、リトライバッファ３６から、エラー発生時の一つ前に受け付けたフレーム番号（直前正常フレーム）に１を足したフレーム番号（エラー発生時のフレーム番号）に対応する基本フレーム２０１（インテリジェント機能ユニット１００においてエラーと判断された基本フレーム２０１）を読み出し、エラーフレーム格納メモリ９０に格納する。これにより、元々送信した基本フレーム２０１（ＣＰＵユニット１が送信した基本フレーム２０１）とＣＲＣエラーとなった基本フレーム２０１（インテリジェント機能ユニット１００が受信した基本フレーム２０１）がそれぞれ対応付けされてエラーフレーム格納メモリ９０に格納される。
【００６１】
このような、送信した基本フレーム２０１とＣＲＣエラーとなった基本フレーム２０１をそれぞれエラーフレーム格納メモリ９０に格納する処理を繰り返し実施することによって、エラーフレーム格納メモリ９０には、ＣＲＣエラーが発生した基本フレーム２０１が複数格納される。
【００６２】
図６は、エラーフレーム格納メモリの構成を示す図である。図６に示すように、エラーフレーム格納メモリ９０には、送信時基本フレームと受信時基本フレームが対応付けられて格納されている。ここでの送信時基本フレームがＣＰＵユニット１から送信した基本フレーム２０１を示し、受信時基本フレームがインテリジェント機能ユニット１００がＣＰＵユニット１から受信した基本フレーム２０１に対応する。
【００６３】
このエラーフレーム格納メモリ９０内のデータ（送信時基本フレーム、受信時基本フレーム）を解析することによって、ＣＲＣコードだけでは判別できない情報（どのビットがどのようにビット化けしているかに関する情報など）を正確に取得することが可能となる。
【００６４】
また、エラー発生時のフレーム番号を調査することによって、どの程度の頻度でエラーが発生しているかを正確に知ることが可能となる。これにより、実機（ＣＰＵユニット１、インテリジェント機能ユニット１００）において、どういったシリアルデータのビット列を送信した場合に、何れのビットがビット化けをするかなどのビットエラーが発生する傾向を把握することが可能となる。
【００６５】
また、シリアルバス２００による伝送レートを上げることによって、伝送レートとエラーレートの関係が分かるため、伝送レートの限界を把握することが可能となる。同様に、シリアルバス２００の伝送距離を長くすることによって、伝送距離とエラーレートの関係が分かるため、伝送距離の限界を把握することが可能となる。
【００６６】
なお、本実施の形態においては、インテリジェント機能ユニット１００のＭＰＵ１１０が、実行ユニット１２０からの割り込みによってＣＲＣコードエラーの通知を受けた際に、フレーム番号レジスタ１２４に格納されている直前正常フレーム番号をデュアルポートメモリ１８２に格納させることとしたが、エラーの発生したＣＲＣ付き基本フレーム２０２を識別することが可能な情報であればデュアルポートメモリ１８２に格納させる情報は直前正常フレーム番号に限られない。
【００６７】
また、本実施の形態においては、ＣＰＵユニット１とインテリジェント機能ユニット１００が同様の構成を有する場合について説明したが、一方のユニットがシリアルバス２００を介してＣＲＣ付き基本フレーム２０２を送信し、他方のユニットがＣＲＣ付き基本フレーム２０２のエラーを検出し、前記一方のユニットがエラーの検出された基本フレーム２０１を記憶しておく構成としてもよい。
【００６８】
このように実施の形態によれば、実機におけるエラーレートを正確かつ定量的に把握できるため、基板（ベース５０１，５０２）のパターン配線の調整、ケーブルやコネクタなどの通信経路を含めた回路の調整を、容易かつ的確に実施することが可能となる。
【００６９】
また、シリアルバス２００の伝送レートや伝送距離などの通信の安定度の評価を、短時間で実現することができるため、シリアルバス２００の開発が容易になり、ＣＰＵユニット１、インテリジェント機能ユニット１００を含んで構成されるプログラマブルロジックコントローラの早期市場投入が可能になる。また、市場で発生したエラー発生頻度が分かるため、市場（実使用）でのシリアルバス２００のノイズの影響など、ユーザ使用環境がシステムに与える影響度を把握することができ、市場での生産設備の早期立ち上げやトラブル時の早期復旧が可能となる。
【産業上の利用可能性】
【００７０】
以上のように、本発明にかかるプログラマブルロジックコントローラは、シリアルバス上の伝送エラーの検出や記録に適している。
【図面の簡単な説明】
【００７１】
【図１】本発明にかかるプログラマブルロジックコントローラのＣＰＵユニットとインテリジェント機能ユニット間のシステム構成を示す図である。
【図２】ベース上にシリアルバスとパラレルバスを敷設した場合のシステム構成を示す図である。
【図３】ベース上にパラレルバスを敷設しＣＰＵユニットとインテリジェント機能ユニットをケーブルで接続した場合のシステム構成を示す図である。
【図４】メモリマップの構成の一例を示す図である。
【図５】基本フレームおよびＣＲＣ付き基本フレームの構成を示す図である。
【図６】エラーフレーム格納メモリの構成を示す図である。
【符号の説明】
【００７２】
１  ＣＰＵユニット
１０，１１０  ＭＰＵ
１５，１１５  ローカルバス
２０，１２０  実行ユニット
２１，１２１  デコード回路
２２，１２２  比較回路
２３，１２３  フレームレジスタ
２４，１２４  フレーム番号レジスタ
３０，１３０  送信バッファ
３１，４１，１３１，１４１  パラレルシリアル変換回路
３２，１３２  符号化回路
３３，１３３  差動送信バッファ
３５，４５，１３５，１４５  ＣＲＣコード生成回路
３６，１３６  リトライバッファ
４０，１４０  受信バッファ
４２，１４２  復号化回路
４３，１４３  差動受信バッファ
５０，８１，１５０，１８１  コネクタ
６０，１６０  シリアルバス回路
８０，１８０  パラレルバス回路
８２，１８２  デュアルポートメモリ
９０，１９０  エラーフレーム格納メモリ
１００  インテリジェント機能ユニット
２０１  基本フレーム
２０２  ＣＲＣ付き基本フレーム
４００  メモリマップ
４０１  シリアルバス領域
５０１，５０２  ベース
５１０  電源ユニット
５２０  Ｉ／Ｏユニット
【図１】
2006301784.tif 000003
【図２】
2006301784.tif 000004
【図３】
2006301784.tif 000005
【図４】
2006301784.tif 000006
【図５】
2006301784.tif 000007
【図６】
2006301784.tif 000008