(57)【要約】【課題】受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できるプログラマブルコントローラを得ること。【解決手段】プログラマブルコントローラは、イベント駆動型プログラミングを用いて作成されたラダープログラムをそれぞれ実行する複数のプログラマブルコントローラがネットワークを介して接続されたシステムに用いられるプログラマブルコントローラであって、前記ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行することにより、前記ネットワークを介して接続された第２のプログラマブルコントローラが前記指定されたイベント識別子に対応したイベントを検出するように、前記ネットワークを介して前記第２のプログラマブルコントローラへ前記指定されたイベント識別子を含むイベント情報を通知する通知手段を有する。【選択図】図１
2013008303.tif 000002
【特許請求の範囲】
【請求項１】
イベント駆動型プログラミングを用いて作成されたラダープログラムをそれぞれ実行する複数のプログラマブルコントローラがネットワークを介して接続されたシステムに用いられるプログラマブルコントローラであって、
前記ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行することにより、前記ネットワークを介して接続された第２のプログラマブルコントローラが前記指定されたイベント識別子に対応したイベントを検出するように、前記ネットワークを介して前記第２のプログラマブルコントローラへ前記指定されたイベント識別子を含むイベント情報を通知する通知手段を有する
ことを特徴とするプログラマブルコントローラ。
【請求項２】
前記ネットワークを介して第３のプログラマブルコントローラからイベント識別子を含むイベント情報を受信する受信手段と、
前記受信手段により受信されたイベント情報を受信順にイベントキューに保存する保存手段と、
をさらに有する
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記ラダープログラムにおいて記述された専用の検出命令を実行することにより、前記イベントキューに保存されたイベント情報に対応したイベントを検出する検出手段と、
前記検出手段により検出されたイベントに応じて、タスクを実行する実行手段と、
をさらに有する
ことを特徴とする請求項２に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関する。
【背景技術】
【０００２】
イベント駆動型プログラミングによる制御を主としたシステムにおいて、ネットワークに接続された複数のプログラマブルコントローラ間では、データの送受信を目的とした専用の命令を使用し、データの送受信を実現する。すなわち、ネットワーク系の専用命令（ＳＥＮＤ，ＲＥＣＶ，ＲＥＣＶＳ）を使用しイベントの通知・受信と同等の処理を実現している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一方、ネットワークに接続された複数のプログラマブルコントローラ間で、イベント駆動型プログラミング処理を実現することがある。データの送受信を目的とした専用の命令を使用し、プログラマブルコントローラ間でデータの送受信を行う。受信側のプログラマブルコントローラは、受信データのイベントを検出し、検出したイベントに応じてタスクを実行する。
【０００４】
このようなイベント駆動型プログラミングの実現において、仮に、第１のプログラマブルコントローラに対して、第２のプログラマブルコントローラと第３のプログラマブルコントローラとからほぼ同時にイベントの通知が発生した場合を考える。この場合、第１のプログラマブルコントローラにおいて、先に受信したイベントのデータが後から受信したイベントのデータにより上書きされて破棄されることがある。すなわち、受信側のプログラマブルコントローラにおいて、破棄されたイベントを検出することができないので、複数のイベントを受信したときの動作を保証できない傾向にある。
【０００５】
本発明は、上記に鑑みてなされたものであって、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できるプログラマブルコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかるプログラマブルコントローラは、イベント駆動型プログラミングを用いて作成されたラダープログラムをそれぞれ実行する複数のプログラマブルコントローラがネットワークを介して接続されたシステムに用いられるプログラマブルコントローラであって、前記ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行することにより、前記ネットワークを介して接続された第２のプログラマブルコントローラが前記指定されたイベント識別子に対応したイベントを検出するように、前記ネットワークを介して前記第２のプログラマブルコントローラへ前記指定されたイベント識別子を含むイベント情報を通知する通知手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、受信側のプログラマブルコントローラにおいて、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく互いに識別して処理することができる。この結果、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるプログラマブルコントローラが適用されるシステムの構成を示す図である。
【図２】図２は、実施の形態にかかるプログラマブルコントローラの構成を示す図である。
【図３】図３は、実施の形態における通知されるイベント情報のデータ構造を示す図である。
【図４】図４は、実施の形態にかかるプログラマブルコントローラの動作を示すフローチャートである。
【図５】図５は、実施の形態にかかるプログラマブルコントローラの動作を示すフローチャートである。
【図６】図６は、実施の形態における保存されるイベント情報のデータ構造を示す図である。
【図７】図７は、実施の形態にかかるプログラマブルコントローラの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかるプログラマブルコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態．
実施の形態にかかるプログラマブルコントローラ１００が適用されるシステム３００について図１を用いて説明する。図１は、システム３００の概略構成を示す図である。
【００１１】
システム３００は、例えば、複数の機器の制御に用いられる制御システムである。システム３００は、複数のプログラマブルコントローラ１００−１〜１００−３、ネットワーク２００、及び複数の機器１−１〜１−３を備える。複数のプログラマブルコントローラ１００−１〜１００−３は、ネットワーク２００を介して接続されている。各プログラマブルコントローラ１００は、所定の通信回線を介して、対応する制御対象の機器１に接続されている。
【００１２】
各プログラマブルコントローラ１００は、イベント駆動型プログラミングを用いて作成されたラダープログラムを実行する。例えば、各プログラマブルコントローラ１００は、ネットワーク上の他のプログラマブルコントローラ１００へイベントの発生を通知する。また、例えば、受信側の各プログラマブルコントローラ１００は、イベントの発生の通知を受けたら、ラダープログラムに従い、イベントに応じたタスクとして、例えば対応する機器１を制御するタスクを実行する。
【００１３】
機器１−１は、例えば工場のラインに設置された温度センサであり、工場のラインにおける所定の場所の温度を測定しその測定温度をプログラマブルコントローラ１００−１へ入力する。機器１−２は、例えば工場のラインに設置された圧力センサであり、工場のラインにおける所定の場所の圧力を測定しその測定圧力をプログラマブルコントローラ１００−２へ入力する。機器１−３は、例えば工場のラインに設置されたランプであり、所定の条件が満たされた際に点灯する。
【００１４】
例えば、プログラマブルコントローラ１００−１は、機器（温度センサ）１−１から入力された測定温度を受信して、測定温度が閾値を超えたか否かを判断する。測定温度が閾値を超えたという第１のイベントが発生した場合に、第１のイベントの発生を示す第１のイベント情報をネットワーク２００経由でプログラマブルコントローラ１００−３へ通知する。
【００１５】
また、プログラマブルコントローラ１００−２は、機器（圧力センサ）１−２から入力された測定圧力を受信して、測定圧力が閾値を超えたか否かを判断する。プログラマブルコントローラ１００−２は、測定圧力が閾値を超えたという第２のイベントが発生した場合に、第２のイベントの発生を示す第２のイベント情報をネットワーク２００経由でプログラマブルコントローラ１００−３へ通知する。
【００１６】
例えば、プログラマブルコントローラ１００−３は、第１のイベント情報をプログラマブルコントローラ１００−１から受信し、第２のイベント情報をプログラマブルコントローラ１００−２から受信する。そして、プログラマブルコントローラ１００−３は、第１のイベントと第２のイベントとの両方が発生したか否かを判断する。すなわち、プログラマブルコントローラ１００−３は、第１のイベントが発生するという第１の条件と第２のイベントが発生するという第２の条件との両方が成り立つという複合条件が満たされたか否かを判断する。
【００１７】
ここで、仮に、上記のようなイベント駆動型プログラミングの実現において、プログラマブルコントローラ１００−３に対して、プログラマブルコントローラ１００−１とプログラマブルコントローラ１００−２からほぼ同時にイベントの通知が発生した場合を考える。この場合、プログラマブルコントローラ１００−３において、内部的な処理の負荷を抑制するために通信データ、すなわち受信した第１のイベント情報と第２のイベント情報との一方が破棄される傾向にある。または、プログラマブルコントローラ１００−３において、第１のイベント情報と第２のイベント情報とのうち先に受信したイベントのデータが後から受信したイベントのデータに上書きされ、破壊されることがある。その結果、プログラマブルコントローラ１００−３におけるイベントの検出が保証されない可能性がある。例えば、上記の複合条件が満たされたか否かを正しく判断できない可能性がある。
【００１８】
それに対して、実施の形態では、例えばプログラマブルコントローラ１００−３が以下のような特徴的な構成を有することで、ほぼ同時に受信された複数のイベントを破棄することなく、いずれも処理することができる。
【００１９】
例えば、上記の例において、プログラマブルコントローラ１００−３は、複合条件が満たされた場合、機器（ランプ）１−３を制御して、機器（ランプ）１−３を点灯させる。このように、受信側のプログラマブルコントローラ１００−３において、第１のイベント及び第２のイベントの両方を検出できれば、例えば、工場のラインにおける所定の場所の温度及び圧力がともに閾値を超えて高くなったことを工場のラインの作業者へ報知することができる。
【００２０】
次に、各プログラマブルコントローラ１００−１〜１００−３の内部構成について図２を用いて説明する。図２は、プログラマブルコントローラ１００−１の内部構成を示すブロック図である。以下では、プログラマブルコントローラ１００−１の内部構成について例示的に説明するが、他のプログラマブルコントローラ１００−２、１００−３の内部構成についても同様である。
【００２１】
プログラマブルコントローラ１００−１は、演算処理部１０１、記憶領域１０２、イベントキュー１０３、及び通信インターフェース１０４を備える。
【００２２】
演算処理部１０１は、ラダープログラムを処理する。ラダープログラムは、例えばリレーラダーダイヤグラム言語で記述されている。すなわち、ラダープログラムは、例えば、主としてラダーダイヤグラムで記述されたプログラムである。演算処理部１０１は、検出部１０１ａ、通知部１０１ｂ、保存部１０１ｃ、検出部１０１ｄ、及び実行部１０１ｅを有する。記憶領域１０２は、例えば、ラダープログラムが記憶されている不揮発性記憶領域と、演算処理部１０１により所定のデータを一時的に記憶させておくための作業領域として機能する揮発性記憶領域とを有する。イベントキュー１０３は、複数のイベント情報を受け付けた順番に保存する。通信インターフェース１０４は、他のプログラマブルコントローラ１００−２、１００−３との間で通信を行うためのインターフェースとして機能する。通信インターフェース１０４は、送信部１０４ａ及び受信部１０４ｂを有する。
【００２３】
次に、プログラマブルコントローラ１００−１〜１００−３の動作について説明する。
【００２４】
プログラマブルコントローラ１００−１は、図３に示すようなデータ構造を有するイベント情報を、データの送受信を目的とした専用の命令を使用し、他のプログラマブルコントローラ１００−２、１００−３との間で送受信する。プログラマブルコントローラ１００−１は、イベント情報を受信した場合、受信データ（イベント情報）に含まれるイベント識別子を認識することにより、イベントを検出しイベント駆動型プログラミング処理を実現する。すなわち、イベントに対応したタスクを実行する。
【００２５】
具体的には、送信側のプログラマブルコントローラ１００−１において、図４に示すように、以下の動作が行われる。
【００２６】
検出部１０１ａは、プログラマブルコントローラ１００−１におけるイベント（例えば、上記の第１のイベント）の発生を検出する。検出部１０１ａは、検出したイベントの発生の情報を通知部１０１ｂへ供給する。
【００２７】
通知部１０１ｂは、イベントの発生の情報に応じて、そのイベントの発生を他のプログラマブルコントローラ１００−３に通知するように、ラダープログラムにおいて記述された専用の通知命令を実行する。専用の通知命令が実行されると、イベント情報に含められるべき通信ヘッダが設定され（ステップＳ４０１）、イベント情報に含められるべきコマンド種別が設定され（ステップＳ４０２）、イベント情報に含められるべきイベント識別子が設定される（ステップＳ４０３）。
【００２８】
イベント識別子の設定は、例えば、複数のプログラマブルコントローラ１００−１〜１００−３の間で一意に決まるように自動的に行われてもよい。例えば、複数のプログラマブルコントローラ１００−１〜１００−３のいずれか１つをＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃａｌ）サーバーとして機能させ、複数のプログラマブルコントローラ１００−１〜１００−３の内部クロックの時刻を同期させても良い。そして、通知部１０１ｂは、専用の通知命令を実行した際に、プログラマブルコントローラ１００−１の内部クロックから現在時刻を取得するとともに、予め設定されたプログラマブルコントローラ１００−１の物理アドレス（例えば、ＭＡＣアドレス）を取得し、例えば現在時刻と物理アドレスとを組合せてイベント識別子を決める。
【００２９】
あるいは、イベント識別子の設定は、例えば、ユーザ又はラダープログラムから引数として受け取ったものに対して、複数のプログラマブルコントローラ１００−１〜１００−３の間で一意になるように自動的に調整されてもよい。例えば、通知部１０１ｂは、受け付けたイベント識別子が他のイベント識別子と重複していないかどうか、通信インターフェース１０４を介して他のプログラマブルコントローラ１００−２、１００−３へ問い合わせて、重複していなければそのまま採用し、重複していればさらに枝番を付与することなどにより重複しないように調整しても良い。
【００３０】
すなわち、通知部１０１ｂは、専用の通知命令を実行することにより、図３に示すようなデータ構造を有するイベント情報を生成する。図３に示すイベント情報は、例えば、通信ヘッダ８１０及びデータ部８２０を含む。通信ヘッダ８１０は、例えば、送信先アドレス８１１及び送信元アドレス８１２を含む。送信先アドレス８１１は、例えば、イベント情報の送信元のネットワークアドレスである。送信元アドレス８１２は、例えば、イベント情報の送信先のネットワークアドレスである。データ部８２０は、例えば、コマンド種別８２１及びイベント識別子８２２を含む。コマンド種別８２１は、例えば、イベント情報の送信が専用の通知命令によるものか否かを示す情報である。イベント識別子８２２は、イベント情報に対応したイベント（例えば、送信元で発生したイベント）を識別するための情報である。
【００３１】
通知部１０１ｂは、生成したイベント情報を通信インターフェース１０４の送信部１０４ａへ供給する。送信部１０４ａは、イベント情報内の送信先アドレス８１１により示された例えばプログラマブルコントローラ１００−３へネットワーク２００経由でイベント情報を送信して通知する（ステップＳ４０４）。これにより、受信側のプログラマブルコントローラ１００−３では、イベント情報内のイベント識別子８２２に対応したイベントが検出される。
【００３２】
具体的には、受信側のプログラマブルコントローラ１００−３において、図５及び図７に示すように、以下の動作が行われる。
【００３３】
受信部１０４ｂは、ネットワーク２００を介してプログラマブルコントローラ１００−１からネットワークデータ（例えば、イベント情報）を受信する。受信部１０４ｂは、受信されたネットワークデータを保存部１０１ｃへ供給する。すなわち、保存部１０１ｃは、受信されたネットワークデータを受信部１０４ｂから取得する（ステップＳ５０１）。
【００３４】
保存部１０１ｃは、受信されたネットワークデータ（例えば、イベント情報）が受信部１０４ｂから供給された場合、ネットワークデータ内のコマンド種別を確認する（ステップＳ５０２）。保存部１０１ｃは、ネットワークデータがイベント情報でない場合（ステップＳ５０３で「Ｎｏ」）、処理をステップＳ５０１へ戻す。
【００３５】
一方、保存部１０１ｃは、ネットワークデータがイベント情報である場合（ステップＳ５０３で「Ｙｅｓ」）、受信されたイベント情報から送信元アドレスを取得するとともに（ステップＳ５０４）、受信されたイベント情報からイベント識別子を取得する（ステップＳ５０５）。保存部１０１ｃは、例えば、イベント識別子と送信元アドレスとの組を１つのイベント情報としてイベントキュー１０３に追加して保存する（ステップＳ５０６）。
【００３６】
このように、保存部１０１ｃは、受信部１０４ｂにより受信されたイベント情報を受信順にイベントキューに保存する。すなわち、イベントキュー１０３には、イベント用のタスクに対応したイベント情報が、受信順に保存されている。例えば、イベントキュー１０３には、図６に示すように、例えば、イベント識別子と送信元アドレスとの組が１つのイベント情報として受信順に保存されている。なお、イベントキュー１０３には、イベント識別子と送信元アドレスとにさらにコマンド種別を加えた組が１つのイベント情報として受信順に保存されていてもよい。
【００３７】
また、保存部１０１ｃは、定常的に、ラダープログラムによる処理要求を演算処理部１０１から受け付け、処理要求を１つのイベント情報としてイベントキュー１０３に保存する。また、保存部１０１ｃは、受信したイベント情報が受信部１０４ｂから供給された場合、受信したイベント情報を１つのイベント情報としてイベントキュー１０３に保存する。すなわち、イベントキュー１０３には、サイクリック用のタスクに対応したイベント情報と、イベント用のタスクに対応したイベント情報とが、互いに区別されずに、受付順に保存されている。このとき、サイクリック用のタスクに対応したイベント情報では、例えば、自分のアドレス（例えば、プログラマブルコントローラ１００−３のネットワークアドレス）が送信元アドレスとされている。これにより、割り込みを発生させずに、各イベント情報を順番に処理することができる。
【００３８】
検出部１０１ｄは、ラダープログラムにおいて記述された専用の検出命令を実行する。
【００３９】
例えば、検出部１０１ｄは、命令実行時に引数として指定されたイベント識別子に一致するイベント識別をイベントキュー１０３から検索する（ステップＳ７０１）。検出部１０１ｄは、指定されたイベント識別子に一致するイベント識別がイベントキュー１０３内に存在しない場合（ステップＳ７０２で「Ｎｏ」）、処理を終了する。
【００４０】
一方、検出部１０１ｄは、指定されたイベント識別子に一致するイベント識別子がイベントキュー１０３内に存在する場合（ステップＳ７０２で「Ｙｅｓ」）、該当イベント識別子に対応したイベント情報を読み出し、読み出されたイベント情報（例えば、上記の第１のイベント情報）を記憶領域１０２に一次的に記憶させるとともにイベントキュー１０３内から削除する（ステップＳ７０３）。これにより、検出部１０１ｄは、指定されたイベント識別子に対応したイベントが存在することを検出する。
【００４１】
そして、検出部１０１ｄは、イベントの存在を検出したことを実行部１０１ｅに通知する（ステップＳ７０４）。実行部１０１ｅは、検出部１０１ｄにより検出されたイベントに応じて、タスクを実行する。
【００４２】
例えば、実行部１０１ｅは、記憶領域１０２を参照し、第１のイベントが発生するという第１の条件と第２のイベントが発生するという第２の条件との両方が成り立つという複合条件が満たされたか否かを判断する。例えば、実行部１０１ｅは、記憶領域１０２に第１のイベント情報が記憶されていても第２のイベント情報が記憶されていなければ複合条件が満たされていないと判断し、記憶領域１０２に第２のイベント情報が記憶されるまで待機する。そして、受信部１０４ｂにより第２のイベント情報がプログラマブルコントローラ１００−２から受信され、検出部１０１ｄにより第２のイベント情報が記憶領域１０２に一次的に記憶された場合、実行部１０１ｅは、記憶領域１０２を参照し、複合条件が満たされたと判断する。例えば、実行部１０１ｅは、複合条件が満たされた場合、機器（ランプ）１−３を制御して、機器（ランプ）１−３を点灯させる。このように、受信側のプログラマブルコントローラ１００−３において、第１のイベント及び第２のイベントの両方を検出できれば、例えば、工場のラインにおける所定の場所の温度及び圧力がともに閾値を超えて高くなったことを工場のラインの作業者へ報知することができる。
【００４３】
なお、ステップＳ７０１において、検出部１０１ｄは、イベントキュー１０３にアクセスして最も古いイベント情報を読み出してもよい。この場合、検出部１０１ｄは、イベントキュー１０３に保存された複数のイベント情報をイベントキュー１０３の受付順（例えば、受信部１０４ｂによる受信順）に検出するので、イベント情報に応じたタスクの実行もイベントキュー１０３の受付順に行うようにすることができる。
【００４４】
また、ステップＳ７０１において、検出部１０１ｄは、さらに、読み出されたイベント情報内の送信元アドレスが自分のアドレスか否かを判断してもよい。検出部１０１ｄは、イベント情報内の送信元アドレスが自分のアドレスでない、すなわち他のプログラマブルコントローラ１００−１、１００−２から専用の通知命令により送信されたものがイベントキュー１０３内に存在する場合、ラダープログラムにおいて記述された専用の検出命令を実行するようにしてもよい。
【００４５】
あるいは、ステップＳ７０１において、検出部１０１ｄは、イベント情報にコマンド種別が含まれていれば、コマンド種別を参照し、専用の通知命令により送信されたものがイベントキュー１０３内に存在するか否かを判断する。検出部１０１ｄは、専用の通知命令により送信されたものがイベントキュー１０３内に存在する場合、ラダープログラムにおいて記述された専用の検出命令を実行するようにしてもよい。
【００４６】
なお、上記では、プログラマブルコントローラから他の１つのプログラマブルコントローラへイベント情報を送信する場合について説明しているが、プログラマブルコントローラから他の複数の（例えば、他の全ての）プログラマブルコントローラへイベント情報を送信してもよい。
【００４７】
以上のように、実施の形態では、プログラマブルコントローラ１００−１が、指定したイベントを通知するための専用の通知命令を有する。すなわち、プログラマブルコントローラ１００−１における通知部１０１ａは、ラダープログラムにおいて記述された、イベント識別子を指定することを含む専用の通知命令を実行する。これにより、通知部１０１ａは、ネットワーク２００を介して接続された他の（１以上の）プログラマブルコントローラ１００−２、１００−３がその指定されたイベント識別子に対応したイベントを検出するように、ネットワーク２００を介して他のプログラマブルコントローラ１００−２、１００−３へその指定されたイベント識別子を含むイベント情報を通知する。これにより、受信側の例えばプログラマブルコントローラ１００−３において、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく互いに識別して処理することができる。この結果、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。
【００４８】
また、実施の形態では、例えばプログラマブルコントローラ１００−３が、受信されたイベント情報を例えばプログラマブルコントローラ１００−３内に保存するための記憶領域であるイベントキュー１０３を有する。すなわち、保存部１０１ｃは、受信部１０４ｂにより受信されたイベント情報を受信順にイベントキュー１０３に保存する。これにより、受信側の例えばプログラマブルコントローラ１００−３において、ほぼ同時に複数のイベント情報が受信された場合でも、複数のイベントのいずれも破棄することなく保持することができる。この点からも、受信側のプログラマブルコントローラにおいて、複数のイベントを受信したときの動作を保証できる。
【００４９】
また、実施の形態では、イベントキュー１０３により複数のイベント情報を保持できるので、イベントの受信側にて異なる複数のイベントの受信状態を満たす複合条件を判断しイベントタスクの実行を可能とする効果がある。
【００５０】
また、実施の形態では、例えばプログラマブルコントローラ１００−３が、ラダープログラムにおいて記述された専用の検出命令を実行することにより、イベントキュー１０３に一度保存されたイベント情報を読み出す機能を有している。すなわち、検出部１０１ｄは、ラダープログラムにおいて記述された専用の検出命令を実行することにより、イベントキュー１０３に保存されたイベント情報に対応したイベントを検出する。実行部１０１ｅは、検出部１０１ｄにより検出されたイベントに応じて、タスクを実行する。これにより、送信側のプログラマブルコントローラによるイベントの通知と受信側のプログラマブルコントローラによるイベントの検出との動作をそれぞれ保証できる。すなわち、ネットワーク機器を使用した分散システムにおいて、イベント駆動による制御を確実に行うことができる。
【００５１】
また、実施の形態では、専用の通知命令や専用の検出命令などの専用命令を介してイベントを操作する。これにより、イベントの実装をユーザから隠蔽することが可能である。
【産業上の利用可能性】
【００５２】
以上のように、本発明にかかるプログラマブルコントローラは、イベント駆動型プログラミングによる制御に有用である。
【符号の説明】
【００５３】
１、１−１〜１−３  機器  
１００、１００−１〜１００−３  プログラマブルコントローラ
１０１  演算処理部
１０１ａ  検出部
１０１ｂ  通知部
１０１ｃ  保存部
１０１ｄ  検出部
１０１ｅ  実行部
１０２  記憶領域
１０３  イベントキュー
１０４  通信インターフェース
１０４ａ  送信部
１０４ｂ  受信部
２００  ネットワーク
３００  システム
【図１】
2013008303.tif 000003
【図２】
2013008303.tif 000004
【図３】
2013008303.tif 000005
【図４】
2013008303.tif 000006
【図５】
2013008303.tif 000007
【図６】
2013008303.tif 000008
【図７】
2013008303.tif 000009