(57)【要約】  複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置（１０）であって、ＳＦＣの規約を記憶する規則記憶部（５）と、新規の要素をＳＦＣに挿入する新規要素挿入操作が編集画面上で行われた際に、新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の要素の種類と、新規要素挿入対象要素に対する位置と、規則記憶部（５）に記憶されているＳＦＣの規約とに基づいて、シーケンスプログラムのデータに新規の要素に相当するデータを追加する編集処理部（２２）と、を備える。
2013038556.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置であって、
前記ＳＦＣの規約を記憶する規則記憶部と、
新規の前記要素を前記ＳＦＣに挿入する新規要素挿入操作が前記編集画面上で行われた際に、前記新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の前記要素の種類と、前記新規要素挿入対象要素に対する位置と、前記規則記憶部に記憶されている前記ＳＦＣの規約とに基づいて、前記シーケンスプログラムのデータに前記新規の要素に相当するデータを追加する編集制御部と、
を備えることを特徴とするシーケンスプログラム作成装置。
【請求項２】
前記編集制御部は、既配置の前記要素同士を接続する既配置要素接続操作が前記編集画面上で行われた際に、前記既配置要素接続操作で第１の既配置要素として指定された前記既配置の要素及び第２の既配置要素として指定された前記既配置の要素の各々の種類と、前記第１の既配置要素に対する位置と、前記規則記憶部が記憶する前記ＳＦＣの規約とに基づいて、前記第１の既配置要素と前記第２の既配置要素とを接続し、前記シーケンスプログラムのデータを更新することを特徴とする請求項１に記載のシーケンスプログラム作成装置。
【請求項３】
前記新規要素挿入操作は、前記プログラマブルロジックコントローラに接続されるデバイスの一覧表の中からデバイスを選択する操作と、該選択されたデバイスを前記指定された位置に配置する操作とを含み、
前記編集制御部は、前記シーケンスプログラムのデータに追加する前記新規要素に関連する条件として、前記デバイスからのデバイス値の取得及び前記デバイス値の変更の一方を、前記新規要素挿入対象要素の種類に応じて設定することを特徴とする請求項１に記載のシーケンスプログラム作成装置。
【請求項４】
前記編集制御部は、前記新規要素挿入操作対象要素が配置されているセル及び該セルの前後左右のセルのいずれが選択されたかによって、前記新規要素挿入対象要素に対する位置を決定することを特徴とする請求項１から３のいずれか１項に記載のシーケンスプログラム作成装置。
【請求項５】
前記編集制御部は、前記新規要素挿入対象要素が配置されているセルを複数の領域に分割して、該分割された領域のいずれが選択されたかによって、前記新規要素挿入対象要素に対する位置を決定することを特徴とする請求項１から３のいずれか１項に記載のシーケンスプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンシャル・ファンクション・チャート（ＳＦＣ）を編集することによってプログラマブルロジックコントローラのプログラムを作成するシーケンスプログラム作成装置に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラで実行されるシーケンシャルプログラムの作成に用いられるプログラムの一記述方式にシーケンシャル・ファンクション・チャート（ＳＦＣ）がある。ＳＦＣはフローチャートに類似した処理の流れを図形要素とその接続状態とで表現する方法で、作業の流れが分かりやすいなどの特徴を持つ。【０００３】
ＳＦＣは、本質的にはステップとトランジションとの接続関係を図で表現したものである。ＩＥＣ標準では接続関係を直接記述するテキスト表現が図表現と並んで定義されている。【０００４】
従来はＳＦＣを構成するステップ・トランジション・分岐や収束の接続線などの図的構成要素をグリッド上に配置することによりプログラムを作成していた。構成要素を配置する操作は単純な関係を表すのに複数部品を配置する必要があるなど手間が多く、また、ＳＦＣとして意味をなさない図的表現が可能であるため、製作効率が低かった。【０００５】
特許文献１では、ステップとトランジションとが交互に出現する規約を利用し、ステップ同士の間にトランジションを自動挿入している。【０００６】
特許文献２では、入力操作時に予め設定された「挿入することができる機能パーツを予め限定する挿入判定マトリックス」を利用して誤った入力を拒絶する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０５−３４１８１６号公報
【特許文献２】特開平１１―２９６３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１の技術では、ステップを連続して挿入すればトランジションの挿入を省略できるが、有効な場面が限られている。例えば、並列分岐の後にあるステップを挿入する際には、トランジションを挿入するかどうかを決定できない。また、収束させていない選択分岐よりも後に新たにステップを配置する場合は、分岐先の一つの最後尾のステップとの間にトランジションを挿入して接続するのか、全ての分岐先の最後尾のステップとの間にトランジションを挿入して選択収束として接続するのかを判断できない。【０００９】
特許文献２の技術は、ＳＦＣの規約による制約を挿入判定マトリクスとして表現すればＳＦＣでも同様の機能を実現でき、ＳＦＣとしての意味をなさないような誤った編集を行うことを防止できるが、編集工数を削減することはできないという問題があった。【００１０】
本発明は、上記に鑑みてなされたものであって、規約に従って要素が配置されたＳＦＣを少ない工数で編集してシーケンスプログラムを作成できるシーケンスプログラム作成装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置であって、ＳＦＣの規約を記憶する規則記憶部と、新規の要素を前記ＳＦＣに挿入する新規要素挿入操作が編集画面上で行われた際に、新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の要素の種類と、新規要素挿入対象要素に対する位置と、規則記憶部に記憶されているＳＦＣの規約とに基づいて、シーケンスプログラムのデータに新規の要素に相当するデータを追加する編集制御部と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明にかかるシーケンスプログラム作成装置は、少ない工数で規約に従ってＳＦＣに要素を配置してシーケンスプログラムを作成できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明にかかるシーケンスプログラム作成装置の実施の形態１の構成を示す図である。
【図２】図２は、ステップ及びトランジションの接続の一例を示す図である。
【図３】図３は、ＳＦＣにおける処理の進行の一例を示す図である。
【図４】図４は、選択分岐・選択収束の一例を示す図である。
【図５】図５は、並列分岐・並列収束の一例を示す図である。
【図６】図６は、木構造に配置された要素で構成されたＳＦＣの表示部における表示の一例を示す図である。
【図７】図７は、複数回出現するステップを含むＳＦＣの描画の一例を示す図である。
【図８】図８は、先行するトランジションを複数持つステップの描画の一例を示す図である。
【図９】図９は、操作における関連する位置の定義の一例を示す図である。
【図１０】図１０は、ジェスチャとアクションとの対応を定義するテーブルの一例を示す図である。
【図１１】図１１は、要素の種類を指定しないで新規要素の挿入を行う場合の処理の流れを示すフローチャートである。
【図１２】図１２は、新規要素挿入操作を同じ位置に対して行った場合の処理結果に基づいて表示制御部が表示部に表示させるＳＦＣの一例を示す図である。
【図１３】図１３は、新規要素挿入操作を後の位置に対して行った場合の処理結果に基づいて表示制御部が表示部に表示させるＳＦＣの一例を示す図である。
【図１４】図１４は、新規要素挿入操作を前の位置に対して行った場合の処理結果に基づいて表示制御部が表示部に表示させるＳＦＣの一例を示す図である。
【図１５】図１５は、新規要素挿入操作を左の位置に対して行った場合の処理結果に基づいて表示制御部が表示部に表示させるＳＦＣの一例を示す図である。
【図１６】図１６は、新規要素挿入操作を右の位置に対して行った場合の処理結果に基づいて表示制御部が表示部に表示させるＳＦＣの一例を示す図である。
【図１７】図１７は、既配置要素の接続の処理の一例を示す図である。
【図１８】図１８は、既配置要素の接続の処理の別の一例を示す図である。
【図１９】図１９は、ＳＦＣ編集画面の一例を示す図である。
【図２０】図２０は、本実施形態にかかるシーケンスプログラム作成装置での画面の遷移例を示す図である。
【図２１】図２１は、従来のシーケンスプログラム作成装置での画面の遷移例を示す図である。
【図２２】図２２は、セルを複数の領域に分割して関連する位置を定義する一例を示す図である。
【図２３】図２３は、関連する位置に隣接するセルに割り当てた一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかるシーケンスプログラム作成装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
図１は、本発明にかかるシーケンスプログラム作成装置の実施の形態１の構成を示す図である。実施の形態１にかかるシーケンスログラム作成装置１０は、入力部１、制御部２、表示部３、記憶部４及び規則記憶部５を有する。入力部１は、ユーザが操作を行うためのユーザインタフェースであり、キーボード、ポインティングデバイス、タッチパネルなどを適用可能である。表示部３は、ＳＦＣを表示する装置であり、ＬＣＤや有機液晶パネルなどを適用可能である。記憶部４は、制御部２がワークエリアとして用いる記憶領域を備えており、ＳＦＣの編集によって作成するプログラムのデータ（編集データ）が記憶される。規則記憶部５は、ＳＦＣの規約などを不揮発に記憶する。制御部２は、入力処理部２１、編集制御部２２及び表示制御部２３を有する。入力処理部２１は、入力部１を介して行われた処理の内容を特定する。編集制御部２２は、編集データに要素を追加したり、要素を置き換えるなどの処理を行う。表示制御部２３は、編集データに基づいてＳＦＣを変更し、表示部３に表示させる。
【００１６】
シーケンスプログラム作成装置１０の動作を説明するのに先だって、動作を説明する上で必要となるＳＦＣの規約について説明する。なお、ＳＦＣの規約は規則記憶部５に記憶されており、編集制御部２２はＳＦＣの規約に従って編集データに加える処理の内容を決定する。
【００１７】
ＳＦＣを構成する要素は、ステップ、トランジションである。ステップ及びトランジションは入口と出口とを持ち、ステップの出口はトランジションの入口と、トランジションの出口はステップの入口と接続線によって接続される。よって、ステップとトランジションとは交互に現れ、ステップ同士、トランジション同士が接続されることはない。なお、以下の説明に用いる各図において、ステップは矩形状の記号で表し、トランジションは横棒形状の記号で表す。
【００１８】
図２は、ステップ及びトランジションの接続の一例を示す図である。図２に示すように、ステップ１００の出口とトランジション１０１の入口とが接続線１０２で接続されている場合、トランジション１０１はステップ１００に後続すると言い、ステップ１００はトランジション１０１に先行すると言う。従って、図２において、トランジション１０１はステップ１０３に先行しており、ステップ１０３はトランジション１０１に後続している。
【００１９】
ステップには他の言語（ラダー言語など）で書かれた処理が付属する。一例を挙げると、「デバイスＭ０がｏｎならばデバイスＭ１をｏｎする。」といった処理である。ＳＦＣはＦＡ機器を制御することを目的とするため、処理は多くの場合デバイス値の参照（センサ値の読み取りなど）と変更（スイッチの入切など）である。
【００２０】
ステップには活性・不活性の二つの状態があり、活性の間は付属した処理が実行される。また、システム起動時に自動実行されるステップがあり、このステップはイニシャルステップと呼ばれる。
【００２１】
トランジションには他の言語で書かれた遷移条件が付属する。一例を挙げると、「デバイスＭ２がｏｎかつデバイスＭ３がｏｎなら条件成立。」という遷移条件である。
【００２２】
図３は、ＳＦＣにおける処理の進行の一例を示す図である。図３において、トランジション１０１に先行するステップ１００が活性な場合、トランジション１０１の遷移条件は評価され、条件が成立すると遷移が起こる。トランジション１０１の遷移が起こった場合、先行するステップ１００は不活性となり、トランジション１０１に後続するステップ１０３が活性となる。
【００２３】
一つのステップに複数のトランジションが後続する場合があり、これを選択分岐と言う。また、一つのステップに複数のトランジションが先行する場合があり、これを選択収束と言う。選択分岐・選択収束は、ＳＦＣ上ではトランジションの入口・出口を接続する水平な一本線として表現される。図４は、選択分岐・選択収束の一例を示す図である。ステップ２００の出口と、トランジション２０１及びトランジション２０２の各々の入口とは、選択分岐２０３を介して接続されている。また、トランジション２０４及びトランジション２０５の各々の出口とステップ２０６の入口とは、選択収束２０７を介して接続されている。
【００２４】
ステップが活性な時、それに後続するトランジションの条件が評価されるが、選択分岐においては複数の後続するトランジションの条件が、ＳＦＣ上において、左から順に評価され、条件が成立したトランジションに後続するステップのみが活性となる。このため、あるステップに後続する複数のトランジションには順序が存在する。以下の説明では、この順序を後続トランジション順序と言う。選択収束では、後続するステップは単一なので、先行するステップが活性で条件が成立すると後続するステップに遷移する。
【００２５】
選択分岐とは逆に、一つのトランジションに複数のステップが後続する場合があり、これを並列分岐と言う。選択収束とは逆に、一つのトランジションに複数のステップが先行する場合があり、これを並列収束と言う。並列分岐・並列収束は、ＳＦＣ上では複数のステップの入口・出口を接続する水平な二重線で表現される。図５は、並列分岐・並列収束の一例を示す図である。トランジション３００の出口と、ステップ３０１及びステップ３０２の各々の入口とは、並列分岐３０３を介して接続されている。また、ステップ３０４及びステップ３０５の各々の出口とトランジション３０６の入口とは、並列収束３０７を介して接続されている。
【００２６】
並列分岐においては、トランジションの遷移条件が成立すると、それに後続するすべてのステップが活性となる。並列収束においては、先行する全てのステップが活性で、かつ、後続するトランジションの遷移条件が成立するときのみ、遷移が起こる。
【００２７】
次に、表示制御部２３の動作について説明する。表示制御部２３は、ステップとトランジションとの接続関係に基づいてＳＦＣを生成する。まず、表示制御部２３は、イニシャルステップを配置し、イニシャルステップの出口に接続されたトランジションをイニシャルステップの下（後）に左から右へ後続トランジション順序に沿って配置する。複数ある場合は選択分岐で横に接続する。続いて、表示制御部２３は、各トランジション出口に接続されたステップをトランジションの下に配置する。各トランジションに接続されたステップが複数ある場合は、左から右へと配置し、並列分岐で接続する。表示制御部２３は、この処理を繰り返すことで全ての要素を木構造に配置する。グリッドを用いる場合は、各部分木が必要なだけの幅をとれば良い。図６は、木構造に配置された要素で構成されたＳＦＣの表示部３における表示の一例を示す図である。
【００２８】
選択収束や並列収束を用いることにより、先行する要素を複数持つステップ又はトランジションは、ＳＦＣ中に複数回出現しうる。この場合は、表示制御部２３は、複数回出現する要素のいずれか一つのみについて、後続する要素からなる部分木を描画すれば良い。それ以外のところに関しては、表示制御部２３は、その要素のみ描画し、以降を省略したことを示すか、描画したものとの接続線を描画する。図７は、複数回出現するステップを含むＳＦＣの描画の一例を示す図である。ステップ５００は編集データ上では「ｓ２」の番号が割り当てられており、図７中のｓ２に向かう矢印は、この番号が割り当てられているステップ５００の入口と接続されることを示している。ステップ５００は、先行する要素としてトランジション５０１、トランジション５０２及びトランジション５０３を持っているが、トランジション５０１のみに後続する部分木が描画されており、トランジション５０２及びトランジション５０３についてはステップ５００が後続することのみが描画されており、以降の部分木の描画は省略されている。
【００２９】
単一のステップが先行するトランジションを複数持つ場合、そのトランジションが隣接配置されていれば表示制御部２３は選択収束を用いてＳＦＣを描画し、そうでなければ省略描画でＳＦＣを描画するが、接続関係は同じである。並列収束に関しても、表示制御部２３は同様の基準で省略描画とするか否かを決定できる。図８は、先行するトランジションを複数持つステップの描画の一例を示す図である。ステップ６０３は編集データ上では「ｓ１」の番号が割り当てられており、図８中のｓ１に向かう矢印は、この番号が割り当てられているステップ６０３の入口と接続されることを示している。トランジション６０１とトランジション６０２とは隣接して配置されていないため、トランジション６０２とステップ６０３との接続は省略描画となっている。一方、トランジション６０４とトランジション６０５とは隣接して配置されているため、トランジション６０５とステップ６０６との接続は省略されずに選択収束６０７を用いて描画されている。両者は表現が異なるが、接続関係としては同じである。
【００３０】
上記のように、ＳＦＣは接続関係に基づいて表示制御部２３が機械的に生成するものとする。すなわち、入力部１を用いた編集操作はＳＦＣに対して行うが、編集処理は編集制御部２２が接続関係に対して行い、表示制御部２３は接続関係からＳＦＣを生成するものとする。
【００３１】
木構造を作成するには、処理対象の要素を指定して、それに対して後続する要素を追加することと、複数の後続する要素の順序（左右の並び順）を指定できれば良い。
【００３２】
次に、編集制御部２２の動作について説明する。編集制御部２２は、入力部１を介して行われた操作と接続関係の持つ比較的強い制約（規則記憶部５に記憶されている規約）とに基づいてどのような処理を行うかを決定する。ここで用いる接続関係の制約とは、以下のものである。（１）ステップとトランジションとは交互に現れ、ステップ同士又はトランジション同士が接続されることはない。（２）一つのステップに複数のトランジションが後続する場合がある。これはＳＦＣ上では選択分岐として表現される。また、一つのステップに複数のトランジションが先行する場合、選択収束として表現される。（３）一つのトランジションに複数のステップが後続する場合がある。これは並列分岐と呼ぶ。一つのトランジションに複数のステップが先行する場合は並列収束とする。
【００３３】
上記（１）から、編集制御部２２は、ステップに後続する要素はトランジション、トランジションに後続する要素はステップであると自動的に決定できる。上記（２）、（３）から、編集制御部２２は、複数のステップがトランジションに後続した場合、それらは並列分岐であり、複数のトランジションがステップに後続した場合、それらは選択分岐であると自動的に決定できる。
【００３４】
入力部１を介して行う操作としては、ＳＦＣ上に配置されたある要素（ステップ又はトランジション）を指定し、関連する位置への挿入を行う操作と、ＳＦＣ上に配置されたある要素（ステップ又はトランジション）を指定し、削除する操作とがある。
【００３５】
また、操作における「関連する位置」として、「同じ位置」、「前の位置」、「後の位置」、「右の位置」、「左の位置」が編集制御部２２によって定義される。図９は、操作における関連する位置の定義の一例を示す図である。編集制御部２２は、指定した部品（ここではステップ７００）が配置されているセルを「同じ位置」と、指定した部品が配置されているセルの上（前）のセルを「前の位置」と、指定した部品が配置されているセルの左のセルを「左の位置」と、指定した部品が配置されているセルの右のセルを「右の位置」と、指定した部品が配置されているセルの下（後）のセルを「後の位置」と定義している。
【００３６】
要素の種類を指定しないで新規要素の挿入を行う場合について説明する。図９に示すように要素が配置されている状態において入力部１を用いた操作によってステップ７００を新規要素挿入対象要素として指定し、関連する位置（新規要素挿入対象要素に対する位置）への新規要素挿入を行った場合の編集制御部２２の処理を関連する位置ごとに定義する。ここで想定される入力部１を用いての新規要素挿入操作は、具体的には、関連する位置へのカーソルの移動と新規要素挿入を表すボタン押下、または関連する場所への新規挿入アイコンのドラッグアンドドロップなどである。
【００３７】
なお、関連する位置を指定する方法としてマウスジェスチャによる入力方式を採用することも可能である。図１０は、ジェスチャとアクションとの対応を定義するテーブルの一例を示す図である。図１０に示すようなテーブル５５を規則記憶部５などに記憶させておき、入力処理部２１がこのテーブルを参照した上で処理の内容を特定することで、マウスジェスチャによる入力を実現することが可能となる。マウスジェスチャによる入力方式を採用することにより、マウスの移動量が少なくなり、新規要素挿入対象要素が配置されているセルから離れた位置にマウスカーソルがあっても、マウスカーソルを移動させることなく関連する位置を指定する操作を行える。
【００３８】
図１１は、要素の種類を指定しないで新規要素の挿入を行う場合の処理の流れを示すフローチャートであり、図９に示すように既に配置されている二つの要素（ステップ７００及びトランジション７０１）のうち、ステップ７００を新規要素挿入対象要素として指定して部品を新規挿入する場合の処理を示す。入力部１を用いてユーザが新規要素挿入操作を行う（ステップＳ１０１）。入力処理部２１は、操作によって指定された関連する位置を特定する（ステップＳ１０２）。また、編集制御部２２は、記憶部４から編集データを取得する（ステップＳ１０３）。
【００３９】
入力部１を用いた新規要素挿入操作によって指定された関連する位置が同じ位置であった場合（ステップＳ１０４／同じ位置）、編集制御部２２は、編集データのステップ７００を別のステップに置換する（ステップＳ１０５）。表示制御部２３は、ＳＦＣ上のステップ７００を別のステップに変更して（ステップＳ１０６）、表示部３に表示させる（ステップＳ１１５）。
【００４０】
図１２は、新規要素挿入操作を同じ位置に対して行った場合の処理結果に基づいて表示制御部２３が表示部３に表示させるＳＦＣの一例を示す図であり、図９に示したＳＦＣにおいて新規要素挿入操作を同じ位置に対して行った場合のＳＦＣである。新規要素挿入操作が同じ位置に対して行われた場合、編集制御部２２は、トランジション７０１とステップ７００との接続を削除する。そして、新規にステップ作成し（ここではステップ７０２とする）、トランジション７０１の出口とステップ７０２の入口とを接続する。このように、新規要素挿入操作が同じ位置に対して行われた場合、編集制御部２２は、新規要素挿入対象要素を同じ種類の別の要素に入れ替える。表示制御部２３はこのようにして要素が置き換えられた編集データに基づくＳＦＣを表示部３に表示させる。
【００４１】
入力部１を用いた新規要素挿入操作によって指定された関連する位置が後の位置（次の位置）であった場合（ステップＳ１０４／後の位置）、編集制御部２２は、編集データのステップ７００の後段に（次に）新規にトランジションを挿入する（ステップＳ１０７）。表示制御部２３は、ＳＦＣのステップ７００の下に新規にトランジションを追加し（ステップＳ１０８）、表示部３に表示させる（ステップＳ１１５）。
【００４２】
図１３は、新規要素挿入操作を後の位置に対して行った場合の処理結果に基づいて表示制御部２３が表示部３に表示させるＳＦＣの一例を示す図であり、図９に示したＳＦＣにおいて新規要素挿入操作を後の位置に対して行った場合のＳＦＣである。新規要素挿入操作が後の位置に対して行われた場合、編集制御部２２は、新規要素挿入対象要素とは異なる種類の要素であるトランジションを新規に作成し（ここではトランジション７０３とする）、ステップ７００の出口をトランジション７０３の入口に接続する。表示制御部２３は、このようにして新規の要素が追加された編集データに基づくＳＦＣを表示部３に表示させる。
【００４３】
入力部１を用いた新規要素挿入操作によって指定された関連する位置が前の位置であった場合（ステップＳ１０４／前の位置）、編集制御部２２は、編集データのトランジション７０１とステップ７００との間に新規のステップと新規のトランジションとを挿入する（ステップＳ１０９）。表示制御部２３は、ＳＦＣのトランジション７０１とステップ７００との間に新規のステップ及びトランジションを追加し（ステップＳ１１０）、表示部３に表示させる（ステップＳ１１５）。
【００４４】
図１４は、新規要素挿入操作を前の位置に対して行った場合の処理結果に基づいて表示制御部２３が表示部３に表示させるＳＦＣの一例を示す図であり、図９に示したＳＦＣにおいて新規要素挿入操作を前の位置に対して行った場合のＳＦＣである。新規要素挿入操作が前の位置に対して行われた場合、編集制御部２２は、新規要素挿入対象要素と同じ種類の要素であるステップ（ここではステップ７０４とする）と、指定された要素とは別の種類の要素であるトランジション（ここではトランジション７０５とする）とを新規に作成し、トランジション７０１の出口をステップ７０４の入口と、ステップ７０４の出口をトランジション７０５の入口と、トランジション７０５の出口をステップ７００の入口とそれぞれ接続する。前の位置に対する新規要素挿入操作は、新規要素挿入対象要素に先行する要素の挿入であり、２種類の要素を組にして挿入する。表示制御部２３は、このようにして２種類の要素が組として挿入された編集データに基づくＳＦＣを表示部３に表示させる。
【００４５】
入力部１を用いた新規要素挿入操作によって指定された関連する位置が左の位置であった場合（ステップＳ１０４／左の位置）、編集制御部２２は、編集データのトランジション７０１の後続ステップとして、後続トランジション順序がステップ７００の直前となるように新規ステップを挿入する（ステップＳ１１１）。表示制御部２３は、ＳＦＣのステップ７００を右のセルに移動させ、新規に挿入するステップをステップ７００が配置されていたセルに追加し、ステップ７００及び新規に挿入するステップとトランジション７０１とを並列分岐で接続して（ステップＳ１１２）、表示部３に表示させる（ステップＳ１１５）。
【００４６】
図１５は、新規要素挿入操作を左の位置に対して行った場合の処理結果に基づいて表示制御部２３が表示部３に表示させるＳＦＣの一例を示す図であり、図９に示したＳＦＣにおいて新規要素挿入操作を左の位置に対して行った場合のＳＦＣである。新規要素挿入操作が左の位置に対して行われた場合、編集制御部２２は、新規要素挿入対象要素と同じ種類の要素であるステップ（ここではステップ７０６とする）を新規に作成し、トランジション７０１の出口をステップ７０６の入口と接続する。編集制御部２２は、ステップ７０６の後続トランジション順序をステップ７００の直前とする。表示制御部２３は、このようにして要素が追加された編集データに基づくＳＦＣを表示部３に表示させる。なお、同じ種類の要素が隣接して配置されることにより、ステップ７００とステップ７０６とは並列分岐として描画される。
【００４７】
入力部１を用いた新規要素挿入操作によって指定された関連する位置が右の位置であった場合（ステップＳ１０４／右の位置）、編集制御部２２は、編集データのトランジション７０１の後続ステップとして、後続トランジション順序がステップ７００の直後となるように新規ステップを挿入する（ステップＳ１１３）。表示制御部２３は、ＳＦＣのステップ７００の右のセルに新規に挿入するステップを追加し、トランジション７０１とステップ７００及び新規に挿入するステップとを並列分岐で接続して（ステップＳ１１４）、表示部３に表示させる（ステップＳ１１５）。
【００４８】
図１６は、新規要素挿入操作を右の位置に対して行った場合の処理結果に基づいて表示制御部２３が表示部３に表示させるＳＦＣの一例を示す図であり、図９に示したＳＦＣにおいて新規要素挿入操作を右の位置に対して行った場合のＳＦＣである。新規要素挿入操作が右の位置に対して行われた場合、編集制御部２２は、新規要素挿入対象要素と同じ種類の要素であるステップ（ここではステップ７０６とする）を新規に作成し、トランジション７０１の出口をステップ７０６の入口と接続する。編集制御部２２は、ステップ７０６の後続トランジション順序をステップ７００の直後とする。表示制御部２３は、このようにして要素が追加された編集データに基づくＳＦＣを表示部３に表示させる。なお、同じ種類の要素が隣接して配置されることにより、ステップ７００とステップ７０６とは並列分岐として描画される。
【００４９】
以上のようにして、ステップに後続するトランジションの挿入・並列分岐の挿入が可能となる。ここでは指定した要素がステップである場合を例としたが、トランジションを指定する場合についても同様であり、トランジションに後続するステップや選択分岐の挿入が可能である。
【００５０】
削除に関しては、編集制御部２２は、新規要素挿入対象要素に先行する要素との接続を削除する。要素そのものを削除しないのは、複数の先行要素を持つ場合にそれらとの関係を維持するためである。先行要素が無くなった場合は、編集制御部２２は、要素そのものを削除しても良い。
【００５１】
上記の新規要素挿入操作では、入力部１を用いた操作では「何を」挿入するかを指定せず、編集制御部２２が挿入する要素を自動的に決定しているが、「何を」に相当する部分を追加指定することで、一操作で行われる処理を追加して既配置要素接続操作とすることができる。その例として、まず既配置要素に対して同様の操作を定義する。入力部１を用いた操作の具体的例としては、第１の既配置要素の関連する位置への第２の既配置要素のドラッグアンドドロップなどが挙げられる。
【００５２】
ＳＦＣ上に配置されたある要素（ステップ又はトランジション）を入力部１を用いた操作で指定することにより、編集制御部２２は、関連する位置への「既配置要素」の挿入を行う。実際に行われる処理は、上記でいうところの「新規ステップ又はトランジションを生成」に相当処理を無くしたものとなり、既配置要素に対しての接続のみが行われる。
【００５３】
図１７は、既配置要素の接続の処理の一例を示す図である。既配置要素であるステップ８００（第２の既配置要素）をトランジション８０１（第１の既配置要素）に後続させたい場合、入力部１を用いた既配置要素接続操作により、ステップ８００をトランジション８０１の後の位置にあるセルにドラッグアンドドロップする。これにより、トランジション８０１の出口とステップ８００の入口とを接続する処理が編集制御部２２によって行われる。ここで、ステップ８００は編集データ上では「ｓ２」の番号が割り当てられており、図１７中のｓ２に向かう矢印は、この番号が割り当てられているステップ８００の入口と接続されることを示している。
【００５４】
図１８は、既配置要素の接続の処理の別の一例を示す図である。図１８において、入力部１を用いた既配置要素接続操作により、トランジション８０２に後続するステップ８０３を、トランジション８０２の隣のセルにあるトランジション８０４にドラッグアンドドロップした場合、編集制御部２２は、選択収束８０５を発生させる。同様に、ステップに後続するトランジションを隣のセルにあるステップにドラッグアンドドロップする操作が入力部１を用いて行われると、編集制御部２２は並列収束を発生させる。
【００５５】
また、本実施の形態では、入力部１を用いた操作において「何を」を指定する必要がないため、この部分に追加情報を持たせることができる。
【００５６】
例えば、ステップは処理を持つが、この処理の典型的なものとして、あるデバイスの値を活性状態に応じてセットするだけというものがある（ＩＥＣ標準で言うブーリアンアクション）。また、トランジションの遷移条件にも、あるデバイスの値が真なら条件成立、偽なら不成立というものがある。いずれの場合も、「何を」の部分に対象となるデバイスを入力部１を用いて指定するのみで、編集制御部２２は処理又は遷移条件まで含めた要素を挿入・接続することができる。
【００５７】
新規要素や既配置要素の挿入と同様に、入力部１を用いた操作でデバイスを対象の関連する位置に挿入操作することにより、要素と、その要素中の処理又は遷移条件とを一操作で入力可能である。
【００５８】
図１９は、ＳＦＣ編集画面の一例を示す図である。図１９に示すＧＵＩにおいて、左側に表示されているのはデバイス一覧表９００である。デバイスｘ１のアイコン９０１を対象トランジション９０２の後の位置にドラッグアンドドロップする操作が入力部１を用いて行われると、編集制御部２２は、対象の種類と、後の位置という情報とに基づいてステップ（ここではステップ９０３とする）を生成してトランジション９０２に接続する。さらに、編集制御部２２は、ステップ９０３の処理として、デバイスｘ１の値をステップ９０３の活性状態にセットするという編集を行うことができる。
【００５９】
図２０は、本実施形態にかかるシーケンスプログラム作成装置での画面の遷移例を示す図である。図中の各状態において操作対象セルを太枠で示し、関連する位置を○印で、操作対象セルをドラッグアンドドロップする場合のドロップ先を△印で表す。ステップｓ０〜ｓ３、トランザクションｔ０〜ｔ３をエディタ画面５０で配置する処理がステップｓ０を配置する操作を含めると９操作で完了している。各操作においては何を挿入するかを指定する必要がなく、そのための操作（ツールバーやファンクションキー）を省略できる。また、これらの要素の処理や遷移条件が単一デバイスの場合、これらの設定は上記の９操作に含められる。
【００６０】
図２１は、従来のシーケンスプログラム作成装置での画面の遷移例を示す図である。図中の各状態において直前の挿入操作によって挿入された要素を太破線枠で囲って示す。エディタ画面１５０に図２０と同様の各要素を挿入するためには、選択分岐・選択収束部品である接続線を含めて１０回挿入操作が必要である。それぞれの操作においては（ツールバーまたはファンクションキーを用いて）何を挿入するかを選択する必要がある。各ステップ・トランジションには付属する処理・遷移条件があるが、それらも別途設定が必要である。
【００６１】
図２０、図２１のような単純な例では操作数の差は現れにくいが、すでに記述されたＳＦＣに対して挿入などを行う場合、従来の手法では挿入位置から右や下の部品をずらして接続線を繋ぎ直す手間が生じる。本実施の形態では接続関係を直接編集するため、要素をずらすなどの操作は一切不要であり、操作数は大きく減少する。
【００６２】
本実施の形態にかかるシーケンスプログラム作成装置によるＳＦＣは、規約に従って配置された要素のみで構成されるため、実行不能なシーケンスプログラムの作成（実行不能なコードへの変換）を防止できる。
【００６３】
このように、本実施の形態によれば、ＳＦＣの編集に要する操作数を低減することができ、かつ、規約に沿わない要素の配置を防止できる。
【００６４】
実施の形態２．
実施の形態１では、指定した要素が配置されているセル及びこれと隣接するセルを用いて、「関連する位置」を指定した。しかし、指定する要素が配置されているセルに隣接するセルに既に他の要素が配置されている場合、操作の意味が曖昧となるため、その位置を空けるように配置する必要がある。
【００６５】
このため、本実施の形態では、編集制御部２２は、セルを複数の領域に分割し、指定した要素が配置されているセル内で関連する位置を定義する。図２２は、セルを複数の領域に分割して関連する位置を定義する一例を示す図である。セル１０００は、同じ位置に対応する領域１００１、前の位置に対応する領域１００２、後の位置に対応する領域１００３、左の位置に対応する領域１００４及び右の位置に対応する領域１００５に分割されている。
【００６６】
本実施の形態では、指定された要素が配置されているセル内での操作で関連する位置を指定できるため、隣接するセルに既に部品が配置されていたとしても操作の意味が曖昧になることはない。ただし、セルを複数の領域に分割することによって、関連する位置を指定する操作の操作性が低くなり、セルの分割に伴って制御部２の処理負荷が大きくなってしまう。このため、操作性及び制御部２の処理負荷と操作の明確さとのどちらを優先するかによって、実施の形態１と実施の形態２とを使い分けると良い。また、両者を併用し、セル分割は常に有効とし、隣接するセルを利用した関連する位置の指定はセルが開いている場合のみ有効としても良い。
【００６７】
また、隣接するセルを利用した関連する位置の指定に関しては、利用頻度に応じて関連する位置を非対称に隣接するセルに割り当てることもできる。図２３は、関連する位置に隣接するセルに割り当てた一例を示す図である。例えば、要素の置き換えを頻繁には行わない場合には、図２３に示すように、指定された要素が配置されたセル１１００を右側の位置と関連付けることなども可能である。
【産業上の利用可能性】
【００６８】
以上のように、本発明にかかるシーケンスプログラム作成装置は、規約に従って要素を配置して実行可能なシーケンスプログラムを作成するのに適している。
【符号の説明】
【００６９】
１  入力部
２  制御部
３  表示部
４  記憶部
５  規則記憶部
１０  シーケンスプログラム作成装置
２１  入力処理部
２２  編集制御部
２３  表示制御部
５０  エディタ画面
５５  テーブル
１００、１０３、２００、２０６、３０１、３０２、３０４、３０５、４０２、４０４、４０５、５００、６０３、６０６、７００、７０２、７０４、７０６、８００、８０３、９０３  ステップ
１０１、２０１、２０２、２０４、２０５、３００、３０６、４００、４０１、４０６、５０１、５０２、５０３、６０１、６０２、６０４、６０５、７０１、７０３、７０５、８０１、８０２、８０４、９０２  トランジション
１０２  接続線
２０３  選択分岐
２０７、４０３、６０７、８０５  選択収束
３０３  並列分岐
３０７、４０７  並列収束
９００  デバイス一覧表
９０１  デバイスｘ１のアイコン
１０００、１１００  セル
１００１  同じ位置に対応する領域
１００２  前の位置に対応する領域
１００３  後の位置に対応する領域
１００４  左の位置に対応する領域
１００５  右の位置に対応する領域
【図１】
2013038556.tif 000003
【図２】
2013038556.tif 000004
【図３】
2013038556.tif 000005
【図４】
2013038556.tif 000006
【図５】
2013038556.tif 000007
【図６】
2013038556.tif 000008
【図７】
2013038556.tif 000009
【図８】
2013038556.tif 000010
【図９】
2013038556.tif 000011
【図１０】
2013038556.tif 000012
【図１１】
2013038556.tif 000013
【図１２】
2013038556.tif 000014
【図１３】
2013038556.tif 000015
【図１４】
2013038556.tif 000016
【図１５】
2013038556.tif 000017
【図１６】
2013038556.tif 000018
【図１７】
2013038556.tif 000019
【図１８】
2013038556.tif 000020
【図１９】
2013038556.tif 000021
【図２０】
2013038556.tif 000022
【図２１】
2013038556.tif 000023
【図２２】
2013038556.tif 000024
【図２３】
2013038556.tif 000025
【手続補正書】
【提出日】平成24年4月26日(2012.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置であって、
前記ＳＦＣの規約を記憶する規則記憶部と、
新規の前記要素を前記ＳＦＣに挿入する新規要素挿入操作が前記編集画面上で行われた際に、前記新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の前記要素の種類と、前記新規要素挿入対象要素に対する位置と、前記規則記憶部に記憶されている前記ＳＦＣの規約とに基づいて、前記シーケンスプログラムのデータに前記新規の要素に相当するデータを追加する編集制御部と、
を備え、
前記編集制御部は、前記新規要素挿入対象要素に対する位置として左右のいずれかが指定された場合には、前記新規要素挿入対象要素として指定された既配置の要素と同じ種類の要素を、前記新規要素挿入対象要素と並列に接続するデータを、前記シーケンスプログラムのデータに追加することを特徴とするシーケンスプログラム作成装置。
【請求項２】
複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置であって、
前記ＳＦＣの規約を記憶する規則記憶部と、
新規の前記要素を前記ＳＦＣに挿入する新規要素挿入操作が前記編集画面上で行われた際に、前記新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の前記要素の種類と、前記新規要素挿入対象要素に対する位置と、前記規則記憶部に記憶されている前記ＳＦＣの規約とに基づいて、前記シーケンスプログラムのデータに前記新規の要素に相当するデータを追加する編集制御部と、
を備え、
前記編集制御部は、既配置の前記要素同士を接続する既配置要素接続操作が前記編集画面上で行われた際に、前記既配置要素接続操作で第１の既配置要素として指定された前記既配置の要素及び第２の既配置要素として指定された前記既配置の要素の各々の種類と、前記第１の既配置要素に対する位置と、前記規則記憶部が記憶する前記ＳＦＣの規約とに基づいて、前記第１の既配置要素と前記第２の既配置要素とを接続し、前記シーケンスプログラムのデータを更新することを特徴とするシーケンスプログラム作成装置。
【請求項３】
複数の要素及びそれらの接続状態で表現されるシーケンシャル・ファンクション・チャート（ＳＦＣ）を編集する操作を編集画面上でユーザに行わせてプログラマブルロジックコントローラで実行されるシーケンスプログラムを作成するシーケンスプログラム作成装置であって、
前記ＳＦＣの規約を記憶する規則記憶部と、
新規の前記要素を前記ＳＦＣに挿入する新規要素挿入操作が前記編集画面上で行われた際に、前記新規要素挿入操作によって新規要素挿入対象要素として指定された既配置の前記要素の種類と、前記新規要素挿入対象要素に対する位置と、前記規則記憶部に記憶されている前記ＳＦＣの規約とに基づいて、前記シーケンスプログラムのデータに前記新規の要素に相当するデータを追加する編集制御部と、
を備え、
前記新規要素挿入操作は、前記プログラマブルロジックコントローラに接続されるデバイスの一覧表の中からデバイスを選択する操作と、該選択されたデバイスを前記指定された位置に配置する操作とを含み、
前記編集制御部は、前記シーケンスプログラムのデータに追加する前記新規要素に関連する条件として、前記デバイスからのデバイス値の取得及び前記デバイス値の変更の一方を、前記新規要素挿入対象要素の種類に応じて設定することを特徴とするシーケンスプログラム作成装置。
【請求項４】
前記編集制御部は、前記新規要素挿入対象要素が配置されているセル及び該セルの前後左右のセルのいずれが選択されたかによって、前記新規要素挿入対象要素に対する位置を決定することを特徴とする請求項１から３のいずれか１項に記載のシーケンスプログラム作成装置。
【請求項５】
前記編集制御部は、前記新規要素挿入対象要素が配置されているセルを複数の領域に分割して、該分割された領域のいずれが選択されたかによって、前記新規要素挿入対象要素に対する位置を決定することを特徴とする請求項１から３のいずれか１項に記載のシーケンスプログラム作成装置。
【国際調査報告】
2013038556.tif 000026
2013038556.tif 000027
2013038556.tif 000028
2013038556.tif 000029