(57)【要約】  本発明は、複数の外部機器に対し周期的に制御を行うプログラマブルコントローラ（１０）であって、一時メモリ（１２）と、ワーキングメモリ（１３）と、制御部（１４）とを備える。制御部（１４）は、同期制御の対象となる外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信し、要求パケットに対する応答として外部機器から受信する応答パケットからデバイスデータを取得して、取得したデバイスデータを一時メモリ（１２）に格納し、同期制御の対象となる外部機器から、同一の制御周期内で送信済みの要求パケットに対応する応答パケットがそれぞれ受信されることを条件として、一時メモリ（１２）に記憶されているデバイスデータをワーキングメモリ（１３）に書き込むことを特徴とする。
2017119100.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部機器に対し周期的に制御を行うプログラマブルコントローラであって、
一時メモリと、
ワーキングメモリと、
制御部とを備え、
前記制御部は、
同期制御の対象となる前記外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信し、
前記要求パケットに対する応答として前記外部機器から受信する応答パケットから前記デバイスデータを取得して、取得した前記デバイスデータを前記一時メモリに格納し、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信されることを条件として、前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書き込むことを特徴とするプログラマブルコントローラ。
【請求項２】
前記制御部は、同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットが受信されるまで、当該応答パケットの受信待機状態を保持することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記外部機器に前記デバイスデータを要求する要求パケットが送信されてからの経過時間を計測するタイマをさらに備え、
前記制御部は、前記経過時間が予め設定される許容時間を超えていない場合には、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットの受信待機状態を保持することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
複数の外部機器に対し周期的に制御を行うプログラマブルコントローラに、
同期制御の対象となる前記外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信するステップと、
前記要求パケットに対する応答として前記外部機器から受信する応答パケットから前記デバイスデータを取得して、取得した前記デバイスデータを前記一時メモリに格納するステップと、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信されることを条件として、前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書き込むステップと
を実行させることを特徴とする同期制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、産業用機械である外部機器を制御するプログラマブルコントローラ及び同期制御プログラムに関する。
【背景技術】
【０００２】
従来、工場で使用される産業用機械である複数の外部機器を制御するプログラマブルコントローラは、複数の外部機器から受信するデータの同期処理を実行する機能を備える（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２９３５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術では、デバイスデータの同期処理を失敗した場合に備えて、同期処理の失敗を修正するためのラダープログラムを準備する必要がある。【０００５】
本発明は上記に鑑みてなされたものであって、同期処理の失敗を修正するためのラダープログラムを準備する必要がなく、同期処理の失敗を簡易に防止できるプログラマブルコントローラ及び同期制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、複数の外部機器に対し周期的に制御を行うプログラマブルコントローラであって、一時メモリと、ワーキングメモリと、制御部とを備える。制御部は、同期制御の対象となる外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信し、要求パケットに対する応答として外部機器から受信する応答パケットからデバイスデータを取得して、取得したデバイスデータを一時メモリに格納し、同期制御の対象となる外部機器から、同一の制御周期内で送信済みの要求パケットに対応する応答パケットがそれぞれ受信されることを条件として、一時メモリに記憶されているデバイスデータをワーキングメモリに書き込むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、プログラマブルコントローラにおいて、同期処理の失敗を修正するためのラダープログラムを準備する必要がなく、同期処理の失敗を簡易に防止できる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るプログラマブルコントローラの機能構成の一例を示す図
【図２】実施の形態１に係るプログラマブルコントローラの処理の一例を示すフローチャート
【図３】実施の形態２に係るプログラマブルコントローラの処理の一例を示すフローチャート
【図４】実施の形態２に係るプログラマブルコントローラの処理の一例を示すフローチャート
【図５】実施の形態３に係るプログラマブルコントローラの機能構成の一例を示す図
【図６】実施の形態３に係るプログラマブルコントローラの処理の一例を示すフローチャート
【図７】実施の形態３に係るプログラマブルコントローラの処理の一例を示すフローチャート
【図８】実施の形態に係るプログラマブルコントローラのハードウェア構成の一例を示す図
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、本発明に係る実施の形態について、図面を参照して説明する。なお、この実施の形態により、本発明が限定されるものではない。
【００１０】
図１は、実施の形態１に係るプログラマブルコントローラの機能構成の一例を示す図である。図１に示すように、実施の形態１に係るプログラマブルコントローラ１０は、ネットワーク１を介して、外部機器２０及び外部機器３０との間で実行されるデータの送受信に関する通信が可能な状態で接続される。ネットワーク１は、インターネット、イーサネット（登録商標）のようなＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含んでよい。
【００１１】
プログラマブルコントローラ１０は、プログラムメモリ１１、一時メモリ１２、ワーキングメモリ１３、制御部１４、及び通信制御部１５を含む。図１は、実施の形態１に係るプログラマブルコントローラ１０を説明する上で必要となる機能部のみを示している。
【００１２】
プログラムメモリ１１は、プログラマブルコントローラ１０における各種の制御を実現するためのプログラムを記憶する。プログラムメモリ１１は、例えば、同期制御プログラム１１ａを記憶する。同期制御プログラム１１ａは、同期制御の対象となる外部機器の制御に用いる制御データであるデバイスデータを同期させる機能を提供できる。同期制御プログラム１１ａが提供する機能の中には、通信可能に接続された外部機器２０及び外部機器３０からデバイスデータを取り込む処理を含み、周期的に実行されるシーケンススキャン（以下、スキャンという）において、以下の各処理を実行するための機能が含まれる。すなわち、同期制御プログラム１１ａが提供する機能の中には、実行中の同一のスキャン内で、同期制御の対象となる外部機器２０及び外部機器３０に対してデバイスデータを要求する要求パケットを送信する機能、要求パケットに対する応答として外部機器２０及び外部機器３０から受信する応答パケットからデイバスデータを取得して、取得したデバイスデータを一時メモリ１２に格納する機能、並びに同期制御の対象となる外部機器２０及び外部機器３０に対して同一のスキャン内で送信済みの要求パケットに対応する応答パケットが、当該外部機器２０及び当該外部機器３０のそれぞれから受信されることを条件として、一時メモリ１２に一時的に記憶されているデバイスデータを一時メモリ１２から読み込んでワーキングメモリ１３に書き込む機能が含まれる。同期制御プログラム１１ａが提供する機能によって、同期制御の対象となる外部機器２０のデバイスデータが一時メモリ１２からワーキングメモリ１３に反映されるタイミングと、同じく同期制御の対象となる外部機器３０のデバイスデータが一時メモリ１２からワーキングメモリ１３に反映されるタイミングとが同期される。
【００１３】
一時メモリ１２は、デバイスデータ１２ａを一時的に記憶する。デバイスデータ１２ａは、外部機器２０及び外部機器３０から受信した応答パケットに格納されているデバイスデータに対応し、制御部１４により格納される。ワーキングメモリ１３は、デバイスデータ１３ａを記憶する。デバイスデータ１３ａは、一時メモリ１２に記憶されているデバイスデータ１２ａに対応し、制御部１４により書き込まれる。ワーキングメモリ１３は、制御部１４の処理結果を一時的に記憶する作業領域としても利用されてよい。一時メモリ１２及びワーキングメモリ１３は、外部機器２０から受信したデバイスデータを格納する記憶領域と、外部機器３０から受信したデバイスデータを格納する記憶領域とに個別に分割されていてもよい。記憶領域の分割は、仮想的あるいは物理的に行われてよい。
【００１４】
制御部１４は、プログラムメモリ１１に記憶されている各種のプログラムを実行することにより、プログラマブルコントローラ１０における各種の制御を実行する。すなわち、制御部１４は、プログラマブルコントローラ１０の各部から取得したデータを参照しながら、各種のプログラムに含まれる命令を実行することによって、プログラマブルコントローラ１０における各種の制御を実行する。
【００１５】
実施の形態１において、制御部１４は、同期制御プログラム１１ａを実行することにより、同期制御の対象となる外部機器のデバイスデータを同期させる処理を実現する。具体的には、制御部１４は、スキャンの実行中、同期制御の対象となる外部機器２０及び外部機器３０に対してデバイスデータを要求する要求パケットを送信する。すなわち、実行中の同一のスキャン内で、制御部１４から同期制御の対象となる外部機器２０及び外部機器３０に対し、要求パケットがそれぞれ送信される。制御部１４は、外部機器２０又は外部機器３０から応答パケットを受信すると、受信した応答パケットからデバイスデータを取得し、取得したデバイスデータを一時メモリ１２に逐次格納する。制御部１４は、スキャンの最後の処理であるＥＮＤ処理に移ると、同期制御の対象となる外部機器２０及び外部機器３０に対して同一のスキャン内で送信済みの要求パケットに対応する応答パケットを、当該外部機器２０及び当該外部機器３０のそれぞれから受信したかを判定する。制御部１４は、同期制御の対象となる外部機器２０及び外部機器３０の少なくとも一方から、応答パケットを受信済みではない場合、ＥＮＤ処理を終了して次のスキャンに移行するが、外部機器２０及び外部機器３０から応答パケットを受信完了するまで、引き続き、送信済みの要求パケットに対する応答パケットの受信判定を繰り返す。制御部１４は、同期制御の対象となる外部機器２０及び外部機器３０の双方から、応答パケットを受信完了している場合、外部機器２０のデバイスデータ及び外部機器３０のデバイスデータを一時メモリ１２から読み込んで、ワーキングメモリ１３にそれぞれ書き込む。このように、制御部１４は、同期制御プログラム１１ａを実行することにより、外部機器２０のデバイスデータを一時メモリ１２からワーキングメモリ１３に反映させるタイミングと、外部機器３０のデバイスデータを一時メモリ１２からワーキングメモリ１３に反映させるタイミングとを同期させる処理を実現する。
【００１６】
通信制御部１５は、外部機器２０及び外部機器３０との間で実行されるデータの送受信を制御する。
【００１７】
図２は、実施の形態１に係るプログラマブルコントローラ１０の処理の一例を示すフローチャートである。図２に示す処理は、制御部１４が、プログラムメモリ１１に記憶されている同期制御プログラム１１ａを実行することにより実現される。
【００１８】
図２に示すように、プログラマブルコントローラ１０は、スキャンの実行中、同期制御の対象となる外部機器２０及び外部機器３０に要求パケットを送信する（ステップＳ１０１）。
【００１９】
続いて、プログラマブルコントローラ１０は、外部機器２０及び外部機器３０から受信した応答パケットに格納されているデバイスデータを一時メモリ１２に格納する（ステップＳ１０２）。プログラマブルコントローラ１０は、応答パケットの受信に応じて、逐次デバイスデータを一時メモリ１２に格納する。
【００２０】
続いて、プログラマブルコントローラ１０は、スキャンの最後の処理であるＥＮＤ処理時であるかを判定する（ステップＳ１０３）。
【００２１】
プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時ではない場合（ステップＳ１０３，Ｎｏ）、上記ステップＳ１０２の手順に戻る。
【００２２】
一方、プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時である場合（ステップＳ１０３，Ｙｅｓ）、外部機器２０及び外部機器３０から、Ｓ１０１で送信した要求パケットに対応する応答パケットを受信済みであるかを判定する（ステップＳ１０４）。
【００２３】
プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の双方から応答パケットを受信済みである場合（ステップＳ１０４，Ｙｅｓ）、一時メモリ１２に記憶されているデバイスデータをワーキングメモリ１３に書き込み（ステップＳ１０５）、ＥＮＤ処理を終了させて次のスキャンへ移行する（ステップＳ１０６）。
【００２４】
続いて、プログラマブルコントローラ１０は、デバイスデータの同期処理を継続するかを判定する（ステップＳ１０７）。プログラマブルコントローラ１０は、例えば、異常処理が発生した場合、若しくはユーザからの停止指示があった場合を除き、同期処理を継続する旨の判定を行う。
【００２５】
プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続する場合（ステップＳ１０７，Ｙｅｓ）、上記ステップＳ１０１の手順に戻る。
【００２６】
一方、プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続しない場合（ステップＳ１０７，Ｎｏ）、図２に示す処理を終了する。
【００２７】
上記ステップＳ１０４において、プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の少なくとも一方から応答パケットを受信済みではない場合（ステップＳ１０４，Ｎｏ）、ＥＮＤ処理を終了させて次のスキャンへ移行し（ステップＳ１０８）、上記ステップＳ１０２の手順に戻る。
【００２８】
実施の形態１において、プログラマブルコントローラ１０は、同期制御の対象となる外部機器２０及び外部機器３０から、同一のスキャン内で送信済みの要求パケットに対応する応答パケットを受信することを条件として、一時メモリ１２に一時的に記憶されているデバイスデータを読み込んでワーキングメモリ１３に書き込む。これにより、プログラマブルコントローラ１０は、外部機器２０のデバイスデータを一時メモリ１２からワーキングメモリ１３に反映させるタイミングと、外部機器３０のデバイスデータを一時メモリ１２からワーキングメモリ１３に反映させるタイミングとを同期させることができる。このため、プログラマブルコントローラ１０は、ラダープログラムを準備して同期処理の失敗を修正するよりも簡易に同期処理の失敗を防止できる。
【００２９】
また、実施の形態１において、プログラマブルコントローラ１０は、同期制御の対象となる外部機器２０のデバイスデータ、及び同期制御の対象となる外部機器３０のデバイスデータの双方が一時メモリ１２に格納された状態とならない限り、スキャンのＥＮＤ処理時であっても、一時メモリ１２からワーキングメモリ１３へのデバイスデータの反映を行わないので、デバイスデータを確実に同期させることができる。
【００３０】
また、実施の形態１では、プログラマブルコントローラ１０が、外部機器２０及び外部機器３０の２台の外部機器から受信するデバイスデータの同期制御を実行する例を説明したが、３台以上の外部機器から受信するデバイスデータについても同様に上述した実施の形態１に係る同期制御を実行できる。
【００３１】
実施の形態２．
実施の形態１では、プログラマブルコントローラ１０は、スキャンのＥＮＤ処理時に、同期制御の対象となる外部機器２０及び外部機器３０の少なくとも一方から応答パケットを受信済みではない場合、外部機器２０及び外部機器３０から応答パケットを受信完了するまで、引き続き、送信済みの要求パケットに対する応答パケットの受信判定を繰り返す処理の例を説明した。しかしながら、この例に限定されるものではなく、プログラマブルコントローラ１０は、スキャンのＥＮＤ処理時に、同期制御の対象となる外部機器２０及び外部機器３０の少なくとも一方から応答パケットを受信済みではない場合、実行中のスキャンを終了させずに、同一スキャン内で、送信済みの要求パケットに対する応答パケットの受信待機を継続するようにしてもよい。同期制御プログラム１１ａは、ＥＮＤ処理を通信待ち状態として応答パケットの受信待機状態を保持する機能を提供でき、制御部１４は、同期制御プログラム１１ａを実行することにより、ＥＮＤ処理を通信待ち状態として応答パケットの受信待機状態を保持する処理を実現できる。
【００３２】
図３及び図４を用いて、実施の形態２に係るプログラマブルコントローラ１０の処理の例を説明する。図３及び図４は、実施の形態２に係るプログラマブルコントローラ１０の処理の例を示すフローチャートである。
【００３３】
図３に示すように、プログラマブルコントローラ１０は、スキャンの実行中、同期制御の対象となる外部機器２０及び外部機器３０に要求パケットを送信する（ステップＳ２０１）。
【００３４】
続いて、プログラマブルコントローラ１０は、外部機器２０及び外部機器３０から受信した応答パケットに格納されているデバイスデータを一時メモリ１２に格納する（ステップＳ２０２）。プログラマブルコントローラ１０は、応答パケットの受信に応じて、逐次デバイスデータを一時メモリ１２に格納する。
【００３５】
続いて、プログラマブルコントローラ１０は、スキャンの最後の処理であるＥＮＤ処理時であるかを判定する（ステップＳ２０３）。
【００３６】
プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時ではない場合（ステップＳ２０３，Ｎｏ）、上記ステップＳ２０２の手順に戻る。
【００３７】
一方、プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時である場合（ステップＳ２０３，Ｙｅｓ）、外部機器２０及び外部機器３０から、Ｓ２０１で送信した要求パケットに対応する応答パケットを受信済みであるかを判定する（ステップＳ２０４）。
【００３８】
プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の双方から応答パケットを受信済みである場合（ステップＳ２０４，Ｙｅｓ）、既に、応答パケットの受信待機中であるかを判定する（ステップＳ２０５）。
【００３９】
プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中ではない場合（ステップＳ２０５，Ｎｏ）、一時メモリ１２に記憶されているデバイスデータをワーキングメモリ１３に書き込み（ステップＳ２０６）、ＥＮＤ処理を終了させて次のスキャンへ移行する（ステップＳ２０７）。
【００４０】
続いて、プログラマブルコントローラ１０は、デバイスデータの同期処理を継続するかを判定する（ステップＳ２０８）。プログラマブルコントローラ１０は、例えば、異常処理が発生した場合、若しくはユーザからの停止指示があった場合を除き、同期処理を継続する旨の判定を行う。
【００４１】
プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続する場合（ステップＳ２０８，Ｙｅｓ）、上記ステップＳ２０１の手順に戻る。
【００４２】
一方、プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続しない場合（ステップＳ２０８，Ｎｏ）、図３に示す処理を終了する。
【００４３】
上記ステップＳ２０５において、プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中である場合（ステップＳ２０５，Ｙｅｓ）、応答パケットの受信待機状態を解除して（ステップＳ２０９）、上記ステップＳ２０６の手順に移る。
【００４４】
上記ステップＳ２０４において、プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の少なくとも一方から応答パケットを受信済みではない場合（ステップＳ２０４，Ｎｏ）、既に、応答パケットの受信待機中であるかを判定する（ステップＳ２１０）。
【００４５】
プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中ではない場合（ステップＳ２１０，Ｎｏ）、応答パケットの受信待機状態に移行して（ステップＳ２１１）、上記ステップＳ２０２の手順に戻る。これとは反対に、プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中である場合（ステップＳ２１０，Ｙｅｓ）、そのまま、上記ステップＳ２０２の手順に戻る。
【００４６】
実施の形態２において、プログラマブルコントローラ１０は、同期制御の対象となる外部機器２０及び外部機器３０の双方から応答パケットを受信完了するまで、スキャンの最後の処理であるＥＮＤ処理を通信待ち状態にして、送信済みの要求パケットに対する応答パケットの受信待機を継続するので、同一スキャン内でデバイスデータを同期させることができる。
【００４７】
実施の形態３．
実施の形態２では、プログラマブルコントローラ１０は、同期制御の対処となる外部機器２０及び外部機器３０の双方から応答パケットを受信するまで、応答パケットの受信待機状態を保持する例を説明したが、この例に限定されるものではなく、要求パケットを送信してからの経過時間が許容時間内である場合に限定して、応答パケットの受信待機状態を保持してもよい。
【００４８】
図５は、実施の形態３に係るプログラマブルコントローラ１０の機能構成の一例を示す図である。図５に示すように、実施の形態３に係るプログラマブルコントローラ１０は、実施の形態２に係るプログラマブルコントローラ１０が有する各種機能部に加えて、許容時間記憶メモリ１６及びタイマ１７を備える。
【００４９】
許容時間記憶メモリ１６は、許容時間データ１６ａを記憶する。許容時間データ１６ａは、応答パケットの受信待機状態を保持する許容時間として予め設定されたデータである。許容時間データ１６ａに対応する許容時間は、少なくとも、スキャンの開始からＥＮＤ処理に至るまでの時間よりも長い時間が設定される。
【００５０】
タイマ１７は、制御部１４の指示に従って時間の計測を開始する。タイマ１７は、デバイスデータを要求する要求パケットが送信されてからの経過時間を計測する。タイマ１７は、制御部１４の指示に従って計測時間をリセットする。
【００５１】
同期制御プログラム１１ａは、要求パケットの送信を契機として時間を計測する機能、次のスキャンに移行する前に計測時間をリセットする機能、及び要求パケットを送信してからの経過時間が許容時間を超えていない場合、同一のスキャン内で送信済みの要求パケットに対応する応答パケットの受信待機状態を保持する機能を提供できる。
【００５２】
制御部１４は、同期制御プログラム１１ａを実行することにより、要求パケットの送信を契機としてタイマ１７の時間計測を開始させる処理を実現する。例えば、制御部１４は、要求パケットを送信する場合、時間計測の実行指示をタイマ１７に送出し、次のスキャンに移行する場合、計測時間のリセット指示をタイマ１７に送出する。制御部１４は、同期制御プログラム１１ａを実行することにより、要求パケットを送信してからの経過時間が許容時間内である場合、応答パケットの受信待機状態を保持する処理を実現する。例えば、制御部１４は、同期制御の対象となる外部機器２０及び外部機器３０の双方から応答パケットを受信済みではない場合、タイマの計測時間が許容時間内であるかを判定し、判定の結果、許容時間内である場合、同一のスキャン内で送信済みの要求パケットに対応する応答パケットの受信待機状態を保持する。
【００５３】
図６及び図７を用いて、実施の形態３に係るプログラマブルコントローラ１０の処理の例を説明する。図６及び図７は、実施の形態３に係るプログラマブルコントローラ１０の処理の一例を示すフローチャートである。
【００５４】
図６に示すように、プログラマブルコントローラ１０は、スキャンの実行中、同期制御の対象となる外部機器２０及び外部機器３０に要求パケットを送信する（ステップＳ３０１）。
【００５５】
続いて、プログラマブルコントローラ１０は、タイマ１７の時間計測を開始する（ステップＳ３０２）。
【００５６】
続いて、プログラマブルコントローラ１０は、外部機器２０及び外部機器３０から受信した応答パケットに格納されているデバイスデータを一時メモリ１２に格納する（ステップＳ３０３）。プログラマブルコントローラ１０は、応答パケットの受信に応じて、逐次デバイスデータを一時メモリ１２に格納する。
【００５７】
続いて、プログラマブルコントローラ１０は、スキャンの最後の処理であるＥＮＤ処理時であるかを判定する（ステップＳ３０４）。
【００５８】
プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時ではない場合（ステップＳ３０４，Ｎｏ）、上記ステップＳ３０３の手順に戻る。
【００５９】
一方、プログラマブルコントローラ１０は、判定の結果、ＥＮＤ処理時である場合（ステップＳ３０４，Ｙｅｓ）、外部機器２０及び外部機器３０から、ステップＳ３０１で送信した要求パケットに対応する応答パケットを受信済みであるかを判定する（ステップＳ３０５）。
【００６０】
プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の双方から応答パケットを受信済みである場合（ステップＳ３０５，Ｙｅｓ）、応答パケットの受信待機中であるかを判定する（ステップＳ３０６）。
【００６１】
プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中ではない場合（ステップＳ３０６，Ｎｏ）、一時メモリ１２に記憶されているデバイスデータをワーキングメモリ１３に書き込み（ステップＳ３０７）、タイマ１７の計測時間をリセットする（ステップＳ３０８）。
【００６２】
続いて、プログラマブルコントローラ１０は、ＥＮＤ処理を終了させて次のスキャンへ移行し（ステップＳ３０９）、デバイスデータの同期処理を継続するかを判定する（ステップＳ３１０）。プログラマブルコントローラ１０は、例えば、異常処理が発生した場合、若しくはユーザからの停止指示があった場合を除き、同期処理を継続する旨の判定を行う。
【００６３】
プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続する場合（ステップＳ３１０，Ｙｅｓ）、上記ステップＳ３０１の手順に戻る。
【００６４】
一方、プログラマブルコントローラ１０は、判定の結果、デバイスデータの同期処理を継続しない場合（ステップＳ３１０，Ｎｏ）、図６に示す処理を終了する。
【００６５】
上記ステップＳ３０６において、プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中である場合（ステップＳ３０６，Ｙｅｓ）、応答パケットの受信待機状態を解除して（ステップＳ３１１）、上記ステップＳ３０７の手順に移る。
【００６６】
上記ステップＳ３０５において、プログラマブルコントローラ１０は、判定の結果、外部機器２０及び外部機器３０の少なくとも一方から応答パケットを受信済みではない場合（ステップＳ３０５，Ｎｏ）、タイマ１７により計測された経過時間が許容時間を超えているかを判定する（ステップＳ３１２）。
【００６７】
プログラマブルコントローラ１０は、判定の結果、タイマ１７により計測された経過時間が許容時間を超えている場合（ステップＳ３１２，Ｙｅｓ）、タイマ１７の計測時間をリセットする（ステップＳ３１３）。
【００６８】
続いて、プログラマブルコントローラ１０は、ＥＮＤ処理を終了させて次のスキャンに移行し（ステップＳ３１４）、上記ステップＳ３０２の手順に戻る。すなわち、プログラマブルコントローラ１０は、実行中のスキャンにおいて、タイマ１７により計測された経過時間が許容時間を超えている場合、デバイスデータの取り込みを行うことなく、次のスキャンを実行する。
【００６９】
上記ステップＳ３１２において、プログラマブルコントローラ１０は、判定の結果、タイマ１７により計測された経過時間が許容時間を超えていない場合（ステップＳ３１２，Ｎｏ）、既に、応答パケットの受信待機中であるかを判定する（ステップＳ３１５）。
【００７０】
プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中ではない場合（ステップＳ３１５，Ｎｏ）、受信パケットの受信待機状態に移行して（ステップＳ３１６）、上記ステップＳ３０３の手順に戻る。これと反対に、プログラマブルコントローラ１０は、判定の結果、応答パケットの受信待機中である場合（ステップＳ３１５，Ｙｅｓ）、そのまま、上記ステップＳ３０３の手順に戻る。
【００７１】
上記図６の処理において、外部機器２０及び外部機器３０のいずれか一方のデバイスデータが一時メモリ１２に格納された状態で、タイマ１７により計測された経過時間が許容時間を超えている場合、プログラマブルコントローラ１０は、一時メモリ１２に格納済みのデバイスデータのみをワーキングメモリ１３に格納し、次のスキャンが開始されるまで、応答パケットの受信を行わないように処理を進めてもよい。上記図６の処理において、要求パケットと応答パケットとの対応関係を正しく判定できるように、要求パケット及び応答パケットにそれぞれフレームシーケンス番号を予め付与しておき、プログラマブルコントローラ１０は、応答パケットを受信したときに、応答パケットに付与されたフレームシーケンス番号を参照することによって、いずれのスキャンに対応するパケットであるかを判定するように処理を進めてもよい。
【００７２】
実施の形態３において、プログラマブルコントローラ１０は、同期制御の対象となる外部機器２０及び外部機器３０から応答パケットを受信完了できていなくても、要求パケットを送信してからの経過時間が許容時間内にある場合には、次のスキャンに移行せずに、応答パケットの受信待機状態を保持するので、可能な限り同一スキャン内でデバイスデータを同期させつつ、スキャンの実行が停滞することを防止できる。
【００７３】
図８を用いて、上記実施の形態で説明したプログラマブルコントローラ１０の各種制御と同様の制御を実現するコンピュータの一例を説明する。図８は、実施の形態に係るプログラマブルコントローラ１０のハードウェア構成の一例を示す図である。
【００７４】
図８に示すように、プログラマブルコントローラ１０としてのコンピュータ１００は、例えば、プロセッサ１０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、入力インタフェース１０４、入力デバイス１０５、出力インタフェース１０６、出力デバイス１０７、通信インタフェース１０８、及びバス１０９を含む。プロセッサ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力インタフェース１０４、入力デバイス１０５、出力インタフェース１０６、出力デバイス１０７、及び通信インタフェース１０８は、バス１０９を介して接続されている。
【００７５】
ＲＡＭ１０２はデータの読み書き可能な記憶装置であって、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）又はＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）の半導体記憶素子が用いられる。ＲＡＭ１０２の代わりにフラッシュメモリを用いてもよい。ＲＡＭ１０２は、プロセッサ１０１が実行する各種制御における処理結果を一時的に記憶する作業領域に利用される。ＲＡＭ１０２は、例えば、一時メモリ１２及びワーキングメモリ１３に対応する。ＲＯＭ１０３は、プログラム及びデータの読み出しが可能な記憶装置であって、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）も含む。ＲＯＭ１０３は、プロセッサ１０１が実行する各種制御を実現するためのプログラム及びデータの記録に用いられる。ＲＯＭ１０３は、プログラムメモリ１１に対応する。
【００７６】
入力インタフェース１０４は、入力デバイス１０５からの入力信号をプロセッサ１０１に伝達する回路である。出力インタフェース１０６は、プロセッサ１０１の指示に応じた出力デバイス１０７への出力を実行させる回路である。通信インタフェース１０８は、ネットワーク１を介して実行する通信の制御を行なう回路である。通信インタフェース１０８は、例えばネットワークインターフェースカード（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。入力インタフェース１０４及び出力インタフェース１０６は、統合された１つのユニットであってもよい。通信インタフェース１０８は、通信制御部１５に対応する。
【００７７】
プロセッサ１０１は、ＲＯＭ１０３に記憶されたプログラムを読み出してＲＡＭ１０２に展開し、ＲＡＭ１０２に展開されたプログラムに含まれる命令を実行する。プロセッサ１０１がプログラムに含まれる命令の実行結果に応じて動作することにより、プログラムメモリ１１に記憶された同期制御プログラム１１ａにより提供される機能に対応する各種制御が実現される。プロセッサ１０１は、例えば、制御部１４に対応する。
【００７８】
同期制御プログラム１１ａにより提供される機能に対応する各種制御を実現するプログラム及び当該プログラムによる処理に用いられるデータは、最初からＲＯＭ１０３に記憶させておく必要はない。例えば、各種制御を実現するプログラム及び当該プログラムによる処理に用いられるデータを、公衆回線、インターネット、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といったネットワークを介してコンピュータ１００に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ１００がこれらからプログラム及びデータをダウンロードして実行してもよい。
【００７９】
図８に示すように、プロセッサ１０１がＲＯＭ１０３に記憶されたプログラムを読み出して実行することにより、同期制御プログラム１１ａにより提供される機能に対応する各種制御を実現する例には限定されない。同期制御プログラム１１ａにより提供される機能に対応する各種制御のそれぞれを実現するための複数の処理回路を連携させたワイヤードロジックにより、同期制御プログラム１１ａにより提供される機能に対応する各種制御を実現してもよい。例えば、同期制御プログラム１１ａにより提供される機能に対応する処理回路には、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ(Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ)を適用できる。
【００８０】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００８１】
１  ネットワーク、１０  プログラマブルコントローラ、２０，３０  外部機器。
【図１】
2017119100.tif 000003
【図２】
2017119100.tif 000004
【図３】
2017119100.tif 000005
【図４】
2017119100.tif 000006
【図５】
2017119100.tif 000007
【図６】
2017119100.tif 000008
【図７】
2017119100.tif 000009
【図８】
2017119100.tif 000010
【手続補正書】
【提出日】平成30年1月16日(2018.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の外部機器に対し周期的に制御を行うプログラマブルコントローラであって、
一時メモリと、
ワーキングメモリと、
制御部とを備え、
前記制御部は、
同期制御の対象となる前記外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信し、
前記要求パケットに対する応答として前記外部機器から受信する応答パケットから前記デバイスデータを取得して、取得した前記デバイスデータを前記一時メモリに格納し、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信された場合に、受信した制御周期内で前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書込み、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信されない場合に、受信されない制御周期内では前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書き込まない
ことを特徴とするプログラマブルコントローラ。
【請求項２】
前記制御部は、同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットが受信されるまで、当該応答パケットの受信待機状態を保持することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
複数の外部機器に対し周期的に制御を行うプログラマブルコントローラであって、
一時メモリと、
ワーキングメモリと、
同期制御の対象となる前記外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信し、
前記要求パケットに対する応答として前記外部機器から受信する応答パケットから前記デバイスデータを取得して、取得した前記デバイスデータを前記一時メモリに格納し、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信された場合に、受信した制御周期内で前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書込み、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信されない場合に、受信されない制御周期内では前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書き込まない制御部と
を備え、
前記制御部は、同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットを受信されるか否かを判定する判定部を有し、
前記判定部により前記応答パケットが未受信である場合、当該応答パケットの受信待機状態を保持することを特徴とするプログラマブルコントローラ。
【請求項４】
複数の外部機器に対し周期的に制御を行うプログラマブルコントローラに、
同期制御の対象となる前記外部機器のそれぞれに対して当該外部機器の制御に用いるデバイスデータの送信を要求する要求パケットを送信するステップと、
前記要求パケットに対する応答として前記外部機器から受信する応答パケットから前記デバイスデータを取得して、取得した前記デバイスデータを前記一時メモリに格納するステップと、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信された場合に、受信した制御周期内で前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書込むステップと、
同期制御の対象となる前記外部機器から、同一の制御周期内で送信済みの前記要求パケットに対応する前記応答パケットがそれぞれ受信されない場合に、受信されない制御周期内では前記一時メモリに記憶されている前記デバイスデータを前記ワーキングメモリに書き込まないステップと
を実行させることを特徴とする同期制御プログラム。
【国際調査報告】
2017119100.tif 000011
2017119100.tif 000012
2017119100.tif 000013
2017119100.tif 000014