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
Application number
JP9305294A
Other languages
English (en)
Inventor
Masahiro Koyama
昌宏 小山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9305294A priority Critical patent/JPH11143734A/ja
Publication of JPH11143734A publication Critical patent/JPH11143734A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】本発明の目的は、SFCで記述したシーケンス
プログラムの逆向き実行方法を提供し、プログラムのテ
ストを効率良く行えるようにすることにある。 【解決手段】SFCプログラムの現在のステップの一つ
前のステップのアクションの逆動作を実行した後、前記
現在のステップの直前に通過したトランジションの条件
を判定し、前記トランジションの条件が成立していない
とき、前記一つ前のステップのアクションを実行する直
前の状態に逆戻りする。以上の処理を繰り返すことによ
って、SFCプログラムを逆向きに実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、自動化装置のプロ
グラム実行方法に係り、特に、SFC(Sequential Fun
ction Chart )で記述されたシーケンスプログラム(以
下、SFCプログラム)を逆向きに実行する方法に関す
る。
【0002】
【従来の技術】従来のSFCプログラムの実行方法で
は、プログラムを順方向に実行することしかできなかっ
た。このようなSFCプログラムの実行方法に関する公
知例としては、「プログラマブルコントローラの新しい
プログラミングテクニック」(近代図書,1994年)
のP.221−228に記載されているSFCプログラ
ムの実行方法が挙げられる。
【0003】
【発明が解決しようとする課題】上記従来技術では、プ
ログラムを順方向に実行することしかできないが、プロ
グラムをテストするとき、部分的にプログラムを逆方向
に実行させることができれば、プログラムの動作確認を
より効率良く行うことができ、その結果として、プログ
ラムの開発効率を向上することができる。
【0004】そこで、本発明の目的は、SFCプログラ
ムを逆向きに実行する方法を提供し、プログラムのテス
トを効率良く行えるようにしたシーケンスプログラムの
逆向き実行方法を提供することにある。
【0005】
【課題を解決するための手段】上記目的は、特許請求の
範囲記載のシーケンスプログラムの逆向き実行方法によ
って達成される。
【0006】
【発明の実施の形態】以下、添付図面を参照して、本発
明を適用した一実施例について説明する。
【0007】図2に、SFCプログラムの一例を示す。
以下、このSFCプログラムをプログラマブルコントロ
ーラなどの制御装置において実行するものとする。
【0008】まず、図2のSFCプログラムを順方向に
実行し、途中でこの実行を中断したとする。この時点ま
でにSFCプログラムは、ステップS1,S2,S4,
S5の順で実行され、SFCプログラム実行を中断した
時点では、S5のアクションをすべて完了し、次のトラ
ンジションt5の条件成立を待っていたものとする。ま
た、S2の出力トランジションt2a,t2bのうち、
t2bが発火し、S2からS4への遷移が生じている。
すなわち、S4への分岐が選択されている。
【0009】なお、ステップとトランジションをどのよ
うに通過してきたかという情報は、通過ノード履歴とし
てスタックに格納されているものとする。これを通過ノ
ード履歴スタックと呼ぶ。図4に、図2のSFCプログ
ラムを順方向に実行した際の通過ノード履歴スタックの
例を示す。スタックの要素には、通過ノード番号41が
格納されており、スタックのトップに近い要素ほど、現
在に近い時点に通過したノード番号となっている。ま
た、スタックのトップの位置を記憶するために、スタッ
クポインタ42が設けられている。図4のスタックに
は、底に近い方から、S1,t1,S2,t2b,S
4,t4,S5が格納されている。
【0010】ここで、S5で中断しているSFCプログ
ラムを、ここから逆向きに実行するものとする。すなわ
ち、S5,S4,S2,S1の順で、プログラムを逆向
きに実行する。
【0011】図1は、本発明に係る、シーケンスプログ
ラムの逆向き実行方法の処理を示すフローチャートであ
る。以下、このフローチャートにしたがって、図2のS
FCプログラムの逆向き実行方法について説明する。
【0012】まず、現在のステップ番号を、図4に示し
た通過ノード履歴スタックのトップから取得する(処理
101)。スタックのトップからノード番号を取り出す
と、スタックポインタの値を1要素分減じる。すなわ
ち、一つ前の要素をスタックのトップにする。プログラ
ムの逆向き実行をスタートした直後は、通過ノード履歴
スタックのトップには実行中断時のステップ番号S5が
格納されており、これが現在のステップ番号になる。
【0013】次に、現在のステップのアクションの逆動
作を実行する(処理102)。アクションの逆動作は、
論理を反転した出力、反対方向への移動、または代入の
取り消しに相当する。ビット出力命令の場合、論理を反
転した出力、例えば、SET(出力をONにする)命令
の逆動作はRESET(出力をOFFにする)命令とな
る。ロボットなどの移動命令の場合、反対方向への移
動、例えば、MOVZ(Z方向に並進移動する)命令の
逆動作は移動量の符号を反転した(移動量同じ、移動方
向は反対の)MOVZ命令となる。算術代入文の場合、
代入の取り消し、すなわち代入される変数の値を、代入
する前の値に戻すことになる。
【0014】このように変数の値を前の値に戻すために
は、変数への代入の履歴、すなわちストア操作の履歴を
残しておく必要がある。そこで、プログラムを順方向に
実行した際のストア操作の履歴をスタックに格納してお
く。これをストア操作履歴スタックと呼ぶ。図5に、図
2のSFCプログラムを実行した際のストア操作履歴ス
タックの例を示す。スタックの要素には、ストア操作の
対象となる変数の名称51aとストアされた値51bが
格納されており、スタックのトップに近い要素ほど、現
在に近い時点にストアされたものになっている。また、
スタックのトップの位置を記憶するために、スタックポ
インタ52が設けられている。図5のスタックには、一
番最近にストアされた変数I2の値が格納されている。
【0015】現在のステップであるS5のアクションの
逆動作を説明する。図3に、S5のアクション32,3
3,34と、S5の直前に通過したt4の条件31を示
す。なお、他のステップ,トランジションについても、
同様にアクション,条件が記述されているものとする。
まず、ステップのアクションが複数あるときは、後のア
クションから逆動作を実行する。
【0016】すなわち、S5の場合、最初に、「MOV
Z 50.」(34)の逆動作である「MOVZ−5
0.」を実行する。次に、「SET Y1」(33)の
逆動作である「RESET Y1」を実行する。最後
に、「I2=I2+1」(32)の代入を取り消すため
に、図5のストア操作履歴スタックから一番最近のI2
のストア値を取得し、これをI2の値とする。なお、ス
タックのトップからストア値を取り出すと、スタックポ
インタの値を1要素分減じ、一つ前の要素をスタックの
トップにする。
【0017】ステップのアクションの逆動作を実行した
後、このステップの直前に通過したトランジション(以
下、前トランジションという)の番号を、図4の通過ノ
ード履歴スタックのトップから取得する(処理10
3)。S5のアクションの逆動作を実行した後は、その
直前に通過したt4が得られる。なお、先と同様、スタ
ックのトップからノード番号を取り出すと、スタックポ
インタの値を1要素分減じる。
【0018】さらに、前トランジションの直前に通過し
たステップ、すなわち現在のステップの一つ前のステッ
プ(以下、前ステップという)の番号を、図4の通過ノ
ード履歴スタックのトップから取得する(処理10
4)。S5のアクションの逆動作を実行した後は、t4
の直前に通過したS4が得られる。なお、先と同様、ス
タックのトップからノード番号を取り出すと、スタック
ポインタの値を1要素分減じる。
【0019】ここで、通過ノード履歴スタックから取得
した前ステップの番号が初期ステップの番号(通常、S
0)であれば、逆向き実行を終了し、初期ステップの番
号でなければ、そのまま処理を続ける(処理105)。
【0020】次に、前ステップのアクションの逆動作を
実行する(処理106)。S5のアクションの逆動作を
実行した後は、S4のアクションの逆動作を実行する。
なお、アクションの逆動作は、先と同様、論理を反転し
た出力、反対方向への移動、または代入の取り消しに相
当する。
【0021】次に、前トランジションの条件が成立して
いるかどうかを判定する(処理107)。図3に示すよう
に、t4の条件は、「X1=ON & I1=10」で
あり、AND(&)で結合された、いずれかの条件式が
成立しないとき、t4の条件は不成立となる。ここで、
条件が成立していないときは、次の処理111に進み、
条件が成立しているときは、処理109に進む(処理1
08)。
【0022】前トランジションの条件が成立していると
き、このトランジションを強制的に通過するかどうかを
操作者に確認する(処理109)。トランジションの条
件によっては、ステップのアクションの逆動作を実行し
ても、成立したままになっていることがある。すなわ
ち、ステップのアクションが可逆的でなく、逆動作をし
ても状態が元に戻らない場合がある。
【0023】このような場合、強制的にトランジション
を通過させないと、逆向き実行を継続することができな
い。操作者がこのような強制通過を指示した場合、トラ
ンジションを通過して次の処理111に進み、強制通過
を指示しない場合、再び処理107に戻る(処理11
0)。
【0024】前トランジションの条件が不成立または強
制通過の場合、SFCプログラムの実行状態は、一つ前
のステップのアクションを実行する直前の状態に逆戻り
したことになる。t4の条件が不成立または強制通過の
場合、直前のS4(S5の一つ前のステップ)のアクシ
ョンを実行する直前の状態に戻ったことになる。
【0025】一つ前のステップに逆戻りした後は、操作
者からの逆向き実行の終了の指示があるかどうかを確認
し、終了の指示がなければ、再び処理103に戻って逆
向き実行を継続し、終了の指示があれば逆向き実行を終
了する(処理111)。
【0026】以上に述べたSFCプログラムの逆向き実
行方法によれば、開発中のプログラムをテストしている
ときに、部分的にプログラムを逆向きに実行できるの
で、プログラムの動作確認を効率良く行うことができる
ようになり、その結果として、プログラムの開発効率を
向上することができる。
【0027】また、本実施例ではSFCで記述したシー
ケンスプログラムを対象としたが、これ以外の表現、例
えば、ペトリネットやラダー図などで記述したシーケン
スプログラムに対しても、同様にして本発明を適用する
ことは可能である。
【0028】
【発明の効果】本発明によれば、部分的にSFCプログ
ラムを逆向きに実行できるので、プログラムの動作確認
をより効率良く行うことができるようになり、プログラ
ムの開発効率を向上することができる。
【図面の簡単な説明】
【図1】本発明に係る、SFCで記述されたシーケンス
プログラムの逆向き実行方法の処理を示すフローチャー
トである。
【図2】SFCプログラムの一例を示す図である。
【図3】図2のSFCプログラムのトランジションの条
件とステップのアクションの例を示す図である。
【図4】図2のSFCプログラムを順方向に実行した際
の通過ノード履歴を格納したスタックの例を示す図であ
る。
【図5】図2のSFCプログラムを順方向に実行した際
のストア操作履歴を格納したスタックの例を示す図であ
る。
【符号の説明】
31…条件、32,33,34…アクション、41…通
過ノード番号、42…通過ノード履歴スタックへのスタ
ックポインタ、51a…ストア対象となった変数の名
称、51b…ストアされた値、52…ストア操作履歴ス
タックへのスタックポインタ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】プログラマブルコントローラなどの制御装
    置において、SFCプログラムの現在のステップの一つ
    前のステップのアクションの逆動作を実行した後、前記
    現在のステップの直前に通過したトランジションの条件
    を判定し、前記トランジションの条件が成立していない
    とき、前記一つ前のステップのアクションを実行する直
    前の状態に逆戻りすることを特徴とするシーケンスプロ
    グラムの逆向き実行方法。
JP9305294A 1997-11-07 1997-11-07 シーケンスプログラムの逆向き実行方法 Pending JPH11143734A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942987B1 (ko) 2008-09-12 2010-02-17 성균관대학교산학협력단 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화방법

Cited By (1)

* Cited by examiner, † Cited by third party
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