説明

プログラマブルロジックコントローラ

【課題】
衝突検知・回避する仕組みが搭載されていないシリアル通信プロトコルでは、複数のスレーブ機器に対して同一の要求を送信する場合、一旦、スレーブ機器に対して要求を送信したマスタ機器は、要求を受信したスレーブ機器からの応答を受信するまで、別のスレーブ機器に要求を送信することができない。
【解決手段】
本発明は、PCが送信するメッセージに含まれるアドレスとI/Oモジュールに対する処理方法の対応付けを行うアドレス変換テーブルにより、一回の要求を送信するだけで、複数のI/Oモジュールに接続された制御機器に対して、要求を送信することが可能となり、要求の送信に必要な時間を短縮することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックコントローラ(PLC)において、プログラマブルロジックコントローラに接続されるI/Oモジュールへのデータ転送方式に関する。
【背景技術】
【0002】
プログラマブルロジックコントローラ(以下、PLCと呼ぶ)とは、シーケンスプログラムを実行し、接続された制御機器をシーケンス制御する機器である。このようなPLCにおいて、CPUモジュール内蔵のPLC本体にはバスを介して複数のI/Oモジュールが接続されている。PLC本体は内蔵するCPUモジュールによりシーケンスプログラムを実行することで、例えばI/Oモジュールに対してデータ送信要求を行い、I/Oモジュールは要求に対する応答として入力デバイスが取得したデータをCPUモジュールに送信する。
【0003】
図1に示すPLC110において、バス112にはCPUモジュール120と、複数のI/Oモジュール122、124、126が接続されている。I/Oモジュール122、124、126は、インバータ130、サーボモータ132、圧縮機134といった制御対象機器が接続される。
【0004】
I/Oモジュール122、124,126と制御対象機器であるインバータ130、サーボモータ132、圧縮機134の間はシリアル通信プロトコルを利用してデータの送受信が行われる。特にFA(Factory Automation)ネットワークにおけるシリアル通信プロトコルの規格として、Modbus(登録商標)やCC-Link(登録商標)等がある。
【0005】
ModbusやCC-Linkといったシリアル通信プロトコルは、マスタ機器がスレーブ機器毎に要求を送信するユニキャスト通信と、ネットワーク上に存在する全てのスレーブ機器に対して要求を送信するブロードキャスト通信をサポートしている。そのため、ネットワーク上に存在する全てのスレーブ機器に対して同一の要求を送信する場合にはブロードキャスト通信は有効であるが、それ以外はユニキャスト通信を利用してデータ通信を行う必要がある。
【0006】
更に、シリアル通信プロトコルには衝突を検知・回避する仕組みが搭載されていない。そのため、複数のスレーブ機器に対して同一の要求を送信する場合、一旦、スレーブ機器に対して要求を送信したマスタ機器は、要求を受信したスレーブ機器からの応答を受信するまで、別のスレーブ機器に要求を送信することができない。特にネットワーク上に処理速度の遅い機器が存在する場合には、多大な時間を要するといった問題点がある。
【0007】
上記の問題点を解決する手段として、優先順位や処理性能に応じてI/Oモジュールに割り当てる局番(アドレス)を割当てる方法(特許文献1参照)や複数のスレーブ機器に対して同一の要求を送信することができるマルチキャスト通信に対応するため、ユニキャスト通信用のアドレス(以下、ユニキャストアドレス)をマルチキャスト通信用のアドレス(以下、マルチキャストアドレス)に変更する方法(特許文献2参照)がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−39740
【特許文献2】特開2007−60197
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、従来技術では、以下のような課題がある。
【0010】
特許文献1を利用した場合、処理速度が速いスレーブ機器から順にマスタ機器は要求を送信することは可能となる。しかし、シリアル通信の場合、通信速度が9,600bps〜13,800bpsと低速であるため、例えば、複数のスレーブ機器に対して同一の要求を送信する場合には、マスタ機器はスレーブ毎に要求を送信する必要があり、複数のスレーブ機器に要求を送信するまでには多大な時間を要するといった問題点がある。
【0011】
複数のスレーブ機器に対して同一の要求を送信することを可能とする技術としてマルチキャスト通信がある。ただし、シリアル通信プロトコルにはマルチキャストアドレスが仕様では定義されていないため、ユニキャストアドレスをマルチキャストアドレスとして利用する必要がある。特許文献2は、ユニキャストアドレスで送信されたデータパケットをマルチキャストアドレスに変更する技術である。しかし、特許文献2はポート番号といったデータパケットに追加した情報を利用して、ユニキャストアドレスからマルチキャストアドレスへの一対一対応の変換を行っているため、シリアル通信のような低速な通信の場合には、新たなデータの付加により送受信可能なデータ量の減少が問題になる恐れがある。
【0012】
本発明の目的は、PLC(Programable Logic Controller)に接続されたI/Oモジュール単位でブロードキャスト通信を行うことを可能にすることである。
【課題を解決するための手段】
【0013】
本明細書において開示される代表的なPLCは、CPUモジュールを内蔵しており、CPUモジュールはバスを介して複数のI/Oモジュールと接続される。複数のI/Oモジュールはバスを介してCPUモジュールと接続される。CPUモジュールは、モジュールハードウェア、記憶装置、OS、機器制御アプリケーションで構成される。
【0014】
モジュールハードウェアはCPUモジュールのシーケンスプログラムを動作させるために必要なハードウェアであり、CPU、RAM、PCと通信するための通信インタフェース、各I/Oモジュールと通信するためのI/Oインタフェース等を含んで構成される。
【0015】
記憶装置にはCPUモジュールの動作に必要となるシーケンスプログラムやアドレス変換テーブルや変換テーブル情報を保存する。
【0016】
アドレス変換テーブルとは、PCが送信するメッセージに含まれるアドレスとI/Oモジュールに対する処理方法との対応方法を明記したテーブルである。例えば、PCからの送信メッセージに含まれるアドレスが ”0xE1”の場合、I/Oモジュール1に接続された複数の制御機器に対するブロードキャスト送信といったような対応方法が明記されている。即ち、本発明では、アドレスに、ブロードキャストを指示する特定のアドレスを設定することにより、ブロードキャストのための新たなデータの付加が不要である。
【0017】
変換テーブル情報とは、アドレス変換テーブルの管理に関する情報であり、アドレス変換テーブルが不揮発性メモリに搭載されているか否かを示すフラグや、アドレス変換テーブルのバージョン、更新や設定を行った日付などが含まれる。
【0018】
機器制御アプリケーションは、記憶装置に保存してあるシーケンスプログラムを用いて、I/Oインタフェースを介して制御対象機器の制御を行うアプリケーションであり、通信インタフェースを介してPCから受信したメッセージ、ならびにI/Oインタフェースを介して各I/Oモジュールから受信したメッセージを解析するメッセージ解析機能や、PCから受信したメッセージの解析結果、ならびに記憶装置に保存してあるアドレス変換テーブルを参照し、PCからの受信メッセージを変換するメッセージ変換機能を有する。
【0019】
上記態様によれば、I/Oモジュール単位でのブロードキャスト送信が可能となるため、PCが複数のI/Oモジュールに接続された制御機器に対して、同一の要求を送信する場合、要求を複数回送信することなく、一回の要求の送信だけで、複数のI/Oモジュールに接続された制御機器に対して、要求を送信することが可能となる。
【発明の効果】
【0020】
PLCに対して、一回の要求を送信するのみで、複数のI/Oモジュールに接続された制御機器に対して、要求を送信することが可能となり、要求の送信に必要な時間を短縮することができる。
【図面の簡単な説明】
【0021】
【図1】機器制御システムの構成を例示する図。
【図2】第1の実施形態におけるCPUモジュール、I/Oモジュールの構成を例示する図。
【図3】アドレス変換テーブルの構成を例示する図。
【図4】PLCの電源投入時のシーケンスを例示する図。
【図5】マルチキャストモードにおけるPLCの基本動作シーケンスを例示する図。
【図6】アドレス変換テーブルの設定・更新における基本動作シーケンスを例示する図。
【図7】シリアル通信プロトコルのメッセージフレームを例示する図。
【図8】第2の実施形態におけるCPUモジュール、I/Oモジュールの構成を例示する図。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、本発明の実施形態を説明する図において、同一部には同一の符号を付し、その繰り返しの説明は、省略することにする。
【0023】
(第1の実施形態)
図1は、本発明の第1の実施形態における機器制御システムの一例を示した図である。
【0024】
機器制御システムとは、PC100とPLC(プログラマブルロジックコントローラ)110とインバータ130、サーボモータ132、圧縮機134といった制御対象機器を含んで構成されるシステムであり、例えば、FAネットワークシステムなどが該当する。
【0025】
PLC110とインバータ120,サーボモータ132,圧縮機134といった制御対象機器間のデータ送受信にはシリアル通信プロトコルが利用される。特に、FAネットワークにおけるシリアル通信プロトコルの規格として、ModbusやCC-Link等がある。
【0026】
図7はシリアル通信プロトコルの規格の一つであるModbusのメッセージフレームを示した図である。
【0027】
Modbusのメッセージフレームは、STARTフィールド710、ADDRESSフィールド720、FUNCTIONフィールド730,DATAフィールド740,LRCフィールド750,ENDフィールド760から構成される。尚、ModbusのメッセージフレームにはASCIIモードとRTUモードの2種類のメッセージフレームがあるが、本説明では、ASCIIモードの場合を説明する。
【0028】
STARTフィールド710は、メッセージフレームの開始を示すフィールドであり、”0x3A”が設定される。
【0029】
ADDRESSフィールド720は、メッセージフレームを送信するスレーブ機器のアドレスを設定するフィールドである。Modbusの場合、”0x00”がブロードキャストアドレスであり、それ以外の値はユニキャストアドレスである。
【0030】
FUNCTIONフィールド730は、ファンクションコードを設定するフィールドである。ファンクションコードとは、マスタ機器がスレーブ機器に対して要求を送信する際に、要求内容を示すコードである。
【0031】
DATAフィールド740は、FUNCTIONフィールド730に設定されたファンクションコードに沿ったデータをマスタ機器、あるいはスレーブ機器が設定するフィールドである。
【0032】
LRCフィールド750は、LRC(Longitudinal Redundancy Check)方式に基づいたエラーチェックコードを設定するフィールドである。
【0033】
ENDフィールド760は、メッセージフレームの終了を示すフィールドであり、”0x0D,0x0A”が設定される。
【0034】
以上がModbusのメッセージフレームである。尚、本発明は、マスタ機器がスレーブ機器に対して、ブロードキャスト通信、ならびにユニキャスト通信を行う通信プロトコルであれば、適用することが可能である。また、以下の説明では、Modbusをシリアル通信プロトコルとして説明をする。
【0035】
PLC110は、CPUモジュール120と複数のI/Oモジュール122,124,126を含んで構成される。CPUモジュール120と複数のI/Oモジュール122、124,126はバス112を介して接続される。I/Oモジュール122,124,126には、インバータ130,サーボモータ132,圧縮機134といった制御対象機器が接続される。尚、CPUモジュール120やI/Oモジュール122の他に、電源モジュールやカウンタモジュールといった他の機能を持つモジュールを、バス112を介して接続してもよい。
【0036】
CPUモジュール120は、格納されたシーケンスプログラムを実行し、各I/Oモジュールを介して接続された制御機器をシーケンス制御するモジュールである。
【0037】
図2はCPUモジュール120とI/Oモジュールの構成の一例を示した図である。
【0038】
複数の制御対象機器は、ユーザが決める機器の管理目的や利用目的に応じて、いくつかのグループに分けられ、1つのI/Oモジュールは、そのグループ内の複数の制御対象機器の入出力制御や管理を行う。複数の制御対象機器のグループ化の具体例として、インターフェイスが同じものをグループ化する、制御対象機器の使用頻度に応じて負荷分散のために制御対象機器をグループ化する、などがある。 従来の「通常モード」では、各制御対象機器にメッセージを送信するユニキャストと、全部の制御対象機器にメッセージを送信するモードを含む。一方、本実施例では、複数の制御機器からなる上記の1つのグループ、即ち、全部の制御対象機器の部分集合の単位で入出力制御を行うI/Oモジュールを介して、グループ内の複数の制御機器に対してブロードキャスト送信を行う。以下では、グループ内の複数の制御機器に対するメッセージ送信を、ユーザの要求に応じてメッセージ送信を指示するPC100から見た場合は「マルチキャスト」と呼び、I/Oモジュールから見た場合を「ブロードキャスト」と呼ぶ。
【0039】
CPUモジュール120は、モジュールハードウェア210、記憶装置220,OS230、機器制御アプリケーション240を含んで構成される。
【0040】
モジュールハードウェア210はCPUモジュール120のシーケンスプログラム226を動作させるために必要なハードウェアであり、CPU212、RAM214、通信インタフェース216、I/Oインタフェース218等を含んで構成される。
【0041】
通信インタフェース216は、PC100とデータ通信を行うためのインタフェースであり、各I/Oモジュールと制御対象機器とを接続するシリアルインタフェースでも、無線インタフェースでも、イーサネット(登録商標)でも構わない。尚、本説明では、通信インタフェース216は各I/Oモジュールと制御対象機器とを接続するインタフェースと同様、シリアル通信インタフェースとする。
【0042】
I/Oインタフェース218は、CPUモジュール120と各I/Oモジュールを接続するインタフェースである。
【0043】
記憶装置220はCPUモジュール120の動作に必要なデータ、例えばシーケンスプログラム226やアドレス変換テーブル222や変換テーブル情報224を保存し、例えば、不揮発性の半導体メモリや磁気記憶媒体などの媒体で構成される。
【0044】
図3はアドレス変換テーブル222の詳細を示した図である。
【0045】
アドレス変換テーブル222は、PC100が送信するメッセージのADDRESSフィールド720に設定されている値と、各I/Oモジュールへのメッセージの送信方法を対応付けた表である。
【0046】
例えば、PC100が送信するメッセージのADDRESSフィールド720に”0x00”が設定されている場合、全I/Oモジュールに接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール120は動作する(310)。”0x01”(311)及び”0x02”(312)は、通常モードとして動作する、即ち、ユニキャスト送信として、特定の制御対象機器にメッセージ送信する場合の機器のアドレスである。また、PC100が送信するメッセージのADDRESSフィールド720に”0xE1”が設定されている場合、I/Oモジュール1(122)に接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール120は動作する(320)。更に、PC100が送信するメッセージのADDRESSフィールド720に”0xEA”が設定されている場合、I/Oモジュール1(122)とI/Oモジュール2(124)に接続されている制御対象機器に対するブロードキャスト送信としてCPUモジュール120は動作する(330)。このように、アドレス変換テーブル224より、特定のユニキャストアドレスを特定のI/Oモジュールに接続された制御対象機器に対するブロードキャスト送信の方法、さらにはアドレスに変更することが可能となる。即ち、図3のテーブルを用いることにより、制御対象機器に対応したアドレスを用いてユニキャスト送信が行え、それ以外のアドレスを指定することでI/Oモジュール単位でのブロードキャスト送信が行える。
【0047】
変換テーブル情報224は、アドレス変換テーブル222の管理に関する情報であり、例えば、アドレス変換テーブル222が記憶装置220に保存されていることを示すフラグやアドレス変換テーブル222を設定もしくは更新した日付、アドレス変換テーブル222のバージョン等を含んでいる。
【0048】
OS230は、CPUモジュール120の動作を統括的に制御する基本ソフトウェアである。
【0049】
機器制御アプリケーション240は、記憶装置220に保存してあるシーケンスプログラム226を用いて、I/Oインタフェース218を介して制御対象機器の制御を行うアプリケーションであり、通信インタフェース216を介してPC100から受信したメッセージ、ならびにI/Oインタフェース218を介して各I/Oモジュールから受信したメッセージを解析するメッセージ解析機能242や、PC100から受信したメッセージの解析結果、ならびに記憶装置に保存してあるアドレス変換テーブル222を参照し、PC100からの受信メッセージを変換するメッセージ変換機能244を有する。即ち、図3のアドレス変換テーブル222の右欄の操作結果に基づいてPC100からの受信メッセージが、具体的なI/Oモジュール又は制御対象機器のアドレスを含むメッセージに変換される。そのために、機器制御アプリケーション240は、各I/Oモジュール及びその制御対象である各機器のアドレスを管理している。
【0050】
以上がCPUモジュール120の構成の一例である。
【0051】
次に図2に示すI/Oモジュール122の内部構成の一例を説明する。
【0052】
I/Oモジュール122は、CPU250、I/Oインタフェース252、入出力データバッファ254、入力部256、出力部258を含んで構成される。
【0053】
I/Oインタフェース252は、CPUモジュール120と接続するインタフェースである。
【0054】
入出力バッファ254は、I/Oインタフェース252を介して送受信するメッセージを格納する領域である。
【0055】
出力部258は、I/Oモジュール122に接続された制御対象機器にデータを送信するモジュールである。
【0056】
入力部256は、I/Oモジュール122に接続された制御対象機器が送信するデータを受信するモジュールである。
【0057】
以上がI/Oモジュール122の内部構成の一例である。
【0058】
図4はPLC110の電源投入時の処理シーケンスの一例を示した図である。
【0059】
電源投入時、PLC110は特定のI/Oモジュールに接続された制御対象機器にブロードキャスト通信を行わないユニキャスト通信である通常モードで動作する(ステップ400)。
【0060】
PLC110は通信インタフェース216を介して、PC100が送信するメッセージを受信すると、メッセージ解析機能242を用いて、受信したメッセージの解析を行う(ステップ402、ステップ404)。
【0061】
解析した結果、PC100が送信したメッセージがモード変換を要求するメッセージではなかった場合、通常モード、即ち、ユニキャスト送信で動作する(ステップ406、ステップ416)。
【0062】
解析した結果、PC100が送信したメッセージがモード変換を要求するメッセージであった場合、変換テーブル情報224を参照し、記憶装置220にアドレス変換テーブル222が設定されていることを確認する(ステップ408、ステップ410)。
【0063】
確認の結果、アドレス変換テーブル222が設定されている場合、モードを、通常モードから、特定のI/Oモジュールに接続された制御対象機器にブロードキャスト通信を行うマルチキャストモードに変更し、変換テーブル情報224の値を応答として、PC100に送信する(ステップ412、ステップ414)。
【0064】
確認の結果、アドレス変換テーブル222が設定されていない場合、有効なアドレス変換テーブルが存在していないことを応答として、PC100に送信する(ステップ418)。
【0065】
以上が、PLC110の電源投入時のシーケンスである。
【0066】
図5はPLC110がマルチキャストモードで動作している場合の基本動作シーケンスの一例を示した図である。
【0067】
PLC110は通信インタフェース216を介して、PC100が送信するメッセージを受信すると、メッセージ解析機能242を用いて、受信したメッセージの解析し、アドレス変換テーブル222を参照する(ステップ502、ステップ504、ステップ506)。
【0068】
解析した結果、PC100が送信したメッセージのADDRESSフィールド720の値が0x00の場合、全I/Oモジュールに接続された制御対象機器に対するブロードキャスト送信を行う必要があると判断し、メッセージ変換機能244を用いて、受信したメッセージを全I/Oモジュールに対するブロードキャスト送信に変換した後、I/Oインタフェース218を通じて、各I/Oモジュールに接続された制御対象機器に変換後のメッセージをブロードキャスト送信する(ステップ508、ステップ510)。
【0069】
解析した結果、PC100が送信したメッセージのADDRESSフィールド720の値が0x01〜0xDFの場合、通常モードと同様の処理を行う必要があると判断し、通常モードと同様の処理を行う(ステップ520、ステップ522)。即ち、ADDRESSフィールド720に指定されたアドレスを持つ制御対象機器に対してメッセージ送信を行う(ユニキャスト送信)。
【0070】
解析した結果PC100が送信したメッセージのADDRESSフィールド720の値が0x00〜0xDF以外の値の場合、図3のアドレス変換テーブル222の右欄の操作結果で指定された特定のI/Oモジュールに接続された制御対象機器へのブロードキャスト送信する必要があると判断し、メッセージ変換機能244を用いて、受信したメッセージをアドレス変換テーブル222に示されたI/Oモジュールのアドレスを持つメッセージに変換した後、I/Oインタフェース218を通じて、特定のI/Oモジュールに接続された制御対象機器に変換後のメッセージをブロードキャスト送信する(ステップ530)。
【0071】
ブロードキャスト送信した後、ブロードキャスト送信した特定のI/Oモジュール以外のI/Oモジュールに対して、通常モードと同様の処理を行う(ステップ532)。例えば、PC100が送信したメッセージのADDRESSフィールド720の値が0xE1であった場合、I/Oモジュール1(122)に対しては、I/Oモジュール1(122)に接続された制御対象機器にブロードキャスト送信するようにメッセージを変更し、以下に述べるように、ブロードキャスト送信の対象と同じアドレスを有する接続対象機器の存在の有無をチェックするため、I/Oモジュール1(122)以外のI/Oモジュールに対しては、通常モードと同様、アドレス0xE1の接続対象機器に対してメッセージを送信する。
【0072】
ステップ532の処理は、アドレス変換テーブル222では特定のI/Oモジュールへのブロードキャスト送信に割り当てられているアドレスと同じユニキャストアドレスを持った制御対象機器が存在することを検知するために実行する。
【0073】
ステップ532の処理の結果、ブロードキャストの対象であるアドレスと同じ0xE1をアドレスとして割り付けられた制御対象機器から応答があった場合、PC100に対して、アドレスの割り付けに異常があることを送信する(ステップ534、ステップ536)。即ち、ブロードキャストの対象であるアドレス”0xE1”とは異なるアドレスを応答があった機器に対して割り付けるべきであることをPC100に通知する。
【0074】
尚、ステップ532〜ステップ536の処理は、マルチキャストモードとして動作するアドレスを受信する毎に実行する他、マルチキャストモードとして動作するアドレスを最初に受信した場合に実行しても良い。また、CPUモジュール120にタイマやカウンタを搭載することにより、定期的にマルチキャストモードに割り当たてたアドレスを持った制御対象機器がないことを確認してもよい。
【0075】
また、PC100がメッセージを送信する他、記憶装置220に保存してあるシーケンスプログラム226、ならびに各I/OモジュールがCPUモジュール120に送信するデータを利用して、CPUモジュール120がアドレス変換テーブル222を参照して、特定のI/Oモジュールに対してブロードキャスト送信を行ってもよい。
【0076】
以上が、マルチキャストモードにおけるPLC110の基本動作シーケンスである。
【0077】
図6は、記憶装置220にアドレス変換テーブル222を設定する場合、ならびに記憶装置220に保存してあるアドレス変換テーブル222を更新する場合のシーケンスの一例を示した図である。
【0078】
PC100は、アドレス変換テーブル222を記憶装置220に設定する場合、ならびに更新する場合、アドレス変換テーブル設定/更新メッセージをPLC110に送信する(ステップ600)。
【0079】
PLC110はメッセージを受信すると、メッセージ解析機能242を用いて、受信したメッセージを確認し、PC100がアドレス変換テーブル設定/更新メッセージを送信したことを認識する(ステップ610)。
【0080】
アドレス変換テーブル設定/更新メッセージを受信すると、各I/Oモジュールに接続された制御対象機器がPC100やPLC110が送信したメッセージに対する処理を行っていないことを、各制御対象機器のステータスをチェックすることによって、確認する(ステップ612)。PC100やPLC110が送信したメッセージに対する処理を行っている途中で、アドレス変換テーブル222を設定/更新すると、アドレスの整合性が取れない恐れがある。
【0081】
そのため、上記の処理中の有無を確認した結果、処理を行っている場合、PC100に対して、アドレス管理テーブル222の設定/更新することが出来ない旨を通知する設定不可通知を応答として送信する(ステップ614,ステップ628)。
【0082】
上記の処理中の有無を確認した結果、処理を行っていない場合、アドレス管理テーブル222の設定/更新を行うことが出来る旨を通知する設定可能通知をPC100に送信する(ステップ616)。
【0083】
設定可能通知を受信したPC100は、PLC110に設定/更新するアドレス変換テーブル222を作成し、PLC110に変換テーブル情報224と共にメッセージとして送信する(ステップ618、ステップ620)。尚、アドレス変換テーブル222はステップ600の前に作成しても良い。
【0084】
PLC110はメッセージを受信すると、メッセージ解析機能242を用いて、受信したメッセージを確認し、PC100が、アドレス変換テーブル222、ならびに変換テーブル情報224を送信したことを認識する(ステップ622)。
【0085】
アドレス変換テーブル222、ならびに変換テーブル情報224を受信すると、PLC110は、アドレス変換テーブル222、ならびに変換テーブル情報224の設定、もしくは更新を行う(ステップ624)。
【0086】
設定、もしくは更新が終了すると、PC100に対して、完了通知を送信する(ステップ626)。
【0087】
以上が記憶装置220にアドレス変換テーブル222を設定する場合、ならびに記憶装置220に保存してあるアドレス変換テーブル222を更新する場合のシーケンスである。
(第2の実施形態)
図8は、本発明の第2の実施形態における機器制御システムの一例を示した図である。以下、第1の実施形態との差異を中心に説明する。
【0088】
第2の実施形態におけるCPUモジュール800は、モジュールハードウェア810、記憶装置220,OS230、機器制御アプリケーション240を含んで構成される。
【0089】
第1の実施形態におけるCPUモジュール120と比較して、第2の実施形態のCPUモジュール800は、モジュールハードウェア810にスイッチ819を含んでいる点が異なる。
【0090】
尚、CPUモジュール800内の他の構成要素については、第1の実施形態と同一であるため、各構成要素の説明は省略する。
【0091】
スイッチ819は、通常モードとマルチキャストモードを切り替えるために使用するスイッチである。
【0092】
第1の実施形態では、アドレス変換テーブル222をPC100が動的に設定・変更する機能を搭載しているが、この機能をPLC110に搭載した場合、記憶装置220に保存してあるシーケンスプログラム226が複雑になってしまうという問題点が生じる恐れがある。
【0093】
そこで、PLC110の出荷時に、予めアドレス変換テーブル222を記憶装置220に搭載し、スイッチ819をマルチキャストモードに設定すると、予め搭載したアドレス変換テーブル222に基づいて、PLC110が動作を実行する。尚、CPUモジュール800を搭載したPLC110のマルチキャストモードでの動作はステップ500〜ステップ534と同様であるため、説明は省略する。
本実施例では、各I/Oモジュールに対応した外部スイッチをPLC110に設け、この外部スイッチを切り替えることで、各I/Oモジュールの動作をマルチキャストモードあるいはユニキャストモードに切り替える。
【0094】
予めアドレス変換テーブル222を記憶装置220に搭載し、スイッチ819で切り替えることにより、シーケンスプログラム226の複雑さを軽減することが可能となる。
【0095】
以上、実施形態を具体的に説明したが、上記開示に限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【0096】
100・・・PC
110・・・PLC(プログラマブルロジックコントローラ)
112・・・バス
120・・・CPUモジュール
122・・・I/Oモジュール1
124・・・I/Oモジュール2
126・・・I/OモジュールN
130・・・インバータ
132・・・サーボモータ
134・・・圧縮機
210・・・モジュールハードウェア
212・・・CPU
214・・・RAM
216・・・通信インタフェース
218・・・I/Oインタフェース
220・・・記憶装置
222・・・アドレス変換テーブル
224・・・変換テーブル情報
226・・・シーケンスプログラム
230・・・OS
240・・・機器制御アプリケーション
242・・・メッセージ解析機能
244・・・メッセージ変換機能
250・・・CPU
252・・・I/Oインタフェース
254・・・入出力データバッファ
256・・・入力部
258・・・出力部
819・・・スイッチ。

