JP6758549B1 - 設計支援装置、設計支援方法および設計支援プログラム - Google Patents

設計支援装置、設計支援方法および設計支援プログラム Download PDF

Info

Publication number
JP6758549B1
JP6758549B1 JP2020529661A JP2020529661A JP6758549B1 JP 6758549 B1 JP6758549 B1 JP 6758549B1 JP 2020529661 A JP2020529661 A JP 2020529661A JP 2020529661 A JP2020529661 A JP 2020529661A JP 6758549 B1 JP6758549 B1 JP 6758549B1
Authority
JP
Japan
Prior art keywords
circuit block
circuit
program
unit
design support
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
JP2020529661A
Other languages
English (en)
Other versions
JPWO2020174888A1 (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 JP6758549B1 publication Critical patent/JP6758549B1/ja
Publication of JPWO2020174888A1 publication Critical patent/JPWO2020174888A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/20Design reuse, reusability analysis or reusability optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Automation & Control Theory (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

設計支援装置(1)は、ユーザからの操作を受け付ける操作受付部(10)と、操作受付部が受け付けた操作に従いラダープログラムを作成するプログラム作成部(21)と、複数のプログラム要素を含む回路の一端がラダープログラムを構成する2本の母線の一方に接続され、回路の他端が2本の母線の他方に接続されたことを検出することにより回路ブロックが成立し、予め定められた条件が満足された場合、成立した回路ブロックをラダープログラムから抽出する回路ブロック抽出部(22)と、回路ブロック抽出部が抽出した回路ブロックの構成情報を記憶する回路ブロック記憶部(32)と、回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知部(23)と、を備える。

Description

本発明は、シーケンス制御を行うプログラマブルロジックコントローラ(PLC:Programmable Logic Controller)で実行されるラダープログラムの設計作業を支援する設計支援装置、設計支援方法および設計支援プログラムに関する。
ラダープログラムはラダー言語で記述されたプログラムである。ラダー言語を用いたプログラミングでは、2本の母線の間に接点およびコイルといった制御信号を伝搬するプログラム要素を配置し、各プログラム要素の接続関係を指定することによりプログラムを作成する。なお、制御信号はPLCの内部メモリに割り付けられるが、この内部メモリは「デバイス」と呼ばれる。
ここで、ラダープログラムは、複数のプログラム要素で構成される小さな回路を複数組み合わせたものといえる。また、通常、ラダープログラムを構成する小さな回路の中には、回路構成が同じもの、すなわち、回路を構成するプログラム要素同士の接続関係が同一のものが複数存在する。換言すれば、ラダープログラムの設計作業では、同じ構成の小さな回路を複数回にわたって入力する作業が発生する。そのため、同じ構成の小さな回路の入力を効率的に行えるようにする技術が特許文献1で提案されている。
特許文献1に記載の発明では、入力済みの複数のプログラム要素をコピーして貼り付ける作業が発生した場合、貼り付ける対象とされた複数のプログラム要素を履歴情報として保管しておく。そして、特許文献1に記載の発明では、保管しておいた複数のプログラム要素を呼び出し、必要に応じて編集を行った後にプログラム部品として登録する。登録されたプログラム部品は、その後のラダープログラムの編集作業において使用することが可能となる。すなわち、ラダープログラムの編集を行うユーザは、登録済みのプログラム部品をラダープログラムに貼り付けることで、プログラム部品を構成している複数のプログラム要素を一度に入力することができる。
特開2011−113254号公報
しかしながら、特許文献1に記載の発明では、接続関係が同じプログラム要素群(履歴情報として保管している複数のプログラム要素)の入力を繰り返し行うためには、事前に、保管している複数のプログラム要素をプログラム部品化して登録する作業を行う必要があり、手間がかかるという問題があった。
本発明は、上記に鑑みてなされたものであって、ラダープログラムを設計する作業者の負担を軽減することが可能な設計支援装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる設計支援装置は、ユーザからの操作を受け付ける操作受付部と、操作受付部が受け付けた操作に従いラダープログラムを作成するプログラム作成部とを備える。また、設計支援装置は、複数のプログラム要素を含む回路の一端がラダープログラムを構成する2本の母線の一方に接続され、回路の他端が2本の母線の他方に接続されたことを検出することにより回路ブロックが成立すると、前回成立した回路ブロックをラダープログラムから抽出する回路ブロック抽出部と、回路ブロック抽出部が抽出した回路ブロックの構成を表す構成情報を記憶する回路ブロック記憶部とを備える。また、設計支援装置は、回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知部を備える。
本発明にかかる設計支援装置は、ラダープログラムを設計する作業者の負担を軽減することができる、という効果を奏する。
実施の形態1にかかる設計支援装置の構成例を示す図 実施の形態1にかかる設計支援装置が作成するラダープログラムの一例を示す図 実施の形態1にかかる設計支援装置を実現するハードウェアの構成例を示す図 実施の形態1にかかる設計支援装置の回路ブロック抽出部の動作の一例を示すフローチャート 回路ブロック抽出部の動作を説明するための第1の図 回路ブロック抽出部の動作を説明するための第2の図 回路ブロック抽出部が抽出する回路ブロックの一例を示す図 実施の形態1にかかる設計支援装置が保持する回路ブロック情報の一例を示す図 実施の形態1にかかる設計支援装置が保持する使用デバイステーブルの一例を示す図 実施の形態1にかかる設計支援装置が回路ブロックの入力を受け付ける動作の一例を示すフローチャート ラダープログラムの作成画面の第1の例を示す図 ラダープログラムの作成画面の第2の例を示す図 ラダープログラムの作成画面の第3の例を示す図 ラダープログラムの作成画面の第4の例を示す図 実施の形態1にかかる設計支援装置が条件を満たす回路ブロックを検索する動作の一例を示すフローチャート 回路ブロックの検索動作を説明するための第1の図 回路ブロックの検索動作を説明するための第2の図 実施の形態2にかかる設計支援装置に回路ブロックを入力する操作の一例を示す図 実施の形態3にかかる設計支援装置の構成例を示す図 実施の形態3にかかる設計支援装置が備える機械学習部の構成例を示す図 実施の形態3にかかる設計支援装置が回路ブロックを抽出して回路ブロックの入力傾向を学習する動作の一例を示すフローチャート 実施の形態3にかかる設計支援装置が回路ブロックの入力を受け付ける動作の一例を示すフローチャート
以下に、本発明の実施の形態にかかる設計支援装置、設計支援方法および設計支援プログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかる設計支援装置の構成例を示す図である。図1に示したように、実施の形態1にかかる設計支援装置1は、操作受付部10、制御部20、記憶部30および表示部40を備える。
操作受付部10は、設計支援装置1を使用してラダープログラムを設計する作業者であるユーザからの操作を受け付ける。
制御部20は、プログラム作成部21、回路ブロック抽出部22、報知部23および検索部24を備える。
プログラム作成部21は、操作受付部10がユーザから受け付けた操作の内容に従いラダープログラムを作成する。プログラム作成部21は、例えば、図2に示したようなラダープログラムを作成する。図2は、実施の形態1にかかる設計支援装置1が作成するラダープログラムの一例を示す図である。図2に示したラダープログラムは、左母線61および右母線62に挟まれた接点63、接点64およびコイル65で構成される。プログラム要素である接点63、接点64およびコイル65には、PLCの内部メモリであるデバイス(X0,X1,Y0)が割付けられている。プログラム作成部21は、各プログラム要素へのデバイスの割付けを自動で行うものとする。
以下、接点63、接点64およびコイル65で構成される回路を回路ブロック60とする。本明細書においては、複数のプログラム要素を含んで構成され、ラダープログラムを構成する2本の母線(左母線61および右母線62)の双方に接続された回路、より詳細には、複数のプログラム要素を含んで構成された回路であり、左母線61と右母線62との間に形成される複数の電流経路の中の1つを形成する回路、を回路ブロックと称する。
回路ブロック抽出部22は、プログラム作成部21が作成するラダープログラムから回路ブロックを抽出し、抽出した回路ブロックを表す情報である回路ブロック情報を生成する。回路ブロック情報は、後述する記憶部30の回路ブロック記憶部32で保持される。また、回路ブロック抽出部22は、抽出した回路ブロックに含まれる複数のプログラム要素のそれぞれで使用されているデバイスの情報を生成する。デバイスの情報は、後述する記憶部30の使用デバイス記憶部33で保持される。
報知部23は、操作受付部10が回路ブロックの入力開始操作を受け付けた場合に、入力可能な回路ブロック、すなわち、記憶部30の回路ブロック記憶部32が保持している回路ブロックをユーザに報知する。報知部23は、回路ブロック記憶部32が保持している回路ブロックを表示部40に表示させることによりユーザへの報知を行う。報知部23は、回路ブロックをユーザに報知する際、回路ブロックを構成する各プログラム要素に割付けるデバイスも表示部40に表示させる。
検索部24は、操作受付部10が回路ブロックの検索操作を受け付けた場合に、検索操作により指定された条件を満たす回路ブロックを回路ブロック記憶部32が保持している情報が表す回路ブロックの中から検索する。
記憶部30は、プログラム記憶部31、回路ブロック記憶部32および使用デバイス記憶部33を備える。
プログラム記憶部31は、プログラム作成部21が作成するラダープログラムを記憶する。
回路ブロック記憶部32は、回路ブロック抽出部22がラダープログラムから抽出した回路ブロックを表す情報を記憶する。
使用デバイス記憶部33は、回路ブロック抽出部22が抽出した回路ブロックに含まれる複数のプログラム要素のそれぞれで使用されているデバイス、すなわち、複数のプログラム要素のそれぞれに割付けられている内部メモリであるデバイスの情報を記憶する。使用デバイス記憶部33は使用メモリ情報記憶部である。
表示部40は、設計支援装置1を使用するユーザに向けて、各種画面を表示する。
ここで、実施の形態1にかかる設計支援装置1を実現するハードウェアについて説明する。図3は、実施の形態1にかかる設計支援装置1を実現するハードウェアの構成例を示す図である。設計支援装置1は、プロセッサ101、記憶装置102、入力装置103および表示装置104により実現される。図3に示したハードウェアは、例えばパーソナルコンピュータである。図3に示したハードウェアがパーソナルコンピュータである場合、設計支援装置1は、設計支援装置1の制御部20として動作するためのプログラムをパーソナルコンピュータの記憶装置すなわち図3に示した記憶装置102にインストールし、インストールされたプログラムをプロセッサ101が実行することにより実現される。すなわち、図1に示したプログラム作成部21、回路ブロック抽出部22、報知部23および検索部24は、記憶装置102にインストールされた、設計支援装置1の制御部20として動作するためのプログラムをプロセッサ101が実行することにより実現される。
プロセッサ101は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)等である。記憶装置102は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリー、等の、不揮発性または揮発性の半導体メモリ、磁気ディスク等である。記憶装置102は、プロセッサ101が設計支援装置1として動作するためのプログラムおよびその他の各種データを保持する。記憶装置102は、プロセッサ101が各種処理を実行する際のワーク用メモリとしても使用される。また、記憶装置102は、図1に示す記憶部30、すなわち、プログラム記憶部31、回路ブロック記憶部32および使用デバイス記憶部33を構成する。
入力装置103は、マウス、キーボード、タッチパネルなどであり、図1に示す操作受付部10を構成する。表示装置104は、液晶モニタ、ディスプレイなどであり、図1に示した表示部40を構成する。
なお、設計支援装置1の制御部20として動作するための上記のプログラムは、例えば、CD(Compact Disc)−ROM、DVD(Digital Versatile Disc)−ROMなどの記録媒体に書き込まれた状態でユーザに供給され、ユーザが記憶装置102にインストールする。この場合、設計支援装置1を実現するハードウェアは、記録媒体からプログラムを読み出すための読み取り装置、または、読み取り装置を接続するためのインタフェース回路を含む構成となる。また、上記のプログラムは、インターネットなどの通信回線を介してユーザに提供され、記憶装置102にインストールされる形態であってもよい。
つづいて、設計支援装置1の動作、具体的には、ユーザがラダープログラムを設計する作業を支援する動作について説明する。
まず、ユーザがラダープログラムを設計する際の作業を設計支援装置1が支援する動作の概要について説明する。設計支援装置1のプログラム作成部21は、操作受付部10がラダープログラムの作成操作をユーザより受け付けると、受け付けた操作内容に従いラダープログラムを作成する。ここでの作成とは、設計途中のラダープログラムの内容を、操作受付部10が受け付けた操作内容に従いプログラム作成部21が更新することを意味する。回路ブロック抽出部22は、プログラム作成部21によって作成されるラダーブログラムの状態を監視する。そして、回路ブロック抽出部22は、プログラム作成部21によって作成(更新)されるラダープログラムにおいて、抽出済みではない回路ブロックを発見すると、発見した回路ブロックを抽出し、抽出した回路ブロックを表す情報を記憶部30の回路ブロック記憶部32に格納する。報知部23は、操作受付部10がユーザより受け付けた操作が、プログラム作成部21が作成しているラダープログラムへの回路ブロックの挿入操作である場合、回路ブロック記憶部32が保持している情報で表される回路ブロックのうち、使用頻度が高いものをラダープログラムへ挿入する回路ブロックの候補として表示部40へ表示させる。表示部40に表示されている候補の中の1つを選択する操作を操作受付部10がユーザより受け付けた場合、プログラム作成部21は、ユーザにより選択された回路ブロックをラダープログラムに挿入する。
次に、回路ブロック抽出部22の動作を説明する。図4は、実施の形態1にかかる設計支援装置1の回路ブロック抽出部22の動作の一例を示すフローチャートである。
回路ブロック抽出部22は、プログラム作成部21によって作成されるラダープログラムの状態を予め定められたタイミングで確認し、回路ブロックの構成が確定したか否かを判定する(ステップS11)。回路ブロック抽出部22は、例えば、操作受付部10がユーザからの操作を受け付けた場合にラダープログラムの状態を確認する。回路ブロック抽出部22は、予め定められた周期でラダープログラムの状態を繰り返し確認してもよい。
回路ブロック抽出部22が、回路ブロックの構成が確定したか否かを判定する方法の一例を図5および図6を用いて説明する。ユーザからの操作に従いプログラム作成部21がラダープログラムを作成し、図5に示した回路ブロック73が入力された状態とする。その後、さらにユーザからの操作に従いプログラム作成部21がラダープログラムの作成を進め、接点74およびコイル75が入力され、これらが2本の母線71および72の双方に接続された状態となり回路ブロック76が成立したとする。この場合、回路ブロック抽出部22は、回路ブロック76が成立するよりも1つ前に入力された回路ブロック73の構成が確定したと判断する。すなわち、回路ブロック抽出部22は、図4に示したステップS11において、回路ブロックが新たに成立したか否かを判定する。なお、回路ブロックが新たに成立した場合に、その1つ前に入力された回路ブロックの構成が確定したと回路ブロック抽出部22が判定する例を示したが、判定方法はこれに限定されない。回路ブロック抽出部22は、回路ブロックが新たに成立した後、この回路ブロックの構成を変更する操作、例えば、プログラム要素を追加する操作およびプログラム要素を削除する操作といった操作が行われることなく一定時間が経過した時点で、新たに成立した回路ブロックの構成が確定したと判断してもよい。この場合、回路ブロック抽出部22は、図4に示したステップS11において、新たに成立した回路ブロックの構成を変更する操作が最後に行われてから一定時間が経過したか否かを判定する。また、回路ブロック抽出部22は、作成中のラダープログラムを保存する操作が行われた場合、最後に成立した回路ブロックの構成が確定したと判断する。
回路ブロック抽出部22は、回路ブロックの構成が確定していない場合、すなわち、新たな回路ブロックが成立していない場合(ステップS11:No)、ステップS11を継続する。
回路ブロック抽出部22は、回路ブロックの構成が確定した場合(ステップS11:Yes)、構成が確定した回路ブロックを抽出する(ステップS12)。回路ブロック抽出部22は、次に、抽出した回路ブロックと同じ構成の回路ブロックを抽出済みか否か、すなわち、抽出した回路ブロックと同じ構成の回路ブロックを過去に抽出したことがあるか否かを判定する(ステップS13)。回路ブロック抽出部22は、回路ブロック記憶部32が記憶している構成情報を確認することにより、構成が確定した回路ブロックと同じ構成の回路ブロックを抽出済みか否かの判定を行う。回路ブロック記憶部32が記憶している構成情報とは、回路ブロックの構成を示す情報である。
回路ブロック抽出部22は、抽出した回路ブロックと同じ構成の回路ブロックを抽出済みではない場合(ステップS13:No)、抽出した回路ブロックの構成を示す構成情報を生成する(ステップS14)。回路ブロック抽出部22は、さらに、抽出した回路ブロックの抽出回数を1に設定し、ステップS14で生成した構成情報と対応付けて回路ブロック記憶部32に格納する(ステップS15)。抽出回数は、回路ブロック抽出部22が抽出した回路ブロックと構成が同じ回路ブロックのラダープログラム内での使用回数を示す。
回路ブロック抽出部22は、例えば、ステップS12において図7に示した構成の回路ブロック81を抽出した場合、ステップS14およびS15において、図8に示した回路ブロック情報83を回路ブロック記憶部32に格納する。回路ブロック情報83は、構成情報83Aと、抽出回数83Bとを含んで構成される。ここで、構成情報83Aは、図7に示したように、回路ブロック81の左上を原点とし、横方向をX軸、縦方向をY軸とした座標を定義し、XY座標平面上のどの位置にどのプログラム要素が存在するかを示す。図8では、説明の便宜上、各座標に配置されたプログラム要素の種類および接続関係をシンボルで表す例を示したが、プログラム要素の種類を数値などで表すようにしてもよい。
回路ブロック抽出部22は、抽出した回路ブロックと同じ構成の回路ブロックを抽出済みの場合(ステップS13:Yes)、同じ構成の回路ブロックの抽出回数をインクリメントする(ステップS16)。ステップS16で回路ブロック抽出部22が実行する動作の具体例を示す。回路ブロック抽出部22が、図7に示した回路ブロック81をステップS12で抽出し、図8に示した回路ブロック情報83が回路ブロック記憶部32に格納されているとする。この場合、回路ブロック抽出部22は、ステップS16において、回路ブロック情報83の抽出回数83Bをインクリメントする。
回路ブロック抽出部22は、ステップS15またはS16を実行後、抽出した回路ブロックで使用されているデバイスの情報、すなわち、抽出した回路ブロックに含まれるプログラム要素のそれぞれに割り当てられているデバイスの情報を、使用デバイス記憶部33に格納する(ステップS17)。回路ブロック抽出部22は、ステップS17において、例えば、図9に示した使用デバイステーブル85を生成して使用デバイス記憶部33に格納する。図9において、X1,X2,X3,…,Y1,Y2,Y3,…がデバイスを表す。デバイスの右側の‘1’または‘0’が各デバイスに対応付けられているフラグであり、デバイスの使用状態を示す。図9に示した例では、フラグ‘1’の場合はデバイスが既に使用されていることを示し、フラグ‘0’の場合はデバイスが未使用であることを示す。図9に示した使用デバイステーブル85の内容は、回路ブロック抽出部22が図2に示した回路ブロック60を抽出した場合に対応している。そのため、使用デバイステーブル85では、接点63に割付けられているデバイスX0、接点64に割付けられているデバイスX1、および、コイル65に割付けられているデバイスY0のそれぞれに対応付けられているフラグが、使用中を示す‘1’に設定されている。なお、回路ブロック抽出部22は、図9に示した使用デバイステーブル85を生成した後、構成が確定した回路ブロックをさらに抽出すると、ステップS17において、作成済みの使用デバイステーブル85を更新する。すなわち、回路ブロック抽出部22は、抽出した回路ブロックで使用されている各デバイスに対応付けられている各フラグを‘1’に設定する。
以上のように、回路ブロック抽出部22は、2本の母線の双方に新たな回路ブロックが接続されたことを検出すると、1つ前に2本の母線の双方に接続された回路ブロックの構成が確定したと判断し、構成が確定した回路ブロックの構成および抽出回数を示す回路ブロック情報を生成して回路ブロック記憶部32に格納する。また、回路ブロック抽出部22は、構成が確定した回路ブロックで使用されているデバイスの情報として、使用デバイステーブルを生成して使用デバイス記憶部33に格納する。
次に、設計支援装置1が回路ブロックの入力をユーザから受け付ける場合の動作を説明する。図10は、実施の形態1にかかる設計支援装置1が回路ブロックの入力を受け付ける動作の一例を示すフローチャートである。
設計支援装置1は、ラダープログラムを作成しているユーザから、プログラム要素の複数入力の開始操作(回路ブロックの入力開始操作)を受け付けると(ステップS21)、使用回数が多い回路ブロックを入力候補として表示部40に表示する(ステップS22)。
ステップS21において、設計支援装置1は、例えば、図11および図12に示したように、ラダープログラムの作成画面91を表示部40に表示している状態で、プログラム要素を入力する位置の指定操作を操作受付部10が受け付ける。すると、設計支援装置1は、単一のプログラム要素の入力なのか複数のプログラム要素の入力なのかを選択させるメニュー92を表示部40に表示する。メニュー92において、「単一要素入力」は単一のプログラム要素の入力に対応し、「複数要素入力」は複数のプログラム要素(回路ブロック)の入力に対応する。設計支援装置1は、「複数要素入力」を選択する操作を受け付けると、ステップS22を実行し、図13に示したように、回路ブロックの選択操作を受け付けるための画面93を表示部40に表示する。このステップS22では、報知部23が、回路ブロック記憶部32で記憶されている各回路ブロック情報が示す回路ブロックのうち、使用回数が上位の回路ブロックを画面93に表示する。図13に示した例では使用回数が上位の4つの回路ブロックを画面93に表示するようにしている。なお、使用回数が同じ回路ブロックが複数存在する場合、例えば、最後に使用されてからの経過時間が短い回路ブロックを上位とする。また、報知部23は、画面93を表示部40に表示させる際、入力候補の各回路ブロックを構成する各プログラム要素に未使用のデバイスを割り当て、割り当てたデバイスをプログラム要素と一緒に表示させる。このとき、報知部23は、使用デバイス記憶部33で記憶されている使用デバイステーブルを確認し、未使用のデバイスを昇順でプログラム要素に割り当てる。なお、図13は、デバイスX0、X1およびY0が使用されている場合の表示例である。図13に示した例では使用回数が上位4つの回路ブロックを表示することとしたが、設計支援装置1は5つ以上の回路ブロックを表示するようにしてもよい。また、設計支援装置1は、画面93の表示をスクロールさせる操作をユーザから受け付けるようにして、この操作を受け付けた場合、使用回数が上位4つの回路ブロック以外の回路ブロックを画面93に表示するようにしてもよい。
図10の説明に戻り、設計支援装置1は、ステップS22を実行後、入力候補の回路ブロックの中から1つの回路ブロックを選択する操作をユーザより受け付け(ステップS23)、選択された回路ブロックをラダープログラムに挿入する(ステップS24)。例えば、図13の画面93の右上に表示されている回路ブロックが選択された場合、設計支援装置1のプログラム作成部21は、選択された回路ブロックを、上記のステップS21で指定された位置に挿入する。この結果、ラダープログラムの作成画面91は、図14に示した内容に更新される。
設計支援装置1は、図10に示すフローチャートに従った動作と並行して、図4に示すフローチャートに従った動作も行っている。設計支援装置1では、上記のステップS24で回路ブロックの挿入が行われると、これに伴い、回路ブロック抽出部22が回路ブロックの構成が確定したと判定し、図4に示すステップS12およびこれに続く各ステップを実行して、構成が確定した回路ブロックの使用回数を更新する。なお、上記のステップS24で回路ブロックの挿入が行われた場合、回路ブロック抽出部22は、挿入された回路ブロックの1つ前に成立した回路ブロックの構成が確定したと判断し、使用回数を更新する。
また、設計支援装置1は、ステップS22を実行して図13に示した画面93を表示部40に表示している状態において、回路ブロック記憶部32で記憶されている各回路ブロック情報が示す回路ブロックの中からユーザにより指定された条件を満たす回路ブロックを検索することが可能である。
次に、回路ブロック記憶部32で記憶されている各回路ブロック情報が示す回路ブロックである、過去に使用された回路ブロックの中からユーザに指定された条件を満たす回路ブロックを設計支援装置1が検索する動作を説明する。ユーザに指定された条件を満たす回路ブロックの検索は検索部24が行う。
図15は、実施の形態1にかかる設計支援装置1が条件を満たす回路ブロックを検索する動作の一例を示すフローチャートである。
設計支援装置1は、上述した図10のステップS22を実行し、図16に示した内容の画面93を表示部40に表示しているものとする。このとき、設計支援装置1は、画面93の左下に検索条件入力領域94を表示させ、接点のANDおよびORの個数の入力をユーザから受け付ける(ステップS31)。その後、検索ボタン95が押下されたことを検出すると(ステップS32)、検索部24が、接点のANDおよびORの個数が条件を満たす回路ブロック、すなわち、接点のANDおよびORの個数がステップS31で入力を受け付けた個数と一致する回路ブロックを検索する(ステップS33)。具体的には、検索部24は、回路ブロック記憶部32が記憶している回路ブロック情報で示される回路ブロックの中から、接点のANDおよびORの個数が条件を満たす回路ブロックを検索する。検索部24は、検索が終了すると、検索結果を報知部23に通知する。報知部23は、検索部24による検索結果に従い、回路ブロックの入力候補の表示を更新する(ステップS34)。具体的には、報知部23は、検索部24による検索で見つかった回路ブロック、すなわち、上記のステップS31で入力された条件を満たす回路ブロックのうち、使用回数が上位の回路ブロックを画面93に表示する。例えば、上記のステップS31で「接点のANDの個数が1、かつ接点のORの数が1」という条件の入力を受け付けた場合、報知部23は、画面93を図17に示した内容に更新する。
その後、設計支援装置1は、画面93に表示した入力候補の回路ブロックが選択されるか、回路ブロックの検索条件(接点のANDおよびORの個数)が入力されるのを待つ。設計支援装置1は、入力候補の回路ブロックの中の1つを選択する操作をユーザから受け付けた場合、上述したように、選択された回路ブロックをラダープログラムに挿入する(図10のステップS23およびS24の処理を行う)。また、設計支援装置1は、回路ブロックの検索条件が入力され、検索ボタンが押下された場合、過去に使用された回路ブロックの中から検索条件を満たす回路ブロックを検索して画面93の表示を更新する(図15に示したステップS31〜S34の処理を行う)。
以上のように、本実施の形態にかかる設計支援装置1は、ラダープログラムの2本の母線に接続される回路ブロックの構成が確定すると、構成が確定した回路ブロックをラダープログラムから抽出し、抽出した回路ブロックの構成および抽出した回路ブロックと構成が同じ回路ブロックの抽出回数を示す回路ブロック情報を生成して保持する。また、設計支援装置1は、プログラム要素の複数入力の開始操作を受け付けた場合、回路ブロック情報で示される回路ブロックのうち、使用回数が上位の回路ブロックを入力候補としてユーザに報知する。設計支援装置1は、報知した回路ブロックの中の1つが選択されると、選択された回路ブロックをラダープログラムに挿入する。本実施の形態にかかる設計支援装置1によれば、複数のプログラム要素を一度に入力する場合に、一度に入力したい複数のプログラム要素を予め部品化しておく必要が無いため、ラダープログラムを設計する作業者の負担を軽減することができる。
実施の形態2.
つづいて、実施の形態2にかかる設計支援装置について説明する。実施の形態2にかかる設計支援装置の機能ブロック構成は実施の形態1にかかる設計支援装置1と同様である(図1参照)。本実施の形態では、実施の形態1にかかる設計支援装置1と異なる部分を説明する。
実施の形態2にかかる設計支援装置は、ラダープログラムの作成画面91を表示部40に表示している状態で、ラダープログラムの作成画面91が触れられたことを検出すると、図18に示したような、回路ブロックをフリック入力するための表示を行う。このとき、実施の形態1と同様に、使用回数が上位の回路ブロックを入力候補として表示する。なお、操作受付部10がフリック入力を受け付け、報知部23が、回路ブロックをフリック入力するための表示を表示部40に表示させる。
実施の形態2にかかる設計支援装置は、回路ブロックの入力候補の表示方法と、回路ブロックの選択方法とをフリック入力に対応させた点を除いて、実施の形態1にかかる設計支援装置1と同様である。実施の形態2にかかる設計支援装置は、回路ブロックの挿入位置を、例えば、ラダープログラムの作成画面91をユーザが最初に触れた位置とする。または、実施の形態2にかかる設計支援装置は、入力する回路ブロックが選択された後に、回路ブロックの挿入位置の指定を受け付けるようにしてもよい。また、実施の形態2にかかる設計支援装置は、ラダープログラムの作成画面91が触れられたことを検出した場合、単一のプログラム要素の入力を行うのか回路ブロックの入力を行うのかを選択させるようにして、回路ブロックの入力が選択された場合に図18に示したような表示を行うようにしてもよい。
なお、本実施の形態にかかる設計支援装置は、フリック操作による回路ブロックの入力受付に加えて、実施の形態1と同様の入力操作の受け付けを可能とする。
このように、実施の形態2にかかる設計支援装置は、タッチパネルを利用した入力操作を受け付け可能に構成され、フリック操作により回路ブロックの入力を受け付けることとした。フリック操作による入力を行うことで、ユーザは直感的な操作を行うことができる。また、ユーザは、単一のプログラム要素を入力する場合のように細かな指の動作を何度も行うことなく回路ブロック(複数のプログラム要素)を入力することができる。
実施の形態3.
つづいて、実施の形態3にかかる設計支援装置について説明する。上述したように、実施の形態1にかかる設計支援装置1は、回路ブロックの入力開始操作を受け付けると、過去に入力した回数(使用回数)が上位の一定数の回路ブロックを、入力する回路ブロックの候補として表示部40に表示していた。しかしながら、使用回数が上位の回路ブロックの中にユーザが入力しようとしている回路ブロックが含まれているとは限らない。また、ラダープログラムでは、ある回路ブロックに続いて記述される回路ブロックには一定の条件が存在し、使用回数が上位の回路ブロックが一定の条件を満たさない可能性がある。この場合は一定の条件を満たす回路ブロックを入力候補として表示することが望ましいが、使用回数で入力候補を決定する場合はそれが難しい。そのため、本実施の形態にかかる設計支援装置では、機械学習により回路ブロックの入力傾向を学習し、学習結果に基づいて回路ブロックの入力候補を決定する。
図19は、実施の形態3にかかる設計支援装置の構成例を示す図である。実施の形態3にかかる設計支援装置1aは、操作受付部10、制御部20a、記憶部30および表示部40を備える。設計支援装置1aの操作受付部10、記憶部30および表示部40は、実施の形態1にかかる設計支援装置1の操作受付部10、記憶部30および表示部40と同一であるため、説明を省略する。設計支援装置1aの制御部20aは、実施の形態1にかかる設計支援装置1の制御部20に機械学習部25を追加し、回路ブロック抽出部22を回路ブロック抽出部22aに置き換えた構成である。
図19では、設計支援装置1aの構成要素のうち、実施の形態1にかかる設計支援装置1の構成要素と同一の構成要素に同じ符号を付している。実施の形態1にかかる設計支援装置1の構成要素と同一の構成要素については説明を省略する。
回路ブロック抽出部22aは、実施の形態1にかかる設計支援装置1の回路ブロック抽出部22と同様に、プログラム作成部21によって作成されるラダープログラムの状態を予め定められたタイミングで確認して回路ブロックの構成が確定したか否かを判定し、構成が確定した場合は回路ブロックを抽出する。また、回路ブロック抽出部22aは、抽出した回路ブロックの構成情報が回路ブロック記憶部32で保持されていない場合は構成情報を生成して回路ブロック記憶部32に格納する。ただし、回路ブロック抽出部22aは、回路ブロック抽出部22とは異なり、回路ブロックの抽出回数を構成情報と対応付けて回路ブロック記憶部32に格納することはしない。よって、実施の形態3にかかる設計支援装置1aの回路ブロック記憶部32は、回路ブロック抽出部22aが抽出した回路ブロックの構成情報のみを保持する。
図20は、実施の形態3にかかる設計支援装置1aが備える機械学習部25の構成例を示す図である。機械学習部25は、状態観測部51、データ取得部52および学習部53を備える。
状態観測部51は、ラダープログラムに回路ブロックが挿入されると、前回挿入された回路ブロックを状態変数として観測する。ここでの回路ブロックの挿入には、複数のプログラム要素を個別に入力して回路ブロックを成立させることで行う回路ブロックの挿入と、実施の形態1で図10〜図14を用いて説明した、回路ブロックの候補の中の1つを選択して行う回路ブロックの挿入との両方が該当する。なお、以下の説明では、「ラダープログラムへの回路ブロックの挿入」を「回路ブロックの入力」と表現する。
データ取得部52は、ラダープログラムに回路ブロックが入力されると、入力された回路ブロックに関するデータを取得する。回路ブロックに関するデータは、入力された回路ブロックを一意に示す情報であればよく、例えば、回路ブロックの構成情報、回路ブロックの管理番号などが該当する。
学習部53は、状態観測部51が観測した状態変数と、データ取得部52が取得した回路ブロックに関するデータとを組み合わせて作成されるデータセットに基づいて、回路ブロックの入力傾向を学習する。ここで、データセットは、状態変数と回路ブロックに関するデータとを互いに関連付けたデータである。
なお、本実施の形態では、設計支援装置1aの制御部20aが機械学習部25を備える場合の例について説明するが、この構成に限定されない。機械学習部25は、制御部20aとは独立した機能部としてもよいし、設計支援装置1aとは別個の装置で実現されてもよい。また、機械学習部25は、クラウドサーバ上に存在する装置で実現されてもよい。機械学習部25が設計支援装置1aの外部の装置で実現される場合、設計支援装置1aは、上記の状態観測部51が観測するデータおよびデータ取得部52が取得するデータを、機械学習部25を実現する装置に対して送信する。また、設計支援装置1aは、機械学習部25を実現する装置での学習結果を取得する。
学習部53は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、回路ブロックの入力傾向を学習する。ここで、教師あり学習とは、ある入力と結果(ラベル)のデータの組であるデータセットを大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルをいう。
ニューラルネットワークは、複数のニューロンからなる入力層と、複数のニューロンからなる中間層(隠れ層)と、複数のニューロンからなる出力層とで構成される。中間層は、1層または2層以上でもよい。
ニューラルネットワークでは、データが入力層の対応するニューロンに入力されると、各ニューロンは、入力データに予め定められた重みを掛けて中間層の各ニューロンに入力する。中間層の各ニューロンも同様に、入力データに予め定められた重みを掛けて出力層の各ニューロンに入力する。出力層の各ニューロンは、中間層から受け取ったデータを出力する。この出力結果は、入力層および中間層の各ニューロンが入力データに掛ける重みの値によって変わる。すなわち、ニューラルネットワークは、出力結果と教師データとの差が小さくなるよう、各ニューロンでデータに掛ける重みを調整することで学習を行う。
本実施の形態にかかる学習部53を構成するニューラルネットワークは、状態観測部51によって観測される前回入力された回路ブロックと、データ取得部52によって取得される今回入力された回路ブロックとの組合せに基づいて、教師あり学習により、回路ブロックの入力傾向を学習する。今回入力された回路ブロックが教師データとなる。なお、状態観測部51による観測対象を前回入力された回路ブロックとしたが、前回から一定回数前までに入力された回路ブロック、例えば、前回入力された回路ブロック〜3回前に入力された回路ブロック、つまり、過去3回の入力回路ブロックを観測対象としてもよい。複数の入力回路ブロックを観測することにより、回路ブロックの入力傾向をより正確に学習することが可能となる。
学習部53を構成するニューラルネットワークの学習では、具体的には、状態変数が入力されると、ユーザが次に入力する回路ブロックの候補を出力する。回路ブロックの候補数は、例えば実施の形態1と同様に4とする。また、選択される可能性が高いと予想される回路ブロックから順番に並べて出力する。次に、出力した回路ブロックの候補と、データ取得部52が取得した回路ブロック(今回入力された回路ブロック)とを比較し、比較結果に基づいて、ニューラルネットワークの入力層および中間層の各ニューロンで使用する重み(各ニューロンで入力データに掛ける重み)を調整する。重みの調整では、回路ブロックの候補の中の最上位の回路ブロック、すなわち、選択される可能性が最も高いと予想される回路ブロックと、今回入力された回路ブロック(教師データ)とが一致するよう、各ニューロンで使用する重みを調整する。
学習部53は、複数の設計支援装置1aに対して作成されるデータセットに従って、回路ブロックの入力傾向を学習するようにしてもよい。なお、学習部53は、複数の設計支援装置1aからデータセットを取得してもよい。さらに、データセットを収集する設計支援装置1aを途中で対象に追加し、或いは、逆に対象から除去することも可能である。また、ある設計支援装置1aに関して回路ブロックの入力傾向を学習した学習部53である機械学習装置を、これとは別の設計支援装置1aに取り付け、当該別の設計支援装置1aに関して回路ブロックの入力傾向を再学習して更新するようにしてもよい。
また、学習部53に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習(Deep Learning)を用いることもでき、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
つづいて、設計支援装置1aの動作について説明する。図21は、実施の形態3にかかる設計支援装置1aが回路ブロックを抽出して回路ブロックの入力傾向を学習する動作の一例を示すフローチャートである。
図21に示すフローチャートは、実施の形態1で説明した図4に示すフローチャートのステップS14〜S15をステップS18およびS19に置き換えたものである。ステップS11〜S13およびS17については実施の形態1にかかる設計支援装置1が行う同じステップ番号の動作と同様であるため、説明を省略する。
設計支援装置1aの回路ブロック抽出部22aは、ステップS12で抽出した回路ブロックと同じ構成の回路ブロックを抽出済みではない場合(ステップS13:No)、抽出した回路ブロックの構成を示す構成情報を生成して回路ブロック記憶部32に格納する(ステップS18)。
次に、設計支援装置1aは、ステップS12で抽出した回路ブロックと過去に入力された回路ブロックとに基づいて、回路ブロックの入力傾向を学習する(ステップS19)。このステップS19では、機械学習部25が、過去に入力された回路ブロックである過去n回(nは1以上の整数)の入力回路ブロックを状態変数とし、抽出した回路ブロックである今回入力された回路ブロックを教師データとして、回路ブロックの入力傾向を学習する。
回路ブロック抽出部22aは、ステップS12で抽出した回路ブロックと同じ構成の回路ブロックを抽出済みの場合(ステップS13:Yes)、ステップS18を実行しない。この場合はステップS13に続いてステップS19が実行される。
次に、設計支援装置1aが回路ブロックの入力をユーザから受け付ける場合の動作を説明する。図22は、実施の形態3にかかる設計支援装置1aが回路ブロックの入力を受け付ける動作の一例を示すフローチャートである。
図22に示すフローチャートは、実施の形態1で説明した図10に示すフローチャートのステップS22をステップS25に置き換えたものである。ステップS25以外については実施の形態1にかかる設計支援装置1が行う同じステップ番号の動作と同様であるため、説明を省略する。
設計支援装置1aは、プログラム要素の複数入力の開始操作(回路ブロックの入力開始操作)を受け付けると(ステップS21)、機械学習部25での学習結果に基づいて、回路ブロックの入力候補を表示部40に表示する(ステップS25)。このステップS25では、例えば、機械学習部25が、学習結果と、ラダープログラムに前回入力された回路ブロックとに基づいて、回路ブロックの入力候補を決定し、次に、報知部23が、回路ブロックの入力候補を表示部40に表示する。設計支援装置1aは、実施の形態2にかかる設計支援装置1と同様に、フリック操作による回路ブロックの入力を受け付け可能としてもよい。
このように、実施の形態3にかかる設計支援装置1aは、回路ブロックの過去の入力結果に基づいて回路ブロックの入力傾向を機械学習により学習し、学習結果に基づいて、回路ブロックの入力候補を決定する。これにより、実施の形態1および2と比較して、より選択される可能性が高い回路ブロックを入力候補としてユーザに報知することが可能となる。
なお、本実施の形態にかかる設計支援装置1aでは、実施の形態1にかかる設計支援装置1が利用する回路ブロックの使用回数に代えて、機械学習を利用して回路ブロックの入力候補を決定することとしたが、使用回数および機械学習の双方を利用する構成としてもよい。設計支援装置1aは、例えば、機械学習部25による学習が不十分な状態のときは回路ブロックの使用回数に基づいて回路ブロックの入力候補の表示を行い、学習が十分な状態になると、学習結果に基づいて回路ブロックの入力候補の表示を行うようにしてもよい。また、回路ブロックの使用回数に基づいて回路ブロックの入力候補の表示を行うのか、学習結果に基づいて回路ブロックの入力候補の表示を行うのかを、ユーザが選択できるようにしてもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,1a 設計支援装置、10 操作受付部、20,20a 制御部、21 プログラム作成部、22,22a 回路ブロック抽出部、23 報知部、24 検索部、25 機械学習部、30 記憶部、31 プログラム記憶部、32 回路ブロック記憶部、33 使用デバイス記憶部、40 表示部、51 状態観測部、52 データ取得部、53 学習部。

Claims (15)

  1. ユーザからの操作を受け付ける操作受付部と、
    前記操作受付部が受け付けた操作に従いラダープログラムを作成するプログラム作成部と、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立すると、前回成立した回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出部と、
    前記回路ブロック抽出部が抽出した回路ブロックの構成を表す構成情報を記憶する回路ブロック記憶部と、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知部と、
    を備えることを特徴とする設計支援装置。
  2. ユーザからの操作を受け付ける操作受付部と、
    前記操作受付部が受け付けた操作に従いラダープログラムを作成するプログラム作成部と、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを変更する操作を前記操作受付部が受け付けることなく一定時間が経過すると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出部と、
    前記回路ブロック抽出部が抽出した回路ブロックの構成を表す構成情報を記憶する回路ブロック記憶部と、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知部と、
    を備えることを特徴とする設計支援装置。
  3. ユーザからの操作を受け付ける操作受付部と、
    前記操作受付部が受け付けた操作に従いラダープログラムを作成するプログラム作成部と、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを前記ラダープログラムから抽出する前に、前記ラダープログラムを保存する操作を前記操作受付部が受け付けると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出部と、
    前記回路ブロック抽出部が抽出した回路ブロックの構成を表す構成情報を記憶する回路ブロック記憶部と、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知部と、
    を備えることを特徴とする設計支援装置。
  4. 前記回路ブロック記憶部は、前記回路ブロック抽出部が抽出した回路ブロックと構成が同じ回路ブロックの前記ラダープログラム内での使用回数の情報を前記構成情報と対応付けて記憶し、
    前記報知部は、前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックのうち、使用回数が上位の一定数の回路ブロックを、前記候補としてユーザに報知する、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  5. 前記ラダープログラムに過去に挿入された回路ブロックと前記ラダープログラムに新たに挿入された回路ブロックとに基づいて、前記ラダープログラムへの回路ブロックの入力傾向を学習する機械学習部、
    を備え、
    前記報知部は、前記機械学習部による学習結果に基づいて前記候補をユーザに報知する、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  6. 前記報知部は、前記ラダープログラムに過去に挿入された回路ブロックと前記ラダープログラムに新たに挿入された回路ブロックとに基づいて学習された前記ラダープログラムへの回路ブロックの入力傾向に基づいて前記候補をユーザに報知する、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  7. 前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックのうち、ユーザが指定する条件を満たす回路ブロックを検索する検索部、
    を備え、
    前記報知部は、前記検索部が検索を行った場合、当該検索で見つかった回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  8. 前記回路ブロック抽出部が抽出した回路ブロックに含まれる各プログラム要素に割付けられた内部メモリの情報を記憶する使用メモリ情報記憶部、
    を備え、
    前記報知部は、ユーザに報知する回路ブロックに含まれる各プログラム要素に未使用の内部メモリを自動で割付け、割付けた内部メモリをプログラム要素と対応付けてユーザに報知する、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  9. 前記操作受付部は、前記報知部が報知する回路ブロックの1つをユーザが選択する場合、フリック操作による選択を受け付ける、
    ことを特徴とする請求項1からのいずれか一つに記載の設計支援装置。
  10. プログラムの設計作業を支援する設計支援装置が実行する設計支援方法であって、
    ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立すると、前回成立した回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    を含むことを特徴とする設計支援方法。
  11. プログラムの設計作業を支援する設計支援装置が実行する設計支援方法であって、
    ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを変更する操作を前記操作受付ステップで受け付けることなく一定時間が経過すると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    を含むことを特徴とする設計支援方法。
  12. プログラムの設計作業を支援する設計支援装置が実行する設計支援方法であって、
    ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを前記ラダープログラムから抽出する前に、前記ラダープログラムを保存する操作を前記操作受付ステップで受け付けると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    を含むことを特徴とする設計支援方法。
  13. ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立すると、前回成立した回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    をコンピュータに実行させることを特徴とする設計支援プログラム。
  14. ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを変更する操作を前記操作受付ステップで受け付けることなく一定時間が経過すると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    をコンピュータに実行させることを特徴とする設計支援プログラム。
  15. ユーザからの操作を受け付ける操作受付ステップと、
    前記操作受付ステップで受け付けた操作に従いラダープログラムを作成するプログラム作成ステップと、
    複数のプログラム要素を含む回路の一端が前記ラダープログラムを構成する2本の母線の一方に接続され、前記回路の他端が前記2本の母線の他方に接続されたことを検出することにより回路ブロックが成立した後、成立した前記回路ブロックを前記ラダープログラムから抽出する前に、前記ラダープログラムを保存する操作を前記操作受付ステップで受け付けると、成立した前記回路ブロックを前記ラダープログラムから抽出する回路ブロック抽出ステップと、
    前記回路ブロック抽出ステップで抽出した回路ブロックの構成を表す構成情報を回路ブロック記憶部に記憶させる記憶ステップと、
    前記回路ブロック記憶部が記憶している構成情報で表される回路ブロックを、前記ラダープログラムに挿入する回路ブロックの候補としてユーザに報知する報知ステップと、
    をコンピュータに実行させることを特徴とする設計支援プログラム。
JP2020529661A 2019-02-27 2020-01-09 設計支援装置、設計支援方法および設計支援プログラム Active JP6758549B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2019/007671 2019-02-27
PCT/JP2019/007671 WO2020174627A1 (ja) 2019-02-27 2019-02-27 設計支援装置、設計支援方法および設計支援プログラム
PCT/JP2020/000443 WO2020174888A1 (ja) 2019-02-27 2020-01-09 設計支援装置、設計支援方法および設計支援プログラム

Publications (2)

Publication Number Publication Date
JP6758549B1 true JP6758549B1 (ja) 2020-09-23
JPWO2020174888A1 JPWO2020174888A1 (ja) 2021-03-11

Family

ID=72238399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020529661A Active JP6758549B1 (ja) 2019-02-27 2020-01-09 設計支援装置、設計支援方法および設計支援プログラム

Country Status (4)

Country Link
US (1) US11809796B2 (ja)
JP (1) JP6758549B1 (ja)
CN (1) CN113518948A (ja)
WO (2) WO2020174627A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7423895B2 (ja) * 2019-03-12 2024-01-30 オムロン株式会社 ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044108A (ja) * 2001-07-31 2003-02-14 Digital Electronics Corp エディタの登録装置、登録プログラムおよびそれを記録した記録媒体
JP2011113254A (ja) * 2009-11-26 2011-06-09 Mitsubishi Electric Corp ラダー図編集装置およびラダー図編集プログラム
JP2012014561A (ja) * 2010-07-02 2012-01-19 Mitsubishi Electric Corp ラダープログラム作成装置
WO2013038541A1 (ja) * 2011-09-15 2013-03-21 三菱電機株式会社 ラダープログラム作成装置
WO2013140497A1 (ja) * 2012-03-19 2013-09-26 三菱電機株式会社 シーケンスプログラム作成装置
WO2014080490A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 プログラム作成支援装置、方法および記録媒体
WO2014155717A1 (ja) * 2013-03-29 2014-10-02 三菱電機株式会社 シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置
WO2015025382A1 (ja) * 2013-08-21 2015-02-26 三菱電機株式会社 プログラム編集用プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603183B1 (en) * 1999-08-31 2009-10-13 Digital Electronics Corporation Editor device and recorded medium on which editor program is recorded
JP5777838B2 (ja) * 2013-03-07 2015-09-09 三菱電機株式会社 ラダープログラム表示プログラムおよびラダープログラム表示装置
JP6224575B2 (ja) * 2014-12-19 2017-11-01 ファナック株式会社 指定した信号の演算条件によりラダー回路を検索可能なラダープログラム検索装置
JP6356726B2 (ja) * 2016-05-19 2018-07-11 ファナック株式会社 ラダープログラム解析装置
WO2018051441A1 (ja) * 2016-09-14 2018-03-22 三菱電機株式会社 ラダープログラム編集支援装置およびラダープログラムの編集方法
US20180095447A1 (en) * 2016-09-30 2018-04-05 Omron Corporation Program development supporting apparatus, program development supporting method, and program development supporting program
JP6922431B2 (ja) * 2017-05-31 2021-08-18 オムロン株式会社 プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム
JP6988597B2 (ja) * 2018-03-14 2022-01-05 オムロン株式会社 ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044108A (ja) * 2001-07-31 2003-02-14 Digital Electronics Corp エディタの登録装置、登録プログラムおよびそれを記録した記録媒体
JP2011113254A (ja) * 2009-11-26 2011-06-09 Mitsubishi Electric Corp ラダー図編集装置およびラダー図編集プログラム
JP2012014561A (ja) * 2010-07-02 2012-01-19 Mitsubishi Electric Corp ラダープログラム作成装置
WO2013038541A1 (ja) * 2011-09-15 2013-03-21 三菱電機株式会社 ラダープログラム作成装置
WO2013140497A1 (ja) * 2012-03-19 2013-09-26 三菱電機株式会社 シーケンスプログラム作成装置
WO2014080490A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 プログラム作成支援装置、方法および記録媒体
WO2014155717A1 (ja) * 2013-03-29 2014-10-02 三菱電機株式会社 シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置
WO2015025382A1 (ja) * 2013-08-21 2015-02-26 三菱電機株式会社 プログラム編集用プログラム

Also Published As

Publication number Publication date
US20220198113A1 (en) 2022-06-23
WO2020174627A1 (ja) 2020-09-03
WO2020174888A1 (ja) 2020-09-03
JPWO2020174888A1 (ja) 2021-03-11
US11809796B2 (en) 2023-11-07
CN113518948A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
CN104583923B (zh) 用于探索数据可视化的用户界面工具
RU2665257C2 (ru) Иерархически организованные галереи управляющих элементов
JP2011186742A (ja) レイアウト編集装置およびその制御方法およびプログラム
JP5987853B2 (ja) ラダープログラム作成装置、コンピュータプログラム及びコンピュータ可読情報記録媒体
JPWO2008099505A1 (ja) テキスト表示制御装置及びコンピュータプログラム
CN105474112A (zh) 程序编辑用程序
JP6206202B2 (ja) 情報処理装置及び情報処理プログラム
JP6758549B1 (ja) 設計支援装置、設計支援方法および設計支援プログラム
Vanderdonckt et al. Exploring a design space of graphical adaptive menus: normal vs. small screens
CN107678637A (zh) 切换选项卡的方法、设备、浏览器和电子设备
JP5777218B2 (ja) 業務フロー生成支援システム及び業務フロー生成方法
WO2012101701A1 (ja) UI(User Interface)作成支援装置、UI作成支援方法及びプログラム
US9792000B2 (en) System construction assistance apparatus, method, and recording medium
JP5833464B2 (ja) 表示装置、プログラム、表示方法、およびサーバ
WO2012101700A1 (ja) UI(User Interface)作成支援装置、UI作成支援方法及びプログラム
JP4981723B2 (ja) 表示処理装置、表示処理方法、表示処理プログラムおよび記録媒体
JP2007156955A (ja) ガイダンス生成装置およびガイダンス生成プログラム
CN108363575B (zh) 一种调整冰箱显示界面布局的方法及冰箱
JP2013182329A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2012014560A (ja) 図形編集プログラム,図形編集方法及び図形編集装置
KR20210141676A (ko) 구조화된 데이터 점프 메커니즘
JP2013134633A (ja) 数式表示装置及び数式表示プログラム
US11989395B1 (en) Interface modification systems and methods
CN105068711A (zh) 多窗口的应用显示方法和设备
JP2005141296A (ja) 文書検索装置、文書検索方法、および文書検索プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200529

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200529

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200529

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200901

R150 Certificate of patent or registration of utility model

Ref document number: 6758549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250