(57)【特許請求の範囲】
【請求項１】
計算機に接続されたプログラマブルロジックコントローラは、
それぞれに少なくと１つの制御対象機器が接続され、グループ内の複数の前記制御対象機器の入出力制御や管理を行う、少なくとも１つのモジュール、および、アドレスと前記モジュールへのメッセージの送信方法とを対応付けたアドレス変換テーブルを保持した記憶装置を有し、
前記アドレス変換テーブルに基づいて、
前記計算機からのメッセージに含まれるアドレスが特定のアドレスの場合、前記特定のアドレスに対応した前記送信方法に含まれる少なくとも１つの前記モジュールそれぞれの配下の少なくとも１つの制御対象機器に対して前記計算機からのメッセージをブロードキャスト送信し、
前記計算機からのメッセージに含まれるアドレスが制御対象機器のアドレスの場合、当該制御対象機器に前記計算機からのメッセージをユニキャスト送信する
ことを特徴とするプログラマブルロジックコントローラ。
【請求項２】
前記計算機からのメッセージに含まれるアドレスが特定のアドレスの場合、前記特定のアドレスを有する制御対象機器から応答があったときは、前記応答があった前記制御対象機器に割り付けられたアドレスが異常であることを前記計算機に通知する
ことを特徴とする請求項１記載のプログラマブルロジックコントローラ。
【請求項３】
それぞれが複数の機器に接続される複数のモジュールと、シーケンスプログラムに従い前記複数のモジュールを制御するCPUモジュールとを有するプログラマブルロジックコントローラにおいて、
前記プログラマブルロジックコントローラに入力されたメッセージと、特定のモジュールに接続された機器に対する前記CPUモジュールの処理方法とを対応させるテーブルに基づいて、前記特定のモジュールに接続された機器に対して、データの送信を制御する
ことを特徴とするプログラマブルロジックコントローラ。
【請求項４】
前記テーブルの保存及び更新に関する管理情報を持つ
ことを特徴とする請求項３に記載のプログラマブルロジックコントローラ。
【請求項５】
前記入力されたメッセージが所定のメッセージである場合、特定のI/Oモジュールに接続された機器に対してブロードキャスト送信をする
ことを特徴とする請求項３または４に記載のプログラマブルロジックコントローラ。
【請求項６】
前記特定のモジュールに接続された機器に対してブロードキャスト送信をする時に、プログラマブルロジックコントローラに入力されたメッセージを前記特定のモジュール以外に前記プログラマブルロジックコントローラに接続された機器に送信して、前記接続された機器からの応答に応じてアドレス割付の異常を前記プログラマブルロジックコントローラに接続された計算機に通知することを特徴とする請求項３から５のいずれか一に記載のプログラマブルロジックコントローラ。
【請求項７】
前記CPUモジュールに搭載したスイッチの設定により、特定のモジュールに接続された機器に対して、データを送信する機能を選択できる
ことを特徴とする請求項３から６のいずれか一に記載のプログラマブルロジックコントローラ。
【請求項８】
前記スイッチの設定により、前記モジュールの動作をマルチキャストモードあるいはユニキャストモードに切り替える
ことを特徴とする請求項７に記載のプログラマブルロジックコントローラ。
【請求項９】
前記スイッチの設定に伴う異常を検知して前記プログラマブルロジックコントローラに接続された計算機に通知する
ことを特徴とする請求項７または８に記載のプログラマブルロジックコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラ(PLC)において、プログラマブルロジックコントローラに接続されるI/Oモジュールへのデータ転送方式に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ(以下、PLCと呼ぶ)とは、シーケンスプログラムを実行し、接続された制御機器をシーケンス制御する機器である。このようなPLCにおいて、CPUモジュール内蔵のPLC本体にはバスを介して複数のI/Oモジュールが接続されている。PLC本体は内蔵するCPUモジュールによりシーケンスプログラムを実行することで、例えばI/Oモジュールに対してデータ送信要求を行い、I/Oモジュールは要求に対する応答として入力デバイスが取得したデータをCPUモジュールに送信する。
【０００３】
図１に示すPLC１１０において、バス１１２にはCPUモジュール１２０と、複数のI/Oモジュール１２２、１２４、１２６が接続されている。I/Oモジュール１２２、１２４、１２６は、インバータ１３０、サーボモータ１３２、圧縮機１３４といった制御対象機器が接続される。
【０００４】
I/Oモジュール１２２、１２４，１２６と制御対象機器であるインバータ１３０、サーボモータ１３２、圧縮機１３４の間はシリアル通信プロトコルを利用してデータの送受信が行われる。特にFA(Factory Automation)ネットワークにおけるシリアル通信プロトコルの規格として、Modbus(登録商標)やCC-Link(登録商標)等がある。
【０００５】
ModbusやCC-Linkといったシリアル通信プロトコルは、マスタ機器がスレーブ機器毎に要求を送信するユニキャスト通信と、ネットワーク上に存在する全てのスレーブ機器に対して要求を送信するブロードキャスト通信をサポートしている。そのため、ネットワーク上に存在する全てのスレーブ機器に対して同一の要求を送信する場合にはブロードキャスト通信は有効であるが、それ以外はユニキャスト通信を利用してデータ通信を行う必要がある。
【０００６】
更に、シリアル通信プロトコルには衝突を検知・回避する仕組みが搭載されていない。そのため、複数のスレーブ機器に対して同一の要求を送信する場合、一旦、スレーブ機器に対して要求を送信したマスタ機器は、要求を受信したスレーブ機器からの応答を受信するまで、別のスレーブ機器に要求を送信することができない。特にネットワーク上に処理速度の遅い機器が存在する場合には、多大な時間を要するといった問題点がある。
【０００７】
上記の問題点を解決する手段として、優先順位や処理性能に応じてI/Oモジュールに割り当てる局番(アドレス)を割当てる方法(特許文献１参照)や複数のスレーブ機器に対して同一の要求を送信することができるマルチキャスト通信に対応するため、ユニキャスト通信用のアドレス(以下、ユニキャストアドレス)をマルチキャスト通信用のアドレス(以下、マルチキャストアドレス)に変更する方法(特許文献２参照)がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−３９７４０
【特許文献２】特開２００７−６０１９７
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来技術では、以下のような課題がある。
【００１０】
特許文献１を利用した場合、処理速度が速いスレーブ機器から順にマスタ機器は要求を送信することは可能となる。しかし、シリアル通信の場合、通信速度が9,600bps〜13,800bpsと低速であるため、例えば、複数のスレーブ機器に対して同一の要求を送信する場合には、マスタ機器はスレーブ毎に要求を送信する必要があり、複数のスレーブ機器に要求を送信するまでには多大な時間を要するといった問題点がある。
【００１１】
複数のスレーブ機器に対して同一の要求を送信することを可能とする技術としてマルチキャスト通信がある。ただし、シリアル通信プロトコルにはマルチキャストアドレスが仕様では定義されていないため、ユニキャストアドレスをマルチキャストアドレスとして利用する必要がある。特許文献２は、ユニキャストアドレスで送信されたデータパケットをマルチキャストアドレスに変更する技術である。しかし、特許文献２はポート番号といったデータパケットに追加した情報を利用して、ユニキャストアドレスからマルチキャストアドレスへの一対一対応の変換を行っているため、シリアル通信のような低速な通信の場合には、新たなデータの付加により送受信可能なデータ量の減少が問題になる恐れがある。
【００１２】
本発明の目的は、PLC(Programable Logic Controller)に接続されたI/Oモジュール単位でブロードキャスト通信を行うことを可能にすることである。
【課題を解決するための手段】
【００１３】
本明細書において開示される代表的なPLCは、CPUモジュールを内蔵しており、CPUモジュールはバスを介して複数のI/Oモジュールと接続される。複数のI/Oモジュールはバスを介してCPUモジュールと接続される。CPUモジュールは、モジュールハードウェア、記憶装置、OS、機器制御アプリケーションで構成される。
【００１４】
モジュールハードウェアはCPUモジュールのシーケンスプログラムを動作させるために必要なハードウェアであり、CPU、RAM、PCと通信するための通信インタフェース、各I/Oモジュールと通信するためのI/Oインタフェース等を含んで構成される。
【００１５】
記憶装置にはCPUモジュールの動作に必要となるシーケンスプログラムやアドレス変換テーブルや変換テーブル情報を保存する。
【００１６】
アドレス変換テーブルとは、PCが送信するメッセージに含まれるアドレスとI/Oモジュールに対する処理方法との対応方法を明記したテーブルである。例えば、PCからの送信メッセージに含まれるアドレスが ”0xE1”の場合、I/Oモジュール1に接続された複数の制御機器に対するブロードキャスト送信といったような対応方法が明記されている。即ち、本発明では、アドレスに、ブロードキャストを指示する特定のアドレスを設定することにより、ブロードキャストのための新たなデータの付加が不要である。
【００１７】
変換テーブル情報とは、アドレス変換テーブルの管理に関する情報であり、アドレス変換テーブルが不揮発性メモリに搭載されているか否かを示すフラグや、アドレス変換テーブルのバージョン、更新や設定を行った日付などが含まれる。
【００１８】
機器制御アプリケーションは、記憶装置に保存してあるシーケンスプログラムを用いて、I/Oインタフェースを介して制御対象機器の制御を行うアプリケーションであり、通信インタフェースを介してPCから受信したメッセージ、ならびにI/Oインタフェースを介して各I/Oモジュールから受信したメッセージを解析するメッセージ解析機能や、PCから受信したメッセージの解析結果、ならびに記憶装置に保存してあるアドレス変換テーブルを参照し、PCからの受信メッセージを変換するメッセージ変換機能を有する。
【００１９】
上記態様によれば、I/Oモジュール単位でのブロードキャスト送信が可能となるため、PCが複数のI/Oモジュールに接続された制御機器に対して、同一の要求を送信する場合、要求を複数回送信することなく、一回の要求の送信だけで、複数のI/Oモジュールに接続された制御機器に対して、要求を送信することが可能となる。
【発明の効果】
【００２０】
PLCに対して、一回の要求を送信するのみで、複数のI/Oモジュールに接続された制御機器に対して、要求を送信することが可能となり、要求の送信に必要な時間を短縮することができる。
【図面の簡単な説明】
【００２１】
【図１】機器制御システムの構成を例示する図。
【図２】第1の実施形態におけるCPUモジュール、I/Oモジュールの構成を例示する図。
【図３】アドレス変換テーブルの構成を例示する図。
【図４】PLCの電源投入時のシーケンスを例示する図。
【図５】マルチキャストモードにおけるPLCの基本動作シーケンスを例示する図。
【図６】アドレス変換テーブルの設定・更新における基本動作シーケンスを例示する図。
【図７】シリアル通信プロトコルのメッセージフレームを例示する図。
【図８】第2の実施形態におけるCPUモジュール、I/Oモジュールの構成を例示する図。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、本発明の実施形態を説明する図において、同一部には同一の符号を付し、その繰り返しの説明は、省略することにする。
【００２３】
(第1の実施形態)
図１は、本発明の第1の実施形態における機器制御システムの一例を示した図である。
【００２４】
機器制御システムとは、PC１００とPLC(プログラマブルロジックコントローラ)１１０とインバータ１３０、サーボモータ１３２、圧縮機１３４といった制御対象機器を含んで構成されるシステムであり、例えば、FAネットワークシステムなどが該当する。
【００２５】
PLC１１０とインバータ１２０，サーボモータ１３２，圧縮機１３４といった制御対象機器間のデータ送受信にはシリアル通信プロトコルが利用される。特に、FAネットワークにおけるシリアル通信プロトコルの規格として、ModbusやCC-Link等がある。
【００２６】
図７はシリアル通信プロトコルの規格の一つであるModbusのメッセージフレームを示した図である。
【００２７】
Modbusのメッセージフレームは、STARTフィールド７１０、ADDRESSフィールド７２０、FUNCTIONフィールド７３０，DATAフィールド７４０，LRCフィールド７５０，ENDフィールド７６０から構成される。尚、ModbusのメッセージフレームにはASCIIモードとRTUモードの2種類のメッセージフレームがあるが、本説明では、ASCIIモードの場合を説明する。
【００２８】
STARTフィールド７１０は、メッセージフレームの開始を示すフィールドであり、”0x3A”が設定される。
【００２９】
ADDRESSフィールド７２０は、メッセージフレームを送信するスレーブ機器のアドレスを設定するフィールドである。Modbusの場合、”0x00”がブロードキャストアドレスであり、それ以外の値はユニキャストアドレスである。
【００３０】
FUNCTIONフィールド７３０は、ファンクションコードを設定するフィールドである。ファンクションコードとは、マスタ機器がスレーブ機器に対して要求を送信する際に、要求内容を示すコードである。
【００３１】
DATAフィールド７４０は、FUNCTIONフィールド７３０に設定されたファンクションコードに沿ったデータをマスタ機器、あるいはスレーブ機器が設定するフィールドである。
【００３２】
LRCフィールド７５０は、LRC(Longitudinal Redundancy Check)方式に基づいたエラーチェックコードを設定するフィールドである。
【００３３】
ENDフィールド７６０は、メッセージフレームの終了を示すフィールドであり、”0x0D,0x0A”が設定される。
【００３４】
以上がModbusのメッセージフレームである。尚、本発明は、マスタ機器がスレーブ機器に対して、ブロードキャスト通信、ならびにユニキャスト通信を行う通信プロトコルであれば、適用することが可能である。また、以下の説明では、Modbusをシリアル通信プロトコルとして説明をする。
【００３５】
PLC１１０は、CPUモジュール１２０と複数のI/Oモジュール１２２，１２４，１２６を含んで構成される。CPUモジュール１２０と複数のI/Oモジュール１２２、１２４，１２６はバス１１２を介して接続される。I/Oモジュール１２２，１２４，１２６には、インバータ１３０，サーボモータ１３２，圧縮機１３４といった制御対象機器が接続される。尚、CPUモジュール１２０やI/Oモジュール１２２の他に、電源モジュールやカウンタモジュールといった他の機能を持つモジュールを、バス１１２を介して接続してもよい。
【００３６】
CPUモジュール１２０は、格納されたシーケンスプログラムを実行し、各I/Oモジュールを介して接続された制御機器をシーケンス制御するモジュールである。
【００３７】
図２はCPUモジュール１２０とI/Oモジュールの構成の一例を示した図である。
【００３８】
複数の制御対象機器は、ユーザが決める機器の管理目的や利用目的に応じて、いくつかのグループに分けられ、１つのI/Oモジュールは、そのグループ内の複数の制御対象機器の入出力制御や管理を行う。複数の制御対象機器のグループ化の具体例として、インターフェイスが同じものをグループ化する、制御対象機器の使用頻度に応じて負荷分散のために制御対象機器をグループ化する、などがある。  従来の「通常モード」では、各制御対象機器にメッセージを送信するユニキャストと、全部の制御対象機器にメッセージを送信するモードを含む。一方、本実施例では、複数の制御機器からなる上記の１つのグループ、即ち、全部の制御対象機器の部分集合の単位で入出力制御を行うI/Oモジュールを介して、グループ内の複数の制御機器に対してブロードキャスト送信を行う。以下では、グループ内の複数の制御機器に対するメッセージ送信を、ユーザの要求に応じてメッセージ送信を指示するPC１００から見た場合は「マルチキャスト」と呼び、I/Oモジュールから見た場合を「ブロードキャスト」と呼ぶ。
【００３９】
CPUモジュール１２０は、モジュールハードウェア２１０、記憶装置２２０，OS２３０、機器制御アプリケーション２４０を含んで構成される。
【００４０】
モジュールハードウェア２１０はCPUモジュール１２０のシーケンスプログラム２２６を動作させるために必要なハードウェアであり、CPU２１２、RAM２１４、通信インタフェース２１６、I/Oインタフェース２１８等を含んで構成される。
【００４１】
通信インタフェース２１６は、PC１００とデータ通信を行うためのインタフェースであり、各I/Oモジュールと制御対象機器とを接続するシリアルインタフェースでも、無線インタフェースでも、イーサネット(登録商標)でも構わない。尚、本説明では、通信インタフェース２１６は各I/Oモジュールと制御対象機器とを接続するインタフェースと同様、シリアル通信インタフェースとする。
【００４２】
I/Oインタフェース２１８は、CPUモジュール１２０と各I/Oモジュールを接続するインタフェースである。
【００４３】
記憶装置２２０はCPUモジュール１２０の動作に必要なデータ、例えばシーケンスプログラム２２６やアドレス変換テーブル２２２や変換テーブル情報２２４を保存し、例えば、不揮発性の半導体メモリや磁気記憶媒体などの媒体で構成される。
【００４４】
図３はアドレス変換テーブル２２２の詳細を示した図である。
【００４５】
アドレス変換テーブル２２２は、PC１００が送信するメッセージのADDRESSフィールド７２０に設定されている値と、各I/Oモジュールへのメッセージの送信方法を対応付けた表である。
【００４６】
例えば、PC１００が送信するメッセージのADDRESSフィールド７２０に”0x00”が設定されている場合、全I/Oモジュールに接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール１２０は動作する(３１０)。”0x01”(３１１)及び”0x02”(３１２)は、通常モードとして動作する、即ち、ユニキャスト送信として、特定の制御対象機器にメッセージ送信する場合の機器のアドレスである。また、PC１００が送信するメッセージのADDRESSフィールド７２０に”0xE1”が設定されている場合、I/Oモジュール1（１２２）に接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール１２０は動作する(３２０)。更に、PC１００が送信するメッセージのADDRESSフィールド７２０に”0xEA”が設定されている場合、I/Oモジュール1(１２２)とI/Oモジュール2(１２４)に接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール１２０は動作する(３３０)。このように、アドレス変換テーブル２２４より、特定のユニキャストアドレスを特定のI/Oモジュールに接続された制御対象機器に対するブロードキャスト送信の方法、さらにはアドレスに変更することが可能となる。即ち、図３のテーブルを用いることにより、制御対象機器に対応したアドレスを用いてユニキャスト送信が行え、それ以外のアドレスを指定することでI/Oモジュール単位でのブロードキャスト送信が行える。
【００４７】
変換テーブル情報２２４は、アドレス変換テーブル２２２の管理に関する情報であり、例えば、アドレス変換テーブル２２２が記憶装置２２０に保存されていることを示すフラグやアドレス変換テーブル２２２を設定もしくは更新した日付、アドレス変換テーブル２２２のバージョン等を含んでいる。
【００４８】
OS２３０は、CPUモジュール１２０の動作を統括的に制御する基本ソフトウェアである。
【００４９】
機器制御アプリケーション２４０は、記憶装置２２０に保存してあるシーケンスプログラム２２６を用いて、I/Oインタフェース２１８を介して制御対象機器の制御を行うアプリケーションであり、通信インタフェース２１６を介してPC１００から受信したメッセージ、ならびにI/Oインタフェース２１８を介して各I/Oモジュールから受信したメッセージを解析するメッセージ解析機能２４２や、PC１００から受信したメッセージの解析結果、ならびに記憶装置に保存してあるアドレス変換テーブル２２２を参照し、PC１００からの受信メッセージを変換するメッセージ変換機能２４４を有する。即ち、図３のアドレス変換テーブル２２２の右欄の操作結果に基づいてPC１００からの受信メッセージが、具体的なI/Oモジュール又は制御対象機器のアドレスを含むメッセージに変換される。そのために、機器制御アプリケーション２４０は、各I/Oモジュール及びその制御対象である各機器のアドレスを管理している。
【００５０】
以上がCPUモジュール１２０の構成の一例である。
【００５１】
次に図２に示すI/Oモジュール１２２の内部構成の一例を説明する。
【００５２】
I/Oモジュール１２２は、CPU２５０、I/Oインタフェース２５２、入出力データバッファ２５４、入力部２５６、出力部２５８を含んで構成される。
【００５３】
I/Oインタフェース２５２は、CPUモジュール１２０と接続するインタフェースである。
【００５４】
入出力バッファ２５４は、I/Oインタフェース２５２を介して送受信するメッセージを格納する領域である。
【００５５】
出力部２５８は、I/Oモジュール１２２に接続された制御対象機器にデータを送信するモジュールである。
【００５６】
入力部２５６は、I/Oモジュール１２２に接続された制御対象機器が送信するデータを受信するモジュールである。
【００５７】
以上がI/Oモジュール１２２の内部構成の一例である。
【００５８】
図４はPLC１１０の電源投入時の処理シーケンスの一例を示した図である。
【００５９】
電源投入時、PLC１１０は特定のI/Oモジュールに接続された制御対象機器にブロードキャスト通信を行わないユニキャスト通信である通常モードで動作する(ステップ４００)。
【００６０】
PLC１１０は通信インタフェース２１６を介して、PC１００が送信するメッセージを受信すると、メッセージ解析機能２４２を用いて、受信したメッセージの解析を行う(ステップ４０２、ステップ４０４)。
【００６１】
解析した結果、PC１００が送信したメッセージがモード変換を要求するメッセージではなかった場合、通常モード、即ち、ユニキャスト送信で動作する(ステップ４０６、ステップ４１６)。
【００６２】
解析した結果、PC１００が送信したメッセージがモード変換を要求するメッセージであった場合、変換テーブル情報２２４を参照し、記憶装置２２０にアドレス変換テーブル２２２が設定されていることを確認する(ステップ４０８、ステップ４１０)。
【００６３】
確認の結果、アドレス変換テーブル２２２が設定されている場合、モードを、通常モードから、特定のI/Oモジュールに接続された制御対象機器にブロードキャスト通信を行うマルチキャストモードに変更し、変換テーブル情報２２４の値を応答として、PC１００に送信する(ステップ４１２、ステップ４１４)。
【００６４】
確認の結果、アドレス変換テーブル２２２が設定されていない場合、有効なアドレス変換テーブルが存在していないことを応答として、PC１００に送信する(ステップ４１８)。
【００６５】
以上が、PLC１１０の電源投入時のシーケンスである。
【００６６】
図５はPLC１１０がマルチキャストモードで動作している場合の基本動作シーケンスの一例を示した図である。
【００６７】
PLC１１０は通信インタフェース２１６を介して、PC１００が送信するメッセージを受信すると、メッセージ解析機能２４２を用いて、受信したメッセージの解析し、アドレス変換テーブル２２２を参照する(ステップ５０２、ステップ５０４、ステップ５０６)。
【００６８】
解析した結果、PC１００が送信したメッセージのADDRESSフィールド７２０の値が0x00の場合、全I/Oモジュールに接続された制御対象機器に対するブロードキャスト送信を行う必要があると判断し、メッセージ変換機能２４４を用いて、受信したメッセージを全I/Oモジュールに対するブロードキャスト送信に変換した後、I/Oインタフェース２１８を通じて、各I/Oモジュールに接続された制御対象機器に変換後のメッセージをブロードキャスト送信する(ステップ５０８、ステップ５１０)。
【００６９】
解析した結果、PC１００が送信したメッセージのADDRESSフィールド７２０の値が0x01〜0xDFの場合、通常モードと同様の処理を行う必要があると判断し、通常モードと同様の処理を行う(ステップ５２０、ステップ５２２)。即ち、ADDRESSフィールド７２０に指定されたアドレスを持つ制御対象機器に対してメッセージ送信を行う（ユニキャスト送信）。
【００７０】
解析した結果PC１００が送信したメッセージのADDRESSフィールド７２０の値が0x00〜0xDF以外の値の場合、図３のアドレス変換テーブル２２２の右欄の操作結果で指定された特定のI/Oモジュールに接続された制御対象機器へのブロードキャスト送信する必要があると判断し、メッセージ変換機能２４４を用いて、受信したメッセージをアドレス変換テーブル２２２に示されたI/Oモジュールのアドレスを持つメッセージに変換した後、I/Oインタフェース２１８を通じて、特定のI/Oモジュールに接続された制御対象機器に変換後のメッセージをブロードキャスト送信する(ステップ５３０)。
【００７１】
ブロードキャスト送信した後、ブロードキャスト送信した特定のI/Oモジュール以外のI/Oモジュールに対して、通常モードと同様の処理を行う(ステップ５３２)。例えば、PC１００が送信したメッセージのADDRESSフィールド７２０の値が0xE1であった場合、I/Oモジュール1(１２２)に対しては、I/Oモジュール1(１２２)に接続された制御対象機器にブロードキャスト送信するようにメッセージを変更し、以下に述べるように、ブロードキャスト送信の対象と同じアドレスを有する接続対象機器の存在の有無をチェックするため、I/Oモジュール1(１２２)以外のI/Oモジュールに対しては、通常モードと同様、アドレス0xE1の接続対象機器に対してメッセージを送信する。
【００７２】
ステップ５３２の処理は、アドレス変換テーブル２２２では特定のI/Oモジュールへのブロードキャスト送信に割り当てられているアドレスと同じユニキャストアドレスを持った制御対象機器が存在することを検知するために実行する。
【００７３】
ステップ５３２の処理の結果、ブロードキャストの対象であるアドレスと同じ0xE1をアドレスとして割り付けられた制御対象機器から応答があった場合、PC１００に対して、アドレスの割り付けに異常があることを送信する(ステップ５３４、ステップ５３６)。即ち、ブロードキャストの対象であるアドレス”0xE1”とは異なるアドレスを応答があった機器に対して割り付けるべきであることをPC１００に通知する。
【００７４】
尚、ステップ５３２〜ステップ５３６の処理は、マルチキャストモードとして動作するアドレスを受信する毎に実行する他、マルチキャストモードとして動作するアドレスを最初に受信した場合に実行しても良い。また、CPUモジュール１２０にタイマやカウンタを搭載することにより、定期的にマルチキャストモードに割り当たてたアドレスを持った制御対象機器がないことを確認してもよい。
【００７５】
また、PC１００がメッセージを送信する他、記憶装置２２０に保存してあるシーケンスプログラム２２６、ならびに各I/OモジュールがCPUモジュール１２０に送信するデータを利用して、CPUモジュール１２０がアドレス変換テーブル２２２を参照して、特定のI/Oモジュールに対してブロードキャスト送信を行ってもよい。
【００７６】
以上が、マルチキャストモードにおけるPLC１１０の基本動作シーケンスである。
【００７７】
図６は、記憶装置２２０にアドレス変換テーブル２２２を設定する場合、ならびに記憶装置２２０に保存してあるアドレス変換テーブル２２２を更新する場合のシーケンスの一例を示した図である。
【００７８】
PC１００は、アドレス変換テーブル２２２を記憶装置２２０に設定する場合、ならびに更新する場合、アドレス変換テーブル設定/更新メッセージをPLC１１０に送信する(ステップ６００)。
【００７９】
PLC１１０はメッセージを受信すると、メッセージ解析機能２４２を用いて、受信したメッセージを確認し、PC１００がアドレス変換テーブル設定/更新メッセージを送信したことを認識する(ステップ６１０)。
【００８０】
アドレス変換テーブル設定/更新メッセージを受信すると、各I/Oモジュールに接続された制御対象機器がPC１００やPLC１１０が送信したメッセージに対する処理を行っていないことを、各制御対象機器のステータスをチェックすることによって、確認する(ステップ６１２)。PC１００やPLC１１０が送信したメッセージに対する処理を行っている途中で、アドレス変換テーブル２２２を設定/更新すると、アドレスの整合性が取れない恐れがある。
【００８１】
そのため、上記の処理中の有無を確認した結果、処理を行っている場合、PC１００に対して、アドレス管理テーブル２２２の設定/更新することが出来ない旨を通知する設定不可通知を応答として送信する(ステップ６１４，ステップ６２８)。
【００８２】
上記の処理中の有無を確認した結果、処理を行っていない場合、アドレス管理テーブル２２２の設定/更新を行うことが出来る旨を通知する設定可能通知をPC１００に送信する(ステップ６１６)。
【００８３】
設定可能通知を受信したPC１００は、PLC１１０に設定/更新するアドレス変換テーブル２２２を作成し、PLC１１０に変換テーブル情報２２４と共にメッセージとして送信する(ステップ６１８、ステップ６２０)。尚、アドレス変換テーブル２２２はステップ６００の前に作成しても良い。
【００８４】
PLC１１０はメッセージを受信すると、メッセージ解析機能２４２を用いて、受信したメッセージを確認し、PC１００が、アドレス変換テーブル２２２、ならびに変換テーブル情報２２４を送信したことを認識する(ステップ６２２)。
【００８５】
アドレス変換テーブル２２２、ならびに変換テーブル情報２２４を受信すると、PLC１１０は、アドレス変換テーブル２２２、ならびに変換テーブル情報２２４の設定、もしくは更新を行う(ステップ６２４)。
【００８６】
設定、もしくは更新が終了すると、PC１００に対して、完了通知を送信する(ステップ６２６)。
【００８７】
以上が記憶装置２２０にアドレス変換テーブル２２２を設定する場合、ならびに記憶装置２２０に保存してあるアドレス変換テーブル２２２を更新する場合のシーケンスである。
(第2の実施形態)
図８は、本発明の第２の実施形態における機器制御システムの一例を示した図である。以下、第１の実施形態との差異を中心に説明する。
【００８８】
第２の実施形態におけるCPUモジュール８００は、モジュールハードウェア８１０、記憶装置２２０，OS２３０、機器制御アプリケーション２４０を含んで構成される。
【００８９】
第１の実施形態におけるCPUモジュール１２０と比較して、第２の実施形態のCPUモジュール８００は、モジュールハードウェア８１０にスイッチ８１９を含んでいる点が異なる。
【００９０】
尚、CPUモジュール８００内の他の構成要素については、第1の実施形態と同一であるため、各構成要素の説明は省略する。
【００９１】
スイッチ８１９は、通常モードとマルチキャストモードを切り替えるために使用するスイッチである。
【００９２】
第1の実施形態では、アドレス変換テーブル２２２をPC１００が動的に設定・変更する機能を搭載しているが、この機能をPLC１１０に搭載した場合、記憶装置２２０に保存してあるシーケンスプログラム２２６が複雑になってしまうという問題点が生じる恐れがある。
【００９３】
そこで、PLC１１０の出荷時に、予めアドレス変換テーブル２２２を記憶装置２２０に搭載し、スイッチ８１９をマルチキャストモードに設定すると、予め搭載したアドレス変換テーブル２２２に基づいて、PLC１１０が動作を実行する。尚、CPUモジュール８００を搭載したPLC１１０のマルチキャストモードでの動作はステップ５００〜ステップ５３４と同様であるため、説明は省略する。
本実施例では、各I/Oモジュールに対応した外部スイッチをPLC１１０に設け、この外部スイッチを切り替えることで、各I/Oモジュールの動作をマルチキャストモードあるいはユニキャストモードに切り替える。
【００９４】
予めアドレス変換テーブル２２２を記憶装置２２０に搭載し、スイッチ８１９で切り替えることにより、シーケンスプログラム２２６の複雑さを軽減することが可能となる。
【００９５】
以上、実施形態を具体的に説明したが、上記開示に限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００９６】
１００・・・PC
１１０・・・PLC(プログラマブルロジックコントローラ)
１１２・・・バス
１２０・・・CPUモジュール
１２２・・・I/Oモジュール1
１２４・・・I/Oモジュール2
１２６・・・I/OモジュールN
１３０・・・インバータ
１３２・・・サーボモータ
１３４・・・圧縮機
２１０・・・モジュールハードウェア
２１２・・・CPU
２１４・・・RAM
２１６・・・通信インタフェース
２１８・・・I/Oインタフェース
２２０・・・記憶装置
２２２・・・アドレス変換テーブル
２２４・・・変換テーブル情報
２２６・・・シーケンスプログラム
２３０・・・OS
２４０・・・機器制御アプリケーション
２４２・・・メッセージ解析機能
２４４・・・メッセージ変換機能
２５０・・・CPU
２５２・・・I/Oインタフェース
２５４・・・入出力データバッファ
２５６・・・入力部
２５８・・・出力部
８１９・・・スイッチ。
【図１】
0005308418.tif 000002
【図２】
0005308418.tif 000003
【図３】
0005308418.tif 000004
【図４】
0005308418.tif 000005
【図５】
0005308418.tif 000006
【図６】
0005308418.tif 000007
【図７】
0005308418.tif 000008
【図８】
0005308418.tif 000009