イベント駆動型プログラミングを用いて作成されたラダープログラムをそれぞれ実行する複数のプログラマブルコントローラがネットワークを介して接続されたシステムに用いられるプログラマブルコントローラであって、前記ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行することにより、前記ネットワークを介して接続された第2のプログラマブルコントローラが前記指定されたイベント識別子に対応したイベントを検出するように、前記ネットワークを介して前記第2のプログラマブルコントローラへ前記指定されたイベント識別子を含むイベント情報を通知する通知手段を有することを特徴とするプログラマブルコントローラ。前記ネットワークを介して第3のプログラマブルコントローラからイベント識別子を含むイベント情報を受信する受信手段と、前記受信手段により受信されたイベント情報を受信順にイベントキューに保存する保存手段と、をさらに有することを特徴とする請求項1に記載のプログラマブルコントローラ。前記ラダープログラムにおいて記述された専用の検出命令を実行することにより、前記イベントキューに保存されたイベント情報に対応したイベントを検出する検出手段と、前記検出手段により検出されたイベントに応じて、タスクを実行する実行手段と、をさらに有することを特徴とする請求項2に記載のプログラマブルコントローラ。一方、ネットワークに接続された複数のプログラマブルコントローラ間で、イベント駆動型プログラミング処理を実現することがある。データの送受信を目的とした専用の命令を使用し、プログラマブルコントローラ間でデータの送受信を行う。受信側のプログラマブルコントローラは、受信データのイベントを検出し、検出したイベントに応じてタスクを実行する。このようなイベント駆動型プログラミングの実現において、仮に、第1のプログラマブルコントローラに対して、第2のプログラマブルコントローラと第3のプログラマブルコントローラとからほぼ同時にイベントの通知が発生した場合を考える。この場合、第1のプログラマブルコントローラにおいて、先に受信したイベントのデータが後から受信したイベントのデータにより上書きされて破棄されることがある。すなわち、受信側のプログラマブルコントローラにおいて、破棄されたイベントを検出することができないので、複数のイベントを受信したときの動作を保証できない傾向にある。本発明は、上記に鑑みてなされたものであって、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できるプログラマブルコントローラを得ることを目的とする。上述した課題を解決し、目的を達成するために、本発明の1つの側面にかかるプログラマブルコントローラは、イベント駆動型プログラミングを用いて作成されたラダープログラムをそれぞれ実行する複数のプログラマブルコントローラがネットワークを介して接続されたシステムに用いられるプログラマブルコントローラであって、前記ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行することにより、前記ネットワークを介して接続された第2のプログラマブルコントローラが前記指定されたイベント識別子に対応したイベントを検出するように、前記ネットワークを介して前記第2のプログラマブルコントローラへ前記指定されたイベント識別子を含むイベント情報を通知する通知手段を有することを特徴とする。本発明によれば、受信側のプログラマブルコントローラにおいて、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく互いに識別して処理することができる。この結果、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。以下に、本発明にかかるプログラマブルコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。実施の形態.実施の形態にかかるプログラマブルコントローラ100が適用されるシステム300について図1を用いて説明する。図1は、システム300の概略構成を示す図である。システム300は、例えば、複数の機器の制御に用いられる制御システムである。システム300は、複数のプログラマブルコントローラ100-1~100-3、ネットワーク200、及び複数の機器1-1~1-3を備える。複数のプログラマブルコントローラ100-1~100-3は、ネットワーク200を介して接続されている。各プログラマブルコントローラ100は、所定の通信回線を介して、対応する制御対象の機器1に接続されている。各プログラマブルコントローラ100は、イベント駆動型プログラミングを用いて作成されたラダープログラムを実行する。例えば、各プログラマブルコントローラ100は、ネットワーク上の他のプログラマブルコントローラ100へイベントの発生を通知する。また、例えば、受信側の各プログラマブルコントローラ100は、イベントの発生の通知を受けたら、ラダープログラムに従い、イベントに応じたタスクとして、例えば対応する機器1を制御するタスクを実行する。機器1-1は、例えば工場のラインに設置された温度センサであり、工場のラインにおける所定の場所の温度を測定しその測定温度をプログラマブルコントローラ100-1へ入力する。機器1-2は、例えば工場のラインに設置された圧力センサであり、工場のラインにおける所定の場所の圧力を測定しその測定圧力をプログラマブルコントローラ100-2へ入力する。機器1-3は、例えば工場のラインに設置されたランプであり、所定の条件が満たされた際に点灯する。例えば、プログラマブルコントローラ100-1は、機器温度センサ1-1から入力された測定温度を受信して、測定温度が閾値を超えたか否かを判断する。測定温度が閾値を超えたという第1のイベントが発生した場合に、第1のイベントの発生を示す第1のイベント情報をネットワーク200経由でプログラマブルコントローラ100-3へ通知する。また、プログラマブルコントローラ100-2は、機器圧力センサ1-2から入力された測定圧力を受信して、測定圧力が閾値を超えたか否かを判断する。プログラマブルコントローラ100-2は、測定圧力が閾値を超えたという第2のイベントが発生した場合に、第2のイベントの発生を示す第2のイベント情報をネットワーク200経由でプログラマブルコントローラ100-3へ通知する。例えば、プログラマブルコントローラ100-3は、第1のイベント情報をプログラマブルコントローラ100-1から受信し、第2のイベント情報をプログラマブルコントローラ100-2から受信する。そして、プログラマブルコントローラ100-3は、第1のイベントと第2のイベントとの両方が発生したか否かを判断する。すなわち、プログラマブルコントローラ100-3は、第1のイベントが発生するという第1の条件と第2のイベントが発生するという第2の条件との両方が成り立つという複合条件が満たされたか否かを判断する。ここで、仮に、上記のようなイベント駆動型プログラミングの実現において、プログラマブルコントローラ100-3に対して、プログラマブルコントローラ100-1とプログラマブルコントローラ100-2からほぼ同時にイベントの通知が発生した場合を考える。この場合、プログラマブルコントローラ100-3において、内部的な処理の負荷を抑制するために通信データ、すなわち受信した第1のイベント情報と第2のイベント情報との一方が破棄される傾向にある。または、プログラマブルコントローラ100-3において、第1のイベント情報と第2のイベント情報とのうち先に受信したイベントのデータが後から受信したイベントのデータに上書きされ、破壊されることがある。その結果、プログラマブルコントローラ100-3におけるイベントの検出が保証されない可能性がある。例えば、上記の複合条件が満たされたか否かを正しく判断できない可能性がある。それに対して、実施の形態では、例えばプログラマブルコントローラ100-3が以下のような特徴的な構成を有することで、ほぼ同時に受信された複数のイベントを破棄することなく、いずれも処理することができる。例えば、上記の例において、プログラマブルコントローラ100-3は、複合条件が満たされた場合、機器ランプ1-3を制御して、機器ランプ1-3を点灯させる。このように、受信側のプログラマブルコントローラ100-3において、第1のイベント及び第2のイベントの両方を検出できれば、例えば、工場のラインにおける所定の場所の温度及び圧力がともに閾値を超えて高くなったことを工場のラインの作業者へ報知することができる。次に、各プログラマブルコントローラ100-1~100-3の内部構成について図2を用いて説明する。図2は、プログラマブルコントローラ100-1の内部構成を示すブロック図である。以下では、プログラマブルコントローラ100-1の内部構成について例示的に説明するが、他のプログラマブルコントローラ100-2、100-3の内部構成についても同様である。プログラマブルコントローラ100-1は、演算処理部101、記憶領域102、イベントキュー103、及び通信インターフェース104を備える。演算処理部101は、ラダープログラムを処理する。ラダープログラムは、例えばリレーラダーダイヤグラム言語で記述されている。すなわち、ラダープログラムは、例えば、主としてラダーダイヤグラムで記述されたプログラムである。演算処理部101は、検出部101a、通知部101b、保存部101c、検出部101d、及び実行部101eを有する。記憶領域102は、例えば、ラダープログラムが記憶されている不揮発性記憶領域と、演算処理部101により所定のデータを一時的に記憶させておくための作業領域として機能する揮発性記憶領域とを有する。イベントキュー103は、複数のイベント情報を受け付けた順番に保存する。通信インターフェース104は、他のプログラマブルコントローラ100-2、100-3との間で通信を行うためのインターフェースとして機能する。通信インターフェース104は、送信部104a及び受信部104bを有する。次に、プログラマブルコントローラ100-1~100-3の動作について説明する。プログラマブルコントローラ100-1は、図3に示すようなデータ構造を有するイベント情報を、データの送受信を目的とした専用の命令を使用し、他のプログラマブルコントローラ100-2、100-3との間で送受信する。プログラマブルコントローラ100-1は、イベント情報を受信した場合、受信データイベント情報に含まれるイベント識別子を認識することにより、イベントを検出しイベント駆動型プログラミング処理を実現する。すなわち、イベントに対応したタスクを実行する。具体的には、送信側のプログラマブルコントローラ100-1において、図4に示すように、以下の動作が行われる。検出部101aは、プログラマブルコントローラ100-1におけるイベント例えば、上記の第1のイベントの発生を検出する。検出部101aは、検出したイベントの発生の情報を通知部101bへ供給する。通知部101bは、イベントの発生の情報に応じて、そのイベントの発生を他のプログラマブルコントローラ100-3に通知するように、ラダープログラムにおいて記述された専用の通知命令を実行する。専用の通知命令が実行されると、イベント情報に含められるべき通信ヘッダが設定されステップS401、イベント情報に含められるべきコマンド種別が設定されステップS402、イベント情報に含められるべきイベント識別子が設定されるステップS403。イベント識別子の設定は、例えば、複数のプログラマブルコントローラ100-1~100-3の間で一意に決まるように自動的に行われてもよい。例えば、複数のプログラマブルコントローラ100-1~100-3のいずれか1つをNTPNetworkTimeProtocalサーバーとして機能させ、複数のプログラマブルコントローラ100-1~100-3の内部クロックの時刻を同期させても良い。そして、通知部101bは、専用の通知命令を実行した際に、プログラマブルコントローラ100-1の内部クロックから現在時刻を取得するとともに、予め設定されたプログラマブルコントローラ100-1の物理アドレス例えば、MACアドレスを取得し、例えば現在時刻と物理アドレスとを組合せてイベント識別子を決める。あるいは、イベント識別子の設定は、例えば、ユーザ又はラダープログラムから引数として受け取ったものに対して、複数のプログラマブルコントローラ100-1~100-3の間で一意になるように自動的に調整されてもよい。例えば、通知部101bは、受け付けたイベント識別子が他のイベント識別子と重複していないかどうか、通信インターフェース104を介して他のプログラマブルコントローラ100-2、100-3へ問い合わせて、重複していなければそのまま採用し、重複していればさらに枝番を付与することなどにより重複しないように調整しても良い。すなわち、通知部101bは、専用の通知命令を実行することにより、図3に示すようなデータ構造を有するイベント情報を生成する。図3に示すイベント情報は、例えば、通信ヘッダ810及びデータ部820を含む。通信ヘッダ810は、例えば、送信先アドレス811及び送信元アドレス812を含む。送信先アドレス811は、例えば、イベント情報の送信元のネットワークアドレスである。送信元アドレス812は、例えば、イベント情報の送信先のネットワークアドレスである。データ部820は、例えば、コマンド種別821及びイベント識別子822を含む。コマンド種別821は、例えば、イベント情報の送信が専用の通知命令によるものか否かを示す情報である。イベント識別子822は、イベント情報に対応したイベント例えば、送信元で発生したイベントを識別するための情報である。通知部101bは、生成したイベント情報を通信インターフェース104の送信部104aへ供給する。送信部104aは、イベント情報内の送信先アドレス811により示された例えばプログラマブルコントローラ100-3へネットワーク200経由でイベント情報を送信して通知するステップS404。これにより、受信側のプログラマブルコントローラ100-3では、イベント情報内のイベント識別子822に対応したイベントが検出される。具体的には、受信側のプログラマブルコントローラ100-3において、図5及び図7に示すように、以下の動作が行われる。受信部104bは、ネットワーク200を介してプログラマブルコントローラ100-1からネットワークデータ例えば、イベント情報を受信する。受信部104bは、受信されたネットワークデータを保存部101cへ供給する。すなわち、保存部101cは、受信されたネットワークデータを受信部104bから取得するステップS501。保存部101cは、受信されたネットワークデータ例えば、イベント情報が受信部104bから供給された場合、ネットワークデータ内のコマンド種別を確認するステップS502。保存部101cは、ネットワークデータがイベント情報でない場合ステップS503でNo、処理をステップS501へ戻す。一方、保存部101cは、ネットワークデータがイベント情報である場合ステップS503でYes、受信されたイベント情報から送信元アドレスを取得するとともにステップS504、受信されたイベント情報からイベント識別子を取得するステップS505。保存部101cは、例えば、イベント識別子と送信元アドレスとの組を1つのイベント情報としてイベントキュー103に追加して保存するステップS506。このように、保存部101cは、受信部104bにより受信されたイベント情報を受信順にイベントキューに保存する。すなわち、イベントキュー103には、イベント用のタスクに対応したイベント情報が、受信順に保存されている。例えば、イベントキュー103には、図6に示すように、例えば、イベント識別子と送信元アドレスとの組が1つのイベント情報として受信順に保存されている。なお、イベントキュー103には、イベント識別子と送信元アドレスとにさらにコマンド種別を加えた組が1つのイベント情報として受信順に保存されていてもよい。また、保存部101cは、定常的に、ラダープログラムによる処理要求を演算処理部101から受け付け、処理要求を1つのイベント情報としてイベントキュー103に保存する。また、保存部101cは、受信したイベント情報が受信部104bから供給された場合、受信したイベント情報を1つのイベント情報としてイベントキュー103に保存する。すなわち、イベントキュー103には、サイクリック用のタスクに対応したイベント情報と、イベント用のタスクに対応したイベント情報とが、互いに区別されずに、受付順に保存されている。このとき、サイクリック用のタスクに対応したイベント情報では、例えば、自分のアドレス例えば、プログラマブルコントローラ100-3のネットワークアドレスが送信元アドレスとされている。これにより、割り込みを発生させずに、各イベント情報を順番に処理することができる。検出部101dは、ラダープログラムにおいて記述された専用の検出命令を実行する。例えば、検出部101dは、命令実行時に引数として指定されたイベント識別子に一致するイベント識別をイベントキュー103から検索するステップS701。検出部101dは、指定されたイベント識別子に一致するイベント識別がイベントキュー103内に存在しない場合ステップS702でNo、処理を終了する。一方、検出部101dは、指定されたイベント識別子に一致するイベント識別子がイベントキュー103内に存在する場合ステップS702でYes、該当イベント識別子に対応したイベント情報を読み出し、読み出されたイベント情報例えば、上記の第1のイベント情報を記憶領域102に一次的に記憶させるとともにイベントキュー103内から削除するステップS703。これにより、検出部101dは、指定されたイベント識別子に対応したイベントが存在することを検出する。そして、検出部101dは、イベントの存在を検出したことを実行部101eに通知するステップS704。実行部101eは、検出部101dにより検出されたイベントに応じて、タスクを実行する。例えば、実行部101eは、記憶領域102を参照し、第1のイベントが発生するという第1の条件と第2のイベントが発生するという第2の条件との両方が成り立つという複合条件が満たされたか否かを判断する。例えば、実行部101eは、記憶領域102に第1のイベント情報が記憶されていても第2のイベント情報が記憶されていなければ複合条件が満たされていないと判断し、記憶領域102に第2のイベント情報が記憶されるまで待機する。そして、受信部104bにより第2のイベント情報がプログラマブルコントローラ100-2から受信され、検出部101dにより第2のイベント情報が記憶領域102に一次的に記憶された場合、実行部101eは、記憶領域102を参照し、複合条件が満たされたと判断する。例えば、実行部101eは、複合条件が満たされた場合、機器ランプ1-3を制御して、機器ランプ1-3を点灯させる。このように、受信側のプログラマブルコントローラ100-3において、第1のイベント及び第2のイベントの両方を検出できれば、例えば、工場のラインにおける所定の場所の温度及び圧力がともに閾値を超えて高くなったことを工場のラインの作業者へ報知することができる。なお、ステップS701において、検出部101dは、イベントキュー103にアクセスして最も古いイベント情報を読み出してもよい。この場合、検出部101dは、イベントキュー103に保存された複数のイベント情報をイベントキュー103の受付順例えば、受信部104bによる受信順に検出するので、イベント情報に応じたタスクの実行もイベントキュー103の受付順に行うようにすることができる。また、ステップS701において、検出部101dは、さらに、読み出されたイベント情報内の送信元アドレスが自分のアドレスか否かを判断してもよい。検出部101dは、イベント情報内の送信元アドレスが自分のアドレスでない、すなわち他のプログラマブルコントローラ100-1、100-2から専用の通知命令により送信されたものがイベントキュー103内に存在する場合、ラダープログラムにおいて記述された専用の検出命令を実行するようにしてもよい。あるいは、ステップS701において、検出部101dは、イベント情報にコマンド種別が含まれていれば、コマンド種別を参照し、専用の通知命令により送信されたものがイベントキュー103内に存在するか否かを判断する。検出部101dは、専用の通知命令により送信されたものがイベントキュー103内に存在する場合、ラダープログラムにおいて記述された専用の検出命令を実行するようにしてもよい。なお、上記では、プログラマブルコントローラから他の1つのプログラマブルコントローラへイベント情報を送信する場合について説明しているが、プログラマブルコントローラから他の複数の例えば、他の全てのプログラマブルコントローラへイベント情報を送信してもよい。以上のように、実施の形態では、プログラマブルコントローラ100-1が、指定したイベントを通知するための専用の通知命令を有する。すなわち、プログラマブルコントローラ100-1における通知部101aは、ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行する。これにより、通知部101aは、ネットワーク200を介して接続された他の1以上のプログラマブルコントローラ100-2、100-3がその指定されたイベント識別子に対応したイベントを検出するように、ネットワーク200を介して他のプログラマブルコントローラ100-2、100-3へその指定されたイベント識別子を含むイベント情報を通知する。これにより、受信側の例えばプログラマブルコントローラ100-3において、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく互いに識別して処理することができる。この結果、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。また、実施の形態では、例えばプログラマブルコントローラ100-3が、受信されたイベント情報を例えばプログラマブルコントローラ100-3内に保存するための記憶領域であるイベントキュー103を有する。すなわち、保存部101cは、受信部104bにより受信されたイベント情報を受信順にイベントキュー103に保存する。これにより、受信側の例えばプログラマブルコントローラ100-3において、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく保持することができる。この点からも、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。また、実施の形態では、イベントキュー103により複数のイベント情報を保持できるので、イベントの受信側にて異なる複数のイベントの受信状態を満たす複合条件を判断しイベントタスクの実行を可能とする効果がある。また、実施の形態では、例えばプログラマブルコントローラ100-3が、ラダープログラムにおいて記述された専用の検出命令を実行することにより、イベントキュー103に一度保存されたイベント情報を読み出す機能を有している。すなわち、検出部101dは、ラダープログラムにおいて記述された専用の検出命令を実行することにより、イベントキュー103に保存されたイベント情報に対応したイベントを検出する。実行部101eは、検出部101dにより検出されたイベントに応じて、タスクを実行する。これにより、送信側のプログラマブルコントローラによるイベントの通知と受信側のプログラマブルコントローラによるイベントの検出との動作をそれぞれ保証できる。すなわち、ネットワーク機器を使用した分散システムにおいて、イベント駆動による制御を確実に行うことができる。また、実施の形態では、専用の通知命令や専用の検出命令などの専用命令を介してイベントを操作する。これにより、イベントの実装をユーザから隠蔽することが可能である。