(57)【要約】【課題】  プログラマブルコントローラにおいて、ＣＰＵユニットがスレーブユニットの受信確認を容易にできるようにする。【解決手段】  スレーブユニット１２がデータ授受のための共有メモリ１３を備えたプログラマブルコントローラにおいて、共有メモリ１３にカウンタ値を書き込む入出力処理カウンタ格納エリア１０５を備え、スレーブユニットが返信する毎に前記カウンタ値を更新し、前記ＣＰＵユニットが前記カウンタ値の更新を確認する。【選択図】    図１
2007128413.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニットとスレーブユニットとで構成され、
前記スレーブユニットが、前記ＣＰＵユニットとのデータ授受のための共有メモリを備えたプログラマブルコントローラにおいて、
前記共有メモリに、カウンタ値を書き込む入出力処理カウンタ値格納エリアを備え、
前記スレーブユニットが、前記ＣＰＵユニットからの指令を処理して返信する毎に、前記カウンタ値を更新して前記入出力処理カウンタ値格納エリアに書き込み、前記ＣＰＵユニットが前記カウンタ値の更新を確認することを特徴とするプログラマブルコントローラ。
【請求項２】
ＣＰＵユニットとスレーブユニットとで構成され、
前記スレーブユニットが、前記ＣＰＵユニットとのデータ授受のための共有メモリを備え、
前記共有メモリに状態データ格納エリアを備えたプログラマブルコントローラにおいて、
前記スレーブユニットが、前記ＣＰＵユニットからの指令を処理して返信する毎に、カウンタ値を含む状態データを前記状態データ格納エリアに書き込み、前記ＣＰＵユニットが、前記状態データ内のカウンタ値をユーザプログラムで確認することを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関し、特にスレーブユニットの受信確認を可能とするプログラマブルコントローラに関する。
【背景技術】
【０００２】
図５は、従来例のプログラマブルコントローラの構成図である。
図において、１１はＣＰＵユニット、１２はスレーブユニットである。
ＣＰＵユニット１１にはＣＰＵ１０１を備え、スレーブユニット１２にはＣＰＵ１０２と共有メモリ１２を備えている。また、共有メモリ１２には、制御データ格納エリア１０３、状態データ格納エリア１０４がある。
ＣＰＵユニットとスレーブユニット間のデータ授受は、共有メモリ１２を介して行われる。
図６は、従来例のプログラマブルコントローラの動作フローである。
ＣＰＵユニットでは、ユーザプログラム実行処理とスレーブユニットとの入出力処理とをサイクリックに実行する。一方、スレーブユニットでは、ＣＰＵユニットとの入出力処理とユーザプログラム実行処理をサイクリックに実行する。
プログラマブルコントローラのソフトウエアは、基本動作を実行するシステムプログラムと、システム仕様実現のためのユーザプログラムとで構成される。
ＣＰＵユニット１１においては、制御や監視などはユーザプログラムで実行し、スレーブユニットとの入出力処理はシステムプログラムで実行している。
スレーブユニット１２においては、ＣＰＵユニットとの入出力処理はシステムプログラムで実行し、入出力処理結果を受けた処理はユーザプログラムで実行する。なお、スレーブユニット１２では、すべての処理をシステムプログラムで行う場合もある。
ここで、システムプログラムとユーザプログラム間のデータ授受は、ユーザ入力メモリとユーザ出力メモリを介して行なわれる。システムプログラムは、ユーザ出力メモリのデータを読み出して処理を行い、その処理結果をユーザ入力メモリに書き込む。一方、ユーザプログラムは、ユーザ入力メモリのデータを読み出して処理を行い、その処理結果をユーザ出力メモリに書き込むようにしている。
【０００３】
以下、図６に基づいて動作を説明する。
先ず、ユーザプログラム実行処理（Ｓ１０１）では、ユーザプログラムを実行し実行結果をユーザ出力メモリに書き込む。その後、スレーブユニットとの入出力処理（Ｓ１０２）では、ユーザ出力メモリのデータを読み出して、制御データとして制御データ格納エリア１０３に書き込む。同時に、状態データ格納エリア１０４の状態データを読み出してユーザ入力メモリに書き込む。このユーザ入力メモリのデータはユーザプログラムに反映される。
次に、ＣＰＵユニットとの入出力処理（Ｓ１０３）では、制御データ格納エリア１０３から制御データを読み出してユーザ入力メモリに書き込む。このユーザ入力メモリのデータでユーザプログラムが実行される。また、ユーザプログラムの実行結果であるユーザ出力メモリのデータを読み出して、状態データ格納エリア１０４に書き込む。ここで、スレーブユニットの処理をすべてシステムプログラムが行う場合もある。
このようにして、ＣＰＵユニット１１でのユーザプログラムの処理結果がスレーブユニット１２に送られ、スレーブユニット１２で処理されることで、システム動作が実現できるのである。
ここで、ＣＰＵユニットの入出力処理とスレーブユニットの入出力処理とは独立して行われ、非同期である。また、ＣＰＵユニット１１では複数の処理が平行して実行されるので、共有メモリへのアクセスは必ずしも一定周期とはならない。
マスタ／スレーブ方式の別の従来例として、受信確認データを設ける方法がある。（たとえば、特許文献１参照）
ここでは、受信確認用としてハンドシェークフラグを設けている。
マスタのＦＡコントローラは、指令データを指令データ格納エリアに書き込んだ後、ハンドシェークフラグに「要求あり」と書き込む。
スレーブのプログラマブルコントローラは、このハンドシェークフラグを監視しており、「要求あり」を検知すると指令データを読み出す。所定の処理を終了した後、応答データを応答データ格納エリアに書き込み、前記ハンドシェークフラグに「応答あり」とセットする。
ＦＡコントローラはこのハンドシェークフラグを監視しており、「応答あり」と確認されたら、応答データを読み出すようにしている。
【特許文献１】特許第２８４８７６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来例ではＣＰＵユニットの入出力処理とスレーブユニットの入出力処理は非同期に行われるので、スレーブユニットが受信できたかどうかをＣＰＵユニットが確認出来ないという問題があった。
【０００５】
また、別の従来例ではハンドシェークフラグを監視するための処理が必要である。また、複数の処理が平行して行われる場合は複数のフラグが必要があり、より多くの処理時間が必要になるという問題があった。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、スレーブユニットが受信したことを容易に確認でき、かつ受信確認のための処理時間が少ないプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は次のように構成したのである。
請求項１に記載の発明は、ＣＰＵユニットとスレーブユニットとで構成され、前記スレーブユニットが、前記ＣＰＵユニットとのデータ授受のための共有メモリを備えたプログラマブルコントローラにおいて、前記共有メモリに、カウンタ値を書き込む入出力処理カウンタ値格納エリアを備え、前記スレーブユニットが、前記ＣＰＵユニットからの指令を処理して返信する毎に、前記カウンタ値を更新して前記入出力処理カウンタ値格納エリアに書き込み、前記ＣＰＵユニットが前記カウンタ値の更新を確認するようにしたのである。
【０００８】
また、請求項２に記載の発明は、ＣＰＵユニットとスレーブユニットとで構成され、前記スレーブユニットが、前記ＣＰＵユニットとのデータ授受のための共有メモリを備え、前記共有メモリに状態データ格納エリアを備えたプログラマブルコントローラにおいて、
前記スレーブユニットが、前記ＣＰＵユニットからの指令を処理して返信する毎に、カウンタ値を含む状態データを前記状態データ格納エリアに書き込み、前記ＣＰＵユニットが、前記状態データ内のカウンタ値をユーザプログラムで確認するようにしたのである。
【発明の効果】
【０００９】
請求項１に記載の発明によると、入出力処理カウンタ値の更新を確認することで、スレーブユニットの受信を容易に確認でき、かつ受信確認に必要な時間も短くてすむのである。
【００１０】
また、請求項２に記載の発明によると、ユーザプログラムで入出力処理カウンタ値の更新を確認することができるので、受信確認の処理が容易でかつ処理時間も短くできる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について、図を参照して説明する。
【実施例１】
【００１２】
図１は、本発明の第１実施例を示すプログラマブルコントローラの構成図である。
共有メモリ１３には、制御データ格納エリア１０３と状態データ格納エリア１０４、入出力処理カウンタ値格納エリア１０５を備えている。従来例と異なる点は、入出力処理カウンタ格納エリア１０５を備えた点である。
図２は、本発明の第１実施例を示すプログラマブルコントローラの動作フローである。従来例と異なる点は、スレーブユニットとの入出力処理（Ｓ１０２ａ）に入出力処理カウンタ値の読み出しが追加され、ＣＰＵユニットとの入出力処理（Ｓ１０３ａ）に入出力処理カウンタ値の書き込みが追加され、カウンタ値の更新確認（Ｓ１０５）が追加された点である。
以下、図に基づいて動作を説明する。
ＣＰＵユニット１１のユーザプログラム実行処理（Ｓ１０１）、スレーブユニット１２のユーザプログラム実行処理（Ｓ１０４）は、従来例と同様であるので説明を省略する。
スレーブユニット１２では、ＣＰＵユニットとの入出力処理（Ｓ１０３ａ）において、制御データ読み出しおよび状態データ書き込みの処理の後、入出力処理カウンタ値格納エリア１０５のカウンタ値を更新する。なお、カウンタ値の更新は、通常はインクリメントする方法をとるが、これに限定されない。
ＣＰＵユニット１１は、スレーブユニットとの入出力処理（Ｓ１０２ａ）において、制御データ書き込みおよび状態データ読み出しの処理の後、入出力処理カウンタ値格納エリア１０５のカウンタ値を読み出す。
次に、カウンタ値の更新確認（Ｓ１０５）において、読み出したカウンタ値が更新されているか否か確認する。これが更新されている場合に、スレーブユニット１２が受信したと認識する。
なお、上記の各入出力処理とカウンタ値の更新確認はシステムプログラムで行われる。
このようにして、ＣＰＵユニット１１が入出力処理カウンタ値の更新を確認することで、スレーブユニット１２が受信したかどうかを、ＣＰＵユニット１１が判断することが出来るのである。
別の従来例では、ハンドシェークフラグを、相手がリセットするまで待つ必要があるが、本実施例のカウンタ方式では、の更新を必ずしも待つ必要はなく、その実行処理内容によって更新の確認をするか否かを決めればよい。
また、受信確認できる別の効果として、ユーザプログラムのデバッグやトラブルシュートに要する時間を短縮することができる。
【実施例２】
【００１３】
図３は、本発明の第２実施例を示すプログラマブルコントローラの構成図である。
共有メモリ１３には、従来例と同様に、制御データ格納エリア１０３、状態データ格納エリア１０４を備えている。従来例との違いは、状態データエリア１０４のデータ中に入出力処理カウンタが含まれている点である。図では、状態データ内に入出力処理カウンタ値のデータが存在する様子を示す。
図４は、本発明の第２実施例を示すプログラマブルコントローラの動作フローである。
従来例とは、ＣＰＵユニットのユーザプログラム実行（Ｓ１０１ｂ）、スレーブユニットの入出力処理（Ｓ１０２ｂ）、ＣＰＵユニットの入出力処理（Ｓ１０３ｂ）の処理内容が異なっている。
以下、図に基づいて動作を説明する。
スレーブユニットのユーザプログラム実行処理（Ｓ１０４）は、従来例と同様であるので説明を省略する。
スレーブユニットにおいて、ＣＰＵユニットの入出力処理（Ｓ１０３ｂ）では、状態データを書き込むときに、状態データ内の入出力処理カウンタ値を更新する。なお、更新の方法は第１実施例と同様である。
ＣＰＵユニットにおいては、スレーブユニットとの入出力処理（Ｓ１０２ｂ）では、状態データを読み出す処理で入出力処理カウンタ値を含めて読み出す。
これを受けてユーザプログラムが実行されるが（Ｓ１０１ｂ）、このユーザプログラムでカウンタ値を参照し更新を確認する。カウンタ値が更新されている場合、スレーブユニットが受信したことを認識する。
本実施例では、第１実施例と異なり、カウンタ値の確認のための共有メモリへのアクセスが不要なので、処理時間が少なくてすむ。
また、ユーザプログラムからカウンタ値を参照できるので、処理の内容によってカウンタ値の更新を確認するか否かを、自由に選択できる。
【産業上の利用可能性】
【００１４】
本発明は、共有メモリを使ってデータ授受を行うマスタ／スレーブ方式制御装置に適用できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施例を示すプログラマブルコントローラの構成図
【図２】本発明の第１実施例を示すプログラマブルコントローラの動作フロー
【図３】本発明の第２実施例を示すプログラマブルコントローラの構成図
【図４】本発明の第２実施例を示すプログラマブルコントローラの動作フロー
【図５】従来例のプログラマブルコントローラの構成図
【図６】従来例のプログラマブルコントローラの動作フロー
【符号の説明】
【００１６】
１１  ＣＰＵユニット
１２  スレーブユニット
１３  共有メモリ
１０１  ＣＰＵユニットのＣＰＵ
１０２  スレーブユニットのＣＰＵ
１０３  制御データ格納エリア
１０４  状態データ格納エリア
１０５  入出力処理カウンタ格納エリア
【図１】
2007128413.tif 000003
【図２】
2007128413.tif 000004
【図３】
2007128413.tif 000005
【図４】
2007128413.tif 000006
【図５】
2007128413.tif 000007
【図６】
2007128413.tif 000008