(57)【要約】【課題】制御対象機器の故障時等に対処するための例外処理を組込んだプログラムを容易に生成できるシーケンス制御プログラム自動生成装置を提供する。【解決手段】シーケンス制御における操作ブロック図の構成要素となる標準部品オブジェクトを複数定義した標準部品記憶部３７と、制御対象の故障時に対処するための例外処理オブジェクトを複数定義した例外処理記憶部３８とを用いて、操作ブロック図エディタ３５は制御対象とこの制御対象の状態遷移順序と条件を含む操作ブロック図、および例外処理に対応した例外処理ブロック図をそれぞれ作成する。プログラム自動生成部４２は、標準部品対応プログラム記憶部４１に予め上記各ブロック図のシンボルに対応して記憶されているプログラム・テンプレートを用いて例外処理を組込んだシーケンス制御プログラムを生成する。【選択図】図１
2011002868.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス制御における操作ブロック図の構成要素となる制御対象オブジェクトおよびこの制御対象オブジェクトの状態遷移順序と遷移条件を規定した工程オブジェクトとを含むオブジェクトを定義して標準部品オブジェクトとして記憶する標準部品記憶手段と、制御対象の故障時に対処するための上記制御対象オブジェクトの状態遷移順序と遷移条件を規定した例外処理オブジェクトを定義して記憶する例外処理記憶手段と、上記標準部品記憶手段の標準部品オブジェクトおよび上記例外処理記憶手段の例外処理オブジェクトに基づいて、シーケンス制御における制御対象の操作ブロック図、および例外処理に対応した例外処理ブロック図をそれぞれ作成する操作ブロック図作成手段と、上記各制御対象における入出力信号の関係を定義した機器入出力情報を作成する機器入出力情報作成手段と、予め上記各ブロック図のシンボルに対応したプログラム・テンプレートを記憶する標準部品対応プログラム記憶手段と、上記操作ブロック図作成手段で作成された上記操作ブロック図と例外処理ブロック図、上記標準部品対応プログラム記憶手段に記憶されている上記プログラム・テンプレート、および上記機器入出力情報作成手段で作成された上記機器入出力情報に基づいて、例外処理を組込んだシーケンス制御プログラムを生成するプログラム自動生成手段と、を備えるシーケンス制御プログラム自動生成装置。
【請求項２】
上記操作ブロック図作成手段を含む機能部分と、上記シーケンス制御プログラム自動生成手段を含む機能部分とが、互いに分離して設けられている請求項１に記載のシーケンス制御プログラム自動生成装置。
【請求項３】
上記標準部品記憶手段の標準部品オブジェクトは、制御対象の処理を分岐する条件を定義した条件分岐オブジェクト含み、上記プログラム自動生成手段は、上記オブジェクトに基づいて条件分岐または繰り返し動作のシーケンス制御プログラムを生成する請求項１または請求項２に記載のシーケンス制御プログラム自動生成装置。
【請求項４】
上記プログラム自動生成手段によって生成されたシーケンス制御プログラムを実行するシーケンス制御プログラム実行手段を備える請求項１ないし請求項３のいずれか１項に記載のシーケンス制御プログラム自動生成装置。
【請求項５】
上記機器入出力情報作成手段は、制御対象に対して指令する出力信号を他の制御対象からの状態入力信号として折り返すための出力信号折り返し接続アドレスを定義可能に構成されており、上記プログラム自動生成手段は、上記機器入出力情報作成手段で定義された上記出力信号折り返し接続アドレスに基づいて、シーケンス制御プログラムの実行のシミュレートが可能なシーケンス制御プログラムを生成する請求項１ないし請求項４のいずれか１項に記載のシーケンス制御プログラム自動生成装置。
【請求項６】
上記プログラム自動生成手段によって生成されたシーケンス制御プログラムのロジックを、有接点リレーによるシーケンス回路図に変換するシーケンス回路図変換手段を備える請求項１ないし請求項５のいずれか１項に記載のシーケンス制御プログラム自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラントシステムやＦＡ（ファクトリーオートメーション）システムなどを制御するＰＬＣ（プログラマブルロジックコントローラ）のプログラム設計に係り、操作ブロック図で記述される仕様書からシーケンス制御プログラムを自動生成する装置に関するものである。
【背景技術】
【０００２】
プラントシステムやＦＡシステムなどを制御するＰＬＣは、ＰＬＣを動作させるためのプログラムが必要であるが、このプログラム作成にあたって、プログラム設計者が操作ブロック図や動作フローなどの要求仕様を把握し、入力信号の条件や制御対象機器の制御順序、動作タイミング、制御対象機器異常時などの例外処理を考慮しながらロジックを設計し、プログラムを手作業でコーディングしている。このような手作業での設計作業は、要求仕様をプログラムにロジックとして落とし込むことであるが、煩雑な作業なためプログラム設計者に熟練の技術を要し、また、設計やデバックに多くの時間を必要とする作業である。
【０００３】
上記の手作業によるプログラムの設計作業を軽減することを目的として、従来、例えばプラント制御用ソフトウエア作成装置において、当該装置のマンマシン・インターフェースである、プラントフローおよび条件設定を行なう条件作成ウィンドウから、プラント監視・制御の順序に基づいて機器の動作・停止および、動作・停止させる所要条件を指定し、指定された情報を格納した指定リストを作成する。そして、この指定リストの条件に基づきシーケンス作成処理部で、シーケンス制御プログラムを自動生成する技術が提案されている（例えば、下記の特許文献１参照）。
【０００４】
また、他の従来技術では、シーケンスプログラム作成装置へ、要求仕様である動作フローの制御対象機器である要素と、要素の接続情報、および要素の実行可能条件などを入力し、入力された情報から、コンパイラによりフロー要素処理、部品処理、範囲指定処理などからなる、シーケンス制御プログラムを自動生成するようにしたものが提案されている（例えば、下記の特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２２２３０１号公報（第４−７頁、第２図）
【特許文献２】特許第３８５２１９４号公報（第６−頁、第２図）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、従来、シーケンス制御プログラムの自動生成装置において、シーケンス制御プログラムを自動生成するためには、プログラムの基となるプラントフローや動作フロー、操作ブロック図などといった仕様書に記述されているところの、機器の運転・停止順序を決定するための情報や、機器を運転・停止させたり、状態を遷移させたりする条件の情報を装置に入力し、これらの情報をそのままプログラムにロジックとして落とし込んでいる。したがって、シーケンス制御プログラムの自動生成装置からは、プラントフローや動作フローなどに記述されているロジックと、全く同じロジックのプログラムが生成されることになる。
【０００７】
ところで、プラントシステムやＦＡシステムなどでは、システムを構成している制御対象機器は、多数の台数を備えているが、それらの機器が故障した場合や、制御すべき温度や速度などに関してシステム異常状態が発生した場合、安全にシステムを停止させたり、あるいはバックアップ運転させたりするためには、シーケンス制御プログラムにも、これらの機器故障やシステム異常が発生した場合に対処できるように例外処理を行うプログラムが必要となる。
【０００８】
そのためには、故障機器やシステム異常の内容毎に、正常時運転とは異なる例外処理を記述した操作ブロック図や動作フローが必要になるが、制御対象機器の台数が増えると、それぞれに対応して例外処理も増えることになる。このため、従来のシーケンス制御プログラム自動生成装置では、例外処理に対応するための全ての情報を入力しなければならず、多くの時間が必要になっていた。また、これら例外処理は、正常時運転の状態から遷移するため、正常時運転から多くの例外処理へ遷移するための条件を定義することが必要で、その条件設定が煩雑であるなどの問題があった。
【０００９】
本発明は、上記のような課題を解決するためになされたものであり、仕様書に相当する操作ブロック図で表現されるシーケンス制御の制御対象と、これらの制御対象の状態遷移順序、および状態遷移条件を１つの工程として定義し、１つの工程単位で予め定義された例外処理ルールを選択して適用することにより、自動的に例外処理を組み込んだシーケンス制御プログラムを生成できるようにした、シーケンス制御プログラム自動生成装置を提供する。
【課題を解決するための手段】
【００１０】
本発明におけるシーケンス制御プログラム自動生成装置は、シーケンス制御における操作ブロック図の構成要素となる制御対象オブジェクトおよびこの制御対象オブジェクトの状態遷移順序と遷移条件を規定した工程オブジェクトとを含むオブジェクトを定義して標準部品オブジェクトとして記憶する標準部品記憶手段と、制御対象の故障時に対処するための上記制御対象オブジェクトの状態遷移順序と遷移条件を規定した例外処理オブジェクトを定義して記憶する例外処理記憶手段と、上記標準部品記憶手段の標準部品オブジェクトおよび上記例外処理記憶手段の例外処理オブジェクトに基づいて、シーケンス制御における制御対象の操作ブロック図、および例外処理に対応した例外処理ブロック図をそれぞれ作成する操作ブロック図作成手段と、上記各制御対象における入出力信号の関係を定義した機器入出力情報を作成する機器入出力情報作成手段と、予め上記各ブロック図のシンボルに対応したプログラム・テンプレートを記憶する標準部品対応プログラム記憶手段と、上記操作ブロック図作成手段で作成された上記操作ブロック図と例外処理ブロック図、上記標準部品対応プログラム記憶手段に記憶されている上記プログラム・テンプレート、および上記機器入出力情報作成手段で作成された上記機器入出力情報に基づいて、例外処理を組込んだシーケンス制御プログラムを生成するプログラム自動生成手段と、を備えることを特徴としている。
【発明の効果】
【００１１】
本発明によれば、シーケンス制御における制御対象の状態遷移順序および条件を１つの工程として工程オブジェクトに予め定義して、操作ブロック図の構成要素となる制御対象オブジェクトと共に標準部品記憶手段に予め記憶しておき、また、制御対象の故障時に対処するための制御対象の状態遷移順序および条件を１つの工程単位からなる例外処理オブジェクトとして定義して例外処理記憶手段に予め記憶しておき、操作ブロック図作成手段にて、制御対象とその制御対象の状態遷移順序および状態遷移条件を含む操作ブロック図を作成する際に、工程オブジェクトおよび例外処理オブジェクトに基づいて、複数の機器故障等に応じた例外処理ブロック図を必要な数だけ作成し、プログラム自動生成手段で、例外処理の条件発生時に工程オブジェクト内の状態遷移制御を変更して、シーケンス制御プログラムに例外処理プログラムを組み込むようにしたので、自動的に例外処理を組み込んだシーケンス制御プログラムを容易に自動生成することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１におけるシーケンス制御プログラム自動生成装置の構成を示すブロック図である。
【図２】本発明の実施の形態１において、標準部品記憶部に格納されている標準部品オブジェクトの定義内容の一例を示す説明図である。
【図３】本発明の実施の形態１において、例外処理記憶部に格納されている例外処理オブジェクトの定義内容の一例を示す説明図である。
【図４】本発明の実施の形態１において、シーケンス制御対象となる設備と、その設備の動作を制御するための操作ブロック図の一例を示す説明図である。
【図５】図４に示した操作ブロック図の一部と、これに対応してオブジェクトで表現された操作ブロック図データとの関係を示す説明図である。
【図６】図４に示した操作ブロック図に対応してオブジェクトで表現された操作ブロック図データを示す説明図である。
【図７】本発明の実施の形態１において、例外処理となる制御対象機器と、これに対応する操作ブロック図との関係の一例を示す説明図である。
【図８】本発明の実施の形態１において、例外処理となる制御対象機器と、これに対応する操作ブロック図との関係の一例を示す説明図である。
【図９】本発明の実施の形態１において、操作ブロック図エディタで作成された例外処理オブジェクトの一例を示す説明図である。
【図１０】本発明の実施の形態１において、機器入出力情報記憶部に記憶されている入出力信号一覧表の一例を示す説明図である。
【図１１】本発明の実施の形態１において、プログラム自動生成部で例外処理を組み込んだシーケンス制御プログラムを生成する動作の一例を示すフローチャートである。
【図１２】本発明の実施の形態２におけるシーケンス制御プログラム自動生成装置の構成を示すブロック図である。
【図１３】本発明の実施の形態３において、標準部品記憶部に記憶されている条件分岐オブジェクトの一例を示す説明図である。
【図１４】本発明の実施の形態３において、プログラム自動生成部で条件分岐プログラムを含むシーケンス制御プログラムを生成する動作の一例を示すフローチャートである。
【図１５】本発明の実施の形態４におけるシーケンス制御プログラム自動生成装置の構成を示すブロック図である。
【図１６】本発明の実施の形態５において、機器入出力情報記憶部に記憶されている入出力信号一覧表の一例を示す説明図である。
【図１７】本発明の実施の形態６におけるシーケンス制御プログラム自動生成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
図１は、本発明の実施の形態１におけるシーケンス制御プログラム自動生成装置の構成を示すブロック図である。
【００１４】
この実施の形態１におけるシーケンス制御プログラム自動生成装置３１は、情報入力のために必要な表示を行なう表示部３３、必要な情報を入力する入力装置部３４、操作ブロック図の入力編集を行なうための操作ブロック図作成エディタ３５、制御対象機器に対する入出力信号の名称やアドレスを定義して入力編集するための機器入出力情報エディタ３９、シーケンス制御プログラムを自動生成するプログラム自動生成部４２、および生成されたシーケンス制御プログラムを格納する生成プログラム記憶部４４を有し、これらの各部がマンマシン・インターフェース部３２に接続されている。なお、上記の操作ブロック図作成エディタ３５が特許請求の範囲の操作ブロック図作成手段に、また、機器入出力情報エディタ３９が特許請求の範囲の機器入出力情報作成手段にそれぞれ対応している。
【００１５】
上記の表示部３３は、ＣＲＴや液晶モニターなど、必要なデータを表示する機能を有するものであればどのような構成のものでもよい。入力装置部３４は、キーボードやマウスなど必要なデータを入力できる機能を有するものであればどのような構成のものでもよい。また、マンマシン・インターフェース部３２、表示部３３、および入力装置部３４は、本装置のために製作した専用装置でも、また汎用装置を組み合わせたものでも、必要な機能を満たしておればいずれの構成のものでもよい。
【００１６】
標準部品記憶部３７には、操作ブロック図の構成要素となる標準部品オブジェクトが定義されて保存されている。図２は、その操作ブロック図の構成要素となる標準部品オブジェクトを定義した一例を示すものである。
【００１７】
ここに、標準部品オブジェクトは、操作ブロック図上にその構成要素として配置する図記号のことであり、図記号が内部的に保持する各種の情報が定義されている。本例の場合、標準部品オブジェクトとして定義されているのは、制御機器オブジェクト５１（図２（ａ））、タイマーオブジェクト５２（同図（ｂ））、論理演算子オブジェクト５３（同図（ｃ））、スイッチオブジェクト５４（同図（ｄ））、入力信号オブジェクト５５（同図（ｅ））、および工程オブジェクト５６（同図（ｆ））がある。そして、上記のオブジェクトの内、工程オブジェクト５６を除くオブジェクトが制御対象オブジェクトとなる。なお、必要に応じてこれ以外のオブジェクトを定義しても構わない。また、図２の各標準部品オブジェクトは、シーケンス制御プログラムの自動展開のための情報のみを定義したオブジェクトであるが、例えば操作ブロック図の図面を生成するための図面番号などの情報や、機器の属性など、さらに便宜上必要な情報を定義しても構わない。
【００１８】
上記の制御機器オブジェクト５１は、操作ブロック図上の制御対象機器を定義したもので、制御対象機器の名称、当該オブジェクトを識別するための部品番号、この制御対象機器に対してどのような制御指令が出力されるかを示す機器制御指令出力、制御対象機器を運転するための条件となる信号を入力するための入力端子、および機器の運転完了信号を出力するための出力端子の各情報を有する。
【００１９】
タイマーオブジェクト５２は、操作ブロック図上のタイマーを定義したもので、オンディレイやオフディレイなどのタイマー種別、当該オブジェクトを識別するための部品番号、タイムアッブ時限値を設定するためのタイマー時限値設定、タイマー起動条件を入力するための入力端子、およびタイムアップ信号を出力するための出力端子の各情報を有する。
【００２０】
論理演算子オブジェクト５３は、操作ブロック図上の論理演算子を定義したもので、ＡＮＤやＯＲなどの論理演算子、当該オブジェクトを識別するための部品番号、論理演算の条件を入力するための入力端子、および演算結果を出力するための出力端子の各情報を有する。
【００２１】
スイッチオブジェクト５４は、操作ブロック図上の操作スイッチを定義したもので、スイッチ種別、当該オブジェクトを識別するための部品番号、およびスイッチの操作名称（運転／停止）を付与した操作信号を出力するための出力端子の各情報を有する。
【００２２】
入力信号オブジェクト５５は、操作ブロック図上の外部入力信号を定義したもので、信号名称、当該オブジェクトを識別するための部品番号、および外部入力信号を出力するための出力端子の各情報を有する。
【００２３】
工程オブジェクト５６は、操作ブロック図上の制御機器オブジェクト５１、タイマーオブジェクト５２、論理演算子オブジェクト５３からなる１つの処理工程を定義したもので、工程を表す工程名称、工程を識別する工程番号、オブジェクトを識別するための部品番号、例外処理プログラムを自動生成する際の例外処理オブジェクト（後述）の選択先を指定するための適用例外処理ルール（例外処理パターン名）、工程オブジェクト５６の起動条件を入力するための入力端子、この工程オブジェクト５６によって定義される１つの処理工程中に包含される各オブジェクトの実行順序を規定するための包含オブジェクト実行順序、および工程オブジェクト５６の実行完了信号を出力する出力端子の各情報を有する。
【００２４】
なお、上記の工程オブジェクト５６の包含オブジェクト実行順序には、異なる工程オブジェクトを定義することも可能で、これによって工程オブジェクトの中に異なる工程オブジェクトを包含することも可能である。また、全てのオブジェクト５１〜５６の出力端子は、１つの信号出力を複数のオブジェクトに並列分岐して出力できるように、複数の出力端子を定義できるようになっている。
【００２５】
（例外処理記憶部の説明）
一方、例外処理記憶部３８には、例外処理オブジェクトが定義されて保存されている。図３は、例外処理記憶部３８に記憶された例外処理オブジェクト５７を定義した一例を示すものである。
【００２６】
この例外処理オブジェクト５７は、機器故障やシステム異常等が発生した場合に対処するために例外処理が必要となった際に、工程オブジェクト５６の代わりに起動されるオブジェクトである。この例外処理オブジェクト５７は、前述の工程オブジェクト５６（図２（ｆ））とほぼ同じ定義構造であるが、論理演算子５８を含んだ構造となっている点が異なる。また、この場合、例外処理オブジェクト５７は、複数定義することも可能で、定義された例外処理オブジェクトごとに個々に例外処理パターン名（例えば、「順序停止」などの名前）を付加して予め例外処理記憶部３８に記憶しておく。そして、工程オブジェクト５６（図２（ｆ））の適用例外処理ルールにおいて、この例外処理パターン名を選択することにより、例外処理オブジェクトが利用される。
【００２７】
（操作ブロック図作成エディタとその記憶部の説明）
操作ブロック図作成エディタ３５は、入力装置部３４から入力されたデータをマンマシン・インターフェース部３２を介して受け取るとともに、操作ブロック図を作成するために必要な情報を標準部品記憶部３７、および例外処理記憶部３８から共に入力して、これらの情報に基づいて仕様書である操作ブロック図（実際にはオブジェクトで表現された操作ブロック図データ）を作成するための編集機能を備えている。そして、作成された操作ブロック図データは、操作ブロック図データ記憶部３６に保存されると共に、マンマシン・インターフェース部３２を介して表示部３３に表示されるようになっている。
【００２８】
また、制御対象機器の故障による例外処理の場合、どの機器が故障するかによって制御対象機器の台数分だけ例外処理オブジェクトを作成する必要があるので、操作ブロック図エディタ３５には、例外処理記憶部３８に記憶された例外処理オブジェクト５７の内から制御対象機器の台数分だけ例外処理ブロック図データを生成するためのプログラム修正ルールを予めに組込んでおくものとする。
【００２９】
標準部品対応プログラム記憶部４１には、標準部品記憶部３７に保存されている操作ブロック図の構成要素となる標準部品オブジェクト５１〜５６（図２参照）の内、制御機器オブジェクト５１、タイマーオブジェクト５２、論理演算子オブジェクト５３、スイッチオブジェクト５４、入力信号オブジェクト５５にそれぞれ対応するプログラム・テンプレートが保存されている。なお、工程オブジェクト５６については、プログラムの実行順序や、例外処理を定義するためのオブジェクトであって、制御対象機器やスイッチなどのように直接対応する機器が存在しないため、プログラム・テンプレートは存在しない。
また、この標準部品対応プログラム記憶部４１には、上記の標準部品オブジェクトに対応するプログラム・テンプレートに加えて、例外処理記憶部３８に記憶されている各例外処理オブジェクトに対応するプログラム・テンプレートも予め記憶されている。
【００３０】
一方、機器入出力情報エディタ３９は、入力装置部３４から入力されたデータをマンマシン・インターフェース部３２を介して受け取って、図外の制御対象機器に対する入出力信号の名称とアドレス情報との関係を定義した入出力信号一覧表（図１０参照）を作成し、また、各信号のうち工程オブジェクト５６において例外処理で使用する信号を定義する編集機能を備えている。そして、作成された制御対象機器に対する入出力情報の定義（入出力信号一覧表）は、機器入出力記憶部４０に保存されると共に、マンマシン・インターフェース部３２を介して表示部３３に表示される。
【００３１】
プログラム自動生成部４２は、入力装置部３４から入力されたプログラムファイル名などの必要な情報をマンマシン・インターフェース部３２を介して受け取るとともに、操作ブロック図データ記憶部３６、例外処理記憶部３８、機器入出力情報記憶部４０、および標準部品対応プログラム記憶部４１に保存されている各データを使用して目的とするシーケンス制御プログラムの生成処理を行なう。その際、プログラム自動生成部４２は、シーケンス制御プログラム生成処理時の作業用の一時記憶領域として、プログラム一次記憶部４３を使用する。
【００３２】
プログラム自動生成部４２で生成されたシーケンス制御プログラムは、生成プログラム記憶部４４に格納される。そして、生成プログラム記憶部４４に格納されたシーケンス制御プログラムは、マンマシン・インターフェース部３２を介して、表示部３３に表示されるとともに、磁気ディスクなどのメディアを媒体として、プログラムを実行するＰＬＣなどのシーケンス制御プログラム実行装置４７に格納されてシーケンス制御が実行される。なお、生成プログラム記憶部４４に記憶されたプログラムは、ＬＡＮなどのネットワーク経由でシーケンス制御プログラム実行装置４７に格納してもよい。
【００３３】
印刷データ作成部４５は、操作ブロック図データ記憶部３６に保存されたデータを操作ブロック図の表示形態で印刷するためのデータ作成処理と、機器入出力情報記憶部４０に保存されたデータから機器入出力情報を印刷するためのデータ作成処理と、生成プログラム記憶部４４に保存されたＰＬＣが実行可能なプログラムを印刷するためのデータ作成処理とをそれぞれ実行する。そして、印刷データ作成部４５で作成された印刷データは、ドキュメント出力部４６で印刷出力される。ドキュメント出力部４６は、プリンタやプロッタなど必要なデータを印刷する機能を有するものであれば格別な制約はなく、本装置のために製作した専用装置でも、また汎用装置の組み合わせでも、必要な機能を満たしておればいずれの構成であってもよい。
【００３４】
次に、例えば、図４（ａ）に示すように、材料タンク内の材料を材料タンク出口弁を開けて、１号コンベヤおよび２号コンベヤによって材料を搬出する設備において、操作ブロック図エディタ３５が操作ブロック図（オブジェクトで表現される操作ブロック図データ）を作成する場合の処理動作について説明する。
【００３５】
操作ブロック図エディタ３５は、マンマシン・インターフェース部３２を介して入力装置部３４から入力されたデータを受け取り、図４（ｂ）に示すような操作ブロック図を作成する。その際、操作ブロック図に配置する図記号は、標準部品記憶部３７に保存されている標準部品オブジェクト（図２参照）から必要なオブジェクトをコピーして配置し、オブジェクト間を矢印線で接続することにより、状態遷移する条件と遷移順序とを定義する。
【００３６】
図４（ｂ）における一点差線で囲まれた部分は、工程オブジェクト５６をコピーして作成された設備起動用の工程オブジェクト（以下、起動工程オブジェクトという）６３、および設備停止用の工程オブジェクト（以下、停止工程オブジェクトという）６９を示しており、操作ブロック図上で、起動工程オブジェクト６３や停止工程オブジェクト６９の中に制御機器などを配置することにより、各工程オブジェクト６３，６９内に制御機器などのオブジェクトを包含し、起動工程オブジェクト６３や停止工程オブジェクト６９が制御する順序が定義される。
【００３７】
図５は、図４（ｂ）に示した操作ブロック図の一部（起動工程オブジェクト６３以降の工程の操作ブロックは省略）と、これに対応してオブジェクトで記述された操作ブロック図データとの相互の関係を示している。対応関係は破線矢印で示されている。
【００３８】
図５において、各オブジェクト６１〜６７間の接続線（太実線矢印）は、各オブジェクトの端子間の論理的な接続を図示しており、操作ブロック図データの各端子は接続先部品番号と接続先端子番号の情報を保持し、論理的な接続を識別する。すなわち、図５では入力信号オブジェクト６１とスイッチオブジェクト６８とが論理演算子オブジェクト６２に接続され、論理演算子オブジェクト６２の出力は起動工程オブジェクト６３に接続されている。
【００３９】
操作ブロック図エディタ３５は、オブジェクト間の接続線（太実線矢印）の接続を逆に辿って操作ブロック図の先頭のオブジェクトを検索し、この先頭のオブジェクトから順番にオブジェクトを識別するための部品番号を順番に割り付ける。また、操作ブロック図エディタ３５は、操作ブロック図上で起動工程オブジェクト６３の中に制御機器オブジェクトなどが配置されていると、配置されたオブジェクトが起動工程オブジェクト６３に含まれるものと判断して、起動工程オブジェクト６３内の包含オブジェクト実行順序（図２（ｆ）参照）に起動工程オブジェクト６３内に含まれるオブジェクトの部品番号を保存し、オブジェクトの起動順序を管理する。
【００４０】
なお、制御機器オブジェクトの機器名称と機器制御指令出力の種別定義、タイマーオブジェクトのタイマー種別とタイマー時限値、論理演算オブジェクトの論理演算子、スイッチオブジェクトのスイッチ種別とスイッチ名称と操作名称、工程オブジェクトの工程名称は、それぞれ入力装置部３４から入力されるもので、操作ブロック図エディタ３５がマンマシン・インターフェース部３２を介して入力装置部３４から入力データを受け取ることで、該当するオブジェクトに保存する。
【００４１】
次に、図５において、ここでは一例として起動工程オブジェクト６３に設けられている包含オブジェクト実行順序６４に基づく処理実行順序について説明する。
【００４２】
起動工程オブジェクト６３の構成要素の包含オブジェクト実行順序６４には、起動工程オブジェクト６３に包含されている制御機器オブジェクトの状態遷移順序を規定する情報が保存されている。
【００４３】
論理演算子オブジェクト６２の出力端子１は、起動工程オブジェクト６３の入力端子１に接続されており、これは論理演算子オブジェクト６２の出力により起動工程オブジェクト６３が起動されることを意味する。したがって、起動工程オブジェクト６３が起動されると、起動工程オブジェクト６３の包含オブジェクト実行順序６４の「順序１オブジェクト」に定義されている１号コンベヤに対応した機器制御オブジェクト６５が起動され、１号コンベヤが起動されると運転完了信号が起動工程オブジェクト６３に返される。次に、起動工程オブジェクト６３は、包含オブジェクト実行順序６４の「順序２オブジェクト」に定義されている２号コンベヤに対応した機器制御オブジェクト６６が起動され、２号コンベヤが起動されると運転完了信号が起動工程オブジェクト６３に返される。続いて、起動工程オブジェクト６３は、包含オブジェクト実行順序６４の「順序３オブジェクト」に定義されている材料タンク出口弁に対応した機器制御オブジェクト６７が起動され、材料タンク出口弁が起動されると運転完了信号が起動工程オブジェクト６３に返される。
なお、上記の説明は起動工程オブジェクト６３についてであるが、停止工程オブジェクト６９についても、起動工程オブジェクト６３の場合と同様であるので、ここでは詳細な説明は省略する。
【００４４】
図６には、図４（ｂ）に示した操作ブロック図に対応してオブジェクトで表現された操作ブロック図エディタ３５で作成された操作ブロック図データの全内容を示している。
【００４５】
次に、例外処理記憶部３８に保存されている例外処理オブジェクト５７（図３参照）に基づいて、操作ブロック図エディタ３５が例外処理ブロック図データを作成する処理について説明する。
【００４６】
例外処理とは、前述のように、制御対象機器の故障発生時などのシーケンス制御の動作のことで、その場合には、制御対象機器に対して正常時とは異なる制御を行なう必要があるため、例外処理として区別しているものである。
【００４７】
例えば、図４（ｂ）において、停止工程オブジェクト６９では、正常時はタイマー７０，７１によって１号、２号の各コンベヤの停止のタイミングを遅らせることにより、各コンベヤ上の製品を吐き出しながらコンベヤを停止させている。
【００４８】
これに対して、図７（ａ）に示すように、例えば２号コンベヤが故障で停止した場合、材料タンク出口弁がそのまま開いていると、材料タンクから吐出された材料が２号コンベヤの上に滞積するので、材料タンク出口弁を即閉する必要がある。一方、１号コンベヤは、コンベヤ上の材料を吐き出して停止すればいいので、即停止する必要はなくてタイマーオブジェクト７０の設定時間後に停止させればよい。したがって、この場合の例外処理オブジェクトに対応する例外処理のブロック図は、図７（ｂ）に示すようになる。
【００４９】
また、図８（ａ）に示すように、例えば１号コンベヤが故障で停止した場合には、１号コンベヤ上に材料が滞積しないように２号コンベヤを即停止し、かつ、材料タンクから吐出された材料が２号コンベヤの上に滞積しないように、材料タンク出口弁も即閉する必要がある。つまり、故障停止した機器の上流側の機器は即停止させて、下流側の機器は通常の停止工程の制御順序にしたがって停止させればよい。したがって、この場合の例外処理オブジェクトに対応する例外処理のブロック図は、図８（ｂ）に示すようになる。
【００５０】
図７、図８に示したような制御対象機器の故障停止時などのシーケンス制御をルール化したオブジェクトを例外処理オブジェクトとして、例えば「順序停止」といった例外処理ルール名を付けて例外処理記憶部３８に予め記憶しておく。そして、操作ブロック図エディタ３５は、例外処理記憶部３８に記憶された例外処理ルール名を選択して、工程オブジェクト５６に定義することにより、例外処理条件が発生した時に例外処理を実行するために必要な例外処理オブジェクト５７を操作ブロック図エディタ３５で生成し、生成された例外処理オブジェクト５７を操作ブロック図データ記憶部３６に記憶する。
【００５１】
図９（ａ）には、図７に示したように、２号コンベヤが故障で停止した場合の例外処理オブジェクトで表現された例外処理ブロック図データの生成例を、また、図９（ｂ）には、図８に示したように、１号コンベヤが故障で停止した場合の例外処理オブジェクトで表現された例外処理ブロック図データの生成例をそれぞれ示している。なお、図６のブロック図データの例では、起動工程オブジェクト６３には例外処理ルール名無しで定義し、停止工程オブジェクト６９には「順序停止」という名前の例外処理ルール名を定義している。
【００５２】
（プログラム自動生成の手順説明）
次に、プログラム自動生成部４２がシーケンス制御プログラムを自動生成する手順について、図１１のフローチャートを参照して説明する。
【００５３】
図１１のステップ８１で操作ブロック図データ記憶部３６から全てのオブジェクトを読み込んだか判断し、読込み完了していなければステップ８２へ進む。ステップ８２では、操作ブロック図データ記憶部３６から部品番号順にオブジェクトを１つ読込む。次のステップ８３では、読み込んだオブジェクトが工程オブジェクトかどうか判断し、工程オブジェクト以外であればステップ８４に進む。
【００５４】
したがって、ステップ８４から以降の処理は、工程オブジェクト以外のオブジェクトを互いに連係させる処理であって、ステップ８４では、読み込んだオブジェクトの種類に対応するプログラムを標準部品対応プログラム記憶部４１から読み込み、続いて、ステップ８５では、例えばタイマーオブジェクトのタイマー時限値設定などのパラメータをプログラムに定義して、プログラム一時記憶部４３に配置する。
【００５５】
次のステップ８６では、読み込んだオブジェクトが論理演算子オブジェクトかタイマーオブジェクトかどうかを判断し、ＹＥＳの場合には、ＰＬＣ外部との入出信号は無いのでステップ８８へ進む。また、ステップ８６で論理演算子オブジェクトかタイマーオブジェクト以外（例えば、制御機器オブジェクトやスイッチオブジェクト）の場合には、ステップ８７へ進んで、オブジェクトに対応する入出力信号アドレスを機器入出力情報記憶部４０から読込み、プログラムに入出力信号アドレス定義する。次のステップ８８では、オブジェクト間の信号のやり取りを行なうためのオブジェクトの入出端子に相当するプログラムの命令に、接続先の出力端子のメモリを割り付ける。次にステップ８１に戻って処理を継続する。
【００５６】
一方、ステップ８３において、読み込んだオブジェクトが工程オブジェクトの場合、ステップ８９に移行するが、ステップ８９から以降の処理は工程オブジェクトとそれ以外のオブジェクトとを互いに連係させるための処理であって、まず、ステップ８９で工程オブジェクトに例外処理ルールが定義されているかどうか判断する。このとき、例外処理定義が無ければ、次のステップ９０で工程オブジェクトに定義されている全ての包含オブジェクト実行順序を読み込んだか判断し、読込み完了していなければステップ９１に進む。次のステップ９１でステップ９０で読み込んだ包含オブジェクト実行順序から、順序オブジェクトに定義されている部品番号を読み込み、次のステップ９２でステップ９１で読み込んだ部品番号に対応するオブジェクトを読み込む。
【００５７】
次のステップ８４からステップ８８は、前述のステップ８４からステップ８８と同様であるので、同一符号を付して詳細説明を省略する。次に、ステップ９０に戻って処理を継続する。一方、ステップ９０で工程オブジェクトに定義されている全ての包含オブジェクト実行順序を読み込んだことを検出すれば、ステップ８１に戻って処理を継続する。
【００５８】
ステップ９３から以降の処理は、工程オブジェクトに例外処理ルールが定義されていた場合の処理を示し、ステップ９３では工程オブジェクトに定義された例外処理ルール（名前）を読み込み、次のステップ９４では、読み込んだ例外処理ルールに対応する例外処理オブジェクトを操作ブロック図データ記憶部３６から読み込む。
【００５９】
次のステップ９５では、例外処理オブジェクトに定義されている全ての包含オブジェクト実行順序を読み込んだか判断し、読込み完了していなければステップ９１に進む。ステップ９１からステップ８８は前述のステップ９１からステップ８８と同様であるので、同一符号を付して詳細説明を省略する。次に、ステップ９５に戻って処理を継続し、ステップ９５で例外処理オブジェクトに定義されている全ての包含オブジェクト実行順序を読み込んだことを検出すれば、ステップ９０に戻って処理を継続する。
【００６０】
ステップ８１で操作ブロック図データ記憶部３６から全てのオブジェクトを読み込んだことを検出すれば、ステップ９６へ進み、プログラム一時記憶部４３で生成されたプログラムを生成プログラム記憶部４４に転送して、処理を終了する。
【００６１】
したがって、この実施の形態１によれば、操作ブロック図エディタ３５で作成する操作ブロック図に含まれる工程オブジェクト５６に、シーケンス制御の制御対象と制御対象の状態遷移順序および状態遷移条件を定義しておき、選択された例外処理パターン（名前）に対応して例外処理記憶部３８に定義しておいた例外処理オブジェクトから例外処理プログラムを自動生成することにより、例外処理を組込んだシーケンス制御プログラムを容易に生成することができる。
【００６２】
なお、上記のようにしてこの自動生成されたシーケンス制御プログラムには、例外処理プログラムが組み込まれていることになるが、システムの正常時は例外処理プログラムは実行されず、異常時に工程オブジェクトおよび論理演算オブジェクトに基づいて生成されたプログラムにより、例外処理パターン名の付された例外処理プログラムが選択されて例外処理が実行されることになる。
【００６３】
実施の形態２．
図１２は、本発明の実施の形態２におけるシーケンス制御プログラム生成装置の構成を示すブロック図であり、図１に示した実施の形態１と対応もしくは相当する構成部分には同一の符号を付す。
【００６４】
この実施の形態２におけるシーケンス制御プログラム生成装置は、図１に示す実施の形態１に対して、操作ブロック図エディタ３５を中心とする操作ブロック図作成専用装置１１１と、機器入出力情報エディタ３９およびプログラム自動生成部４２を中心としたシーケンス制御プログラム自動生成専用装置１１２とに分割されている。
【００６５】
すなわち、上記の実施の形態１では操作ブロック図作成機能を有する部分とシーケンス制御プログラム自動生成機能を有する部分を一体とした構成で示したが、この実施の形態２では、操作ブロック図作成専用装置１１１と、シーケンス制御プログラム自動生成専用装置１１２とが個別に独立して設けられている。そして、操作ブロック図データ記憶部３６のデータを磁気ディスクなどのメディアを媒体とするか、ＬＡＮなどのネットワーク経由でシーケンス制御プログラム自動生成専用装置１１２に入力することにより、シーケンス制御プログラムを自動生成する。
その他の構成は、図１に示した実施の形態１と同様なので、ここでは詳しい説明は省略する。
【００６６】
以上のように、この実施の形態２によれば、操作ブロック図作成とシーケンス制御プログラム自動生成を複数の作業員が分担作業する場合や、操作ブロック図作成とシーケンス制御プログラム自動生成をそれぞれ遠隔地で離れて作業することが出来き、またそれぞれの作業で必要な構成部品のみで装置を構成することができるので、実施の形態１の装置を２台使用するのと比較して、構成部品点数を減らすことが可能となる。
【００６７】
実施の形態３．
図１３（ａ）は、本発明の実施の形態３におけるシーケンス制御プログラム生成装置における特徴部分を説明するもので、図１に示した実施の形態１の標準部品記憶部３７内に条件分岐オブジェクト１２１を記憶するようにしたものである。図１３（ｂ）には、この条件分岐オブジェクト１２１で作成した条件分岐図記号１２２の一例を示している。なお、実施の形態３におけるシーケンス制御プログラム生成装置のその他の構成は、実施の形態１同様であるから、ここでは詳しい説明は省略する。
【００６８】
この実施の形態３におけるプログラム自動生成部４２のプログラムを自動生成する手順について、図１４のフローチャートを参照して説明する。
【００６９】
図１４のステップ１３１で読み込んだオブジェクトが条件分岐オブジェクトであるかどうか判断し、条件分岐オブジェクトであればステップ１３２に進む。そして、次のステップ１３２では、条件分岐オブジェクトの定義により、判定条件入力端子を接続し、さらに読み込んだオブジェクトの判定条件式をプログラムに定義する。
その他のステップについては、図１１に示した実施の形態１の場合の処理と同様なので、同一部分に同一符号を付してその説明は省略する。
【００７０】
以上のように、この実施の形態３によれば、ある条件によってシーケンス制御の処理を分岐させる条件分岐を含んだ操作ブロック図の作成と、条件分岐を含んだシーケンス制御プログラムを生成することが容易にできる。また条件分岐オブジェクト１２１はフローチャートで記述される条件分岐記号と互換性があるので、シーケンス制御における制御対象と制御対象の常態遷移順序および状態遷移条件をフローチャートとして入力することにより、シーケンス制御プログラムを自動生成することが可能となる。
なお、この実施の形態３において、実施の形態２に示した構成を採用することも可能である。
【００７１】
実施の形態４．
図１５は、本発明の実施の形態４におけるシーケンス制御プログラム生成装置の構成を示すブロック図であり、図１に示した実施の形態１と対応もしくは相当する構成部分には同一の符号を付す。
【００７２】
この実施の形態４におけるシーケンス制御プログラム生成装置においては、図１に示す実施の形態１に対して、シーケンス制御プログラム生成装置３１に、シーケンス制御プログラムを実行する手段としてシーケンス制御プログラム実行部１４１と、プロセス入出力インタフェース部１４２を含んでいる。
【００７３】
すなわち、上記の実施の形態１では、シーケンス制御プログラム生成装置３１とシーケンス制御プログラム実行装置４７を分割して個別に設けた構成を示したが、この実施の形態４では、シーケンス制御プログラム生成装置３１に、シーケンス制御プログラムを実行する手段としてシーケンス制御プログラム実行部１４１と、プロセス入出力インタフェース部１４２を含めて構成しているため、プログラム自動生成部４２で生成したシーケンス制御プログラムを本装置で実行することが可能となる。
その他の構成は、図１に示した実施の形態１と同様なので、ここでは詳しい説明は省略する。
【００７４】
以上のように、この実施の形態４によれば、生成プログラム記憶部４４をプログラム自動生成部４２とシーケンス制御プログラム実行部１４１で共有することが可能となるので、構成部品点数を減らすことが可能となり、また装置間のシーケンス制御プログラム受け渡しのための記録媒体や通信用ＬＡＮ等のケーブルを省略することができる。
なお、この実施の形態４において、実施の形態２や実施の形態３に示した構成を採用することも可能である。
【００７５】
実施の形態５．
図１６は、本発明の実施の形態５におけるシーケンス制御プログラム生成装置において、機器入出力情報エディタ３９が作成する入出力信号一覧表を示す一例である。
【００７６】
この図１６に示す入出力信号一覧表においては、実施の形態１における入出力信号一覧表（図１０参照）に対して、出力信号折り返し接続アドレス１５１が付加されており、機器入出力情報エディタ３９がマンマシンインターフェース部３２を介して入力装置部３４から入力されたデータを受け取り、出力信号折り返し接続アドレス１５１を定義する。
【００７７】
例えば、図４（ａ）に示した設備において、１号コンベヤの場合、出力の運転指令のアドレスＹ８０に対して、折り返し接続アドレスとしてＸ８０が定義されており、Ｙ８０の運転指令を出力すると信号が折り返されてＸ８０に入力されることを示す。なお、入出力信号一覧表のその他の要素については図１０に示した場合と同様である。
【００７８】
この出力信号折り返し接続アドレス１５１を定義することにより、制御対象への制御指令出力アドレスと制御対象からの状態信号入力アドレスの関連付けがなされるので、この出力信号折り返し接続アドレス１５１によって、プログラム自動生成部４２が生成するシーケンス制御プログラムに制御対象への制御指令出力信号を制御対象からの状態信号入力に折り返して、模擬的に状態信号入力に信号を入力するプログラムを生成することができる。
【００７９】
以上のように、この実施の形態５によれば、プログラム自動生成部４２によって生成するシーケンス制御プログラムをシーケンス制御プログラム実行装置４７に格納し、シーケンス制御を実行することによって、シーケンス制御プログラム実行装置４７に制御対象機器が実際には接続されていない状態でもシーケンス制御が実行可能となり、本発明のシーケンス制御プログラム自動生成装置３１だけでシーケンス制御プログラムの動作確認を行うことが可能となる。
【００８０】
なお、図１６に示した入出力信号一覧表では、図１０の入出力信号一覧表に対して出力信号折り返し接続アドレス１５１を付加して１つの表にまとめた場合について説明したが、図１０に示すような入出力信号一覧表と、出力信号折り返し接続アドレス１５１とを分離して２つの一覧表に分けてもよい。また、この実施の形態５において、実施の形態２〜４に示した構成を採用することも可能である。
【００８１】
実施の形態６．
図１７は、本発明の実施の形態６におけるシーケンス制御プログラム生成装置の構成を示すブロック図であり、図１に示した実施の形態１と対応もしくは相当する構成部分には同一の符号を付す。
【００８２】
この実施の形態６におけるシーケンス制御プログラム生成装置３１は、図１に示した実施の形態１に対して、生成プログラム記憶部４４に記憶されたシーケンス制御プログラムのロジックを有接点リレーによるシーケンス回路図に変換して、ドキュメント出力部４６からシーケンス回路図を印刷出力するためのシーケンス回路図変換装置１６１がさらに設けられている。
【００８３】
すなわち、生成されたシーケンス制御プログラムのロジックは、有接点リレーによるシーケンス回路図もそのまま応用できるので、生成プログラム記憶部４４に格納されたデータからシーケンス回路図に変換するシーケンス回路図変換装置１６１を付加することによって、シーケンス制御プログラムに対応した有接点リレーによるシーケンス回路図を容易に得ることができる。
その他の構成は、図１に示した実施の形態１と同様なので、ここでは詳しい説明は省略する。
【００８４】
以上のように、この実施の形態６によれば、プログラム自動生成部４２によって生成されたシーケンス制御プログラムのロジックから、容易に有接点リレーによるシーケンス回路図に変換して、ドキュメント出力部４６から印刷出力することができる。
なお、この実施の形態６において、実施の形態２〜４に示した構成を採用することも可能である。
【符号の説明】
【００８５】
３１  シーケンス制御プログラム生成装置、
３５  操作ブロック図作成エディタ（操作ブロック図作成手段）、
３７  標準部品記憶部（標準部品記憶手段）、
３８  例外処理記憶部（例外処理記憶手段）、
３９  機器入出力情報エディタ（機器入出力情報作成手段）、
４１  機器部品対応プログラム記憶部（機器部品対応プログラム記憶手段）、
４２  プログラム自動生成部、４７  シーケンス制御プログラム実行装置、
５１  制御機器オブジェクト、５２  タイマーオブジェクト、
５３  論理演算子オブジェクト、５４  スイッチオブジェクト、
５５  入力信号オブジェクト、５６  工程オブジェクト、５７  例外処理オブジェクト、１１１  操作ブロック図作成専用装置、
１１２  シーケンス制御プログラム自動生成専用装置、１２１  条件分岐オブジェクト、１４１  シーケンス制御プログラム実行部、１４２  プロセス入出力インタフェース部、１５１  出力信号折り返し接続アドレス、１６１  シーケンス回路図変換装置。
【図１】
2011002868.tif 000003
【図２】
2011002868.tif 000004
【図３】
2011002868.tif 000005
【図４】
2011002868.tif 000006
【図５】
2011002868.tif 000007
【図６】
2011002868.tif 000008
【図７】
2011002868.tif 000009
【図８】
2011002868.tif 000010
【図９】
2011002868.tif 000011
【図１０】
2011002868.tif 000012
【図１１】
2011002868.tif 000013
【図１２】
2011002868.tif 000014
【図１３】
2011002868.tif 000015
【図１４】
2011002868.tif 000016
【図１５】
2011002868.tif 000017
【図１６】
2011002868.tif 000018
【図１７】
2011002868.tif 000019