(57)【要約】【課題】  専用のプロトコルを用いることなく、異なるネットワークに接続された装置同士でデータの送受を行なえるプログラマブルコントローラを提供すること【解決手段】  ＣＰＵユニットは、ＴＣＰ／ＩＰアプリ群２１と、トランスポート層プロトコルスタック２２と、ルーティング機能を有するＩＰプロトコルスタック２３と、を備え、ＩＰプロトコルスタック２３に、内部バス用のドライバ２６を接続する。通信ユニットは、ＴＣＰ／ＩＰアプリ群３１と、トランスポート層プロトコルスタック３２と、ルーティング機能を備えていないＩＰプロトコルスタック３３と、イーサネットドライバ３４と、イーサネットインタフェース３５と、を備え、イーサネットドライバ３４に、内部バス用のドライバ３６を接続する。イーサネットドライバ３４は、イーサネットインタフェース３５から転送されてきたデータを、ドライバ３６及びまたはＩＰプロトコルスタック３３に転送する振り分け機能を備えた。【選択図】        図２
2008084343.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニットと複数の通信ユニットとを内部バスで接続したプログラマブルコントローラであって、
前記ＣＰＵユニットは、
上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、ルーティング機能を有するインターネット層と、内部バス用のドライバとを備えるとともに、前記インターネット層に第１の内部バス用のドライバを接続するように構成し、第１の内部バス用ドライバから転送されてきたデータを、前記インターネット層にてルーティング処理し、ルーティング処理結果に基づきデータを前記トランスポート層及びまたは送信先の通信ユニット宛てに第１の内部バス用ドライバへ転送するものであり、
前記複数の通信ユニットのそれぞれは、
上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、インターネット層と、イーサネット（登録商標（以下、同様））ドライバと、イーサネットインタフェースと、を備えるとともに、前記イーサネットドライバに第２の内部バス用ドライバを接続するように構成し、
前記イーサネットドライバは、第２の内部バス用ドライバから転送されてきたデータを前記イーサネットインタフェースに転送する機能と、前記イーサネットインタフェースから転送されてきたデータを、そのデータのプロトコルヘッダ部を解析し、その解析内容によって第２の内部バス用ドライバ及びまたは前記インターネット層に転送する振り分け機能とを備えたものである
ことを特徴とするプログラマブルコントローラ。
【請求項２】
前記通信ユニットに、自ユニットのアプリケーション層が利用可能なポート番号の範囲を設定しておき、
通信ユニットにおける振り分け機能は、受け取ったデータの宛先ポート番号と上記範囲から転送先を決定するものであることを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
内部バスを有し、ＣＰＵユニットが内部バスに接続されたプログラマブルコントローラに対して、連結するとともにその内部バスに接続する通信ユニットであって、
上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、インターネット層と、イーサネットドライバと、イーサネットインタフェースと、を備えるとともに、前記イーサネットドライバに、内部バス用のドライバを接続するように構成し、
前記イーサネットドライバは、前記内部バス用のドライバから転送されてきたデータは前記イーサネットインタフェースに転送する機能と、前記イーサネットインタフェースから転送されてきたデータは、そのデータのプロトコルヘッダ部を解析し、その内容によって前記内部バス用のドライバ及びまたは前記インターネット層に転送する振り分け機能とを備えた
ことを特徴とする通信ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラおよび通信ユニットに関するものである。
【背景技術】
【０００２】
ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）におけるネットワークシステムは、生産設備の制御を司る１または複数のプログラマブルコントローラ（ＰＬＣ）と、そのＰＬＣにより動作が制御される機器とが、制御系のネットワークに接続される。それらＰＬＣと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、入力データ（ＩＮデータ）および出力データ（ＯＵＴデータ）の送受を行ない、生産設備を制御する。より具体的には、ＰＬＣは、複数のユニットが内部バス構造で接続されて、一体連結されてなる。ユニットの種類には、例えば、各ユニットに電源供給する電源ユニット、制御を司るＣＰＵユニット、センサ等の入力機器が接続されてそこから入力データを得る入力ユニット、動作対象の出力機器が接続されてそこへ出力データを出力する出力ユニット、ネットワークを経由して外部装置と各種データを送受信する通信ユニット、リモートターミナル装置との間で配線を経由してＩＮデータとＯＵＴデータを送受信するマスタユニットなどがある。ＣＰＵユニットは、内部バスを経由して他のユニットとの間でデータ通信することで、制御に必要なデータを取込み、出力している。ＣＰＵユニットの具体的な動作を説明すると、まず、オン・オフ動作をするセンサやスイッチなどの単数または複数の入力機器からＯＮ／ＯＦＦの入力データを制御系のネットワークを介して取り込み（ＩＮリフレッシュ処理）、その入力データに基づいて論理演算し（演算実行処理）、その演算結果の出力データを制御系のネットワークを介してモータやアクチュエータなどの出力機器に出力する（出力リフレッシュ処理）。このＩＮリフレッシュ処理、演算実行処理、ＯＵＴリフレッシュ処理をサイクリックに実行する。そしてＰＬＣが、ＣＰＵユニットの演算結果であるところの出力データをＯＵＴリフレッシュにより出力ユニットへ伝え、その出力データが出力ユニットから機器へ出力されることにより、生産設備の機器を制御する。
【０００３】
係る生産設備の制御を行なう制御系のシステムの上位に、主として生産指示や生産結果のような生産管理情報を扱う情報系のシステムを接続し、その情報系のシステムに連携される管理コンピュータが、制御系のネットワークに接続されたＰＬＣその他の機器と通信を行ない、ＰＬＣ等に対する設定をしたり、ＰＬＣ等から送られてくる情報を取得したりする。制御系のシステムと情報系のシステムとの接続は、制御系に接続されたＰＬＣを情報系システムのネットワークに接続したり、制御系のシステムのネットワークと、情報系のシステムのネットワークとの間にデータ送信の中継をする装置（ＰＬＣ等）を設置したりすることで実現する。
【０００４】
従って、管理コンピュータが、制御系システムのネットワークのみに接続されたＰＬＣや、その他の機器とデータの送受を行なう場合、たとえば特許文献１に示すように係る処理を実行可能とする専用のプロトコルのコマンドを用いる。
【特許文献１】特開平６−２３１１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１等に開示された専用のプロトコルのコマンドを用いることで、管理コンピュータは、管理コンピュータが接続されているネットワークと異なるネットワークに接続されたＰＬＣ等とデータの送受を行なうことができる。しかしながら、係る処理を行なうためには、上記の専用のプロトコルに対応したＰＬＣ等を用いてネットワークシステムを構築する必要がある。通常、係る専用のプロトコルは、ＰＬＣ等の製造メーカが独自に開発する。その結果、製造メーカが異なったＰＬＣ等が混在するネットワークシステムでは、上記の専用のプロトコルをすべての機器に共通して使用することができない。
【０００６】
この発明の目的は、専用のプロトコルを用いることなく、互いに異なるネットワークに接続された装置（コンピュータ，ＰＬＣ等）同士であってもデータの送受を行なうことができるプログラマブルコントローラおよび通信ユニットを提供することにある。
【課題を解決するための手段】
【０００７】
この発明によるプログラマブルコントローラは、ＣＰＵユニットと通信ユニットとを内部バスで接続したプログラマブルコントローラであって、前記ＣＰＵユニットは、上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、ルーティング機能を有するインターネット層と、イーサネットドライバと、イーサネットインタフェースとを備えるとともに、前記インターネット層に第１の内部バス用のドライバを接続するように構成し、前記イーサネットドライバまたは第１の内部バス用ドライバから転送されてきたデータを、前記インターネット層にてルーティング処理し、ルーティング処理結果に基づきデータを前記トランスポート層及びまたは第１の内部バス用ドライバへ転送するものであり、前記通信ユニットは、上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、インターネット層と、イーサネットドライバと、イーサネットインタフェースと、を備えるとともに、前記イーサネットドライバに第２の内部バス用のドライバを接続するように構成し、前記イーサネットドライバは、第２の内部バス用のドライバから転送されてきたデータを前記イーサネットインタフェースに転送する機能と、前記イーサネットインタフェースから転送されてきたデータを、そのデータのプロトコルヘッダ部を解析し、その内容によって第２の内部バス用のドライバ及びまたは前記インターネット層に転送する振り分け機能とを備えた。
【０００８】
本発明では、ルーティング機能をＣＰＵユニットに設けた。これにより、通信ユニットにルーティング機能を備える必要がないので、ルーティングテーブル等が不要で簡易な構成とすることができる。そして、通信ユニットのイーサネットドライバに振り分け機能を設けたため、通信ユニットは、イーサネットインタフェースから受信したデータをＣＰＵユニット側に転送することができる。また、ＣＰＵユニットは、内部バスを介して転送されてきたデータおよびＣＰＵユニット自体のイーサネットインタフェースを介して受信したデータをインターネット層でルーティング処理し、ＣＰＵユニット宛なら上位のアプリケーション層側に転送し、必要な処理をすることができ、また、ＣＰＵユニット以外の宛先ならデータを内部バスを介して通信ユニットに転送することができる。通信ユニットは、内部バスを介して転送されて来たデータをネットワークに転送することもするので、ＣＰＵユニットはその通信ユニットに接続されたネットワークと同一のネットワークに接続されているＰＬＣその他の機器等との間でデータの送受を行なうことができる。つまり、係るＰＬＣその他の機器等は、直接接続されていないＣＰＵユニットのアプリケーション層のアプリケーションをイーサネットを経由して利用できる。しかも、係るデータの送受は、汎用のＴＣＰ／ＩＰプロトコルを用いて行なうことができる。
【０００９】
この発明によるプログラマブルコントローラは、ＣＰＵユニットと複数の通信ユニットとを内部バスで接続したプログラマブルコントローラであって、前記ＣＰＵユニットは、上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、ルーティング機能を有するインターネット層と、内部バス用のドライバとを備えるとともに、前記インターネット層に第１の内部バス用のドライバを接続するように構成し、第１の内部バス用ドライバから転送されてきたデータを、前記インターネット層にてルーティング処理し、ルーティング処理結果に基づきデータを前記トランスポート層及びまたは送信先の通信ユニット宛てに第１の内部バス用ドライバへ転送するものであり、前記複数の通信ユニットのそれぞれは、上位から順に、ＴＣＰ／ＩＰプロトコルに準拠した、アプリケーション層と、トランスポート層と、インターネット層と、イーサネットドライバと、イーサネットインタフェースと、を備えるとともに、前記イーサネットドライバに第２の内部バス用ドライバを接続するように構成し、前記イーサネットドライバは、第２の内部バス用ドライバから転送されてきたデータを前記イーサネットインタフェースに転送する機能と、前記イーサネットインタフェースから転送されてきたデータを、そのデータのプロトコルヘッダ部を解析し、その解析内容によって第２の内部バス用ドライバ及びまたは前記インターネット層に転送する振り分け機能とを備えた。
【００１０】
複数の通信ユニットの転送機能と、ＣＰＵユニットのルーティング機能により、複数の通信ユニット相互の間で、ＣＰＵユニットを経由してデータの転送が行える。これにより、一方の通信ユニットが接続されたネットワーク上の装置・機器等と、他方の通信ユニットが接続されたネットワーク上の装置・機器等とは、汎用のＴＣＰ／ＩＰプロトコルを用いてデータの送受を行なうことができる。通信ユニットの個数は、３個以上でも良い。また、前記通信ユニットに、自ユニットのアプリケーション層が利用可能なポート番号の範囲を設定しておき、通信ユニットにおける振り分け機能は、受け取ったデータの宛先ポート番号と上記範囲から転送先を決定するものとしてよもよい。つまり、受け取ったデータの宛先ポート番号と上記範囲とを比べ、自ユニットのポート番号なら自ユニットのアプリケーション層に振り分け、それ以外のポート番号なら内部バスドライバまたはイーサネットドライバへ転送し、内部バスまたはイーサネットへ転送配信する。
【００１１】
本発明に係る通信ユニットは、内部バスを有し、ＣＰＵユニットが内部バスに接続されたプログラマブルコントローラに対して、連結するとともにその内部バスに接続する通信ユニットであって、上位から順に、アプリケーション層と、トランスポート層と、インターネット層と、イーサネットドライバと、イーサネットインタフェースと、を備えるとともに、イーサネットドライバに、内部バス用のドライバを接続するように構成する。そして、イーサネットドライバは、内部バス用のドライバから転送されてきたデータはイーサネットインタフェースに転送する機能と、イーサネットインタフェースから転送されてきたデータは、そのデータのプロトコルヘッダ部を解析し、その内容によって内部バス用のドライバ及びまたはインターネット層に転送する振り分け機能とを備えるようにした。
【発明の効果】
【００１２】
本発明では、ＣＰＵユニットに実装されたインターネット層のルーティング機能と、通信ユニットに実装されたイーサネットドライバの振り分け機能により、ＣＰＵユニットに接続されず、通信ユニットに接続された装置・機器がＣＰＵユニットに対して汎用のプロトコルを用いてアクセスできる。また、プログラマブルコントローラが複数のネットワークに接続されている場合、互いに異なるネットワークに接続された装置（コンピュータ，ＰＬＣ等）同士であっても本発明のプログラマブルコントローラを経由して汎用のプロトコルを用いてデータの送受を行なうことができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明のＰＬＣを含むネットワークシステムの一例を示している。このネットワークシステムは、複数のネットワークに、パソコン，ＰＬＣ，その他の機器等が接続されている。第１ネットワーク１０には、パソコン１１と、第１ＰＬＣ１２とが接続されている。第１ＰＬＣ１２は、第２ネットワーク１３にも接続される。この第２ネットワーク１３には、第２ＰＬＣ１６と、第３ＰＬＣ１７と、リモートＩＯ１８とが接続される。もちろん、各ネットワーク１０，１３には、図示した装置以外の装置も適宜接続され、ＦＡにおける生産管理・制御システムが構築される。なお、リモートＩＯ１８は、入力機器のみを接続する入力タイプ、出力機器のみを接続する出力タイプ、入力機器および出力機器を接続する入出力タイプがある。また、ＰＬＣのマスタユニットとの間でフィールドバスといわれる独自の回線を経由してデータ通信するタイプ（図示せず）と、ＰＬＣの通信ユニットとの間でネットワークを経由してデータ通信するタイプ（図示のもの）とがある。各ＰＬＣはＩＮリフレッシュ処理、演算実行処理、ＯＵＴリフレッシュ処理をサイクリックに実行するもので、特に第２ＰＬＣ１６と第３ＰＬＣ１７は図示しない生産設備の機器を制御するものである。
【００１４】
第１ネットワーク１０は、主として生産指示や生産結果のような生産管理情報を扱う情報系ネットワークである。その第１ネットワーク１０に接続されたパソコン１１は、管理コンピュータであり、ネットワークシステムに接続された機器に対する設定を行なったり、装置等から送られてくる情報を取得したりする。第２ネットワーク１３は、生産設備の制御を行なうための制御系ネットワークである。その第２ネットワーク１３に接続された生産設備の制御を司る第２ＰＬＣ１６及び第３ＰＬＣ１７と、リモートＩＯ１８とは、第２ネットワーク１３を介してサイクリックに通信を行ない、リモートＩＯ１８を経由してリモートＩＯ１８に接続された入出力機器のＩＯデータの送受を行なう。各ネットワーク１０，１３は、何れもイーサネット（ＥｔｈｅｒＮｅｔ・登録商標）で実現される。これに伴い、各ネットワーク１０，１３に接続されるパソコン，ＰＬＣその他の機器は、イーサネットに接続可能な通信インタフェースを備える。
【００１５】
第１ＰＬＣ１２は、ＣＰＵユニット２０と通信ユニット３０とを備えている。もちろん、この第１ＰＬＣ１２は、図示省略する他のユニットも備えている。ＣＰＵユニット２０は、電子メールクライアント、ＦＴＰサーバ、ＩＰルーティングなどのＴＣＰ／ＩＰアプリを内蔵し、第１ネットワーク１０に接続されてパソコン１１とメッセージデータの交換を行なう。つまり、パソコン１１は、電子メールサーバやＦＴＰクライアント等として機能する。通信ユニット２０は、サイクリック通信機能を持ち、第２ネットワーク１３に接続され、第２ＰＬＣ１６，第３ＰＬＣＰＬＣ１７，リモートＩＯ１８等との間でＩＯデータの交換を行う。
【００１６】
第２ＰＬＣ１６及び第３ＰＬＣ１７も、ＴＣＰ／ＩＰアプリを内蔵するＣＰＵユニット２０と、サイクリック通信機能を持つ通信ユニット３０とを備えている。これらのＰＬＣ１６，１７も図示省略する他のユニットを備えている。なお、図１に示すネットワークシステムの場合、各ＰＬＣの通信ユニット３０並びに第１ＰＬＣ１２のＣＰＵユニット２０は、イーサネットに接続可能な通信インタフェースを備える。第２ＰＬＣ１６と第３ＰＬＣ１７のＣＰＵユニット２０も、イーサネットに接続可能な通信インタフェースを備えてもよい。
【００１７】
図２は、ＰＬＣを構成するＣＰＵユニット２０と通信ユニット３０とにおけるデータを送受信する機能の内部構成を示している。本実施形態のユニット２０，３０は、データを送受信するためのプロトコルとして、ネットワークの標準プロトコルであるＴＣＰ／ＩＰに対応させている。
【００１８】
ＣＰＵユニット２０は、上位から順に、アプリケーション層であるＰＬＣ用ＴＣＰ／ＩＰアプリ群２１と、トランスポート層であるＰＬＣ用トランスポート層プロトコルスタック２２と、インターネット層であるＰＬＣ用ＩＰプロトコルスタック２３と、リンク層であるイーサネットドライバ２４，イーサネットインタフェース２５と、を備える。さらに、ＣＰＵユニット２０は、ＰＬＣの内部バス４０に接続され、ＰＬＣ内のユニット間でのデータ転送を行なうドライバ２６（第１の内部バス用ドライバ）を備えている。このドライバ２６は、ＰＬＣ用ＩＰプロトコルスタック２３の下位に接続される。
【００１９】
ＰＬＣ用トランスポート層プロトコルスタック２２は、ＴＣＰプロトコルスタックとＵＤＰプロトコルスタックを含む。ＰＬＣ用ＩＰプロトコルスタック２３は、配下の通信インタフェースとしてイーサネットドライバ２４を通じてイーサネットインタフェース２５が接続され、また、ドライバ２６を通じて、後述する通信ユニット３０内のイーサネットインタフェース３５が接続されているものとして動作する。
【００２０】
ＰＬＣ用ＩＰプロトコルスタック２３は、ルーティング機能を持つ。よって、ＰＬＣ用ＩＰプロトコルスタック２３は、ＩＰルーティングを要求するパケット、すなわち、「自ＭＡＣアドレスかつ他ＩＰアドレス」宛のパケットを受信した場合、ＩＰルーティングテーブルに従い転送する。
【００２１】
一例を示すと、ＩＰルーティングテーブルが、図３に示すように記述されている場合、ＰＬＣ用ＩＰプロトコルスタック２３は、以下のＡからＣのいずれかの処理を実行する。Ａ．受信したデータの宛先ＩＰアドレスが自ＩＰ（192.168.100.1、192.168.200.1）の場合、ＰＬＣ用ＩＰプロトコルスタック２３は、そのデータをＰＬＣ用トランスポート層プロトコルスタック２２に転送する。
Ｂ．受信したデータの宛先ＩＰアドレスが192.168.101.0/24に含まれる場合、ＰＬＣ用ＩＰプロトコルスタック２３は、そのデータをイーサネットドライバ２４からイーサネットインタフェース２５に転送し192.168.100.10のノードに送信する。
Ｃ．宛先ＩＰアドレスがＡ，Ｂ以外の場合、ＰＬＣ用ＩＰプロトコルスタック２３は、そのデータをイーサネットドライバ２４からイーサネットインタフェース２５に転送し192.168.100.100のノードに送信する。つまり、ＰＬＣ用ＩＰプロトコルスタック２３は、宛先が不明の場合、デフォルトスタンダードに送信する。
【００２２】
上記のＰＬＣ用ＴＣＰ／ＩＰアプリ群２１と、ＰＬＣ用トランスポート層プロトコルスタック２２と、ＰＬＣ用ＩＰプロトコルスタック２３と、イーサネットドライバ２４と、イーサネットインタフェース２５とは、通常のＴＣＰ／ＩＰを構成する４層構造における各層のプロトコルと同様である。これにより、イーサネットに接続可能な通信インタフェースを備えたパソコン１１は、ＴＣＰ／ＩＰプロトコルを用いて第１ＰＬＣ１２のＣＰＵユニット２０とデータの送受を行なうことができる。つまり、パソコン１１と第１ＰＬＣ１２との間でデータを送受する場合、専用のプロトコルは、不要となる。
【００２３】
ＣＰＵユニット２０の動作を説明しつつ、上記の各処理部の機能をさらに説明する。図４は、データ送信時の動作を示す。ＴＣＰ／ＩＰアプリ群２１内のアプリケーションは、送信先のＩＰアドレスとポート番号を指定し、データをＰＬＣ用トランスポート層プロトコルスタック２２へ転送する（Ｓ１）。ＰＬＣ用トランスポート層プロトコルスタック２２は、受け取ったデータに対してＴＣＰヘッダ或いはＵＤＰヘッダを付加し、ＰＬＣ用ＩＰプロトコルスタック２３に転送する（Ｓ２）。ＰＬＣ用ＩＰプロトコルスタック２３は、受け取ったデータにＩＰヘッダ，イーサネットヘッダを付加し（Ｓ３）、ＩＰルーティングテーブルに登録されたルーティング規則に従い、取得したデータをイーサネットドライバ２４またはドライバ２６に転送する（Ｓ４）。イーサネットドライバ２４は、受信したデータをイーサネットインタフェース２５にそのまま転送する（Ｓ５）。イーサネットインタフェース２５は、エラーチェックデータを付加し、イーサネット手順に従いデータを第１ネットワーク１０へ送信する（Ｓ６）。また、ドライバ２６は、受信したデータに通信ユニット宛内部バスヘッダを付加し、そのデータを内部バス４０経由で通信ユニット３０へ送信する（Ｓ７）。
【００２４】
図５は、イーサネットインタフェース２５が受信したデータについての内部処理を示している。イーサネットインタフェース２５は、受信したデータのヘッダを解析し、宛先アドレスが「自ＭＡＣアドレス」か「ブロードキャストアドレス」の場合、その受信したデータをイーサネットドライバ２４へ転送する（Ｓ１１）。
【００２５】
イーサネットドライバ２４は、イーサネットインタフェース２５から転送されてきた全てのデータを、ＰＬＣ用ＩＰプロトコルスタック２３へ転送する（Ｓ１２）。ＰＬＣ用ＩＰプロトコルスタック２３は、ＩＰルーティングテーブルに登録されたルーティング規則に従い、取得したデータをＰＬＣ用トランスポート層プロトコルスタック２２またはドライバ２６に転送する（Ｓ１３）。ＰＬＣ用トランスポート層プロトコルスタック２２は、転送されてきたデータの宛先ポートをチェックし、対応可能なアプリケーションのポート番号か否かを判断する（Ｓ１４）。対応可能なアプリケーションのポート番号の場合、ＰＬＣ用トランスポート層プロトコルスタック２２は、そのデータをＰＬＣ用ＴＣＰ／ＩＰアプリ群２１に送る（Ｓ１５）。ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１の対応するアプリケーションは、受信したデータに基づきデータ処理を行なう（Ｓ１６）。なお、処理ステップＳ１４の分岐判断で、対応するアプリケーションが存在しないと判断された場合、受信したデータ（パケット）を破棄する（Ｓ１７）。また、ドライバ２６は、受信したデータに通信ユニット宛内部バスヘッダを付加し、そのデータを内部バス４０経由で通信ユニット３０へ送信する（Ｓ１８）。
【００２６】
図６は、内部バス４０経由でドライバ２６がデータを受信した場合の内部処理を示している。ドライバ２６は、内部バス４０を介して通信ユニット３０からのパケットを受信すると（Ｓ２１）、内部バスヘッダを削除し、ＰＬＣ用ＩＰプロトコルスタック２３へ転送する（Ｓ２２）。ＰＬＣ用ＩＰプロトコルスタック２３は、ＩＰルーティングテーブルに登録されたルーティング規則に従い、取得したデータをＰＬＣ用トランスポート層プロトコルスタック２２またはイーサネットドライバ２４に転送する（Ｓ２３）。なお、ＰＬＣ用ＩＰプロトコルスタック２３は、イーサネットドライバ２４に転送する際にイーサネットヘッダを付加する（Ｓ２８）。
【００２７】
ＰＬＣ用トランスポート層プロトコルスタック２２は、転送されてきたデータの宛先ポートをチェックし、対応するアプリケーションのポート番号か否かを判断する（Ｓ２４）。対応するアプリケーションの場合、ＰＬＣ用トランスポート層プロトコルスタック２２は、そのデータをＰＬＣ用ＴＣＰ／ＩＰアプリ群２１に送る（Ｓ２５）。ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１の対応するアプリケーションは、受信したデータに基づきデータ処理を行なう（Ｓ２６）。なお、処理ステップＳ２４の分岐判断で、対応するアプリケーションが存在しないと判断された場合、受信したデータ（パケット）を破棄する（Ｓ２７）。
【００２８】
ＰＬＣ用ＩＰプロトコルスタック２３から転送されてきたデータを受け取ったイーサネットドライバ２４は、受信したデータをイーサネットインタフェース２５にそのまま転送する（Ｓ２９）。イーサネットインタフェース２５は、エラーチェックデータを付加し、イーサネット手順に従いデータを第１ネットワーク１０へ送信する（Ｓ３０）。
【００２９】
これにより、ＣＰＵユニット２０は、ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１から送られたデータを、イーサネットインタフェース２５を経由して第１ネットワーク１０に接続されたパソコン１１等に送ることができる。また、ＣＰＵユニット２０は、ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１から送られたデータを、通信ユニット３０側に送ることができる。ＣＰＵユニット２０は、通信ユニット３０から送られてきたデータをＰＬＣ用ＴＣＰ／ＩＰアプリ群２１に転送したり、イーサネットインタフェース２５から第１ネットワーク１０側に送り出したりすることができる。
【００３０】
通信ユニット３０は、上位から順に、アプリケーション層であるＴＣＰ／ＩＰアプリ群３１と、トランスポート層であるトランスポート層プロトコルスタック３２と、インターネット層であるＩＰプロトコルスタック３３と、リンク層であるＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４，イーサネットインタフェース３５と、を備える。さらに、通信ユニット３０は、ＰＬＣの内部バス４０に接続され、ＰＬＣ内のユニット間でのデータ転送を行なうドライバ３６（第２の内部バス用ドライバ）を備えている。このドライバ２６は、ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４と接続され、ＩＰプロトコルスタック３３を経由することなく直接ドライバ間でデータの転送が行なわれる。
【００３１】
ＴＣＰ／ＩＰアプリ群３１を構成するアプリケーションは、通信ユニット固有のもので、ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１を構成するアプリケーションとは必ずしも同じではない。トランスポート層プロトコルスタック３２は、ＴＣＰプロトコルスタックとＵＤＰプロトコルスタックを含む。ＩＰプロトコルスタック３３は、配下の通信インタフェースとしてＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４を通じてイーサネットインタフェース３５が接続されているものとして動作する。通信ユニット３０のＩＰプロトコルスタック３３は、ルーティング機能を備えていない。通信ユニットにおけるインターネット層にはルーティング機能がない点で、ＣＰＵユニット２０のＰＬＣ用ＩＰプロトコルスタック２３と相違している。よって、ＩＰプロトコルスタック３３は、ＩＰルーティングを要求するパケット、すなわち「自ＭＡＣアドレスかつ他ＩＰアドレス」宛のパケットを受信した場合、当該パケットを破棄する。
【００３２】
ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、通常のイーサネットドライバの機能と、ＴＣＰ／ＩＰブリッジ機能とを備えたドライバである。ここでＴＣＰ／ＩＰブリッジ機能は、イーサネットインタフェース３５から受信したデータのプロトコルヘッダ部を解析し、その内容によってデータの転送先を決定し、その決定した転送先に受信したデータを転送する機能である。転送先は、以下の３つのパターンがある。
（１）ＩＰプロトコルスタック３３とドライバ３６の両方
（２）ドライバ３６のみ
（３）ＩＰプロトコルスタック３３のみ
【００３３】
この振り分け処理は、ＣＰＵユニット２０のＰＬＣ用ＴＣＰ／ＩＰアプリ群２１と通信ユニット３０のＴＣＰ／ＩＰアプリ群３１に実装されるアプリケーションや、ＰＬＣ用ＩＰプロトコルスタック２３，ＩＰプロトコルスタック３３の持つ機能等に依存する。そこで、ＣＰＵユニット２０と通信ユニット３０が、図７に示す機能を実装していると仮定して振り分け処理を説明する。
【００３４】
（１）ＩＰプロトコルスタック３３とドライバ３６の両方に転送する条件
ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、受信したデータのデータ種別が「ＡＲＰレスポンスデータ」の場合（条件１）、そのデータをＩＰプロトコルスタック３３とドライバ３６に転送する。ＡＲＰレスポンスデータか否かの判断は、イーサネットヘッダのフレームタイプが、ＡＲＰであることを示す「０ｘ８０６」で、そのイーサネットヘッダに続くＡＲＰヘッダのオペレーションの値がレスポンスを示す「２」であるか否かにより行なう（図８参照）。
【００３５】
（２）ドライバ３６のみに転送する条件
ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、受信したデータのデータ種別が「ＩＰルーティングデータ」（条件２−１），「ＰＬＣ宛ＩＣＭＰエラーデータ」（条件２−２），「ＴＣＰ共通アプリケーション（クライアント）」（条件２−３），「ＵＤＰ共通アプリケーション（クライアント）」（条件２−４），「ＵＤＰ共通アプリケーション（クライアント、フラグメントデータ）」（条件２−５），「ＴＣＰアプリケーション（サーバ）」（条件２−６），「ＴＣＰアプリケーション（クライアント）」（条件２−７），「ＵＤＰアプリケーション（サーバ）」（条件２−８），「ＵＤＰアプリケーション（クライアント）」（条件２−９）の場合、そのデータをドライバ３６に転送する。
【００３６】
各条件のプロトコル識別に基づく具体的な判断は、以下の通りである。まず、受信したデータのＩＰヘッダの宛先ＩＰアドレスが、通信ユニット３０のＩＰアドレスでない場合、そのデータは条件２−１を充足する（図９参照）。
【００３７】
受信したデータのＩＣＭＰヘッダのタイプが３，４，５，１１，１２のいずれかであり、かつ、添付ＩＰデータグラムが条件２−３から２−９に合致する場合、そのデータは条件２−２を充足する（図１０参照）。
【００３８】
受信したデータのＴＣＰヘッダの宛先ポート番号がＣＰＵユニットに割り当てられた範囲内の場合、そのデータは条件２−３を充足する（図１１参照）。すなわち、ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１並びにＴＣＰ／ＩＰアプリ群３１を構成する各アプリケーションが利用するポート番号の範囲は、予め各ユニットごとに決めておく。一例を示すと、ＣＰＵユニット２０に実装されるアプリケーションは、１０００１〜２００００番の範囲内のポート番号を利用し、通信ユニット３０に実装されるアプリケーションは、２０００１〜３００００番の範囲内のポート番号を利用するものとする。すると、受信したデータのＴＣＰヘッダの宛先ポート番号が１０００１〜２００００番の範囲内であれば、ＣＰＵユニット２０に実装されたアプリケーションが利用するデータの可能性があるとともに、通信ユニット３０に実装されたアプリケーションが利用するデータの可能性がない。よって、係る場合、受け取ったデータをドライバ３６へ転送し、ＣＰＵユニット２０側に渡すようにする。
【００３９】
同様に、受信したデータのＵＤＰヘッダの宛先ポート番号がＣＰＵユニットに割り当てられた範囲内の場合、そのデータは条件２−４を充足する（図１２参照）。また、ＵＤＰプロトコルに従ったパケットの場合、ＩＰによるフラグメント（データ分割）が発生すると、２つ目以降のパケット（データ）にはＵＤＰヘッダが付加されない。一方、ＩＰヘッダの識別子の欄には、分割の有無とシリアルＮｏ．が格納される（図１３参照）。従って、係る識別子に基づき、条件２−４を充足するデータと対となるデータは、条件２−５を充足する。
【００４０】
受信したデータのＴＣＰヘッダの宛先ポート番号が、通信ユニット３０のＴＣＰ／ＩＰアプリ群３１のサポートサーバポート（サーバアプリＡ）でない場合、そのデータは条件２−６を充足する（図１１参照）。すなわち、通信ユニット３０がサポートしていないデータの場合、ＴＣＰ／ＩＰアプリ群３１にとって不要なデータであるため、ＣＰＵユニット２０側へ転送するようにする。
【００４１】
受信したデータのＴＣＰヘッダの発信元ポート番号が、通信ユニット３０のＴＣＰ／ＩＰアプリ群３１のサポートクライアントポート（クライアントアプリＢ）でない場合、そのデータは条件２−７を充足する（図１１参照）。
【００４２】
また、受信したデータのＵＤＰヘッダの宛先ポート番号が、通信ユニット３０のＴＣＰ／ＩＰアプリ群３１のサポートサーバポート（サーバアプリＥ）でない場合、そのデータは条件２−８を充足する（図１２参照）。
【００４３】
さらに、受信したデータのＵＤＰヘッダの発信元ポート番号が、通信ユニット３０のＴＣＰ／ＩＰアプリ群３１のサポートクライアントポート（クライアントアプリＦ）でない場合、そのデータは条件２−９を充足する（図１２参照）。
【００４４】
（３）ＩＰプロトコルスタック３３のみに転送する条件
受信したデータが、上記の条件１並びに条件２−１〜条件２−９の何れにも充足しなかった場合、そのデータはＩＰプロトコルスタック３３に転送する。
【００４５】
通信ユニット３０の動作を説明しつつ、上記の各処理部の機能をさらに説明する。図１４は、データ送信時の動作を示す。ＴＣＰ／ＩＰアプリ群３１内のアプリケーションは、送信先のＩＰアドレスとポート番号を指定し、データをトランスポート層プロトコルスタック３２へ転送する（Ｓ３１）。トランスポート層プロトコルスタック３２は、受け取ったデータに対してＴＣＰヘッダ或いはＵＤＰヘッダを付加し、ＩＰプロトコルスタック２３に転送する（Ｓ３２）。ＩＰプロトコルスタック２３は、受け取ったデータにＩＰヘッダ，イーサネットヘッダを付加しＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４に転送する（Ｓ３３）。ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、受信したデータをイーサネットインタフェース３５にそのまま転送する（Ｓ３４）。イーサネットインタフェース３５は、エラーチェックデータを付加し、イーサネット手順に従いデータを第２ネットワーク１３へ送信する（Ｓ３５）。
【００４６】
図１５は、イーサネットインタフェース３５が受信したデータについての内部処理を示している。イーサネットインタフェース３５は、受信したデータのヘッダを解析し、宛先アドレスが「自ＭＡＣアドレス」か「ブロードキャストアドレス」の場合、その受信したデータをＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４へ転送する（Ｓ４１）。ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、ブリッジ振り分け処理のルールに従い、取得したデータをＩＰプロトコルスタック３３およびまたはドライバ３６に転送する（Ｓ４２）。
【００４７】
ＩＰプロトコルスタック３３は、パケットの宛先ＩＰアドレスをチェックする（Ｓ４３）。そして、宛先ＩＰアドレスが自ＩＰアドレスの場合、ＩＰプロトコルスタック３３は、取得したデータをトランスポート層プロトコルスタック３２に転送する（Ｓ４４）。宛先ＩＰアドレスが他ＩＰアドレスの場合、取得したデータは破棄される（Ｓ４８）。
【００４８】
トランスポート層プロトコルスタック３２は、転送されてきたデータの宛先ポートをチェックし、対応可能なアプリケーションのポート番号か否かを判断する（Ｓ４５）。対応可能なアプリケーションのポート番号の場合、トランスポート層プロトコルスタック３２は、そのデータをＴＣＰ／ＩＰアプリ群３１に送る（Ｓ４６）。ＴＣＰ／ＩＰアプリ群３１の対応するアプリケーションは、受信したデータに基づきデータ処理を行なう（Ｓ４７）。なお、処理ステップＳ４５の分岐判断で、対応するアプリケーションが存在しないと判断された場合、受信したデータ（パケット）を破棄する（Ｓ４８）。また、ドライバ３６は、受信したデータにＣＰＵユニット宛内部バスヘッダを付加し、そのデータを内部バス４０経由でＣＰＵユニット２０へ送信する（Ｓ４９）。
【００４９】
図１６は、内部バス４０経由でドライバ３６がデータを受信した場合の内部処理を示している。ドライバ３６は、内部バス４０を介してＣＰＵユニット２０からのパケットを受信すると（Ｓ５１）、内部バスヘッダを削除し、ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４へ転送する（Ｓ５２）。ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ３４は、受信したデータをイーサネットインタフェース３５にそのまま転送する（Ｓ５３）。イーサネットインタフェース３５は、エラーチェックデータを付加し、イーサネット手順に従いデータを第２ネットワーク１３へ送信する（Ｓ５４）。
【００５０】
これにより、通信ユニット３０は、ＴＣＰ／ＩＰアプリ群３１から送られたデータを、イーサネットインタフェース３５を経由して第２ネットワーク１３に接続されたＰＬＣその他の機器等に送ることができる。また、通信ユニット３０は、ＣＰＵユニット２０側から送られてきたデータを第２ネットワーク１３側に送信することができる。つまり、通信ユニット３０は、ＰＬＣ用ＴＣＰ／ＩＰアプリ群２１のアプリケーションから送られたデータや、パソコン１１からＣＰＵユニット２０経由で受信したデータを、第２ネットワーク１３上のＰＬＣ等に送信することができる。逆に、第２ネットワーク１３に接続されたＰＬＣ等は、通信ユニット３０経由で第１ＰＬＣ１２のＣＰＵユニットのＰＬＣ用ＴＣＰ／ＩＰアプリ群２１の所定のアプリケーションとデータの送受をしたり、さらに上位の第１ネットワーク１０に接続されたパソコン１１等とデータの送受をしたりすることができる。
【００５１】
次に、具体的な応用例を説明する。図１７では、説明の便宜上、第１ＰＬＣ１２のＣＰＵユニットの符号を２０ａ、通信ユニットの符号を３０ａとする。また、第２ＰＬＣ１６のＣＰＵユニットの符号を２０ｂ、通信ユニットの符号を３０ｂとする。この図１７に示すネットワークシステムにおいて、パソコン１１が、第２ＰＬＣ１６のＣＰＵユニット２０ｂのＦＴＰサーバにアクセスする場合、以下の手順に従ってデータの送受が行なわれる。この例での第２ＰＬＣ１６のＣＰＵユニット２０ｂはイーサネットドライバおよびイーサネットインタフェースを備えていても、備えていなくてもよい。もし備えていても使用しない状態となる。
【００５２】
まず、パソコン１１は、第２ＰＬＣ１６のＣＰＵユニット２０ｂ宛（ＩＰアドレス＝192.168.1.3）にＦＴＰアクセスを行う。第２ＰＬＣ１６は、パソコン１１が接続されているネットワークと異なるネットワークに接続されているためパソコン１１のデフォルトゲートウェイ情報に従い、第１ＰＬＣ１２のＣＰＵユニット２０ａにＦＴＰアクセス用パケットを送信する。
【００５３】
第１ＰＬＣ１２のＣＰＵユニット２０ａは図５で説明した処理を行う。そして、受信したＦＴＰアクセス用パケットが第２ＰＬＣ１６のＣＰＵユニット２０ｂ宛であると認識する。また、ＣＰＵユニット２０ａは、通信ユニット３０ａと第２ＰＬＣ１６とが第２ネットワーク１３に接続されていると認識している。そこで、ＣＰＵユニット２０ａは、ＰＬＣ用ＩＰプロトコルスタック２３のルーティング機能により、通信ユニット３０ａにＦＴＰアクセス用パケットを転送する（図５のＳ１８に対応）。通信ユニット３０ａは、図１６で説明した処理を行い、ＣＰＵユニット２０ａから転送されてきたＦＴＰアクセス用パケットを第２ＰＬＣ１６の通信ユニット３０ｂ宛に送信する。
【００５４】
通信ユニット３０ｂは図１５で説明した処理を行う。通信ユニット３０ｂは、ＦＴＰサーバ機能をサポートしていないためＴＣＰ／ＩＰブリッジ振り分け条件２−６により受信したＦＴＰアクセス用パケットをＣＰＵユニット２０ｂに転送する（図１５のＳ４９に対応）。ＣＰＵユニット２０ｂでは、図５で説明した処理によって、ＦＴＰアクセス用パケットの受け付け処理を行なう。
【００５５】
第２ＰＬＣ１６のＣＰＵユニット２０ｂは、図４で説明した処理をし、パソコン１１に対するレスポンスを以下のように実行する。ＣＰＵユニット２０ｂは、パソコン１１宛（ＩＰアドレス＝192.168.0.1）にＦＴＰレスポンスを生成する。パソコン１１は、ＣＰＵユニット２０ｂ2が接続されているネットワークと異なるネットワークに接続されているため、ＣＰＵユニット２０ｂのデフォルトゲートウェイ情報に従い、第１ＰＬＣ１２の通信ユニット３０ａにＦＴＰレスポンス用パケットを送信するために、そのパケットを通信ユニット３０ｂに転送する（図４のＳ７に対応）。通信ユニット３０ｂは、図１６で説明した処理を行い、ＣＰＵユニット２０ｂから転送されてきたＦＴＰレスポンス用パケットを通信ユニット３０ａ宛に送信する。
【００５６】
通信ユニット３０ａは図１５で説明した処理を行う。通信ユニット３０ａは、受信したＦＴＰレスポンス用パケットが自ＩＰアドレス宛ではないため、ＴＣＰ／ＩＰブリッジ振り分け条件２−１に従い、そのＦＴＰレスポンス用パケットをＣＰＵユニット２０ａに転送する。（図１５のＳ４９に対応）
【００５７】
第１ＰＬＣ１２のＣＰＵユニット２０ａは、通信ユニット３０ａから転送されてきたＦＴＰレスポンス用パケットがパソコン１１宛であると認識する。ＣＰＵユニット２０ａは、パソコン１１とＣＰＵユニット２０ａとが同一ネットワークに接続されていると認識しているためＣＰＵユニット２０ａはパソコン１１にＦＴＰレスポンス用パケットを送信する。（図５のＳ１５に対応）
【００５８】
パソコン１１は、ＣＰＵユニット２０ａから送られてきたＦＴＰレスポンス用パケットの受け付け処理を行う。これにより、パソコン１１とＰＬＣ１６（ＣＰＵユニット２０ｂ）との間で、汎用のプロトコルを用いてデータの送受を行なうことができる。
【００５９】
図１８は、別の実施形態を示している。本実施形態では、２つのネットワーク１０，１３に接続される第１ＰＬＣ１２が、通信ユニットを２つ備える。そして、第１通信ユニット３０ａが第２ネットワーク１３に接続され、第２通信ユニット３０ｃが第１ネットワーク１０に接続される。図１９に示すように、各通信ユニット３０ａ，３０ｃの内部構造は、図２に示すものと基本的に同様である。また、ＣＰＵユニット２０ａは、内部バス４０に接続するドライバ２８ａ，２８ｂ（請求項２の第１の内部バス用ドライバに相当）が、２つ用意されている。各ドライバ２８ａ，２８ｂは、それぞれ対応する通信ユニット３０ａ，３０ｃが決まっており、ＰＬＣ用ＩＰプロトコルスタック２３は、ルーティングにより転送すべき通信ユニットが決まると、その通信ユニットに対応するドライバにデータを転送する。図では内部バス用ドライバは２つだが、通信ユニットが３台以上接続される場合でも適用できるように、内部バス用ドライバを３つ以上設けた構成としてもよい。なお、内部バス４０は、ＣＰＵユニット２０ａと各通信ユニット３０ａ、３０ｃ、他のユニット（図示せず）とで共通のものであり、１つのバス構造となっている。便宜上、図中では、ＣＰＵユニット２０ａと通信ユニット３０ｂとの間の内部バスと、ＣＰＵユニット２０ａと通信ユニット３０ｃとの間の内部バスとを分離して示しているが、実際には、両者の内部バス４０はつながっており、１つのバス構造となっている。また、この実施形態のＣＰＵユニット２０ａは、図１９におけるイーサネットドライバ２４およびイーサネットインタフェース２５の構成を必要とせず、持たないものであってもよい。もちろんそれらの構成を持っていてもよいが、インタフェース２５にはネットワークを接続しないので、用いない。第２ＰＬＣ１６のＣＰＵユニット２０ｂもイーサネットドライバおよびイーサネットインタフェースを備えていても、備えていなくてもよい。
【００６０】
さて、パソコン１１が、第２ＰＬＣ１６のＣＰＵユニット２０ｂのＦＴＰサーバにアクセスする場合を例にする。すなわち、ここでのパソコン１１は、第２ＰＬＣ１６のＣＰＵユニット２０ｂ宛（ＩＰアドレス＝192.168.1.3）にＦＴＰアクセスを行い、第２ＰＬＣ１６は、パソコン１１が接続されたネットワークと異なるネットワークに接続されているためパソコン１１のデフォルトゲートウェイ情報に従い、第１ＰＬＣ１２の第２通信ユニット３０ｃにＦＴＰアクセス用パケットを送信する例における処理を説明する。
【００６１】
パソコン１１はＦＴＰアクセス用パケットを送信する。まず、第１ＰＬＣ１２の第２通信ユニット３０ｃは図１５の処理をし、ステップ４２に対応する処理として、宛先ＩＰアドレスが自ＩＰアドレスと異なるためＴＣＰ／ＩＰブリッジ振り分け条件２−１によりＦＴＰアクセス用パケットを、ドライバ３６から内部バス４０を経由してＣＰＵユニット２０ａに転送する（Ｓ４９）。
【００６２】
第１ＰＬＣ１２のＣＰＵユニット２０ａのＰＬＣ用ＩＰプロトコルスタック２３は、第２通信ユニット３０ｃから転送されたＦＴＰアクセス用パケットが第２ＰＬＣ１６のＣＰＵユニット２０ｂ宛であると認識する。また、ＣＰＵユニット２０ａは、第１通信ユニット３０ａと第２ＰＬＣ１６とが第２ネットワーク１３に接続されていると認識している。そこで、ＣＰＵユニット２０ａは、ドライバ２８ａから内部バス４０を介して通信ユニット３０ａにＦＴＰアクセス用パケットを転送する（Ｓ１８に対応）。第１通信ユニット３０ａは、図１６の処理をし、ＣＰＵユニット２０ａから内部バス４０を経由して転送されてきたＦＴＰアクセス用パケットをそのままイーサネットドライバ３５から第２ネットワーク１３を介して第２ＰＬＣ１６の通信ユニット３０ｂ宛に送信する。
【００６３】
第２ＰＬＣ１６の通信ユニット３０ｂは、図１５の処理をし、ＦＴＰサーバ機能をサポートしていないためＴＣＰ／ＩＰブリッジ振り分け条件２−６により受信したＦＴＰアクセス用パケットをドライバ３６から内部バス４０を経由してＣＰＵユニット２０ｂに転送する（Ｓ４９に対応）。第２ＰＬＣ１６のＣＰＵユニット２０ｂでは、図５の処理を行い、ＦＴＰアクセス用パケットの受け付け処理を行なう（Ｓ１６相当）。
【００６４】
第２ＰＬＣ１６のＣＰＵユニット２０ｂからパソコン１１に対するレスポンスは、以下の手順で実行される。ＣＰＵユニット２０ｂは、パソコン１１宛（ＩＰアドレス＝192.168.0.1）にＦＴＰレスポンスを送信する。パソコン１１は、ＣＰＵユニット２０ｂ2が接続させたネットワークと異なるネットワークに接続されているため、ＣＰＵユニット２０ｂのデフォルトゲートウェイ情報に従い、第１ＰＬＣ１２の第１通信ユニット３０ａにＦＴＰレスポンス用パケットを送信するために、そのパケットを通信ユニット３０ｂに転送する（図４のＳ７に対応）。通信ユニット３０ｂは、ＣＰＵユニット２０ｂから転送されてきたＦＴＰレスポンス用パケットをそのままイーサネットドライバからイーサネットを介して第１通信ユニット３０ａ宛に送信する。
【００６５】
第１通信ユニット３０ａは、受信したＦＴＰレスポンス用パケットが自ＩＰアドレス宛ではないため、ＴＣＰ／ＩＰブリッジ振り分け条件２−１に従い、そのＦＴＰレスポンス用パケットを内部バス４０を介してＣＰＵユニット２０ａに転送する（図１５のＳ４９）。
【００６６】
ＣＰＵユニット２０ａは、ドライバ２８ａにてＦＴＰレスポンス用パケットを受け、図５の受信処理を行うが、第１通信ユニット３０ａから転送されてきたＦＴＰレスポンス用パケットがパソコン１１宛であると認識する。ＣＰＵユニット２０ａは、パソコン１１と第２通信ユニット３０ｃとが同一ネットワークに接続されていると認識しているためＣＰＵユニット２０ａはドライバ２８ｂから第２通信ユニット３０ｃにＦＴＰレスポンス用パケットを転送する（図５のＳ１３、Ｓ１８）。第２通信ユニット３０ｃは、ＣＰＵユニット２０ａから内部バス４０を経由して転送されてきたＦＴＰアクセス用パケットをそのままパソコン１１宛に送信する。
【００６７】
パソコン１１は、ＣＰＵユニット２０ａから送られてきたＦＴＰレスポンス用パケットの受け付け処理を行う。これにより、パソコン１１とＰＬＣ１６（ＣＰＵユニット２０ｂ）との間で、汎用のプロトコルを用いてデータの送受を行なうことができる。
【００６８】
なお、ＣＰＵユニット２０ａの内部バス用ドライバ２８ａ，２８ｂを、通信ユニット３０ａ，３０ｃに対応させて設けた例を説明した。この構成は、内部バス用ドライバ２８ａは通信ユニット３０ａとの間で１対１にデータバス通信し、内部バス用ドライバ２８ｂは通信ユニット３０ｃとの間で１対１にデータバス通信するような構成である。しかし、それに限らず、内部バス用ドライバをすべての通信ユニットに共通した構成としてもよい。内部バス４０は１つの共通のバスであるから、共通の内部バス用ドライバを、転送先の通信ユニットを１つ特定してデータ転送する機能を持った構成とすればよい。
【図面の簡単な説明】
【００６９】
【図１】本発明のプログラマブルコントローラを含むネットワークシステムの一例を示す図である。
【図２】本発明のプログラマブルコントローラの一実施の形態を示す図である。
【図３】ルーティングテーブルの一例を示す図である。
【図４】ＣＰＵユニットの送信機能を説明するフローチャートである。
【図５】ＣＰＵユニットの受信機能を説明するフローチャートである。
【図６】ＣＰＵユニットの受信機能を説明するフローチャートである。
【図７】通信ユニットにおける振り分け機能を説明する図である。
【図８】通信ユニットにおける振り分け機能を説明する図である。
【図９】通信ユニットにおける振り分け機能を説明する図である。
【図１０】通信ユニットにおける振り分け機能を説明する図である。
【図１１】通信ユニットにおける振り分け機能を説明する図である。
【図１２】通信ユニットにおける振り分け機能を説明する図である。
【図１３】通信ユニットにおける振り分け機能を説明する図である。
【図１４】通信ユニットの送信機能を説明するフローチャートである。
【図１５】通信ユニットの受信機能を説明するフローチャートである。
【図１６】通信ユニットの受信機能を説明するフローチャートである。
【図１７】互いに異なるネットワークに接続された装置同士がデータを送受する手順を説明する図である。
【図１８】互いに異なるネットワークに接続された装置同士がデータを送受する手順を説明する図である。
【図１９】本発明のプログラマブルコントローラの別の実施の形態を示す図である。
【符号の説明】
【００７０】
１０  第１ネットワーク
１１  パソコン
１２  第１ＰＬＣ
１３  第２ネットワーク
１６  第２ＰＬＣ
１７  第３ＰＬＣ
１８  リモートＩＯ
２０  ＣＰＵユニット
２１  ＰＬＣ用ＴＣＰ／ＩＰアプリ群
２２  ＰＬＣ用トランスポート層プロトコルスタック
２３  ＰＬＣ用ＩＰプロトコルスタック
２４  イーサネットドライバ
２５  イーサネットインタフェース
２６  ドライバ
３０  通信ユニット
３１  ＴＣＰ／ＩＰアプリ群
３２  トランスポート層プロトコルスタック
３３  ＩＰプロトコルスタック
３４  ＴＣＰ／ＩＰブリッジ内蔵イーサネットドライバ
３５  イーサネットインタフェース
３６  ドライバ
４０  内部バス
【図１】
2008084343.tif 000003
【図２】
2008084343.tif 000004
【図３】
2008084343.tif 000005
【図４】
2008084343.tif 000006
【図５】
2008084343.tif 000007
【図６】
2008084343.tif 000008
【図７】
2008084343.tif 000009
【図８】
2008084343.tif 000010
【図９】
2008084343.tif 000011
【図１０】
2008084343.tif 000012
【図１１】
2008084343.tif 000013
【図１２】
2008084343.tif 000014
【図１３】
2008084343.tif 000015
【図１４】
2008084343.tif 000016
【図１５】
2008084343.tif 000017
【図１６】
2008084343.tif 000018
【図１７】
2008084343.tif 000019
【図１８】
2008084343.tif 000020
【図１９】
2008084343.tif 000021