JPH11143734A - シーケンスプログラムの逆向き実行方法 - Google Patents
シーケンスプログラムの逆向き実行方法Info
- Publication number
- JPH11143734A JPH11143734A JP9305294A JP30529497A JPH11143734A JP H11143734 A JPH11143734 A JP H11143734A JP 9305294 A JP9305294 A JP 9305294A JP 30529497 A JP30529497 A JP 30529497A JP H11143734 A JPH11143734 A JP H11143734A
- Authority
- JP
- Japan
- Prior art keywords
- program
- stack
- condition
- established
- action
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
プログラムの逆向き実行方法を提供し、プログラムのテ
ストを効率良く行えるようにすることにある。 【解決手段】SFCプログラムの現在のステップの一つ
前のステップのアクションの逆動作を実行した後、前記
現在のステップの直前に通過したトランジションの条件
を判定し、前記トランジションの条件が成立していない
とき、前記一つ前のステップのアクションを実行する直
前の状態に逆戻りする。以上の処理を繰り返すことによ
って、SFCプログラムを逆向きに実行する。
Description
グラム実行方法に係り、特に、SFC(Sequential Fun
ction Chart )で記述されたシーケンスプログラム(以
下、SFCプログラム)を逆向きに実行する方法に関す
る。
は、プログラムを順方向に実行することしかできなかっ
た。このようなSFCプログラムの実行方法に関する公
知例としては、「プログラマブルコントローラの新しい
プログラミングテクニック」(近代図書,1994年)
のP.221−228に記載されているSFCプログラ
ムの実行方法が挙げられる。
ログラムを順方向に実行することしかできないが、プロ
グラムをテストするとき、部分的にプログラムを逆方向
に実行させることができれば、プログラムの動作確認を
より効率良く行うことができ、その結果として、プログ
ラムの開発効率を向上することができる。
ムを逆向きに実行する方法を提供し、プログラムのテス
トを効率良く行えるようにしたシーケンスプログラムの
逆向き実行方法を提供することにある。
範囲記載のシーケンスプログラムの逆向き実行方法によ
って達成される。
明を適用した一実施例について説明する。
以下、このSFCプログラムをプログラマブルコントロ
ーラなどの制御装置において実行するものとする。
実行し、途中でこの実行を中断したとする。この時点ま
でにSFCプログラムは、ステップS1,S2,S4,
S5の順で実行され、SFCプログラム実行を中断した
時点では、S5のアクションをすべて完了し、次のトラ
ンジションt5の条件成立を待っていたものとする。ま
た、S2の出力トランジションt2a,t2bのうち、
t2bが発火し、S2からS4への遷移が生じている。
すなわち、S4への分岐が選択されている。
うに通過してきたかという情報は、通過ノード履歴とし
てスタックに格納されているものとする。これを通過ノ
ード履歴スタックと呼ぶ。図4に、図2のSFCプログ
ラムを順方向に実行した際の通過ノード履歴スタックの
例を示す。スタックの要素には、通過ノード番号41が
格納されており、スタックのトップに近い要素ほど、現
在に近い時点に通過したノード番号となっている。ま
た、スタックのトップの位置を記憶するために、スタッ
クポインタ42が設けられている。図4のスタックに
は、底に近い方から、S1,t1,S2,t2b,S
4,t4,S5が格納されている。
ラムを、ここから逆向きに実行するものとする。すなわ
ち、S5,S4,S2,S1の順で、プログラムを逆向
きに実行する。
ラムの逆向き実行方法の処理を示すフローチャートであ
る。以下、このフローチャートにしたがって、図2のS
FCプログラムの逆向き実行方法について説明する。
た通過ノード履歴スタックのトップから取得する(処理
101)。スタックのトップからノード番号を取り出す
と、スタックポインタの値を1要素分減じる。すなわ
ち、一つ前の要素をスタックのトップにする。プログラ
ムの逆向き実行をスタートした直後は、通過ノード履歴
スタックのトップには実行中断時のステップ番号S5が
格納されており、これが現在のステップ番号になる。
作を実行する(処理102)。アクションの逆動作は、
論理を反転した出力、反対方向への移動、または代入の
取り消しに相当する。ビット出力命令の場合、論理を反
転した出力、例えば、SET(出力をONにする)命令
の逆動作はRESET(出力をOFFにする)命令とな
る。ロボットなどの移動命令の場合、反対方向への移
動、例えば、MOVZ(Z方向に並進移動する)命令の
逆動作は移動量の符号を反転した(移動量同じ、移動方
向は反対の)MOVZ命令となる。算術代入文の場合、
代入の取り消し、すなわち代入される変数の値を、代入
する前の値に戻すことになる。
は、変数への代入の履歴、すなわちストア操作の履歴を
残しておく必要がある。そこで、プログラムを順方向に
実行した際のストア操作の履歴をスタックに格納してお
く。これをストア操作履歴スタックと呼ぶ。図5に、図
2のSFCプログラムを実行した際のストア操作履歴ス
タックの例を示す。スタックの要素には、ストア操作の
対象となる変数の名称51aとストアされた値51bが
格納されており、スタックのトップに近い要素ほど、現
在に近い時点にストアされたものになっている。また、
スタックのトップの位置を記憶するために、スタックポ
インタ52が設けられている。図5のスタックには、一
番最近にストアされた変数I2の値が格納されている。
逆動作を説明する。図3に、S5のアクション32,3
3,34と、S5の直前に通過したt4の条件31を示
す。なお、他のステップ,トランジションについても、
同様にアクション,条件が記述されているものとする。
まず、ステップのアクションが複数あるときは、後のア
クションから逆動作を実行する。
Z 50.」(34)の逆動作である「MOVZ−5
0.」を実行する。次に、「SET Y1」(33)の
逆動作である「RESET Y1」を実行する。最後
に、「I2=I2+1」(32)の代入を取り消すため
に、図5のストア操作履歴スタックから一番最近のI2
のストア値を取得し、これをI2の値とする。なお、ス
タックのトップからストア値を取り出すと、スタックポ
インタの値を1要素分減じ、一つ前の要素をスタックの
トップにする。
後、このステップの直前に通過したトランジション(以
下、前トランジションという)の番号を、図4の通過ノ
ード履歴スタックのトップから取得する(処理10
3)。S5のアクションの逆動作を実行した後は、その
直前に通過したt4が得られる。なお、先と同様、スタ
ックのトップからノード番号を取り出すと、スタックポ
インタの値を1要素分減じる。
たステップ、すなわち現在のステップの一つ前のステッ
プ(以下、前ステップという)の番号を、図4の通過ノ
ード履歴スタックのトップから取得する(処理10
4)。S5のアクションの逆動作を実行した後は、t4
の直前に通過したS4が得られる。なお、先と同様、ス
タックのトップからノード番号を取り出すと、スタック
ポインタの値を1要素分減じる。
した前ステップの番号が初期ステップの番号(通常、S
0)であれば、逆向き実行を終了し、初期ステップの番
号でなければ、そのまま処理を続ける(処理105)。
実行する(処理106)。S5のアクションの逆動作を
実行した後は、S4のアクションの逆動作を実行する。
なお、アクションの逆動作は、先と同様、論理を反転し
た出力、反対方向への移動、または代入の取り消しに相
当する。
いるかどうかを判定する(処理107)。図3に示すよう
に、t4の条件は、「X1=ON & I1=10」で
あり、AND(&)で結合された、いずれかの条件式が
成立しないとき、t4の条件は不成立となる。ここで、
条件が成立していないときは、次の処理111に進み、
条件が成立しているときは、処理109に進む(処理1
08)。
き、このトランジションを強制的に通過するかどうかを
操作者に確認する(処理109)。トランジションの条
件によっては、ステップのアクションの逆動作を実行し
ても、成立したままになっていることがある。すなわ
ち、ステップのアクションが可逆的でなく、逆動作をし
ても状態が元に戻らない場合がある。
を通過させないと、逆向き実行を継続することができな
い。操作者がこのような強制通過を指示した場合、トラ
ンジションを通過して次の処理111に進み、強制通過
を指示しない場合、再び処理107に戻る(処理11
0)。
制通過の場合、SFCプログラムの実行状態は、一つ前
のステップのアクションを実行する直前の状態に逆戻り
したことになる。t4の条件が不成立または強制通過の
場合、直前のS4(S5の一つ前のステップ)のアクシ
ョンを実行する直前の状態に戻ったことになる。
者からの逆向き実行の終了の指示があるかどうかを確認
し、終了の指示がなければ、再び処理103に戻って逆
向き実行を継続し、終了の指示があれば逆向き実行を終
了する(処理111)。
行方法によれば、開発中のプログラムをテストしている
ときに、部分的にプログラムを逆向きに実行できるの
で、プログラムの動作確認を効率良く行うことができる
ようになり、その結果として、プログラムの開発効率を
向上することができる。
ケンスプログラムを対象としたが、これ以外の表現、例
えば、ペトリネットやラダー図などで記述したシーケン
スプログラムに対しても、同様にして本発明を適用する
ことは可能である。
ラムを逆向きに実行できるので、プログラムの動作確認
をより効率良く行うことができるようになり、プログラ
ムの開発効率を向上することができる。
プログラムの逆向き実行方法の処理を示すフローチャー
トである。
件とステップのアクションの例を示す図である。
の通過ノード履歴を格納したスタックの例を示す図であ
る。
のストア操作履歴を格納したスタックの例を示す図であ
る。
過ノード番号、42…通過ノード履歴スタックへのスタ
ックポインタ、51a…ストア対象となった変数の名
称、51b…ストアされた値、52…ストア操作履歴ス
タックへのスタックポインタ。
Claims (1)
- 【請求項1】プログラマブルコントローラなどの制御装
置において、SFCプログラムの現在のステップの一つ
前のステップのアクションの逆動作を実行した後、前記
現在のステップの直前に通過したトランジションの条件
を判定し、前記トランジションの条件が成立していない
とき、前記一つ前のステップのアクションを実行する直
前の状態に逆戻りすることを特徴とするシーケンスプロ
グラムの逆向き実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9305294A JPH11143734A (ja) | 1997-11-07 | 1997-11-07 | シーケンスプログラムの逆向き実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9305294A JPH11143734A (ja) | 1997-11-07 | 1997-11-07 | シーケンスプログラムの逆向き実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11143734A true JPH11143734A (ja) | 1999-05-28 |
Family
ID=17943377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9305294A Pending JPH11143734A (ja) | 1997-11-07 | 1997-11-07 | シーケンスプログラムの逆向き実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11143734A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100942987B1 (ko) | 2008-09-12 | 2010-02-17 | 성균관대학교산학협력단 | 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화방법 |
-
1997
- 1997-11-07 JP JP9305294A patent/JPH11143734A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100942987B1 (ko) | 2008-09-12 | 2010-02-17 | 성균관대학교산학협력단 | 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5249274A (en) | Simultaneous data-driven and demand-driven computational model for dynamically configured systems | |
US5291427A (en) | Method for assisting the development of a set of communicating automata | |
US20050223295A1 (en) | Method for the creation of sequences for testing software | |
US6442441B1 (en) | Method of automatically generating and verifying programmable logic controller code | |
JPH09259153A (ja) | バッチ実行制御プログラム作成装置及び方法 | |
JPH11143734A (ja) | シーケンスプログラムの逆向き実行方法 | |
JP2005108082A (ja) | デバイスドライバのインターフェース方法 | |
CN114675948A (zh) | 一种dag数据模型动态调度方法及系统 | |
JPS617903A (ja) | シ−ケンス制御装置 | |
WO2000067083A1 (fr) | Procede de programmation d'organe de commande de mouvement | |
JP3013619B2 (ja) | プログラマブル・コントローラ | |
JP2002073120A (ja) | プログラマブルコントローラのプログラミング装置とその方法 | |
JP4037941B2 (ja) | 制御装置 | |
KR100423742B1 (ko) | 순차기능챠트에 의한 전용 제어 시스템 | |
JP2503634B2 (ja) | マイクロプログラム制御装置 | |
JPH07253876A (ja) | プログラム作成装置 | |
JPH05224711A (ja) | プログラマブルコントローラの制御方法 | |
JPH08137525A (ja) | 数値制御装置 | |
JP2000242524A (ja) | プロセッサのソフトウエアシミュレータ | |
JPH01306932A (ja) | データ処理装置の試験方法 | |
JPS63189948A (ja) | 対話形デバツガにおけるバツチ形デバツグ方式 | |
JPH11282513A (ja) | サーボシステムコントローラ | |
KR19990021175A (ko) | 시퀀스공정제어를 위한 sfc프로그램의 구현방법 | |
JPH0311428A (ja) | 入力画面依存型対話処理プログラム生成方式 | |
JPS58217051A (ja) | 間接分岐制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 5 Free format text: PAYMENT UNTIL: 20080620 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 6 Free format text: PAYMENT UNTIL: 20090620 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090620 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 7 Free format text: PAYMENT UNTIL: 20100620 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120620 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130620 Year of fee payment: 10 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |