JPWO2018216083A1 - 制御装置および編集装置 - Google Patents

制御装置および編集装置 Download PDF

Info

Publication number
JPWO2018216083A1
JPWO2018216083A1 JP2017563626A JP2017563626A JPWO2018216083A1 JP WO2018216083 A1 JPWO2018216083 A1 JP WO2018216083A1 JP 2017563626 A JP2017563626 A JP 2017563626A JP 2017563626 A JP2017563626 A JP 2017563626A JP WO2018216083 A1 JPWO2018216083 A1 JP WO2018216083A1
Authority
JP
Japan
Prior art keywords
control program
control
rollback
unit
information
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.)
Granted
Application number
JP2017563626A
Other languages
English (en)
Other versions
JP6305667B1 (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
Application granted granted Critical
Publication of JP6305667B1 publication Critical patent/JP6305667B1/ja
Publication of JPWO2018216083A1 publication Critical patent/JPWO2018216083A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

制御装置(1)は、ステップおよびトランジションの情報を含む制御プログラムを記憶する第1記憶部(11)と、第2記憶部(15)と、第1記憶部(11)に記憶された制御プログラムを実行して被制御装置(2)を制御する実行部(12)と、制御プログラムを実行中に、第1記憶部(11)に記憶された制御プログラムを書換える実行中書換え指示と、制御プログラムの変更部分を示す差分情報とを受信する通信部(13)と、実行中書換え指示を受信する毎に、書換え前の制御プログラムと、差分情報と、制御プログラムのうち実行中のステップを示す活性情報とを含むバックアップ情報を、複数のバックアップ情報のそれぞれの順序を示す順序情報と共に第2記憶部(15)に記憶させ、差分情報に基づいて制御プログラムを書換える書換え制御部(14)と、を備えることを特徴とする。

Description

本発明は、制御プログラムを実行して被制御装置を制御する制御装置と、制御プログラムを編集可能な編集装置とに関する。
制御プログラムを実行して被制御装置を制御するプログラマブルロジックコントローラ(以下、PLC(Programmable Logic Controller)と称する)などの制御装置が、産業機械の分野で利用されている。制御装置の動作を変更する場合、制御プログラムを編集して、制御装置が実行する制御プログラムを書換える必要がある。
特許文献1には、制御プログラムを停止させずに実行中の制御プログラムを書換えることが可能な制御装置が開示されている。この構成により、制御装置および被制御装置の動作効率を向上させることができる。この制御装置は、書換え前後の制御プログラムと、制御プログラムを書換える際に実行している制御プログラムの部分とを一時記憶しており、一時記憶した情報を、制御プログラムを書換えた後に削除している。
特開2005−309916号公報
上記特許文献1には、制御プログラムを書換えた後、元の制御プログラムに戻すロールバック機能については記載されていない。制御プログラムを書換えた後、制御プログラムの内容を変更する必要が生じた際、書換え前の制御プログラムに戻すことがある。特許文献1に記載の制御装置では、制御プログラムをロールバックするためには、手作業で元の状態に書き換えた後、実行中の制御プログラムを書き換える必要があり、手間がかかるという問題があった。
本発明は、上記に鑑みてなされたものであって、制御プログラムを書換えた後、制御プログラムを書換え前の状態に容易に戻すことが可能な制御装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる制御装置は、ステップ及びトランジションの情報を含む制御プログラムを記憶する第1記憶部と、第2記憶部と、第1記憶部に記憶された制御プログラムを実行して被制御装置を制御する実行部と、制御プログラムを実行中に、第1記憶部に記憶された制御プログラムを書換える実行中書換え指示と、制御プログラムの変更部分を示す差分情報とを受信する通信部と、制御プログラムを書換える書換え制御部とを備える。書換え制御部は、実行中書換え指示を受信する毎に、書換え前の制御プログラムと、差分情報と、制御プログラムのうち実行中のステップを示す活性情報とを含むバックアップ情報を、複数のバックアップ情報のそれぞれの順序を示す順序情報と共に第2記憶部に記憶させ、差分情報に基づいて制御プログラムを書換えることを特徴とする。
本発明にかかる制御装置は、制御プログラムを書換えた後、制御プログラムを書換え前の状態に容易に戻すことが可能であるという効果を奏する。
本発明の実施の形態1にかかる制御装置および編集装置の構成を示す図 図1に示す制御装置が実行する制御プログラムの説明図 図1に示す制御装置および編集装置の機能を実現する処理回路の一例を示す図 図1に示す編集装置が行う制御プログラムの編集の一例を示す図 図1に示す制御装置の実行する制御プログラムを書換える動作を示すシーケンス図 図1に示す編集装置が表示する実行中書換え指示画面を示す図 図1に示す編集装置が表示する確認画面を示す図 図1に示す書換え制御部が行うバックアップ処理において、第2記憶部に記憶される情報を示す図 図5に示した書換え動作中に第1記憶部および第2記憶部に記憶される情報の具体例を示す図 本発明の実施の形態2にかかる制御装置の実行する制御プログラムをロールバックする動作を示すシーケンス図 本発明の実施の形態2にかかる編集装置が表示するロールバック機能を選択する画面を示す図 図11に示すロールバック機能を選択する画面からリンクされたロールバック実行画面を示す図 図12に示すプログラム表示ボタンからリンクされたロールバックプログラム表示画面を示す図 図12に示すロールバック実行画面がロールバック実行後に更新されて表示されるロールバック実行画面を示す図 図10に示したロールバック動作中に第1記憶部および第2記憶部に記憶されている情報の具体例を示す図 図10に示す動作においてロールバック処理の実行エラーが発生する条件を示す図 図10のロールバック処理を行う際に制御装置が実行する動作を示すフローチャート 本発明の実施の形態1および2の効果の一例を示す図
以下に、本発明の実施の形態にかかる制御装置および編集装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかる制御装置1および編集装置3の構成を示す図である。制御装置1は、制御プログラムを実行して被制御装置2を制御する。制御装置1は、例えばPLCなどであり、加工装置、検査装置など生産現場で用いられる被制御装置2を制御する。編集装置3は、制御装置1が実行する制御プログラムを編集する装置である。編集装置3は、PC(Personal Computer)などの情報処理装置であり、制御プログラムを編集する編集アプリケーションを実行する。
制御装置1は、第1記憶部11と、実行部12と、通信部13と、書換え制御部14と、第2記憶部15と、ロールバック制御部16とを有する。第1記憶部11は、制御プログラムを記憶する。実行部12は、第1記憶部11に記憶された制御プログラムを読み出して実行することにより、被制御装置2を制御する。通信部13は、編集装置3などの外部装置との通信インタフェースである。書換え制御部14は、第1記憶部11に記憶された制御プログラムの書換えを制御する。書換え制御部14は、通信部13を介して編集装置3から実行中書換え指示を受信する毎に、実行中書換え指示と共に受信する差分情報に従って、第1記憶部11に記憶された制御プログラムを書換える。
差分情報は、制御プログラムの変更部分を示す。書換え制御部14は、制御プログラムを書換える前に、実行中の制御プログラムを第2記憶部15にバックアップすると共に、バックアップした制御プログラムをロールバックする際に必要な情報をバックアップ情報として第2記憶部15に記憶する。バックアップ情報は、例えば、変更前の制御プログラムと、制御プログラムのうち実行中の箇所を示す活性情報と、差分情報とを含む。書換え制御部14は、編集装置3から受信した差分情報をそのままバックアップ情報として記憶してもよいし、差分情報のデータ形式を変換するなど差分情報に基づいて生成した情報をバックアップ情報として記憶してもよい。ロールバック制御部16は、第2記憶部15に記憶されたバックアップ情報を用いて、制御プログラムをロールバックする。書換え制御部14は、制御プログラムの書換えを行う度にバックアップ情報を生成して、バックアップ情報が生成された順序を示す順序情報と共に第2記憶部15に記憶する。このため、ロールバック制御部16は、複数回のロールバックを行うことが可能であり、ロールバックを行う度に制御プログラムを1つずつ過去の状態に戻すことができる。
編集装置3は、通信部31と、編集部32と、入出力部33と、記憶部34とを有する。通信部31は、制御装置1などの外部装置との通信インタフェースである。編集部32は、制御装置1が実行する制御プログラムを編集する。入出力部33は、ユーザの入力操作に従った入力信号を生成する入力部の機能と、表示画面などを出力する出力部の機能とを有する。入出力部33は、例えば、入力部の機能と出力部の機能とを合わせ持つタッチパネル、または、マウスなどのポインティングデバイス、キーボードといった入力装置および表示装置により構成される。記憶部34は、編集装置3が実行する編集プログラム、編集プログラムの実行中に生成されるデータなどを記憶する。編集部32は、入出力部33が生成する入力信号に基づいて、制御装置1が実行する制御プログラムを編集することができる。
図2は、図1に示す制御装置1が実行する制御プログラムの説明図である。制御プログラムProg1は、ブロックBL0から構成されている。図2の例では、1つの制御プログラムが1つのブロックから構成されているが、1つの制御プログラムが複数のブロックから構成される場合もある。制御プログラムProg1は、ブロックBL0が、複数のステップと移行条件である複数のトランジションとから構成されているSFC(Sequential Function Chart)プログラムである。ステップは、制御装置1が行う一連の動作におけるそれぞれの動作単位を示しており、各ステップは、トランジションで連結されている。制御装置1がSFCプログラムを実行する際には、若番ブロックから順に実行し、ステップの実行とトランジションが成立したか否かの判定とを繰り返し、トランジションが成立している場合、次のステップを順に実行する。図2に示す制御プログラムProg1の場合、制御装置1は、ブロックBL0のステップS0を実行した後、トランジションTR0を判定してトランジションTR0が成立している場合、次にステップS1を実行する。以下同様に、制御装置1は、トランジションTR1の判定、ステップS2の実行、トランジションTR2の判定、ステップS3の実行、およびトランジションTR3の判定を行い、最後のステップS4まで実行する。トランジションが成立していない場合、制御装置1は、実行中のブロックの処理を終了する。
図3は、図1に示す制御装置1および編集装置3の機能を実現する処理回路92の一例を示す図である。図3に示す処理回路92は、メモリ93とプロセッサ94とを備える。制御装置1の第1記憶部11、実行部12、書換え制御部14、第2記憶部15およびロールバック制御部16と、編集装置3の編集部32および記憶部34とは、メモリ93に記憶されたコンピュータプログラムをプロセッサ94が読み出して実行することにより実現される。メモリ93は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリーなどの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスクなどの記憶装置である。プロセッサ94は、CPU(Central Processing Unit)であり、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)などとも呼ばれる。なお、実行部12が実行する制御プログラムを記憶する領域である第1記憶部11と、バックアップ情報を記憶する領域である第2記憶部15とは、1つの記憶装置により実現されてもよいし、複数の記憶装置により実現されてもよい。
また、制御装置1の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
続いて、図1に示す制御装置1および編集装置3が行う実行中書換えについて具体例を用いて説明する。図4は、図1に示す編集装置3が行う制御プログラムProg1の編集の一例を示す図である。
編集装置3は、制御プログラムProg1の第1版を編集して第2版を生成し、制御装置1に実行中書換えを指示した後、さらに第2版を編集して第3版を生成し、制御装置1に実行中書換えを指示する。その後、編集装置3は、制御プログラムProg1の第3版を第2版に書換えるロールバックを指示し、さらに制御プログラムProg1の第2版を第1版に書換えるロールバックを指示する。
制御プログラムProg1の第2版は、第1版にステップS5およびS6を追加する変更を行ったものであり、第3版は、第2版にステップS7およびステップS8を追加する変更を行ったものである。制御プログラムProg1の第1版を第2版に書換える実行中書換え指示を制御装置1が受信したときには、制御装置1の実行部12は、制御プログラムProg1のブロックBL0のステップS0を実行中である。制御プログラムProg1の第2版を第3版に書換える実行中書換え指示を制御装置1が受信したときには、制御装置1の実行部12は、ステップS1を実行中である。また、制御プログラムProg1の第1版から第2版に編集したときの変更部分は、アドレス「20」から「31」までであり、第2版から第3版に編集したときの変更部分は、アドレス「32」から「41」までである。
ユーザは、編集装置3を用いて、既存のステップの動作内容、ステップ間を接続するトランジションを編集したり、新たなステップおよびトランジションを追加したりして、制御プログラムProg1を編集することが可能である。新たなステップおよびトランジションの追加は、ステップを示すオブジェクトである四角いブロック、トランジションを示すオブジェクトである横線などのオブジェクトを画面上でドラッグアンドドロップ操作して並べることにより行われる。
図5は、図1に示す制御装置1の実行する制御プログラムを書換える動作を示すシーケンス図である。編集装置3の編集部32は、ユーザの操作に従って、制御プログラムProg1の第1版を編集して第2版を生成する(ステップS101)。制御プログラムProg1の編集が終わると、編集装置3の編集部32は、制御装置1に実行中書換え指示と、制御プログラムProg1の第1版と第2版との差分を示す差分情報とを送信する(ステップS102)。
図6は、図1に示す編集装置3が表示する実行中書換え指示画面40を示す図である。この実行中書換え指示画面40は、編集部32が制御プログラムProg1の編集を終えた後、入出力部33の表示部に表示することが可能な画面である。実行中書換え指示画面40に表示されたメニューの中から、「プログラム変換+実行中書換え」を選択すると、編集部32は、画面上で編集されたオブジェクトが示す動作をプログラムに変換すると共に、制御プログラムProg1の第1版と第2版とのプログラムの差分を示す差分情報を生成する。
「プログラム変換+実行中書換え」が選択された後、ロールバック機能が無効になっている場合、編集部32は、入出力部33にロールバック機能選択画面42を表示させてもよい。ロールバック機能選択画面42は、ロールバック機能を有効にする操作を受け付ける画面である。
図7は、図1に示す編集装置3が表示する確認画面43を示す図である。図6に示すロールバック機能選択画面42で「はい」を選択したとき、または、予めロールバック機能が有効になっている場合には実行中書換え指示画面40で「プログラム変換+実行中書換え」を選択した直後、図7に示す確認画面43が表示される。確認画面43は、実行中書換えに関する現在の設定の概要を示しており、オプション設定ボタンが操作されると、実行中書換えに関する設定を変更することが可能である。確認画面43で「はい」ボタン44が操作されると、実行中書換えの実行が確定され、編集部32は、実行中書換え指示と、差分情報とを制御装置1に送信する。
図5の説明に戻る。編集装置3が送信した実行中書換え指示および差分情報を通信部13が受信すると、制御装置1の書換え制御部14は、制御プログラムProg1を書換える前に、バックアップ処理#1を実行する(ステップS103)。具体的には、書換え制御部14は、実行中書換え指示を受信する毎に、バックアップ情報を複数のバックアップ情報のそれぞれの順序を示す順序情報と共に第2記憶部15に記憶する。
図8は、図1に示す書換え制御部14が行うバックアップ処理において、第2記憶部15に記憶される情報を示す図である。書換え制御部14は、第2記憶部15に複数のバックアップ情報のそれぞれの順序を示す順序情報と共に、バックアップ情報を記憶する。バックアップ情報は、変更前の制御プログラムProg1と、制御プログラムProg1のうち実行中のステップを示す活性情報と、制御プログラムProg1の変更部分を特定するための差分情報とを含む。
図5の説明に戻る。バックアップ処理#1が完了すると、書換え制御部14は、ステップS102で受信した差分情報に基づいて、制御プログラムProg1の実行中書換え#1を実行する(ステップS104)。ステップS104の実行中書換え#1によって、実行部12が実行する制御プログラムProg1は、第1版から第2版に書換えられる。実行中書換え#1が終わると、書換え制御部14は、実行中書換え#1が完了したことを通知する完了通知を編集装置3に送信する(ステップS105)。
編集装置3の編集部32は、完了通知を受信すると、制御プログラムを読み込んで表示し、表示した制御プログラムに対するユーザの操作を受け付ける。編集部32は、ユーザの操作に従って、制御プログラムProg1の第2版を編集して第3版を生成する(ステップS106)。制御プログラムProg1の編集が終わると、編集部32は、制御装置1に実行中書換え指示と、制御プログラムProg1の第2版と第3版との差分を示す差分情報とを送信する(ステップS107)。
編集装置3が送信した実行中書換え指示および差分情報を通信部13が受信すると、制御装置1の書換え制御部14は、制御プログラムProg1を書換える前に、バックアップ処理#2を実行する(ステップS108)。具体的には、書換え制御部14は、実行中書換え指示を受信する毎に、バックアップ情報を複数のバックアップ情報のそれぞれの順序を示す順序情報と共に第2記憶部15に記憶する。このとき、書換え制御部14は、バックアップ処理#1において第2記憶部15に記憶したバックアップ情報を上書きすることなく、バックアップ処理#1のバックアップ情報を残したまま、バックアップ処理#2のバックアップ情報を追加で記憶する。
バックアップ処理#2が完了した後、書換え制御部14は、ステップS107で受信した差分情報に基づいて、制御プログラムProg1の実行中書換え#2を行う(ステップS109)。ステップS109の実行中書換え#2によって、実行部12が実行する制御プログラムProg1は、第2版から第3版に書換えられる。実行中書換え#2が終わると、書換え制御部14は、実行中書換え#2が完了したことを通知する完了通知を編集装置3に送信する(ステップS110)。
図9は、図5に示した書換え動作中に第1記憶部11および第2記憶部15に記憶される情報の具体例を示す図である。
制御プログラムProg1を変更する前、制御装置1の第1記憶部11には、実行中の制御プログラムProg1がブロック毎に記憶されている。第2記憶部15に準備された変更前の制御プログラムを退避するエリアには、まだ制御プログラムProg1が記憶されていない。このとき、バックアップ情報はまだないため、バックアップ情報を記憶する領域には値「0」が記憶されている。
実行中書換え#1の前に行われるバックアップ処理#1において、書換え制御部14は、第1記憶部11に記憶されている変更前の制御プログラムProg1のうち、変更された部分のプログラムを含むバックアップ情報を、複数のバックアップ情報のそれぞれの順序を示す順序情報と共に第2記憶部15に記憶させる。バックアップ情報は、変更前の制御プログラムProg1と、制御プログラムProg1の変更部分を特定するための情報である差分情報と、制御プログラムProg1のうち実行中の部分を示す活性情報とを含む。具体的には、変更前の制御プログラムProg1は、実行中書換え#1によって書換えられる部分のプログラムであるブロックBL0プログラムがバックアップ情報として第2記憶部15に記憶される。差分情報は、図9に示す例では、プログラム名、ブロック名、ステップ名、変更部分のスタートアドレスおよびエンドアドレスである。活性情報は、実行中のステップについては値「1」となり、実行中でない場合に値「0」となる。制御プログラムProg1、差分情報、および活性情報の他に、バックアップ情報には、変更前の制御プログラムProg1の書換え対象部分であるブロックBL0プログラムを記憶した退避エリアの先頭アドレスおよび最終アドレスが含まれる。また順序情報は、それぞれのバックアップ情報の順序を示す情報であれば内容を問わない。順序情報は、それぞれのバックアップ情報の日付情報、管理番号などである。またバックアップ情報が生成された順に、予めバックアップ情報を記憶する領域を決めておいてもよい。この場合、それぞれのバックアップ情報が記憶された領域自体が順序情報となる。
具体的には、図9に示す例では、実行中書換え#1の前に実行されるバックアップ処理#1において、書換え制御部14は、変更前の制御プログラムProg1のブロックBL0プログラムを第2記憶部15の退避エリアに記憶させる。書換え制御部14は、変更前の制御プログラムProg1のブロックBL0プログラムを記憶した記憶領域のアドレスとして、先頭アドレス「10000」および最終アドレス「10050」を第2記憶部15に記憶させ、変更部分を示す差分情報として、プログラム名Prog1、ブロック名BL0、ステップ名S5,S6を第2記憶部15に記憶させる。ここで第2記憶部15の退避エリアに記憶される制御プログラムProg1は、図4に示す第1版であり、変更部分は含まれておらず、変更部分のスタートアドレス、エンドアドレスはいずれも0のままである。また書換え制御部14は、バックアップ情報を生成した日付情報として、バックアップ情報を生成した日付である「20161115」を記憶する。なお、ここでは日付情報としたが、より細かくバックアップ情報を生成した時点を特定するために、日時情報としてもよい。また、書換え制御部14は、管理番号の最大値として「1」を第2記憶部15に書き込む。そして、実行中の制御プログラムProg1がブロックBL0のステップ0を実行しているため、書換え制御部14は、ステップ0の値が「1」である活性情報を記憶する。上記のバックアップ情報を記憶した後、書換え制御部14は、実行中書換え#1を実行して、第1記憶部11の実行中の制御プログラムProg1を記憶する領域である第1記憶部11に変更後のBL0プログラムを書き込む。
続いて実行中書換え#2の前に実行されるバックアップ処理#2では、書換え制御部14は、変更前の制御プログラムProg1のブロックBL0プログラムを第2記憶部15の退避エリアに記憶する。このとき書換え制御部14は、バックアップ処理#1によって記憶したブロックBL0プログラムとは異なる記憶領域に変更前のブロックBL0プログラムを記憶する。書換え制御部14は、変更前の制御プログラムProg1のブロックBL0プログラムを記憶した記憶領域のアドレスとして、先頭アドレス「10050」および最終アドレス「10100」を記憶し、変更部分を示す差分情報として、プログラム名Prog1、ブロック名BL0、ステップ名S7,S8、および変更部分の個数「1」、スタートアドレス「20」、エンドアドレス「31」を記憶する。また書換え制御部14は、バックアップ情報を生成した日付情報として、バックアップ情報を生成した日付である「20161116」を記憶する。また、書換え制御部14は、管理番号の最大値を「2」に更新する。そして、実行中の制御プログラムProg1がブロックBL0のステップ1を実行しているため、書換え制御部14は、ステップ1の値が「1」である活性情報を生成して記憶する。上記のバックアップ情報を記憶した後、書換え制御部14は、実行中書換え#2を実行して、第1記憶部11の実行中の制御プログラムProg1を記憶する領域である第1記憶部11に変更後のBL0プログラムを書き込む。
以上説明したように、本発明の実施の形態1によれば、制御装置1が制御プログラムProg1を実行中に、実行中書換え指示を受信する毎に、バックアップ情報が記憶される。バックアップ情報は、変更前の制御プログラムと、制御プログラムの変更部分を特定するための差分情報と、制御プログラムのうち実行中のステップを示す活性情報とを含む。バックアップ情報は、複数のバックアップ情報のそれぞれの順序を示す順序情報と共に記憶される。このため、制御プログラムProg1を書換えた後、バックアップ情報を用いて元の状態に戻すロールバック処理を複数回行うことが可能になる。このとき、バックアップ情報には活性情報が含まれているため、ロールバックした後に、制御プログラムProg1の実行状態も元の状態に戻すことが可能になる。
実施の形態2.
図10は、本発明の実施の形態2にかかる制御装置1の実行する制御プログラムをロールバックする動作を示すシーケンス図である。本実施の形態2にかかる制御装置1および編集装置3の構成は、実施の形態1と同様であるためここでは説明を省略する。なお、以下に説明するロールバック処理は、実施の形態1において、実行中書換え#1および実行中書換え#2が実行された後に行われるとする。このため、ロールバック処理の開始時点では、バックアップ処理#1およびバックアップ処理#2によって生成された2つのバックアップ情報が制御装置1の第2記憶部15に記憶されていることとする。
ユーザが編集装置3の入出力部33を用いてロールバック機能を選択する(ステップS201)と、編集部32は、制御装置1にバックアップ情報を要求するメッセージであるデータ要求を送信する(ステップS202)。
制御装置1がデータ要求を受信すると、通信部13を介してロールバック制御部16に入力される。ロールバック制御部16は、第2記憶部15に記憶されたバックアップ情報を取得する(ステップS203)。第2記憶部15に複数のバックアップ情報が記憶されている場合、ロールバック制御部16は、複数のバックアップ情報を取得する。ロールバック制御部16は、取得したバックアップ情報を編集装置3に送信する(ステップS204)。
編集装置3の編集部32は、制御装置1から取得したバックアップ情報を用いて、ロールバック実行画面を表示する(ステップS205)。
図11は、本発明の実施の形態2にかかる編集装置3が表示するロールバック機能を選択する機能選択画面45を示す図である。この機能選択画面45は、ロールバック実行メニュー46を含み、図10のステップS201では、ユーザがロールバック実行メニュー46を操作することで、ロールバック機能が選択されて、ステップS202のデータ要求が送信される。
ロールバック実行メニュー46を操作した後、制御装置1にバックアップ情報が記憶されていなかった場合、編集部32は、入出力部33の表示装置を用いて、ロールバックエラー画面47を表示する。ロールバックエラー画面47は、バックアップ情報が制御装置1内に存在しないことを通知するメッセージを含む。
図12は、図11に示すロールバック機能を選択する画面からリンクされたロールバック実行画面48−1を示す図である。図11に示すロールバック実行メニュー46を操作した後、制御装置1からバックアップ情報を取得すると、編集部32は、ロールバック実行画面48−1を表示する。ロールバック実行画面48−1は、制御装置1から取得した複数のバックアップ情報と、それぞれのバックアップ情報に含まれる制御プログラムを表示するためのプログラム表示ボタン49と、ロールバックの実行を指示するためのロールバック実行ボタン50とを含む。
図12に示すロールバック実行画面48−1は、2つのバックアップ情報を含んでいる。各バックアップ情報は、それぞれのバックアップ情報の順序を示す「No.」と、対象の制御プログラムを示す「プログラム名」と、バックアップ情報が生成された「日付」と、書換えによって変更される「変更部分」と、ロールバックしたときに書換えられる制御プログラムの内容を表示するための「プログラム表示」ボタンとを含む。バックアップ情報は、順序を示す数字が大きいほど新しく、最新のバックアップ情報がロールバック対象となる。図12の例では、2番目のバックアップ情報がロールバック対象である。
図13は、図12に示すプログラム表示ボタン49からリンクされたロールバックプログラム表示画面51を示す図である。図12に示すプログラム表示ボタン49が押下されると、編集部32は、押下されたプログラム表示ボタン49に対応する制御プログラムProg1を表示するロールバックプログラム表示画面51を表示する。このロールバックプログラム表示画面51は、対応する制御プログラムが示されており、編集装置3のユーザは、ロールバックプログラム表示画面51を参照することで、ロールバックした場合に制御プログラムProg1がどの状態に戻るのかを確認することができる。
図10の説明に戻る。入出力部33が図12に示すロールバック実行画面48−1のロールバック実行ボタン50の押下を検知する(ステップS206)と、入出力部33は、検知した操作内容を示す操作情報を編集部32に入力する。編集部32は、入力された操作情報に基づいて、ロールバック指示を制御装置1に送信する(ステップS207)。
制御装置1のロールバック制御部16は、ロールバック指示を受信すると、順序情報に基づいて、最新のバックアップ情報を選択する(ステップS208)。ロールバック制御部16は、選択したバックアップ情報を用いて、制御プログラムの書換えを行う(ステップS209)。ロールバック制御部16は、選択したバックアップ情報に含まれる活性情報が示すステップから制御プログラムProg1を実行する(ステップS210)。この例では、制御プログラムProg1のブロックBL0のステップ1から制御プログラムProg1が実行される。ロールバック制御部16は、ロールバック処理に用いたバックアップ情報を1つ削除する(ステップS211)。その後、ロールバック制御部16は、ロールバック完了通知を編集装置3に送信する(ステップS212)。
編集装置3の編集部32は、ロールバック完了通知を受信すると、ロールバック実行画面を更新して表示する(ステップS213)。図14は、図12に示すロールバック実行画面38−1がロールバック実行後に更新されて表示されるロールバック実行画面48−2を示す図である。ロールバック処理が1回実行されてバックアップ情報が1つ削除されたので、残る1つのバックアップ情報を含むロールバック実行画面48−2が表示される。
入出力部33が図14に示すロールバック実行画面48−2のロールバック実行ボタン50の押下を検知する(ステップS214)と、入出力部33は、検知した操作内容を示す操作情報を編集部32に入力する。編集部32は、入力された操作情報に基づいて、ロールバック指示を制御装置1に送信する(ステップS215)。
制御装置1のロールバック制御部16は、ロールバック指示を受信すると、順序情報に基づいて、最新のバックアップ情報を選択する(ステップS216)。ロールバック制御部16は、選択したバックアップ情報を用いて、制御プログラムの書換えを行う(ステップS217)。ロールバック制御部16は、選択したバックアップ情報に含まれる活性情報が示すステップから制御プログラムProg1を実行する(ステップS218)。この例では、制御プログラムProg1のブロックBL0のステップ0から制御プログラムProg1が実行される。ロールバック制御部16は、ロールバック処理に用いたバックアップ情報を1つ削除する(ステップS219)。その後、ロールバック制御部16は、ロールバック完了通知を編集装置3に送信する(ステップS220)。
図15は、図10に示したロールバック動作中に第1記憶部11および第2記憶部15に記憶されている情報の具体例を示す図である。
図10に示す動作を開始する時点では、第1記憶部11および第2記憶部15に記憶されている情報は、図9の「実行中書換え#2」の状態である。図10のステップS211において、ロールバック制御部16がバックアップ情報を1つ削除すると、図15のロールバック#2に示すように、管理番号2のバックアップ情報が削除されて、管理番号の最大値が「1」に更新される。その後、ステップS219において、ロールバック制御部16がバックアップ情報をさらに1つ削除すると、図15のロールバック#1に示すように、管理番号1のバックアップ情報が削除されて、管理番号の最大値も削除される。
図16は、図10に示す動作においてロールバック処理の実行エラーが発生する条件を示す図である。制御装置1が実行する制御プログラムは切り替えられる場合がある。実行中の制御プログラムが切り替えられた場合、本実施の形態2においては、異なる制御プログラムへのロールバックが指示された場合、エラー処理としてロールバックを行わない。具体的には、図16に示すように、制御プログラムProg1の第1版のブロックBL0を実行中であり、その後実行中書換えを行って、制御プログラムProg1の第2版のブロックBL0に書換えたとする。この場合、実行中の制御プログラムProg1を第2版から第1版にロールバックすることが可能である。
実行中の制御プログラムがProg1の第2版から制御プログラムProg2の第1版に切り替えられた場合、この状態で制御プログラムProg1のロールバック実行ボタンが押下されても、ロールバック対象の制御プログラムと実行中の制御プログラムとが異なる場合、エラー処理が行われてロールバック処理は実行されない。制御プログラムProg2の第1版のブロックBL0を実行中に実行中書換えが行われて、制御プログラムProg2の第2版に書換えられた場合、ロールバック処理によって制御プログラムProg2の第1版にロールバックすることは可能である。しかしながら、制御プログラムProg2の第2版を実行中に制御プログラムProg1のロールバック実行ボタンが押下されても、ロールバック処理は実行されない。
図17は、図10のロールバック処理を行う際に制御装置1が実行する動作を示すフローチャートである。制御装置1のロールバック制御部16は、編集装置3からロールバック指示を受信する(ステップS301)。ロールバック制御部16は、ロールバック対象の制御プログラムと実行部12が実行中の制御プログラムとを比較して、ロールバック対象の制御プログラムは実行中の制御プログラムであるか否かを判断する(ステップS302)。ロールバック対象の制御プログラムが実行中の制御プログラムである場合(ステップS302:Yes)、ロールバック制御部16は、ロールバックを実行する(ステップS303)。ロールバック対象の制御プログラムが実行中の制御プログラムでない場合(ステップS302:No)、ロールバック制御部16は、エラー処理を行う(ステップS304)。エラー処理の内容は、例えばエラーメッセージを表示することであり、ロールバック処理は実行されない。
図18は、本発明の実施の形態1および2の効果の一例を示す図である。本発明の実施の形態1では、バックアップ情報が制御装置1の内蔵する第2記憶部15に記憶される。そして、実施の形態2では、ロールバックを行う際に、編集装置3は、制御装置1からバックアップ情報を取得して表示し、ロールバック指示ボタンが押下されると、ロールバック指示が制御装置1に送信される。このため、制御プログラムの編集を行った編集装置3と、ロールバック指示を出力する編集装置3とは同一の装置でなくてもよい。例えば図18に示すように、制御装置#1の制御プログラムを編集していた編集装置#1が他の用途で使用中であって、制御装置#1にロールバック指示を出力することができない状態において、制御装置#1の制御プログラムをロールバックする必要が生じた場合、編集装置#3が制御装置#1にロールバック指示を送信することができる。
以上説明したように、本発明の実施の形態2によれば、ロールバック制御部16は、ロールバック指示を受信する毎に、複数のバックアップ情報から順序情報に基づいて選択したバックアップ情報を用いて、第1記憶部11に記憶された制御プログラムを書換えると共に、選択したバックアップ情報に含まれる活性情報が示すステップから制御プログラムの実行を開始するように実行部12に指示する。この構成により、ロールバック指示を受信する毎に、1つずつ制御プログラムを元の状態に戻して複数回のロールバックを実現することが可能になる。このとき、活性情報が示す部分から制御プログラムが実行されるため、実行状態まで書換え前の状態に戻すことが可能になる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1 制御装置、2 被制御装置、3 編集装置、11 第1記憶部、12 実行部、13 通信部、14 書換え制御部、15 第2記憶部、16 ロールバック制御部、31 通信部、32 編集部、33 入出力部、34 記憶部、40 実行中書換え指示画面、42 ロールバック機能選択画面、43 確認画面、45 機能選択画面、46 ロールバック実行メニュー、47 ロールバックエラー画面、48−1,48−2 ロールバック実行画面、49 プログラム表示ボタン、50 ロールバック実行ボタン、92 処理回路、93 メモリ、94 プロセッサ。

Claims (5)

  1. ステップ及びトランジションの情報を含む制御プログラムを記憶する第1記憶部と、
    第2記憶部と、
    前記第1記憶部に記憶された制御プログラムを実行して被制御装置を制御する実行部と、
    前記制御プログラムを実行中に、前記第1記憶部に記憶された前記制御プログラムを書換える実行中書換え指示と、前記制御プログラムの変更部分を示す差分情報とを受信する通信部と、
    前記実行中書換え指示を受信する毎に、書換え前の前記制御プログラムと、前記差分情報と、前記制御プログラムのうち実行中のステップを示す活性情報とを含むバックアップ情報を、複数の前記バックアップ情報のそれぞれの順序を示す順序情報と共に前記第2記憶部に記憶させ、前記差分情報に基づいて前記制御プログラムを書換える書換え制御部と、
    を備えることを特徴とする制御装置。
  2. 前記通信部は、前記制御プログラムを書換え前の状態に戻すロールバック指示を受信し、
    前記ロールバック指示を受信する毎に、前記順序情報に基づいて選択した前記バックアップ情報を用いて、前記第1記憶部に記憶された前記制御プログラムを書換えると共に、選択した前記バックアップ情報に含まれる前記活性情報が示すステップから前記制御プログラムの実行を開始するように前記実行部に指示するロールバック制御部、
    をさらに備えることを特徴とする請求項1に記載の制御装置。
  3. 前記通信部は、前記バックアップ情報を要求するデータ要求を受信し、
    前記ロールバック制御部は、前記データ要求に応じて、前記第2記憶部に記憶されたバックアップ情報を要求元の装置に返送することを特徴とする請求項2に記載の制御装置。
  4. 請求項3に記載の制御装置の前記制御プログラムを編集する編集装置であって、
    前記実行中書換え指示と前記差分情報とを前記制御装置に送信した後、前記データ要求を前記制御装置に送信して前記バックアップ情報を取得し、取得した前記バックアップ情報に含まれる変更前の前記制御プログラムを前記順序情報に従って表示部に表示する編集部、
    を備えることを特徴とする編集装置。
  5. ステップ及びトランジションの情報を含む制御プログラムを実行中に書換える複数回の実行中書換えの指示を受信した後、前記実行中書換えが行われる前の状態に前記制御プログラムを戻す複数回のロールバックの指示を受信すると、前記ロールバックの指示を受信した回数前の前記実行中書換えの指示を受信した時点で実行中であったステップから前記制御プログラムの実行を開始することを特徴とする制御装置。
