(57)【要約】【課題】組込み制御装置上で実行されるプログラムを容易に作成でき、且つその内容を理解しやすく表示可能なプログラミング装置を提供する。【解決手段】プログラミング装置は、プログラムを図式化してなる図式化プログラム１０を入力に応じて編集する編集部と、編集部で編集された図式化プログラム１０をディスプレイに表示させる表示部と、編集部で編集された図式化プログラム１０をマイクロプロセッサにて実行可能なプログラムに変換する変換部と、を備えている。この図式化プログラム１０では、状態保持回路が状態定義図２４として図式化されている。また、状態定義図２４が、状態名称図２５と条件演算図２６とを積み重ねるようにグループ化していることから、例えば状態定義図２４の状態に条件演算が多く含まれる場合でも、状態定義図２４がコンパクトで見やすく表示される。【選択図】図２
2009271768.tif 000002
【特許請求の範囲】
【請求項１】
組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、
プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、
前記編集手段で編集された前記図式化プログラムを画面に表示させる表示手段と、
前記編集手段で編集された前記図式化プログラムを前記組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、
前記図式化プログラムは、状態保持回路を表す状態定義図を有しており、
前記状態定義図は、保持する状態の名称を示す状態名称図、及び前記状態に含まれる条件演算を示す１つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とするプログラミング装置。
【請求項２】
前記図式化プログラムは、状態遷移回路を表す状態遷移図を有し、
前記状態遷移図は、
複数の前記状態定義図と、
複数の前記状態定義図に連結され、前記状態遷移の順序を示す矢印と、
初期状態を示す初期状態図と、
応答処理を示す応答処理図と、を含むことを特徴とする請求項１記載のプログラミング装置。
【請求項３】
前記状態遷移図は、上位階層と下位階層とに階層化されており、前記状態定義図を前記上位階層に含むと共に、複数の前記状態定義図と前記矢印と前記初期状態図と前記応答処理図とを前記下位階層に含むことを特徴とする請求項２記載のプログラミング装置。
【請求項４】
前記状態遷移図では、前記下位階層における複数の前記状態定義図の前記状態にて共通する条件演算が、前記上位階層における前記状態定義図にまとめて示されていることを特徴とする請求項３記載のプログラミング装置。
【請求項５】
複数の前記状態定義図及び前記矢印は、前記状態が並列に遷移するように構成可能とされていること特徴とする請求項２〜４の何れか一項記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御を必要とするシステム内に組み込む制御装置である組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置に関する。
【背景技術】
【０００２】
従来のプログラミング装置としては、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備えたものが知られている（例えば、特許文献１参照）。このようなプログラミング装置では、通常、ラダー言語が用いられており、図式化プログラムが接点図及びコイル図で表されている。
【特許文献１】特開平９−６２３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したようなプログラミング装置では、その図形要素の種類が少なく編集自由度が低いことから、編集された図式化プログラムが煩雑になるおそれがある。よって、組込み制御装置上で実行されるプログラムを作成するのが困難となり、且つ図式化プログラムからプログラミング内容を理解し難いという問題がある。
【０００４】
そこで、本発明は、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能なプログラミング装置を提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明に係るプログラミング装置は、組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、図式化プログラムは、状態保持回路を表す状態定義図を有しており、状態定義図は、保持する状態の名称を示す状態名称図、及び状態に含まれる条件演算を示す１つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とする。
【０００６】
このプログラミング装置によれば、状態保持回路を状態定義図という１つの図で図式化することができる。さらに、この状態定義図にあっては、状態名称図と条件演算図とが積み重ねられるようにグループ化されている。よって、例えば、状態定義図の状態に条件演算が多く含まれる場合でも、状態定義図をコンパクトで見やすく表示することができる。その結果、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【０００７】
また、図式化プログラムは、状態遷移回路を表す状態遷移図を有し、状態遷移図は、複数の状態定義図と、複数の状態定義図に連結され、状態遷移の順序を示す矢印と、初期状態を示す初期状態図と、応答処理を示す応答処理図と、を含むことが好ましい。この場合、状態遷移回路を状態遷移図という１つの図でコンパクト且つ見やすく表示することができる。加えて、複数の状態定義図間の状態遷移が理解しやすいものとなる。
【０００８】
ここで、状態遷移図は、上位階層と下位階層とに階層化されており、遷移定義図を上位階層に含むと共に、複数の状態保持図と矢印と初期状態図と応答処理図とを下位階層に含むことが好ましい。このように状態遷移図を階層化することで、組込み制御装置上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【０００９】
このとき、状態遷移図では、下位階層における複数の状態定義図の状態にて共通する条件演算が、上位階層における状態定義図にまとめて示されていることが好ましい。この場合、状態遷移図を簡略化することが可能となる。
【００１０】
また、複数の状態定義図及び矢印は、状態が並列に遷移するように構成可能とされていることが好ましい。この場合、状態遷移図において複数の状態を並列遷移させることができる。
【発明の効果】
【００１１】
本発明によれば、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、以下の説明において、同一又は相当要素には同一の符号を付し、重複する説明は省略する。
【００１３】
図１は、本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。プログラミング装置１は、制御を必要とするシステム内に組み込むマイクロプロセッサ（組込み制御装置）２上で実行されるプログラムを、図形を利用して作成するものである。具体的には、プログラミング装置１は、プログラムの構造を図式化してなる図式化プログラムによって、マイクロプロセッサ２上で実行されるプログラムを作成する。そこで、まず、この図式化プログラムにおける図形要素とその演算規則とについて説明する。
【００１４】
図２は、図式化プログラムを説明するための図である。図２に示すように、プログラミング装置１による図式化プログラム１０には、外部の事象を検出して状態を遷移（状態遷移）させる状態遷移回路を表す状態遷移図１１が、図形要素として少なくとも含まれている。状態遷移図１１は、上位階層Ｕと下位階層Ｄとに階層化されている。この状態遷移図１１の上位階層Ｕには、状態定義図１２が形成されている。そして、下位階層Ｄには、複数の状態定義図１３、矢印１４、初期状態図１５及び応答処理図１６が制御枠１７に囲まれるように形成されている
【００１５】
図２（ａ）に示すように、状態定義図１２は、状態遷移の名称を示す状態名称図１８と、状態遷移に含まれる条件演算（つまり、条件判断処理の演算）を示す条件演算図１９とを含んでいる。これら状態名称図１８及び条件演算図１９は、上下方向に積み重ねられてグループ化されている。なお、条件演算図１９は、１つ以上含んでいればよい。
【００１６】
状態名称図１８は、２重の矩形枠からなり、その内部に状態の名称が記入されている。ここでは、「状態遷移回路実行中」と記入されている。条件演算図１９は、矩形枠からなり、その内部に条件判断演算式２０が記入されている。ここでは、条件判断演算式２０として「条件判断演算式♯０」が記入されている。
【００１７】
また、条件演算図１９には、その内部に条件判断属性図２１が形成されている。この条件判断属性図２１は、その形態の違いによって以下の演算規則を条件演算図１９に与える。
【００１８】
図３は、条件判断属性図を説明するための図である。図３（ａ）に示す条件判断属性図２１ａは、条件判断演算式２０の演算値を条件演算の演算値とする。図３（ｂ）に示す条件判断属性図２１ｂは、条件判断演算式２０の演算値の反転結果を条件演算の演算値とする。図３（ｃ）に示す条件判断属性図２１ｃは、条件判断演算式２０の演算値が偽から真に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。図３（ｄ）に示す条件判断属性図２１ｄは、条件判断演算式２０の演算値が真から偽に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。
【００１９】
図２（ｂ）の状態定義図２４は、入力されてから出力するまでの間、真の演算値を保持するという演算規則を与える。この状態定義図２４は、保持する状態の名称を示す状態名称図２５と、その状態に含まれる条件演算を示す条件演算図２６とが上下方向に積み重ねられてグループ化されている。なお、条件演算図２６は、１つ以上含んでいればよい。
【００２０】
状態名称図２５は、２重の矩形枠からなり、その内部に状態名が記入される。条件演算図２６は、矩形枠からなり、その内部に条件判断演算式が記入される。具体的には、条件演算図２６１の内部には、条件判断演算式１００として「条件判断演算式♯１」が記入され、条件演算図２６２の内部には、条件判断演算式１０１として「条件判断演算式♯２」が記入されている。
【００２１】
矢印１４は、状態遷移の順序を示すものであり、状態定義図２４に連結されている。また、始端に○印が形成された矢印１４は、状態定義図２４の演算値が真で、且つ始端の条件演算図２６の演算値が偽になったときに、真となるという演算規則を与える。
【００２２】
応答処理図１６は、応答処理を示すものである。この応答処理図１６は、矩形枠からなり、その内部に応答処理内容２７が記入される。応答処理図１６は、応答処理内容２７が左辺値の場合、入力された演算結果を代入する。一方、応答処理内容２７が演算式の場合、入力された演算結果が真になったとき、演算式を演算する。他方、応答処理内容２７が文の場合、入力された演算結果が真になったとき、文を実行する。
【００２３】
初期状態図１５は、状態遷移図１１における初期の状態を示す図である。制御枠１７は、状態遷移図１１の下位階層Ｄを画成するものである。この制御枠１７の左上部には、上記の条件演算図１９，２６と同様な条件演算図２８が形成されている。
【００２４】
ここで、状態遷移図１１では、下位階層Ｄにおける複数の状態定義図２４の状態において共通する条件演算が、上位階層Ｕの条件演算図１９としてまとめて示されている。よって、状態遷移図１１は、条件演算図１９が複数の状態定義図２４のそれぞれに含まれたものと、実質的に同一である。
【００２５】
以上に説明した状態遷移図１１では、条件演算図２８による条件演算が真の場合、制御枠１７内の状態遷移が演算される一方、偽の場合、制御枠１７内の各状態がリセットされるという演算規則が与えられることとなる。詳細な演算ついては、後述する。
【００２６】
なお、図２（ａ）に示すように、状態定義図１２には、条件演算図１９と同様な条件演算図２２が連結されている。よって、状態遷移図１１は、この条件演算図２２の条件演算の演算値が真になり、その結果、状態定義図１２の演算結果が真になったとき、その処理を実行する。
【００２７】
次に、プログラミング装置１の構成について説明する。
【００２８】
図１に示すように、プログラミング装置１は、コンピュータに搭載されており、ここでは、パソコン３のＥＣＵ４に搭載されている。このプログラミング装置１は、編集部（編集手段）５、表示部（表示手段）６及び変換部（変換手段）７を備えている。
【００２９】
編集部５は、例えばマウスやキーボード等の入力装置８からの入力に応じて、図式化プログラム１０を編集するものである。具体的には、この編集部５は、図式化プログラム１０の図形要素、及び図形要素を構成する要素（以下、「構成要素」という）等を、利用者と対話形式で追加、移動又は削除したり、その文字列を編集したりする。
【００３０】
より具体的には、編集部５は、ＥＣＵ４の内部記憶領域にデータ表現を構成し、このデータ表現を利用者の入力に従って編集する。また、編集部５は、ハードディスクドライブ等の記憶装置（不図示）にデータ表現を格納したり呼び出したりすることで、内部記憶領域にデータ表現を再現する。以下、このデータ表現について、「状態遷移図１１のデータ表現」を例示して説明すると共に、編集部５による図式化プログラムの編集について、「状態遷移図１１の構成要素の追加」と「状態遷移図１１の構成要素の削除」とを例示して説明する。
【００３１】
［データ表現］
状態遷移図１１は、編集部５内部では、各構成要素の情報が格納された部分記憶領域で表現される。格納された情報は、その種類ごとに、ノードデータｎ、アークデータａ、複合ノードデータｃ、制御枠データｆとされている。つまり、図４に示すように、状態遷移図１１の状態遷移図データＧは、ノードデータ集合Ｎと、アークデータ集合Ａと、複合ノードデータ集合Ｃと、制御枠データ集合Ｆと、から構成される。なお、ここでの「集合」は、例えば、各データの線形リストデータ構造で表現されたり、配列で表現されたりする同一種類の情報の集合を意味している。
【００３２】
（i）ノードデータｎ
ノードは、状態遷移図１１において、矢印１４の始端又は矢印の終端になり得る構成要素である。ノードデータｎ（ｎ｜ｎ∈Ｎ）は、かかる構成要素の情報が格納された編集部５内における内部記憶領域である。図５（ａ）に示すように、このノードデータｎは、ノード識別子ｍｎ、ノード型ｔｎ、処理要件ｓｎ、入力アーク集合Ｉｎ及び出力アーク集合Ｏｎを含んでいる。
【００３３】
ノード識別子ｍｎは、状態遷移図１１においてノードを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。ノード型ｔｎは、その情報が状態名、条件演算、応答処理又は初期状態等のいずれに関するものであるかを示す属性値である。処理要件ｓｎは、名称図１８，２５や条件演算図１９，２６，２８の演算式、応答処理図１６の記入内容の文字列等を判断する属性値である。
【００３４】
入力アーク集合Ｉｎ（Ｉｎ∈Ａ）は、ノードに入力される矢印１４のアークデータ集合である。この入力アーク集合Ｉｎとしては、例えば、アークデータａの線形リストデータ構造が挙げられる。なお、入力アーク集合Ｉｎは、ノード識別子ｍｎの配列であってもよい。
【００３５】
出力アーク集合Ｏｎ（Ｏｎ∈Ａ）は、ノードから出力される矢印１４のアークデータ集合である。この出力アーク集合Ｏｎとしては、例えば、アークデータａの線形リストデータ構造が挙げられる。なお、出力アーク集合Ｏｎは、ノード識別子ｍｎの配列であってもよい。
【００３６】
ちなみに、ノードデータｎが含む情報は、上記のものに限定されず、例えば、編集表示するために、ノードの表示座標等の情報を含んでいてもよい。
【００３７】
（ii）アークデータａ
アークデータａ（ａ｜ａ∈Ａ）は、状態遷移図１１の矢印１４の情報が格納された編集部５内における内部記憶領域である。図５（ｂ）に示すように、このアークデータａは、アーク識別子ｍａ、始端ノードｓａ及び終端ノードｔａを含んでいる。
【００３８】
アーク識別子ｍａは、状態遷移図１１において矢印１４を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。始端ノードｓａ（ｓａ∈Ｎ）は、矢印１４の始端が接続されたノードを特定する情報であり、例えばノード識別子ｍｎが挙げられる。終端ノードｔａ（ｔａ∈Ｎ）は、矢印１４の終端が接続されたノードを特定する情報であり、例えばノード識別子ｍｎが挙げられる。
【００３９】
ちなみに、アークデータａが含む情報は、上記のものに限定されず、例えば、編集表示するために、アークの折れ線形状を表現する座標等の情報を含んでいてもよい。
【００４０】
（iii）複合ノードデータｃ
複合ノードデータｃ（ｃ｜ｃ∈Ｃ）は、状態遷移図１１でのノードの積み重なりの情報が格納された編集部５内における部分記憶領域である。図５（ｃ）に示すように、この複合ノードデータｃは、複合ノード識別子ｍｃ及び複合ノード集合Ｎｃを含んでいる。
【００４１】
複合ノード識別子ｍｃは、状態遷移図１１においてノードの積み重なりを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。複合ノード集合Ｎｃ（Ｎｃ∈Ｎ）は、積み重なる各ノードを上から順に特定するための集合である。複合ノード集合Ｎｃとしては、例えば、ノードデータｎの線形リストデータ構造、又はノード識別子ｍｎの配列が挙げられる。この複合ノード集合Ｎｃでは、ノードの上に積み重なるノードを与える関数と、ノードの下に積み重なるノードを与える関数とが定義できるようになっている。さらに、複合ノード集合Ｎｃでは、状態名のノードを与える関数が定義できるようになっている。
【００４２】
ちなみに、複合ノードデータｃが含む情報は、上記のものに限定されず、例えば、積み重なるノードの幅を揃えて編集表示するために、これらのノードにおける最大幅等の情報を含んでいてもよい。
【００４３】
（iV）制御枠データｆ
制御枠データｆ（ｆ｜ｆ∈Ｆ）は、状態遷移図１１の制御枠１７の情報が格納された編集部５内における部分記憶領域である。図５（ｄ）に示すように、この制御枠データｆは、制御枠識別子ｍｆ、条件演算ｎｆ、枠内ノードデータ集合Ｎｆ及び枠内アークデータ集合Ａｆを含んでいる。
【００４４】
制御枠識別子ｍｆは、状態遷移図１１において制御枠１７を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。条件演算ｎｆは、条件演算図２８の条件演算を特定する情報であり、例えば条件演算図２８のノード識別子ｍｎが挙げられる。
【００４５】
枠内ノードデータ集合Ｎｆは、制御枠１７に囲まれているノードを特定するための情報である。この枠内ノードデータ集合Ｎｆとしては、ノードデータｎの線形リストデータ構造、又はノード識別子ｍｎの配列が挙げられる。枠内アークデータ集合Ａｆは、制御枠１７に囲まれている矢印１４を特定するための情報である。この枠内アークデータ集合Ａｆとしては、アークデータａの線形リストデータ構造、又はアーク識別子ｍａの配列が挙げられる。
【００４６】
ちなみに、制御枠データｆが含む情報は、上記のものに限定されず、例えば、制御枠１７の表示座標や表示幅、表示高さ等の情報を含んでいてもよい。
【００４７】
［構成要素の追加］
図６は、編集部による構成要素の追加の一例を示すフローチャートである。図６に示すように、編集部５によって状態遷移図１１の構成要素を追加する場合、まず、追加する構成要素（以下、「追加構成要素」という）の種類を指定し（Ｓ１）、追加構成要素の座標を指定する（Ｓ２）。続いて、追加構成要素の情報を格納する部分記憶領域を編集部５内に確保し（Ｓ３）、確保した記憶領域に追加構成要素の情報を格納する（Ｓ４）。
【００４８】
そして、追加構成要素がノードの場合、この追加構成要素をノードデータ集合Ｎに追加する一方、追加構成要素が矢印１４の場合、この追加構成要素をアークデータ集合Ａに追加する。他方、追加構成要素が制御枠１７の場合、この追加構成要素を制御粋データ集合Ｆに追加する（Ｓ５）。
【００４９】
［構成要素の削除］
図７は、編集部による構成要素の削除の一例を示すフローチャートである。図７に示すように、編集部５によって状態遷移図１１の構成要素を削除する場合、まず、削除する構成要素（以下、「削除構成要素」という）を指定する（Ｓ１１）。
【００５０】
削除構成要素がノードの場合、この削除構成要素をノードデータ集合Ｎから除外する（Ｓ１２）。続いて、ノードが積み重なっていれば、該当する複合ノードデータ集合Ｃから削除構成要素を除外する（Ｓ１３→Ｓ１４）。出力の矢印１４が接続されていれば、該当するアークデータａの始端を空にする（Ｓ１５→Ｓ１６）。入力の矢印１４が接続していれば、該当するアークデータａの終端を空にする（Ｓ１７→Ｓ１８）。制御枠１７に囲まれていれば、該当する制御枠データｆの枠内ノードデータ集合Ｎｆから削除構成要素を除外する（Ｓ１９→Ｓ２０）。
【００５１】
削除構成要素が矢印１４の場合、この削除構成要素をアークデータ集合Ａから除外する（Ｓ２１）。続いて、矢印１４の始端がノードに接続していれば、該当するノードデータｎの出力アーク集合Ｏｎから削除構成要素を除外する（Ｓ２２→Ｓ２３）。制御枠１７に囲まれていれば、該当する制御枠データｆの枠内アークデータ集合Ａｆから削除構成要素を除外する（Ｓ２４→Ｓ２５）。
【００５２】
削除構成要素が制御枠１７の場合、この削除構成要素を制御枠データ集合Ｆから除外する（Ｓ２６）。最後に、利用した部分記憶領域を、再利用できるように編集部５内に戻す（Ｓ２７）。
【００５３】
図１に戻り、プログラミング装置１は、上述したように表示部６及び変換部７を備えている。表示部６は、編集部５で編集された図式化プログラム１０をディスプレイ（画面）９上に表示させるためのものである。変換部７は、条件演算の演算命令を生成する条件演算命令生成部７ａと、応答処理の演算命令を生成する応答処理命令生成部７ｂと、を有している。この変換部７は、編集部５によって編集された図式化プログラム１０の情報を記憶装置から呼び出し、内部記憶領域にデータ表現を再現し、マイクロプロセッサ２にて実行可能なプログラムに変換する。以下、変換部７による変換について、「状態遷移図１１の変換」を例示して説明する。
【００５４】
図８は、変換部による変換の一例を示すフローチャートである。図８に示すように、状態遷移図１１をマイクロプロセッサ２にて実行可能なプログラムに変換する場合、まず、全てのノードについて、ノードの演算値記憶領域を確保する確保命令を生成し、ノードの積み重ね演算値記憶領域を確保する確保命令を生成する（Ｓ３１）。全ての矢印１４について、矢印１４の演算値記憶領域を確保する確保命令を生成する（Ｓ３２）。そして、制御枠１７に囲まれない条件演算について、条件演算命令生成部７ａによって演算命令を生成する（Ｓ３３）。
【００５５】
続いて、全ての制御枠１７について、条件演算命令生成部７ａによって条件演算の演算命令を生成し（Ｓ３４）、条件演算の演算値記憶領域が偽であるか判別する判別命令を生成する（Ｓ３５）。この判別命令が偽の場合、制御枠１７に囲まれるノードの演算値記憶領域に偽値を代入する代入命令を生成し、制御枠１７に囲まれる矢印１４の演算値記憶領域に偽値を代入する代入命令を生成する（Ｓ３６→Ｓ３７）。
【００５６】
そして、制御枠１７に囲まれる全ての条件演算について、条件演算命令生成部７ａによって演算命令を生成する（Ｓ３８）。最後に、全ての応答処理について、応答処理命令生成部７ｂによって演算命令を生成する（Ｓ３９）。
【００５７】
次に、上述したプログラミング装置１で作成された図式化プログラムの例について詳細に説明する。
【００５８】
図９は、図１のプログラミング装置で作成された図式化プログラムの例を示す図であり、図１０は、図９の状態遷移図の下位階層を示す図である。図９，１０に示す図式化プログラム１０は、機械体の可動部の動作端を検出する処理に関するプログラムを例示するものであり、状態遷移図１１を含んでいる。
【００５９】
この図式化プログラム１０では、上位階層Ｕの状態定義図１２において、動作端検出要求が指示され動作端検出中でないとき（条件演算図２２による演算値が真のとき）、条件演算図１９１の「動作可能」の演算値が真、且つ条件演算図１９２の「動作端検出完了」の演算値が偽、且つ条件演算図１９３の「動作端検出失敗」の演算値が偽である間、状態遷移図１１の「動作端検出中」の演算値が真になる。
【００６０】
一方、下位階層Ｄの制御枠１７内においては、まず、初期状態から、状態定義図２４ａの「後退限移動中」状態が真となる。状態定義図２４ａの「後退限移動中」状態は、条件演算図２６ａ１にてタイムアウト時間が経過するか、条件演算図２６ａ２にてトルク検出値（可動部の移動に必要な推進力）が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図１６ａの「動作検出タイムアウト♯１」の演算値が真になる。
【００６１】
状態定義図２４ａの「後退限移動中」状態の演算値が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図１６ｂにてその時点の位置検出値が後退検出値♯１に記憶され、状態定義図２４ｂの「前進中」状態の演算値が真になる。
【００６２】
状態定義図２４ｂの「前進中」状態は、条件演算図２６ｂにて位置検出値が「後退検出値♯１＋前進量」になるまで、演算値の真を保持する。このことは、後退限を検出したあと可動部を若干量前進させることに相当する。
【００６３】
状態定義図１３ｂの「前進中」状態の演算値が真のとき、条件演算図２６ｂにて位置検出値が「後退検出値♯１＋前進量」になれば、状態定義図２４ｃの「後退限へ再び移動中」状態の演算値が真になる。
【００６４】
状態定義図２４ｃの「後退限へ再び移動中」状態は、条件演算図２６ｃ１にてタイムアウト時間が経過するか、条件演算図２６ｃ２にてトルク検出値が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図１６ｃの「操作端検出タイムアウト」の演算値が真になる。
【００６５】
状態定義図２４ｃの「後退限へ再び移動中」状態が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図１６ｄにてその時点の位置検出値が後退限検出値♯２に記憶される。これと共に、応答処理図１６ｅにて、後退限検出値♯１（最初の後退限検出値）と後退限検出値♯２（二回目の後退限検出値）との比較演算値が、動作端不明という変数に格納される。そして、状態定義図２４ｄの「復帰中」状態の演算値が真になる。
【００６６】
状態定義図２４ｄの「復帰中」状態は、条件演算図２６ｄにて位置検出値が「後退限検出値♯２＋前進量」になるまで、演算値の真を保持する。
【００６７】
ここで、状態定義図２４ｄの「復帰中」状態が真のとき、位置検出値が「後退限検出値♯２＋前進量」になれば、次の処理が実行される。つまり、条件演算図２９ａにて「動作端不明」の演算値が真の場合、応答処理図１６ｆにて「動作端不明で終了」の演算値が真となる。条件演算図２９ａにて「動作端不明」の演算値が偽の場合、応答処理図１６ｇにて「動作端検出完了」の演算値が真になる。
【００６８】
他方、条件演算図２９ｂ１の「動作端検出タイムアウト」、条件演算図２９ｂ２の「動作端検出タイムアウト」、条件演算図２９ｂ３の「動作端不明で終了」のいずれかの演算値が真になれば、応答処理図１６ｈの「動作端検出失敗」の演算値が真になる。また、応答処理図１６ｇの「動作端検出完了」、応答処理図１６ｈの「動作端検出失敗」のいずれかの演算値が真になれば、条件演算図２８の「動作端検出中」の演算値が偽になるため、制御枠１７で囲まれた各状態がリセットされる。
【００６９】
この図式化プログラム１０によれば、マイクロプロセッサ２が次の処理を実行することになる。すなわち、動作端検出要求が指示されたときから、可動部を後退方向に移動させる。これと共に、トルク検出値が動作端検出しきい値以上になったことでもって、可動部が動作端に押し当てられてそれ以上後退不能であることを検知する。そして、後退限を検出すれば、可動部を若干量前進させる前進動作を２度行う。
【００７０】
そして、最初の前進動作と２回目の前進動作とのそれぞれの場合において、可動部が動作端に押し当てられた状態での位置検出値を比較する。これらの位置検出値の差が動作端検出許容値以下の場合、動作端検出が正常に完了したとする。一方、かかる位置検出値の差が動作端検出許容値よりも大きければ、動作端不明のために動作端検出失敗とする。
【００７１】
以上、本実施形態によれば、プログラム構成の大半を占める状態保持回路を、状態定義図２４という１つの図で図式化することができる。さらに、この状態定義図２４にあっては、状態名称図２５と条件演算図２６とが積み重ねられるようにグループ化されている。よって、その条件演算が多くなった場合でも、状態定義図２４をコンパクトで見やすく表示することができる。その結果、マイクロプロセッサ２上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【００７２】
さらに、本実施形態では、上述したように、図式化プログラム１０が状態遷移図１１を有している。よって、状態遷移回路を１つの状態遷移図１１としてコンパクトで見やすく表示することができる。また、複数の状態定義図２４の間における状態遷移が理解しやすいものとなる。さらに、状態遷移させるための条件演算や遷移先の状態定義図２４を容易に編集することが可能となる。また、矢印１４を用いて状態遷移の順序を表しているため、状態遷移させるための条件演算を取り出すように設定することができる。
【００７３】
また、本実施形態では、上述したように、状態遷移図１１は、上位階層Ｕと下位階層Ｄとに階層化されており、状態定義図１２を上位階層Ｕに含むと共に、複数の状態定義図２４と矢印１４と初期状態図１５と応答処理図１６とを下位階層Ｄに含んでいる。その結果、マイクロプロセッサ２上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【００７４】
なお、本実施形態では、上述したように、複数の状態定義図２４と矢印１４と初期状態図１５と応答処理図１６とを、状態遷移図１１の下位階層Ｄとして制御枠１７で囲っていることから、親子関係（階層関係）が理解しやすくなっている。
【００７５】
また、本実施形態の状態遷移図１１では、上述したように、下位階層Ｄにおける複数の状態定義図２４の状態にて共通する条件演算が、上位階層Ｕにおける状態定義図１２の条件演算図１９としてまとめて示されている。つまり、各状態定義図２４の状態で重複する条件演算を階層化により上位階層Ｕにまとめている。この場合、下位階層Ｄの複数の状態定義図２４にて共通する条件演算の記述を、上位階層Ｕにて１箇所にまとめて行うことができる。その結果、マイクロプロセッサ２上で実行されるプログラムを一層容易に作成することができると共に、状態遷移図１１を簡略化することが可能となる。
【００７６】
図１１は、図９，１０の図式化プログラムと等価な処理を表すラダープログラムを示す図である。図１１に示すように、ラダープログラム８０では、状態遷移がプログラムに明確に現れておらず、状態遷移の理解が非常に困難であることがわかる。つまり、接点とコイルの名称を辿っていかなければ、状態遷移を読み取れない。
【００７７】
これに対し、本実施形態では、矢印１４の向きで状態遷移が容易に読み取れるばかりでなく、状態定義図２４の状態の不成立条件が条件演算ごとに明確に読み取れる。これにより、上記効果、すなわち、マイクロプロセッサ２上で実行されるプログラムを容易に作成し且つその内容を理解しやすく表示するという効果が確認できる。
【００７８】
次に、上述したプログラミング装置１で作成された図式化プログラムの他の例について詳細に説明する。
【００７９】
図１２は、図１のプログラミング装置で作成された図式化プログラムの他の例を示す図である。図１２に示すように、この図式化プログラム５０では、複数の状態を並列処理（平行処理）するような状態遷移回路を表す状態遷移図５１が、図形要素として少なくとも含まれている。状態遷移図５１は、その下位階層Ｄにおいて、複数の状態定義図２４と、矢印５４とを含んでいる。そして、これら状態定義図２４及び矢印５４は、並列に状態遷移するように構成されている。
【００８０】
具体的には、初期状態図１５に連結された矢印５４は、分岐されることによって、状態定義図２４ａへ入力される矢印５４ａと状態定義図２４ｂへ入力される矢印５４ｂとを構成している。これらの状態定義図２４ａ，２４ｂは、その出力する矢印５４a，５４ｂが同期要素図５６に連結されている。同期要素図５６は、全ての入力が完了する（状態定義図２４ａ，２４ｂが出力する矢印５４a，５４ｂの演算値の双方が真となる）と、その出力する矢印５４ｃの演算値を真とする。
【００８１】
この図式化プログラム５０では、上位階層Ｕの状態定義図１２において、起動指令が指示されたとき（条件演算図２２による演算値が真のとき）、条件演算図１９１の「運転条件」の演算値が真、且つ条件演算図１９２の「停止指令」の演算値が偽である間、状態遷移図５１の「状態遷移回路実行中」の演算値が真になる。
【００８２】
一方、下位階層Ｄの制御枠１７内においては、まず、状態定義図２４ａの「並行処理♯１」状態と状態定義図２４ｂの「並行処理♯２」状態とが同時に開始される。状態定義図２４ａの「並行処理♯１」状態は、条件演算図２６ａのタイムアウト時間が経過するまで、演算値の真を保持する。状態定義図２４ｂの「並行処理♯２」状態は、条件演算図２６ｂのタイムアウト時間が経過するまで、演算値の真を保持する。
【００８３】
状態定義図２４ａの「並行処理♯１」状態の演算値が真のときに条件演算図２６ａにてタイムアウト時間が経過し、且つ状態定義図２４ｂの「並行処理♯２」状態の演算値が真のときに条件演算図２６ｂにてタイムアウト時間が経過すれば、同期要素図５６から出力される矢印５４ｃの演算値が真となり、状態定義図２４ｃの「同期後」状態の演算値が真になる。そして、状態定義図２４ｃの「同期後」状態の演算値が真のとき、条件演算図２６ｃにてタイムアウト時間が経過すれば、初期状態に戻る。これにより、状態遷移を繰り返すこととなる。
【００８４】
以上、本実施形態においても、マイクロプロセッサ２上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となるという上記効果が奏される。
【００８５】
また、本実施形態では、上述したように、複数の状態定義図２４及び矢印５４が、状態が並列に遷移するように構成されている。そして、簡素化された同期要素図５６によって、状態の同期が図られている。よって、状態遷移図５１において複数の状態を同時にとるような状態遷移回路を、シンプルで理解しやすく構成することができる。
【００８６】
ところで、従来のプログラミング装置による図式化プログラムは、図形要素パターンがシンプルすぎて、どこを切り取っても同じプログラムと認識されやすい。この点、本実施形態では、図１３に示すように、図形要素の種類が多く、積み重ね表示が可能であるため、図形要素パターンの組み合わせが多彩なものとなる。よって、本実施形態にあっては、処理のパターン認識が容易であり、注目したい処理群を検索しやすく、且つメンテナンス性が高いものといえる。
【００８７】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。例えば、上記実施形態の状態定義図１２では、状態名称図１８と条件演算図１９とを上下に積み重ねてグループ化し、状態定義図２４では状態名称図２５と条件演算図２６とを上下に積み重ねてグループ化したが、これらは完全に積み重ねられなくてもよく、グループ化されればよい。
【００８８】
また、上記実施形態では、プログラミング装置１をパソコン３に搭載したが、種々のコンピュータに搭載することも勿論可能である。なお、本発明の適用範囲は上記実施形態に限定されるものでなく、本発明は、シーケンス制御を行う様々な組込み制御装置上で実行される様々なプログラムを作成することができる。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。
【図２】図式化プログラムを説明するための図である。
【図３】条件判断属性図を説明するための図である。
【図４】編集部の内部記憶領域における状態遷移図データを説明するための図である。
【図５】図４の状態遷移図データを構成する各データを説明するための図である。
【図６】編集部による構成要素の追加の一例を示すフローチャートである。
【図７】編集部による構成要素の削除の一例を示すフローチャートである。
【図８】変換部による変換の一例を示すフローチャートである。
【図９】図１のプログラミング装置で作成された図式化プログラムの例を示す図である。
【図１０】図９の状態遷移図の下位階層を示す図である。
【図１１】図９，１０の図式化プログラムと等価な処理を表すラダープログラムを示す図である。
【図１２】図１のプログラミング装置で作成された図式化プログラムの他の例を示す図である。
【図１３】ディスプレイ上に表示された編集画面の一例を示す図である。
【符号の説明】
【００９０】
１…プログラミング装置、２…マイクロプロセッサ（組込み制御装置）、５…編集部（編集手段）、６…表示部（表示手段）、７…変換部（変換手段）、９…ディスプレイ（画面）、１０，５０…図式化プログラム、１１…状態遷移図、１２…状態定義図、１４，５４…矢印、１５…初期状態図、１６…応答処理図、１８…状態名称図、１９…条件演算図、２４…状態定義図、２５…状態名称図、２６…条件演算図、Ｄ…下位階層、Ｕ…上位階層。
【図１】
2009271768.tif 000003
【図２】
2009271768.tif 000004
【図３】
2009271768.tif 000005
【図４】
2009271768.tif 000006
【図５】
2009271768.tif 000007
【図６】
2009271768.tif 000008
【図７】
2009271768.tif 000009
【図８】
2009271768.tif 000010
【図９】
2009271768.tif 000011
【図１０】
2009271768.tif 000012
【図１１】
2009271768.tif 000013
【図１２】
2009271768.tif 000014
【図１３】
2009271768.tif 000015