(57)【要約】【課題】制御機器間でのハンドシェイク処理を簡略化できるプログラマブルコントローラを提供する。【解決手段】受信側機器との間でハンドシェイク処理を行うプログラマブルコントローラ１００は、受信側機器に出力する信号を保持する出力信号領域１２０、受信側機器が出力した信号を保持する入力信号領域１３０、シーケンスプログラムを実行するシーケンスプログラム実行部１５０、シーケンスプログラムの出力信号を保持する出力信号一時領域１１０、出力信号一時領域１１０の信号状態を出力信号領域１２０にコピーし、入力信号領域１３０に完了信号が通知されるまで、出力信号領域１２０の信号状態を保持するハンドシェイク処理部１４０を有する。【選択図】図６
2018124886.tif 000002
【特許請求の範囲】
【請求項１】
受信側機器との間でハンドシェイク処理を行うプログラマブルコントローラであって、
前記受信側機器に出力する信号を保持する出力信号領域と、
前記受信側機器が出力した信号を保持する入力信号領域と、
シーケンスプログラムを実行するシーケンスプログラム実行部と、
前記シーケンスプログラムの出力信号を保持する出力信号一時領域と、
前記出力信号一時領域の信号状態を前記出力信号領域にコピーし、前記入力信号領域に完了信号が通知されるまで、前記出力信号領域の信号状態を保持するハンドシェイク処理部と、を有することを特徴とする
プログラマブルコントローラ。
【請求項２】
前記シーケンスプログラム実行部は、前記出力信号一時領域の信号状態が前記出力信号領域にコピーされた後、前記入力信号領域に完了信号が通知されるまでの間に、前記出力信号一時領域の信号状態を変更することを特徴とする
請求項１記載のプログラマブルコントローラ。
【請求項３】
前記ハンドシェイク処理部は、前記シーケンスプログラムの前記出力信号がハンドシェイク処理を必要とする信号であるか否かを判定し、ハンドシェイク処理を必要とする信号である場合に、前記出力信号を前記出力信号一時領域に保持させることを特徴とする
請求項１記載のプログラマブルコントローラ。
【請求項４】
前記ハンドシェイク処理部は、前記シーケンスプログラムの前記出力信号がハンドシェイク処理を必要としない信号である場合、前記出力信号を前記出力信号領域に保持させることを特徴とする
請求項３記載のプログラマブルコントローラ。
【請求項５】
前記ハンドシェイク処理部は、前記入力信号領域に前記完了信号が保持されていない場合に、前記出力信号一時領域の信号状態を前記出力信号領域にコピーすることを特徴とする
請求項１記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブルコントローラに関し、特に制御機器間でのハンドシェイク処理を簡略化できるプログラマブルコントローラに関する。
【背景技術】
【０００２】
従来、プログラムブルコントローラを備える複数の制御機器間で通信を行う場合、信号やデータを確実に受け渡すため様々な方法が用いられている。例えば、図１に示すように、受信側機器が信号（Ａ）を確実に受け取ることができる程度の時間を事前に見積もり、送信側機器はタイマ命令等によりその時間は信号の出力状態を保持する方法がある。また、図２に示すように、送受信機器が互いにハンドシェイク用の要求信号（Ａ）と完了信号（Ｂ）とを取り決めておき、これらの信号を用いたハンドシェイク処理を行う方法がある。特許文献１には、このようなハンドシェイク処理の一例が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１３１７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、これらの従来の方法では、タイマ命令やハンドシェイクのシーケンス処理等をユーザが自ら作成する必要があったため、煩雑であり、相応の工数を要していた。また、これらの処理をプログラムに追加することにより、プログラムが複雑化して可読性が低下するという問題や、シーケンスプログラムのスキャンタイムが遅くなるという問題が生じていた。さらに、図１に示すような信号状態を一定時間保持する構成では、受信側機器が確実に受け取ることができるよう余裕を持った時間を設定する必要があり、処理時間が長くなるという問題があった。
【０００５】
本発明はこのような問題点を解決するためになされたものであり、制御機器間でのハンドシェイク処理を簡略化できるプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施の形態にかかるプログラマブルコントローラは、受信側機器との間でハンドシェイク処理を行うプログラマブルコントローラであって、前記受信側機器に出力する信号を保持する出力信号領域と、前記受信側機器が出力した信号を保持する入力信号領域と、シーケンスプログラムを実行するシーケンスプログラム実行部と、前記シーケンスプログラムの出力信号を保持する出力信号一時領域と、前記出力信号一時領域の信号状態を前記出力信号領域にコピーし、前記入力信号領域に完了信号が通知されるまで、前記出力信号領域の信号状態を保持するハンドシェイク処理部と、を有することを特徴とする。
【０００７】
他の実施の形態にかかるプログラマブルコントローラでは、前記シーケンスプログラム実行部は、前記出力信号一時領域の信号状態が前記出力信号領域にコピーされた後、前記入力信号領域に完了信号が通知されるまでの間に、前記出力信号一時領域の信号状態を変更することを特徴とする。
【０００８】
他の実施の形態にかかるプログラマブルコントローラでは、前記ハンドシェイク処理部は、前記シーケンスプログラムの前記出力信号がハンドシェイク処理を必要とする信号であるか否かを判定し、ハンドシェイク処理を必要とする信号である場合に、前記出力信号を前記出力信号一時領域に保持させることを特徴とする。
【０００９】
他の実施の形態にかかるプログラマブルコントローラでは、前記ハンドシェイク処理部は、前記シーケンスプログラムの前記出力信号がハンドシェイク処理を必要としない信号である場合、前記出力信号を前記出力信号領域に保持させることを特徴とする。
【００１０】
他の実施の形態にかかるプログラマブルコントローラでは、前記ハンドシェイク処理部は、前記入力信号領域に前記完了信号が保持されていない場合に、前記出力信号一時領域の信号状態を前記出力信号領域にコピーすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、制御機器間でのハンドシェイク処理を簡略化できるプログラマブルコントローラを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】従来のプログラマブルコントローラにおける送受信処理（タイマ処理）を示す図である。
【図２】従来のプログラマブルコントローラにおける送受信処理（ハンドシェイク処理）を示す図である。
【図３】従来のプログラマブルコントローラにおける送受信処理（タイマ処理）を示すタイムチャートである。
【図４】従来のプログラマブルコントローラにおける送受信処理（ハンドシェイク処理）を示すブロック図である。
【図５】従来のプログラマブルコントローラにおける送受信処理（ハンドシェイク処理）を示すタイムチャートである。
【図６】本発明の実施の形態にかかるプログラマブルコントローラ１００及びプログラマブルコントローラ１００を含むシステムの構成を示すブロック図である。
【図７】プログラマブルコントローラ１００の動作を示すフローチャートである。
【図８】プログラマブルコントローラ１００の動作を示すタイムチャートである。
【図９】プログラマブルコントローラ１００の動作を示す図である。
【図１０】プログラマブルコントローラ１００の動作を示す図である。
【図１１】プログラマブルコントローラ１００の動作を示す図である。
【図１２】プログラマブルコントローラ１００の動作を示す図である。
【図１３】プログラマブルコントローラ１００の動作を示す図である。
【図１４】プログラマブルコントローラ１００の動作を示す図である。
【図１５】プログラマブルコントローラ１００の動作を示す図である。
【図１６】プログラマブルコントローラ１００の動作を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を、従来技術と比較しつつ、図面を用いて説明する。
まず、図３乃至図６を用いて、従来技術の概要を説明する。図３は、従来の送受信機器におけるタイマ処理の一例を示すタイムチャートである。まず、送信側機器のシーケンスプログラムが要求信号Ａを出力する。要求信号Ａは、受信側機器が確実に受け取れるだけの時間（ＴＭＲ時間）にわたって出力が保持される。受信側機器は、要求信号Ａを検知すると、機能実行を開始する。送信側機器は、ＴＭＲ時間が経過すると要求信号Ａの出力を停止する。
【００１４】
図４及び図５は、従来の送受信機器におけるハンドシェイク処理の一例を示すブロック図及びタイムチャートである。まず、送信側機器が要求信号Ａ（図５。図４ではＧ０．０）を出力する。このとき、要求信号Ａは、シーケンスプログラムにより出力信号領域に直接書き込まれる。また、要求信号Ａは、受信側機器による機能実行が完了したことを確認できるまで出力が保持される。受信側機器は、要求信号Ａを検知すると、機能実行を開始する。機能実行が終了すると、受信側機器は完了信号Ｂを出力する。送信側機器のシーケンスプログラムは、入力信号領域に完了信号Ｂが書き込まれたことを検知すると、要求信号Ａの出力を停止する。受信側機器は、要求信号Ａの出力停止を検知すると、完了信号Ｂの出力を停止する。
【００１５】
このように、従来技術では、送信側機器のシーケンスプログラムは、ＴＭＲ時間又は機能実行が完了したことを確認できるまでの間、要求信号Ａを保持する必要がある。この時間はシーケンスプログラムのスキャンタイムに悪影響を与える。また、タイマやハンドシェイク処理専用の回路を使用するため、シーケンスプログラムの構造が複雑である。
【００１６】
図６は、本発明の実施の形態にかかるプログラマブルコントローラ１００を含むシステムのブロック図である。プログラマブルコントローラ１００は送信側機器である。受信側機器は、送信側機器と通信可能な様々な機器であって良く、例えばプログラマブルコントローラ、数値制御装置、ロボットコントローラ等である。
【００１７】
プログラマブルコントローラ１００は、出力信号一時領域１１０、出力信号領域１２０、入力信号領域１３０、ハンドシェイク処理部１４０、シーケンスプログラム実行部１５０を含む。
【００１８】
シーケンスプログラム実行部１５０は、シーケンスプログラムを読み込んで、シーケンスプログラムに記述されたネットを順次実行する。
【００１９】
出力信号一時領域１１０は、シーケンスプログラム実行部１５０が、シーケンスプログラムの実行結果である要求信号を書き込むための記憶領域である。
【００２０】
ハンドシェイク処理部１４０は、受信側機器とのデータ送受信にかかるハンドシェイク処理を実行する。本実施の形態では、従来のようにシーケンスプログラムがハンドシェイク処理を実行するのではなく、シーケンスプログラム実行部１５０が出力信号一時領域１１０に要求信号が書き込まれた後は、ハンドシェイク処理部１４０がハンドシェイク処理を担当する。ハンドシェイク処理部１４０は、典型的にはプログラマブルコントローラ１００のシステムソフトの一機能として実装され得る。
【００２１】
出力信号領域１２０は、受信側機器に対して出力する要求信号を書き込むための記憶領域である。出力信号領域１２０に書き込まれた要求信号は、受信側機器の入力信号領域２１０に反映される。
【００２２】
入力信号領域１３０は、受信側機器が出力する完了信号を入力するための記憶領域である。受信側機器の出力信号領域２２０に書き込まれた完了信号が、入力信号領域１３０に反映される。
【００２３】
受信側機器は、入力信号領域２１０及び出力信号領域２２０を含む。
【００２４】
入力信号領域２１０は、プログラマブルコントローラ１００が出力する要求信号を入力するための記憶領域である。プログラマブルコントローラ１００の出力信号領域１２０に書き込まれた要求信号が、入力信号領域２１０に反映される。
【００２５】
出力信号領域２２０は、プログラマブルコントローラ１００に対して出力する完了信号を書き込むための記憶領域である。出力信号領域２２０に書き込まれた完了信号は、プログラマブルコントローラ１００の入力信号領域１３０に反映される。
【００２６】
図７のフローチャート及び図８のタイムチャートを用いて、プログラマブルコントローラ１００の動作について説明する。
Ｓ１乃至Ｓ２：ハンドシェイク処理部１４０は、シーケンスプログラム実行部１５０が出力する実行結果（信号）を監視する。ハンドシェイク処理部１４０は、ハンドシェイク処理の対象となる要求信号の種類を予め保持している。ハンドシェイク処理部１４０は、シーケンスプログラム実行部１５０が出力した信号がハンドシェイク処理の対象となる信号であるか否かを判定する。ハンドシェイク処理の対象であればＳ３へ遷移する。その他の場合はＳ８へ遷移する。
【００２７】
Ｓ３：ハンドシェイク処理部１４０は、シーケンスプログラム実行部１５０からの出力信号を出力信号一時領域１１０へ書き込む。
図８のタイムチャートでは、ステップＳ３の処理により、出力信号一時領域１１０の要求信号Ｇ０．０’が０から１に変化している。
【００２８】
Ｓ４：ハンドシェイク処理部１４０は、ステップＳ３で出力信号一時領域１１０に書き込まれた要求信号に対応する入力信号領域１３０の値が、０又は１のいずれであるか否か判定する。入力信号領域１３０の値が１である場合は、値が０になるまで待機する。入力信号領域１３０の値が０である場合は、Ｓ５へ遷移する。
【００２９】
Ｓ５：ハンドシェイク処理部１４０は、シーケンスプログラム実行部１５０からの出力信号を出力信号領域１２０へ書き込む。
図８のタイムチャートでは、ステップＳ５の処理により、出力信号領域１２０の要求信号Ｇ０．０が０から１に変化している。これを契機として、受信側機器が所定の動作を開始している。要求信号Ｇ０．０は、受信側機器から完了信号を受信するまでの間、ハンドシェイク処理部１４０により出力が保持される。なお、出力信号一時領域１１０の要求信号Ｇ０．０’は、ステップＳ５の処理の後は適宜出力を停止して良い。これは、出力信号一時領域１１０の要求信号Ｇ０．０’を検知したハンドシェイク処理部１４０が、以降のハンドシェイク処理を引き継いだことを意味している。
【００３０】
なお、シーケンスプログラム実行部１５０は、これ以降のシーケンスプログラムの実行処理において出力信号を参照する必要がある場合は、出力信号一時領域１１０ではなく、出力信号領域１２０の値を参照する。
【００３１】
Ｓ６：ハンドシェイク処理部１４０は、入力信号領域１３０を監視し、出力信号領域１２０に書き込まれた要求信号に対応する入力信号領域１３０の値が、０又は１のいずれであるか否か判定する。入力信号領域１３０の値が０である場合は、値が１になるまで待機する。入力信号領域１３０の値が１である場合は、Ｓ７へ遷移する。なお、ハンドシェイク処理部１４０は、要求信号と完了信号との対応関係、すなわちどの要求信号（Ｇ信号）に対してどの完了信号（Ｆ信号）が返ってくるのかを、予め図示しない記憶領域に記憶しているものとする。
図８のタイムチャートでは、受信側機器における動作が完了したことを契機として、入力信号領域１３０の完了信号Ｆ０．０が０から１へ変化している。この完了信号Ｆ０．０を景気として、出力信号領域１２０の出力信号Ｇ０．０が１から０へ変化している。これは、ハンドシェイク処理部１４０が、受信側機器における動作が完了して要求信号の出力を停止した、つまりハンドシェイク処理を完了したことを意味している。
【００３２】
Ｓ７：ハンドシェイク処理部１４０は、出力信号領域１２０の値を１から０に変更する。
図８のタイムチャートでは、ステップＳ７の処理により、出力信号領域１２０の要求信号Ｇ０．０が１から０に変化している。また、この変化を検知した受信側機器が出力信号領域の値を１から０に変更するため、入力信号領域１３０の値もこれを反映して１から０に変更されている（なお、これは公知の動作である）。
【００３３】
Ｓ８：ハンドシェイク処理部１４０は、シーケンスプログラム実行部１５０からの出力信号を出力信号領域１２０へ信号を書き込む。
【００３４】
続いて、図９乃至図１６の模式図を用いて、プログラマブルコントローラ１００の動作について重ねて説明する。
【００３５】
まず、プログラマブルコントローラ１００は、出力信号一時領域１１０を有する点に特徴を有する（図９）。これは、従来のプログラマブルコントローラが有しない新規な構成要素である。
【００３６】
シーケンスプログラム実行部１５０は、シーケンスプログラムのうちＧ信号が存在する、すなわち要求信号の出力命令のあるネットを実行する。シーケンスプログラム実行部１５０は、そのネットの実行結果をハンドシェイク処理部１４０を介して出力信号一時領域１１０に書き込む（図１０）。図１０の例では、シーケンスプログラム実行部１５０は、出力信号一時領域１１０のＧ０．０’を０から１に書き換えている。
【００３７】
ハンドシェイク処理部１４０は、出力信号一時領域１１０の信号が１になったことを検知したなら、入力信号領域１３０の信号状態が０であることを確認する。その後、出力信号一時領域１１０の信号状態を出力信号領域１２０にコピーする（図１１）。
【００３８】
出力信号領域１２０の信号状態が、受信側機器の入力信号領域２１０に反映される。受信側機器は、入力信号領域２１０の信号状態が１の場合、当該信号に対応した動作を実行する（図１２）。例えば、受信側機器が数値制御装置（ＣＮＣ）であれば工作機械の工具の交換、ロボットコントローラであればロボットにワークを動かさせるなどの動作を実行させることが可能である。
【００３９】
ここで、シーケンスプログラム実行部１５０がシーケンスプログラムのＡＣＴをオフにしＧ信号の出力を停止すると、出力信号一時領域１１０の信号状態は１から０に変化する（図１３）。但し、ハンドシェイク処理部１４０が既に要求信号を出力信号領域１２０にコピー及び保持しているため、以降のハンドシェイク処理部１４０を実施することができる。
【００４０】
受信側機器は、所定の動作の実行が完了すると、出力信号領域２２０に１を書き込む。出力信号領域２２０の信号状態は、プログラマブルコントローラ１００の入力信号領域１３０に反映される（図１４）。
【００４１】
ハンドシェイク処理部１４０は、入力信号領域１３０が１になったならば、出力信号一時領域１１０の信号状態を参照する。出力信号一時領域１１０の信号状態が０であれば、出力信号領域１２０の信号状態を０に変更する（図１５）。
【００４２】
出力信号領域１２０の信号状態が、受信側機器の入力信号領域２１０に反映される。受信側機器は、入力信号領域２１０の信号状態が０になったことを検知したなら、出力信号領域２２０の信号状態を０に変更する。出力信号領域２２０の信号状態は、入力信号領域１３０に反映される（図１６）。
【００４３】
本実施の形態によれば、シーケンスプログラム実行部１５０が出力信号一時領域１１０に要求信号を書き込むと、ハンドシェイク処理部１４０が、一連のハンドシェイク処理を実行する。これにより、シーケンスプログラム実行部１５０はハンドシェイクのためのロジックを有する必要が無いのでシーケンスプログラムを簡略化できる。
【００４４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【００４５】
例えば、上述の実施の形態において示した要求信号（Ｇ０．０，Ｇ０．０’）、完了信号（Ｆ０．０）、信号状態（０，１）はあくまで一例であり、他の要求信号及び信号状態にも本発明を適用できることは勿論である。
【符号の説明】
【００４６】
１００  プログラマブルコントローラ
１１０  出力信号一時領域
１２０  出力信号領域
１３０  入力信号領域
１４０  ハンドシェイク処理部
１５０  シーケンスプログラム実行部
２１０  入力信号領域
２２０  出力信号領域
【図１】
2018124886.tif 000003
【図２】
2018124886.tif 000004
【図３】
2018124886.tif 000005
【図４】
2018124886.tif 000006
【図５】
2018124886.tif 000007
【図６】
2018124886.tif 000008
【図７】
2018124886.tif 000009
【図８】
2018124886.tif 000010
【図９】
2018124886.tif 000011
【図１０】
2018124886.tif 000012
【図１１】
2018124886.tif 000013
【図１２】
2018124886.tif 000014
【図１３】
2018124886.tif 000015
【図１４】
2018124886.tif 000016
【図１５】
2018124886.tif 000017
【図１６】
2018124886.tif 000018