JP2017563626A 2017-05-22 2017-05-22 制御装置および編集装置 Active JP6305667B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/019075 WO2018216083A1 (ja) 2017-05-22 2017-05-22 制御装置および編集装置

Publications (2)

Publication Number Publication Date
JP6305667B1 JP6305667B1 (ja) 2018-04-04
JPWO2018216083A1 true JPWO2018216083A1 (ja) 2019-06-27

Family

ID=61828562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017563626A Active JP6305667B1 (ja) 2017-05-22 2017-05-22 制御装置および編集装置

Country Status (3)

Country Link
JP (1) JP6305667B1 (ja)
CN (1) CN109287123B (ja)
WO (1) WO2018216083A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112204479B (zh) * 2018-05-29 2021-12-07 三菱电机株式会社 程序管理系统、编程辅助装置、程序管理方法及编程辅助程序

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764614A (ja) * 1993-06-23 1995-03-10 Hitachi Ltd プログラム管理装置および方法並びにプログラム作成装置
US5727170A (en) * 1994-12-29 1998-03-10 Siemens Energy & Automation, Inc. User defined port and protocol scheme for a programmable logic controller
US5659705A (en) * 1994-12-29 1997-08-19 Siemens Energy & Automation, Inc. Serial access memory cartridge for programmable logic controller
JP3679844B2 (ja) * 1995-11-09 2005-08-03 ファナック株式会社 シーケンス・プログラムの実行装置
US5777874A (en) * 1996-02-12 1998-07-07 Allen-Bradley Company, Inc. Programmable controller backup system
JP2006330867A (ja) * 2005-05-24 2006-12-07 Keyence Corp プログラム変更履歴管理システム及びこれに適用されるプログラム編集装置並びにプログラム
KR101056761B1 (ko) * 2007-04-26 2011-08-16 가부시끼가이샤 도시바 프로그래머블 컨트롤러의 다이어그램의 디버그 시스템, 그 프로그래밍 장치 및 그 프로그램을 기록한 컴퓨터로 판독가능한 기록 매체
JP5964077B2 (ja) * 2012-02-27 2016-08-03 三菱重工業株式会社 制御プログラム管理システム、及び制御プログラムの変更方法
WO2013168224A1 (ja) * 2012-05-08 2013-11-14 三菱電機株式会社 プログラマブルロジックコントローラ、プログラミングツール及びプログラム・パラメータ編集システム
DE112016006057T5 (de) * 2016-01-27 2018-08-30 Mitsubishi Electric Corporation Steuerungsvorrichtung und Bearbeitungsvorrichtung

