JP6356726B2 - ラダープログラム解析装置 - Google Patents

ラダープログラム解析装置 Download PDF

Info

Publication number
JP6356726B2
JP6356726B2 JP2016100578A JP2016100578A JP6356726B2 JP 6356726 B2 JP6356726 B2 JP 6356726B2 JP 2016100578 A JP2016100578 A JP 2016100578A JP 2016100578 A JP2016100578 A JP 2016100578A JP 6356726 B2 JP6356726 B2 JP 6356726B2
Authority
JP
Japan
Prior art keywords
ladder
ladder program
execution order
signal
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.)
Active
Application number
JP2016100578A
Other languages
English (en)
Other versions
JP2017207962A (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.)
FANUC Corp
Original Assignee
FANUC 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 FANUC Corp filed Critical FANUC Corp
Priority to JP2016100578A priority Critical patent/JP6356726B2/ja
Priority to DE102017110567.0A priority patent/DE102017110567A1/de
Priority to US15/598,714 priority patent/US10565010B2/en
Priority to CN201710353195.1A priority patent/CN107402563B/zh
Publication of JP2017207962A publication Critical patent/JP2017207962A/ja
Application granted granted Critical
Publication of JP6356726B2 publication Critical patent/JP6356726B2/ja
Priority to US16/666,405 priority patent/US10838764B2/en
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
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0262Confirmation of fault detection, e.g. extra checks to confirm that a failure has indeed occurred
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24065Real time diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)

Description

