プログラミング装置
【課題】組込み制御装置上で実行されるプログラムを容易に作成でき、且つその内容を理解しやすく表示可能なプログラミング装置を提供する。
【解決手段】プログラミング装置は、プログラムを図式化してなる図式化プログラム10を入力に応じて編集する編集部と、編集部で編集された図式化プログラム10をディスプレイに表示させる表示部と、編集部で編集された図式化プログラム10をマイクロプロセッサにて実行可能なプログラムに変換する変換部と、を備えている。この図式化プログラム10では、状態保持回路が状態定義図24として図式化されている。また、状態定義図24が、状態名称図25と条件演算図26とを積み重ねるようにグループ化していることから、例えば状態定義図24の状態に条件演算が多く含まれる場合でも、状態定義図24がコンパクトで見やすく表示される。
【解決手段】プログラミング装置は、プログラムを図式化してなる図式化プログラム10を入力に応じて編集する編集部と、編集部で編集された図式化プログラム10をディスプレイに表示させる表示部と、編集部で編集された図式化プログラム10をマイクロプロセッサにて実行可能なプログラムに変換する変換部と、を備えている。この図式化プログラム10では、状態保持回路が状態定義図24として図式化されている。また、状態定義図24が、状態名称図25と条件演算図26とを積み重ねるようにグループ化していることから、例えば状態定義図24の状態に条件演算が多く含まれる場合でも、状態定義図24がコンパクトで見やすく表示される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御を必要とするシステム内に組み込む制御装置である組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置に関する。
【背景技術】
【0002】
従来のプログラミング装置としては、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備えたものが知られている(例えば、特許文献1参照)。このようなプログラミング装置では、通常、ラダー言語が用いられており、図式化プログラムが接点図及びコイル図で表されている。
【特許文献1】特開平9−62314号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述したようなプログラミング装置では、その図形要素の種類が少なく編集自由度が低いことから、編集された図式化プログラムが煩雑になるおそれがある。よって、組込み制御装置上で実行されるプログラムを作成するのが困難となり、且つ図式化プログラムからプログラミング内容を理解し難いという問題がある。
【0004】
そこで、本発明は、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能なプログラミング装置を提供することを課題とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明に係るプログラミング装置は、組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、図式化プログラムは、状態保持回路を表す状態定義図を有しており、状態定義図は、保持する状態の名称を示す状態名称図、及び状態に含まれる条件演算を示す1つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とする。
【0006】
このプログラミング装置によれば、状態保持回路を状態定義図という1つの図で図式化することができる。さらに、この状態定義図にあっては、状態名称図と条件演算図とが積み重ねられるようにグループ化されている。よって、例えば、状態定義図の状態に条件演算が多く含まれる場合でも、状態定義図をコンパクトで見やすく表示することができる。その結果、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【0007】
また、図式化プログラムは、状態遷移回路を表す状態遷移図を有し、状態遷移図は、複数の状態定義図と、複数の状態定義図に連結され、状態遷移の順序を示す矢印と、初期状態を示す初期状態図と、応答処理を示す応答処理図と、を含むことが好ましい。この場合、状態遷移回路を状態遷移図という1つの図でコンパクト且つ見やすく表示することができる。加えて、複数の状態定義図間の状態遷移が理解しやすいものとなる。
【0008】
ここで、状態遷移図は、上位階層と下位階層とに階層化されており、遷移定義図を上位階層に含むと共に、複数の状態保持図と矢印と初期状態図と応答処理図とを下位階層に含むことが好ましい。このように状態遷移図を階層化することで、組込み制御装置上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【0009】
このとき、状態遷移図では、下位階層における複数の状態定義図の状態にて共通する条件演算が、上位階層における状態定義図にまとめて示されていることが好ましい。この場合、状態遷移図を簡略化することが可能となる。
【0010】
また、複数の状態定義図及び矢印は、状態が並列に遷移するように構成可能とされていることが好ましい。この場合、状態遷移図において複数の状態を並列遷移させることができる。
【発明の効果】
【0011】
本発明によれば、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、以下の説明において、同一又は相当要素には同一の符号を付し、重複する説明は省略する。
【0013】
図1は、本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。プログラミング装置1は、制御を必要とするシステム内に組み込むマイクロプロセッサ(組込み制御装置)2上で実行されるプログラムを、図形を利用して作成するものである。具体的には、プログラミング装置1は、プログラムの構造を図式化してなる図式化プログラムによって、マイクロプロセッサ2上で実行されるプログラムを作成する。そこで、まず、この図式化プログラムにおける図形要素とその演算規則とについて説明する。
【0014】
図2は、図式化プログラムを説明するための図である。図2に示すように、プログラミング装置1による図式化プログラム10には、外部の事象を検出して状態を遷移(状態遷移)させる状態遷移回路を表す状態遷移図11が、図形要素として少なくとも含まれている。状態遷移図11は、上位階層Uと下位階層Dとに階層化されている。この状態遷移図11の上位階層Uには、状態定義図12が形成されている。そして、下位階層Dには、複数の状態定義図13、矢印14、初期状態図15及び応答処理図16が制御枠17に囲まれるように形成されている
【0015】
図2(a)に示すように、状態定義図12は、状態遷移の名称を示す状態名称図18と、状態遷移に含まれる条件演算(つまり、条件判断処理の演算)を示す条件演算図19とを含んでいる。これら状態名称図18及び条件演算図19は、上下方向に積み重ねられてグループ化されている。なお、条件演算図19は、1つ以上含んでいればよい。
【0016】
状態名称図18は、2重の矩形枠からなり、その内部に状態の名称が記入されている。ここでは、「状態遷移回路実行中」と記入されている。条件演算図19は、矩形枠からなり、その内部に条件判断演算式20が記入されている。ここでは、条件判断演算式20として「条件判断演算式♯0」が記入されている。
【0017】
また、条件演算図19には、その内部に条件判断属性図21が形成されている。この条件判断属性図21は、その形態の違いによって以下の演算規則を条件演算図19に与える。
【0018】
図3は、条件判断属性図を説明するための図である。図3(a)に示す条件判断属性図21aは、条件判断演算式20の演算値を条件演算の演算値とする。図3(b)に示す条件判断属性図21bは、条件判断演算式20の演算値の反転結果を条件演算の演算値とする。図3(c)に示す条件判断属性図21cは、条件判断演算式20の演算値が偽から真に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。図3(d)に示す条件判断属性図21dは、条件判断演算式20の演算値が真から偽に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。
【0019】
図2(b)の状態定義図24は、入力されてから出力するまでの間、真の演算値を保持するという演算規則を与える。この状態定義図24は、保持する状態の名称を示す状態名称図25と、その状態に含まれる条件演算を示す条件演算図26とが上下方向に積み重ねられてグループ化されている。なお、条件演算図26は、1つ以上含んでいればよい。
【0020】
状態名称図25は、2重の矩形枠からなり、その内部に状態名が記入される。条件演算図26は、矩形枠からなり、その内部に条件判断演算式が記入される。具体的には、条件演算図261の内部には、条件判断演算式100として「条件判断演算式♯1」が記入され、条件演算図262の内部には、条件判断演算式101として「条件判断演算式♯2」が記入されている。
【0021】
矢印14は、状態遷移の順序を示すものであり、状態定義図24に連結されている。また、始端に○印が形成された矢印14は、状態定義図24の演算値が真で、且つ始端の条件演算図26の演算値が偽になったときに、真となるという演算規則を与える。
【0022】
応答処理図16は、応答処理を示すものである。この応答処理図16は、矩形枠からなり、その内部に応答処理内容27が記入される。応答処理図16は、応答処理内容27が左辺値の場合、入力された演算結果を代入する。一方、応答処理内容27が演算式の場合、入力された演算結果が真になったとき、演算式を演算する。他方、応答処理内容27が文の場合、入力された演算結果が真になったとき、文を実行する。
【0023】
初期状態図15は、状態遷移図11における初期の状態を示す図である。制御枠17は、状態遷移図11の下位階層Dを画成するものである。この制御枠17の左上部には、上記の条件演算図19,26と同様な条件演算図28が形成されている。
【0024】
ここで、状態遷移図11では、下位階層Dにおける複数の状態定義図24の状態において共通する条件演算が、上位階層Uの条件演算図19としてまとめて示されている。よって、状態遷移図11は、条件演算図19が複数の状態定義図24のそれぞれに含まれたものと、実質的に同一である。
【0025】
以上に説明した状態遷移図11では、条件演算図28による条件演算が真の場合、制御枠17内の状態遷移が演算される一方、偽の場合、制御枠17内の各状態がリセットされるという演算規則が与えられることとなる。詳細な演算ついては、後述する。
【0026】
なお、図2(a)に示すように、状態定義図12には、条件演算図19と同様な条件演算図22が連結されている。よって、状態遷移図11は、この条件演算図22の条件演算の演算値が真になり、その結果、状態定義図12の演算結果が真になったとき、その処理を実行する。
【0027】
次に、プログラミング装置1の構成について説明する。
【0028】
図1に示すように、プログラミング装置1は、コンピュータに搭載されており、ここでは、パソコン3のECU4に搭載されている。このプログラミング装置1は、編集部(編集手段)5、表示部(表示手段)6及び変換部(変換手段)7を備えている。
【0029】
編集部5は、例えばマウスやキーボード等の入力装置8からの入力に応じて、図式化プログラム10を編集するものである。具体的には、この編集部5は、図式化プログラム10の図形要素、及び図形要素を構成する要素(以下、「構成要素」という)等を、利用者と対話形式で追加、移動又は削除したり、その文字列を編集したりする。
【0030】
より具体的には、編集部5は、ECU4の内部記憶領域にデータ表現を構成し、このデータ表現を利用者の入力に従って編集する。また、編集部5は、ハードディスクドライブ等の記憶装置(不図示)にデータ表現を格納したり呼び出したりすることで、内部記憶領域にデータ表現を再現する。以下、このデータ表現について、「状態遷移図11のデータ表現」を例示して説明すると共に、編集部5による図式化プログラムの編集について、「状態遷移図11の構成要素の追加」と「状態遷移図11の構成要素の削除」とを例示して説明する。
【0031】
[データ表現]
状態遷移図11は、編集部5内部では、各構成要素の情報が格納された部分記憶領域で表現される。格納された情報は、その種類ごとに、ノードデータn、アークデータa、複合ノードデータc、制御枠データfとされている。つまり、図4に示すように、状態遷移図11の状態遷移図データGは、ノードデータ集合Nと、アークデータ集合Aと、複合ノードデータ集合Cと、制御枠データ集合Fと、から構成される。なお、ここでの「集合」は、例えば、各データの線形リストデータ構造で表現されたり、配列で表現されたりする同一種類の情報の集合を意味している。
【0032】
(i)ノードデータn
ノードは、状態遷移図11において、矢印14の始端又は矢印の終端になり得る構成要素である。ノードデータn(n|n∈N)は、かかる構成要素の情報が格納された編集部5内における内部記憶領域である。図5(a)に示すように、このノードデータnは、ノード識別子mn、ノード型tn、処理要件sn、入力アーク集合In及び出力アーク集合Onを含んでいる。
【0033】
ノード識別子mnは、状態遷移図11においてノードを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。ノード型tnは、その情報が状態名、条件演算、応答処理又は初期状態等のいずれに関するものであるかを示す属性値である。処理要件snは、名称図18,25や条件演算図19,26,28の演算式、応答処理図16の記入内容の文字列等を判断する属性値である。
【0034】
入力アーク集合In(In∈A)は、ノードに入力される矢印14のアークデータ集合である。この入力アーク集合Inとしては、例えば、アークデータaの線形リストデータ構造が挙げられる。なお、入力アーク集合Inは、ノード識別子mnの配列であってもよい。
【0035】
出力アーク集合On(On∈A)は、ノードから出力される矢印14のアークデータ集合である。この出力アーク集合Onとしては、例えば、アークデータaの線形リストデータ構造が挙げられる。なお、出力アーク集合Onは、ノード識別子mnの配列であってもよい。
【0036】
ちなみに、ノードデータnが含む情報は、上記のものに限定されず、例えば、編集表示するために、ノードの表示座標等の情報を含んでいてもよい。
【0037】
(ii)アークデータa
アークデータa(a|a∈A)は、状態遷移図11の矢印14の情報が格納された編集部5内における内部記憶領域である。図5(b)に示すように、このアークデータaは、アーク識別子ma、始端ノードsa及び終端ノードtaを含んでいる。
【0038】
アーク識別子maは、状態遷移図11において矢印14を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。始端ノードsa(sa∈N)は、矢印14の始端が接続されたノードを特定する情報であり、例えばノード識別子mnが挙げられる。終端ノードta(ta∈N)は、矢印14の終端が接続されたノードを特定する情報であり、例えばノード識別子mnが挙げられる。
【0039】
ちなみに、アークデータaが含む情報は、上記のものに限定されず、例えば、編集表示するために、アークの折れ線形状を表現する座標等の情報を含んでいてもよい。
【0040】
(iii)複合ノードデータc
複合ノードデータc(c|c∈C)は、状態遷移図11でのノードの積み重なりの情報が格納された編集部5内における部分記憶領域である。図5(c)に示すように、この複合ノードデータcは、複合ノード識別子mc及び複合ノード集合Ncを含んでいる。
【0041】
複合ノード識別子mcは、状態遷移図11においてノードの積み重なりを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。複合ノード集合Nc(Nc∈N)は、積み重なる各ノードを上から順に特定するための集合である。複合ノード集合Ncとしては、例えば、ノードデータnの線形リストデータ構造、又はノード識別子mnの配列が挙げられる。この複合ノード集合Ncでは、ノードの上に積み重なるノードを与える関数と、ノードの下に積み重なるノードを与える関数とが定義できるようになっている。さらに、複合ノード集合Ncでは、状態名のノードを与える関数が定義できるようになっている。
【0042】
ちなみに、複合ノードデータcが含む情報は、上記のものに限定されず、例えば、積み重なるノードの幅を揃えて編集表示するために、これらのノードにおける最大幅等の情報を含んでいてもよい。
【0043】
(iV)制御枠データf
制御枠データf(f|f∈F)は、状態遷移図11の制御枠17の情報が格納された編集部5内における部分記憶領域である。図5(d)に示すように、この制御枠データfは、制御枠識別子mf、条件演算nf、枠内ノードデータ集合Nf及び枠内アークデータ集合Afを含んでいる。
【0044】
制御枠識別子mfは、状態遷移図11において制御枠17を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。条件演算nfは、条件演算図28の条件演算を特定する情報であり、例えば条件演算図28のノード識別子mnが挙げられる。
【0045】
枠内ノードデータ集合Nfは、制御枠17に囲まれているノードを特定するための情報である。この枠内ノードデータ集合Nfとしては、ノードデータnの線形リストデータ構造、又はノード識別子mnの配列が挙げられる。枠内アークデータ集合Afは、制御枠17に囲まれている矢印14を特定するための情報である。この枠内アークデータ集合Afとしては、アークデータaの線形リストデータ構造、又はアーク識別子maの配列が挙げられる。
【0046】
ちなみに、制御枠データfが含む情報は、上記のものに限定されず、例えば、制御枠17の表示座標や表示幅、表示高さ等の情報を含んでいてもよい。
【0047】
[構成要素の追加]
図6は、編集部による構成要素の追加の一例を示すフローチャートである。図6に示すように、編集部5によって状態遷移図11の構成要素を追加する場合、まず、追加する構成要素(以下、「追加構成要素」という)の種類を指定し(S1)、追加構成要素の座標を指定する(S2)。続いて、追加構成要素の情報を格納する部分記憶領域を編集部5内に確保し(S3)、確保した記憶領域に追加構成要素の情報を格納する(S4)。
【0048】
そして、追加構成要素がノードの場合、この追加構成要素をノードデータ集合Nに追加する一方、追加構成要素が矢印14の場合、この追加構成要素をアークデータ集合Aに追加する。他方、追加構成要素が制御枠17の場合、この追加構成要素を制御粋データ集合Fに追加する(S5)。
【0049】
[構成要素の削除]
図7は、編集部による構成要素の削除の一例を示すフローチャートである。図7に示すように、編集部5によって状態遷移図11の構成要素を削除する場合、まず、削除する構成要素(以下、「削除構成要素」という)を指定する(S11)。
【0050】
削除構成要素がノードの場合、この削除構成要素をノードデータ集合Nから除外する(S12)。続いて、ノードが積み重なっていれば、該当する複合ノードデータ集合Cから削除構成要素を除外する(S13→S14)。出力の矢印14が接続されていれば、該当するアークデータaの始端を空にする(S15→S16)。入力の矢印14が接続していれば、該当するアークデータaの終端を空にする(S17→S18)。制御枠17に囲まれていれば、該当する制御枠データfの枠内ノードデータ集合Nfから削除構成要素を除外する(S19→S20)。
【0051】
削除構成要素が矢印14の場合、この削除構成要素をアークデータ集合Aから除外する(S21)。続いて、矢印14の始端がノードに接続していれば、該当するノードデータnの出力アーク集合Onから削除構成要素を除外する(S22→S23)。制御枠17に囲まれていれば、該当する制御枠データfの枠内アークデータ集合Afから削除構成要素を除外する(S24→S25)。
【0052】
削除構成要素が制御枠17の場合、この削除構成要素を制御枠データ集合Fから除外する(S26)。最後に、利用した部分記憶領域を、再利用できるように編集部5内に戻す(S27)。
【0053】
図1に戻り、プログラミング装置1は、上述したように表示部6及び変換部7を備えている。表示部6は、編集部5で編集された図式化プログラム10をディスプレイ(画面)9上に表示させるためのものである。変換部7は、条件演算の演算命令を生成する条件演算命令生成部7aと、応答処理の演算命令を生成する応答処理命令生成部7bと、を有している。この変換部7は、編集部5によって編集された図式化プログラム10の情報を記憶装置から呼び出し、内部記憶領域にデータ表現を再現し、マイクロプロセッサ2にて実行可能なプログラムに変換する。以下、変換部7による変換について、「状態遷移図11の変換」を例示して説明する。
【0054】
図8は、変換部による変換の一例を示すフローチャートである。図8に示すように、状態遷移図11をマイクロプロセッサ2にて実行可能なプログラムに変換する場合、まず、全てのノードについて、ノードの演算値記憶領域を確保する確保命令を生成し、ノードの積み重ね演算値記憶領域を確保する確保命令を生成する(S31)。全ての矢印14について、矢印14の演算値記憶領域を確保する確保命令を生成する(S32)。そして、制御枠17に囲まれない条件演算について、条件演算命令生成部7aによって演算命令を生成する(S33)。
【0055】
続いて、全ての制御枠17について、条件演算命令生成部7aによって条件演算の演算命令を生成し(S34)、条件演算の演算値記憶領域が偽であるか判別する判別命令を生成する(S35)。この判別命令が偽の場合、制御枠17に囲まれるノードの演算値記憶領域に偽値を代入する代入命令を生成し、制御枠17に囲まれる矢印14の演算値記憶領域に偽値を代入する代入命令を生成する(S36→S37)。
【0056】
そして、制御枠17に囲まれる全ての条件演算について、条件演算命令生成部7aによって演算命令を生成する(S38)。最後に、全ての応答処理について、応答処理命令生成部7bによって演算命令を生成する(S39)。
【0057】
次に、上述したプログラミング装置1で作成された図式化プログラムの例について詳細に説明する。
【0058】
図9は、図1のプログラミング装置で作成された図式化プログラムの例を示す図であり、図10は、図9の状態遷移図の下位階層を示す図である。図9,10に示す図式化プログラム10は、機械体の可動部の動作端を検出する処理に関するプログラムを例示するものであり、状態遷移図11を含んでいる。
【0059】
この図式化プログラム10では、上位階層Uの状態定義図12において、動作端検出要求が指示され動作端検出中でないとき(条件演算図22による演算値が真のとき)、条件演算図191の「動作可能」の演算値が真、且つ条件演算図192の「動作端検出完了」の演算値が偽、且つ条件演算図193の「動作端検出失敗」の演算値が偽である間、状態遷移図11の「動作端検出中」の演算値が真になる。
【0060】
一方、下位階層Dの制御枠17内においては、まず、初期状態から、状態定義図24aの「後退限移動中」状態が真となる。状態定義図24aの「後退限移動中」状態は、条件演算図26a1にてタイムアウト時間が経過するか、条件演算図26a2にてトルク検出値(可動部の移動に必要な推進力)が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図16aの「動作検出タイムアウト♯1」の演算値が真になる。
【0061】
状態定義図24aの「後退限移動中」状態の演算値が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図16bにてその時点の位置検出値が後退検出値♯1に記憶され、状態定義図24bの「前進中」状態の演算値が真になる。
【0062】
状態定義図24bの「前進中」状態は、条件演算図26bにて位置検出値が「後退検出値♯1+前進量」になるまで、演算値の真を保持する。このことは、後退限を検出したあと可動部を若干量前進させることに相当する。
【0063】
状態定義図13bの「前進中」状態の演算値が真のとき、条件演算図26bにて位置検出値が「後退検出値♯1+前進量」になれば、状態定義図24cの「後退限へ再び移動中」状態の演算値が真になる。
【0064】
状態定義図24cの「後退限へ再び移動中」状態は、条件演算図26c1にてタイムアウト時間が経過するか、条件演算図26c2にてトルク検出値が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図16cの「操作端検出タイムアウト」の演算値が真になる。
【0065】
状態定義図24cの「後退限へ再び移動中」状態が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図16dにてその時点の位置検出値が後退限検出値♯2に記憶される。これと共に、応答処理図16eにて、後退限検出値♯1(最初の後退限検出値)と後退限検出値♯2(二回目の後退限検出値)との比較演算値が、動作端不明という変数に格納される。そして、状態定義図24dの「復帰中」状態の演算値が真になる。
【0066】
状態定義図24dの「復帰中」状態は、条件演算図26dにて位置検出値が「後退限検出値♯2+前進量」になるまで、演算値の真を保持する。
【0067】
ここで、状態定義図24dの「復帰中」状態が真のとき、位置検出値が「後退限検出値♯2+前進量」になれば、次の処理が実行される。つまり、条件演算図29aにて「動作端不明」の演算値が真の場合、応答処理図16fにて「動作端不明で終了」の演算値が真となる。条件演算図29aにて「動作端不明」の演算値が偽の場合、応答処理図16gにて「動作端検出完了」の演算値が真になる。
【0068】
他方、条件演算図29b1の「動作端検出タイムアウト」、条件演算図29b2の「動作端検出タイムアウト」、条件演算図29b3の「動作端不明で終了」のいずれかの演算値が真になれば、応答処理図16hの「動作端検出失敗」の演算値が真になる。また、応答処理図16gの「動作端検出完了」、応答処理図16hの「動作端検出失敗」のいずれかの演算値が真になれば、条件演算図28の「動作端検出中」の演算値が偽になるため、制御枠17で囲まれた各状態がリセットされる。
【0069】
この図式化プログラム10によれば、マイクロプロセッサ2が次の処理を実行することになる。すなわち、動作端検出要求が指示されたときから、可動部を後退方向に移動させる。これと共に、トルク検出値が動作端検出しきい値以上になったことでもって、可動部が動作端に押し当てられてそれ以上後退不能であることを検知する。そして、後退限を検出すれば、可動部を若干量前進させる前進動作を2度行う。
【0070】
そして、最初の前進動作と2回目の前進動作とのそれぞれの場合において、可動部が動作端に押し当てられた状態での位置検出値を比較する。これらの位置検出値の差が動作端検出許容値以下の場合、動作端検出が正常に完了したとする。一方、かかる位置検出値の差が動作端検出許容値よりも大きければ、動作端不明のために動作端検出失敗とする。
【0071】
以上、本実施形態によれば、プログラム構成の大半を占める状態保持回路を、状態定義図24という1つの図で図式化することができる。さらに、この状態定義図24にあっては、状態名称図25と条件演算図26とが積み重ねられるようにグループ化されている。よって、その条件演算が多くなった場合でも、状態定義図24をコンパクトで見やすく表示することができる。その結果、マイクロプロセッサ2上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【0072】
さらに、本実施形態では、上述したように、図式化プログラム10が状態遷移図11を有している。よって、状態遷移回路を1つの状態遷移図11としてコンパクトで見やすく表示することができる。また、複数の状態定義図24の間における状態遷移が理解しやすいものとなる。さらに、状態遷移させるための条件演算や遷移先の状態定義図24を容易に編集することが可能となる。また、矢印14を用いて状態遷移の順序を表しているため、状態遷移させるための条件演算を取り出すように設定することができる。
【0073】
また、本実施形態では、上述したように、状態遷移図11は、上位階層Uと下位階層Dとに階層化されており、状態定義図12を上位階層Uに含むと共に、複数の状態定義図24と矢印14と初期状態図15と応答処理図16とを下位階層Dに含んでいる。その結果、マイクロプロセッサ2上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【0074】
なお、本実施形態では、上述したように、複数の状態定義図24と矢印14と初期状態図15と応答処理図16とを、状態遷移図11の下位階層Dとして制御枠17で囲っていることから、親子関係(階層関係)が理解しやすくなっている。
【0075】
また、本実施形態の状態遷移図11では、上述したように、下位階層Dにおける複数の状態定義図24の状態にて共通する条件演算が、上位階層Uにおける状態定義図12の条件演算図19としてまとめて示されている。つまり、各状態定義図24の状態で重複する条件演算を階層化により上位階層Uにまとめている。この場合、下位階層Dの複数の状態定義図24にて共通する条件演算の記述を、上位階層Uにて1箇所にまとめて行うことができる。その結果、マイクロプロセッサ2上で実行されるプログラムを一層容易に作成することができると共に、状態遷移図11を簡略化することが可能となる。
【0076】
図11は、図9,10の図式化プログラムと等価な処理を表すラダープログラムを示す図である。図11に示すように、ラダープログラム80では、状態遷移がプログラムに明確に現れておらず、状態遷移の理解が非常に困難であることがわかる。つまり、接点とコイルの名称を辿っていかなければ、状態遷移を読み取れない。
【0077】
これに対し、本実施形態では、矢印14の向きで状態遷移が容易に読み取れるばかりでなく、状態定義図24の状態の不成立条件が条件演算ごとに明確に読み取れる。これにより、上記効果、すなわち、マイクロプロセッサ2上で実行されるプログラムを容易に作成し且つその内容を理解しやすく表示するという効果が確認できる。
【0078】
次に、上述したプログラミング装置1で作成された図式化プログラムの他の例について詳細に説明する。
【0079】
図12は、図1のプログラミング装置で作成された図式化プログラムの他の例を示す図である。図12に示すように、この図式化プログラム50では、複数の状態を並列処理(平行処理)するような状態遷移回路を表す状態遷移図51が、図形要素として少なくとも含まれている。状態遷移図51は、その下位階層Dにおいて、複数の状態定義図24と、矢印54とを含んでいる。そして、これら状態定義図24及び矢印54は、並列に状態遷移するように構成されている。
【0080】
具体的には、初期状態図15に連結された矢印54は、分岐されることによって、状態定義図24aへ入力される矢印54aと状態定義図24bへ入力される矢印54bとを構成している。これらの状態定義図24a,24bは、その出力する矢印54a,54bが同期要素図56に連結されている。同期要素図56は、全ての入力が完了する(状態定義図24a,24bが出力する矢印54a,54bの演算値の双方が真となる)と、その出力する矢印54cの演算値を真とする。
【0081】
この図式化プログラム50では、上位階層Uの状態定義図12において、起動指令が指示されたとき(条件演算図22による演算値が真のとき)、条件演算図191の「運転条件」の演算値が真、且つ条件演算図192の「停止指令」の演算値が偽である間、状態遷移図51の「状態遷移回路実行中」の演算値が真になる。
【0082】
一方、下位階層Dの制御枠17内においては、まず、状態定義図24aの「並行処理♯1」状態と状態定義図24bの「並行処理♯2」状態とが同時に開始される。状態定義図24aの「並行処理♯1」状態は、条件演算図26aのタイムアウト時間が経過するまで、演算値の真を保持する。状態定義図24bの「並行処理♯2」状態は、条件演算図26bのタイムアウト時間が経過するまで、演算値の真を保持する。
【0083】
状態定義図24aの「並行処理♯1」状態の演算値が真のときに条件演算図26aにてタイムアウト時間が経過し、且つ状態定義図24bの「並行処理♯2」状態の演算値が真のときに条件演算図26bにてタイムアウト時間が経過すれば、同期要素図56から出力される矢印54cの演算値が真となり、状態定義図24cの「同期後」状態の演算値が真になる。そして、状態定義図24cの「同期後」状態の演算値が真のとき、条件演算図26cにてタイムアウト時間が経過すれば、初期状態に戻る。これにより、状態遷移を繰り返すこととなる。
【0084】
以上、本実施形態においても、マイクロプロセッサ2上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となるという上記効果が奏される。
【0085】
また、本実施形態では、上述したように、複数の状態定義図24及び矢印54が、状態が並列に遷移するように構成されている。そして、簡素化された同期要素図56によって、状態の同期が図られている。よって、状態遷移図51において複数の状態を同時にとるような状態遷移回路を、シンプルで理解しやすく構成することができる。
【0086】
ところで、従来のプログラミング装置による図式化プログラムは、図形要素パターンがシンプルすぎて、どこを切り取っても同じプログラムと認識されやすい。この点、本実施形態では、図13に示すように、図形要素の種類が多く、積み重ね表示が可能であるため、図形要素パターンの組み合わせが多彩なものとなる。よって、本実施形態にあっては、処理のパターン認識が容易であり、注目したい処理群を検索しやすく、且つメンテナンス性が高いものといえる。
【0087】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。例えば、上記実施形態の状態定義図12では、状態名称図18と条件演算図19とを上下に積み重ねてグループ化し、状態定義図24では状態名称図25と条件演算図26とを上下に積み重ねてグループ化したが、これらは完全に積み重ねられなくてもよく、グループ化されればよい。
【0088】
また、上記実施形態では、プログラミング装置1をパソコン3に搭載したが、種々のコンピュータに搭載することも勿論可能である。なお、本発明の適用範囲は上記実施形態に限定されるものでなく、本発明は、シーケンス制御を行う様々な組込み制御装置上で実行される様々なプログラムを作成することができる。
【図面の簡単な説明】
【0089】
【図1】本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。
【図2】図式化プログラムを説明するための図である。
【図3】条件判断属性図を説明するための図である。
【図4】編集部の内部記憶領域における状態遷移図データを説明するための図である。
【図5】図4の状態遷移図データを構成する各データを説明するための図である。
【図6】編集部による構成要素の追加の一例を示すフローチャートである。
【図7】編集部による構成要素の削除の一例を示すフローチャートである。
【図8】変換部による変換の一例を示すフローチャートである。
【図9】図1のプログラミング装置で作成された図式化プログラムの例を示す図である。
【図10】図9の状態遷移図の下位階層を示す図である。
【図11】図9,10の図式化プログラムと等価な処理を表すラダープログラムを示す図である。
【図12】図1のプログラミング装置で作成された図式化プログラムの他の例を示す図である。
【図13】ディスプレイ上に表示された編集画面の一例を示す図である。
【符号の説明】
【0090】
1…プログラミング装置、2…マイクロプロセッサ(組込み制御装置)、5…編集部(編集手段)、6…表示部(表示手段)、7…変換部(変換手段)、9…ディスプレイ(画面)、10,50…図式化プログラム、11…状態遷移図、12…状態定義図、14,54…矢印、15…初期状態図、16…応答処理図、18…状態名称図、19…条件演算図、24…状態定義図、25…状態名称図、26…条件演算図、D…下位階層、U…上位階層。
【技術分野】
【0001】
本発明は、制御を必要とするシステム内に組み込む制御装置である組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置に関する。
【背景技術】
【0002】
従来のプログラミング装置としては、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備えたものが知られている(例えば、特許文献1参照)。このようなプログラミング装置では、通常、ラダー言語が用いられており、図式化プログラムが接点図及びコイル図で表されている。
【特許文献1】特開平9−62314号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述したようなプログラミング装置では、その図形要素の種類が少なく編集自由度が低いことから、編集された図式化プログラムが煩雑になるおそれがある。よって、組込み制御装置上で実行されるプログラムを作成するのが困難となり、且つ図式化プログラムからプログラミング内容を理解し難いという問題がある。
【0004】
そこで、本発明は、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能なプログラミング装置を提供することを課題とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明に係るプログラミング装置は、組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、編集手段で編集された図式化プログラムを画面に表示させる表示手段と、編集手段で編集された図式化プログラムを組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、図式化プログラムは、状態保持回路を表す状態定義図を有しており、状態定義図は、保持する状態の名称を示す状態名称図、及び状態に含まれる条件演算を示す1つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とする。
【0006】
このプログラミング装置によれば、状態保持回路を状態定義図という1つの図で図式化することができる。さらに、この状態定義図にあっては、状態名称図と条件演算図とが積み重ねられるようにグループ化されている。よって、例えば、状態定義図の状態に条件演算が多く含まれる場合でも、状態定義図をコンパクトで見やすく表示することができる。その結果、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【0007】
また、図式化プログラムは、状態遷移回路を表す状態遷移図を有し、状態遷移図は、複数の状態定義図と、複数の状態定義図に連結され、状態遷移の順序を示す矢印と、初期状態を示す初期状態図と、応答処理を示す応答処理図と、を含むことが好ましい。この場合、状態遷移回路を状態遷移図という1つの図でコンパクト且つ見やすく表示することができる。加えて、複数の状態定義図間の状態遷移が理解しやすいものとなる。
【0008】
ここで、状態遷移図は、上位階層と下位階層とに階層化されており、遷移定義図を上位階層に含むと共に、複数の状態保持図と矢印と初期状態図と応答処理図とを下位階層に含むことが好ましい。このように状態遷移図を階層化することで、組込み制御装置上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【0009】
このとき、状態遷移図では、下位階層における複数の状態定義図の状態にて共通する条件演算が、上位階層における状態定義図にまとめて示されていることが好ましい。この場合、状態遷移図を簡略化することが可能となる。
【0010】
また、複数の状態定義図及び矢印は、状態が並列に遷移するように構成可能とされていることが好ましい。この場合、状態遷移図において複数の状態を並列遷移させることができる。
【発明の効果】
【0011】
本発明によれば、組込み制御装置上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、以下の説明において、同一又は相当要素には同一の符号を付し、重複する説明は省略する。
【0013】
図1は、本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。プログラミング装置1は、制御を必要とするシステム内に組み込むマイクロプロセッサ(組込み制御装置)2上で実行されるプログラムを、図形を利用して作成するものである。具体的には、プログラミング装置1は、プログラムの構造を図式化してなる図式化プログラムによって、マイクロプロセッサ2上で実行されるプログラムを作成する。そこで、まず、この図式化プログラムにおける図形要素とその演算規則とについて説明する。
【0014】
図2は、図式化プログラムを説明するための図である。図2に示すように、プログラミング装置1による図式化プログラム10には、外部の事象を検出して状態を遷移(状態遷移)させる状態遷移回路を表す状態遷移図11が、図形要素として少なくとも含まれている。状態遷移図11は、上位階層Uと下位階層Dとに階層化されている。この状態遷移図11の上位階層Uには、状態定義図12が形成されている。そして、下位階層Dには、複数の状態定義図13、矢印14、初期状態図15及び応答処理図16が制御枠17に囲まれるように形成されている
【0015】
図2(a)に示すように、状態定義図12は、状態遷移の名称を示す状態名称図18と、状態遷移に含まれる条件演算(つまり、条件判断処理の演算)を示す条件演算図19とを含んでいる。これら状態名称図18及び条件演算図19は、上下方向に積み重ねられてグループ化されている。なお、条件演算図19は、1つ以上含んでいればよい。
【0016】
状態名称図18は、2重の矩形枠からなり、その内部に状態の名称が記入されている。ここでは、「状態遷移回路実行中」と記入されている。条件演算図19は、矩形枠からなり、その内部に条件判断演算式20が記入されている。ここでは、条件判断演算式20として「条件判断演算式♯0」が記入されている。
【0017】
また、条件演算図19には、その内部に条件判断属性図21が形成されている。この条件判断属性図21は、その形態の違いによって以下の演算規則を条件演算図19に与える。
【0018】
図3は、条件判断属性図を説明するための図である。図3(a)に示す条件判断属性図21aは、条件判断演算式20の演算値を条件演算の演算値とする。図3(b)に示す条件判断属性図21bは、条件判断演算式20の演算値の反転結果を条件演算の演算値とする。図3(c)に示す条件判断属性図21cは、条件判断演算式20の演算値が偽から真に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。図3(d)に示す条件判断属性図21dは、条件判断演算式20の演算値が真から偽に変わったときだけ条件演算の演算値を真とし、それ以外は偽とする。
【0019】
図2(b)の状態定義図24は、入力されてから出力するまでの間、真の演算値を保持するという演算規則を与える。この状態定義図24は、保持する状態の名称を示す状態名称図25と、その状態に含まれる条件演算を示す条件演算図26とが上下方向に積み重ねられてグループ化されている。なお、条件演算図26は、1つ以上含んでいればよい。
【0020】
状態名称図25は、2重の矩形枠からなり、その内部に状態名が記入される。条件演算図26は、矩形枠からなり、その内部に条件判断演算式が記入される。具体的には、条件演算図261の内部には、条件判断演算式100として「条件判断演算式♯1」が記入され、条件演算図262の内部には、条件判断演算式101として「条件判断演算式♯2」が記入されている。
【0021】
矢印14は、状態遷移の順序を示すものであり、状態定義図24に連結されている。また、始端に○印が形成された矢印14は、状態定義図24の演算値が真で、且つ始端の条件演算図26の演算値が偽になったときに、真となるという演算規則を与える。
【0022】
応答処理図16は、応答処理を示すものである。この応答処理図16は、矩形枠からなり、その内部に応答処理内容27が記入される。応答処理図16は、応答処理内容27が左辺値の場合、入力された演算結果を代入する。一方、応答処理内容27が演算式の場合、入力された演算結果が真になったとき、演算式を演算する。他方、応答処理内容27が文の場合、入力された演算結果が真になったとき、文を実行する。
【0023】
初期状態図15は、状態遷移図11における初期の状態を示す図である。制御枠17は、状態遷移図11の下位階層Dを画成するものである。この制御枠17の左上部には、上記の条件演算図19,26と同様な条件演算図28が形成されている。
【0024】
ここで、状態遷移図11では、下位階層Dにおける複数の状態定義図24の状態において共通する条件演算が、上位階層Uの条件演算図19としてまとめて示されている。よって、状態遷移図11は、条件演算図19が複数の状態定義図24のそれぞれに含まれたものと、実質的に同一である。
【0025】
以上に説明した状態遷移図11では、条件演算図28による条件演算が真の場合、制御枠17内の状態遷移が演算される一方、偽の場合、制御枠17内の各状態がリセットされるという演算規則が与えられることとなる。詳細な演算ついては、後述する。
【0026】
なお、図2(a)に示すように、状態定義図12には、条件演算図19と同様な条件演算図22が連結されている。よって、状態遷移図11は、この条件演算図22の条件演算の演算値が真になり、その結果、状態定義図12の演算結果が真になったとき、その処理を実行する。
【0027】
次に、プログラミング装置1の構成について説明する。
【0028】
図1に示すように、プログラミング装置1は、コンピュータに搭載されており、ここでは、パソコン3のECU4に搭載されている。このプログラミング装置1は、編集部(編集手段)5、表示部(表示手段)6及び変換部(変換手段)7を備えている。
【0029】
編集部5は、例えばマウスやキーボード等の入力装置8からの入力に応じて、図式化プログラム10を編集するものである。具体的には、この編集部5は、図式化プログラム10の図形要素、及び図形要素を構成する要素(以下、「構成要素」という)等を、利用者と対話形式で追加、移動又は削除したり、その文字列を編集したりする。
【0030】
より具体的には、編集部5は、ECU4の内部記憶領域にデータ表現を構成し、このデータ表現を利用者の入力に従って編集する。また、編集部5は、ハードディスクドライブ等の記憶装置(不図示)にデータ表現を格納したり呼び出したりすることで、内部記憶領域にデータ表現を再現する。以下、このデータ表現について、「状態遷移図11のデータ表現」を例示して説明すると共に、編集部5による図式化プログラムの編集について、「状態遷移図11の構成要素の追加」と「状態遷移図11の構成要素の削除」とを例示して説明する。
【0031】
[データ表現]
状態遷移図11は、編集部5内部では、各構成要素の情報が格納された部分記憶領域で表現される。格納された情報は、その種類ごとに、ノードデータn、アークデータa、複合ノードデータc、制御枠データfとされている。つまり、図4に示すように、状態遷移図11の状態遷移図データGは、ノードデータ集合Nと、アークデータ集合Aと、複合ノードデータ集合Cと、制御枠データ集合Fと、から構成される。なお、ここでの「集合」は、例えば、各データの線形リストデータ構造で表現されたり、配列で表現されたりする同一種類の情報の集合を意味している。
【0032】
(i)ノードデータn
ノードは、状態遷移図11において、矢印14の始端又は矢印の終端になり得る構成要素である。ノードデータn(n|n∈N)は、かかる構成要素の情報が格納された編集部5内における内部記憶領域である。図5(a)に示すように、このノードデータnは、ノード識別子mn、ノード型tn、処理要件sn、入力アーク集合In及び出力アーク集合Onを含んでいる。
【0033】
ノード識別子mnは、状態遷移図11においてノードを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。ノード型tnは、その情報が状態名、条件演算、応答処理又は初期状態等のいずれに関するものであるかを示す属性値である。処理要件snは、名称図18,25や条件演算図19,26,28の演算式、応答処理図16の記入内容の文字列等を判断する属性値である。
【0034】
入力アーク集合In(In∈A)は、ノードに入力される矢印14のアークデータ集合である。この入力アーク集合Inとしては、例えば、アークデータaの線形リストデータ構造が挙げられる。なお、入力アーク集合Inは、ノード識別子mnの配列であってもよい。
【0035】
出力アーク集合On(On∈A)は、ノードから出力される矢印14のアークデータ集合である。この出力アーク集合Onとしては、例えば、アークデータaの線形リストデータ構造が挙げられる。なお、出力アーク集合Onは、ノード識別子mnの配列であってもよい。
【0036】
ちなみに、ノードデータnが含む情報は、上記のものに限定されず、例えば、編集表示するために、ノードの表示座標等の情報を含んでいてもよい。
【0037】
(ii)アークデータa
アークデータa(a|a∈A)は、状態遷移図11の矢印14の情報が格納された編集部5内における内部記憶領域である。図5(b)に示すように、このアークデータaは、アーク識別子ma、始端ノードsa及び終端ノードtaを含んでいる。
【0038】
アーク識別子maは、状態遷移図11において矢印14を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。始端ノードsa(sa∈N)は、矢印14の始端が接続されたノードを特定する情報であり、例えばノード識別子mnが挙げられる。終端ノードta(ta∈N)は、矢印14の終端が接続されたノードを特定する情報であり、例えばノード識別子mnが挙げられる。
【0039】
ちなみに、アークデータaが含む情報は、上記のものに限定されず、例えば、編集表示するために、アークの折れ線形状を表現する座標等の情報を含んでいてもよい。
【0040】
(iii)複合ノードデータc
複合ノードデータc(c|c∈C)は、状態遷移図11でのノードの積み重なりの情報が格納された編集部5内における部分記憶領域である。図5(c)に示すように、この複合ノードデータcは、複合ノード識別子mc及び複合ノード集合Ncを含んでいる。
【0041】
複合ノード識別子mcは、状態遷移図11においてノードの積み重なりを特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。複合ノード集合Nc(Nc∈N)は、積み重なる各ノードを上から順に特定するための集合である。複合ノード集合Ncとしては、例えば、ノードデータnの線形リストデータ構造、又はノード識別子mnの配列が挙げられる。この複合ノード集合Ncでは、ノードの上に積み重なるノードを与える関数と、ノードの下に積み重なるノードを与える関数とが定義できるようになっている。さらに、複合ノード集合Ncでは、状態名のノードを与える関数が定義できるようになっている。
【0042】
ちなみに、複合ノードデータcが含む情報は、上記のものに限定されず、例えば、積み重なるノードの幅を揃えて編集表示するために、これらのノードにおける最大幅等の情報を含んでいてもよい。
【0043】
(iV)制御枠データf
制御枠データf(f|f∈F)は、状態遷移図11の制御枠17の情報が格納された編集部5内における部分記憶領域である。図5(d)に示すように、この制御枠データfは、制御枠識別子mf、条件演算nf、枠内ノードデータ集合Nf及び枠内アークデータ集合Afを含んでいる。
【0044】
制御枠識別子mfは、状態遷移図11において制御枠17を特定するために付された唯一性のある識別子であり、例えば追番号が挙げられる。条件演算nfは、条件演算図28の条件演算を特定する情報であり、例えば条件演算図28のノード識別子mnが挙げられる。
【0045】
枠内ノードデータ集合Nfは、制御枠17に囲まれているノードを特定するための情報である。この枠内ノードデータ集合Nfとしては、ノードデータnの線形リストデータ構造、又はノード識別子mnの配列が挙げられる。枠内アークデータ集合Afは、制御枠17に囲まれている矢印14を特定するための情報である。この枠内アークデータ集合Afとしては、アークデータaの線形リストデータ構造、又はアーク識別子maの配列が挙げられる。
【0046】
ちなみに、制御枠データfが含む情報は、上記のものに限定されず、例えば、制御枠17の表示座標や表示幅、表示高さ等の情報を含んでいてもよい。
【0047】
[構成要素の追加]
図6は、編集部による構成要素の追加の一例を示すフローチャートである。図6に示すように、編集部5によって状態遷移図11の構成要素を追加する場合、まず、追加する構成要素(以下、「追加構成要素」という)の種類を指定し(S1)、追加構成要素の座標を指定する(S2)。続いて、追加構成要素の情報を格納する部分記憶領域を編集部5内に確保し(S3)、確保した記憶領域に追加構成要素の情報を格納する(S4)。
【0048】
そして、追加構成要素がノードの場合、この追加構成要素をノードデータ集合Nに追加する一方、追加構成要素が矢印14の場合、この追加構成要素をアークデータ集合Aに追加する。他方、追加構成要素が制御枠17の場合、この追加構成要素を制御粋データ集合Fに追加する(S5)。
【0049】
[構成要素の削除]
図7は、編集部による構成要素の削除の一例を示すフローチャートである。図7に示すように、編集部5によって状態遷移図11の構成要素を削除する場合、まず、削除する構成要素(以下、「削除構成要素」という)を指定する(S11)。
【0050】
削除構成要素がノードの場合、この削除構成要素をノードデータ集合Nから除外する(S12)。続いて、ノードが積み重なっていれば、該当する複合ノードデータ集合Cから削除構成要素を除外する(S13→S14)。出力の矢印14が接続されていれば、該当するアークデータaの始端を空にする(S15→S16)。入力の矢印14が接続していれば、該当するアークデータaの終端を空にする(S17→S18)。制御枠17に囲まれていれば、該当する制御枠データfの枠内ノードデータ集合Nfから削除構成要素を除外する(S19→S20)。
【0051】
削除構成要素が矢印14の場合、この削除構成要素をアークデータ集合Aから除外する(S21)。続いて、矢印14の始端がノードに接続していれば、該当するノードデータnの出力アーク集合Onから削除構成要素を除外する(S22→S23)。制御枠17に囲まれていれば、該当する制御枠データfの枠内アークデータ集合Afから削除構成要素を除外する(S24→S25)。
【0052】
削除構成要素が制御枠17の場合、この削除構成要素を制御枠データ集合Fから除外する(S26)。最後に、利用した部分記憶領域を、再利用できるように編集部5内に戻す(S27)。
【0053】
図1に戻り、プログラミング装置1は、上述したように表示部6及び変換部7を備えている。表示部6は、編集部5で編集された図式化プログラム10をディスプレイ(画面)9上に表示させるためのものである。変換部7は、条件演算の演算命令を生成する条件演算命令生成部7aと、応答処理の演算命令を生成する応答処理命令生成部7bと、を有している。この変換部7は、編集部5によって編集された図式化プログラム10の情報を記憶装置から呼び出し、内部記憶領域にデータ表現を再現し、マイクロプロセッサ2にて実行可能なプログラムに変換する。以下、変換部7による変換について、「状態遷移図11の変換」を例示して説明する。
【0054】
図8は、変換部による変換の一例を示すフローチャートである。図8に示すように、状態遷移図11をマイクロプロセッサ2にて実行可能なプログラムに変換する場合、まず、全てのノードについて、ノードの演算値記憶領域を確保する確保命令を生成し、ノードの積み重ね演算値記憶領域を確保する確保命令を生成する(S31)。全ての矢印14について、矢印14の演算値記憶領域を確保する確保命令を生成する(S32)。そして、制御枠17に囲まれない条件演算について、条件演算命令生成部7aによって演算命令を生成する(S33)。
【0055】
続いて、全ての制御枠17について、条件演算命令生成部7aによって条件演算の演算命令を生成し(S34)、条件演算の演算値記憶領域が偽であるか判別する判別命令を生成する(S35)。この判別命令が偽の場合、制御枠17に囲まれるノードの演算値記憶領域に偽値を代入する代入命令を生成し、制御枠17に囲まれる矢印14の演算値記憶領域に偽値を代入する代入命令を生成する(S36→S37)。
【0056】
そして、制御枠17に囲まれる全ての条件演算について、条件演算命令生成部7aによって演算命令を生成する(S38)。最後に、全ての応答処理について、応答処理命令生成部7bによって演算命令を生成する(S39)。
【0057】
次に、上述したプログラミング装置1で作成された図式化プログラムの例について詳細に説明する。
【0058】
図9は、図1のプログラミング装置で作成された図式化プログラムの例を示す図であり、図10は、図9の状態遷移図の下位階層を示す図である。図9,10に示す図式化プログラム10は、機械体の可動部の動作端を検出する処理に関するプログラムを例示するものであり、状態遷移図11を含んでいる。
【0059】
この図式化プログラム10では、上位階層Uの状態定義図12において、動作端検出要求が指示され動作端検出中でないとき(条件演算図22による演算値が真のとき)、条件演算図191の「動作可能」の演算値が真、且つ条件演算図192の「動作端検出完了」の演算値が偽、且つ条件演算図193の「動作端検出失敗」の演算値が偽である間、状態遷移図11の「動作端検出中」の演算値が真になる。
【0060】
一方、下位階層Dの制御枠17内においては、まず、初期状態から、状態定義図24aの「後退限移動中」状態が真となる。状態定義図24aの「後退限移動中」状態は、条件演算図26a1にてタイムアウト時間が経過するか、条件演算図26a2にてトルク検出値(可動部の移動に必要な推進力)が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図16aの「動作検出タイムアウト♯1」の演算値が真になる。
【0061】
状態定義図24aの「後退限移動中」状態の演算値が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図16bにてその時点の位置検出値が後退検出値♯1に記憶され、状態定義図24bの「前進中」状態の演算値が真になる。
【0062】
状態定義図24bの「前進中」状態は、条件演算図26bにて位置検出値が「後退検出値♯1+前進量」になるまで、演算値の真を保持する。このことは、後退限を検出したあと可動部を若干量前進させることに相当する。
【0063】
状態定義図13bの「前進中」状態の演算値が真のとき、条件演算図26bにて位置検出値が「後退検出値♯1+前進量」になれば、状態定義図24cの「後退限へ再び移動中」状態の演算値が真になる。
【0064】
状態定義図24cの「後退限へ再び移動中」状態は、条件演算図26c1にてタイムアウト時間が経過するか、条件演算図26c2にてトルク検出値が動作端検出しきい値以上になるまで、演算値の真を保持する。タイムアウト時間が経過すれば、応答処理図16cの「操作端検出タイムアウト」の演算値が真になる。
【0065】
状態定義図24cの「後退限へ再び移動中」状態が真のとき、トルク検出値が動作端検出しきい値以上になれば、応答処理図16dにてその時点の位置検出値が後退限検出値♯2に記憶される。これと共に、応答処理図16eにて、後退限検出値♯1(最初の後退限検出値)と後退限検出値♯2(二回目の後退限検出値)との比較演算値が、動作端不明という変数に格納される。そして、状態定義図24dの「復帰中」状態の演算値が真になる。
【0066】
状態定義図24dの「復帰中」状態は、条件演算図26dにて位置検出値が「後退限検出値♯2+前進量」になるまで、演算値の真を保持する。
【0067】
ここで、状態定義図24dの「復帰中」状態が真のとき、位置検出値が「後退限検出値♯2+前進量」になれば、次の処理が実行される。つまり、条件演算図29aにて「動作端不明」の演算値が真の場合、応答処理図16fにて「動作端不明で終了」の演算値が真となる。条件演算図29aにて「動作端不明」の演算値が偽の場合、応答処理図16gにて「動作端検出完了」の演算値が真になる。
【0068】
他方、条件演算図29b1の「動作端検出タイムアウト」、条件演算図29b2の「動作端検出タイムアウト」、条件演算図29b3の「動作端不明で終了」のいずれかの演算値が真になれば、応答処理図16hの「動作端検出失敗」の演算値が真になる。また、応答処理図16gの「動作端検出完了」、応答処理図16hの「動作端検出失敗」のいずれかの演算値が真になれば、条件演算図28の「動作端検出中」の演算値が偽になるため、制御枠17で囲まれた各状態がリセットされる。
【0069】
この図式化プログラム10によれば、マイクロプロセッサ2が次の処理を実行することになる。すなわち、動作端検出要求が指示されたときから、可動部を後退方向に移動させる。これと共に、トルク検出値が動作端検出しきい値以上になったことでもって、可動部が動作端に押し当てられてそれ以上後退不能であることを検知する。そして、後退限を検出すれば、可動部を若干量前進させる前進動作を2度行う。
【0070】
そして、最初の前進動作と2回目の前進動作とのそれぞれの場合において、可動部が動作端に押し当てられた状態での位置検出値を比較する。これらの位置検出値の差が動作端検出許容値以下の場合、動作端検出が正常に完了したとする。一方、かかる位置検出値の差が動作端検出許容値よりも大きければ、動作端不明のために動作端検出失敗とする。
【0071】
以上、本実施形態によれば、プログラム構成の大半を占める状態保持回路を、状態定義図24という1つの図で図式化することができる。さらに、この状態定義図24にあっては、状態名称図25と条件演算図26とが積み重ねられるようにグループ化されている。よって、その条件演算が多くなった場合でも、状態定義図24をコンパクトで見やすく表示することができる。その結果、マイクロプロセッサ2上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となる。
【0072】
さらに、本実施形態では、上述したように、図式化プログラム10が状態遷移図11を有している。よって、状態遷移回路を1つの状態遷移図11としてコンパクトで見やすく表示することができる。また、複数の状態定義図24の間における状態遷移が理解しやすいものとなる。さらに、状態遷移させるための条件演算や遷移先の状態定義図24を容易に編集することが可能となる。また、矢印14を用いて状態遷移の順序を表しているため、状態遷移させるための条件演算を取り出すように設定することができる。
【0073】
また、本実施形態では、上述したように、状態遷移図11は、上位階層Uと下位階層Dとに階層化されており、状態定義図12を上位階層Uに含むと共に、複数の状態定義図24と矢印14と初期状態図15と応答処理図16とを下位階層Dに含んでいる。その結果、マイクロプロセッサ2上で実行されるプログラムを一層容易に作成することができると共に、その内容を一層コンパクトで見やすく表示することが可能となる。
【0074】
なお、本実施形態では、上述したように、複数の状態定義図24と矢印14と初期状態図15と応答処理図16とを、状態遷移図11の下位階層Dとして制御枠17で囲っていることから、親子関係(階層関係)が理解しやすくなっている。
【0075】
また、本実施形態の状態遷移図11では、上述したように、下位階層Dにおける複数の状態定義図24の状態にて共通する条件演算が、上位階層Uにおける状態定義図12の条件演算図19としてまとめて示されている。つまり、各状態定義図24の状態で重複する条件演算を階層化により上位階層Uにまとめている。この場合、下位階層Dの複数の状態定義図24にて共通する条件演算の記述を、上位階層Uにて1箇所にまとめて行うことができる。その結果、マイクロプロセッサ2上で実行されるプログラムを一層容易に作成することができると共に、状態遷移図11を簡略化することが可能となる。
【0076】
図11は、図9,10の図式化プログラムと等価な処理を表すラダープログラムを示す図である。図11に示すように、ラダープログラム80では、状態遷移がプログラムに明確に現れておらず、状態遷移の理解が非常に困難であることがわかる。つまり、接点とコイルの名称を辿っていかなければ、状態遷移を読み取れない。
【0077】
これに対し、本実施形態では、矢印14の向きで状態遷移が容易に読み取れるばかりでなく、状態定義図24の状態の不成立条件が条件演算ごとに明確に読み取れる。これにより、上記効果、すなわち、マイクロプロセッサ2上で実行されるプログラムを容易に作成し且つその内容を理解しやすく表示するという効果が確認できる。
【0078】
次に、上述したプログラミング装置1で作成された図式化プログラムの他の例について詳細に説明する。
【0079】
図12は、図1のプログラミング装置で作成された図式化プログラムの他の例を示す図である。図12に示すように、この図式化プログラム50では、複数の状態を並列処理(平行処理)するような状態遷移回路を表す状態遷移図51が、図形要素として少なくとも含まれている。状態遷移図51は、その下位階層Dにおいて、複数の状態定義図24と、矢印54とを含んでいる。そして、これら状態定義図24及び矢印54は、並列に状態遷移するように構成されている。
【0080】
具体的には、初期状態図15に連結された矢印54は、分岐されることによって、状態定義図24aへ入力される矢印54aと状態定義図24bへ入力される矢印54bとを構成している。これらの状態定義図24a,24bは、その出力する矢印54a,54bが同期要素図56に連結されている。同期要素図56は、全ての入力が完了する(状態定義図24a,24bが出力する矢印54a,54bの演算値の双方が真となる)と、その出力する矢印54cの演算値を真とする。
【0081】
この図式化プログラム50では、上位階層Uの状態定義図12において、起動指令が指示されたとき(条件演算図22による演算値が真のとき)、条件演算図191の「運転条件」の演算値が真、且つ条件演算図192の「停止指令」の演算値が偽である間、状態遷移図51の「状態遷移回路実行中」の演算値が真になる。
【0082】
一方、下位階層Dの制御枠17内においては、まず、状態定義図24aの「並行処理♯1」状態と状態定義図24bの「並行処理♯2」状態とが同時に開始される。状態定義図24aの「並行処理♯1」状態は、条件演算図26aのタイムアウト時間が経過するまで、演算値の真を保持する。状態定義図24bの「並行処理♯2」状態は、条件演算図26bのタイムアウト時間が経過するまで、演算値の真を保持する。
【0083】
状態定義図24aの「並行処理♯1」状態の演算値が真のときに条件演算図26aにてタイムアウト時間が経過し、且つ状態定義図24bの「並行処理♯2」状態の演算値が真のときに条件演算図26bにてタイムアウト時間が経過すれば、同期要素図56から出力される矢印54cの演算値が真となり、状態定義図24cの「同期後」状態の演算値が真になる。そして、状態定義図24cの「同期後」状態の演算値が真のとき、条件演算図26cにてタイムアウト時間が経過すれば、初期状態に戻る。これにより、状態遷移を繰り返すこととなる。
【0084】
以上、本実施形態においても、マイクロプロセッサ2上で実行されるプログラムを容易に作成することができ、且つその内容を理解しやすく表示することが可能となるという上記効果が奏される。
【0085】
また、本実施形態では、上述したように、複数の状態定義図24及び矢印54が、状態が並列に遷移するように構成されている。そして、簡素化された同期要素図56によって、状態の同期が図られている。よって、状態遷移図51において複数の状態を同時にとるような状態遷移回路を、シンプルで理解しやすく構成することができる。
【0086】
ところで、従来のプログラミング装置による図式化プログラムは、図形要素パターンがシンプルすぎて、どこを切り取っても同じプログラムと認識されやすい。この点、本実施形態では、図13に示すように、図形要素の種類が多く、積み重ね表示が可能であるため、図形要素パターンの組み合わせが多彩なものとなる。よって、本実施形態にあっては、処理のパターン認識が容易であり、注目したい処理群を検索しやすく、且つメンテナンス性が高いものといえる。
【0087】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。例えば、上記実施形態の状態定義図12では、状態名称図18と条件演算図19とを上下に積み重ねてグループ化し、状態定義図24では状態名称図25と条件演算図26とを上下に積み重ねてグループ化したが、これらは完全に積み重ねられなくてもよく、グループ化されればよい。
【0088】
また、上記実施形態では、プログラミング装置1をパソコン3に搭載したが、種々のコンピュータに搭載することも勿論可能である。なお、本発明の適用範囲は上記実施形態に限定されるものでなく、本発明は、シーケンス制御を行う様々な組込み制御装置上で実行される様々なプログラムを作成することができる。
【図面の簡単な説明】
【0089】
【図1】本発明の一実施形態に係るプログラミング装置を示す概略ブロック図である。
【図2】図式化プログラムを説明するための図である。
【図3】条件判断属性図を説明するための図である。
【図4】編集部の内部記憶領域における状態遷移図データを説明するための図である。
【図5】図4の状態遷移図データを構成する各データを説明するための図である。
【図6】編集部による構成要素の追加の一例を示すフローチャートである。
【図7】編集部による構成要素の削除の一例を示すフローチャートである。
【図8】変換部による変換の一例を示すフローチャートである。
【図9】図1のプログラミング装置で作成された図式化プログラムの例を示す図である。
【図10】図9の状態遷移図の下位階層を示す図である。
【図11】図9,10の図式化プログラムと等価な処理を表すラダープログラムを示す図である。
【図12】図1のプログラミング装置で作成された図式化プログラムの他の例を示す図である。
【図13】ディスプレイ上に表示された編集画面の一例を示す図である。
【符号の説明】
【0090】
1…プログラミング装置、2…マイクロプロセッサ(組込み制御装置)、5…編集部(編集手段)、6…表示部(表示手段)、7…変換部(変換手段)、9…ディスプレイ(画面)、10,50…図式化プログラム、11…状態遷移図、12…状態定義図、14,54…矢印、15…初期状態図、16…応答処理図、18…状態名称図、19…条件演算図、24…状態定義図、25…状態名称図、26…条件演算図、D…下位階層、U…上位階層。
【特許請求の範囲】
【請求項1】
組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、
プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、
前記編集手段で編集された前記図式化プログラムを画面に表示させる表示手段と、
前記編集手段で編集された前記図式化プログラムを前記組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、
前記図式化プログラムは、状態保持回路を表す状態定義図を有しており、
前記状態定義図は、保持する状態の名称を示す状態名称図、及び前記状態に含まれる条件演算を示す1つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とするプログラミング装置。
【請求項2】
前記図式化プログラムは、状態遷移回路を表す状態遷移図を有し、
前記状態遷移図は、
複数の前記状態定義図と、
複数の前記状態定義図に連結され、前記状態遷移の順序を示す矢印と、
初期状態を示す初期状態図と、
応答処理を示す応答処理図と、を含むことを特徴とする請求項1記載のプログラミング装置。
【請求項3】
前記状態遷移図は、上位階層と下位階層とに階層化されており、前記状態定義図を前記上位階層に含むと共に、複数の前記状態定義図と前記矢印と前記初期状態図と前記応答処理図とを前記下位階層に含むことを特徴とする請求項2記載のプログラミング装置。
【請求項4】
前記状態遷移図では、前記下位階層における複数の前記状態定義図の前記状態にて共通する条件演算が、前記上位階層における前記状態定義図にまとめて示されていることを特徴とする請求項3記載のプログラミング装置。
【請求項5】
複数の前記状態定義図及び前記矢印は、前記状態が並列に遷移するように構成可能とされていること特徴とする請求項2〜4の何れか一項記載のプログラミング装置。
【請求項1】
組込み制御装置上で実行されるプログラムを作成するためのプログラミング装置であって、
プログラムを図式化してなる図式化プログラムを入力に応じて編集する編集手段と、
前記編集手段で編集された前記図式化プログラムを画面に表示させる表示手段と、
前記編集手段で編集された前記図式化プログラムを前記組込み制御装置にて実行可能なプログラムに変換する変換手段と、を備え、
前記図式化プログラムは、状態保持回路を表す状態定義図を有しており、
前記状態定義図は、保持する状態の名称を示す状態名称図、及び前記状態に含まれる条件演算を示す1つ以上の条件演算図が積み重なるようにグループ化されていることを特徴とするプログラミング装置。
【請求項2】
前記図式化プログラムは、状態遷移回路を表す状態遷移図を有し、
前記状態遷移図は、
複数の前記状態定義図と、
複数の前記状態定義図に連結され、前記状態遷移の順序を示す矢印と、
初期状態を示す初期状態図と、
応答処理を示す応答処理図と、を含むことを特徴とする請求項1記載のプログラミング装置。
【請求項3】
前記状態遷移図は、上位階層と下位階層とに階層化されており、前記状態定義図を前記上位階層に含むと共に、複数の前記状態定義図と前記矢印と前記初期状態図と前記応答処理図とを前記下位階層に含むことを特徴とする請求項2記載のプログラミング装置。
【請求項4】
前記状態遷移図では、前記下位階層における複数の前記状態定義図の前記状態にて共通する条件演算が、前記上位階層における前記状態定義図にまとめて示されていることを特徴とする請求項3記載のプログラミング装置。
【請求項5】
複数の前記状態定義図及び前記矢印は、前記状態が並列に遷移するように構成可能とされていること特徴とする請求項2〜4の何れか一項記載のプログラミング装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2009−271768(P2009−271768A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−122439(P2008−122439)
【出願日】平成20年5月8日(2008.5.8)
【出願人】(000002107)住友重機械工業株式会社 (2,241)
【Fターム(参考)】
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願日】平成20年5月8日(2008.5.8)
【出願人】(000002107)住友重機械工業株式会社 (2,241)
【Fターム(参考)】
[ Back to top ]