(57)【特許請求の範囲】
【請求項１】
制御対象機器を制御するプログラマブルコントローラで実行可能な制御プログラムを編集するプログラム編集部、及び前記プログラム編集部で編集される制御プログラムを記憶する記憶部を有する制御プログラムの編集装置であって、
前記制御プログラムは、前記制御対象機器の動作単位毎に設けられる複数のステップ、及び前記複数のステップ間の遷移条件を示す複数のトランジションを含むチャート式プログラムと、前記複数のステップの動作内容、及び前記複数のトランジションの遷移条件を複数の接点及びコイルを含む回路要素によって表したラダープログラムとを有し、
前記プログラム編集部は、
前記複数のステップのうち、前記制御対象機器の可動部を一方向に動作させる順動作ステップと前記可動部を逆方向に操作させる逆動作ステップとの間の中間ステップを抽出する抽出手段と、
前記複数のステップを上流側から下流側に連続して実行する連続運転における前記中間ステップの実行開始後に前記連続運転が途中停止して前記チャート式プログラムを最も上流側のステップから再度実行する際に前記中間ステップの実行を行わせないためのプログラム要素を前記制御プログラムに付加するプログラム要素付加手段とを備えた、
制御プログラムの編集装置。
【請求項２】
前記プログラム要素付加手段は、前記プログラム要素として、前記中間ステップの前記チャート式プログラムにおける上流側と下流側とを結ぶバイパス回路、及び前記中間ステップの実行開始後に前記連続運転が途中停止して前記チャート式プログラムを最も上流側のステップから再度実行する場合に前記バイパス回路を有効とするためのトランジションを前記チャート式プログラムに付加する、
請求項１に記載の制御プログラムの編集装置。
【請求項３】
前記プログラム要素付加手段は、前記プログラム要素として、前記中間ステップに対応する前記トランジションの前記ラダープログラムに、前記中間ステップの実行を行わせないための回路要素を付加する、
請求項１に記載の制御プログラムの編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機器を制御するプログラマブルコントローラで実行可能な制御プログラムを編集するための制御プログラムの編集装置に関する。
【背景技術】
【０００２】
従来、制御対象機器の動作単位毎に設けられる複数のステップ、及び複数のステップ間の遷移条件を示す複数のトランジションを含むシーケンシャル・ファンクション・チャート式プログラム（以下、「チャート式プログラム」という）と、複数のステップの具体的な動作内容、及びトランジションの遷移条件を複数の接点及びコイルを含む回路要素によって表したラダープログラムとを有する制御プログラムに従って、制御対象機器を制御するプログラマブルコントローラが知られている（例えば、特許文献１参照）。
【０００３】
チャート式プログラム、及びラダープログラムは、それぞれＩＥＣ６１１３１−３規格において、ＳＦＣ言語、及びラダー言語として定義されている。チャート式プログラムは、個別の動作単位の動作順序をフローチャートのように記述する形式であり、例えば制御プログラムがラダープログラムのみによって記述された場合に比較して、制御対象機器の動作の流れを容易に把握することが可能である。
【０００４】
一方、チャート式プログラムは、個別の制御処理を表す複数のステップを先頭から順次実行することを前提として記述されるため、複数のステップを上流側から下流側に連続して実行する連続運転中に何らかの異常が発生して途中停止すると、異常処理後の再起動時において途中停止前に実行されたステップの処理が再度実行されてしまう場合がある。そして、ステップの動作内容によっては、ワークや制御対象機器を損傷してしまうおそれがある。
【０００５】
そこで、特許文献１に記載のプログラマブルコントローラでは、各トランジションの遷移条件を示すラダープログラムを、再起動時にオン状態となる途中起動フラグと、各トランジションの直前のステップの起動条件等とを組み合わせて構成することによって、途中停止する前に実行済みのステップの処理を再度実行しないように構成している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−９７０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、このようなラダープログラムを各トランジションに対して作成することは、プログラム作成者の負担が大きかった。そこで、本願発明者らは、このようなプログラム作成者の負担を軽減すべく鋭意検討し、異常処理後の再起動時に再度実行するとワークや制御対象機器を損傷してしまうおそれがあるステップは、チャート式プログラムに含まれる複数のステップのうち一部のステップであることに着目し、この一部のステップの処理を再起動時に実行しないようにすれば、このような損傷を回避することができるという着想を得て本発明をなすに至った。
【０００８】
すなわち、本発明は、制御対象機器を制御するプログラマブルコントローラで実行可能な制御プログラムを作成するプログラム作成者の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の目的を達成するため、制御対象機器を制御するプログラマブルコントローラで実行可能な制御プログラムを編集するプログラム編集部、及び前記プログラム編集部で編集される制御プログラムを記憶する記憶部を有する制御プログラムの編集装置であって、前記制御プログラムは、前記制御対象機器の動作単位毎に設けられる複数のステップ、及び前記複数のステップ間の遷移条件を示す複数のトランジションを含むチャート式プログラムと、前記複数のステップの動作内容、及び前記複数のトランジションの遷移条件を複数の接点及びコイルを含む回路要素によって表したラダープログラムとを有し、前記プログラム編集部は、前記複数のステップのうち、前記制御対象機器の可動部を一方向に動作させる順動作ステップと前記可動部を逆方向に操作させる逆動作ステップとの間の中間ステップを抽出する抽出手段と、前記複数のステップを上流側から下流側に連続して実行する連続運転における前記中間ステップの実行開始後に前記連続運転が途中停止して前記チャート式プログラムを最も上流側のステップから再度実行する際に前記中間ステップの実行を行わせないためのプログラム要素を前記制御プログラムに付加するプログラム要素付加手段とを備えた、制御プログラムの編集装置を提供する。
【発明の効果】
【００１０】
本発明によれば、制御対象機器を制御するプログラマブルコントローラで実行可能な制御プログラムを作成するプログラム作成者の負担を軽減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態に係る制御プログラム編集装置を、プログラマブルコントローラ、設備、及び操作盤と共に示す構成図である。
【図２】制御プログラム編集装置の機能構成を示すブロック図である。
【図３】制御プログラム編集装置の記憶部に記憶された制御プログラムにおけるチャート式プログラムである。
【図４】ダイアログボックスの一例を示す説明図である。
【図５】図３に示すチャート式プログラムに、プログラム要素付加手段によって自動生成されたバイパス回路が追加されたチャート式プログラムの例である。
【図６】（ａ）〜（ｃ）は、プログラム要素付加手段によって生成されるラダープログラムの一例を示す。
【図７】（ａ）及び（ｂ）は、本発明の第２の実施の形態に係るプログラム要素付加手段によって生成されるラダープログラムの一例を示す。
【発明を実施するための形態】
【００１２】
［第１の実施の形態］
以下、本発明の第１の実施の形態を、図１乃至図６を参照して説明する。なお、以下に示す実施の形態は、本発明を実施する上での好適な具体例として示すものであり、技術的に好ましい種々の技術的事項を具体的に例示している部分もあるが、本発明の技術的範囲は、この具体的態様に限定されるものではない。
【００１３】
図１は、本発明の第１の実施の形態に係る制御プログラムの編集装置としての制御プログラム編集装置２を、プログラマブルコントローラ１０、制御対象機器としての設備１２、及びモニタ装置３を備えた操作盤１３と共に示す構成図である。
【００１４】
本実施の形態では、制御プログラム編集装置２が、ＭＰＵ（Micro-processing unit）及びその周辺回路等を有して構成された本体部２０、表示部としてのディスプレイ２０１、文字入力部としてのキーボード２０２、及びポインティングデバイスとしてのタッチパッド２０３を有する可搬型コンピュータ（ノートパソコン）によって構成されている。ただし、制御プログラム編集装置２の構成はこれに限らず、例えば据置型コンピュータ（デスクトップパソコン）にディスプレイやキーボード及びポインティングデバイス等の周辺機器を組み合わせて構成されていてもよい。
【００１５】
制御プログラム編集装置２は、プログラマブルコントローラ１０によって実行される制御プログラムを編集する機能を有している。制御プログラム編集装置２において編集された制御プログラムは、通信ケーブル１４１によってプログラマブルコントローラ１０に転送される。この制御プログラムは、ＳＦＣ言語によって記述されたチャート式プログラムと、チャート式プログラムの後述する各ステップ及びトランジションに対応するラダー言語によるラダープログラムとを含んでいる。これらのＳＦＣ言語及びラダー言語は、ＩＥＣ６１１３１−３規格に規定されたものである。
【００１６】
プログラマブルコントローラ１０は、電源モジュール１０１、ＣＰＵモジュール１０２、通信モジュール１０３、出力モジュール１０４、入力モジュール１０５、及びこれら各モジュールが装着されたベース１００を有して構成されている。電源モジュール１０１は、ベース１００を介して、ＣＰＵモジュール１０２等に電源を供給する。通信モジュール１０３は、操作盤１３のモニタ装置３との通信を行う。
【００１７】
出力モジュール１０４は、設備１２に設けられた複数のアクチュエータ１２１に接続された複数の出力接点を有している。複数のアクチュエータ１２１は、例えばソレノイドやモータ、あるいは油圧を制御する電磁切換弁等からなる。入力モジュール１０５は、設備１２に設けられた複数のセンサ１２２からの入力信号によってオン／オフする複数の入力接点を有している。複数のセンサ１２２は、例えば近接センサや光電センサ、あるいはリミットスイッチ等からなる。
【００１８】
ＣＰＵモジュール１０２は、制御プログラム編集装置２によって編集された制御プログラムを実行し、入力モジュール１０５の各入力接点の状態等に応じて出力モジュール１０４の各出力接点をオン／オフさせることにより、設備１２を制御する。本実施の形態では、設備１２が工作機械であり、搬入されたワークに対して所定の部品の組み付けを行うものとする。
【００１９】
操作盤１３は、モニタ装置３と、自動／各個選択スイッチ１３１と、運転準備スイッチ１３２と、起動スイッチ１３３と、実行スイッチ１３４と、非常停止スイッチ１３５とを有している。自動／各個選択スイッチ１３１は、制御プログラム編集装置２によって編集された制御プログラムに従って連続運転を行う自動運転モードと、設備１２のアクチュエータ１２１に個別の動作を行わせる各個操作モードとを切り替えるスイッチである。運転準備スイッチ１３２は、設備１２のアクチュエータ１２１を動作可能とするためのスイッチである。起動スイッチ１３３は、自動運転の起動を指示するためのスイッチである。実行スイッチ１３４は、各個操作モードでの個別動作の実行を指示するためのスイッチである。非常停止スイッチ１３５は、設備１２の動作を即時停止させるためのスイッチである。これらの各スイッチ１３１〜１３５は、プログラマブルコントローラ１０の入力モジュール１０５に接続されている。
【００２０】
モニタ装置３の表示器３１には、自動運転モードにおいて、プログラマブルコントローラ１０によるチャート式プログラムの各ステップの実行状況を示す運転状態表示画面が表示される。また、モニタ装置３の表示器３１には、各個操作モードにおいて、設備１２に行わせることができる個別動作を示す複数の操作ボタンが表示される。図１では、モニタ装置３に運転状態表示画面が表示された状態を示している。
【００２１】
モニタ装置３の表示器３１は、タッチパネルであり、各個操作モードにおいて設備１２の保全担当者等の作業者が表示器３１に表示されたボタンを押すことで、当該ボタンに対応する個別動作を設備１２に行わせることが可能である。この各個操作は、例えば設備１２の自動運転モードでの連続運転中に何らかの異常が発生した場合の復旧作業時に行われる。
【００２２】
モニタ装置３は、通信ケーブル１４２によってプログラマブルコントローラ１０の通信モジュール１０３と接続され、出力モジュール１０４の各出力接点のオン／オフ状態、入力モジュール１０５の各入力接点のオン／オフ状態、及びＣＰＵモジュール１０２が記憶している各種フラグのオン／オフ状態を随時読み出し可能である。また、モニタ装置３は、プログラマブルコントローラ１０から、ＣＰＵモジュール１０２が記憶している制御プログラムを読み出すことも可能である。そして、モニタ装置３は、自動運転モードにおいて、表示器３１にプログラマブルコントローラ１０のＣＰＵモジュール１０２による制御プログラムの実行状況を随時表示する。
【００２３】
制御プログラム編集装置２によって編集されるチャート式プログラムは、設備１２の動作単位毎に設けられる複数のステップと、複数のステップ間の遷移条件を示すトランジションとを含んで記述されたものである。トランジションの遷移条件が満たされていれば、チャート式プログラムの実行を次のステップに進めることが可能となる。チャート式プログラムには、複数のステップの実行順序（フロー）が示されている。
【００２４】
チャート式プログラムに含まれる複数のステップのうち少なくとも一部のステップは、設備１２の可動部を一方向に動作させる順動作ステップ、及びこの可動部を逆方向に操作させる逆動作ステップからなるステップ対をなす。順動作ステップから見た場合、逆動作ステップは反対動作ステップとなる。また、逆動作ステップから見た場合、順動作ステップは反対動作ステップとなる。通常、チャート式プログラムには、複数のステップ対が含まれる。
【００２５】
それぞれのステップ及びトランジションには、ラダープログラムが割り当てられている。ステップに割り当てられたラダープログラムは、当該ステップにおける具体的な動作内容を複数の接点及びコイルを含む回路要素によって表している。また、トランジションに割り当てられたラダープログラムは、ステップ間の遷移条件を１つ又は複数の接点及びコイルを含む回路要素によって表している。
【００２６】
コイル及びリレーは、１つのリレーの構成要素として考えることができる。すなわち、リレーのコイルへの通電又は非通電により、このリレーの接点がオン又はオフされる。接点には、コイルへの通電時にオン状態となり、非通電時にオフ状態となるａ接点と、コイルへの通電時にオフ状態となり、非通電時にオン状態となるｂ接点とがある。また、リレーには、例えば出力モジュール１０４に内蔵された実リレーと、ラダープログラムを記述するために用いられる仮想の内部リレー及びキープリレーと、ＣＰＵモジュール１０２自体の処理によって接点がオン／オフされるステップ起動リレーがある。
【００２７】
各リレーには、それぞれを識別するためのアドレスが割り当てられている。本実施の形態では、実リレーには「Ｙ」で始まるアドレス（例えば、「Ｙ００１」，「Ｙ００２」など）が割り当てられ、内部リレーには「Ｍ」で始まるアドレス（例えば、「Ｍ００１」，「Ｍ００２」など）が割り当てられる。また、キープリレーには「Ｋ」で始まるアドレス（例えば、「Ｋ００１」，「Ｋ００２」など）が割り当てられる。キープリレーは、プログラマブルコントローラ１０の電源が遮断された場合でも、そのオン／オフ状態が記憶されるリレーであり、コイルとしてセットコイルとリセットコイルとを有する。セットコイルへ通電されると、キープリレーのａ接点がオン状態となり、リセットコイルへ通電されると、キープリレーのａ接点がオフ状態となる。ｂ接点は、ａ接点と逆のオン／オフ状態となる。
【００２８】
ステップ起動リレーには、「ＥＫ」で始まるアドレス（例えば、「ＥＫ００１」，「ＥＫ００２」など）が割り当てられる。このステップ起動リレーは、各ステップに対応するラダープログラムの実行を行わせるためのものである。ＣＰＵモジュール１０２は、チャート式プログラムの実行時において、トランジションを通過して次のステップの処理の実行を開始する際に、そのステップに対応するステップ起動リレーの接点を一時的にオン状態とする。
【００２９】
ラダープログラムにおいて、コイルは出力要素であり、コイルが通電状態（活性状態）となるか、あるいは非通電状態（非活性状態）となるかの条件設定が、１つ又は複数の接点の組み合わせによって規定される。例えば、アドレスとしてＹ００１が割り当てられた実リレーのコイルが通電状態となる条件が満たされた場合には、このＹ００１の実リレーの接点（ａ接点）がオン状態となると共に、この接点に接続された設備１２のアクチュエータ１２１が動作する。
【００３０】
モニタ装置３は、ＣＰＵモジュール１０２が実行中のステップを、その前後のステップと共に表示器３１に表示する。この際、モニタ装置３は、例えば表示色を変えることにより、ＣＰＵモジュール１０２が実行中のステップを他のステップと識別可能に表示する。図１に示す例では、ＣＰＵモジュール１０２が実行中のステップをハッチングで図示している。
【００３１】
図２は、制御プログラム編集装置２の機能構成を示すブロック図である。制御プログラム編集装置２は、プログラマブルコントローラ１０で実行可能な制御プログラムを編集するためのプログラム編集部２１を有する本体部２０、編集中の制御プログラムを表示するディスプレイ２０１、ならびにキーボード２０２及びタッチパッド２０３を有している。本体部２０は、さらに、プログラム編集部２１によって編集される制御プログラムを記憶する記憶部２２、及びプログラマブルコントローラ１０との通信を行う通信部２３を有している。記憶部２２は、例えばハードディスクや半導体記憶素子からなる。
【００３２】
なお、タッチパッド２０３に替えて、例えばマウスやトラックボールをポインティングデバイスとして用いることも可能である。また、ディスプレイ２０１を例えば液晶パネル等の表示装置とタッチパッド等の位置入力装置とを組み合わせて構成した場合には、この位置入力装置をポインティングデバイスとして用いることができ、さらに表示装置に表示された文字を位置入力装置へのタッチ操作によって選択することで、キーボード２０２に替えて文字入力を行うことも可能である。
【００３３】
プログラム編集部２１は、制御プログラム編集装置２に予めインストールされたプログラムをＭＰＵが実行することで、中間ステップ抽出手段２１１、及びプログラム要素付加手段２１２として動作する。
【００３４】
中間ステップ抽出手段２１１は、チャート式プログラムに含まれる複数のステップのうち、設備１２の可動部を一方向に動作させる順動作ステップと、この可動部を逆方向に操作させる逆動作ステップとの間の中間ステップを抽出する。
【００３５】
また、プログラム要素付加手段２１２は、複数のステップを上流側から下流側に連続して実行する連続運転における中間ステップの実行開始後に連続運転が途中停止してチャート式プログラムを最も上流側のステップから再度実行する際に中間ステップの実行を行わせないためのプログラム要素を制御プログラムに付加する。
【００３６】
中間ステップ抽出手段２１１及びプログラム要素付加手段２１２のより詳細な処理内容については後述する。
【００３７】
図３は、制御プログラム編集装置２の記憶部２２に記憶された制御プログラムにおけるチャート式プログラムの具体例を示す。このチャート式プログラムは、ＩＥＣ６１１３１−３規格にのっとり、個別の制御処理を表す複数のステップと、ステップ間の遷移条件を表すトランジションとを、交互に並べて記述される。チャート式プログラムの先頭のステップである「ＳＴ０００」は、自動運転モードで設備１２の連続運転を行う自動サイクルを示すステップである。プログラマブルコントローラ１０は、自動運転の開始時に、チャート式プログラムの最上流にあたる「ＳＴ０００」から下流側に向かって、順次各ステップの制御処理を実行する。
【００３８】
図３に示すチャート式プログラムは、前後ユニット前進動作（ＳＴ００１）、上下ユニット上昇動作（ＳＴ００２）、組付けサイクル（ＳＴ００３）、上下ユニット下降動作（ＳＴ００４）、及び前後ユニット後退動作（ＳＴ００５）の各ステップの制御処理を順次実行するように構成されている。ここで、ＳＴ０００〜ＳＴ００５は、各ステップのステップ番号である。
【００３９】
このチャート式プログラムにおいて、前後ユニット前進動作のステップ（ＳＴ００１）は、設備１２の可動部である前後ユニットを一方向（前進方向）に動作させる順動作ステップであり、前後ユニット後退動作のステップ（ＳＴ００５）は、前後ユニットを逆方向（後退方向）に動作させる逆動作ステップである。また、上下ユニット上昇動作のステップ（ＳＴ００２）は、設備１２の可動部である上下ユニットを一方向（上昇方向）に動作させる順動作ステップであり、上下ユニット下降動作のステップ（ＳＴ００４）は、上下ユニットを逆方向（下降方向）に動作させる逆動作ステップである。
【００４０】
前後ユニット前進動作のステップ（ＳＴ００１）と前後ユニット後退動作のステップ（ＳＴ００５）とは１つのステップ対をなす。同様に、上下ユニット上昇動作のステップ（ＳＴ００２）と上下ユニット下降動作のステップ（ＳＴ００４）とは１つのステップ対をなす。すなわち、このチャート式プログラムには、２つのステップ対が含まれている。
【００４１】
各ステップに対する反対ステップは、チャート式プログラムの作成時にプログラム作成者によって設定される。より具体的には、プログラム作成者がチャート式プログラムを作成する際に、制御プログラム編集装置２のディスプレイ２０１に表示されるダイアログボックスに対してプログラム作成者が入力操作を行うことによって設定される。
【００４２】
図４は、このダイアログボックスの一例を示す説明図である。図４では、例として、前後ユニット前進動作のステップ（ＳＴ００１）に関する反対動作ステップを入力するためのダイアログボックス２４を示している。
【００４３】
ダイアログボックス２４には、当該ステップ（ＳＴ００１）の動作内容を示すコメントを入力するためのコメント欄２４１と、反対動作を選択するためのプルダウンメニュー欄２４２が設けられている。プログラム作成者は、ステップの動作内容を示すコメントをコメント欄２４１に入力すると共に、プルダウンメニュー欄２４２のプルダウンメニューから反対動作ステップを選択する。その後、プログラム作成者がダイアログボックス３のＯＫボタン２４３をクリックすると、ダイアログボックス２４のコメント欄２４１及びプルダウンメニュー欄２４２に入力又は選択された内容が確定し、この設定内容が記憶部２２に記憶される。なお、反対動作ステップがない場合には、プルダウンメニュー欄２４２から反対動作ステップを選択する操作は不要である。
【００４４】
ところで、設備１２は、その自動運転中に様々な要因により途中停止する場合がある。例えば組付けサイクル（ＳＴ００３）におけるワークへの部品の組み付け完了後、上下ユニットがワークに干渉すること等により上下ユニット下降動作のステップ（ＳＴ００４）が動作完了に至らない場合等には、トランジション「ＴＲ００４」の遷移条件が満たされず、設備１２が途中停止する。このような場合には、作業者がモニタ装置３の表示内容によって何れのステップで途中停止しているかを確認し、自動／各個選択スイッチ１３１を各個操作モードに切り替え、各個操作によって異常処理を行う。その後さらに作業者は、自動／各個選択スイッチ１３１を自動運転モードに切り替え、設備１２の自動運転を再開（再起動）させる。
【００４５】
この際、プログラマブルコントローラ１０は、チャート式プログラムの最も上流側のステップから実行を再開する。しかし、ワークは既に部品の組み付けが完了した状態であるため、組付けサイクル（ＳＴ００３）の実行を行わせないようにする必要がある。
【００４６】
本実施の形態では、プログラム要素付加手段２１２が、中間ステップ抽出手段２１１によって抽出された中間ステップのチャート式プログラムにおける上流側と下流側とを結ぶバイパス回路、及び中間ステップの実行開始後に連続運転が途中停止してチャート式プログラムを最も上流側のステップから再度実行する場合にバイパス回路を有効とするためのトランジションをチャート式プログラムに付加する。これらのバイパス回路及びトランジションは、プログラム要素付加手段２１２によって付加されるプログラム要素の一態様である。
【００４７】
ここで、中間ステップ抽出手段２１１が中間ステップを抽出する際の処理内容の具体例について説明する。中間ステップ抽出手段２１１は、以下の手順１〜３によって、チャート式プログラムの各ステップの中から中間ステップを抽出する。
【００４８】
手順１：チャート式プログラムの先頭のステップから順次、反対動作ステップが設定されているか否かを判定し、ステップ対をなす順動作ステップ及び逆動作ステップを抽出する。
【００４９】
手順２：手順１で抽出された順動作ステップ及び逆動作ステップとの間のステップを候補ステップとして抽出する。複数のステップ対がある場合には、それぞれのステップ対の順動作ステップ及び逆動作ステップとの間のステップを候補ステップとして抽出する。
【００５０】
手順３：チャート式プログラム中に複数のステップ対が存在する場合、その全てのステップ対について共通して抽出された候補ステップを中間ステップとする。チャート式プログラム中に１つのステップ対のみが存在する場合には、そのステップ対について抽出された候補ステップを中間ステップとする。
【００５１】
図３に示したチャート式プログラムでは、前後ユニット前進動作のステップ（ＳＴ００１）と前後ユニット後退動作のステップ（ＳＴ００５）とがステップ対をなすので、手順２によって、これら両ステップの間のステップ（ＳＴ００２〜ＳＴ００４）が候補ステップとして抽出される。また、図３に示したチャート式プログラムでは、上下ユニット上昇動作のステップ（ＳＴ００２）と上下ユニット下降動作のステップ（ＳＴ００４）とがステップ対をなすので、手順２によって、これら両ステップの間のステップ（ＳＴ００３）が候補ステップとして抽出される。そして、手順３によって、それぞれ抽出された候補ステップに共通して含まれる組付けサイクル（ＳＴ００３）が、中間ステップとして抽出される。
【００５２】
プログラム要素付加手段２１２は、このようにして抽出された中間ステップの実行開始後に設備１２の連続運転が途中停止し、チャート式プログラムを最も上流側のステップから再度実行する際に、この中間ステップの実行を行わせないためのプログラム要素を制御プログラムに付加する。
【００５３】
図５は、図３に示すチャート式プログラムに、プログラム要素付加手段２１２によって自動生成されたバイパス回路４が追加されたチャート式プログラムの例である。図５では、プログラム要素付加手段２１２によって追加されたバイパス回路４を破線で囲って示している。
【００５４】
このバイパス回路４は、中間ステップであるステップ「ＳＴ００３」の１つ上流側に生成されたダミーステップ４０と、このダミーステップ４０とステップ「ＳＴ００３」との間に生成された第１のトランジション（ＴＲ０１１）４１と、第１のトランジション４１と並列に生成された第２のトランジション（ＴＲ０１２）４２と、第２のトランジション４２を通過した場合のジャンプ先を示すバイパス経路４３とを含んでいる。
【００５５】
バイパス経路４３は、ステップ「ＳＴ００３」を迂回して、第２のトランジション４２と、中間ステップであるステップ「ＳＴ００３」の一つ下流側のステップであるステップ「ＳＴ００４」とを接続している。すなわち、バイパス経路４３のジャンプ先は、中間ステップとして抽出されたステップの一つ下流側のステップの直前であり、第２のトランジション４２の遷移条件が満たされた場合は、中間ステップのトランジション「ＴＲ００３」の遷移条件である組付け完了の成否にかかわらず、ステップ「ＳＴ００４」以降のステップが実行される。なお、複数の中間ステップが抽出された場合には、そのうち最も下流側のステップのさらに一つ下流側のステップの直前がバイパス経路４３のジャンプ先となる。
【００５６】
プログラム要素付加手段２１２は、チャート式プログラムにバイパス回路４を付加すると共に、ラダープログラムにも回路を追加する。図６（ａ）〜（ｃ）は、プログラム要素付加手段２１２によって生成されるラダープログラムの一例を示し、（ａ）は中間ステップであるステップ「ＳＴ００３」に、（ｂ）は第１のトランジション４１に、（ｃ）は第２のトランジション４２に、それぞれ対応するラダープログラムを示している。
【００５７】
ステップ「ＳＴ００３」に対応するラダープログラム５０は、ステップ「ＳＴ００３」のステップ起動リレーの接点である「ＥＫ０３」がオン状態となることによりキープリレー「Ｋ０１」がオン状態にセットされる第１の回路５０１と、キープリレー「Ｋ０１」をオフ状態にリセットするための第２の回路５０２によって構成される。
【００５８】
第１の回路５０１は、ステップ起動リレー「ＥＫ０３」の接点のオン／オフ状態のみに応じて、この接点がオン状態である場合にキープリレー「Ｋ０１」がセットされるラダープログラムとして生成されるが、プログラム作成者は、この他にキープリレー「Ｋ０１」をセットするための条件となる各種のインタロック信号等の接点を必要に応じて追加することができる。
【００５９】
第２の回路５０２としては、常時オン接点である「Ｖ０４」のｂ接点（反転接点）によってキープリレー「Ｋ０１」がリセットされる回路が生成されるが、「Ｖ０４」のｂ接点は常時オフであるので、この回路のままではキープリレー「Ｋ０１」がリセットされない。このため、プログラム作成者は、設備１２の構成に応じて、キープリレー「Ｋ０１」をリセットするための条件設定を第２の回路５０２に追加する。具体的には、例えば設備１２の各可動部が原位置にあることを示す接点を、「Ｖ０４」のｂ接点に替えて追加する。
【００６０】
このキープリレー「Ｋ０１」は、第１及び第２のトランジション４１，４２における遷移条件として用いられる。具体的には、キープリレー「Ｋ０１」がリセットされているとき、遷移条件が満たされるように構成されたラダープログラム５１が第１のトランジション４１に対応して設けられる。また、キープリレー「Ｋ０１」がセットされているとき、遷移条件が満たされるように構成されたラダープログラム５２が第２のトランジション４２に対応して設けられる。
【００６１】
第１のトランジション４１に割り当てられたラダープログラム５１におけるリレー「ＴＲ０１１」は、第１のトランジション４１の遷移条件を示し、このリレー「ＴＲ０１１」がオン状態であれば、第１のトランジション４１が通過可能状態となる。また、第２のトランジション４２に割り当てられたラダープログラム５２におけるリレー「ＴＲ０１２」は、第２のトランジション４２の遷移条件を示し、このリレー「ＴＲ０１２」がオン状態であれば、第２のトランジション４２が通過可能状態となる。
【００６２】
途中停止後の再起動ではなく、設備１２の自動運転がチャート式プログラムの先頭のステップであるステップ「ＳＴ０００」から開始された場合、キープリレー「Ｋ０１」はオフ状態であるので、第１のトランジション４１の遷移条件が満たされ、ステップ「ＳＴ００２」の次には、ステップ「ＳＴ００３」の制御処理が実行される。
【００６３】
一方、ステップ「ＳＴ００３」の制御処理によるワークへの組み付け加工が開始された後に途中停止した場合の再起動時には、ステップ「ＳＴ００３」の制御処理の実行時に、第１の回路５０１によってセットされたキープリレー「Ｋ０１」のオン状態が維持されているので、第１のトランジション４１の遷移条件は満たされず、第２のトランジション４２の遷移条件が満たされる。これにより、バイパス経路４３が有効となり、組付けサイクル（ＳＴ００３）の制御処理の実行が省略される。これにより、ワークや設備１２の損傷を回避することが可能となる。
【００６４】
（第１の実施の形態の効果）
以上説明した第１の実施の形態によれば、以下に述べる効果が得られる。
【００６５】
（１）中間ステップ抽出手段２１１によってワークへの加工がなされる中間ステップが抽出され、プログラム要素付加手段２１２によって、途中停止後の再起動時に中間ステップの処理の実行を行わせないためのプログラム要素が付加される。このため、プログラム作成者の負担を軽減することが可能となる。
【００６６】
（２）プログラム要素付加手段２１２によって生成されたバイパス経路及びトランジションがプログラム要素としてチャート式プログラムに付加されるので、プログラム作成者以外の第三者（設備１２の保全担当者等）にとっても、その内容を容易に把握することが可能となる。
【００６７】
［第２の実施の形態］
次に、本発明の第２の実施の形態について、図７を参照して説明する。本実施の形態に係る制御プログラム編集装置２は、第１の実施の形態について図２を参照して説明したものと同様に構成されているが、プログラム要素付加手段２１２による処理の内容が第１の実施の形態とは異なる。以下、このプログラム要素付加手段２１２の処理内容について、図３に示すチャート式プログラムを含む制御プログラムに対して中間ステップの実行を行わせないためのプログラム要素を付加する場合を例にとって詳細に説明する。
【００６８】
本実施の形態に係るプログラム要素付加手段２１２は、途中停止後の再起動に中間ステップの処理の実行を行わせないためのプログラム要素として、中間ステップ抽出手段２１１によって抽出された中間ステップに対応するトランジションのラダープログラムに、この中間ステップの実行を行わせないための回路要素を付加する。
【００６９】
図７（ａ）及び（ｂ）は、本実施の形態に係るプログラム要素付加手段２１２によって生成されるラダープログラムの一例を示す。図７（ａ）は中間ステップであるステップ「ＳＴ００３」のラダープログラムであり、図７（ｂ）は、ステップ「ＳＴ００３」に対応するトランジション「ＴＲ００３」のラダープログラムである。
【００７０】
ステップ「ＳＴ００３」のラダープログラム６０は、図６を参照して第１の実施の形態において説明したものと同様であり、ステップ「ＳＴ００３」のステップ起動リレーの接点である「ＥＫ０３」がオン状態となることによりキープリレー「Ｋ０１」がオン状態にセットされる第１の回路６０１と、キープリレー「Ｋ０１」をオフ状態にリセットするための第２の回路６０２によって構成される。プログラム作成者は、第１の回路６０１及び第２の回路６０２に各種のインタロック信号等の接点を適宜追加する。
【００７１】
図７（ｂ）に示すトランジション「ＴＲ００３」のラダープログラム６１におけるリレー「ＴＲ００３」は、トランジション「ＴＲ００３」の遷移条件を示すリレーであり、このリレー「ＴＲ００３」がオン状態であれば、トランジション「ＴＲ００３」が通過可能状態となる。また、ステップ「ＳＴ００３」の実行を開始する前にリレー「ＴＲ００３」がオン状態であれば、連続運転中にトランジション「ＴＲ００２」を通過した後、ステップ「ＳＴ００３」の制御処理を実行することなく、トランジション「ＴＲ００３」を通過する。
【００７２】
図７（ｂ）に示すラダープログラム６１において、点線で囲って示す領域６１０には、プログラム作成者によって設備１２の構成に応じた各種の接点が設けられる。プログラム要素付加手段２１２は、この領域６１０と並列に、キープリレー「Ｋ０１」がセットされた状態でオン状態となるキープリレー「Ｋ０１」の接点（ａ接点）を付加する。これにより、途中停止後の再起動時には、ステップ「ＳＴ００３」の制御処理が実行されない。
【００７３】
なお、このようなキープリレー「Ｋ０１」の接点（ａ接点）を、中間ステップよりも上流側のステップ（ＳＴ００１〜ＳＴ００２）のトランジション（ＴＲ００１〜ＴＲ００２）のラダープログラムにも追加すれば、途中停止後の再起動時にステップ（ＳＴ００１〜ＳＴ００２）の制御処理の実行を省略することができる。
【００７４】
本実施の形態によれば、プログラム要素付加手段２１２によって途中停止後の再起動時に中間ステップの処理の実行を行わせないためのプログラム要素が付加されるので、第１の実施の形態と同様に、プログラム作成者の負担を軽減することが可能となる。
【符号の説明】
【００７５】
１０…プログラマブルコントローラ、１００…ベース、１０１…電源モジュール、１０２…ＣＰＵモジュール、１０３…通信モジュール、１０４…出力モジュール、１０５…入力モジュール、１２…設備（制御対象機器）、１２１…アクチュエータ、１２２…センサ、１３…操作盤、１３０…モニタ装置、１３０ａ…表示器、１３１…各個選択スイッチ、１３２…運転準備スイッチ、１３３…起動スイッチ、１３４…実行スイッチ、１３５…非常停止スイッチ、１４１，１４２…通信ケーブル、２…制御プログラム編集装置、２０…本体部、２０１…ディスプレイ、２０２…キーボード、２０３…タッチパッド、２１…プログラム編集部、２１１…中間ステップ抽出手段、２１２…プログラム要素付加手段、２２…記憶部、２３…通信部、２４１…コメント欄、２４２…プルダウンメニュー欄、２４３…ＯＫボタン、３…モニタ装置、３１…表示器、４…バイパス回路、４０…ダミーステップ、４１…第１のトランジション、４２…第２のトランジション、４３…バイパス経路、５０，５１，５２，６０，６１…ラダープログラム、５０１，６０１…第１の回路、５０２，６０２…第２の回路、６１０…領域
【図１】
0006500594.tif 000002
【図２】
0006500594.tif 000003
【図３】
0006500594.tif 000004
【図４】
0006500594.tif 000005
【図５】
0006500594.tif 000006
【図６】
0006500594.tif 000007
【図７】
0006500594.tif 000008