本発明はラダープログラム解析装置に関し、特にラダープログラムの実行効率を向上させるための情報を提示可能なラダープログラム解析装置に関する。
ラダープログラムは、予め作成されたラダー回路を順番に、また一定周期で繰り返し実行する。一般に、ラダープログラムの作成においては、信号の参照関係を考慮して、一度の実行でできるだけ効率よく信号状態が更新されるようにラダー回路の順序を決定する。
ラダープログラムの作成を効率化するための技術として、特許文献1には、予め部品化されたラダー回路を使ってラダープログラムを自動生成するプログラミング装置が記載されている。
特許文献2には、ラダーで使用する接点へ信号を出力する、テスト入力用のラダープログラムを自動的に生成することができるシミュレーション支援ツールが記載されている。
特許文献3には、タイミングチャートに基づいてラダープログラムを自動生成するプログラム編集装置が記載されている。
特開平05−189012号公報 特許第3666507号 特許第4922684号
しかしながら、上述の文献はいずれも、ラダー回路の並び順に起因するラダープログラムの実行効率を改善するものではない。例えば、図1に示すラダープログラムでは、Aの信号状態がCへ出力されるまでの処理が、1回のプログラムの実行で完了する。一方、図2に示すラダープログラムでは、Aの信号状態がCへ出力されるまでに、2回のプログラムの実行が必要である。このとき、図1のラダープログラムのほうが、更新時間が短く実行効率が良いことになる。換言すれば、図2のラダープログラムのほうは、更新時間が長く実行効率が悪い。
意図的に更新時間が長くなるラダー回路を組む場合もあるが、ほとんどは実行効率がより良くなるようにラダープログラムは設計される。一般に、ラダープログラムが大きい場合や、サブプログラムなどを含みプログラムが構造化されている場合等には、信号の参照関係が分かりにくくなるため、ラダープログラムの実行効率を判断しにくい。すなわち、ラダー回路が実行効率の悪い順序で並んでいても、ユーザはそのことを容易に把握することができない。そのため、ユーザは、ラダープログラムを実行させ、ラダー回路が更新する信号をサンプリングし、意図したタイミングで信号が変化していることを確認するなどして、ラダー回路の並び順を改善できる箇所を手作業で見つける必要があった。
本発明は、このような問題点を解決するためになされたものであり、ラダープログラムの実行効率を向上させるための情報を提示可能なラダープログラム解析装置を提供することを目的とする。
本発明の一実施の形態にかかるラダープログラム解析装置は、複数のラダー回路を含むラダープログラムを解析し、前記ラダー回路の実行順、前記ラダー回路に入力される信号を示す参照信号、前記ラダー回路が出力する信号を示す更新信号を対応付けた実行順信号テーブルを作成するラダープログラム解析部と、前記実行順信号テーブルに基づき、2つの前記ラダー回路の前記実行順、前記参照信号、前記更新信号を比較することにより、実行効率を改善可能な前記ラダー回路の有無を判定し、前記判定結果を表示するラダープログラム解析結果表示部と、を有することを特徴とする。
他の実施の形態にかかるラダープログラム解析装置は、前記ラダープログラム解析結果表示部は、実行効率を改善可能と判定された前記ラダー回路の表示形態を少なくとも変更することにより、前記判定結果を表示することを特徴とする。
他の実施の形態にかかるラダープログラム解析装置は、複数のラダー回路を含むラダープログラムを解析し、前記ラダー回路の実行順、前記ラダー回路に入力される信号を示す参照信号、前記ラダー回路が出力する信号を示す更新信号を対応付けた実行順信号テーブルを作成するラダープログラム解析部と、前記実行順信号テーブルに基づき、複数の前記ラダー回路の前記実行順、前記参照信号、前記更新信号を比較することにより、前記ラダープログラムの実行効率を改善可能な前記ラダー回路の実行順序を決定するラダープログラム並び替え部と、を有することを特徴とする。
本発明により、ラダープログラムの実行効率を向上させるための情報を提示可能なラダープログラム解析装置を提供することができる。
本発明の課題を説明するための図である。 本発明の課題を説明するための図である。 ラダープログラムの例を示す図である。 実行順信号テーブル120の例を示す図である。 ラダープログラム解析結果表示部130の出力例を示す図である。 ラダープログラム解析結果表示部130の出力例を示す図である。 ラダープログラム解析結果表示部130の出力例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム並び替え部140の動作例を示す図である。 ラダープログラム解析部110の実行順信号テーブル作成処理の例を示す図である。 ラダープログラム解析結果表示部130のラダー図表示処理の例を示す図である。 ラダープログラム解析結果表示部130のラダー図表示処理の例を示す図である。 ラダープログラム並び替え部140の並び替え処理の例を示す図である。 ラダープログラム並び替え部140の更新されない参照信号を削除する処理の例を示す図である。 ラダープログラム並び替え部140の実行順序テーブル作成処理の例を示す図である。 ラダープログラム並び替え部140の実行順序テーブル作成処理の例を示す図である。 ラダープログラム並び替え部140の参照信号の削除処理の例を示す図である。 ラダープログラム並び替え部140の参照信号の削除処理の例を示す図である。 本発明の実施の形態1にかかるラダープログラム解析装置100の構成を示す図である。 本発明の実施の形態2にかかるラダープログラム解析装置100の構成を示す図である。
はじめに、本発明の概要について説明する。本発明は、ラダープログラムの実行効率を解析する手法に特徴を有するが、本発明の実施の形態では、その解析結果の2つの利用手法を併せて開示する。
まず、実施の形態1として、ラダープログラムを解析した結果を利用して、ラダープログラムの実行効率の悪い部分に関する情報をラダー図上に表示する手法を開示する。例えば、効率良く信号が処理される接点については青色で、効率の悪い接点については赤色で表示するなどである。
次に、実施の形態2として、任意の範囲のラダープログラムについて、効率の良い実行順序になるように自動的にラダー回路を並び替える手法を開示する。
<実施の形態1>
実施の形態1として、ラダープログラムの実行効率を解析し、少なくとも実行効率の悪い部分の情報をラダー図上に表示することができるラダープログラム解析装置100について説明する。
図24のブロック図を用いて、ラダープログラム解析装置100の構成について説明する。ラダープログラム解析装置100は、ラダープログラム解析部110、実行順信号テーブル120、ラダープログラム解析結果表示部130を含む。なお、ラダープログラム解析装置100は、典型的には、中央処理装置、記憶装置及び入出力装置を備え、記憶装置に記憶されたプログラムを中央処理装置が実行することにより所定の機能を実現する情報処理装置である。
ラダープログラム解析部110は、ラダープログラムにおけるラダー回路の並び順を解析して実行順信号テーブル120を作成し、実行順信号テーブル120に基づいて実行効率を評価する処理を行う。
実行順信号テーブル120は、ラダープログラムが実行された時に、どのような順番でラダー回路が実行されてゆくかを示すテーブルである。実行順信号テーブル120は、典型的には、図示しない記憶装置上の記憶領域内に作成される。
図3に示すように、ラダープログラムは、一般に、複数のプログラム(メインプログラムと、メインプログラム又はサブプログラムから呼び出される1以上のサブプログラム)を含む。各プログラムは、ラダー回路からなるネットを1つ以上含む。各ネットには番号が付され、番号の昇順に順次実行される。
図4は、図3に示すラダープログラムを解析して作成された実行順信号テーブル120である。ラダープログラム解析部110は、ラダープログラムを先頭から終端まで、ラダー回路の実行順序に従って、各ネットを順次解析する。ラダープログラム解析部110は、各ネットの位置情報、参照信号、更新信号を実行順信号テーブル120に登録する。ここで、位置情報とは、そのネットが属するプログラム名及びネット位置を含む。但し、ラダープログラムが1つのプログラムで構成されている場合は、プログラム名を含まなくて良い。参照信号とは、そのネットで参照される信号の名称である。更新信号とは、そのネットで更新される信号の名称である。
ラダープログラム解析結果表示部130は、実行順信号テーブル120を参照して、ラダープログラムの最適化状況を判定し、ユーザに提示する処理を行う。典型的には、ラダープログラムのうち実行効率の悪い部分を抽出し、当該部分をラダー図上に表示する。
より具体的には、ラダープログラム解析結果表示部130は、ラダー図を画面上に表示する際、実行順信号テーブル120から、表示しようとしているラダー回路自身に関するエントリ(a)と、そのラダー回路上の接点を更新信号として含んでいるエントリ(b)とを抽出する。図5に一例を示す。いまラダープログラム解析結果表示部130は、サブプログラムP2のネット1(P2−1)を描画しようとしている。描画に先立ち、ラダープログラム解析結果表示部130は、実行順信号テーブル120から、P2−1に相当するエントリ(a)を抽出する。ここでエントリ(a)は接点(すなわち参照信号)Yを含む。そこでラダープログラム解析結果表示部130は、実行順信号テーブル120から、更新信号としてYを含むエントリ(b)も抽出する。
次に、ラダープログラム解析結果表示部130は、エントリ(a)及びエントリ(b)の実行順を比較する。そして、両エントリ実行順の大小関係を、ラダー回路の表示形態に反映する。ラダープログラム解析結果表示部130は、この表示形態の違いにより、ラダープログラムのうち実行効率の悪い部分をユーザに提示する。これにより、ユーザは、ラダー回路の実行順序が最適かどうかを容易に判断できる。
例えば、エントリ(a)の実行順 > エントリ(b)の実行順であれば、ラダー回路の順序は最適であり、実行効率は良い。このとき、ラダープログラム解析結果表示部130は、ラダー回路P2−1の接点Yを青色で表示できる。一方、エントリ(a)の実行順 ≦ エントリ(b)の実行順であれば、ラダー回路の順序は最適でなく、実行効率も良いとはいえない。このとき、ラダープログラム解析結果表示部130は、ラダー回路P2−1の接点Yを赤色で表示できる。なお、実行効率の良し悪しは、種々の任意の方法で表現できる。例えば、接点そのものではなくその背景色により表現してもよい。或いは、接点の近傍に所定の記号、図形、メッセージ等を表示することにより表現してもよい。
図5乃至図7を用いて、ラダープログラム解析結果表示部130が行う表示の一例を示す。図5に示す例では、エントリ(a)の実行順 > エントリ(b)の実行順である。したがって、ラダープログラム解析結果表示部130は、ラダー回路P2−1のうち、接点Yを青色で表示する。一方、図6に示す例では、エントリ(a)の実行順 ≦ エントリ(b)の実行順である。したがって、ラダープログラム解析結果表示部130は、ラダー回路P1−1のうち、接点Cを赤色で表示する。同様に、ラダープログラム解析結果表示部130は、メインプログラムのネット1の接点Aを赤色で、メインプログラムのネット3の接点Dは青色で表示する。
続いて、図18及び図19を用いて、ラダープログラム解析装置100の動作の一例について説明する。図18は、ラダープログラム解析部110が、ラダープログラムの実行順番と信号の関係を示す実行順信号テーブル120を作成する処理(実行順信号テーブル作成処理)の例を示すフローチャートである。
S101:
ラダープログラム解析部110は、まず実行順信号テーブル120を初期化する。プログラムの実行順番を記録する変数「実行順番」に1を設定する。ラダープログラムの実行ネット位置を記憶する変数「実行ネット位置」にプログラムの先頭のネット番号を設定する。
S102:
ラダープログラム解析部110は、「実行ネット位置」に実行可能なネットがあるかどうか判断する。ネットが存在しない場合、処理を終了する。
S103:
ラダープログラム解析部110は、「実行ネット位置」にあたるラダー回路を1ネット取得する。ここで、取得したラダー回路がCALL命令やRET命令およびそれらに類する命令の場合、次に実行されるネットは、CALL命令では呼び出し先サブプログラムの先頭のネット、RET命令では対応するCALL命令の次のネットとなる。
S104:
ラダープログラム解析部110は、取得したラダー回路内に接点が含まれるかどうか判断する。含まれる場合はS105、含まれない場合はS107へ遷移する。
S105:
ラダープログラム解析部110は、ラダー回路が接点において読み出す信号を「参照信号」、書き込む信号を「更新信号」として取得する。また、現在の「実行順番」を「実行順」、「実行ネット位置」を「位置情報」とする。そして、実行順信号テーブル120に、「実行順」、「位置情報」、「参照信号」、「更新信号」をそれぞれ登録する。
S106:
ラダープログラム解析部110は、実行順信号テーブル120に次のエントリを登録するために、「実行順番」を1増やす。
S107:
ラダープログラム解析部110は、現在の「実行ネット位置」の次に実行されるネットの位置を、新たな「実行ネット位置」に設定する。このとき、S103の説明において述べたように、現在の「実行ネット位置」CALL命令やRET命令が存在する場合はこれらを考慮して次に実行されるネットを設定する。
以降、ラダープログラム解析部110は、「実行ネット位置」に実行可能なネットが存在しなくなるまで、順次「実行ネット位置」に存在するラダー回路を取得し、取得したラダー回路について「実行順」、「位置情報」、「参照信号」、「更新信号」を実行順信号テーブル120に設定してゆく。これにより、「実行順信号テーブル」が完成する。
図19は、ラダープログラム解析結果表示部130が、各ラダー回路の実行効率の判定結果をラダー図上に反映する処理(ラダー図表示処理)を示すフローチャートである。
S201:
ラダープログラム解析結果表示部130は、まず画面に表示しようとするラダープログラムの開始位置(プログラム及びネット)を「表示位置情報」として記憶する。
S202:
ラダープログラム解析結果表示部130は、記憶した「表示位置情報」に相当する1ネット分のラダー図の表示データを作成する。
S203:
ラダープログラム解析結果表示部130は、上述の実行順信号テーブル作成処理により作成された実行順信号テーブル120を参照し、実行順信号テーブル120の「位置情報」が、記憶した「表示位置情報」と一致するエントリを抽出する。そして、当該エントリの「実行順」(a)を取得する。
S204乃至S206:
ラダープログラム解析結果表示部130は、S202において作成した1ネット分のラダー図に接点が含まれる場合、接点の「信号」を取得する。そして、実行順信号テーブル120を「実行順」が小さいエントリから最終エントリまでの順で検索し、取得した「信号」と同じ「更新信号」がないか検索する。
S207乃至S208:
ラダープログラム解析結果表示部130は、接点から取得した「信号」と「更新信号」とが一致するエントリを発見した場合、当該エントリの「実行順」(b)を取得する。一方、一致しない場合はS212に遷移し、作成したラダー図の次の命令を取得する。
S209乃至S211:
ラダープログラム解析結果表示部130は、「実行順」(a)と「実行順」(b)とを比較する。「実行順」(a)が大きい場合、接点の色の属性を青色へ変更する。その他の場合、接点の色の属性を赤色へ変更する。
S212乃至S213:
ラダープログラム解析結果表示部130は、ラダー図に含まれる次の命令を取得する。取得した命令が接点であれば、当該接点について、S206以降の処理を再び実行する。ラダープログラム解析結果表示部130は、1ネットの終端に至るまで、すなわちラダー図の終わりに至るまで同様の処理を繰り返すことにより、1ネットのラダー図の表示データを作成する。
S214:
ラダープログラム解析結果表示部130は、作成した1ネット分のラダー図の表示データを画面に表示する。
S215:
ラダープログラム解析結果表示部130は、ラダー図表示が画面終端まで達していない場合、「表示位置情報」を次のネットの情報で更新する。ラダープログラム解析結果表示部130は、次のネットについて、S202以降の処理を同様に実行する。これを画面終端に至るまで繰り返すことにより、ラダープログラム解析結果表示部130は、実行効率の判定結果がラダー図の接点の表示色へ反映された、一連のラダー図を表示することができる。
本実施の形態によれば、ラダープログラム解析部110がラダープログラムを解析して実行順信号テーブル120を作成し、ラダープログラム解析結果表示部130が実行順信号テーブル120に基づいて実行効率の判定結果を反映させたラダー図を表示する。これにより、ラダー図上に実行効率を改善可能な部分が明示されるので、ラダープログラムの最適化を検討する際の手がかりとなる。
<実施の形態2>
実施の形態2として、ラダープログラムの実行効率を解析し、実行効率が向上するようラダー回路を自動で並べ替えることができるラダープログラム解析装置100について説明する。
図25のブロック図を用いて、ラダープログラム解析装置100の構成について説明する。ラダープログラム解析装置100は、ラダープログラム解析部110、実行順信号テーブル120、ラダープログラム並べ替え部140を含む。
ラダープログラム解析部110、実行順信号テーブル120の構成は、実施の形態1と同様であるので説明を省略する。
ラダープログラム並び替え部140は、ラダープログラムのうち所定の範囲のネットの実行順序を自動的に並び替えて最適化する処理を行う。ラダープログラム並び替え部140は、実行順信号テーブル120と、各ネットが参照している信号の一覧から、任意の範囲のネットの実行順序を自動的に最適化する。ここで、所定の範囲とは、ユーザの選択等に基づいて決定されたラダープログラムの一部分であっても良く、あるいはラダープログラムの全体であっても良い。
ラダープログラム並び替え部140が実施するラダープログラムの並び替え作業は、各ラダー回路をノードとし、各信号の参照関係をエッジとした有向グラフに対して、全ノードを一列に並べた時にできるだけ多くのエッジの方向が同一方向になるよう、ノードの並び順を決める作業であり、これには同様の効果が得られるいくつかの異なるアルゴリズムが考えられる。ここではその中の一具体例を示すが、同様の効果が得られる他のアルゴリズムを用いて並び替えをしても構わない。
図8乃至図17を用いて、ラダープログラム並び替え部140が行う処理についてより具体的に説明する。図8の左上図は、並び替えが行われる前のラダープログラム、左下図は当該ラダープログラムに対応する実行順信号テーブル120である。右上図は、ラダープログラム並び替え部140が並び替えを行った後のラダープログラムを示す。
(1)ラダープログラム並び替え部140は、まず、図8の実行順信号テーブル120から、所定の範囲内において更新されない「参照信号」を削除する。図9において破線で囲われた信号が、更新されない「参照信号」である。
(2)次に、ラダープログラム並び替え部140は、実行順信号テーブル120内で「参照信号」が空のネットを探し、そのネットの位置情報を「実行順序テーブル」へ追加する。図10において破線で囲われた部分は、「参照信号」が空であることを示している。
(3)ラダープログラム並び替え部140は、「実行順序テーブル」へ加えたネットの「更新信号」と同じものを、「実行順信号テーブル」の「参照信号」からすべて削除する。図11において破線で囲われた部分は、削除される「参照信号」である。
(4)ラダープログラム並び替え部140は、「実行順序テーブル」へ加えたネットを実行順信号テーブル120から削除する。図12において破線で囲われた部分は、削除されるネットを示している。
(5)ラダープログラム並び替え部140は、実行順信号テーブル120が空になるまで(2)乃至(4)の動作を繰り返す。なお、(2)で該当ネットが見つからない場合は何らかの評価基準でネットを一つ選ぶことができる。図13乃至図17は、実行順信号テーブル120からネットが順次削除されていく様子を示している。
(6)ラダープログラム並び替え部140は、「実行順序テーブル」から、「実行順」に従って「位置情報」のネットを取得し、取得した順序でネットを並べて直す。これにより、実行順序が最適化されたラダープログラムが作成される。
続いて、図20乃至図23を用いて、ラダープログラム解析装置100が所定の範囲のネットの実行順序を自動的に並び替えて最適化する場合の動作について説明する。図20は、ラダープログラム並び替え部140が、ラダープログラムのうち所定の範囲内のラダー回路を1ネット単位で効率の良い実行順序へ自動的に並び替える処理(並び替え処理)を示すフローチャートである。
S301:
ラダープログラム解析部110が、「実行順信号テーブル作成処理」を実行し、「実行順序信号テーブル120を作成する。
S302:
ラダープログラム並び替え部140は、作成された実行順序信号テーブル120から、ラダープログラムのうち所定の範囲のネットのテーブル情報を抽出して、「実行順選択信号テーブル」を作成する。
S303:
ラダープログラム並び替え部140は、「更新されない参照信号を削除する処理」(後述)を実行して、「実行順選択信号テーブル」から、更新されない「参照信号」を削除する。
S304:
ラダープログラム並び替え部140は、「実行順序テーブル作成処理」(後述)を実行して、「実行順序テーブル」を作成する。
S305:
ラダープログラム並び替え部140は、作成された「実行順序テーブル」に従って、ラダー回路を新しい順序に並び替える。これにより、所定の範囲のラダープログラムが、効率の良い実行順序へ自動的に修正される。
図21は、「実行順選択信号テーブル」内の「更新信号」に基づいて、書き込まれない「参照信号」をすべて削除する処理(更新されない参照信号を削除する処理)を示すフローチャートである。
S401:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」のエントリ位置を指す変数「インデックス」を用意し、「インデックス」に先頭エントリ位置を設定する。
S402:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックス」が指し示すエントリから、「位置情報」と「参照信号」を取得する。
S403:
ラダープログラム並び替え部140は、取得した「位置情報」が空の場合、「インデックス」を1増やす。「実行順選択信号テーブル」の終端を超えていなければ、新たな「インデックス」を用いてS402以降の処理を再び実行する。
S404:
ラダープログラム並び替え部140は、取得した「参照信号」が空の場合、「インデックス」を1増やす。「実行順選択信号テーブル」の終端を超えていなければ、新たな「インデックス」を用いてS402以降の処理を再び実行する。
S405:
ラダープログラム並び替え部140は、取得した「位置情報」と「参照信号」の両方が空でない場合、「参照信号」と同じ信号が「実行順選択信号テーブル」の「更新信号」内に存在しないか検索する。存在する場合、「実行順選択信号テーブル」の「参照信号」を削除する。
S406乃至S407:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックス」が指し示すエントリの「参照信号」の次の「参照信号」が存在する場合、次の「参照信号」についてS405以降の処理を再び実行する。すなわち、「実行順選択信号テーブル」の「参照信号」を削除する処理を繰り返す。
S408:
一方、次の「参照信号」が存在しない場合、ラダープログラム並び替え部140は、「インデックス」を1増やす。「インデックス」が終端を超えない限り、S402以降の処理を繰り返す。「インデックス」が終端を超えたとき処理を終了する。
図22は、ラダープログラム並び替え部140が、「実行順選択信号テーブル」と「実行順序テーブル」とを利用して、ラダー回路の最適な実行順番を決める処理(実行順序テーブル作成処理)を示すフローチャートである。
S501:
ラダープログラム並び替え部140は、「実行順序テーブル」のエントリ位置を指す変数「インデックスB」を用意し、先頭エントリの位置を設定する。
S502:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」のエントリ位置を指す変数「インデックスA」に、先頭エントリの位置を設定する。
S503:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」から「実行順序テーブル」へ「位置情報」を追加した回数を記憶する変数「処理ネット数」、「位置情報」が追加できなかった回数を記憶する変数「未処理ネット数」、「位置情報」が追加できなかった「実行順選択信号テーブル」のインデックスを記憶する変数「未処理のインデックス」をそれぞれ初期化する。
S504:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックスA」が指し示すエントリから「位置情報」と「参照信号」を取得する。
S505:
ラダープログラム並び替え部140は、「位置情報」にデータが存在しない場合、「インデックスA」を1増やす。ここで「インデックスA」が終端を超えるか確認し、超えていない場合、新たな「インデックスA」を用いてS504以降の処理を再度実行する。
S506、S509:
ラダープログラム並び替え部140は、「位置情報」にデータが存在し、「参照信号」にデータがない場合、これを優先的に実行すべきラダー回路と判断する。ラダープログラム並び替え部140は、「インデックスA」から取得した「位置情報」を、「実行順序テーブル」の「インデックスB」が指し示すエントリへ追加する。
S510乃至S511:
ラダープログラム並び替え部140は、「処理ネット数」を1増やし、「実行順序テーブル」の「インデックスB」を1増やす。
S512:
ラダープログラム並び替え部140は、「参照信号の削除処理」(後述)により、「実行順選択信号テーブル」の「インデックスA」が指し示すエントリの「更新信号」を参照する「参照信号」をすべて検索し、削除する。
S513:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックスA」が指し示すエントリの「位置情報」と「更新信号」を削除する。
S514:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックスA」を1増やす。
S515:
ラダープログラム並び替え部140は、「インデックスA」が終端を超えていない場合、新たな「インデックスA」を用いてS504以降の処理を再度実行する。インデックスAが「実行順選択信号テーブル」の終端を超える場合は、S516に遷移する。
S507乃至S508、S514乃至S515:
ラダープログラム並び替え部140は、「位置情報」にデータが存在し、「参照信号」にデータがある場合、「未処理ネット数」を1増やし、「実行順選択信号テーブル」の「インデックスA」を「未処理のインデックス」へ記憶する。また、「実行順選択信号テーブル」の「インデックスA」を1増やす。「インデックスA」が「実行順選択信号テーブル」の終端を超えるまで上記処理を繰り返す。
S516乃至S517:
ラダープログラム並び替え部140は、「インデックスA」が「実行順選択信号テーブル」の終端を超え、「未処理ネット数」が0以外、かつ「処理ネット数」が0以上の場合、「実行順選択信号テーブル」の「インデックスA」に先頭エントリの位置を設定するS502以降の処理を繰り返す。
「インデックスA」が「実行順選択信号テーブル」の終端を超え、「未処理ネット数」が0以外、かつ「処理ネット数」が0の場合、ラダープログラム並び替え部140は、記憶した「未処理のインデックス」から「実行順選択信号テーブル」の「インデックスA」を取得し、「インデックスA」が指し示すエントリの「参照信号」の数が一番少ない「インデックスA」を探し出して、「参照信号」を削除して、「実行順選択信号テーブル」の「インデックスA」に先頭エントリの位置を設定するS502以降の上記処理を繰り返す。
「インデックスA」が「実行順選択信号テーブル」の終端を超え、「未処理ネット数」が0の場合、ラダープログラム並び替え部140は処理を終了する。以上の処理により、「実行順序テーブル」の「位置情報」に、ラダー回路の最適化された実行順序が格納される。
図23は、ラダープログラム並び替え部140が、「実行順選択信号テーブル」の「更新信号」を利用して、「更新信号」と一致する「参照信号」のすべてを削除する処理(参照信号の削除処理)を示すフローチャートである。
S601:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックス」が指し示すエントリから「更新信号」を取得する。
S602乃至S603:
ラダープログラム並び替え部140は、「更新信号」が取得できた場合、「実行順選択信号テーブル」のエントリ位置を指す「インデックス」に、先頭エントリの位置を設定する。
S604:
ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックス」が指し示す「エントリ」から「参照信号」を取得する。
S605乃至S606:
ラダープログラム並び替え部140は、S604において「参照信号」が取得できた場合、「参照信号」が「更新信号」に含まれているか確認する。
S607:
ラダープログラム並び替え部140は、「参照信号」が「更新信号」に含まれている場合、「実行順選択信号テーブル」の「インデックス」が指し示すエントリの「参照信号」を削除する。
S608、S610:
ラダープログラム並び替え部140は、次の「参照信号」がエントリに残っている場合、次の「参照信号」を取得し、新たな「参照信号」についてS605以降の処理を繰り返す。
S609:
次の「参照信号」がエントリにない場合、ラダープログラム並び替え部140は、「実行順選択信号テーブル」の「インデックス」を1増やす。
S611:
ラダープログラム並び替え部140は、「インデックス」が「実行順選択信号テーブル」の終端を超えない場合、「実行順選択信号テーブル」の「インデックス」が指し示すエントリから最初の「参照信号」を取得し(S604)、S605以降の処理を繰り返す。
ラダープログラム並び替え部140は、「インデックス」が「実行順選択信号テーブル」の終端を超えると、処理を終了する。
本実施の形態によれば、ラダープログラム解析部110が作成した実行順信号テーブル120に基づいて、ラダープログラム並び替え部140が、所定の範囲のラダープログラムに含まれるラダー回路を、効率よく実行できる順番に自動的に並び替える。これにより、ユーザはラダー回路を手作業で修正する必要がなくなる。
なお、本発明は上述の種々の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で、構成要素の置換、省略、付加、順序の入れ替え等の変更を施すことが可能である。
100 ラダープログラム解析装置
110 ラダープログラム解析部
120 実行順信号テーブル
130 ラダープログラム解析結果表示部
140 ラダープログラム並び替え部

