JP4319085B2 - プログラマブルコントローラ、プログラミング装置およびプログラム変更システム - Google Patents

プログラマブルコントローラ、プログラミング装置およびプログラム変更システム Download PDF

Info

Publication number
JP4319085B2
JP4319085B2 JP2004127917A JP2004127917A JP4319085B2 JP 4319085 B2 JP4319085 B2 JP 4319085B2 JP 2004127917 A JP2004127917 A JP 2004127917A JP 2004127917 A JP2004127917 A JP 2004127917A JP 4319085 B2 JP4319085 B2 JP 4319085B2
Authority
JP
Japan
Prior art keywords
change
program
information
sfc program
block
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.)
Expired - Lifetime
Application number
JP2004127917A
Other languages
English (en)
Other versions
JP2005309916A (ja
Inventor
美泰 長友
竜三 藪崎
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004127917A priority Critical patent/JP4319085B2/ja
Publication of JP2005309916A publication Critical patent/JP2005309916A/ja
Application granted granted Critical
Publication of JP4319085B2 publication Critical patent/JP4319085B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、SFCプログラムを変更するプログラマブルコントローラ、プログラミング装置およびプログラム変更システムに関するものである。
プログラマブルコントローラで実行されるプログラムの記述言語として、SFC(Sequencial Function Chart)プログラムがある。SFCプログラムは、プログラマブルコントローラが制御する装置の一連の動作における各動作単位を1つの「ステップ」として表し、各ステップを「移行条件」によって連結することにより、各動作の実行順序をフロー形式で記述する。SFCプログラムでは複数のブロックを構成することができ、各ブロックはブロックの開始ステップ(イニシャルステップ)から始まり、各種動作パターンをもったステップ及び移行条件で構成されている。そして、各ステップおよび移行条件は、リスト記述やラダー回路によって記述されている。
プログラマブルコントローラは、メモリエリアに格納されているSFCプログラムを読み出してSFCプログラムの若番ブロックから順に実行していき、ブロックの開始ステップから終了ステップまでを移行条件の状態に従い順に実行している。プログラマブルコントローラは、ブロック内のイニシャルステップを実行後、次のステップへ移行するための条件が成立しているか否かを判断しながら各ステップの処理を行っている。そして、次のステップへ移行するための条件が成立している場合は、次のステップの処理を行う。例えば、1つのブロックの処理を行う場合、次のステップへ移行するための条件が成立していない場合は、このブロックの処理を終了する。そして、終了したブロックのイニシャルステップの次の若番ブロックから順にSFCプログラムを実行する処理を繰り返す。これらの処理は運転モードの変更やプログラミングツールよるSFCプログラムの書き込みが行われるまで繰り返し行われる。
ところで、プログラマブルコントローラのSFCプログラムの変更はプログラマブルコントローラの周辺装置(プログラミングツール)によって行われている。そして、プログラミングツールによって変更されたSFCプログラムはプログラマブルコントローラのメモリエリアに書き込まれ、プログラマブルコントローラは変更後のSFCプログラムを実行していた。
特許文献1に記載の自動プログラミング装置は、表示画面上に区切られた1つのブロック内に複数の図形要素を表示できるシーケンシャル・ファンクション・チャート方式によるシーケンス・プログラムの編集方式において、ブロック内の1つの図形要素を指定して削除指令を出力する削除指令手段と、削除指令によって指定された図形要素を削除する削除手段と、ブロックを指定して図形要素の追加指令を出力する追加指令手段と、追加指令を受けると指定されたブロック内に図形要素を追加して表示する追加表示手段と、を備えている。そして、削除手段は削除指令によって指定された図形要素を削除し、追加表示手段は追加指令を受けると指定されたブロック内に図形要素を追加して表示している。
特開平7−287610号公報
しかしながら、上記従来の技術によれば、プログラマブルコントローラが実行するSFCプログラムがプログラミングツールによって変更(置き換え)された場合、プログラマブルコントローラはSFCプログラムの変更によって削除等されたステップを次のスキャンで実行することができない。そして、削除されたステップに対応する変更後のステップをこの時点では判断できないため、SFCプログラムの継続実行が不可能となる。このため、プログラマブルコントローラは最若番ブロックのイニシャルステップからのSFCプログラムの実行をしなければならないといった問題があった。
本発明は、上記に鑑みてなされたものであって、SFCプログラムを停止またはイニシャルステップから再実行させることなく変更することができるプログラマブルコントローラ、プログラミング装置およびプログラム変更システムを得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、動作単位であるステップと該ステップ間の移行条件とからなる動作処理要素を組み合わせてなる動作処理ブロックを1〜複数有するSFCプログラムを実行するプログラマブルコントローラにおいて、実行するSFCプログラムの前記動作処理要素を格納する実行情報格納部と、SFCプログラムを変更する際、変更前のSFCプログラムおよび変更後のSFCプログラムに関する変更情報に基づいて、前記実行情報格納部の前記動作処理要素を変更させるプログラム変更部と、前記プログラム変更部によって変更された前記実行情報格納部の動作処理要素に基づいて、変更後のSFCプログラムを実行するプログラム実行部と、を備え、前記プログラム変更部は、前記SFCプログラムの実行中に前記SFCプログラムを変更する際、1スキャンの実行が終了する度に変更後のSFCプログラムの書込みが行われたか否かを確認し、変更後のSFCプログラムの書込みが行われた場合に、前記実行情報格納部の前記動作処理要素を変更後の動作処理要素に変更させ、前記プログラム実行部は、動作処理要素が変更された変更後のSFCプログラムを実行することを特徴とする。
この発明によれば、SFCプログラムの実行中にSFCプログラムを変更する際、1スキャンの実行が終了する度に変更後のSFCプログラムの書込みが行われたか否かを確認し、変更後のSFCプログラムの書込みが行われた場合に、動作処理要素を変更した変更後のSFCプログラムを実行させるので、SFCプログラムの実行中にSFCプログラムを停止させることなく、またイニシャルステップから再実行させることなく変更後のSFCプログラムを実行させることができる。
この発明によれば、SFCプログラムの実行中にSFCプログラムを停止させることなく、またイニシャルステップから再実行させることなく変更後のSFCプログラムを実行させることができる。したがって、SFCプログラムを変更する際の動作効率が向上するという効果を奏する。
以下に、本発明にかかるプログラム変更システムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態
図1は、本発明の実施の形態にかかるプログラム変更システムの構成を示すブロック図である。プログラム変更システムは、実行中のSFC(Sequencial Function Chart)プログラムを変更するシステムであり、プログラミング装置100、プログラマブルコントローラ(PLC(Programmable Logic Controller))200からなる。
プログラミング装置100は、SFCプログラムの作成や変更(編集)を行うプログラマブルコントローラ200の周辺装置(プログラミングツール)であり、入出力部11、SFCプログラム作成部(プログラム変更部)12、SFCプログラム情報作成部(変更情報作成部)13、通信I/F部14、記憶部15からなる。
SFC(Sequencial Function Chart)プログラムは、プログラマブルコントローラ200で実行されるプログラムの記述言語であり、プログラマブルコントローラ200が制御する装置の一連の動作における各動作単位を1つの「ステップ」(動作処理要素)として表す。SFCプログラムは、各ステップを「移行条件」(動作処理要素)によって連結することにより、各動作の実行順序をフロー形式で記述する。SFCプログラムでは複数のブロック(動作処理ブロック)を構成することができ、各ブロックはブロックの開始ステップ(イニシャルステップ)から始まり、各種動作パターンをもったステップ及び移行条件で構成されている。そして、各ステップおよび移行条件は、リスト記述やラダー回路によって記述される。
入出力部11は、SFCプログラムの作成や変更をする際の指示情報を入力するとともに、作成や変更されたSFCプログラムを出力する。入出力部11は、例えば液晶パネル、マウス、キーボード等を備えて構成されている。SFCプログラムの作成や変更をする際の指示情報はマウスやキーボードから入力し、作成や変更されたSFCプログラムや注意メッセージは液晶パネル等に表示することによって出力する。
SFCプログラム作成部12は、入出力部11からの指示情報に基づいてSFCプログラム等の作成や変更を行う。SFCプログラム作成部12は、SFCプログラムの変更を行う際、変更内容に応じて所定の注意メッセージを作成する。
SFCプログラム情報作成部13は、SFCプログラム内の変更前後のブロックやステップに関する情報(後述するプログラム変更情報41)を作成する。SFCプログラム情報作成部13は、プログラミング装置100の使用者によってSFCプログラムを変更する際、記憶部15を使用してプログラム変更情報を作成する。
通信I/F部(送信部)14は、プログラマブルコントローラ200と接続されてプログラマブルコントローラ200とSFCプログラム等の情報の送受信(通信)を行うインタフェースである。記憶部15は、SFCプログラムの作成や変更を行う際に使用するメモリ(メモリエリア)であり、SFCプログラム等を記憶する。
プログラマブルコントローラ200は、SFCプログラムを実行するコントローラであり、通信I/F部(受信部)21、SFCプログラム制御実行部(プログラム変更部、プログラム実行部)22、シーケンスプログラム制御実行部23、プログラム記憶部24、ワークメモリ部(実行情報格納部)25からなる。通信I/F部21は、プログラミング装置100の通信I/F部14と接続されてSFCプログラム等の情報の送受信を行う。
SFCプログラム制御実行部22は、SFCプログラムの制御及び実行を行う。SFCプログラム制御実行部22は、プログラム記憶部24に格納されているSFCプログラムを読み出してSFCプログラムの若番ブロックから順に実行していき、ブロックのイニシャルステップからエンドステップまでを移行条件の状態に従い順に実行する。SFCプログラム制御実行部22は、例えば実行中のSFCプログラムが変更されるとワークメモリ部25に格納されているプログラム変更情報に基づいて削除されたステップの実行を終了し、次のステップを実行する。また、SFCプログラム制御実行部22は、SFCプログラムの変更が行われた際に、SFCプログラムの変更に関する情報を解析し、変更前のSFCプログラムの実行から変更後のSFCプログラムの実行に切り替える。
シーケンスプログラム制御実行部23は、SFCプログラム内に記述されたステップや移行条件のシーケンスプログラムの制御や実行を行う。プログラム記憶部24は、プログラミング装置100から送られるSFCプログラムを格納する。ワークメモリ部25は、SFCプログラムを実行する際に使用するワークエリアである。ワークメモリ部25は、プログラマブルコントローラ200で実行中のSFCプログラムのプログラム変更情報41やSFCプログラム制御実行部22が実行中のSFCに関する情報(後述する実行中情報61)を記憶する。
つぎに、図1に示した各構成要素の動作を詳細に説明する。図2は、SFCプログラムの変更の処理手順を示すフローチャートである。プログラム変更システムの使用者(ユーザ)は、入出力部11からSFCプログラムを作成するための指示情報を入力するとSFCプログラム作成部12は記憶部15のメモリエリアを使用してSFCプログラムを作成する。SFCプログラム作成部12によって作成されたSFCプログラム(変更前のSFCプログラム)は、通信I/F部14と通信I/F部21を介してプログラマブルコントローラ200のプログラム記憶部24に書き込まれる。
図3は、変更前のSFCプログラムの一例を示す図である。図3のプログラムはブロック0の処理手順を示しており、ブロック0は、開始ステップである「ブロック0のイニシャルステップST0」、次のステップに移行するための移行条件「ブロック0の移行条件0」、「ブロック0のステップST1」、次のステップに移行するための移行条件「ブロック0の移行条件1」、「ブロック0のステップST2」、終了ステップである「ブロック0のエンドステップ」からなる。
ここでは、「ブロック0の移行条件0」の移行条件が成立しており、「ブロック0の移行条件1」の移行条件が成立していない場合を示している。このため、「ブロック0のステップST1」が現在実行中のステップとなる。プログラマブルコントローラ200が起動していなければ(ステップS100、停止)、このままSFCプログラムの実行を行わず処理が終了される。
ユーザがプログラマブルコントローラ200の運転モードを「運転(実行)」にするよう図示しない入力部から指示情報を入力すると、プログラマブルコントローラ200は起動する(ステップS100、運転)。プログラマブルコントローラ200が起動すると、SFCプログラム制御実行部22は、SFCプログラムの最若番ブロックの実行準備(初期実行準備)としてワークメモリ部25の更新や処理を行うステップ番号の算出等を行う(ステップS110)。
SFCプログラム制御実行部22はプログラム記憶部24に格納されている変更前のSFCプログラムを実行し、シーケンスプログラム制御実行部23はSFCプログラムのステップおよび移行条件内のリスト記述やラダー回路を実行する(ステップS120)。このとき、SFCプログラム制御実行部22、シーケンスプログラム制御実行部23はSFCプログラムの若番ブロックから順に実行していき、イニシャルステップからエンドステップまでを移行条件の状態に従い順に実行する。ワークメモリ部25は、SFCプログラム制御実行部22が実行するSFCプログラムに関する情報を実行中情報61として格納しておく。
図4は、実行中情報の構成を示す図である。実行中情報61は、ワークメモリ部25の所定のエリアに格納されている。実行中情報61には、プログラマブルコントローラ200が実行する(実行中の)SFCプログラムに関する情報として「ブロック情報」、「ステップ情報」、「ステップ総数」が含まれる。
「ブロック情報」のエリアには、プログラマブルコントローラ200が実行するステップが存在するブロックナンバが格納される。「ステップ情報」のエリアには、プログラマブルコントローラ200が実行するステップのステップナンバが格納される。「ステップ総数」のエリアには、プログラマブルコントローラ200が実行するステップの総数が格納される。「ステップ総数」の値が1つ増加するごとに「ブロック情報」のエリアと「ステップ情報」のエリアを1つずつ増加させる。例えば、SFCプログラム制御実行部22が図3に示す変更前のSFCプログラムを実行する場合、1スキャン目(1サイクル処理目)に「ブロック0のイニシャルステップST0」を実行する。このとき、ワークメモリ部25には、実行中情報61として「ブロック情報」のエリアにブロックナンバとして「ブロック0」が格納され、「ステップ情報」のエリアにステップナンバとして「イニシャルステップST0」が格納され、「ステップ総数」のエリアにステップの総数「1」が格納されている。
SFCプログラム制御実行部22が「ブロック0のイニシャルステップST0」を実行した後、SFCプログラム制御実行部22は「ブロック0の移行条件0」の実行条件が成立しているか否かを判断する。ここでは、「ブロック0の移行条件0」の実行条件が成立しているため、SFCプログラム制御実行部22は、「ブロック0のステップST1」を実行する準備としてワークメモリ部25の更新や次に実行処理を行うステップ番号の算出等を行う。ワークメモリ部25には、この次に実行する「ブロック0のステップST1」に関する情報が格納される。
実行するステップの総数は変化しないため、実行中情報61の「ステップ総数」と「ブロック情報」の変更は行わず、「ステップ情報」のエリアに次に実行する「ブロック0のステップST1」を格納する。
SFCプログラム制御実行部22が「ブロック0のステップST1」を実行した後、SFCプログラム制御実行部22は「ブロック0の移行条件1」の実行条件が成立しているか否かを判断する。ここでは、「ブロック0の移行条件1」の実行条件が成立していないため、SFCプログラム制御実行部22は、「ブロック0のステップST2」を実行せず「ブロック0」の処理を終了する。
現在実行中のSFCプログラムとして他のブロックが存在する場合(「ブロック0」が最終ブロックでない場合)(ステップS130、未終了)、他のブロックの実行を行う(ステップS120)。ここでは、現在実行中のSFCプログラムは「ブロック0」のみであるため、SFCプログラムの1サイクル処理を終了する(ステップS130、終了)。
プログラマブルコントローラ200がユーザによって停止させられた場合のように、プログラマブルコントローラ200が起動していなければ(ステップS140、停止)、このままSFCプログラムの実行を行わず処理が終了される。ここでは、プログラマブルコントローラ200は起動しているので(ステップS140、運転)、プログラム記憶部24は、プログラム記憶部24へSFCプログラムの新たな書込みが行われているかを確認する(ステップS150)。
プログラム記憶部24へSFCプログラムの新たな書込みが行われていない場合(ステップS150、No)、ワークメモリ部25の実行中情報61に格納している情報から2スキャン目に実行する「ブロック0のステップST1」の実行準備を行う(ステップS160)。そして、SFCプログラム制御実行部22が「ブロック0のステップST1」を実行した後、SFCプログラム制御実行部22は「ブロック0の移行条件1」の実行条件が成立しているか否かを判断する。「ブロック0の移行条件1」の実行条件が成立していないため、SFCプログラム制御実行部22は、「ブロック0のステップST2」を実行することなく「ブロック0」の処理を終了し、SFCプログラムの1サイクル処理を終了する(ステップS120、S130)。
SFCプログラム制御実行部22は、プログラマブルコントローラ200の運転モードの変更やプログラム記憶部24へSFCプログラムの書込みが行われるまで、「ブロック0のステップST1」の実行を繰り返す(ステップS120〜S160)。
ここで、SFCプログラムの変更について説明する。変更後のSFCプログラムは、プログラミング装置100によって作成される。SFCプログラムを変更する際、ユーザは入出力部11からプログラマブルコントローラ200で現在実行中(変更前)のSFCプログラムを取得するよう指示情報を入力する。
通信I/F部14は、プログラマブルコントローラ200から現在実行中のSFCプログラムを読み出し、このSFCプログラムを記憶部15に記憶させる。ユーザが、入出力部11からSFCプログラムを変更(ステップや移行条件の追加や削除)するための指示情報を入力するとSFCプログラム作成部12は記憶部15のメモリエリアを使用してSFCプログラムを作成(変更)する。
図5は、変更後のSFCプログラムの一例を示す図である。図5に示すSFCプログラムは、図3に示したSFCプログラムを変更したものである。ここでは、図3に示したSFCプログラムの「ブロック0のステップST1」と「ブロック0の移行条件1」を削除した場合(後述する「変更」)を示している。
SFCプログラム作成部12によって「ブロック0のステップST1」と「ブロック0の移行条件1」を削除する際、入出力部11は注意情報31を表示してユーザに注意を促す。
図6は、注意情報の一例を示す図である。注意情報31は、SFCプログラムの変更処理を行う際に入出力部11に表示される情報(メッセージ)であり、SFCプログラム情報作成部13で作成される。注意情報31としては、プログラマブルコントローラ200で実行中のステップが削除されるとこのステップの実行を終了し、次のステップが実行になる旨を表示する。ここでは、プログラマブルコントローラ200で現在実行中ステップが「ブロック0のステップST1」である場合を考慮し、例えば「ステップST1、移行条件1を削除します。実行中のステップが削除された場合、該当ステップの実行を終了し、次のステップが実行となります。」といったメッセージを表示する。
このようにしてSFCプログラム作成部12で作成された変更後のSFCプログラムは「ブロック0のイニシャルステップST0」、次のステップに移行するための移行条件「ブロック0の移行条件0」、「ブロック0のステップST2」、次のステップに移行するための移行条件「ブロック0の移行条件2」、「ブロック0のエンドステップ」からなる。ここでは、「ブロック0の移行条件0」は次のステップに移行するための条件が成立しており、「ブロック0の移行条件2」は次のステップに移行するための条件が成立していないこととする。
また、SFCプログラム情報作成部13はSFCプログラムの変更に関する情報としてプログラム変更情報41を作成する。プログラム変更情報41は、プログラマブルコントローラ200に送られる情報であり、プログラマブルコントローラ200はプログラム変更情報41に基づいて実行するSFCプログラムの変更を行う。例えば、「ブロック0のステップST1」を削除した場合、「ブロック0のステップST1」の次のステップが「ブロック0のステップST2」であるため、SFCプログラムの変更後はSFCプログラム制御実行部22に「ブロック0のステップST2」の処理を実行させる。
図7は、プログラム変更情報の一例を示す図である。プログラム変更情報41は、SFCプログラムの変更に関する情報として「変更前ブロック情報」、「変更前ステップ情報」、「変更後ブロック情報」、「変更後ステップ情報」、「変更情報登録数」、「変更情報」を含んでいる。「変更前ブロック情報」と「変更前ステップ情報」がSFCプログラムの変更前情報であり、「変更後ブロック情報」と「変更後ステップ情報」がSFCプログラムの変更後情報である。
変更前情報にはSFCプログラムの変更前のブロックとステップに関する情報が格納され、変更後情報にはSFCプログラムの変更後のブロックとステップに関する情報が格納される。
「変更前ブロック情報」のエリアには、SFCプログラムの変更前のブロックナンバが格納される。ここでは、SFCプログラムのブロック0を変更しているので「変更前ブロック情報」のエリアにはブロックナンバとして「ブロック0」が格納される。
「変更前ステップ情報」のエリアには、SFCプログラムの変更前のステップナンバが格納される。ここでは、SFCプログラムのブロック0のステップST1を変更しているので、「変更前ステップ情報」のエリアにはステップナンバとして「ステップST1」が格納される。
「変更後ブロック情報」のエリアには、SFCプログラムの変更後のブロックナンバが格納される。ここでは、SFCプログラムのブロック0を変更したので、SFCプログラム作成部12によって「変更後ブロック情報」のエリアにはブロックナンバとして「ブロック0」が格納される。
「変更後ステップ情報」のエリアには、SFCプログラムの変更後のステップナンバが格納される。ここでは、SFCプログラムのブロック0のステップST2がSFCプログラムの変更前のブロック0のステップST1に相当するので、「変更後ステップ情報」のエリアにはステップナンバとして「ステップST2」が格納される。
「変更情報」のエリアには、実行中情報61の変更の態様を識別するための情報として「変更」、「追加」、「削除」のいずれかの情報が格納される。「変更」は、SFCプログラムにおいて同一ブロック内におけるステップや移行条件が変更されて実行中情報61の内容を新たな内容に変更させることを示す。「追加」は、SFCプログラムにおいて同一ブロック内における新たなステップが追加されて実行中情報61の内容に新たな内容を追加させることを示す。「削除」は、SFCプログラムにおいてブロックが削除されて実行中情報61の内容から削除されたブロックの情報を削除させることを示す。
ここでは、ブロック0においてステップST1と移行条件0を削除する変更であり、変更前のSFCプログラムにおいてブロック0のステップST1が実行中であったならば、実行中情報61の内容を新たな内容に変更させる必要があるため、SFCプログラム制御実行部22は「変更情報」のエリアに実行中情報61の変更の態様として「変更」を格納させる。
「変更情報登録数」のエリアには、1つの「変更前ブロック情報」、1つの「変更前ステップ情報」、1つの「変更後ブロック情報」、1つの「変更後ステップ情報」、1つの「変更情報登録数」からなる一組の情報を1つの情報とした場合の情報数が格納される。ここでは、「ブロック0のステップST1」が削除され、「ブロック0のステップST1」が実行中であった場合に次のステップ「ブロック0のステップST2」を実行中とさせる変更が1つであるため、SFCプログラム作成部12は「変更情報登録数」のエリアに「1」を格納させる。
ユーザが、変更後のSFCプログラムとプログラム変更情報41をプログラマブルコントローラ200のワークメモリ部25に送信するよう入出力部11に指示情報を入力すると、通信I/F部14から通信I/F部21へ変更後のSFCプログラムとプログラム変更情報41が送られる。
プログラマブルコントローラ200に送られた変更後のSFCプログラムは、プログラム記憶部24で記憶する。また、プログラマブルコントローラ200に送られたプログラム変更情報41は、ワークメモリ部25に書き込まれる。
SFCプログラム制御実行部22は、「ブロック0のステップST1」の実行を繰り返しており(ステップS120〜S160)、SFCプログラム制御実行部22による1スキャンの実行が終了する度に、プログラミング装置100からプログラマブルコントローラ200へ変更後のSFCプログラムの書込みが行われたか否かを確認する(ステップS150)。
プログラム記憶部24へSFCプログラムの書込みがあったと判断された場合(ステップS150、Yes)、SFCプログラム制御実行部22がプログラム記憶部24から読み出して実行するSFCプログラムを変更後のSFCプログラムに変更(置換)する(ステップS170)。
SFCプログラム制御実行部22は、ワークメモリ部25に格納されたプログラム変更情報41の「変更情報登録数」を読み出す(ステップS180)。そして、SFCプログラム制御実行部22は、「変更情報登録数」に格納されている値の回数だけ、実行中情報61に登録されている内容を置き換える処理が終了したか否かを確認する(ステップS190)。ここでは、「変更情報登録数」は「1」であり、まだ実行中情報61の変更処理が1つも終了していないため、SFCプログラム制御実行部22によって、「変更情報登録数」に格納されている値だけ、実行中情報61の変更処理が終了していないと判断される(ステップS190、No)。
SFCプログラム制御実行部22は、プログラム変更情報41の変更前情報である「変更前ブロック情報」と「変更前ステップ情報」を読み出す。SFCプログラム制御実行部22は、読み出した「変更前ブロック情報」と「変更前ステップ情報」に対応するブロックのステップがワークメモリ部25の実行中情報61の「ブロック情報」と「ステップ情報」に存在するか否かを判断する(ステップS200)。ここでは、プログラム変更情報41の「変更前ブロック情報」は「ブロック0」であり、「変更前ステップ情報」は「ST1」である。また、実行中情報61の「ブロック情報」は「ブロック0」であり、「ステップ情報」は「ST1」である。したがって、SFCプログラム制御実行部22は、読み出したプログラム変更情報41のブロックのステップが実行中情報61に存在すると判断する(ステップS210、Yes)。
プログラム制御実行部22は、プログラム変更情報41の「変更情報」を読み出し、実行中情報61の変更の態様を判断する(ステップS220)。ここでは、「変更情報」が「変更」であるため、プログラム制御実行部22は実行中情報61の変更の態様が「変更」であると判断する。
プログラム制御実行部22が実行中情報61の変更の態様が「変更」であると判断すると、ワークメモリ部25は、実行中情報61に登録されている内容をプログラム変更情報41の変更後情報である「変更後ブロック情報」と「変更後ステップ情報」の内容に置き換える(ステップS230)。ここでは、実行中情報61に登録されている「ブロック0のステップST1」が「ブロック0のステップST2」に変更される。
プログラム制御実行部22は、プログラム変更情報41の「変更情報登録数」の値から−1を行うことによって(ステップS240)、「変更情報登録数」を「1」から「0」にする。プログラム制御実行部22は、この「変更情報登録数」を読み出す(ステップS180)。ここでは、「変更情報登録数」は「0」となっているため、実行中情報61の変更処理が全て終了しており、SFCプログラム制御実行部22によって「変更情報登録数」に格納されている値だけ、実行中情報61の変更処理が終了したと判断される(ステップS190、Yes)。
そして、SFCプログラム制御実行部22は、ワークメモリ部25の実行中情報61に格納している情報から「ブロック0のステップST2」の実行準備を行う(ステップS160)。この後、SFCプログラム制御実行部22は変更後のSFCプログラムを実行する。変更後のSFCプログラムにおいて「ブロック0の移行条件2」の移行条件が成立していないため「ブロック0のステップST2」の処理が繰り返される(ステップS120〜S160)。
つぎに、SFCプログラムの変更がステップの追加である場合について説明する。SFCプログラム制御実行部22は、プログラマブルコントローラ200の運転モードの変更やプログラム記憶部24へSFCプログラムの書込みが行われるまで、「ブロック0のステップST1」の実行を繰り返している(ステップS120〜S160)。
SFCプログラムを変更する際、ユーザは入出力部11からプログラマブルコントローラ200で現在実行中(変更前)のSFCプログラムを取得するよう指示情報を入力する。通信I/F部14は、プログラマブルコントローラ200から現在実行中のSFCプログラムを読み出し、このSFCプログラムを記憶部15に記憶させる。ユーザが、入出力部11からSFCプログラムを変更するための指示情報を入力するとSFCプログラム作成部12は記憶部15のメモリエリアを使用してSFCプログラムを作成する。
図8は、変更後のSFCプログラムの一例を示す図である。図8に示すSFCプログラムは、図3に示したSFCプログラムを変更したものである。ここでは、図3に示したSFCプログラムの「ブロック0の移行条件0」を複数のステップを同時に実行させることができる「ブロック0の並列分岐移行条件0」に変更し、「ブロック0のステップST1」と同時に実行するステップとして「ブロック0のステップST10」および「ブロック0のステップST11」を追加し、「ブロック0の移行条件1」を複数の同時に実行しているステップをまとめる「ブロックの並列結合移行条件1」に変更した場合を示している。ここでは、「ブロック0の並列移行条件1」は次のステップに移行するための条件が成立していないこととする。SFCプログラム作成部12によってステップを追加する際、入出力部11は注意情報32を表示してユーザに注意を促す。
図9は、注意情報の一例を示す図である。注意情報32としては、プログラマブルコントローラ200で実行中のステップに接続する移行条件が変更されるとこの移行条件で接続しているこれら追加されたステップも実行中となる旨を表示する。ここでは、プログラマブルコントローラ200で現在実行中のステップが「ブロック0のステップST1」であれば、このステップを接続している「ブロック0の移行条件0」を「ブロック0の並列分岐移行条件0」に変更されて「ブロック0のステップST10」および「ブロック0のステップST11」が追加されるので、例えば「移行条件0を変更します。並列分岐先のステップが実行中の場合、追加されたステップも実行中となります。」といったメッセージを表示する。
このようにしてSFCプログラム作成部12によって作成された変更後のSFCプログラムは、「ブロック0のイニシャルステップST0」、「ブロック0の並列分岐移行条件0」、「ブロック0のステップST1」、「ブロック0のステップST10」、「ブロック0のステップST11」、「ブロック0の並列結合移行条件1」、「ブロック0のステップST2」、「ブロック0の移行条件2」、「ブロック0のエンドステップ」からなる。また、SFCプログラム情報作成部13はSFCプログラムの変更に関する情報としてプログラム変更情報42を作成する。
図10は、プログラム変更情報の一例を示す図である。プログラム変更情報42は、SFCプログラムの変更に関する情報として「変更前ブロック情報」、「変更前ステップ情報」、「変更後ブロック情報」、「変更後ステップ情報」、「変更情報登録数」、「変更情報」を含んでいる。ここでは、2つのステップが追加されるため、「変更前ブロック情報」、「変更前ステップ情報」、「変更後ブロック情報」、「変更後ステップ情報」、「変更情報」、はプログラム変更情報42に2つずつ含まれている。
SFCプログラム作成部12によって「変更前ブロック情報」の2つのエリアにはブロックナンバとして「ブロック0」がそれぞれ格納される。また、「変更前ステップ情報」の2つのエリアにはステップナンバとして「ステップST1」がそれぞれ格納される。また、「変更後ブロック情報」の2つのエリアにはブロックナンバとして「ブロック0」が格納される。また、「変更後ステップ情報」のエリアにはステップナンバとして「ステップST10」と「ステップST11」がそれぞれ格納される。また、ブロック0においてステップST10とステップST11を追加する変更であるため、SFCプログラム制御実行部22は「変更情報」のエリアに実行中情報61の変更の態様として「追加」をそれぞれ格納させる。また、「ブロック0のステップST1」が実行中であった場合に「ブロック0のステップST10」と「ブロック0のステップST11」を実行とさせる変更が2つがあるため、SFCプログラム作成部12は「変更情報登録数」のエリアに「2」を格納させる。
ユーザが、変更後のSFCプログラムとプログラム変更情報42をプログラマブルコントローラ200のワークメモリ部25に送信するよう入出力部11に指示情報を入力すると、通信I/F部14から通信I/F部21へ変更後のSFCプログラムとプログラム変更情報42が送られる。
プログラマブルコントローラ200に送られた変更後のSFCプログラムは、プログラム記憶部24で記憶する。また、プログラマブルコントローラ200に送られたプログラム変更情報42は、ワークメモリ部25に書き込まれる。
この後、ステップS150、S170〜S190の処理が行われる。すなわち、SFCプログラム制御実行部22による1スキャンの実行が終了する度に、プログラミング装置100からプログラマブルコントローラ200へ変更後のSFCプログラムの書込みが行われたか否かを確認し(ステップS150)、プログラム記憶部24へSFCプログラムの書込みがあったと判断された場合、SFCプログラム制御実行部22がプログラム記憶部24から読み出して実行するSFCプログラムを変更後のSFCプログラムに変更(置換)する(ステップS170)。
SFCプログラム制御実行部22は、ワークメモリ部25に格納されたプログラム変更情報42の「変更情報登録数」を読み出す(ステップS180)。そして、SFCプログラム制御実行部22は、「変更情報登録数」に格納されている値の回数だけ、実行中情報61に登録されている内容を置き換える処理が終了したか否かを確認する(ステップS190)。
SFCプログラム制御実行部22は、プログラム変更情報42から1つ目の「変更前ブロック情報」と「変更前ステップ情報」を読み出す。SFCプログラム制御実行部22は、読み出した1つ目の「変更前ブロック情報」と「変更前ステップ情報」に対応するブロックのステップがワークメモリ部25の実行中情報61の「ブロック情報」と「ステップ情報」に存在するか否かを判断する(ステップS200)。
ここでは、プログラム変更情報42の「変更前ブロック情報」は「ブロック0」であり、「変更前ステップ情報」は「ST1」である。また、実行中情報61の「ブロック情報」は「ブロック0」であり、「ステップ情報」は「ST1」である。したがって、SFCプログラム制御実行部22は、読み出したプログラム変更情報42のブロックとステップが実行中情報61に存在すると判断する(ステップS210、Yes)。
プログラム制御実行部22は、プログラム変更情報42の「変更情報」を読み出し、実行中情報61の変更の態様を判断する(ステップS220)。ここでは、「変更情報」が「追加」であるため、プログラム制御実行部22は実行中情報61の変更の態様が「追加」であると判断する。
プログラム制御実行部22が実行中情報61の変更の態様が「追加」であると判断すると、ワークメモリ部25は、実行中情報61に登録されている内容にプログラム変更情報42の「変更後ブロック情報」と「変更後ステップ情報」の内容を追加登録する(ステップS250)。ここでは、実行中情報61に登録されている「ブロック0のステップST1」にプログラム変更情報42の1つ目の情報である「ブロック0のステップST10」を追加登録する。
プログラム制御実行部22は、実行中情報61の「ステップ総数」の値を+1することによって(ステップS240)、実行中情報61の「ステップ総数」の値を「2」に変更する。
プログラム制御実行部22は、プログラム変更情報42の「変更情報登録数」の値から−1を行うことによって(ステップS240)、「変更情報登録数」を「2」から「1」に変更する。プログラム制御実行部22は、この「変更情報登録数」を読み出す(ステップS180)。「変更情報登録数」は「1」であるため、ステップ190〜S220、S250、S240の処理を行う。すなわち、SFCプログラム制御実行部22は、「変更情報登録数」に格納されている値の回数だけ、実行中情報61に登録されている内容を置き換える処理が終了したか否かを確認する(ステップS190)。
SFCプログラム制御実行部22は、プログラム変更情報42から2つ目の「変更前ブロック情報」と「変更前ステップ情報」を読み出す。SFCプログラム制御実行部22は、読み出した2つ目の「変更前ブロック情報」と「変更前ステップ情報」に対応するブロックのステップがワークメモリ部25の実行中情報61の「ブロック情報」と「ステップ情報」に存在するか否かを判断する(ステップS200)。
ここでは、プログラム変更情報42の「変更前ブロック情報」は「ブロック0」であり、「変更前ステップ情報」は「ST1」である。また、実行中情報61の「ブロック情報」は「ブロック0」であり、「ステップ情報」は「ST1」である。したがって、SFCプログラム制御実行部22は、読み出したプログラム変更情報42のブロックのステップが実行中情報61に存在すると判断する(ステップS210、Yes)。
プログラム制御実行部22は、プログラム変更情報42の「変更情報」を読み出し、実行中情報61の変更の態様を判断する(ステップS220)。プログラム制御実行部22が実行中情報61の変更の態様が「追加」であると判断すると、ワークメモリ部25は、実行中情報61に登録されている内容にプログラム変更情報42の「変更後ブロック情報」と「変更後ステップ情報」の内容を追加登録する(ステップS250)。ここでは、実行中情報61に登録されている「ブロック0のステップST1」と「ブロック0のステップST10」にプログラム変更情報42の2つ目の情報である「ブロック0のステップST11」を追加登録する。
プログラム制御実行部22は、実行中情報61の「ステップ総数」の値を+1することによって(ステップS240)、実行中情報61の「ステップ総数」の値を「3」に変更する。
プログラム制御実行部22は、プログラム変更情報42の「変更情報登録数」の値から−1を行うことによって(ステップS240)、「変更情報登録数」を「1」から「0」に変更する。プログラム制御実行部22は、この「変更情報登録数」を読み出す(ステップS180)。「変更情報登録数」は「0」となっているため、実行中情報61の変更処理が全て終了しており、SFCプログラム制御実行部22によって「変更情報登録数」に格納されている値だけ、実行中情報61の変更処理が終了したと判断される(ステップS190、Yes)。そして、SFCプログラム制御実行部22は、ワークメモリ部25の実行中情報61に格納している情報から「ブロック0のステップST1」、「ブロック0のステップST10」、「ブロック0のステップST11」の実行準備を行う(ステップS160)。この後、SFCプログラム制御実行部22は変更後のSFCプログラムを実行する。変更後のSFCプログラムにおいて「ブロック0の移行条件1」の移行条件が成立していないため「ブロック0のステップST1」、「ブロック0のステップST10」、「ブロック0のステップST11」の処理が繰り返される(ステップS120〜S160)。
つぎに、SFCプログラムの変更がブロックの追加である場合について説明する。SFCプログラム制御実行部22は、プログラマブルコントローラ200の運転モードの変更やプログラム記憶部24へSFCプログラムの書込みが行われるまで、「ブロック0のステップST1」の実行を繰り返している(ステップS120〜S160)。
SFCプログラムを変更する際、ユーザは入出力部11からプログラマブルコントローラ200で現在実行中(変更前)のSFCプログラムを取得するよう指示情報を入力する。通信I/F部14は、プログラマブルコントローラ200から現在実行中のSFCプログラムを読み出し、このSFCプログラムを記憶部15に記憶させる。ユーザが、入出力部11からSFCプログラムを変更するための指示情報を入力するとSFCプログラム作成部12は記憶部15のメモリエリアを使用してSFCプログラムを作成する。
図11は、変更後のSFCプログラムの一例を示す図である。図11に示すSFCプログラムは、図3に示したSFCプログラムに追加したブロックを示したものである。ここでは、図3に示したSFCプログラムに「ブロック1のイニシャルステップST0」、「ブロック1の移行条件0」、「ブロック1のステップST1」、「ブロック1の移行条件1」、「ブロック1のエンドステップ」を追加した場合を示している。SFCプログラム作成部12によってブロックを追加する際、入出力部11は注意情報33を表示してユーザに注意を促す。
図12は、注意情報の一例を示す図である。注意情報33としては、プログラマブルコントローラ200で実行中のSFCプログラムに新たなブロックが追加されると、この追加されたブロックは起動ステップを追加しないと起動しない旨を表示する。ここでは、プログラマブルコントローラ200で実行中のブロック0からなるSFCプログラムにブロック1が追加されるので、例えば「ブロック1を追加します。ブロック1を追加しますがブロック1の起動ステップを追加しないとブロック1は起動しません」といったメッセージを表示する。
このようにしてSFCプログラム作成部12によって作成された変更後のSFCプログラムは、ブロック0と「ブロック1のイニシャルステップST0」、「ブロック1の移行条件0」、「ブロック1のステップST1」、「ブロック1の移行条件1」、「ブロック1のエンドステップ」からなるブロック1で構成されている。ここでは、「ブロック1の移行条件0」は次のステップに移行するための条件が成立しており、「ブロック1の移行条件1」は次のステップに移行するための条件が成立していないこととする。また、SFCプログラム情報作成部13はSFCプログラムの変更に関する情報としてプログラム変更情報43を作成する。
図13は、プログラム変更情報の一例を示す図である。プログラム変更情報43は、SFCプログラムの変更に関する情報として「変更情報登録数」を含んでいる。ここでは、実行中情報61の内容を変更しないため、SFCプログラム作成部12は「変更情報登録数」のエリアに「0」を格納させる。
ユーザが、変更後のSFCプログラムとプログラム変更情報43をプログラマブルコントローラ200のワークメモリ部25に送信するよう入出力部11に指示情報を入力すると、通信I/F部14から通信I/F部21へ変更後のSFCプログラムとプログラム変更情報43が送られる。
プログラマブルコントローラ200に送られた変更後のSFCプログラムは、プログラム記憶部24で記憶する。また、プログラマブルコントローラ200に送られたプログラム変更情報43は、ワークメモリ部25に書き込まれる。
この後、ステップS150、S170〜S190の処理が行われる。すなわち、SFCプログラム制御実行部22による1スキャンの実行が終了する度に、プログラミング装置100からプログラマブルコントローラ200へ変更後のSFCプログラムの書込みが行われたか否かを確認し(ステップS150)、プログラム記憶部24へSFCプログラムの書込みがあったと判断された場合、SFCプログラム制御実行部22がプログラム記憶部24から読み出して実行するSFCプログラムを変更後のSFCプログラムに変更(置換)する(ステップS170)。
SFCプログラム制御実行部22は、ワークメモリ部25に格納されたプログラム変更情報43の「変更情報登録数」を読み出す(ステップS180)。ここでは、「変更情報登録数」が「0」であるため、SFCプログラム制御実行部22は、実行中情報61に登録されている内容を置き換える処理が終了したと判断する(ステップS190、Yes)。
実行中情報61に格納されている情報に変更がないためSFCプログラム制御実行部22は、実行中情報61に格納されている情報に基づいて次のスキャンで実行する「ブロック0のステップST1」の実行準備を行う(ステップS160)。この後、SFCプログラム制御実行部22は変更後のSFCプログラムを実行する。SFCプログラム制御実行部22は、「ブロック1」の実行を行わず、変更後のSFCプログラムにおいて「ブロック0の移行条件1」の移行条件が成立していないため「ブロック0のステップST1」の処理を繰り返す(ステップS120〜S160)。
なお、追加した「ブロック1」を起動させたい場合、ユーザは、「ブロック1」の追加を行うと同時に現在実行中のSFCプログラムの「ブロック0のステップST1」を、ブロック1を起動させることができるステップである「ブロック0のブロック起動ステップST1」に変更する必要がある。この場合、SFCプログラム作成部12は、プログラム変更情報43に、変更前情報として「ブロック0のステップST1」、変更後情報として「ブロック1のステップST1」、「変更情報」として「追加」を格納させる。そして、SFCプログラム制御実行部22が、ステップS250で、実行中情報61に「ブロック1のイニシャルステップST0」を登録し、ステップS160で、「ブロック0のステップST1」、「ブロック1のイニシャルステップST0」の実行準備を行うことによって、次のスキャンで「ブロック1」の実行を行うことが可能となる。
つぎに、SFCプログラムの変更がブロックの削除である場合について説明する。SFCプログラム制御実行部22は、プログラマブルコントローラ200の運転モードの変更やプログラム記憶部24へSFCプログラムの書込みが行われるまで、図3に示す「ブロック0」と図11に示す「ブロック1」を実行している。
実行中情報61には、「ブロック0のステップST1」と「ブロック1のステップST1」が登録されている。SFCプログラム制御実行部22は、「ブロック0のステップST1」を実行するとともに「ブロック0の移行条件1」の実行条件が成立しているか否かのチェックを行っている。現在「ブロック0の移行条件1」の実行条件が成立していないため、SFCプログラム制御実行部22は、「ブロック0のステップST2」を実行することなく「ブロック0」の処理を終了している。
また、SFCプログラム制御実行部22は、「ブロック1のステップST1」を実行するとともに「ブロック1の移行条件1」の実行条件が成立しているか否かのチェックを行っている。現在「ブロック1の移行条件1」の実行条件が成立していないため、SFCプログラム制御実行部22は、「ブロック1のエンドステップ」を実行することなく「ブロック1」の処理を終了するといった処理を繰り返し行っている。
SFCプログラムを変更する際、ユーザは入出力部11からプログラマブルコントローラ200で現在実行中(変更前)のSFCプログラムを取得するよう指示情報を入力する。通信I/F部14は、プログラマブルコントローラ200から現在実行中のSFCプログラムを読み出し、このSFCプログラムを記憶部15に記憶させる。ユーザが、入出力部11からSFCプログラムを変更するための指示情報を入力するとSFCプログラム作成部12は記憶部15のメモリエリアを使用してSFCプログラムを作成する。ここでは、「ブロック0」と「ブロック1」からなるSFCプログラムから「ブロック1」を削除し、「ブロック0」からなるSFCプログラムに変更する。SFCプログラム作成部12によってブロックを追加する際、入出力部11は注意情報34を表示してユーザに注意を促す。
図14は、注意情報の一例を示す図である。注意情報34としては、プログラマブルコントローラ200で実行中のブロックが削除されると、削除されたブロックの処理が終了される旨を表示する。ここでは、プログラマブルコントローラ200で現在実行中のブロックが「ブロック1」であれば、「ブロック1」の実行を終了するので、例えば「ブロック1を削除します。実行中のブロックが削除された場合、該当ブロックの実行を終了します。」といったメッセージを表示する。
このようにSFCプログラム作成部12によって作成された変更後のSFCプログラムは、図3に示す「ブロック0」からなるSFCプログラムと同一のSFCプログラムとなる。また、SFCプログラム情報作成部13はSFCプログラムの変更に関する情報としてプログラム変更情報44を作成する。
図15は、プログラム変更情報の一例を示す図である。プログラム変更情報44は、SFCプログラムの変更に関する情報として「変更前ブロック情報」、「変更前ステップ情報」、「変更後ブロック情報」、「変更後ステップ情報」、「変更情報」を含んでいる。ここでは、ブロック1の2つのステップが削除されるため、「変更前ブロック情報」、「変更前ステップ情報」、「変更後ブロック情報」、「変更後ステップ情報」、「変更情報」はプログラム変更情報44に2つずつ含まれている。
ここでは、SFCプログラム作成部12によって「変更前ブロック情報」の2つのエリアにはブロックナンバとして「ブロック1」がそれぞれ格納される。また、「変更前ステップ情報」の2つのエリアにはステップナンバとして「ST0」と「ST1」がそれぞれ格納される。また、「変更後ブロック情報」の2つのエリアにはブロック1は削除されているので「なし」の情報が格納される。同様に、ブロック1の「ステップST0」とブロック1の「ステップST1」が削除されるので「変更後ステップ情報」のエリアにはステップナンバが無いことを示す「なし」の情報が格納される。また、ブロック1を削除する変更であるため、SFCプログラム作成部12は「変更情報」のエリアに実行中情報61の変更の態様として「削除」をそれぞれ格納させる。また、「ブロック1のステップST0」と「ブロック1のステップST1」が2つ削除されるため、SFCプログラム制御実行部22は「変更情報登録数」のエリアに「2」を格納させる。
ユーザが、変更後のSFCプログラムとプログラム変更情報44をプログラマブルコントローラ200のワークメモリ部25に送信するよう入出力部11に指示情報を入力すると、通信I/F部14から通信I/F部21へ変更後のSFCプログラムとプログラム変更情報44が送られる。
プログラマブルコントローラ200に送られた変更後のSFCプログラムは、プログラム記憶部24で記憶する。また、プログラマブルコントローラ200に送られたプログラム変更情報44は、ワークメモリ部25に書き込まれる。
この後、ステップS150、S170〜S190の処理が行われる。すなわち、SFCプログラム制御実行部22による1スキャンの実行が終了する度に、プログラミング装置100からプログラマブルコントローラ200へ変更後のSFCプログラムの書込みが行われたか否かを確認し(ステップS150)、プログラム記憶部24へSFCプログラムの書込みがあったと判断された場合、SFCプログラム制御実行部22がプログラム記憶部24から読み出して実行するSFCプログラムを変更後のSFCプログラムに変更(置換)する(ステップS170)。
SFCプログラム制御実行部22は、ワークメモリ部25に格納されたプログラム変更情報44の「変更情報登録数」を読み出す(ステップS180)。そして、SFCプログラム制御実行部22は、「変更情報登録数」に格納されている値の回数だけ、実行中情報61に登録されている内容を置き換える処理が終了したか否かを確認する(ステップS190)。
SFCプログラム制御実行部22は、プログラム変更情報44から1つ目の「変更前ブロック情報」と「変更前ステップ情報」を読み出す。SFCプログラム制御実行部22は、読み出した1つ目の「変更前ブロック情報」と「変更前ステップ情報」に対応するブロックのステップがワークメモリ部25の実行中情報61の「ブロック情報」と「ステップ情報」に存在するか否かを判断する(ステップS200)。
ここでは、プログラム変更情報44の「変更前ブロック情報」は「ブロック1のステップST0」であり、実行中情報61の「ブロック1」に対応するステップは「ST1」である。したがって、SFCプログラム制御実行部22は、読み出したプログラム変更情報44のブロックが実行中情報61に存在しないと判断する(ステップS210、Yes)。
プログラム制御実行部22は、プログラム変更情報44の「変更情報登録数」の値から−1を行い(ステップS240)、「変更情報登録数」を「2」から「1」に変更する。プログラム制御実行部22は、この「変更情報登録数」を読み出す(ステップS180)。「変更情報登録数」は「1」であるため、ステップ190〜S220の処理を行う。すなわち、SFCプログラム制御実行部22は、「変更情報登録数」に格納されている値の回数だけ、実行中情報61に登録されている内容を置き換える処理が終了したか否かを確認する(ステップS190)。
SFCプログラム制御実行部22は、プログラム変更情報44から2つ目の「変更前ブロック情報」と「変更前ステップ情報」を読み出す。SFCプログラム制御実行部22は、読み出した2つ目の「変更前ブロック情報」と「変更前ステップ情報」に対応するブロックのステップがワークメモリ部25の実行中情報61の「ブロック情報」と「ステップ情報」に存在するか否かを判断する(ステップS200)。
ここでは、プログラム変更情報44の「変更前ブロック情報」は「ブロック1のステップST1」であり、実行中情報61の「ブロック1」に対応するステップは「ST1」である。したがって、SFCプログラム制御実行部22は、読み出したプログラム変更情報44のブロックが実行中情報61に存在すると判断する(ステップS210、Yes)。
プログラム制御実行部22は、プログラム変更情報44の「変更情報」を読み出し、実行中情報61の変更の態様を判断する(ステップS220)。ここでは、「変更情報」が「削除」であるため、プログラム制御実行部22は実行中情報61の変更の態様が「削除」であると判断する。
プログラム制御実行部22が実行中情報61の変更の態様が「削除」であると判断すると、ワークメモリ部25は、実行中情報61に登録されている内容から「ブロック1」に関する情報を削除する。
そして、プログラム制御実行部22は、実行中情報61の「ステップ総数」から削除したステップ数の値を減算し(ステップS260)、実行中情報61の「ステップ総数」の値を「2」から「1」に変更する。
プログラム制御実行部22は、プログラム変更情報44の「変更情報登録数」の値から−1を行い(ステップS240)、「変更情報登録数」を「1」から「0」に変更する。
プログラム制御実行部22は、この「変更情報登録数」を読み出す(ステップS180)。「変更情報登録数」は「0」となっているため、実行中情報61の変更処理が全て終了しており、SFCプログラム制御実行部22によって「変更情報登録数」に格納されている値だけ、実行中情報61の変更処理が終了したと判断される(ステップS190、Yes)。
そして、SFCプログラム制御実行部22は、ワークメモリ部25の実行中情報61に格納している情報から「ブロック0のステップST1」の実行準備を行う(ステップS160)。この後、SFCプログラム制御実行部22は変更後のSFCプログラムを実行する。変更後のSFCプログラムにおいて「ブロック0の移行条件1」の移行条件が成立していないため「ブロック0のステップST1」の処理が繰り返される(ステップS120〜S160)。
なお、本実施の形態においては、プログラマブルコントローラ200で実行中のSFCプログラムをプログラミング装置100で変更(編集)することとしたが、プログラミング装置100で変更するSFCプログラムはプログラマブルコントローラ200で実行中のものに限られず、プログラマブルコントローラ200で実行していないSFCプログラムをプログラミング装置100で変更してもよい。また、プログラミング装置100においても、実行中のSFCプログラムを変更(置換)する場合に限られず、実行していないSFCプログラムを変更するようにしてもよい。
このように、プログラミング装置100は、プログラマブルコントローラ200が実行しているブロックとステップを把握することなく、SFCプログラムの実行中の変更を可能としている。そして、SFCプログラム内のステップや移行条件を削除する場合であっても、プログラマブルコントローラ200は削除される実行中のステップの次のステップに関する情報を取得することが可能となる。また、SFCプログラム内のステップや移行条件を追加や変更する場合であっても、プログラマブルコントローラ200は追加されるステップに関する情報を取得することが可能となる。また、SFCプログラムに新たなブロックを追加する場合であっても、プログラマブルコントローラ200は追加されるブロックに関する情報を取得することが可能となる。また、SFCプログラムからブロックを削除する場合であっても、プログラマブルコントローラ200は削除されるブロックに関する情報を取得することが可能となる。
このように実施の形態によれば、SFCプログラム内のステップや移行条件を削除する場合であっても、プログラマブルコントローラ200が削除される実行中のステップの次のステップに関する情報を取得することができるので、プログラマブルコントローラ200はSFCプログラムを変更する際、次のステップの実行を行うことができる。したがって、実行中のSFCプログラムを停止させることやイニシャルステップから再実行させる必要がなく、SFCプログラムの実行を継続しながらプログラマブルコントローラ200のSFCプログラムを変更させることが可能となる。
また、SFCプログラム内のステップや移行条件を追加や変更する場合であっても、プログラマブルコントローラ200は追加されるステップに関する情報を取得することができるので、プログラマブルコントローラ200はSFCプログラムを変更する際、追加されるステップの実行を行うことができる。したがって、実行中のSFCプログラムを停止させることやイニシャルステップから再実行させる必要がなく、SFCプログラムの実行を継続しながらプログラマブルコントローラ200のSFCプログラムを変更させることが可能となる。
また、SFCプログラムからブロックを削除する場合であっても、プログラマブルコントローラ200は削除されるブロックに関する情報を取得することができるので、プログラマブルコントローラ200はSFCプログラムを変更する際、削除されていないブロックを実行することができる。したがって、実行中のSFCプログラムを停止させることやイニシャルステップから再実行させる必要がなく、SFCプログラムの実行を継続しながらプログラマブルコントローラ200のSFCプログラムを変更させることが可能となる。
また、SFCプログラム内のステップや移行条件を削除する場合、SFCプログラム内のステップや移行条件を追加や変更する場合、SFCプログラムに新たなブロックを追加する場合、SFCプログラムからブロックを削除する場合であっても、プログラミング装置100は追加されるブロックに関する情報を取得することができるので、SFCプログラムを変更させる際に、注意情報を表示させることができる。したがって、SFCプログラムを変更する際の動作効率が向上する。
以上のように、本発明にかかるプログラマブルコントローラ、プログラミング装置およびプログラム変更システムは、SFCプログラムの変更を行うプログラマブルコントローラ、プログラミング装置およびプログラム変更システムに適している。
本発明の実施の形態にかかるプログラム変更システムの構成を示すブロック図である。 SFCプログラムの変更の処理手順を示すフローチャートである。 変更前のSFCプログラムの一例を示す図である。 実行中情報の構成を示す図である。 変更後のSFCプログラムの一例を示す図(1)である。 注意情報の一例を示す図(1)である。 プログラム変更情報の一例を示す図(1)である。 変更後のSFCプログラムの一例を示す図(2)である。 注意情報の一例を示す図(2)である。 プログラム変更情報の一例を示す図(2)である。 変更後のSFCプログラムの一例を示す図(3)である。 注意情報の一例を示す図(3)である。 プログラム変更情報の一例を示す図(3)である。 注意情報の一例を示す図(4)である。 プログラム変更情報の一例を示す図(4)である。
符号の説明
11 入出力部
12 SFCプログラム作成部
13 SFCプログラム情報作成部
14,21 通信I/F部
15 記憶部
22 SFCプログラム制御実行部
23 シーケンスプログラム制御実行部
24 プログラム記憶部
25 ワークメモリ部
31〜34 注意情報
41〜44 プログラム変更情報
61 実行中情報
100 プログラミング装置
200 プログラマブルコントローラ

Claims (5)

  1. 動作単位であるステップと該ステップ間の移行条件とからなる動作処理要素を組み合わせてなる動作処理ブロックを1〜複数有するSFCプログラムを実行するプログラマブルコントローラにおいて、
    実行するSFCプログラムの前記動作処理要素を格納する実行情報格納部と、
    SFCプログラムを変更する際、変更前のSFCプログラムおよび変更後のSFCプログラムに関する変更情報に基づいて、前記実行情報格納部の前記動作処理要素を変更させるプログラム変更部と、
    前記プログラム変更部によって変更された前記実行情報格納部の動作処理要素に基づいて、変更後のSFCプログラムを実行するプログラム実行部と、
    を備え
    前記プログラム変更部は、前記SFCプログラムの実行中に前記SFCプログラムを変更する際、1スキャンの実行が終了する度に変更後のSFCプログラムの書込みが行われたか否かを確認し、変更後のSFCプログラムの書込みが行われた場合に、前記実行情報格納部の前記動作処理要素を変更後の動作処理要素に変更させ、
    前記プログラム実行部は、動作処理要素が変更された変更後のSFCプログラムを実行することを特徴とするプログラマブルコントローラ。
  2. 前記SFCプログラムの変更が前記変更前のSFCプログラムにおける前記動作処理ブロックと同一の動作処理ブロック内での動作処理要素の削除である場合、
    前記変更情報は、プログラム実行部によって変更後に実行されなくなる前記削除された動作処理要素と、変更後にプログラム実行部に実行させる前記削除された動作処理要素の次の動作処理要素とに関する情報を含むことを特徴とする請求項1に記載のプログラマブルコントローラ。
  3. 前記SFCプログラムの変更が前記変更前のSFCプログラムにおける前記動作処理ブロックと同一の動作処理ブロック内での動作処理要素に対して並列的な動作処理要素の追加である場合、
    前記変更情報は、プログラム実行部によって変更後も実行が継続される前記変更前のSFCプログラムの動作処理要素と、変更後にプログラム実行部に実行させる前記追加された並列的な動作処理要素とに関する情報を含むことを特徴とする請求項1または2に記載のプログラマブルコントローラ。
  4. 前記SFCプログラムの変更が前記変更前のSFCプログラムにおける動作処理ブロックの削除である場合、
    前記変更情報は、プログラム実行部によって変更後に実行されなくなる前記削除された動作処理ブロックに関する情報を含むことを特徴とする請求項1〜3のいずれか1つに記載のプログラマブルコントローラ。
  5. 動作単位であるステップと該ステップ間の移行条件とからなる動作要素を組み合わせてなるSFCプログラムを実行するプログラマブルコントローラと、前記SFCプログラムを作成するプログラミング装置とからなるプログラム変更システムにおいて、
    前記プログラミング装置は、
    前記プログラマブルコントローラのSFCプログラムを変更するプログラム変更部と、
    前記プログラム変更部がSFCプログラムを変更する際、変更前のSFCプログラムおよび変更後のSFCプログラムに関する情報を作成する変更情報作成部と、
    前記プログラム変更部が変更したSFCプログラムおよび前記変更情報作成部が作成した変更情報を前記プログラマブルコントローラに送信する送信部と、
    を備え、
    前記プログラマブルコントローラは、
    前記送信部からのSFCプログラムおよび変更情報を受信する受信部と、
    実行するSFCプログラムの前記動作要素を格納する実行情報格納部と、
    前記変更情報に基づいて前記実行情報格納部の前記動作要素を変更させるプログラム変更部と、
    前記プログラム変更部によって変更された前記実行情報格納部の動作処理要素に基づいて、変更後のSFCプログラムを実行するプログラム実行部と、
    を備え
    前記プログラム変更部は、前記SFCプログラムの実行中に前記SFCプログラムを変更する際、1スキャンの実行が終了する度に変更後のSFCプログラムの書込みが行われたか否かを確認し、変更後のSFCプログラムの書込みが行われた場合に、前記実行情報格納部の前記動作処理要素を変更後の動作処理要素に変更させ、
    前記プログラム実行部は、動作処理要素が変更された変更後のSFCプログラムを実行することを特徴とするプログラム変更システム。
JP2004127917A 2004-04-23 2004-04-23 プログラマブルコントローラ、プログラミング装置およびプログラム変更システム Expired - Lifetime JP4319085B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004127917A JP4319085B2 (ja) 2004-04-23 2004-04-23 プログラマブルコントローラ、プログラミング装置およびプログラム変更システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004127917A JP4319085B2 (ja) 2004-04-23 2004-04-23 プログラマブルコントローラ、プログラミング装置およびプログラム変更システム

Publications (2)

Publication Number Publication Date
JP2005309916A JP2005309916A (ja) 2005-11-04
JP4319085B2 true JP4319085B2 (ja) 2009-08-26

Family

ID=35438602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004127917A Expired - Lifetime JP4319085B2 (ja) 2004-04-23 2004-04-23 プログラマブルコントローラ、プログラミング装置およびプログラム変更システム

Country Status (1)

Country Link
JP (1) JP4319085B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6442131B2 (ja) * 2012-11-14 2018-12-19 オムロン株式会社 制御システムおよび制御装置

Also Published As

Publication number Publication date
JP2005309916A (ja) 2005-11-04

Similar Documents

Publication Publication Date Title
JP2762893B2 (ja) プログラマブルコントローラ及びそのプログラマブルコントローラを用いたsfcプログラム実行方法
US20130104101A1 (en) Sequence program creating apparatus
JP4319085B2 (ja) プログラマブルコントローラ、プログラミング装置およびプログラム変更システム
JP2009282755A (ja) シミュレーション装置
US20060041324A1 (en) System and method of editing a program used for a programmable logic controller
CN114217852A (zh) 一种基于ci引擎流水线节点的跳过处理方法
JP3585158B2 (ja) プログラム式表示装置用の操作画面作成方法
JP6939662B2 (ja) プログラミング支援装置、プログラミング支援方法及びプログラム
JP2006195590A (ja) プログラマブル・コントローラ・システム、そのコントローラ、プログラム
JP3431131B2 (ja) メニュー選択入力装置
CN115507179B (zh) 一种用于自动变速器换挡的控制方法及控制系统
JP4322130B2 (ja) タイミングチャート編集システム
JP2653409B2 (ja) プログラマブルコントローラのプログラム開発装置
JP2015122007A (ja) 編集支援システム、方法およびプログラム
JP2001005517A (ja) 制御プログラムのモニター方法および装置
JPH0679245B2 (ja) プログラマブルコントロ−ラのシ−ケンスプログラム実行方式
JP2601533B2 (ja) データ処理装置
TWI709908B (zh) 在plc編輯環境中與其他軟體協作之方法、程式產品、電腦可讀取媒體
JP2007193425A (ja) 画面データ作成装置、画面データの編集方法及び画面データ編集プログラム
JP4851420B2 (ja) 制御プログラム作成コンバータおよび制御プログラム変換方法
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP2921231B2 (ja) プログラマブルコントローラ
JP2004272409A (ja) オブジェクト仮止め装置、オブジェクト仮止め方法及びオブジェクト仮止めプログラム
JP2000347840A (ja) ソースプログラム自動生成装置、ソースプログラム自動生成方法およびその方法を記録した記録媒体
JP2012118573A (ja) エンジニアリング装置およびエンジニアリング方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090526

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090527

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120605

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4319085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130605

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term