Also Published As

Publication number Publication date
CN109287123A (zh) 2019-01-29
JP6305667B1 (ja) 2018-04-04
CN109287123B (zh) 2020-08-07
WO2018216083A1 (ja) 2018-11-29

Similar Documents

Publication Publication Date Title
JPWO2015136970A1 (ja) 制御装置及び制御システム
JP2006119884A (ja) シーケンスプログラムの編集装置
JP5934428B2 (ja) プログラマブル表示器、プログラマブルコントローラシステム、プログラム
JP2006330867A (ja) プログラム変更履歴管理システム及びこれに適用されるプログラム編集装置並びにプログラム
JP6305667B1 (ja) 制御装置および編集装置
JPWO2019026248A1 (ja) プログラム開発支援装置、プログラム開発支援方法、及びプログラム開発支援プログラム
JP2006164002A (ja) 数値制御装置
JP4566904B2 (ja) システム、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画像データ作成プログラムおよびそのプログラムを記録した記録媒体
JP5266032B2 (ja) ワークフローサーバ、ワークフローサーバの制御方法、プログラム、及び、記録媒体
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP6403919B1 (ja) 作画ソフトウェア、記憶媒体および作画装置
JP2006330866A (ja) プログラマブル・ロジック・コントローラ
JP2007179112A5 (ja)
WO2022180704A1 (ja) 表示制御装置、表示制御方法および表示制御プログラム
JP6794668B2 (ja) プログラミング装置
JP2009223471A (ja) シミュレーション・システム
JP2009169731A (ja) マニュアル作成支援システム
JP6869428B2 (ja) データ作成装置、データ転送方法およびデータ転送プログラム
TWI528267B (zh) 可程式顯示器用畫面資料編輯裝置
JP2006293647A (ja) プログラマブル表示器
JP6580920B2 (ja) 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム
JP2005122623A (ja) 複合プログラムおよびプログラム処理装置
JP2017194738A (ja) 制御プログラム作成装置及び制御プログラム作成方法
JP5028644B2 (ja) 電子式計算機および計算機制御プログラム
JP2008234379A (ja) ソフトウェア生成装置ならびにソフトウェア生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171207

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171207

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180131

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180306

R150 Certificate of patent or registration of utility model

Ref document number: 6305667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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