JP2005310144A - 決定論的有限状態マシンをプログラムするための同期式形式言語 - Google Patents
決定論的有限状態マシンをプログラムするための同期式形式言語 Download PDFInfo
- Publication number
- JP2005310144A JP2005310144A JP2005119442A JP2005119442A JP2005310144A JP 2005310144 A JP2005310144 A JP 2005310144A JP 2005119442 A JP2005119442 A JP 2005119442A JP 2005119442 A JP2005119442 A JP 2005119442A JP 2005310144 A JP2005310144 A JP 2005310144A
- Authority
- JP
- Japan
- Prior art keywords
- transition
- flag
- language
- value
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0968—Systems involving transmission of navigation instructions to the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23286—Graphical representation of finite machine states to help operator
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
Abstract
【課題】 決定論的有限状態マシンをプログラムするための同期式形式言語を提供する。
【解決手段】 本言語はグラフィックインターフェースを含み、有限状態マシンの挙動がステップおよび遷移のグラフで表現される。アクションはステップに関連する。2つのステップ20,22間の遷移24は、この遷移に関連する条件Tが評価される周期を制御する休止フラグと、この遷移に先立つステップに関連するアクションが実行される前または後に、この遷移に関連する条件が評価される際に従う強制排除フラグとを含む。本発明によって、ユーザは、どのようなテキストを使用する必要もなしに、すべてのタイプの遷移の属性のグラフィック表現が可能になる。この表現は、簡潔でコンパクトである。
【選択図】 図2
【解決手段】 本言語はグラフィックインターフェースを含み、有限状態マシンの挙動がステップおよび遷移のグラフで表現される。アクションはステップに関連する。2つのステップ20,22間の遷移24は、この遷移に関連する条件Tが評価される周期を制御する休止フラグと、この遷移に先立つステップに関連するアクションが実行される前または後に、この遷移に関連する条件が評価される際に従う強制排除フラグとを含む。本発明によって、ユーザは、どのようなテキストを使用する必要もなしに、すべてのタイプの遷移の属性のグラフィック表現が可能になる。この表現は、簡潔でコンパクトである。
【選択図】 図2
Description
本発明はコンピュータプログラムおよびシステムの分野に関し、より詳細には、リアルタイムシステムのプログラミングに関する。
有限状態マシン(Finite State Machine)は、多くのリアルタイムシステムプログラミングのプログラミングのために必要とされる。かかる決定論的(deterministic)有限状態マシンの実施例は、PLC(programmable logic controller;プログラマブルロジックコントローラ)を含んでおり、これらのPLCは、産業用システムを自動化するために使用される。より一般的には、有限状態マシンは、外部環境によって与えられる入力に対して反応するマシンである。かかる反応性マシンの挙動は周期的であり、各周期は、一般に以下の4ステップに分解することができる。
−非アクティブステップまたは待ち時間ステップ
−入力を読み取るステップ
−アクティブステップまたは計算するステップ
−出力を書き込むステップ
これらのシステムにおいては通常、計算中は入力が読み取られない。このシステムは、したがってあるステップから別のステップへの遷移(transition)がその入力によってトリガされ、その安定したステップが待ち時間中のマシンのステップである状態マシンとして表すことができる。製造業においては、これらの状態マシンは、その時間のほとんどにおいて有限数のステップを有する。これらのマシンは、決定論的であると想定されており、すなわちあるステップを考えると、同一入力が常に同一出力を生成する。
−非アクティブステップまたは待ち時間ステップ
−入力を読み取るステップ
−アクティブステップまたは計算するステップ
−出力を書き込むステップ
これらのシステムにおいては通常、計算中は入力が読み取られない。このシステムは、したがってあるステップから別のステップへの遷移(transition)がその入力によってトリガされ、その安定したステップが待ち時間中のマシンのステップである状態マシンとして表すことができる。製造業においては、これらの状態マシンは、その時間のほとんどにおいて有限数のステップを有する。これらのマシンは、決定論的であると想定されており、すなわちあるステップを考えると、同一入力が常に同一出力を生成する。
IEC61131−3基準(Norm)は、オートメーション用の言語を定義している。すなわち、この基準において定義される言語は、グラフィックインターフェースを伴う言語を含んでおり、これらには、LADDER、FBD(Function Block Diagram language;ファンクションブロックダイアグラム言語)、SFC(Sequential Function Chart language;シーケンシャルファンクションチャート言語)がある。SFC記述は、3つの基本的なコンポーネント、すなわちステップ、遷移、およびアクション(action)に基づいている。ステップは、アクティブまたは非アクティブとすることが可能であり、この1組のアクティブステップが、これら全体のシステムのステップを記述する。各周期ごとにこの1組のアクティブステップがスキャンされ、これらのステップに関連するアクションが実行され、アクティブステップに続く遷移条件が評価され、可能にされたこれらの遷移に続くステップが、次の周期のためにアクティブにセットされる。遷移が可能にされると、以前のステップは非アクティブになる。
これらのグラフィックインターフェースは、オートメーションの専門家にはよく知られている。しかし、これらの言語は形式言語ではない。したがって、これらの主要な欠点の1つは、これらの言語の1つで書かれたプログラムの実行が、マシンごとに異なり得ることである。これによって、これらの言語の1つで書かれたプログラムは、所与の特定のマシンで実行できるようになるまでに、シミュレートまたはテストすることが必須になる。
さらに、いくつかのいわゆる「同期式言語」が、マーケットにおいて提案されている。ある言語は、この言語で書かれたプログラムが厳密な共時性の仮説(synchrony hypothesis)、すなわち各反応がアトミック(atomic)であるという仮説に従う場合に、同期式である。より詳細には、このシステムは、まるでその反応時間がゼロであるかのような挙動を見せる。すなわち、これらの出力は、論理的にこれらの入力と同じ瞬間に放出される。換言すれば、同期式システムは、その出力が入力としてフィードバックされるときに安定している。電気的な観点からは、同期式システムは、安定な回路である。
言語がアルファベットおよび構成規則によって完全に定義されると、言語は形式的となる。形式言語のアルファベットは、この言語が構築される1組の記号である。この形成規則は、ある表現が対象となる言語に属することを仮定し、この言語に属する他の適格表現からどのようにして適格表現を構築するかを規定する。形式言語においては、ある表現(すなわち、一連のアルファベットによる記号)が適格であるかどうか、すなわちこれらの規則に従うかどうかを検査することが可能である。SFCは、SFCグラフが適格であるかどうかを曖昧性なしに定義することができない点で言語として形式的ではなく、よって、所与の有限状態マシンに適用される際に、ある種の効果を有することになってしまう。
同期式形式言語は、市場に提供されている。これらは、フランス、GieresのVERIMAG(登録商標)が提供するLUSTRE言語、フランスの経済産業省国家産業局コンピュータ科学制御研究所(INRIA)および鉱山学校(Ecole des Mines)が作成したESTEREL言語を含んでいる。フランスのESTEREL TECHNOLOGIES(登録商標)によるESTEREL STUDIO(登録商標)という引用の下に販売される製品は、テキストによる同期式形式言語である。これは、SyncChartと呼ばれるグラフィックインターフェースと共に提供される。しかし、このグラフィックインターフェースは、オートメーションの専門家にはよく知られておらず、このオートメーション分野におけるESTEREL STUDIO(登録商標)の大量使用に対する障害になっている。
このSyncChartグラフィックインターフェースは、図1に示すようなステップ、遷移、アクションを示す。図1は、SyncChartプログラムの実施例を示すものである。これらのステップには、2、4および6の参照番号がつけられ、参照番号2は、このシステムの初期ステップを示す。ステップ4とステップ6の間には、遷移/アクション8が存在する。すなわち、これらのステップの間の遷移があるクロックパルス、または周期で「真」値をとるときに、このプログラムは、あるステップから次のステップへ進む。この時点で、次のステップに進む前にこのアクションは実行される。図1の実施例において、ステップ4とステップ6の間でこの遷移は、ブーリアン変数END_ROBOT_LOADであるが、一方、このアクションは、START_MACHINEと呼ばれる。ステップ4がアクティブであると想定すると、END_ROBOT_LOADが「真」になるときに、このプログラムはステップ4からステップ6へ進み、ステップ6へ進む前にアクションSTART_MACHINEを実行する。
図1の参照番号10は、テキストコードを実行することができるステップであるテキストブロックである。ステップ6とステップ10の間で遷移/アクション12が提供され、これは、遷移END_MACHINEに帰着する。ステップ6がアクティブであると想定すると、ブーリアン変数END_MACHINEのとき(すなわちアクションが実行されないとき)に、プログラムはステップ10へ進む。
図1に示すように、2つのステップ間の遷移/アクションには条件を付けることができる。これは、図1に示され、ドット14が遷移/アクション8に提供されている。すなわち、このドットは、遷移/アクション8が強アボート(strong abort)を有することを表している。換言すれば、遷移END_ROBOT_LOADが真になるとすぐに、たとえ以前のアクションが完全に終了していなくても、プログラムはステップ6へ進む。反対に、遷移/アクション12にはドットが付けられておらず、これは、弱アボート(weak abort)を例示するものである。すなわち、ブーリアン変数END_MACHINEが真であり、また以前のアクションが現在の周期について完全に終了したときだけ、プログラムはステップ6からステップ10へ進む。
図1に例示されたESTEREL STUDIO(登録商標)のグラフィックインターフェースでは、決定論的有限状態マシンをプログラムすることが困難である。よって、オートメーション専門家によく知られており、拡張プログラミング機能を実現するはずの、グラフィックインターフェースを有する同期式形式言語の必要性が依然として存在する。
本発明によれば、物理プロセスを制御する決定論的有限状態マシンをプログラムするための同期式形式言語が提供される。この言語はグラフィック表現を含み、ここで、有限状態マシンの挙動がステップおよび遷移のグラフで表現される。アクションはステップに関連付けられ、2つのステップ間の遷移は、
−遷移に関連する条件が評価される周期を制御する少なくとも1つの休止フラグ(pause flag)、および、
−遷移に先立つステップに関連するアクションが実行される前または後に、遷移に関連する条件が評価される際に従う強制排除フラグ(pre-emption flag)を含んでいる。
これら両フラグの値は、このグラフィック表現においてグラフィックに表現される。
−遷移に関連する条件が評価される周期を制御する少なくとも1つの休止フラグ(pause flag)、および、
−遷移に先立つステップに関連するアクションが実行される前または後に、遷移に関連する条件が評価される際に従う強制排除フラグ(pre-emption flag)を含んでいる。
これら両フラグの値は、このグラフィック表現においてグラフィックに表現される。
休止フラグはアクトフラグ(activation flag)を含むことができ、この場合には、
−アクトフラグの一方の値については、遷移に続くステップは、遷移に関連する条件が真になるとすぐにアクチベートされ、かつ、
−アクトフラグの他方の値については、少なくとも1つの周期が、遷移に先立つステップ中で実施される。
アクトフラグの値は、グラフィック表現においてグラフィックに表現される。
−アクトフラグの一方の値については、遷移に続くステップは、遷移に関連する条件が真になるとすぐにアクチベートされ、かつ、
−アクトフラグの他方の値については、少なくとも1つの周期が、遷移に先立つステップ中で実施される。
アクトフラグの値は、グラフィック表現においてグラフィックに表現される。
アクトフラグの一方の値は、遷移に先立つステップから遷移への連続した線(continuous line)で表現することができる。アクトフラグの他方の値は、遷移に先立つステップから遷移への中断した線で表現することができる。
休止フラグは、遅延フラグ(delay flag)を含むことができ、この場合には、
−遅延フラグの一方の値については、遷移に続くステップは、遷移がアクチベートされる周期と同一周期中にアクチベートされ、かつ、
−遅延フラグの他方の値については、遷移に続くステップは、遷移がアクチベートされる周期に続く周期中にアクチベートされる。
遅延フラグの値は、グラフィック表現においてグラフィックに表現される。
−遅延フラグの一方の値については、遷移に続くステップは、遷移がアクチベートされる周期と同一周期中にアクチベートされ、かつ、
−遅延フラグの他方の値については、遷移に続くステップは、遷移がアクチベートされる周期に続く周期中にアクチベートされる。
遅延フラグの値は、グラフィック表現においてグラフィックに表現される。
遅延フラグの一方の値は、遷移から遷移に続くステップへの連続した線で表現することができるが、遅延フラグの他方の値は、遷移から遷移に続くステップへの中断した線で表現することができる。
強制排除フラグの値は、遷移の形態で表されるようにすることが可能である。
さらに、1組の並列ブランチに続く遷移は、さらに結合フラグ(join flag)を含むことができる。この場合には、アクティブな結合フラグを伴う遷移は、これらの並列ブランチがすべて、遷移に先立つステップに到達しているときだけに、評価される。
本発明ではさらに、物理プロセスを制御する決定論的有限状態マシンをプログラムする、この言語を使用するための方法が提供される。
本発明ではまた、
−言語のグラフィック表現中で有限状態マシンの挙動を記述するようになっているルーチンと、
−言語中で、有限状態マシンの挙動の記述を表示するようになっているグラフィックユーザインターフェースと
を有するプログラムが提供される。
本発明ではまた、
−言語のグラフィック表現中で有限状態マシンの挙動を記述するようになっているルーチンと、
−言語中で、有限状態マシンの挙動の記述を表示するようになっているグラフィックユーザインターフェースと
を有するプログラムが提供される。
最後に、本発明では、−言語を記憶するメモリと、
−言語を実行するようになっている論理ユニットと、
−言語のグラフィックインターフェースをユーザに対して表示するためのディスプレイと
を有し、決定論的有限状態マシンをプログラムするためのコンピュータが提供される。
−言語を実行するようになっている論理ユニットと、
−言語のグラフィックインターフェースをユーザに対して表示するためのディスプレイと
を有し、決定論的有限状態マシンをプログラムするためのコンピュータが提供される。
非限定的な実施例として添付図面を参照して、本発明を実施する方法および言語について、以下に説明することにする。
本発明は、決定論的有限状態マシンをプログラムするための同期式形式言語を提供するものである。この言語はグラフィック表現を含んでおり、ここで有限状態マシンの挙動はステップおよび遷移のグラフで表現される。アクションはステップに関連付けられる。2つのステップの間の遷移は、
−この遷移が評価される周期を制御する少なくとも1つの休止フラグと、
−この遷移に関連するアクションが実行される前または後に、この遷移を評価するための強制排除フラグ(pre-emption flag)を含んでいる。
このフラグは、グラフィックに表現され、テキストでは示されない。これによって、決定論的有限状態マシンのその様々なステップの間での様々な可能性のある遷移をコンパクトで簡単な方法でグラフィックに表現できる。さらに、これによって、この遷移またはアクションについての条件に関するテキスト情報を考慮する必要なしに、コンパイラがこれらの遷移およびその属性を解析することが可能になる。例えば、瞬間的なループが存在するかどうかを評価するために、このコンパイラは、どのようなテキスト情報も考慮する必要なしにグラフ情報だけを用いることができる。
−この遷移が評価される周期を制御する少なくとも1つの休止フラグと、
−この遷移に関連するアクションが実行される前または後に、この遷移を評価するための強制排除フラグ(pre-emption flag)を含んでいる。
このフラグは、グラフィックに表現され、テキストでは示されない。これによって、決定論的有限状態マシンのその様々なステップの間での様々な可能性のある遷移をコンパクトで簡単な方法でグラフィックに表現できる。さらに、これによって、この遷移またはアクションについての条件に関するテキスト情報を考慮する必要なしに、コンパイラがこれらの遷移およびその属性を解析することが可能になる。例えば、瞬間的なループが存在するかどうかを評価するために、このコンパイラは、どのようなテキスト情報も考慮する必要なしにグラフ情報だけを用いることができる。
この休止フラグが瞬間的なループを回避することは注目に値する。この強制排除フラグは、ステップに関連するアクションを停止し、または停止しないようにすることを可能にする。
図2〜17は、本発明による言語における遷移の実施例を提供している。この言語は、アクトフラグ(activation flag)および遅延フラグからなる休止フラグを使用する。このアクトフラグは、
−この遷移条件が真になるとすぐにこの遷移に続くステップがアクチベートされるかどうか、または、
−この遷移に続くステップをアクチベートする前にこの遷移に先立つステップにおいて、少なくとも1つの周期が実施される必要があるかどうかを表す。
換言すれば、このアクトフラグは、このプログラムがこの遷移に先立つステップを瞬間的に通過し得るかどうかを表す。
−この遷移条件が真になるとすぐにこの遷移に続くステップがアクチベートされるかどうか、または、
−この遷移に続くステップをアクチベートする前にこの遷移に先立つステップにおいて、少なくとも1つの周期が実施される必要があるかどうかを表す。
換言すれば、このアクトフラグは、このプログラムがこの遷移に先立つステップを瞬間的に通過し得るかどうかを表す。
この遅延フラグは、この遷移に続くステップが、
−この遷移がアクチベートされる周期と同一周期中に、または、
−この遷移がアクチベートされる周期に続く周期中に
アクチベートされるかどうかを表している。
−この遷移がアクチベートされる周期と同一周期中に、または、
−この遷移がアクチベートされる周期に続く周期中に
アクチベートされるかどうかを表している。
このアクトフラグおよび遅延フラグのそれぞれは、2つの可能な値を有する。この強制排除フラグもまた2つの可能な値を有するので、この例示された言語には、16個の異なる遷移が存在する。
図2は、本発明による言語における遷移の第1の実施例である。ステップ20および22は、正方形のボックスによって表される。ステップ20と22の間の遷移は、これら2つのステップ20と22の間に配置された水平線24によって表される。図4を参照して以下で説明するように、この遷移はまた、別の記号(この実施例では「Z」記号)によって表すこともできる。ゼロ以上のアクション26を各ステップに関連付けることができる。図2の実施例においては、アクションは、ステップ22だけに関連付けられている。この表現は、SFC中で使用される表現に類似しており、これによって、オートメーションの技術分野の当業者にとって簡単に理解可能になる。遷移24は、図2において「T」とマークされた条件に関連付けられる。この遷移は、条件Tが真になるときに「点火され(fired)」または「アクチベートされ(activated)」、これは、次いでこのシステムが(以下で説明するようにこのフラグの値に従って)ステップ20からステップ22へ進むことができることを意味する。
この遷移は、アクトフラグを含んでいる。このアクトフラグは、2つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Immediate」および「Delayed」と呼ばれる。アクトフラグの値が「Immediate」であるとき、この遷移に続くステップは、この遷移が真になるとすぐにアクチベートされ、これは図2、4、6および8に表現されている。この図のグラフィック表現において、このアクトフラグの「Immediate」値は、この先行するステップからこの遷移までの線が連続しているという形で表現される。他方、このアクトフラグの値が、「Delayed」であるときには、この遷移に続くステップをアクチベートする前に、少なくとも1つの周期がこの遷移に先立つステップにおいて実施される必要があり、これは、図10、12、14および16に表現されている。これらの図のグラフィック表現において、このアクトフラグのこの「Delayed」値は、この先行するステップからこの遷移までの線がこの遷移の上側で不連続、すなわち中断されるという形で表現される。
この遷移は、遅延フラグを含んでいる。この遅延フラグは、2つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Now」および「Next」と呼ばれる。この遅延フラグの値が「Now」であるとき、この遷移に続くステップに関連するアクションは、この遷移が評価され点火される周期と同一周期において、直ちにアクチベートされる。これは、図2、4、10および12に表現されている。これらの図のグラフィック表現において、この遅延フラグのこの「Now」値は、この遷移からこの遷移の次のステップまでの線が連続しているという形で表現される。他方、この遅延フラグの値が「Next」であるときには、この遷移に続くステップに関連するアクションは、この遷移がアクチベートまたは点火される周期の1周期後にアクチベートされる。これは、図6、8、14および16に表現されている。これらの図のグラフィック表現においては、この遅延フラグの「Next」値は、この遷移から次のステップまでの線がこの遷移の下側で不連続、すなわち中断されるという形で表現される。
この遷移は強制排除フラグをさらに含んでいる。この強制排除フラグは、2つの可能な値を有しており、これらの値は、単に便宜上にすぎないが、「Urgent」および「Lazy」と呼ばれる。この強制排除フラグの値が「Lazy」であるとき、この先行するステップのアクションが実行された後にこの遷移は評価される。これは、図2、6、10および14に表現されている。これらの図のグラフィック表現においては、この強制排除フラグの「Lazy」値は、この遷移が1本の水平線であるという形で表現される。この強制排除フラグの値が「Urgent」であるときには、この先行するステップのアクションが実行される前に、この遷移は評価される。この遷移が真であることが判明した場合、このアクションは実際には決して実行されないことになる。これは、図4、8、12および16に表現されている。これらの図のグラフィック表現においては、この強制排除フラグの「Urgent」値は、この遷移が「Z」形をしているという形で表現される。
図2、4、6、8、10、12、14および16の記述についての残りの部分では、遷移についての様々なフラグの値は、以下の順序、すなわちアクトフラグ、強制排除フラグ、遅延フラグの順序で示される。
図2は、Immediate Lazy Now遷移を示している。ステップ20がアクティブであり、条件Tが周期中に真になるものと想定する。この場合には、ステップ22は、アクティブになり、アクションAが実行される。図2において、アクションAがパルス修飾子Pに関連することに留意されたい。このパルス修飾子は、ステップ22がアクティブになるとき、アクションAは、まさに第1の周期で実施され、ステップ22がアクティブのままである場合にも次の周期には実施されないことを意味する。
この遷移は、Immediate値をもつアクトフラグを有するので、このプロセスは、ステップ20において周期を費やす必要はない。したがって、ステップ20がアクティブになると想定すると、遷移24は、この同一周期において評価される。したがって、図2の実施例において、ステップ20および22は、同一周期中に実行できる。
図3は、図2の遷移のSyncChart言語等価表現を示している。この遷移は、ステップ30からステップ32への弱アボート遷移である。さらに、この遷移が即時アクチベートを有することは、この遷移についての条件Tの前の#記号によって表される。このフラグのテキスト表現では、この遷移を解釈するためのグラフィック情報とテキスト情報を組み合わせる必要がある。これに対して、図2の実施例においては、この遷移のすべての属性がグラフィック表示される。テキスト情報は、この条件についてだけ使用される。
図4は、Immediate Urgent Now遷移を示している。この実施例においては、アクションBは、パルス修飾子を有するステップ20に関連している。所与の周期において、ステップ20は、最初にアクティブであると想定している。次いで、アクションBが実行される前に、条件Tがテストされる。条件Tが真である場合には、このプロセスは、この遷移を通過させ、アクションBは実行されないことになる。すなわち、ステップ22はアクティブになり、アクションAが実行されることになる。したがって、アクションBは、条件Tが真でないとき、またその場合だけに実行される。
さらに、図4の実施例においては、アクションAは、記憶されない(non-stored)修飾子Nに関連付けられる。この修飾子は、ステップ22がアクティブであるときに、アクションAがどの周期でも実施されることを意味している。したがって、ステップ22がアクティブにとどまる場合、アクションAは、引き続き実施されることになる。
図5は、図4の遷移のSyncChart言語等価表現を示している。この遷移は、ステップ30からステップ32への強アボート遷移である。アクションBは、ステップ34からステップ30への遷移に関連している。図5は、このSyncChart言語における表現が、本発明の遷移を使用した表現よりも複雑でありコンパクトではないことを示す第1の実施例である。図3と同様に、この遷移が即時であることは、#記号によってテキストで表されている。
図6は、Immediate Lazy Next遷移を示している。前述のように、この遷移は、このアクトフラグについて「Next」値を有するので、ステップ22は、この遷移が点火された後の1周期しかアクティブにならないことになる。したがって、ステップ20は1周期においてアクティブであり、条件Tは真であると想定する。この場合に、ステップ20は、次の周期だけしかアクティブにならないことになり、アクションAは、次の周期で実施されることになる。
図6の遷移は、この言語インターフェースにおけるデフォルト遷移であることが好ましい。これによって、ステップ20と22は、同じ瞬間には決してアクティブにならないようになる。シーケンス中で使用される場合に、この遷移は、先行するステップ20が、シーケンス中で使用される場合に消滅させられる前に少なくとも1周期はアクティブであったことがあり、この以前のステップが消滅させられた後にこの遷移に続くステップ22がアクティブになるようにする。これはすべて、このImmediate Lazy Next遷移の近くにあるこれら2つのステップが決して同一周期内でアクティブにならず、「ブランク」周期がこれらを分離することがないことを意味する。
図7は、図6の遷移のSyncChart言語等価表現を示している。ステップ30は、この場合にもステップ20に対応する。ステップ30からステップ32への遷移は、条件#Tを有する。アクションAは、この遷移には関連付けられず、それによって図6の遅延フラグの「Next」値の効果が確実になる。したがって、ステップ32からステップ36への、条件はないがアクションAを伴う別の遷移が提供される。ステップ36は、図6のステップ22に対応する。換言すれば、図7におけるステップ32は、この遅延フラグの「Next」値により図6における遅延確保を確実にする以外には使用されていない。この場合にも、図7の表現は、より複雑であり、コンパクトではなくなっている。
図8は、Immediate Urgent Next遷移を示している。この強制排除フラグの「Urgent」値の効果は、図4を参照して以上で説明した効果と同様である。しかし、図4に比べて、図8の遷移では、たとえステップ20に関連するアクションがアボートされても、この遷移がアクチベートまたは点火された後の次の周期以前にはステップ22に関連するアクションAが開始されないようになる。
図9は、図8の遷移のSyncChart言語等価表現を示している。図7と同様に、ステップ30は、この場合にもステップ20に対応している。ステップ30からステップ32への遷移は、強アボートを伴う条件#Tを有する。アクションAは、この遷移に関連付けられず、それによって図8の遅延フラグの「Next」値の効果が確実になる。したがって、ステップ32からステップ36への、条件はないがアクションAを伴う別の遷移が提供される。
図10、12、14および16は、そのアクトフラグの値が「Immediate」の代わりに「Delayed」である、それぞれ図2、4、6および8の遷移に対応する遷移を示している。図11、13、15および17は、SyncChartにおけるこれらの対応する遷移を示している。図10および11だけが詳細に説明される図である。図14および15、ならびに図16および17が、この場合にも本発明の言語では、このプログラムのさらにコンパクトでそれほど複雑でないグラフィック表現が実現されることを明らかに示すことにやはり留意されたい。
図10は、Delayed Lazy Now遷移を示している。このアクトフラグのDelayed値は、図10においてステップ20を遷移24に結合する線上での中断によって表現される。前述のように、このアクトフラグの値がDelayedであるとき、このプログラムは、この遷移に先立つステップ上で少なくとも1周期を費やす。換言すれば、ステップ20が、所与の周期においてアクティブになることを想定している。このアクトフラグがDelayedであることによって、たとえこの遷移についての条件Tが所与の周期において真であるとしても、ステップ20は、確実に少なくとも1周期の間アクティブにとどまるようになる。
図11は、この対応するSyncChart言語遷移を示している。この遷移は、図3の遷移と同様に弱アボート遷移である。しかし、この条件/アクションは、#記号なしにT/Aと書き込まれる。これは、このシステムがステップ30において少なくとも1周期を費やすことになることを示している。
図18は、本発明による言語の並列ブランチの一実施例を示している。ある遷移から開始する並列ブランチを書き込むことによって、いくつかのプロセスを並列に開始することができる。これらの並列ブランチはすべて、同一条件の下にトリガされ、このことは、その先行する遷移がクリアされるとすぐにこれらの初期ステップが一緒に(すなわち、同一周期で)アクチベートされることを意味する。図18は、(たまたまImmediate Lazy Next遷移である)ステップ40および遷移42を示している。遷移42には一連の並列ブランチ44、46が続いている。図18において、ブランチ44は、2つのステップ48、50と、関連するアクションをもたない最終ステップ52とを有する。ステップ52はブランチ44の終了を表している。ブランチ46は、ステップ54と最終ステップ56の間に1つの遷移を有する。並列ブランチの最後のステップからの遷移58にはステップ60が続く。別の属性が、並列ブランチからのかかる遷移については存在する。通常の条件下では、この並列ブランチのうちのブランチ中の遷移に先立つステップがアクティブになるときに、この遷移がアクチベートされる。しかし、この遷移が結合フラグを有する場合、この遷移は評価され、すべての並列ブランチがその遷移に先立つ最終ステップ(図18の実施例においては、ステップ52および56)に到達しているときしか、この遷移に続くステップはアクチベートされない。この結合フラグは、この遷移上のどのようなプリエンプション(pre-emption)も除外する。この結合フラグはまた、どのようなアクトフラグも除外する。しかし、結合遷移は遅延属性(NextまたはNow)を有することができる。
図18の実施例において、遷移58は、図18において遷移58に向かう矢印によって表される結合フラグを有する。遷移58はまた、Next遅延を有する。この結合属性は、両方の並列ブランチにおけるステップ52および56がアクティブであるときしか、遷移58はアクチベートすることができないことを意味している。
図19は、図18の実施例のSyncChart言語等価表現を示している。この結合属性は、三角形62によって表される。この場合にも、図19と図18の比較から、図19の表現は、より複雑であり、この遷移に条件を付けるためのテキストエレメントを使用することが分かる。
並列ブランチの論理的形式は、単一ブランチを用いる場合でさえ使用できることに留意されたい。これを、図20に表現している。このケースでは、並列ボックス64、66中にいくつかのステップを伴う1つの単一ブランチ70が存在する。この並列ボックスに続く遷移における強制排除フラグ68は、その諸ステップ中のどのステップにおいてもこの単一ブランチ70を中断することを可能にする。単一ブランチを有するかかるケースにおいては、結合遷移は役に立たない。
本発明の言語は、コンピュータ上で有限状態マシンをプログラムするために使用できる。このコンピュータには、プログラムを走らせ、または実行するための論理ユニット、実行すべきプログラムを記憶するメモリ、およびディスプレイを含めて通常タイプのI/Oデバイスが装備されている。プログラムは、メモリに記憶され、この論理ユニット中で実行される。このプログラムは、前述の言語による有限状態マシンの挙動を記述するようになっているルーチンを有する。さらに、このプログラムは、この言語によるこの有限状態マシンの挙動の記述を表示するようになっているグラフィックユーザインターフェースを有している。したがって、このプログラムが実行されるとき、ユーザは、このプログラムにこの有限状態マシンの記述を入力することができる。この記述は、このグラフィックインターフェースを使用してこのプログラムによって表示される。これによって、ユーザは、この言語のグラフィック表現の形で、この有限状態マシンの記述を閲覧できるようになる。この言語のグラフィック表現では、前述の利点がもたらされる。
さらに、このプログラムには、この形式言語の規則を検査し、この記述がこの規則に準拠するようにするコンパイラを提供できる。このコンパイラは、このマシンの動作を制御するための有限状態マシンにロードするようになっている実行可能コードを出力する。この言語は形式言語であるので、この有限状態マシンの動作は、このプログラムによって適切に記述される。
このプログラムは、DASSAULT SYSTEMS(登録商標)社による商標CATIAの下に販売されるシステムなどのCAD(computer-aided design;コンピュータ支援設計)システム中に含めることができる。かかる設計システムによって、ユーザは、製造セルを設計することができるようになる。このCADシステム中にこのプログラムが存在するおかげで、ユーザは、製造セルの動作を、すなわちこの製造セル中に含まれる様々な有限状態マシンの動作を記述することもできる。
本発明は、図面を参照して説明しているこの好ましい実施形態だけに限定されるものではない。特に、この遷移属性の命名法は、単に便宜上、示されているにすぎない。この遷移の属性がグラフィック表示される場合に、遷移属性を表現するために使用されるグラフィック記号は、変更することができる。
本発明の実施形態の説明において、単語「言語(language)」は、抽象的な概念について言及しているものではない。決定論的有限状態マシンをプログラムするための言語は、単に一連の記号ではなく、このマシンの様々な可能なステップを表現し、したがって、技術的なものである。実際に、有限状態マシンは、当技術の様々な分野においてプロセスを自動化し制御するために使用される。さらに、この言語は、このマシンの動作を考慮に入れながら開発されるので、かかる言語の用意には、技術的な考察が含まれる。最後に、グラフィック形式における遷移の属性を提供することにより、このコンパイラは、グラフィック情報だけに基づいて少なくとも一部の規則に準拠することを検査できるようになる。
20,22,30〜36,40,48,50〜56,60 ステップ
24,42,58 遷移
26,A アクション
44,46,70 ブランチ
62 三角形
64,66 ボックス
68 強制排除フラグ
24,42,58 遷移
26,A アクション
44,46,70 ブランチ
62 三角形
64,66 ボックス
68 強制排除フラグ
Claims (12)
- 物理プロセスを制御する決定論的有限状態マシンをプログラムするための同期式形式言語であって、グラフィック表現を含むものにおいて、
有限状態マシンの挙動がステップ(20、22)および遷移(24)のグラフで表現され、
アクション(26)がステップに関連付けられ、および、
2つのステップの間の前記遷移(24)が、前記遷移に関連する条件が評価される周期を制御する少なくとも1つの休止フラグと、前記遷移に先立つ前記ステップに関連するアクションが実行される前または後に前記遷移に関連する前記条件が評価される際に従う強制排除フラグとを含んでおり、両フラグの値が前記グラフィック表現においてグラフィックに表現される
ことを特徴とする同期式形式言語。 - 前記休止フラグはアクトフラグを含み、
前記アクトフラグの一方の値について、前記遷移に関連する条件が真になるとすぐに前記遷移に続く前記ステップがアクチベートされ、および、前記アクトフラグの他方の値について、前記遷移に先立つ前記ステップで少なくとも1つの周期が実施され、並びに、
前記アクトフラグの各々の値が前記グラフィック表現においてグラフィックに表現される、
請求項1の同期式形式言語。 - 前記アクトフラグの前記一方の値は、前記遷移に先立つ前記ステップから前記遷移への連続した線で表現される、請求項2の同期式形式言語。
- 前記アクトフラグの前記他方の値は、前記遷移に先立つ前記ステップから前記遷移への中断した線で表現される、請求項2または3の同期式形式言語。
- 前記休止フラグは遅延フラグを含み、
前記遅延フラグの一方の値について、前記遷移がアクチベートされる周期と同一周期中に前記遷移に続く前記ステップがアクチベートされ、および、前記遅延フラグの他方の値について、前記遷移がアクチベートされる周期に続く周期中に前記遷移に続く前記ステップがアクチベートされ、並びに、
前記遅延フラグの各々の値が前記グラフィック表現においてグラフィックに表現される、
請求項1〜4のいずれかの同期式形式言語。 - 前記遅延フラグの前記一方の値は、前記遷移から前記遷移に続く前記ステップへの連続した線で表現される、請求項5の同期式形式言語。
- 前記遅延フラグの前記他方の値は、前記遷移から前記遷移に続く前記ステップへの中断した線で表現される、請求項5または6の同期式形式言語。
- 前記強制排除フラグの前記値が前記遷移の形態で表現される、請求項1〜7のいずれかの同期式形式言語。
- 1組の並列ブランチに続く遷移が結合フラグをさらに含み、アクティブな結合フラグを伴う遷移は、前記並列ブランチがすべて、前記遷移に先立つステップに到達しているときだけに評価される、請求項1〜8のいずれかの同期式形式言語。
- 物理プロセスを制御する決定論的有限状態マシンをプログラムするための方法であって、
請求項1から9のいずれか一項の同期式形式言語を使用することを特徴とする方法。 - 請求項1から9のいずれか一項の同期式形式言語で有限状態マシンの挙動を記述するように適合されたルーチンと、
該言語での有限状態マシンの挙動の記述を表示するように適合されたグラフィックユーザインターフェースと
を有することを特徴とするプログラム。 - 決定論的有限状態マシンをプログラムするためのコンピュータであって、
請求項1から9のいずれか一項の同期式形式言語を記憶するメモリと、
該言語を実行するように適合された論理ユニットと、
該言語のグラフィックインターフェースをユーザに表示するためのディスプレイと
を有することを特徴とするコンピュータ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04291023A EP1586965A1 (en) | 2004-04-16 | 2004-04-16 | A synchronous formal language for programming deterministic finite state machines |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005310144A true JP2005310144A (ja) | 2005-11-04 |
Family
ID=34931038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005119442A Withdrawn JP2005310144A (ja) | 2004-04-16 | 2005-04-18 | 決定論的有限状態マシンをプログラムするための同期式形式言語 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050235254A1 (ja) |
EP (1) | EP1586965A1 (ja) |
JP (1) | JP2005310144A (ja) |
KR (1) | KR20060045800A (ja) |
CA (1) | CA2504284A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309592A (zh) * | 2019-07-01 | 2019-10-08 | 成都奥卡思微电科技有限公司 | 属性综合中活性条件提取和可视化方法、系统、存储介质和终端 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2078994A1 (de) * | 2008-01-10 | 2009-07-15 | Siemens Aktiengesellschaft | Automatisierungsgerät und Verfahren zu dessen Betrieb |
DE102009054230A1 (de) * | 2009-11-23 | 2011-05-26 | Kuka Roboter Gmbh | Verfahren und Vorrichtung zum Steuern von Manipulatoren |
EP2820537A1 (en) | 2012-02-15 | 2015-01-07 | The Mathworks, Inc. | Generating a state diagram |
WO2013123376A1 (en) * | 2012-02-15 | 2013-08-22 | The Mathworks, Inc. | Unified state transition table describing a state machine model |
CN108647030B (zh) * | 2018-03-30 | 2022-03-11 | 北京计算机技术及应用研究所 | 基于闭包算法的同步语言航天c代码自动生成方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289502B1 (en) * | 1997-09-26 | 2001-09-11 | Massachusetts Institute Of Technology | Model-based software design and validation |
US6421808B1 (en) * | 1998-04-24 | 2002-07-16 | Cadance Design Systems, Inc. | Hardware design language for the design of integrated circuits |
-
2004
- 2004-04-16 EP EP04291023A patent/EP1586965A1/en not_active Ceased
-
2005
- 2005-04-14 US US11/105,904 patent/US20050235254A1/en not_active Abandoned
- 2005-04-15 CA CA002504284A patent/CA2504284A1/en not_active Abandoned
- 2005-04-16 KR KR1020050031735A patent/KR20060045800A/ko not_active Application Discontinuation
- 2005-04-18 JP JP2005119442A patent/JP2005310144A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309592A (zh) * | 2019-07-01 | 2019-10-08 | 成都奥卡思微电科技有限公司 | 属性综合中活性条件提取和可视化方法、系统、存储介质和终端 |
CN110309592B (zh) * | 2019-07-01 | 2023-04-07 | 成都奥卡思微电科技有限公司 | 属性综合中活性条件提取和可视化方法、系统、存储介质和终端 |
Also Published As
Publication number | Publication date |
---|---|
KR20060045800A (ko) | 2006-05-17 |
CA2504284A1 (en) | 2005-10-16 |
US20050235254A1 (en) | 2005-10-20 |
EP1586965A1 (en) | 2005-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005310144A (ja) | 決定論的有限状態マシンをプログラムするための同期式形式言語 | |
WO1998040817A1 (fr) | Methode et systeme de programmation visuelle | |
US9317397B2 (en) | Programmable logic controller (PLC) simulation system, PLC simulator, recording medium, and simulation method | |
Provost et al. | A formal semantics for Grafcet specifications | |
JP2007086921A (ja) | 機械装置制御プログラム実行システム | |
JP4834816B2 (ja) | シミュレーション装置 | |
US20200310377A1 (en) | Ladder Display Device | |
JP2009289156A (ja) | シミュレーション装置 | |
JP7037787B1 (ja) | シーケンサー | |
JP2016146148A (ja) | 設計支援装置、および設計支援方法 | |
JP2003288113A (ja) | 設備のシミュレーション方法および設備のシミュレーションプログラム | |
JP2001005517A (ja) | 制御プログラムのモニター方法および装置 | |
JP4747990B2 (ja) | プログラマブルコントローラ | |
JP3890746B2 (ja) | 共通処理ルーチンに対する指令入力処理の自動生成方法及びシーケンスプログラムの自動生成装置 | |
Nilsson et al. | Sequential Function Chart Interfacing | |
JP5684518B2 (ja) | ソフト部品実行制御装置 | |
JP3541094B2 (ja) | マルチタスク制御システムおよび制御方法 | |
JP2024085085A (ja) | シミュレーションシステムおよびシミュレーション方法 | |
CN113934409A (zh) | 一种编程方法、装置及计算机可读存储介质 | |
JP6395467B2 (ja) | ラダー関数シミュレータ、ラダー回路図編集装置及びラダー関数シミュレータプログラム | |
CN118131675A (zh) | 一种民用电传飞控直接模式控制律实现方法 | |
JPH0651818A (ja) | プログラマブルコントローラ | |
Bukovics et al. | Procedural Flow Control | |
JPH04191906A (ja) | プログラマブルコントローラのユーザプログラム実行制御システム | |
CN110096267A (zh) | Dsp代码自动生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061018 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090311 |