【特許請求の範囲】
【請求項1】
計算機に接続されたプログラマブルロジックコントローラは、
それぞれに少なくと1つの制御対象機器が接続され、グループ内の複数の前記制御対象機器の入出力制御や管理を行う、少なくとも1つのモジュール、および、アドレスと前記モジュールへのメッセージの送信方法とを対応付けたアドレス変換テーブルを保持した記憶装置を有し、
前記アドレス変換テーブルに基づいて、
前記計算機からのメッセージに含まれるアドレスが特定のアドレスの場合、前記特定のアドレスに対応した前記送信方法に含まれる少なくとも1つの前記モジュールそれぞれの配下の少なくとも1つの制御対象機器に対して前記計算機からのメッセージをブロードキャスト送信し、
前記計算機からのメッセージに含まれるアドレスが制御対象機器のアドレスの場合、当該制御対象機器に前記計算機からのメッセージをユニキャスト送信する
ことを特徴とするプログラマブルロジックコントローラ。
【請求項2】
前記計算機からのメッセージに含まれるアドレスが特定のアドレスの場合、前記特定のアドレスを有する制御対象機器から応答があったときは、前記応答があった前記制御対象機器に割り付けられたアドレスが異常であることを前記計算機に通知する
ことを特徴とする請求項1記載のプログラマブルロジックコントローラ。
【請求項3】
それぞれが複数の機器に接続される複数のモジュールと、シーケンスプログラムに従い前記複数のモジュールを制御するCPUモジュールとを有するプログラマブルロジックコントローラにおいて、
前記プログラマブルロジックコントローラに入力されたメッセージと、特定のモジュールに接続された機器に対する前記CPUモジュールの処理方法とを対応させるテーブルに基づいて、前記特定のモジュールに接続された機器に対して、データの送信を制御する
ことを特徴とするプログラマブルロジックコントローラ。
【請求項4】
前記テーブルの保存及び更新に関する管理情報を持つ
ことを特徴とする請求項3に記載のプログラマブルロジックコントローラ。
【請求項5】
前記入力されたメッセージが所定のメッセージである場合、特定のI/Oモジュールに接続された機器に対してブロードキャスト送信をする
ことを特徴とする請求項3または4に記載のプログラマブルロジックコントローラ。
【請求項6】
前記特定のモジュールに接続された機器に対してブロードキャスト送信をする時に、プログラマブルロジックコントローラに入力されたメッセージを前記特定のモジュール以外に前記プログラマブルロジックコントローラに接続された機器に送信して、前記接続された機器からの応答に応じてアドレス割付の異常を前記プログラマブルロジックコントローラに接続された計算機に通知することを特徴とする請求項3から5のいずれか一に記載のプログラマブルロジックコントローラ。
【請求項7】
前記CPUモジュールに搭載したスイッチの設定により、特定のモジュールに接続された機器に対して、データを送信する機能を選択できる
ことを特徴とする請求項3から6のいずれか一に記載のプログラマブルロジックコントローラ。
【請求項8】
前記スイッチの設定により、前記モジュールの動作をマルチキャストモードあるいはユニキャストモードに切り替える
ことを特徴とする請求項7に記載のプログラマブルロジックコントローラ。
【請求項9】
前記スイッチの設定に伴う異常を検知して前記プログラマブルロジックコントローラに接続された計算機に通知する
ことを特徴とする請求項7または8に記載のプログラマブルロジックコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−60360(P2012−60360A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−200855(P2010−200855)
【出願日】平成22年9月8日(2010.9.8)
【出願人】(502129933)株式会社日立産機システム (1,140)
【Fターム(参考)】