(57)【要約】【課題】  決定論的有限状態マシンをプログラムするための同期式形式言語を提供する。【解決手段】  本言語はグラフィックインターフェースを含み、有限状態マシンの挙動がステップおよび遷移のグラフで表現される。アクションはステップに関連する。２つのステップ２０，２２間の遷移２４は、この遷移に関連する条件Ｔが評価される周期を制御する休止フラグと、この遷移に先立つステップに関連するアクションが実行される前または後に、この遷移に関連する条件が評価される際に従う強制排除フラグとを含む。本発明によって、ユーザは、どのようなテキストを使用する必要もなしに、すべてのタイプの遷移の属性のグラフィック表現が可能になる。この表現は、簡潔でコンパクトである。【選択図】  図２
2005310144.tif 000002
【特許請求の範囲】
【請求項１】
物理プロセスを制御する決定論的有限状態マシンをプログラムするための同期式形式言語であって、グラフィック表現を含むものにおいて、
有限状態マシンの挙動がステップ（２０、２２）および遷移（２４）のグラフで表現され、
アクション（２６）がステップに関連付けられ、および、
２つのステップの間の前記遷移（２４）が、前記遷移に関連する条件が評価される周期を制御する少なくとも１つの休止フラグと、前記遷移に先立つ前記ステップに関連するアクションが実行される前または後に前記遷移に関連する前記条件が評価される際に従う強制排除フラグとを含んでおり、両フラグの値が前記グラフィック表現においてグラフィックに表現される
ことを特徴とする同期式形式言語。
【請求項２】
前記休止フラグはアクトフラグを含み、
前記アクトフラグの一方の値について、前記遷移に関連する条件が真になるとすぐに前記遷移に続く前記ステップがアクチベートされ、および、前記アクトフラグの他方の値について、前記遷移に先立つ前記ステップで少なくとも１つの周期が実施され、並びに、
前記アクトフラグの各々の値が前記グラフィック表現においてグラフィックに表現される、
請求項１の同期式形式言語。
【請求項３】
前記アクトフラグの前記一方の値は、前記遷移に先立つ前記ステップから前記遷移への連続した線で表現される、請求項２の同期式形式言語。
【請求項４】
前記アクトフラグの前記他方の値は、前記遷移に先立つ前記ステップから前記遷移への中断した線で表現される、請求項２または３の同期式形式言語。
【請求項５】
前記休止フラグは遅延フラグを含み、
前記遅延フラグの一方の値について、前記遷移がアクチベートされる周期と同一周期中に前記遷移に続く前記ステップがアクチベートされ、および、前記遅延フラグの他方の値について、前記遷移がアクチベートされる周期に続く周期中に前記遷移に続く前記ステップがアクチベートされ、並びに、
前記遅延フラグの各々の値が前記グラフィック表現においてグラフィックに表現される、
請求項１〜４のいずれかの同期式形式言語。
【請求項６】
前記遅延フラグの前記一方の値は、前記遷移から前記遷移に続く前記ステップへの連続した線で表現される、請求項５の同期式形式言語。
【請求項７】
前記遅延フラグの前記他方の値は、前記遷移から前記遷移に続く前記ステップへの中断した線で表現される、請求項５または６の同期式形式言語。
【請求項８】
前記強制排除フラグの前記値が前記遷移の形態で表現される、請求項１〜７のいずれかの同期式形式言語。
【請求項９】
１組の並列ブランチに続く遷移が結合フラグをさらに含み、アクティブな結合フラグを伴う遷移は、前記並列ブランチがすべて、前記遷移に先立つステップに到達しているときだけに評価される、請求項１〜８のいずれかの同期式形式言語。
【請求項１０】
物理プロセスを制御する決定論的有限状態マシンをプログラムするための方法であって、
請求項１から９のいずれか一項の同期式形式言語を使用することを特徴とする方法。
【請求項１１】
請求項１から９のいずれか一項の同期式形式言語で有限状態マシンの挙動を記述するように適合されたルーチンと、
該言語での有限状態マシンの挙動の記述を表示するように適合されたグラフィックユーザインターフェースと
を有することを特徴とするプログラム。
【請求項１２】
決定論的有限状態マシンをプログラムするためのコンピュータであって、
請求項１から９のいずれか一項の同期式形式言語を記憶するメモリと、
該言語を実行するように適合された論理ユニットと、
該言語のグラフィックインターフェースをユーザに表示するためのディスプレイと
を有することを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータプログラムおよびシステムの分野に関し、より詳細には、リアルタイムシステムのプログラミングに関する。
【背景技術】
【０００２】
有限状態マシン（Finite State Machine）は、多くのリアルタイムシステムプログラミングのプログラミングのために必要とされる。かかる決定論的（deterministic）有限状態マシンの実施例は、ＰＬＣ（programmable logic controller；プログラマブルロジックコントローラ）を含んでおり、これらのＰＬＣは、産業用システムを自動化するために使用される。より一般的には、有限状態マシンは、外部環境によって与えられる入力に対して反応するマシンである。かかる反応性マシンの挙動は周期的であり、各周期は、一般に以下の４ステップに分解することができる。
−非アクティブステップまたは待ち時間ステップ
−入力を読み取るステップ
−アクティブステップまたは計算するステップ
−出力を書き込むステップ
これらのシステムにおいては通常、計算中は入力が読み取られない。このシステムは、したがってあるステップから別のステップへの遷移（transition）がその入力によってトリガされ、その安定したステップが待ち時間中のマシンのステップである状態マシンとして表すことができる。製造業においては、これらの状態マシンは、その時間のほとんどにおいて有限数のステップを有する。これらのマシンは、決定論的であると想定されており、すなわちあるステップを考えると、同一入力が常に同一出力を生成する。
【０００３】
ＩＥＣ６１１３１−３基準（Ｎｏｒｍ）は、オートメーション用の言語を定義している。すなわち、この基準において定義される言語は、グラフィックインターフェースを伴う言語を含んでおり、これらには、ＬＡＤＤＥＲ、ＦＢＤ（Function Block Diagram language；ファンクションブロックダイアグラム言語）、ＳＦＣ（Sequential Function Chart language；シーケンシャルファンクションチャート言語）がある。ＳＦＣ記述は、３つの基本的なコンポーネント、すなわちステップ、遷移、およびアクション（action）に基づいている。ステップは、アクティブまたは非アクティブとすることが可能であり、この１組のアクティブステップが、これら全体のシステムのステップを記述する。各周期ごとにこの１組のアクティブステップがスキャンされ、これらのステップに関連するアクションが実行され、アクティブステップに続く遷移条件が評価され、可能にされたこれらの遷移に続くステップが、次の周期のためにアクティブにセットされる。遷移が可能にされると、以前のステップは非アクティブになる。
【０００４】
これらのグラフィックインターフェースは、オートメーションの専門家にはよく知られている。しかし、これらの言語は形式言語ではない。したがって、これらの主要な欠点の１つは、これらの言語の１つで書かれたプログラムの実行が、マシンごとに異なり得ることである。これによって、これらの言語の１つで書かれたプログラムは、所与の特定のマシンで実行できるようになるまでに、シミュレートまたはテストすることが必須になる。
【０００５】
さらに、いくつかのいわゆる「同期式言語」が、マーケットにおいて提案されている。ある言語は、この言語で書かれたプログラムが厳密な共時性の仮説（synchrony hypothesis）、すなわち各反応がアトミック（atomic）であるという仮説に従う場合に、同期式である。より詳細には、このシステムは、まるでその反応時間がゼロであるかのような挙動を見せる。すなわち、これらの出力は、論理的にこれらの入力と同じ瞬間に放出される。換言すれば、同期式システムは、その出力が入力としてフィードバックされるときに安定している。電気的な観点からは、同期式システムは、安定な回路である。
【０００６】
言語がアルファベットおよび構成規則によって完全に定義されると、言語は形式的となる。形式言語のアルファベットは、この言語が構築される１組の記号である。この形成規則は、ある表現が対象となる言語に属することを仮定し、この言語に属する他の適格表現からどのようにして適格表現を構築するかを規定する。形式言語においては、ある表現（すなわち、一連のアルファベットによる記号）が適格であるかどうか、すなわちこれらの規則に従うかどうかを検査することが可能である。ＳＦＣは、ＳＦＣグラフが適格であるかどうかを曖昧性なしに定義することができない点で言語として形式的ではなく、よって、所与の有限状態マシンに適用される際に、ある種の効果を有することになってしまう。
【０００７】
同期式形式言語は、市場に提供されている。これらは、フランス、ＧｉｅｒｅｓのＶＥＲＩＭＡＧ（登録商標）が提供するＬＵＳＴＲＥ言語、フランスの経済産業省国家産業局コンピュータ科学制御研究所（ＩＮＲＩＡ）および鉱山学校（Ｅｃｏｌｅ  ｄｅｓ  Ｍｉｎｅｓ）が作成したＥＳＴＥＲＥＬ言語を含んでいる。フランスのＥＳＴＥＲＥＬ  ＴＥＣＨＮＯＬＯＧＩＥＳ（登録商標）によるＥＳＴＥＲＥＬ  ＳＴＵＤＩＯ（登録商標）という引用の下に販売される製品は、テキストによる同期式形式言語である。これは、ＳｙｎｃＣｈａｒｔと呼ばれるグラフィックインターフェースと共に提供される。しかし、このグラフィックインターフェースは、オートメーションの専門家にはよく知られておらず、このオートメーション分野におけるＥＳＴＥＲＥＬ  ＳＴＵＤＩＯ（登録商標）の大量使用に対する障害になっている。
【０００８】
このＳｙｎｃＣｈａｒｔグラフィックインターフェースは、図１に示すようなステップ、遷移、アクションを示す。図１は、ＳｙｎｃＣｈａｒｔプログラムの実施例を示すものである。これらのステップには、２、４および６の参照番号がつけられ、参照番号２は、このシステムの初期ステップを示す。ステップ４とステップ６の間には、遷移／アクション８が存在する。すなわち、これらのステップの間の遷移があるクロックパルス、または周期で「真」値をとるときに、このプログラムは、あるステップから次のステップへ進む。この時点で、次のステップに進む前にこのアクションは実行される。図１の実施例において、ステップ４とステップ６の間でこの遷移は、ブーリアン変数ＥＮＤ＿ＲＯＢＯＴ＿ＬＯＡＤであるが、一方、このアクションは、ＳＴＡＲＴ＿ＭＡＣＨＩＮＥと呼ばれる。ステップ４がアクティブであると想定すると、ＥＮＤ＿ＲＯＢＯＴ＿ＬＯＡＤが「真」になるときに、このプログラムはステップ４からステップ６へ進み、ステップ６へ進む前にアクションＳＴＡＲＴ＿ＭＡＣＨＩＮＥを実行する。
【０００９】
図１の参照番号１０は、テキストコードを実行することができるステップであるテキストブロックである。ステップ６とステップ１０の間で遷移／アクション１２が提供され、これは、遷移ＥＮＤ＿ＭＡＣＨＩＮＥに帰着する。ステップ６がアクティブであると想定すると、ブーリアン変数ＥＮＤ＿ＭＡＣＨＩＮＥのとき（すなわちアクションが実行されないとき）に、プログラムはステップ１０へ進む。
【００１０】
図１に示すように、２つのステップ間の遷移／アクションには条件を付けることができる。これは、図１に示され、ドット１４が遷移／アクション８に提供されている。すなわち、このドットは、遷移／アクション８が強アボート（strong abort）を有することを表している。換言すれば、遷移ＥＮＤ＿ＲＯＢＯＴ＿ＬＯＡＤが真になるとすぐに、たとえ以前のアクションが完全に終了していなくても、プログラムはステップ６へ進む。反対に、遷移／アクション１２にはドットが付けられておらず、これは、弱アボート（weak abort）を例示するものである。すなわち、ブーリアン変数ＥＮＤ＿ＭＡＣＨＩＮＥが真であり、また以前のアクションが現在の周期について完全に終了したときだけ、プログラムはステップ６からステップ１０へ進む。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図１に例示されたＥＳＴＥＲＥＬ  ＳＴＵＤＩＯ（登録商標）のグラフィックインターフェースでは、決定論的有限状態マシンをプログラムすることが困難である。よって、オートメーション専門家によく知られており、拡張プログラミング機能を実現するはずの、グラフィックインターフェースを有する同期式形式言語の必要性が依然として存在する。
【課題を解決するための手段】
【００１２】
本発明によれば、物理プロセスを制御する決定論的有限状態マシンをプログラムするための同期式形式言語が提供される。この言語はグラフィック表現を含み、ここで、有限状態マシンの挙動がステップおよび遷移のグラフで表現される。アクションはステップに関連付けられ、２つのステップ間の遷移は、
−遷移に関連する条件が評価される周期を制御する少なくとも１つの休止フラグ（pause flag）、および、
−遷移に先立つステップに関連するアクションが実行される前または後に、遷移に関連する条件が評価される際に従う強制排除フラグ（pre-emption flag）を含んでいる。
これら両フラグの値は、このグラフィック表現においてグラフィックに表現される。
【００１３】
休止フラグはアクトフラグ（activation flag）を含むことができ、この場合には、
−アクトフラグの一方の値については、遷移に続くステップは、遷移に関連する条件が真になるとすぐにアクチベートされ、かつ、
−アクトフラグの他方の値については、少なくとも１つの周期が、遷移に先立つステップ中で実施される。
アクトフラグの値は、グラフィック表現においてグラフィックに表現される。
【００１４】
アクトフラグの一方の値は、遷移に先立つステップから遷移への連続した線（continuous line）で表現することができる。アクトフラグの他方の値は、遷移に先立つステップから遷移への中断した線で表現することができる。
【００１５】
休止フラグは、遅延フラグ（delay flag）を含むことができ、この場合には、
−遅延フラグの一方の値については、遷移に続くステップは、遷移がアクチベートされる周期と同一周期中にアクチベートされ、かつ、
−遅延フラグの他方の値については、遷移に続くステップは、遷移がアクチベートされる周期に続く周期中にアクチベートされる。
遅延フラグの値は、グラフィック表現においてグラフィックに表現される。
【００１６】
遅延フラグの一方の値は、遷移から遷移に続くステップへの連続した線で表現することができるが、遅延フラグの他方の値は、遷移から遷移に続くステップへの中断した線で表現することができる。
【００１７】
強制排除フラグの値は、遷移の形態で表されるようにすることが可能である。
【００１８】
さらに、１組の並列ブランチに続く遷移は、さらに結合フラグ（join flag）を含むことができる。この場合には、アクティブな結合フラグを伴う遷移は、これらの並列ブランチがすべて、遷移に先立つステップに到達しているときだけに、評価される。
【００１９】
本発明ではさらに、物理プロセスを制御する決定論的有限状態マシンをプログラムする、この言語を使用するための方法が提供される。
本発明ではまた、
−言語のグラフィック表現中で有限状態マシンの挙動を記述するようになっているルーチンと、
−言語中で、有限状態マシンの挙動の記述を表示するようになっているグラフィックユーザインターフェースと
を有するプログラムが提供される。
【００２０】
最後に、本発明では、−言語を記憶するメモリと、
−言語を実行するようになっている論理ユニットと、
−言語のグラフィックインターフェースをユーザに対して表示するためのディスプレイと
を有し、決定論的有限状態マシンをプログラムするためのコンピュータが提供される。
【発明を実施するための最良の形態】
【００２１】
非限定的な実施例として添付図面を参照して、本発明を実施する方法および言語について、以下に説明することにする。
【００２２】
本発明は、決定論的有限状態マシンをプログラムするための同期式形式言語を提供するものである。この言語はグラフィック表現を含んでおり、ここで有限状態マシンの挙動はステップおよび遷移のグラフで表現される。アクションはステップに関連付けられる。２つのステップの間の遷移は、
−この遷移が評価される周期を制御する少なくとも１つの休止フラグと、
−この遷移に関連するアクションが実行される前または後に、この遷移を評価するための強制排除フラグ（pre-emption flag）を含んでいる。
このフラグは、グラフィックに表現され、テキストでは示されない。これによって、決定論的有限状態マシンのその様々なステップの間での様々な可能性のある遷移をコンパクトで簡単な方法でグラフィックに表現できる。さらに、これによって、この遷移またはアクションについての条件に関するテキスト情報を考慮する必要なしに、コンパイラがこれらの遷移およびその属性を解析することが可能になる。例えば、瞬間的なループが存在するかどうかを評価するために、このコンパイラは、どのようなテキスト情報も考慮する必要なしにグラフ情報だけを用いることができる。
【００２３】
この休止フラグが瞬間的なループを回避することは注目に値する。この強制排除フラグは、ステップに関連するアクションを停止し、または停止しないようにすることを可能にする。
【００２４】
図２〜１７は、本発明による言語における遷移の実施例を提供している。この言語は、アクトフラグ（activation flag）および遅延フラグからなる休止フラグを使用する。このアクトフラグは、
−この遷移条件が真になるとすぐにこの遷移に続くステップがアクチベートされるかどうか、または、
−この遷移に続くステップをアクチベートする前にこの遷移に先立つステップにおいて、少なくとも１つの周期が実施される必要があるかどうかを表す。
換言すれば、このアクトフラグは、このプログラムがこの遷移に先立つステップを瞬間的に通過し得るかどうかを表す。
【００２５】
この遅延フラグは、この遷移に続くステップが、
−この遷移がアクチベートされる周期と同一周期中に、または、
−この遷移がアクチベートされる周期に続く周期中に
アクチベートされるかどうかを表している。
【００２６】
このアクトフラグおよび遅延フラグのそれぞれは、２つの可能な値を有する。この強制排除フラグもまた２つの可能な値を有するので、この例示された言語には、１６個の異なる遷移が存在する。
【００２７】
図２は、本発明による言語における遷移の第１の実施例である。ステップ２０および２２は、正方形のボックスによって表される。ステップ２０と２２の間の遷移は、これら２つのステップ２０と２２の間に配置された水平線２４によって表される。図４を参照して以下で説明するように、この遷移はまた、別の記号（この実施例では「Ｚ」記号）によって表すこともできる。ゼロ以上のアクション２６を各ステップに関連付けることができる。図２の実施例においては、アクションは、ステップ２２だけに関連付けられている。この表現は、ＳＦＣ中で使用される表現に類似しており、これによって、オートメーションの技術分野の当業者にとって簡単に理解可能になる。遷移２４は、図２において「Ｔ」とマークされた条件に関連付けられる。この遷移は、条件Ｔが真になるときに「点火され（fired）」または「アクチベートされ（activated）」、これは、次いでこのシステムが（以下で説明するようにこのフラグの値に従って）ステップ２０からステップ２２へ進むことができることを意味する。
【００２８】
この遷移は、アクトフラグを含んでいる。このアクトフラグは、２つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Ｉｍｍｅｄｉａｔｅ」および「Ｄｅｌａｙｅｄ」と呼ばれる。アクトフラグの値が「Ｉｍｍｅｄｉａｔｅ」であるとき、この遷移に続くステップは、この遷移が真になるとすぐにアクチベートされ、これは図２、４、６および８に表現されている。この図のグラフィック表現において、このアクトフラグの「Ｉｍｍｅｄｉａｔｅ」値は、この先行するステップからこの遷移までの線が連続しているという形で表現される。他方、このアクトフラグの値が、「Ｄｅｌａｙｅｄ」であるときには、この遷移に続くステップをアクチベートする前に、少なくとも１つの周期がこの遷移に先立つステップにおいて実施される必要があり、これは、図１０、１２、１４および１６に表現されている。これらの図のグラフィック表現において、このアクトフラグのこの「Ｄｅｌａｙｅｄ」値は、この先行するステップからこの遷移までの線がこの遷移の上側で不連続、すなわち中断されるという形で表現される。
【００２９】
この遷移は、遅延フラグを含んでいる。この遅延フラグは、２つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Ｎｏｗ」および「Ｎｅｘｔ」と呼ばれる。この遅延フラグの値が「Ｎｏｗ」であるとき、この遷移に続くステップに関連するアクションは、この遷移が評価され点火される周期と同一周期において、直ちにアクチベートされる。これは、図２、４、１０および１２に表現されている。これらの図のグラフィック表現において、この遅延フラグのこの「Ｎｏｗ」値は、この遷移からこの遷移の次のステップまでの線が連続しているという形で表現される。他方、この遅延フラグの値が「Ｎｅｘｔ」であるときには、この遷移に続くステップに関連するアクションは、この遷移がアクチベートまたは点火される周期の１周期後にアクチベートされる。これは、図６、８、１４および１６に表現されている。これらの図のグラフィック表現においては、この遅延フラグの「Ｎｅｘｔ」値は、この遷移から次のステップまでの線がこの遷移の下側で不連続、すなわち中断されるという形で表現される。
【００３０】
この遷移は強制排除フラグをさらに含んでいる。この強制排除フラグは、２つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Ｕｒｇｅｎｔ」および「Ｌａｚｙ」と呼ばれる。この強制排除フラグの値が「Ｌａｚｙ」であるとき、この先行するステップのアクションが実行された後にこの遷移は評価される。これは、図２、６、１０および１４に表現されている。これらの図のグラフィック表現においては、この強制排除フラグの「Ｌａｚｙ」値は、この遷移が１本の水平線であるという形で表現される。この強制排除フラグの値が「Ｕｒｇｅｎｔ」であるときには、この先行するステップのアクションが実行される前に、この遷移は評価される。この遷移が真であることが判明した場合、このアクションは実際には決して実行されないことになる。これは、図４、８、１２および１６に表現されている。これらの図のグラフィック表現においては、この強制排除フラグの「Ｕｒｇｅｎｔ」値は、この遷移が「Ｚ」形をしているという形で表現される。
【００３１】
図２、４、６、８、１０、１２、１４および１６の記述についての残りの部分では、遷移についての様々なフラグの値は、以下の順序、すなわちアクトフラグ、強制排除フラグ、遅延フラグの順序で示される。
【００３２】
図２は、Ｉｍｍｅｄｉａｔｅ  Ｌａｚｙ  Ｎｏｗ遷移を示している。ステップ２０がアクティブであり、条件Ｔが周期中に真になるものと想定する。この場合には、ステップ２２は、アクティブになり、アクションＡが実行される。図２において、アクションＡがパルス修飾子Ｐに関連することに留意されたい。このパルス修飾子は、ステップ２２がアクティブになるとき、アクションＡは、まさに第１の周期で実施され、ステップ２２がアクティブのままである場合にも次の周期には実施されないことを意味する。
【００３３】
この遷移は、Ｉｍｍｅｄｉａｔｅ値をもつアクトフラグを有するので、このプロセスは、ステップ２０において周期を費やす必要はない。したがって、ステップ２０がアクティブになると想定すると、遷移２４は、この同一周期において評価される。したがって、図２の実施例において、ステップ２０および２２は、同一周期中に実行できる。
【００３４】
図３は、図２の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示している。この遷移は、ステップ３０からステップ３２への弱アボート遷移である。さらに、この遷移が即時アクチベートを有することは、この遷移についての条件Ｔの前の＃記号によって表される。このフラグのテキスト表現では、この遷移を解釈するためのグラフィック情報とテキスト情報を組み合わせる必要がある。これに対して、図２の実施例においては、この遷移のすべての属性がグラフィック表示される。テキスト情報は、この条件についてだけ使用される。
【００３５】
図４は、Ｉｍｍｅｄｉａｔｅ  Ｕｒｇｅｎｔ  Ｎｏｗ遷移を示している。この実施例においては、アクションＢは、パルス修飾子を有するステップ２０に関連している。所与の周期において、ステップ２０は、最初にアクティブであると想定している。次いで、アクションＢが実行される前に、条件Ｔがテストされる。条件Ｔが真である場合には、このプロセスは、この遷移を通過させ、アクションＢは実行されないことになる。すなわち、ステップ２２はアクティブになり、アクションＡが実行されることになる。したがって、アクションＢは、条件Ｔが真でないとき、またその場合だけに実行される。
【００３６】
さらに、図４の実施例においては、アクションＡは、記憶されない（non-stored）修飾子Ｎに関連付けられる。この修飾子は、ステップ２２がアクティブであるときに、アクションＡがどの周期でも実施されることを意味している。したがって、ステップ２２がアクティブにとどまる場合、アクションＡは、引き続き実施されることになる。
【００３７】
図５は、図４の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示している。この遷移は、ステップ３０からステップ３２への強アボート遷移である。アクションＢは、ステップ３４からステップ３０への遷移に関連している。図５は、このＳｙｎｃＣｈａｒｔ言語における表現が、本発明の遷移を使用した表現よりも複雑でありコンパクトではないことを示す第１の実施例である。図３と同様に、この遷移が即時であることは、＃記号によってテキストで表されている。
【００３８】
図６は、Ｉｍｍｅｄｉａｔｅ  Ｌａｚｙ  Ｎｅｘｔ遷移を示している。前述のように、この遷移は、このアクトフラグについて「Ｎｅｘｔ」値を有するので、ステップ２２は、この遷移が点火された後の１周期しかアクティブにならないことになる。したがって、ステップ２０は１周期においてアクティブであり、条件Ｔは真であると想定する。この場合に、ステップ２０は、次の周期だけしかアクティブにならないことになり、アクションＡは、次の周期で実施されることになる。
【００３９】
図６の遷移は、この言語インターフェースにおけるデフォルト遷移であることが好ましい。これによって、ステップ２０と２２は、同じ瞬間には決してアクティブにならないようになる。シーケンス中で使用される場合に、この遷移は、先行するステップ２０が、シーケンス中で使用される場合に消滅させられる前に少なくとも１周期はアクティブであったことがあり、この以前のステップが消滅させられた後にこの遷移に続くステップ２２がアクティブになるようにする。これはすべて、このＩｍｍｅｄｉａｔｅ  Ｌａｚｙ  Ｎｅｘｔ遷移の近くにあるこれら２つのステップが決して同一周期内でアクティブにならず、「ブランク」周期がこれらを分離することがないことを意味する。
【００４０】
図７は、図６の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示している。ステップ３０は、この場合にもステップ２０に対応する。ステップ３０からステップ３２への遷移は、条件＃Ｔを有する。アクションＡは、この遷移には関連付けられず、それによって図６の遅延フラグの「Ｎｅｘｔ」値の効果が確実になる。したがって、ステップ３２からステップ３６への、条件はないがアクションＡを伴う別の遷移が提供される。ステップ３６は、図６のステップ２２に対応する。換言すれば、図７におけるステップ３２は、この遅延フラグの「Ｎｅｘｔ」値により図６における遅延確保を確実にする以外には使用されていない。この場合にも、図７の表現は、より複雑であり、コンパクトではなくなっている。
【００４１】
図８は、Ｉｍｍｅｄｉａｔｅ  Ｕｒｇｅｎｔ  Ｎｅｘｔ遷移を示している。この強制排除フラグの「Ｕｒｇｅｎｔ」値の効果は、図４を参照して以上で説明した効果と同様である。しかし、図４に比べて、図８の遷移では、たとえステップ２０に関連するアクションがアボートされても、この遷移がアクチベートまたは点火された後の次の周期以前にはステップ２２に関連するアクションＡが開始されないようになる。
【００４２】
図９は、図８の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示している。図７と同様に、ステップ３０は、この場合にもステップ２０に対応している。ステップ３０からステップ３２への遷移は、強アボートを伴う条件＃Ｔを有する。アクションＡは、この遷移に関連付けられず、それによって図８の遅延フラグの「Ｎｅｘｔ」値の効果が確実になる。したがって、ステップ３２からステップ３６への、条件はないがアクションＡを伴う別の遷移が提供される。
【００４３】
図１０、１２、１４および１６は、そのアクトフラグの値が「Ｉｍｍｅｄｉａｔｅ」の代わりに「Ｄｅｌａｙｅｄ」である、それぞれ図２、４、６および８の遷移に対応する遷移を示している。図１１、１３、１５および１７は、ＳｙｎｃＣｈａｒｔにおけるこれらの対応する遷移を示している。図１０および１１だけが詳細に説明される図である。図１４および１５、ならびに図１６および１７が、この場合にも本発明の言語では、このプログラムのさらにコンパクトでそれほど複雑でないグラフィック表現が実現されることを明らかに示すことにやはり留意されたい。
【００４４】
図１０は、Ｄｅｌａｙｅｄ  Ｌａｚｙ  Ｎｏｗ遷移を示している。このアクトフラグのＤｅｌａｙｅｄ値は、図１０においてステップ２０を遷移２４に結合する線上での中断によって表現される。前述のように、このアクトフラグの値がＤｅｌａｙｅｄであるとき、このプログラムは、この遷移に先立つステップ上で少なくとも１周期を費やす。換言すれば、ステップ２０が、所与の周期においてアクティブになることを想定している。このアクトフラグがＤｅｌａｙｅｄであることによって、たとえこの遷移についての条件Ｔが所与の周期において真であるとしても、ステップ２０は、確実に少なくとも１周期の間アクティブにとどまるようになる。
【００４５】
図１１は、この対応するＳｙｎｃＣｈａｒｔ言語遷移を示している。この遷移は、図３の遷移と同様に弱アボート遷移である。しかし、この条件／アクションは、＃記号なしにＴ／Ａと書き込まれる。これは、このシステムがステップ３０において少なくとも１周期を費やすことになることを示している。
【００４６】
図１８は、本発明による言語の並列ブランチの一実施例を示している。ある遷移から開始する並列ブランチを書き込むことによって、いくつかのプロセスを並列に開始することができる。これらの並列ブランチはすべて、同一条件の下にトリガされ、このことは、その先行する遷移がクリアされるとすぐにこれらの初期ステップが一緒に（すなわち、同一周期で）アクチベートされることを意味する。図１８は、（たまたまＩｍｍｅｄｉａｔｅ  Ｌａｚｙ  Ｎｅｘｔ遷移である）ステップ４０および遷移４２を示している。遷移４２には一連の並列ブランチ４４、４６が続いている。図１８において、ブランチ４４は、２つのステップ４８、５０と、関連するアクションをもたない最終ステップ５２とを有する。ステップ５２はブランチ４４の終了を表している。ブランチ４６は、ステップ５４と最終ステップ５６の間に１つの遷移を有する。並列ブランチの最後のステップからの遷移５８にはステップ６０が続く。別の属性が、並列ブランチからのかかる遷移については存在する。通常の条件下では、この並列ブランチのうちのブランチ中の遷移に先立つステップがアクティブになるときに、この遷移がアクチベートされる。しかし、この遷移が結合フラグを有する場合、この遷移は評価され、すべての並列ブランチがその遷移に先立つ最終ステップ（図１８の実施例においては、ステップ５２および５６）に到達しているときしか、この遷移に続くステップはアクチベートされない。この結合フラグは、この遷移上のどのようなプリエンプション（pre-emption）も除外する。この結合フラグはまた、どのようなアクトフラグも除外する。しかし、結合遷移は遅延属性（ＮｅｘｔまたはＮｏｗ）を有することができる。
【００４７】
図１８の実施例において、遷移５８は、図１８において遷移５８に向かう矢印によって表される結合フラグを有する。遷移５８はまた、Ｎｅｘｔ遅延を有する。この結合属性は、両方の並列ブランチにおけるステップ５２および５６がアクティブであるときしか、遷移５８はアクチベートすることができないことを意味している。
【００４８】
図１９は、図１８の実施例のＳｙｎｃＣｈａｒｔ言語等価表現を示している。この結合属性は、三角形６２によって表される。この場合にも、図１９と図１８の比較から、図１９の表現は、より複雑であり、この遷移に条件を付けるためのテキストエレメントを使用することが分かる。
【００４９】
並列ブランチの論理的形式は、単一ブランチを用いる場合でさえ使用できることに留意されたい。これを、図２０に表現している。このケースでは、並列ボックス６４、６６中にいくつかのステップを伴う１つの単一ブランチ７０が存在する。この並列ボックスに続く遷移における強制排除フラグ６８は、その諸ステップ中のどのステップにおいてもこの単一ブランチ７０を中断することを可能にする。単一ブランチを有するかかるケースにおいては、結合遷移は役に立たない。
【００５０】
本発明の言語は、コンピュータ上で有限状態マシンをプログラムするために使用できる。このコンピュータには、プログラムを走らせ、または実行するための論理ユニット、実行すべきプログラムを記憶するメモリ、およびディスプレイを含めて通常タイプのＩ／Ｏデバイスが装備されている。プログラムは、メモリに記憶され、この論理ユニット中で実行される。このプログラムは、前述の言語による有限状態マシンの挙動を記述するようになっているルーチンを有する。さらに、このプログラムは、この言語によるこの有限状態マシンの挙動の記述を表示するようになっているグラフィックユーザインターフェースを有している。したがって、このプログラムが実行されるとき、ユーザは、このプログラムにこの有限状態マシンの記述を入力することができる。この記述は、このグラフィックインターフェースを使用してこのプログラムによって表示される。これによって、ユーザは、この言語のグラフィック表現の形で、この有限状態マシンの記述を閲覧できるようになる。この言語のグラフィック表現では、前述の利点がもたらされる。
【００５１】
さらに、このプログラムには、この形式言語の規則を検査し、この記述がこの規則に準拠するようにするコンパイラを提供できる。このコンパイラは、このマシンの動作を制御するための有限状態マシンにロードするようになっている実行可能コードを出力する。この言語は形式言語であるので、この有限状態マシンの動作は、このプログラムによって適切に記述される。
【００５２】
このプログラムは、ＤＡＳＳＡＵＬＴ  ＳＹＳＴＥＭＳ（登録商標）社による商標ＣＡＴＩＡの下に販売されるシステムなどのＣＡＤ（computer-aided design；コンピュータ支援設計）システム中に含めることができる。かかる設計システムによって、ユーザは、製造セルを設計することができるようになる。このＣＡＤシステム中にこのプログラムが存在するおかげで、ユーザは、製造セルの動作を、すなわちこの製造セル中に含まれる様々な有限状態マシンの動作を記述することもできる。
【００５３】
本発明は、図面を参照して説明しているこの好ましい実施形態だけに限定されるものではない。特に、この遷移属性の命名法は、単に便宜上、示されているにすぎない。この遷移の属性がグラフィック表示される場合に、遷移属性を表現するために使用されるグラフィック記号は、変更することができる。
【００５４】
本発明の実施形態の説明において、単語「言語（language）」は、抽象的な概念について言及しているものではない。決定論的有限状態マシンをプログラムするための言語は、単に一連の記号ではなく、このマシンの様々な可能なステップを表現し、したがって、技術的なものである。実際に、有限状態マシンは、当技術の様々な分野においてプロセスを自動化し制御するために使用される。さらに、この言語は、このマシンの動作を考慮に入れながら開発されるので、かかる言語の用意には、技術的な考察が含まれる。最後に、グラフィック形式における遷移の属性を提供することにより、このコンパイラは、グラフィック情報だけに基づいて少なくとも一部の規則に準拠することを検査できるようになる。
【図面の簡単な説明】
【００５５】
【図１】従来技術のＳｙｎｃＣｈａｒｔ言語におけるプログラムの一実施例を示す図である。
【図２】本発明による言語における遷移の一実施例を示す図である。
【図３】図２の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図４】本発明による言語における遷移の他の一実施例を示す図である。
【図５】図４の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図６】本発明による言語における遷移の他の一実施例を示す図である。
【図７】図６の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図８】本発明による言語における遷移の他の一実施例を示す図である。
【図９】図８の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図１０】本発明による言語における遷移の他の一実施例を示す図である。
【図１１】図１０の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図１２】本発明による言語における遷移の他の一実施例を示す図である。
【図１３】図１２の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図１４】本発明による言語における遷移の他の一実施例を示す図である。
【図１５】図１４の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図１６】本発明による言語における遷移の他の一実施例を示す図である。
【図１７】図１６の遷移のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図１８】本発明による言語における並列ブランチの一実施例を示す図である。
【図１９】図１８の実施例のＳｙｎｃＣｈａｒｔ言語等価表現を示す図である。
【図２０】本発明による言語における並列ブランチの別の実施例を示す図である。
【符号の説明】
【００５６】
２０，２２，３０〜３６，４０，４８，５０〜５６，６０  ステップ
２４，４２，５８  遷移
２６，Ａ  アクション
４４，４６，７０  ブランチ
６２  三角形
６４，６６  ボックス
６８  強制排除フラグ
【図１】
2005310144.tif 000003
【図２】
2005310144.tif 000004
【図３】
2005310144.tif 000005
【図４】
2005310144.tif 000006
【図５】
2005310144.tif 000007
【図６】
2005310144.tif 000008
【図７】
2005310144.tif 000009
【図８】
2005310144.tif 000010
【図９】
2005310144.tif 000011
【図１０】
2005310144.tif 000012
【図１１】
2005310144.tif 000013
【図１２】
2005310144.tif 000014
【図１３】
2005310144.tif 000015
【図１４】
2005310144.tif 000016
【図１５】
2005310144.tif 000017
【図１６】
2005310144.tif 000018
【図１７】
2005310144.tif 000019
【図１８】
2005310144.tif 000020
【図１９】
2005310144.tif 000021
【図２０】
2005310144.tif 000022