Claims (3)

  1. 複数のラダー回路を含むラダープログラムを解析し、前記ラダー回路の実行順、前記ラダー回路に入力される信号を示す参照信号、前記ラダー回路が出力する信号を示す更新信号を対応付けた実行順信号テーブルを作成するラダープログラム解析部と、
    前記実行順信号テーブルに基づき、2つの前記ラダー回路の前記実行順、前記参照信号、前記更新信号を比較することにより、実行効率を改善可能な前記ラダー回路の有無を判定し、前記判定結果を表示するラダープログラム解析結果表示部と、を有する
    ラダープログラム解析装置。
  2. 前記ラダープログラム解析結果表示部は、実行効率を改善可能と判定された前記ラダー回路の表示形態を少なくとも変更することにより、前記判定結果を表示する
    請求項1記載のラダープログラム解析装置。
  3. 複数のラダー回路を含むラダープログラムを解析し、前記ラダー回路の実行順、前記ラダー回路に入力される信号を示す参照信号、前記ラダー回路が出力する信号を示す更新信号を対応付けた実行順信号テーブルを作成するラダープログラム解析部と、
    前記実行順信号テーブルに基づき、複数の前記ラダー回路の前記実行順、前記参照信号、前記更新信号を比較することにより、前記ラダープログラムの実行効率を改善可能な前記ラダー回路の実行順序を決定するラダープログラム並び替え部と、を有する
    ラダープログラム解析装置。
