JPWO2013145105A1 - シーケンスプログラムデバッグ支援装置 - Google Patents

シーケンスプログラムデバッグ支援装置 Download PDF

Info

Publication number
JPWO2013145105A1
JPWO2013145105A1 JP2014507076A JP2014507076A JPWO2013145105A1 JP WO2013145105 A1 JPWO2013145105 A1 JP WO2013145105A1 JP 2014507076 A JP2014507076 A JP 2014507076A JP 2014507076 A JP2014507076 A JP 2014507076A JP WO2013145105 A1 JPWO2013145105 A1 JP WO2013145105A1
Authority
JP
Japan
Prior art keywords
unit
program
variable
invalidation
execution
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
JP2014507076A
Other languages
English (en)
Other versions
JP5599535B2 (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 JP5599535B2 publication Critical patent/JP5599535B2/ja
Publication of JPWO2013145105A1 publication Critical patent/JPWO2013145105A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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
    • 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
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13142Debugging, tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

実施の形態のシーケンスプログラムデバッグ支援装置(50)は、プログラマブルロジックコントローラからユーザが選択した無効化ユニットを受け付ける構成編集部(1)と、シーケンスプログラム上でユニットが使用する変数を保持する変数保持部(2)と、シーケンスプログラムを編集することができるプログラム編集部(3)と、シーケンスプログラムを記憶する記憶部(4)と、シーケンスプログラムを実行部(11)が実行可能な実行コードに変換する変換部(5)と、無効化ユニットが使用する変数を変数保持部から取得し、取得した変数がシーケンスプログラムの中で使用されている箇所を検索する検索部(6)と、その箇所に対応する実行コードの区間を実行しない無効化区間として無効化区間設定ファイルに書き込む無効化設定部(7)と、を具備したエンジニアリングツール(100)と、無効化区間設定ファイルに基づいて、無効化区間を実行しないように実行部を制御する実行制御部(12)と、を備える。

Description

本発明は、シーケンスプログラムデバッグ支援装置に関する。
プログラマブルロジックコントローラ(PLC)システム向けのシーケンスプログラムのデバッグ作業における動作確認時などに、システム内の特定ユニットに関する動作プログラムだけを実行させたくない場合、従来のエンジニアリングツールにおいては、以下のような一連の操作を行う必要があった。
(1)対象ユニットに関してプログラム内で使用している変数一覧を検索する。(2)検索した変数を使用しているプログラムの場所(複数)を特定する。(3)特定したプログラムを実行しないようにする。具体的には、プログラムをバックアップして削除する、コメントアウトするなどの編集操作を行う。(4)プログラムをコンパイルする(実行コードにする)。(5)コンパイルした実行コードをプログラマブルロジックコントローラ(PLC)に書き込む。(6)プログラマブルロジックコントローラ(PLC)を再起動する。
例えば、特許文献1においては、特定のステップの実行を無効化する技術が開示されている。
特開2008−59421号公報
上述のように、従来の技術によればシーケンスプログラムのデバッグ作業の工数が多くなるという問題があった。
本発明は、上記に鑑みてなされたものであって、特定ユニットに関連するプログラムを実行しないで動作確認するシーケンスプログラムのデバッグ作業の工数を大幅に削減することが可能なシーケンスプログラムデバッグ支援装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、プログラマブルロジックコントローラを構成するユニットからユーザが選択した無効化ユニットを受け付けるユニット構成表示編集部と、前記プログラマブルロジックコントローラで実行されるシーケンスプログラム上で前記ユニットが使用する変数を前記ユニット毎に保持するユニット変数保持部と、前記シーケンスプログラムをユーザが編集することができるプログラム表示編集部と、前記シーケンスプログラムを記憶するプログラム記憶部と、前記シーケンスプログラムを前記プログラマブルロジックコントローラのプログラム実行部が実行可能な実行コードに変換するプログラム変換部と、前記無効化ユニットが使用する変数を前記ユニット変数保持部から取得し、取得した前記変数が前記シーケンスプログラムの中で使用されている箇所を検索する変数使用箇所検索部と、前記箇所に対応する前記実行コードの区間を実行しない無効化区間として、無効化区間設定ファイルに書き込む実行無効化設定部と、を具備したエンジニアリングツールと、前記無効化区間設定ファイルに基づいて、前記無効化区間を実行しないように前記プログラム実行部を制御する実行制御部と、を備えることを特徴とする。
本発明にかかるシーケンスプログラムデバッグ支援装置は、シーケンスプログラムのデバッグ作業の工数を大幅に削減できるという効果を奏する。
図1は、従来のエンジニアリングツールにおいて特定ユニットに関する動作プログラムだけを実行させたくない場合に必要な操作を示す図である。 図2は、実施の形態1にかかるシーケンスプログラムデバッグ支援装置の基本的な構成を示す図である。 図3は、実施の形態1にかかるユニット構成表示編集部のイメージを示す図である。 図4は、プログラム表示編集部(ラダーエディタ)にラダープログラムを表示したイメージを示す図である。 図5は、実施の形態1におけるシーケンスプログラムデバッグ支援装置の動作を示す処理フローを示す図である。 図6は、ラダープログラムの基本構成の様子を示す図である。 図7は、実施の形態1にかかるユーザの操作とシーケンスプログラムデバッグ支援装置の動作の様子を示した図である。 図8は、ユニット種類ごとの変数の種類の一覧であるユニット変数種類一覧を示す図である。 図9は、PLCシステム内でのユニット名とその変数名一覧であるユニット使用変数名一覧を示す図である。 図10は、選択されたユニットが使用する変数がシーケンスプログラムで使用されている箇所を示す図である。 図11は、シーケンスプログラム(ラダープログラム)と実行コードの実行区間の対応を示す図である。 図12は、無効化区間設定ファイルの内容を示す図である。 図13は、実施の形態2にかかるシーケンスプログラムデバッグ支援装置の基本的な構成を示す図である。 図14は、実施の形態2におけるシーケンスプログラムデバッグ支援装置の動作を示す処理フローを示す図である。
プログラマブルロジックコントローラ(PLC)システム向けのシーケンスプログラムのデバッグ作業における動作確認時などに、システム内の特定ユニットに関する動作プログラムだけを実行させたくない場合、従来のエンジニアリングツールにおいては、図1に示す以下のような一連の操作を行う必要があった。
まず、図1の(1)において対象ユニットに関してプログラム内で使用している変数一覧を検索する。そして、(2)において検索した変数を使用しているプログラムの場所(複数)を特定する。そして、(3)において特定したプログラムを実行しないように編集する。具体的には、プログラムをバックアップして削除する、コメントアウトするなどの編集操作を行う。そして、(4)においてプログラムをコンパイルする(実行コードにする)。そして、(5)においてコンパイルした実行コードをプログラマブルロジックコントローラ(PLC)に書き込む。最後に、(6)においてプログラマブルロジックコントローラ(PLC)を再起動(リスタート)する。
このように、従来のエンジニアリングツールにおいてはデバッグ作業の工数が多くなるという問題があった。
以下に、本発明の実施の形態にかかるシーケンスプログラムデバッグ支援装置50を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
本発明の実施の形態1にかかるシーケンスプログラムデバッグ支援装置50の基本的な構成を図2に示す。シーケンスプログラムデバッグ支援装置50を実現する基本的な構成としては、エンジニアリングツールソフトウェアがインストールされたパソコンなどであるエンジニアリングツール100とエンジニアリングツール100で作成したプログラムを実行するプログラマブルロジックコントローラ(PLC)のCPU200(ハードウェア)からなる構成を考えることができる。CPU200は、プログラマブルロジックコントローラ(PLC)本体(全体は図示しない)の一部である。
以下で、各構成要素の概要を説明する。エンジニアリングツール100は、PLCシステムで動作させるプログラムを編集するツールであり、たとえばエンジニアリングツールソフトウェアがインストールされたパソコンなどで実現できる。エンジニアリングツール100は以下に示す各処理部を備える。
ユニット構成表示編集部1:
PLCシステムで使用するユニット構成を設定することができるエディタであり、図3にイメージを示す。ユニット構成表示編集部1において構成要素として設定できるユニットには、入出力ユニット、AD変換ユニット、位置決めユニットなどがある。ユニット構成表示編集部1は、PLCシステムを構成するユニットからユーザが選択した無効化ユニットを受け付けることができる。
ユニット変数保持部2:
ユニットとそのユニットを操作するための変数一覧との対応をたとえばデータベース(DB)として保持する。たとえば、図3に示すように「入力ユニット1」には「X0,X1,X2,X3」という名前の変数が対応するなどの情報がデータベースとしてユニット変数保持部2に保持される。ユニット変数保持部2は、エンジニアリングツールソフトウェアがインストールされたパソコンの記憶領域あるいは記憶装置などに含まれる。
プログラム表示編集部3:
CPU200で実行するプログラムコードを編集することができるエディタである。PLCシステムではラダー言語が使われることが多いので、ラダー言語に対するプログラム表示編集部3のイメージを図4に示す。
プログラム記憶部4:
プログラム表示編集部3で作成したプログラムコードを記憶する。例えば、ラダー言語で作成したプログラムコードの基本的構成要素は、回路記号と変数である。回路記号は接点やコイルといったPLCシステムでの処理を表し、変数はその処理の対象を表している。プログラム記憶部4は、エンジニアリングツールソフトウェアがインストールされたパソコンの記憶領域あるいは記憶装置などに含まれる。
プログラム変換部5:
具体的にはコンパイラであり、これによりプログラム記憶部4に保持されているプログラムコードをCPU200で実行可能な実行コードに変換する。実行コードは、CPU200で実行する処理を並べたものであり、たとえば、命令とそのオペランドからなるコマンドの列として表現されている。コマンドの列の各コマンドには実行順序に相当する番号(以後「ステップ番号」と呼ぶ)が付与されている。
変数使用箇所検索部6:
変数とプログラムを指定して、変数がプログラム中で使われている箇所の一覧を探索・出力する。たとえば、プログラム記憶部4の中に保持されているラダープログラム(ラダー言語によるプログラム)の中の5番目の回路記号に変数「X0」が使われていた場合、「X0」の使用箇所探索結果に、「5番目」という結果を出力する。
実行無効化設定部7:
実行コードの中で実行しない区間(無効化区間)を設定し、無効化区間設定ファイルに書き込む。無効化区間の指定方法としては、例えば、対象実行コード中の開始ステップ番号と終了ステップ番号を指定する方法がある。
PLC通信部8:
実行コードと無効化区間設定ファイルを、CPU200に書き込む機能を提供する。
次に、CPU200の各処理部について説明する。CPU200は、実行コードを実行するハードウェアであり、プログラム実行部11および実行制御部12を備える。
プログラム実行部11:
実行コードの処理を実行するCPU200の中核(コア)部分のハードウェアである。
実行制御部12:
無効化区間設定ファイルの内容を読み、その内容にしたがって、プログラム実行部11の実行を制御する。たとえば、「実行コードのステップ番号5番からステップ番号10番までを実行しない」という内容の実行制御を行うことができる。実行制御部12の機能は、CPU200上で動作するOSあるいはファームウェアの機能として実現される。
上述した構成を備えたシーケンスプログラムデバッグ支援装置50によりPLCシステム向けプログラムのデバッグ時に「特定ユニットに関連するプログラムを実行しないようにする」機能を実現する。故障などにより特定のユニットをPLCシステムから外した場合の動作を調べたいときなどには、当該特定のユニットを使用するプログラムの実行をユーザが無効化して調べることができるようにこのような機能が求められる。そのための前提として、以下に説明する(ユニット変数の一覧登録)、(ラダープログラムの作成)、(実行コードの書き込み)が行われている必要がある。
(ユニット変数の一覧登録)
PLCシステムを構築には、電源、CPU、入出力などのユニット構成を決める必要がある。ユニット構成を作成する操作のイメージを図3を例にして説明する。ユニット構成は、ユニット構成表示編集部1において部品一覧からユニットをドラッグ&ドロップすることを繰り返して作成する。
その際、選択・配置したユニットを操作するための変数一覧をユニット変数保持部2に登録しておく。選択ユニットを操作するために用意された変数の種類の一覧である[ユニット変数種類一覧](図8)が、ユニットに対応した情報としてユニット変数保持部2のデータベース等にあらかじめ保持されているものとする。図8の「ユニット種類」とは製品名のことである。ユニット構成の作成時は、選択したユニットの[ユニット変数種類一覧]を読み出し、それらに具体的な変数名をつけて、その変数名一覧とユニット名との対応である[ユニット使用変数名一覧](図9)をユニット変数保持部2に記録する処理を行う。図9の「ユニット名」とはPLCシステム内でのユニットの名称である。図9は、図3のユニット構成表示編集部1において「部品一覧から「Q04型入力ユニット」を選んで、ユニット構成に追加した操作」を行ったときのデータの生成イメージを示した。部品一覧から「Q04型入力ユニット」を選ぶと、図8の1行目を元に当該ユニットを操作するために使用する変数名一覧を含む図9の内容がユニット変数保持部2に追加記録される。
(ラダープログラムの作成)
プログラム表示編集部3の具体例としてラダーエディタを使ってラダープログラムを作成する。プログラム表示編集部3(ラダーエディタ)にラダープログラムを表示したイメージを図4に示し、ラダープログラムの基本構成の様子を図6に示す。図6を用いてラダープログラムの基本構成について説明する。説明を簡単化するために、ラダープログラムの構成要素である回路要素は、ここでは接点(a接点)とコイルのみであるものとする。他の回路記号(命令)を使ったラダープログラムに対しても本実施の形態は有効である。
ラダープログラムの概略を説明する。図6に示すようにラダープログラムは、「回路ブロック」を実行順に並べたものである。回路ブロックは、1つの「条件部」と1つの「動作部」からなる。「条件部」は、接点が直列あるいは並列に接続されたひとかたまりの回路である。「動作部」は、コイルが直列に接続されたひとかたまりの回路である。「回路ブロック」には、「ステップ番号」が付く。「ステップ番号」は、プログラム全体の中で「回路ブロック」を特定する識別子であるとともに、PLCシステムにおける実行順を示すものとする。
1つの「回路ブロック」内の動作は、その「条件部」が導通したときに、「動作部」を実行する。よって、ラダープログラムのデバッグ作業において、特定の「回路ブロック」を実行させたくないときは、従来は、「条件部」に常時OFF(非導通)となる接点を直列接続するなどの方法を取っていた。
接点およびコイルのことを回路要素と呼ぶ。回路要素は、回路記号と変数からなる。回路記号は、接点およびコイルの種別を表すシンボルであり、実行コードにおいては命令に相当する。
変数は、回路記号(命令)の処理対象となるデータを表現したものである。前述した[ユニット使用変数名一覧]に登録された変数名をここに使うことができる。図6の○で囲んだ回路要素が、図9の「入力ユニット1」に対応する変数名を使用した箇所である。
作成したラダープログラムは、各ユニットを操作するために使用する変数が使われている「回路ブロック」が検索できるデータ構造で、プログラム記憶部4に記憶される。
なお、本実施の形態においてはラダープログラムを例として説明を行ったが、ST(Structured Text)、FBD(Function Block Diagram)といった他のプログラミング言語を使用しても、本実施の形態にかかるシーケンスプログラムデバッグ支援装置は実現可能であり同様な効果が得られる。
(実行コードの書き込み)
作成したラダープログラムは、プログラム変換部5(コンパイラ)によってCPU200で実行可能な実行コードに変換される。実行コードは、PLC通信部8により、CPU200に書き込まれ、実行可能な状態となっている。
以上を前提として、シーケンスプログラムデバッグ支援装置50によりPLCシステム向けプログラムのデバッグ時に「特定ユニットに関連するプログラムを実行しないようにする」機能を実現する。この機能を実現するときのユーザの操作とシーケンスプログラムデバッグ支援装置50の動作を、処理フローを示した図5および処理の様子を示した図7を用いて以下に説明する。
(ユニットを使用するプログラムの実行無効化操作)
まず、図5のステップS101において、特定のユニットを使用するプログラムの実行をユーザが無効化する。このときの操作イメージは、図7の「(1)ユニット構成図からユニットを選んで、メニューから実行無効化を実行」に示したものである。具体的には、ユーザは、ユニット構成表示編集部1のユニット構成図上でユニットを選択し、メニューの「使用回路を無効化」を実行する。この操作は、キーやツールバーボタンで行えるようにしても構わない。選択されたユニットの識別子(ユニット名)を受け付けたユニット構成表示編集部1は、当該ユニットの識別子(ユニット名)を変数使用箇所検索部6へと通知する。
(ユニットに対応する変数一覧の取得)
ユニットの識別子(ユニット名)を知らされた変数使用箇所検索部6は、ユニット変数保持部2から当該ユニットが使用するユニット変数の一覧を取得する(ステップS102)。具体的には、例えば通知されたユニット名が「入力ユニット1」であるならば、当該ユニット名をキーにして、上述した(ユニット変数の一覧登録)において登録した図9から、使用変数名一覧を取得する。従ってこの例では、「X0,X1,X2,X3」の4つの変数を取得する。
(変数使用箇所一覧の検索)
変数使用箇所検索部6は、上記(ユニットに対応する変数一覧の取得)で取得した4つの変数について、プログラムで使われている箇所の一覧を検索する(ステップS103)。なおデバッグ作業時間短縮のため、ここで取得した4つの変数の中から無効化する変数をユーザが選択できるようにしてもよい。即ち、4つの変数の中からユーザが選択した変数のみについてプログラムで使われている箇所の一覧を検索するようなオプションを付加してもよい。例えば、入力デバイスに対応する変数は使う(無効化しない)が、出力デバイスに対応する変数は使わない(無効化する)、などをユーザが指定できるようにするオプションである。このようなオプションを付加しない場合は、変数使用箇所検索部6は上記取得した4つの変数全てについて、1つずつ図6のラダープログラムの中での使用箇所を検索してゆく。その結果、図6のラダープログラムの例では、図10に示した3箇所の変数が検索され、当該使用箇所である回路ブロックが判明する。検索にヒットした変数は図6において○で囲んで示してある。なお、本実施の形態においては、ラダープログラムが1つの場合について説明したが、複数のプログラムを対象とした場合も本方式は有効である。
(使用箇所の実行無効化設定)
実行無効化設定部7は、上記(変数使用箇所一覧の検索)で見つかった変数を使用している図6のラダープログラム中の3箇所について、その箇所に対応する実行コードの区間を実行しない区間、即ち無効化区間として設定し、無効化区間設定ファイルに書き込む(ステップS104)。たとえば、対象となるラダープログラムの実行コードが図11に示す[ラダープログラムと実行区間の対応]のような構造で記録されているとする。ここから(変数使用箇所一覧の検索)の検索結果である3つの回路ブロックの開始ステップ番号、終了ステップ番号を取得し、図12に示す[無効化区間設定]に書き移すことで無効化区間設定ファイルに書き込みが実現できる。
なお、本実施の形態においては、最初に何も設定が記載されていない無効化区間設定ファイルに(変数使用箇所一覧の検索)における検索結果から作成した無効化区間を書き込むとして説明したが、無効化区間設定ファイルにすでに書き込まれている無効化区間に新たに無効化区間を追加する場合や無効化区間を置き換える場合にも本方式は有効である。
(無効化区間設定のCPUへの書き込み指示)
ユーザは、上記(使用箇所の実行無効化設定)で作成した無効化区間設定ファイルを、CPU200に書き込む操作を行う。この操作は、従来技術の「PC書き込み」あるいは「RUN中書込み」などの操作と同等の操作で実現できる。具体的には、ユーザの指示(ステップS105)を受けたエンジニアリングツール100においてPLC通信部8が無効化区間設定ファイルをCPU200に書き込む(転送する)(ステップS106)。なお、この操作はユーザがエンジニアリングツール100に指示を出さなくても、即ち、ステップS105を省いても実現可能である。具体的には、(使用箇所の実行無効化設定)で無効化区間設定ファイルが更新されたときに、エンジニアリングツール100(PLC通信部8)が自動的にCPU200への書き込み処理を行う(ステップS106)ようにしてもよい。この処理の様子は、図7の「(2)無効化区間設定ファイルをPLCに書き込み」に示す。
(実行中プログラムの実行制御)
上記(無効化区間設定のCPUへの書き込み指示)で無効化区間設定ファイルを受け取った(書き込まれた)CPU200は、その内容に従って実行制御部12が実行中の実行コードの実行を制御する(ステップS107)。このことにより、上記(ユニットを使用するプログラムの実行無効化操作)で選択したユニットに関連する箇所のプログラムの非実行を実現する。具体的には、実行制御部12は、無効化区間の開始ステップ番号で指定されたステップ番号で実行コードの実行をストップし(従来のブレイクポイント機能)、次にその無効化区間の終了ステップ番号までの実行を飛ばして、次のステップ番号から実行を継続する。
なお、実行制御部12が上記制御を行う場合に、プログラムの非実行の間のPLCシステムのスリープ時間を指定できるようにすることで、無効化したときの実行速度を調整することができる。例えば、早く実行したい場合はスリープ時間=0を指定してもよいが、実際の速度に合わせたい場合は非実行のステップ数からスリープ時間を推定してその間PLCシステムをスリープさせてもよい。これにより、実行時間を短縮してデバッグ時間を効率化することも可能である上、非実行のステップ数からスリープ時間を推定してPLCシステムをスリープさせれば最も遅いケースの実行状態などを模擬することもできる。即ち、いろいろな環境を模擬しながらデバッグすることが可能となる。
以上説明したように、本発明の実施の形態にかかるシーケンスプログラムデバッグ支援装置50においては、シーケンスプログラムの中の特定のユニットに関連する動作プログラムだけを実行させないようにするために、以下の3点を自動的に実行する。
(1)対象のユニットに関連する変数の一覧を取得する。
(2)変数を使用しているシーケンスプログラム中の箇所(区間)に関する情報を取得する。
(3)シーケンスプログラムおよびそれに対応する実行コードは変更せずに上記(2)で取得した箇所(区間)についての実行を無効化する設定をファイルに書き込む。
これにより、ユーザが、(1)メニュー画面などにおいて対象となるユニットを選択して、実行無効化を指示する、(2)無効化区間を設定したファイルのPLCへの書き込みを指示する(シーケンスプログラムデバッグ支援装置に自動実行させる場合は省略可能)、のみで特定のユニットに関連する動作プログラムの非実行を実現できる。
その結果、ユニットに関連する部分をまとめて実行無効化できるため、手動で無効化するときのプログラム修正作業時間に比べ、工数を飛躍的に短縮できるようになる。また、シーケンスプログラムデバッグ支援装置50がユニットに関連する情報を管理していることにより、人による判断や操作の間違いを少なくできるため、手動によるコメントアウト作業に比べて作業回数を少なくすることができる。さらに、本実施の形態による実行無効化の設定は、既存の実行コードの特定箇所をスキップする機能で実現することができるので、実行コードに変更を加えない。従って、従来のようなPLCの再起動が不要となる。これにより、デバッグ作業の時間短縮、即ち、デバッグ作業を含んだシーケンスプログラム作成のための作業時間を短縮して効率化できるという効果が得られる。
実施の形態2.
また、実施の形態1においては(ユニットを使用するプログラムの実行無効化操作)において、ユーザがユニット構成図の上で無効化したいユニットを手動で選択するとしたが、PLCの実機システムにおいて装着されていないユニットが存在する場合にはこの操作も省くことも考えられる。
本実施の形態においては、図13に示すように、プログラマブルロジックコントローラ(PLC)に装着されていないユニット(非接続ユニット)を自動認識する機能を有する自動認識部20をシーケンスプログラムデバッグ支援装置50の中に備えておく。自動認識部20は、図13に示すようにCPU200(ハードウェア)側のみにあってエンジニアリングツール100(ソフトウェア)に認識結果を知らせるようにしてもよいし、CPU200およびエンジニアリングツール100が共同して担っていても構わない。シーケンスプログラムデバッグ支援装置50の動作を含む本実施の形態の動作フローを図14に示す。
まず、図14のステップS201において、USB接続、あるいはネットワーク接続などによりエンジニアリングツール100をPLC(のCPU200)に接続する。すると、シーケンスプログラムデバッグ支援装置50はPLCの接続状況に基づいて、PLCのシステム構成を上述したように自動認識する。これにより、図7に示したユニット構成表示編集部1のユニット構成図上には配置されているが、PLCの実機には接続されていない非接続ユニットを認識する(ステップS202)。そして、非接続ユニットの識別子(ユニット名)、即ち自動認識結果を知らされた変数使用箇所検索部6は、ユニット変数保持部2から非接続ユニットが使用するユニット変数の一覧を取得する(ステップS203)。
即ち、実施の形態2においては、非接続ユニットと自動認識されたユニットが実施の形態1におけるユーザが選択したユニットとして扱われる。従って、以後のステップS204〜S208は、図5のステップS103〜S107と同様である。なお、本実施の形態においては、非接続ユニットが接続されていた場合、即ち、ユニット構成表示編集部1のユニット構成図上に示されたPLCシステムのシーケンスプログラム(例えば、ラダープログラム)が、予めプログラム変換部5により実行コードに変換されてCPU200に書き込まれて実行可能な状態となっているとする。さらに、実施の形態1と同様にステップS206を省けば、PLCの実機システムに装着されていないユニットが存在する場合において、当該PLCに対応するシーケンスプログラムの実行コードを実質的に全自動で作成できることになる。
また、上記実施の形態1および2においては、はじめにユニット単位で無効化する変数を選択する場合について説明したが、はじめからユニットを選択するのではなく、クロスリファレンス結果(検索結果)などに基づいて当初から変数を指定して、その変数を使っているプログラム(実行コード)のコメントアウト切替えが自動的にできるようにしてもよい。また、シーケンスプログラムの作成時に、例えばC言語のマクロと同様の仕組み(例えば、「#ifdef DEBUG 無効化区間設定ファイルを作成する」などのような仕組み)を組み合わせることにより、デバッグ時だけ実行無効化設定部7を動作させて無効化区間設定ファイルの作成を実行するプログラムを書くことも可能である。これにより、上記実施の形態によるコメントアウト動作によって実行コードの実行/非実行を切り替えたい部分を柔軟にカスタマイズできるので、デバッグ作業をさらに効率化することができる。
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
以上のように、本発明にかかるシーケンスプログラムデバッグ支援装置は、PLCシステムのシーケンスプログラムのデバッグ作業に有用であり、特に、エンジニアリングツールを用いたシーケンスプログラムのデバッグ作業に適している。
1 ユニット構成表示編集部
2 ユニット変数保持部
3 プログラム表示編集部
4 プログラム記憶部
5 プログラム変換部
6 変数使用箇所検索部
7 実行無効化設定部
8 PLC通信部
11 プログラム実行部
12 実行制御部
20 自動認識部
50 シーケンスプログラムデバッグ支援装置
100 エンジニアリングツール
200 CPU
S101〜S107、S201〜S208 ステップ

Claims (3)

  1. プログラマブルロジックコントローラを構成するユニットからユーザが選択した無効化ユニットを受け付けるユニット構成表示編集部と、
    前記プログラマブルロジックコントローラで実行されるシーケンスプログラム上で前記ユニットが使用する変数を前記ユニット毎に保持するユニット変数保持部と、
    前記シーケンスプログラムをユーザが編集することができるプログラム表示編集部と、
    前記シーケンスプログラムを記憶するプログラム記憶部と、
    前記シーケンスプログラムを前記プログラマブルロジックコントローラのプログラム実行部が実行可能な実行コードに変換するプログラム変換部と、
    前記無効化ユニットが使用する変数を前記ユニット変数保持部から取得し、取得した前記変数が前記シーケンスプログラムの中で使用されている箇所を検索する変数使用箇所検索部と、
    前記箇所に対応する前記実行コードの区間を実行しない無効化区間として、無効化区間設定ファイルに書き込む実行無効化設定部と、
    を具備したエンジニアリングツールと、
    前記無効化区間設定ファイルに基づいて、前記無効化区間を実行しないように前記プログラム実行部を制御する実行制御部と、
    を備えることを特徴とするシーケンスプログラムデバッグ支援装置。
  2. 前記プログラマブルロジックコントローラに接続されていないユニットを非接続ユニットとして認識する自動認識部を
    さらに備え、
    前記変数使用箇所検索部は、前記自動認識部が認識した前記非接続ユニットを前記無効化ユニットとする
    ことを特徴とする請求項1に記載のシーケンスプログラムデバッグ支援装置。
  3. 前記変数使用箇所検索部は、取得した前記変数の中からユーザが選択した変数について前記シーケンスプログラムの中で使用されている箇所を検索する
    ことを特徴とする請求項1に記載のシーケンスプログラムデバッグ支援装置。
JP2014507076A 2012-03-26 2012-03-26 シーケンスプログラムデバッグ支援装置 Expired - Fee Related JP5599535B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/057826 WO2013145105A1 (ja) 2012-03-26 2012-03-26 シーケンスプログラムデバッグ支援装置

Publications (2)

Publication Number Publication Date
JP5599535B2 JP5599535B2 (ja) 2014-10-01
JPWO2013145105A1 true JPWO2013145105A1 (ja) 2015-08-03

Family

ID=49258475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507076A Expired - Fee Related JP5599535B2 (ja) 2012-03-26 2012-03-26 シーケンスプログラムデバッグ支援装置

Country Status (7)

Country Link
US (1) US9477578B2 (ja)
JP (1) JP5599535B2 (ja)
KR (1) KR101558832B1 (ja)
CN (1) CN104204975B (ja)
DE (1) DE112012006107B4 (ja)
TW (1) TWI470383B (ja)
WO (1) WO2013145105A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5987853B2 (ja) * 2014-02-19 2016-09-07 株式会社安川電機 ラダープログラム作成装置、コンピュータプログラム及びコンピュータ可読情報記録媒体
CN105408823B (zh) * 2014-05-08 2017-07-18 三菱电机株式会社 工程设计工具、程序编辑装置以及程序编辑系统
US20170277157A1 (en) * 2015-01-22 2017-09-28 Mitsubishi Electric Corporation Engineering tool program and engineering tool
KR102056350B1 (ko) * 2015-01-28 2019-12-16 미쓰비시덴키 가부시키가이샤 인텔리전트 기능 유닛 및 프로그래머블 로직 컨트롤러 시스템
KR101846140B1 (ko) * 2015-04-16 2018-04-05 미쓰비시덴키 가부시키가이샤 프로그램 진단 장치, 프로그램 진단 방법 및 프로그램 진단 프로그램
JP6323685B2 (ja) * 2015-06-18 2018-05-16 株式会社安川電機 プログラマブルコントローラ
JP6356726B2 (ja) * 2016-05-19 2018-07-11 ファナック株式会社 ラダープログラム解析装置
US10769049B2 (en) 2016-10-17 2020-09-08 Mitsubishi Electric Corporation Debugging support apparatus and debugging support method
JP6855886B2 (ja) * 2017-04-07 2021-04-07 株式会社Ihi ロジック生成装置
JP6946953B2 (ja) * 2017-11-10 2021-10-13 オムロン株式会社 制御プログラム開発支援装置、制御プログラム開発支援システム、制御プログラム開発支援方法、および、制御プログラム開発支援プログラム
JP6452924B1 (ja) * 2018-05-11 2019-01-16 三菱電機株式会社 コンパイラおよびプログラミング支援装置
JP6795568B2 (ja) * 2018-11-07 2020-12-02 ファナック株式会社 トレース装置及びプログラマブルコントローラ
JP7143762B2 (ja) * 2018-12-28 2022-09-29 オムロン株式会社 コントローラシステム、制御装置および制御プログラム
WO2020213129A1 (ja) * 2019-04-18 2020-10-22 三菱電機株式会社 デバッグ支援装置、デバッグ支援方法、デバッグ支援プログラム
JP7172864B2 (ja) * 2019-06-07 2022-11-16 オムロン株式会社 サポート装置およびサポートプログラム
DE112020005770T5 (de) * 2020-02-14 2022-09-15 Mitsubishi Electric Corporation Steuerungssystem, Programmierungsunterstützungsgerät, Programmierungsunterstützungsverfahren und Programmierungsunterstützungsprogramm
WO2022185418A1 (ja) * 2021-03-02 2022-09-09 三菱電機株式会社 デバッグ支援プログラム、デバッグ支援装置、デバッグ支援方法および機械学習装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3733737B2 (ja) * 1998-03-31 2006-01-11 富士電機機器制御株式会社 プログラマブルコントローラおよび記録媒体
US6353896B1 (en) * 1998-12-15 2002-03-05 Lucent Technologies Inc. Method and apparatus for testing event driven software
US6502102B1 (en) * 2000-03-27 2002-12-31 Accenture Llp System, method and article of manufacture for a table-driven automated scripting architecture
US6968542B2 (en) * 2000-06-16 2005-11-22 Hewlett-Packard Development Company, L.P. Method for dynamically identifying pseudo-invariant instructions and their most common output values on frequently executing program paths
JP2002099312A (ja) 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
JP4627899B2 (ja) * 2001-02-16 2011-02-09 株式会社キーエンス Plc構成ユニットモニタ方法及びそのプログラム
TW526411B (en) * 2001-08-17 2003-04-01 Mediatek Inc Debugging device
US7191361B2 (en) * 2001-08-31 2007-03-13 National Instruments Corporation System and method enabling asynchronous execution of a test executive subsequence
JP4379687B2 (ja) * 2003-07-25 2009-12-09 オムロン株式会社 シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品
WO2005026962A2 (en) * 2003-09-15 2005-03-24 Selex Sensors And Airborne Systems Limited Improvements in or relating to test systems or programs
KR20070039563A (ko) * 2004-07-28 2007-04-12 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러용 프로그램 생성 장치,프로그래머블 컨트롤러용 프로그램 생성 방법 및 그 방법의프로그램을 기록한 기록매체
JP3910196B2 (ja) * 2004-10-21 2007-04-25 ファナック株式会社 シーケンスプログラムの編集装置
US7272453B2 (en) * 2004-11-30 2007-09-18 Air Products And Chemicals, Inc. Method and apparatus for utilizing a sequence interpreter approach to control logic of a programmable logic controller
US8473913B2 (en) * 2006-01-11 2013-06-25 Hitachi Data Systems Corporation Method of and system for dynamic automated test case generation and execution
US7610537B2 (en) * 2006-04-04 2009-10-27 International Business Machines Corporation Method and apparatus for testing multi-core microprocessors
JP2008059421A (ja) * 2006-09-01 2008-03-13 Yokogawa Electric Corp シーケンスプログラム編集支援装置
US20100083235A1 (en) 2007-04-26 2010-04-01 Kabushiki Kaisha Toshiba Debug system for diagram of programmable controller, its programming device and its program
JP2009193276A (ja) 2008-02-14 2009-08-27 Koyo Electronics Ind Co Ltd ラダープログラム作成装置およびこれを用いたラダープログラム作成実行システム
JP4941365B2 (ja) 2008-03-13 2012-05-30 オムロン株式会社 産業用コントローラ
US8117587B1 (en) * 2008-06-03 2012-02-14 Richard Paul Testardi Microcontroller-resident software development environment supporting application-level asynchronous event handling, interactive debugging and pin variables for embedded systems
US8930912B2 (en) * 2008-12-16 2015-01-06 Cadence Design Systems, Inc. Method and system for performing software verification
JP5086296B2 (ja) 2009-03-19 2012-11-28 株式会社日立産機システム プログラマブルコントローラ制御プログラム作成方法、および、プログラマブルコントローラ制御プログラム作成システム
JP5279901B2 (ja) * 2009-05-27 2013-09-04 三菱電機株式会社 シーケンスプログラムのデバッグ装置、デバッグ方法、及び、プログラム
FR2962826B1 (fr) * 2010-07-13 2012-12-28 Eads Defence & Security Sys Supervision de la securite d'un systeme informatique
JP6774160B2 (ja) * 2013-12-06 2020-10-21 キヤノン株式会社 情報処理装置、並びに、データ転送装置の制御方法

Also Published As

Publication number Publication date
WO2013145105A1 (ja) 2013-10-03
TW201339773A (zh) 2013-10-01
KR20140125870A (ko) 2014-10-29
DE112012006107T5 (de) 2014-12-18
CN104204975B (zh) 2016-10-12
US20150301923A1 (en) 2015-10-22
CN104204975A (zh) 2014-12-10
KR101558832B1 (ko) 2015-10-07
US9477578B2 (en) 2016-10-25
DE112012006107B4 (de) 2015-12-03
TWI470383B (zh) 2015-01-21
JP5599535B2 (ja) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5599535B2 (ja) シーケンスプログラムデバッグ支援装置
JP4541418B2 (ja) プログラマブルコントローラの周辺装置、置換方法およびプログラム
US8843885B2 (en) Program creation support device
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
US10705500B2 (en) Support device, method, and recording medium for simplifying control program changing operation
CN106737676A (zh) 一种基于脚本可二次开发的工业机器人编程系统
CN104536398A (zh) 一种变频器监控方法和系统
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
KR100694381B1 (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
JP2012027639A (ja) プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法
JP2013025347A (ja) プログラマブルコントローラ
JP5425317B2 (ja) モーションsfcプログラム部品作成装置
JP2009223471A (ja) シミュレーション・システム
JP2015022511A (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP2022027456A (ja) 情報処理装置、ラダープログラム生成装置、情報処理方法、ラダープログラム生成方法、物品の製造方法、プログラム、及び記録媒体
JP2010128908A (ja) 情報処理装置及びその制御方法、並びに、プログラム
JP2011022838A (ja) デバッグ装置およびラダープログラム確認方法
JP2010244507A (ja) 情報処理装置及びその制御方法、並びに、プログラム
JP4964036B2 (ja) エディタ装置およびエディタプログラム
JP5832368B2 (ja) エンジニアリング装置
WO2022190417A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
JP2006323609A (ja) プログラマブルコントローラ
JP2009259072A (ja) シーケンスプログラム作成装置
JP2009237947A (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2007249828A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140701

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140715

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140812

R150 Certificate of patent or registration of utility model

Ref document number: 5599535

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

LAPS Cancellation because of no payment of annual fees