(57)【要約】【課題】ソフトウェアＰＬＣモジュールと既存のモジュールとを混在可能にし、互いの資源を利用可能にする。【解決手段】ソフトウェアＰＬＣ１０は、バックプレーンバスＩ／Ｆ１５を介してバックプレーンバス７に接続して、このバス上７の各モジュール（２、３、４、５、２１）資源を利用可能とする。また、ソフトウェアＰＬＣ１０内部でのメッセージ通信のフォーマット１６を、バックプレーンバス上のメッセージ通信のフォーマット３０と同じにする。ルーティング処理部１２は、ソフトウェアＰＬＣ１０内の各種機能部（イーサネットＩ／Ｆ１３等）のポート番号をポート情報１２ａとして登録しており、メッセージ受信する毎にそのバックプレーンバスメッセージヘッダ１７（３１）を参照して、宛先局が自局である場合には、ポート情報１２ａを参照して、宛先の機能部に転送する。【選択図】図２
2007249562.tif 000002
【特許請求の範囲】
【請求項１】
バックプレーンバスに接続して、該バックプレーンバス上のメッセージ通信プロトコルに従って、該バックプレーンバスに接続されている各モジュールとの通信を行わせるバックプレーンバス・インタフェース手段と、
内部の各機能部間のメッセージ通信を、前記バックプレーンバス上のメッセージ通信とし、該各機能部に該メッセージ通信の為のポート番号を割り当て、
該各機能部のポート情報を登録し、メッセージを受信する毎に、該メッセージの宛先局が自装置ではない場合には該メッセージを前記バックプレーンバス・インタフェース手段を介して前記バックプレーンバスに接続されている各モジュールの中の宛先局のモジュールに転送し、該メッセージの宛先局が自装置である場合には前記登録されているポート情報より、宛先のポート番号が割り当てられている機能部を検索し、該機能部に該メッセージを転送するルーティング処理手段と、
を有することを特徴とするソフトウェアＰＬＣ。
【請求項２】
バックプレーンバスに接続したソフトウェアＰＬＣにおけるメッセージルーティング方法であって、
前記ソフトウェアＰＬＣ内の各機能部のポート情報を登録し、メッセージを受信する毎に、該メッセージの宛先局が自装置ではない場合には該メッセージを前記バックプレーンバス上に転送し、該メッセージの宛先局が自装置である場合には前記登録されているポート情報より、宛先のポート番号が割り当てられている機能部を検索し、該機能部に該メッセージを転送することを特徴とするメッセージルーティング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに係わり、特にパソコンベースのソフトウェアＰＬＣとこのソフトウェアＰＬＣを用いるプログラマブルコントローラに関する。
【背景技術】
【０００２】
従来のプログラマブルコントローラ（以下、ＰＬＣと呼ぶ）は、専用のハードウェアを用いる制御装置（ここでは、ＣＰＵモジュールと呼ぶ）とＩ／Ｏモジュールとが、専用バス（バックプレーンバス）に接続して成る構成であった。
【０００３】
図５は、従来のプログラマブルコントローラの構成例を示す図である。
同図に示すプログラマブルコントローラ５０は、ＣＰＵモジュール５１、イーサネットモジュール５２、Ｉ／Ｏマスタ５３が、バックプレーンバス５６に接続され、Ｉ／Ｏマスタ５３と各Ｉ／Ｏスレーブ５５が、フィールドバス５７（例えばJPCN1、DeviceNET、ASI、T-LINK等）に接続されて成る構成となっている。また、Ｉ／Ｏスレーブが直接バックプレーンバス５６に接続されたもの（図では直結Ｉ／Ｏ５４）であってもよい。尚、バックプレーンバスは、本出願人の製品では“ＳＸバス”等と呼ばれている。
【０００４】
ＣＰＵモジュール５１は、バックプレーンバス５６を介して、Ｉ／Ｏマスタ５３に対して、例えばデータ入出力要求を出す。これを受けて、Ｉ／Ｏマスタ５３は各Ｉ／Ｏスレーブ５５のデータを収集してＣＰＵモジュール５１に返信し、またはＣＰＵモジュール５１から渡された制御データ（モータの回転数、位置決め等の設定データ）を、各Ｉ／Ｏスレーブ５５に渡す等の処理を実行する。また、ＣＰＵモジュール５１は、バックプレーンバス５６を介して、直接、各Ｉ／Ｏスレーブ（直結Ｉ／Ｏ５４）に対するデータ入出力処理を行ってもよい。
【０００５】
また、図示の構成では、イーサネットモジュール５２により、外部の任意の装置と通信を行うことも可能である。
図５には、プログラマブルコントローラの構成の一例を示しただけであり、このような構成に限るものではないが、様々な構成があってもよいが、何れにしても、ＣＰＵモジュールは、専用のハードウェアを用いるものであった（以下、ハードウェアＰＬＣと呼ぶ場合もある）。
【０００６】
一方、ここで、最近、パソコンをＰＬＣとして動作させる製品が実現されてきている。このようなパソコンベースのＰＬＣは、一般的には“ソフトウェアＰＬＣ”と呼ばれている（本出願人の製品名は、例えばMicrex-SX用のSPS）。
【０００７】
図６に、このようなソフトウェアＰＬＣの構成の一例を示す。
同図において、情報処理装置６０は、ＰＬＣとして動作する汎用のパソコン等である。プログラミング・ツール・インタフェース６１、デバッガ６２、命令実行制御６３、タスク・スケジューラ６４、Ｉ／Ｏインタフェース６５は、汎用のパソコン等である情報処理装置６０を、ＰＬＣとして動作可能にするソフトウェアである。但し、リアルタイムＯＳ６６がインストールされている必要がある。リアルタイムＯＳ６６は、既存の製品が各種存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、従来、このような“ソフトウェアＰＬＣ”を用いてプログラマブルコントローラ・システムを構築する場合、既存のプログラマブルコントローラ・システムのアーキテクチャとは若干異なるものとなっていた。例えば図６におけるＩ／Ｏインタフェース６５が、情報処理装置６０のＰＣＩバス（Peripheral Component Interconnect Bus）にフィールドバスカードを挿入して成るものとし、これによりフィールドバス７１に接続して、フィールドバス７１を介して、各Ｉ／Ｏスレーブ７２をコントロールする。
【０００９】
このように、従来では、“ソフトウェアＰＬＣ”を用いる場合は、独自のアーキテクチャで“ソフトウェアＰＬＣ”のみによるプログラマブルコントローラ・システムを構築しているが、“ソフトウェアＰＬＣ”と“ハードウェアＰＬＣ”とが混在するシステムは構築されていなかった。
【００１０】
また、従来のプログラマブルコントローラは、単機能のモジュールにより構成されていた。この為、例えばＬＡＮ等に接続して外部の情報処理装置等と通信を行いたい場合、その為の単機能モジュール（すなわち、イーサネットモジュール５２等）を追加しなければならなかった。
【００１１】
一方、現在の汎用のパソコンは多機能であり、例えば、通常、イーサネット通信機能等を備えている。よって、汎用のパソコンをベースとする“ソフトウェアＰＬＣ”を用いてプログラマブルコントローラ・システムを構築した場合、例えばＣＰＵモジュール５１等がこのパソコンの機能を利用できるようにすれば、例えば、図５におけるイーサネットモジュール５２は必要なくなることになる。
【００１２】
本発明の課題は、ソフトウェアＰＬＣモジュールと既存のモジュールとを混在可能にし、互いの資源を利用可能にするソフトウェアＰＬＣ、そのメッセージルーティング方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明のソフトウェアＰＬＣは、バックプレーンバスに接続して、該バックプレーンバス上のメッセージ通信プロトコルに従って、該バックプレーンバスに接続されている各モジュールとの通信を行わせるバックプレーンバス・インタフェース手段と、内部の各機能部間のメッセージ通信を、前記バックプレーンバス上のメッセージ通信とし、該各機能部に該メッセージ通信の為のポート番号を割り当て、該各機能部のポート情報を登録し、メッセージを受信する毎に、該メッセージの宛先局が自装置ではない場合には該メッセージを前記バックプレーンバス・インタフェース手段を介して前記バックプレーンバスに接続されている各モジュールの中の宛先局のモジュールに転送し、該メッセージの宛先局が自装置である場合には前記登録されているポート情報より、宛先のポート番号が割り当てられている機能部を検索し、該機能部に該メッセージを転送するルーティング処理手段とを有する。
【００１４】
上記ソフトウェアＰＬＣによれば、例えば既存のプログラマブルコントローラ（バックプレーンバスに各種専用モジュール（ＣＰＵモジュール、Ｉ／Ｏモジュール等）が接続されて成る）に当該ソフトウェアＰＬＣを追加して動作させることが可能になる。更に、上記ＣＰＵモジュール等が、ソフトウェアＰＬＣ（パソコンベースのＰＬＣ）が備える各種機能部の機能を利用することが可能になる。例えば、イーサネット通信機能が利用できることにより、イーサネット通信用の専用モジュールを設ける必要なく、外部のＬＡＮ等に接続された情報処理装置との通信が可能になる。
【００１５】
本発明のメッセージルーティング方法は、バックプレーンバスに接続したソフトウェアＰＬＣにおけるメッセージルーティング方法であって、前記ソフトウェアＰＬＣ内の各機能部のポート情報を登録し、メッセージを受信する毎に、該メッセージの宛先局が自装置ではない場合には該メッセージを前記バックプレーンバス上に転送し、該メッセージの宛先局が自装置である場合には前記登録されているポート情報より、宛先のポート番号が割り当てられている機能部を検索し、該機能部に該メッセージを転送する。
【発明の効果】
【００１６】
本発明のソフトウェアＰＬＣ、そのメッセージルーティング方法によれば、ソフトウェアＰＬＣモジュールと既存のモジュールとを混在可能にし、互いの資源を利用可能にすることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本例によるプログラマブルコントローラの構成例を示す図である。
本例では、図示のように、ソフトウェアＰＬＣ１０とハードウェアＰＬＣ（ＣＰＵモジュール２）とが混在するプログラマブルコントローラ１を実現している。
【００１８】
ここでは、既存のプログラマブルコントローラにソフトウェアＰＬＣ１０を追加する場合を例にする。すなわち、同図に示すプログラマブルコントローラ１において、ＣＰＵモジュール２、イーサネットモジュール３、Ｉ／Ｏマスタモジュール４、直結Ｉ／Ｏモジュール５が、バックプレーンバス７に接続され、Ｉ／Ｏマスタモジュール４と各Ｉ／Ｏスレーブモジュール６が、フィールドバス８ａに接続されて成る構成は、図５に示すものとほぼ同じである。尚、“Ｉ／Ｏ”は、“入力／出力”の意味である。
【００１９】
そして、このような構成に対して、ソフトウェアＰＬＣ１０をバックプレーンバス７に接続し、Ｉ／Ｏマスタモジュール４や直結Ｉ／Ｏモジュール５等をコントロールすること（データ入出力処理等）を可能にしている。
【００２０】
また、ソフトウェアＰＬＣ１０は、従来と同様に、フィールドバス８ｂに接続して、このフィールドバス８ｂを介してＩ／Ｏスレーブ９とのデータ入出力処理を行うことも可能であるが、これは必ずしも必要なものではない。また、尚、図示の例は、既存のシステムにソフトウェアＰＬＣ１０を追加した場合を示しているが、初めからソフトウェアＰＬＣ１０とハードウェアＰＬＣとが混在するプログラマブルコントローラを構築する場合、イーサネットモジュール３は、必ずしも必要なわけではない。すなわち、本例によるプログラマブルコントローラ１では、例えばＣＰＵモジュール２等は、ソフトウェアＰＬＣ１０のハードウェアである汎用のパソコン等が通常備えるイーサネット機能を利用して、外部の情報処理装置等と通信できるようにしているので、専用のモジュール（イーサネットモジュール３等）を備える必要はなくなる。詳しくは、以下、図２を参照して説明する。
【００２１】
図２は、上記プログラマブルコントローラ１を実現させるソフトウェアＰＬＣ１０について、詳細に説明する為の図である。
尚、同図では、フィールドバス８ｂに係わる構成は、省略している。
【００２２】
同図において、ＣＰＵモジュール２、イーサネットモジュール３、Ｉ／Ｏマスタモジュール４、直結Ｉ／Ｏモジュール５、Ｉ／Ｏスレーブモジュール６は、図１で説明した通り、既存の構成であるが、更に詳細に説明するならば、それぞれ、バックプレーンバス７上で各モジュール間でメッセージ通信を行う為のプロトコルを実装している。すなわち、各々、メッセージＩ／Ｆ２ａ、メッセージＩ／Ｆ３ａ、メッセージＩ／Ｆ４ａ、メッセージＩ／Ｆ５ａを備えている。（Ｉ／Ｆ；インタフェース）。
【００２３】
このバックプレーンバス７上で各モジュール間でメッセージ通信のフォーマット３０は、概略的には、図示の様に、バックプレーンバスメッセージヘッダ３１とメッセージデータ３２より成る。
【００２４】
本例では、ソフトウェアＰＬＣ１０にもバックプレーンバス７上で各モジュール間でメッセージ通信を行う為のプロトコルを実装している。すなわち、ソフトウェアＰＬＣ１０において、アプリケーション部１１は、バックプレーンバスＩ／Ｆ１５を介して、バックプレーンバス７上の各モジュールと、メッセージ通信を行うことができる。
【００２５】
更に、本例では、ソフトウェアＰＬＣ１０のベースである汎用のパソコンは、通常、パソコン内の各種機能部間のメッセージ通信を、WindowメッセージやSocket通信により行っているところを、バックプレーンバスのメッセージフォーマットでメッセージ通信を行うようにしている。
【００２６】
図１には、このパソコン内の各種機能部の一例として（特に通信機能部の一例として）、イーサネットＩ／Ｆ１３、ＲＳ２３２ＣＩ／Ｆ１４を示す。
本例では、図示の通り、イーサネットＩ／Ｆ１３、ＲＳ２３２ＣＩ／Ｆ１４は、バックプレーンバス７上の各モジュールのメッセージＩ／Ｆ３ａ、２１ａ等と同じメッセージＩ／Ｆ１３ａ、１４ａを実装している。また、ソフトウェアＰＬＣ１０内部でのメッセージ通信におけるメッセージフォーマット１６のバックプレーンバスメッセージヘッダ１７は、バックプレーンバス７上のメッセージフォーマット３０のバックプレーンバスメッセージヘッダ３１と同じフォーマットとし、これでソフトウェアＰＬＣ１０内部でのメッセージ通信を行っている。（具体的には、例えば、Socket通信プロトコル上にバックプレーンバスメッセージプロトコルをのせている）。
【００２７】
そして、更に、ルーティング処理部１２を設け、ルーティング処理部１２が、登録されたポート情報１２ａを用いてメッセージのルーティング処理を行うことにより、バックプレーンバス７上のリソース（各モジュールの資源）もソフトウェアＰＬＣ１０のベースであるパソコンに搭載されていたリソース（イーサネットＩ／Ｆ１３、ＲＳ２３２ＣＩ／Ｆ１４等）も区別なく使用できるようになる。
【００２８】
これについて、以下、詳細に説明する。
まず、アプリケーション部１１、イーサネットＩ／Ｆ１３、ＲＳ２３２ＣＩ／Ｆ１４には、メッセージ通信の為のオリジナルのポート番号が割り当てられており、更に各々が、例えば初期化処理時に、自己に割り当てられているポート番号を、ルーティング処理部１２に登録させる機能を備える（登録したものが、ポート情報１２ａである）。
【００２９】
ルーティング処理部１２は、パソコン内の各機能部（アプリケーション部１１、イーサネットＩ／Ｆ１３、ＲＳ２３２ＣＩ／Ｆ１４等）またはバックプレーンバス７上の各モジュール（ＣＰＵモジュール２、イーサネットモジュール３、Ｉ／Ｏマスタモジュール４、直結Ｉ／Ｏモジュール５、Ｉ／Ｏスレーブモジュール６）が送出するメッセージを受信する毎に、このメッセージのヘッダ情報１７（３１）を参照して（更に、必要に応じてポート情報１２ａを参照して）、メッセージの転送先を求め、この転送先に当該メッセージを送出する処理（ルーティング処理）を実行する。
【００３０】
これより、バックプレーンバス７上のモジュール（例えばＣＰＵモジュール２）は、例えばイーサネットＩ／Ｆ１３を介して、外部の情報処理装置（ＰＣ（パソコン）２０等）と通信することができる。
【００３１】
このルーティング処理について、以下、図３、図４を参照して、更に詳細に説明する。
図３は、バックプレーンバスメッセージヘッダ３１のフォーマットを示す図である。
同図に示すヘッダ情報４０は、ＤＡ（宛先局番）４１、ＳＡ（送信元局番）４２、メッセージ番号４３、サイズ４４、ＤＰ（ディスティネーションポート）４５、ＳＰ（ソースポート）４６より構成される。
【００３２】
ＤＡ（宛先局番）４１〜サイズ４４は、ＯＳＩ参照モデルの第１層（物理層）にあたるヘッダ情報である。ＤＰ（ディスティネーションポート）４５、ＳＰ（ソースポート）４６は、ＯＳＩ参照モデルの第２層（データリンク層）にあたるヘッダ情報である。
【００３３】
宛先局番４１、送信元局番４２における“局番”は、バックプレーンバス上の各モジュール（ソフトウェアＰＬＣ１０、ＣＰＵモジュール２、Ｉ／Ｏモジュール４、・・・等）に割付けられているバックプレーンバス上の物理的な局番であり、宛先局番４１にはメッセージの宛先のモジュールの局番、送信元局番４２には送信元のモジュールの局番が格納される。
【００３４】
メッセージ番号４３、サイズ４４については、特に説明しない。
ＤＰ（ディスティネーションポート）４５、ＳＰ（ソースポート）４６には、それぞれ、宛先のポート情報、送信元のポート情報が格納される。尚、ポート情報とは、バックプレーンバスのメッセージプロトコル上のポート情報である。
【００３５】
図４（ａ）は、ルーティング処理部１２によるルーティング処理を説明する為の図である。
同図において、ルーティング処理部１２は、通常、メッセージ受信待ち状態（待機状態）となっている（ステップＳ１）。そして、メッセージを受信すると、まず、このメッセージがポート番号登録処理を行わせる為のメッセージであるか否かを判定する（ステップＳ２）。すなわち、上記の通り、例えばイーサネットＩ／Ｆ１３等が、例えば初期化処理時に、自己に割り当てられているポート番号をルーティング処理部１２に登録させる為に、図４（ｂ）に示すポート登録処理メッセージ送信処理（ステップＳ７）により自己のポート番号をメッセージ通信で送ってくる場合があるので、まず、このメッセージであるか否かを判定し、そうである場合には（ステップＳ２，ＹＥＳ）、ポート登録処理を行って、ステップＳ１に戻る。
【００３６】
一方、そうでない場合には（ステップＳ２，ＮＯ）、続いて、このメッセージのヘッダ情報を参照して、そのＤＡ（宛先局番）４１が自局（ソフトウェアＰＬＣ）であるか否かを判定する（ステップＳ４）。
【００３７】
自局宛ではない場合には（ステップＳ４，ＮＯ）、このメッセージをバックプレーンバスＩ／Ｆ１５に転送し（ステップＳ５）、バックプレーンバス７上に送出させる。
自局宛である場合には（ステップＳ４，ＹＥＳ）、更にこのメッセージのヘッダ情報におけるＤＰ（ディスティネーションポート）４５によりポート情報１２ａを検索して、一致するポート番号に対応する機能部（ソフトウェアＰＬＣ１０内のイーサネットＩ／Ｆ１３等の機能部）に、メッセージを転送する（ステップＳ６）。
【００３８】
上述したプログラマブルコントローラにおいては、例えば、ソフトウェアＰＬＣ１０内のメッセージ通信と、バックプレーンバス７に接続されている各モジュールとのメッセージ通信を、区別なく通信することができる。
【００３９】
また、例えば、ソフトウェアＰＬＣ１０が、バックプレーンバス７に接続されている各モジュールの機能を利用できるだけでなく（特に図示していないが、バックプレーンバス７には例えばＦＬ−ＮＥＴ、Ｐ−ＬＩＮＫ等の制御系ネットワーク通信機能を提供するモジュールも存在し得る。パソコン等は、通常、イーサネット等の一般的な通信機能は備えているが、このような制御系ネットワーク通信機能は備えていないので、場合によってはこのモジュールの機能を利用する必要がある）、ソフトウェアＰＬＣ１０内に備えられている機能を、バックプレーンバス７に接続されている各モジュールが利用できるようになる。また、これより、バックプレーンバス７上に一般の通信機能を提供するモジュール（イーサネットモジュール３等）を構築する必要がなくなり、構成を簡素化できる。
【００４０】
また、例えば、ソフトウェアＰＬＣ１０内の機能と同じ機能を持つモジュールがバックプレーンバス７上に存在する場合、インタフェース（Ｉ／Ｆ）を区別することなく、どちらのリソースも利用することができる。例えば、図２において、アプリケーション部１１は、ＲＳ２３２Ｃモジュール２１を利用する場合も、ＲＳ２３２ＣＩ／Ｆ１４を利用する場合も、メッセージヘッダ１７（３１）の宛先局番４１、ディスティネーションポート４４の番号の調整だけで済み、同じインタフェースで利用することができるようになるので、例えば既存のプログラムをあまり変更しなくても済む。
【図面の簡単な説明】
【００４１】
【図１】本例によるプログラマブルコントローラの構成例を示す図である。
【図２】ソフトウェアＰＬＣについて、詳細に説明する為の図である。
【図３】バックプレーンバスメッセージヘッダのフォーマットを示す図である。
【図４】（ａ）はルーティング処理部によるルーティング処理を説明する為のフローチャート図、（ｂ）は各機能部による処理を示す図である。
【図５】従来のプログラマブルコントローラの構成例を示す図である。
【図６】ソフトウェアＰＬＣの構成の一例を示す。
【符号の説明】
【００４２】
１  プログラマブルコントローラ
２  ＣＰＵモジュール
２ａ  メッセージＩ／Ｆ
３  イーサネットモジュール
３ａ  メッセージＩ／Ｆ
４  Ｉ／Ｏマスタモジュール
４ａ  メッセージＩ／Ｆ
５  直結Ｉ／Ｏモジュール５
５ａ  メッセージＩ／Ｆ
６  Ｉ／Ｏスレーブモジュール
７  バックプレーンバス
８ａ、８ｂ  フィールドバス
９  Ｉ／Ｏスレーブモジュール
１０  ソフトウェアＰＬＣ
１１  アプリケーション部
１２  ルーティング処理部
１２ａ  ポート情報
１３  イーサネットＩ／Ｆ
１３ａ  メッセージＩ／Ｆ
１４  ＲＳ２３２ＣＩ／Ｆ
１４ａ  メッセージＩ／Ｆ
１５  バックプレーンバスＩ／Ｆ
１６  パソコン内メッセージフォーマット
１７  バックプレーンバスメッセージヘッダ
１８  メッセージデータ
２０  パソコン（ＰＣ）
２１  ＲＳ２３２Ｃモジュール
２１ａ  メッセージＩ／Ｆ
３０  メッセージフォーマット
３１  バックプレーンバスメッセージヘッダ
３２  メッセージデータ
４０  ヘッダ情報
４１  ＤＡ（宛先局番）４１
４２  ＳＡ（送信元局番）
４３  メッセージ番号
４４  サイズ
４５  ＤＰ（ディスティネーションポート）
４６  ＳＰ（ソースポート）
【図２】
2007249562.tif 000003
【図３】
2007249562.tif 000004
【図４】
2007249562.tif 000005
【図５】
2007249562.tif 000006
【図１】
2007249562.tif 000007
【図６】
2007249562.tif 000008