JP2016100578A 2016-05-19 2016-05-19 ラダープログラム解析装置 Active JP6356726B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016100578A JP6356726B2 (ja) 2016-05-19 2016-05-19 ラダープログラム解析装置
DE102017110567.0A DE102017110567A1 (de) 2016-05-19 2017-05-16 Kontaktplanprogrammanalysevorrichtung
US15/598,714 US10565010B2 (en) 2016-05-19 2017-05-18 Ladder program analyzing device
CN201710353195.1A CN107402563B (zh) 2016-05-19 2017-05-18 梯形程序分析装置
US16/666,405 US10838764B2 (en) 2016-05-19 2019-10-29 Ladder program analyzing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016100578A JP6356726B2 (ja) 2016-05-19 2016-05-19 ラダープログラム解析装置

Publications (2)

Publication Number Publication Date
JP2017207962A JP2017207962A (ja) 2017-11-24
JP6356726B2 true JP6356726B2 (ja) 2018-07-11

Family

ID=60255419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016100578A Active JP6356726B2 (ja) 2016-05-19 2016-05-19 ラダープログラム解析装置

Country Status (4)

Country Link
US (2) US10565010B2 (ja)
JP (1) JP6356726B2 (ja)
CN (1) CN107402563B (ja)
DE (1) DE102017110567A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379506B2 (en) 2014-09-26 2022-07-05 Oracle International Corporation Techniques for similarity analysis and data enrichment using knowledge sources
US11693549B2 (en) 2014-09-26 2023-07-04 Oracle International Corporation Declarative external data source importation, exportation, and metadata reflection utilizing HTTP and HDFS protocols

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019171428A1 (ja) * 2018-03-05 2019-09-12 株式会社日立製作所 回路生成装置及びソフトウェア生成装置
JP6795568B2 (ja) * 2018-11-07 2020-12-02 ファナック株式会社 トレース装置及びプログラマブルコントローラ
WO2020174627A1 (ja) * 2019-02-27 2020-09-03 三菱電機株式会社 設計支援装置、設計支援方法および設計支援プログラム
JP7423895B2 (ja) 2019-03-12 2024-01-30 オムロン株式会社 ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム
JP7483184B1 (ja) 2023-08-31 2024-05-14 三菱電機株式会社 分析プログラム、分析装置、支援システム及び分析方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4922684B1 (ja) 1971-07-09 1974-06-11
JPS61143809A (ja) * 1984-12-17 1986-07-01 Fuji Electric Co Ltd プログラマブルコントロ−ラ
JPH05189012A (ja) 1992-01-10 1993-07-30 Yaskawa Electric Corp プログラマブルコントローラのプログラミング装置
JPH11110010A (ja) * 1997-10-03 1999-04-23 Nissan Motor Co Ltd 不要ラダー回路の検索方法及びその装置
JP2002099312A (ja) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
JP3666507B2 (ja) * 2003-07-25 2005-06-29 オムロン株式会社 シミュレーション支援ツールおよびラダープログラムの検証システムならびにテスト入力ラダープログラム生成方法ならびにラダープログラムの検証方法
US20050033457A1 (en) * 2003-07-25 2005-02-10 Hitoshi Yamane Simulation aid tools and ladder program verification systems
EP1739512B1 (en) * 2004-04-15 2010-10-06 Mitsubishi Denki Kabushiki Kaisha Programmable logic controller peripheral device and program creation method thereof
CN101292204B (zh) * 2006-03-29 2011-02-16 三菱电机株式会社 程序生成辅助装置、程序生成辅助方法和使计算机执行该方法的程序及存储该程序的存储介质
JP4494361B2 (ja) * 2006-03-31 2010-06-30 三菱電機株式会社 ラダープログラム最適化装置および最適化プログラム
JP4922684B2 (ja) 2006-07-10 2012-04-25 神奈川県 ラダー図作成方法
JP5279901B2 (ja) * 2009-05-27 2013-09-04 三菱電機株式会社 シーケンスプログラムのデバッグ装置、デバッグ方法、及び、プログラム
JP2011257904A (ja) * 2010-06-08 2011-12-22 Hitachi Ltd 制御装置及びそのデータ処理方法
CN104204975B (zh) * 2012-03-26 2016-10-12 三菱电机株式会社 定序程序调试辅助装置
US20140304551A1 (en) * 2012-12-17 2014-10-09 Mitsubishi Electric Corporation Program analysis supporting device and control device
KR20150127161A (ko) * 2013-03-07 2015-11-16 미쓰비시덴키 가부시키가이샤 래더 프로그램 표시 프로그램 및 래더 프로그램 표시 장치
JP6127755B2 (ja) * 2013-06-13 2017-05-17 オムロン株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
JP6626240B2 (ja) * 2014-03-13 2019-12-25 オムロン株式会社 コントローラ
JP2015176370A (ja) * 2014-03-14 2015-10-05 オムロン株式会社 制御システム、方法、プログラムおよび情報処理装置
WO2016009485A1 (ja) * 2014-07-14 2016-01-21 三菱電機株式会社 Plcシステムおよび演算式データ作成支援装置
JP6372308B2 (ja) * 2014-10-29 2018-08-15 オムロン株式会社 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体
JP6563187B2 (ja) * 2014-11-12 2019-08-21 株式会社東芝 分散制御システム、制御装置及び制御方法
JP6224575B2 (ja) * 2014-12-19 2017-11-01 ファナック株式会社 指定した信号の演算条件によりラダー回路を検索可能なラダープログラム検索装置
US20170277157A1 (en) * 2015-01-22 2017-09-28 Mitsubishi Electric Corporation Engineering tool program and engineering tool
JP6122054B2 (ja) * 2015-03-13 2017-04-26 ファナック株式会社 ラダープログラムの分岐回路抽出表示機能を有するモニタ装置
WO2017138156A1 (ja) * 2016-02-12 2017-08-17 三菱電機株式会社 エンジニアリングツール

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379506B2 (en) 2014-09-26 2022-07-05 Oracle International Corporation Techniques for similarity analysis and data enrichment using knowledge sources
US11693549B2 (en) 2014-09-26 2023-07-04 Oracle International Corporation Declarative external data source importation, exportation, and metadata reflection utilizing HTTP and HDFS protocols

Also Published As

Publication number Publication date
US20200065142A1 (en) 2020-02-27
US10565010B2 (en) 2020-02-18
CN107402563B (zh) 2019-08-13
JP2017207962A (ja) 2017-11-24
DE102017110567A1 (de) 2017-11-23
US10838764B2 (en) 2020-11-17
CN107402563A (zh) 2017-11-28
US20170337082A1 (en) 2017-11-23

Similar Documents

Publication Publication Date Title
JP6356726B2 (ja) ラダープログラム解析装置
JP5769900B2 (ja) シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置
US20180276857A1 (en) Simplified point-in-polygon test for processing geographic data
JP2019153042A (ja) 数値制御装置
JP6122054B2 (ja) ラダープログラムの分岐回路抽出表示機能を有するモニタ装置
JP6434435B2 (ja) 情報処理装置、操作支援方法および操作支援プログラム
CN111078671A (zh) 数据表字段的修改方法、装置、设备和介质
US20150268954A1 (en) Apparatus and method for identifying correspondence between an installed program and an interface in a source code
JP2007257409A (ja) デジタルコンテンツ編集装置およびプログラム
JP2016042223A (ja) データ処理装置およびプログラム
JP2008276524A (ja) 情報処理装置及び情報処理方法
JPWO2013108333A1 (ja) 検索装置、検索方法、及び、検索プログラム
JP5914369B2 (ja) ユーザインタフェース評価装置
JP2012226697A (ja) Wbs作成システムおよびwbs作成方法
JP5861545B2 (ja) 情報処理装置、履歴制御方法および履歴制御プログラム
JP2005326161A (ja) 故障候補特定システムおよび故障候補特定方法
US11921496B2 (en) Information processing apparatus, information processing method and computer readable medium
KR102162779B1 (ko) 텍스트 마이닝 방법, 텍스트 마이닝 프로그램, 및 텍스트 마이닝 장치
JPWO2017081866A1 (ja) ログ分析システム、方法およびプログラム
JP2017162151A (ja) 情報処理装置、プログラム、情報処理方法
JP2012167958A (ja) 試験情報表示装置、方法、プログラム、および該ソフトウェアを格納したコンピュータ可読媒体
JP2014134851A (ja) プログラマブル回路、演算処理方法
JP2015165372A (ja) ユーザインタフェース設計装置
JP2003167928A (ja) メッシュ作成装置およびメッシュ作成プログラム
JP4615391B2 (ja) 電子図書管理システム

Legal Events

Date Code Title Description
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: 20180522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180614

R150 Certificate of patent or registration of utility model

Ref document number: 6356726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150