JPWO2020178983A1 - プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム - Google Patents

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

Info

Publication number
JPWO2020178983A1
JPWO2020178983A1 JP2019552927A JP2019552927A JPWO2020178983A1 JP WO2020178983 A1 JPWO2020178983 A1 JP WO2020178983A1 JP 2019552927 A JP2019552927 A JP 2019552927A JP 2019552927 A JP2019552927 A JP 2019552927A JP WO2020178983 A1 JPWO2020178983 A1 JP WO2020178983A1
Authority
JP
Japan
Prior art keywords
program
component
circuit
common
common logic
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
JP2019552927A
Other languages
English (en)
Other versions
JP6664563B1 (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 JP6664563B1 publication Critical patent/JP6664563B1/ja
Publication of JPWO2020178983A1 publication Critical patent/JPWO2020178983A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

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

Abstract

プログラム作成支援装置(1)は、シーケンスプログラム内の回路全体から共通のロジック部分を抽出し、抽出した共通のロジック部分に含まれる回路部品について、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する共通判定部(13)と、共通のロジック部分と付属情報とに基づいてプログラムコンポーネントを生成するプログラムコンポーネント生成部(プログラム部品登録部(17))と、シーケンスプログラム内の共通のロジック部分の各々を、プログラムコンポーネントとプログラムコンポーネントの入出力引数に接続する回路部品とで置き換える置換部(部品化処理部(19))と、を備え、プログラムコンポーネント生成部は、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致している回路部品については、ユーザが入出力引数を生成するか否かを選択することができる。

Description

本発明は、シーケンスプログラムの作成を支援するプログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラムに関する。
プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)は、シーケンスプログラムに従って動作を行い、工場などに設置されている被制御機器を制御する制御装置である。
シーケンスプログラムの主要な記述言語としてラダー言語がある。ラダー言語は、リレー回路を模したグラフィカルな表現によるプログラミング言語であり、接点およびコイルといった制御信号を伝搬する回路部品を配置し、それらの接続関係を指定することによって、プログラムを作成できる。なお、制御信号はPLCの内部メモリに割り付けられるが、この内部メモリは「デバイス」と呼ばれる。また、ラダー言語で記述されたシーケンスプログラムはラダープログラムと呼ばれる。ラダープログラムにおいては、XおよびYといった記号と数値とを組み合わせてデバイスを表現し、接点およびコイルのそれぞれにデバイスを割り付けることで信号伝搬を表現している。
ここで、近年、生産設備の大規模化が進んでおり、これに伴いPLCが制御する被制御機器の数が増加し、シーケンスプログラムも大規模化している。そのため、シーケンスプログラムを効率良く作成できるようにするための技術が提案されている。
例えば、特許文献1に記載の発明では、1つのシーケンスプログラムにおいて同じ回路パターンが複数回使用されることに着目し、シーケンスプログラムを効率良く作成できるようにしている。具体的には、特許文献1に記載の発明では、作成済みのシーケンスプログラムから共通の回路パターンを抽出して部品化を行い、部品化された回路パターンであるプログラム部品をその後のシーケンスプログラムの作成などで再利用できるようにしている。
特許第5769900号公報
特許文献1に記載の発明では、プログラム部品の定義、すなわち入出力引数の定義を、自動的に決定する。具体的には、共通の回路パターン内の回路部品(接点、コイル等)に対する全てのデバイス割付が、入出力引数から渡されるものとして、プログラム部品の入出力引数が定義される。よって、例えば、共通回路パターン内に接点が5個、コイルが3個存在する場合、当該共通回路パターンから生成したプログラム部品は、入力引数が5個(=接点数)、出力引数が3個(=コイル数)となる。
ところで、共通回路パターンの抽出元となる複数の回路において、デバイス割付が同じ回路部品については、引数として外部からデバイス割付を渡す必要が無く、プログラム部品の引数を省略することが可能である。また、シーケンスプログラムにおいては、使用するプログラム部品の入出力引数の数が少ないほど、可読性および保守性が高くなり、また、プログラム容量を削減することが可能である。しかしながら、特許文献1に記載の発明では、プログラム部品の入出力引数の数を削減すること、すなわち、シーケンスプログラムの可読性および保守性の改善について考慮されていないという問題があった。
本発明は、上記に鑑みてなされたものであって、シーケンスプログラムの可読性および保守性を高めることが可能なプログラム作成支援装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム作成支援装置は、シーケンスプログラム内の回路全体から共通のロジック部分を抽出し、抽出した共通のロジック部分に含まれる回路部品について、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する共通判定部、を備える。また、プログラム作成支援装置は、共通判定部が抽出した共通のロジック部分と付属情報とに基づいてプログラムコンポーネントを生成するプログラムコンポーネント生成部と、シーケンスプログラム内の共通のロジック部分の各々を、プログラムコンポーネントとプログラムコンポーネントの入出力引数に接続する回路部品とで置き換える置換部と、を備える。プログラムコンポーネント生成部は、付属情報のうち、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致している回路部品については、ユーザが入出力引数を生成するか否かを選択することができる。
本発明にかかるプログラム作成支援装置は、シーケンスプログラムの可読性および保守性を高めることができるという効果を奏する。
実施の形態にかかるプログラム作成支援装置によるプログラム部品の生成動作の概要を示す図 実施の形態にかかるプログラム作成支援装置を含んで構成されるプログラム作成システムの構成を示す図 実施の形態にかかるプログラム作成支援装置の動作の一例を示すフローチャート プログラム部品の入出力引数の生成指定画面の一例を示す図 置換処理実行後のシーケンスプログラムの確認用画面の一例を示す図 実施の形態にかかるプログラム作成支援装置のハードウェア構成を示す図
以下に、本発明の実施の形態にかかるプログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
以下の実施の形態において、「共通回路パターンG」と「共通のロジック部分H」とを以下のように区別して説明を行う。
・共通回路パターンG:シーケンスプログラムに共通して現れるロジックのパターン。
・共通のロジック部分H:共通回路パターンGが現れるシーケンスプログラムの箇所(領域)。
以下の説明では、プログラム作成支援装置が取り扱うシーケンスプログラムがラダープログラムであるものとする。
実施の形態.
まず、本実施の形態にかかるプログラム作成支援装置の動作の概要について説明する。本実施の形態にかかるプログラム作成支援装置は、少なくとも以下に示す2つの機能を有し、これらの機能を用いて、ユーザによるシーケンスプログラムの作成を支援する。
第1の機能は、シーケンスプログラムの回路全体から部品化可能な共通のロジック部分Hを検索して表示する機能である。シーケンスプログラムであるラダープログラムは、接点またはコイルに相当する命令と、数値演算などに相当する応用命令とで構成されている。したがって、プログラム作成支援装置は、接点に相当する命令である接点相当命令、コイルに相当する命令であるコイル相当命令、および数値演算などに相当する応用命令のロジックのみで共通している共通回路パターンGと、プログラム箇所(共通のロジック部分H)とを検索し表示する。検索された共通回路パターンGが、プログラムコンポーネントであるプログラム部品(マクロ、サブルーチンなど)の候補である。
第2の機能は、第1の機能で検索した共通回路パターンGの何れかがユーザによって選択されると、選択された共通回路パターンGをプログラム部品に変換(部品化を実行)して登録する機能である。また、第2の機能は、第1の機能で検索した共通のロジック部分Hを、登録したプログラム部品のインスタンスで置き換えることで、シーケンスプログラムを自動的に部品化する。
ここで、上記の第1の機能において共通のロジック部分Hを検索する際、プログラム作成支援装置は、回路中の接点およびコイルといった各回路部品に対するデバイス割付が一致するかどうかという情報を保持しておく。つまり、抽出した共通回路パターンGにおいて、その元となる共通のロジック部分Hの全てで、同じ座標に配置された回路部品に対するデバイス割付が一致するかどうかを付属情報として保持しておく。ここでの座標は、回路部品の回路パターン内の位置を示す。よって、同じ座標に配置された回路部品とは、共通回路パターンG内の同じ場所に配置された回路部品である。
また、上記の第2の機能においてプログラム部品を生成する際、プログラム作成支援装置は、第1の機能で共通のロジック部分Hを検索する際に保持しておいた付属情報に基づいて、プログラム部品の引数を決定する。具体的には、プログラム作成支援装置は、共通のロジック部分Hの間で、同じ座標に配置されているがデバイス割付が一致しない回路部品が存在する場合、この回路部品にデバイスを割付けるための引数を有するプログラム部品を生成する。
これにより、プログラム作成支援装置が生成するプログラム部品の入出力引数が必要以上に多くなるのを防止することができ、シーケンスプログラムの可読性および保守性を高めることができる。また、シーケンスプログラムの容量を削減することができる。
図1は、実施の形態にかかるプログラム作成支援装置によるプログラム部品の生成動作の概要を示す図である。
図1のフェーズ(A)に示すように、プログラム作成支援装置は、シーケンスプログラム内から共通のロジック部分Hを抽出する。ここでは、プログラム作成支援装置は、回路ブロック2a〜4aの配置されているブロックを共通のロジック部分Hとして抽出する。
さらに、図1のフェーズ(B)に示すように、プログラム作成支援装置は、回路ブロック2a〜4aのロジックに基づいて、部品化可能な共通回路パターンGを設定する。換言すると、プログラム作成支援装置は、回路ブロック2a〜4aに共通なロジックを共通回路パターンGに設定する。これにより、プログラム作成支援装置は、回路ブロック2a〜4aを共通回路パターンGとして扱う。
このとき、プログラム作成支援装置は、抽出した回路ブロック2a〜4aにおいて、同じ座標の回路部品に対するデバイス割付が一致するかどうかを確認し、確認結果を示す情報(デバイス割付が一致するか否かを示す情報)を保持する。図1に示した例では、回路ブロック2a〜4aの左上に位置する回路部品の座標を(0,0)とし、この部品の右隣に位置する回路部品の座標を(1,0)、さらに右隣に位置する回路部品の座標を(2,0)としている。また、左上に位置する回路部品の一つ下に位置する回路部品の座標を(0,1)、この部品の右隣に位置する回路部品の座標を(1,1)、さらに右隣に位置する回路部品の座標を(2,1)としている。なお、各回路部品の位置を示す座標の決め方はこれに限定されない。また、各回路部品の配置を座標で示すことは必須ではない。回路ブロック内の各回路部品の配置が分かるのであれば座標以外の情報を用いて各回路部品の配置を示してもよい。
図1に示した例では、座標が(0,0)および(1,1)の回路部品に対するデバイス割付が回路ブロック2a〜4aの間で一致しておらず、その他の座標の回路部品に対するデバイス割付は回路ブロック2a〜4aの間で一致している。そのため、プログラム作成支援装置は、フェーズ(B)において、座標が(0,0)および(1,1)の回路部品に対するデバイス割付が回路ブロック2a〜4aの間で一致しておらず、座標が(1,0)、(2,0)、(0,1)および(2,1)の回路部品に対するデバイス割付が回路ブロック2a〜4aの間で一致していることを示す情報を生成して保持する。なお、これ以降の説明では、必要に応じて、デバイス割付が全ての共通のロジック部分H(図1では回路ブロック2a〜4a)の間で一致している回路部品を第1の回路部品と称し、第1の回路部品に該当しない回路部品を第2の回路部品と称する。
次に、図1のフェーズ(C)に示すように、プログラム作成支援装置は、フェーズ(B)で生成して保持している情報に基づいて、プログラム部品の入出力引数の生成指定画面である画面101を表示装置に表示させる。そして、プログラム作成支援装置は、入出力引数を生成する回路部品の選択をユーザから受け付ける。ここで、デバイス割付が不一致の回路部品、すなわち、デバイス割付が回路ブロック2a〜4aの間で完全には一致していない第2の回路部品については、必ず入出力引数を生成することとする。そのため、図1に示した画面101では、座標が(0,0)の回路部品および座標が(1,1)の回路部品については入出力引数を必ず生成することがユーザに分かるような表示を行い、ユーザによる選択操作を受け付けない構成としている。
プログラム作成支援装置は、入出力引数を生成する第1の回路部品のユーザによる選択が終了すると、フェーズ(D)に移行する。すなわち、プログラム作成支援装置は、入出力引数を生成する第1の回路部品の選択を終了する操作をユーザから受け付けると、プログラム部品への置き換え後のイメージ確認画面である画面102を表示装置に表示させる。図1に例示した画面102では、プログラム部品への置き換えを行う前のシーケンスプログラムを左側に表示し、プログラム部品への置き換えを行った後のシーケンスプログラムを右側に表示する構成としている。また、画面102では、どの回路ブロックがプログラム部品に置き換えられたのかが分かるように、プログラム部品と回路ブロックとを対応付けた表示内容としている。画面102の右側の表示内容は、フェーズ(C)においてユーザから受け付けた操作内容に従う。図1に例示した画面102では、座標が(2,0)の回路部品であるコイルに対する引数の生成がユーザにより選択された場合のプログラム部品が表示されている。
ユーザは、画面102を確認後、プログラム部品の生成および回路ブロックのプログラム部品への置き換えを行う場合、画面102の右下の「OK(実行)」ボタンを押下する。また、ユーザは、画面102を確認後、入出力引数を生成する回路部品の選択を再度行う場合、画面102の右下の「キャンセル」ボタンを押下する。「キャンセル」ボタンが押下されると、プログラム作成支援装置は、フェーズ(C)に戻る。
プログラム作成支援装置は、画面102の「OK(実行)」ボタンが押下されると、図1のフェーズ(E)に移行してプログラム部品であるFB(Function Block)を生成する。このとき、プログラム作成支援装置は、フェーズ(D)で表示装置に表示させた画面102の右側に示された構成のプログラム部品を生成する。
そして、プログラム部品の生成が終了すると、プログラム作成支援装置は、図1のフェーズ(F)に移行し、フェーズ(A)で抽出した回路ブロック2a〜4aを、フェーズ(E)で生成したプログラム部品に置き換えて回路ブロック2b〜4bとする。
このような手順により、プログラム作成支援装置は、シーケンスプログラムからプログラム部品を生成し、さらに、シーケンスプログラムの回路ブロックのうち、生成したプログラム部品に置き換えが可能な回路ブロックをプログラム部品に置き換える。また、プログラム作成支援装置は、生成したプログラム部品を保持しておき、他のシーケンスプログラムの編集、他のシーケンスプログラムの開発などを行う際に使用できるようにする。
図2は、実施の形態にかかるプログラム作成支援装置を含んで構成されるプログラム作成システムの構成を示す図である。プログラム作成システム100は、プログラム作成支援装置1、シーケンスプログラム作成装置2、シーケンスプログラム編集装置3および表示装置5を備える。なお、本実施の形態では、プログラム作成支援装置1、シーケンスプログラム作成装置2、シーケンスプログラム編集装置3および表示装置5が個別の装置であるものとして説明を行うが、これらの各装置が有する各機能を1つの装置、例えばパーソナルコンピュータなどの計算機システムで実現するようにしてもよい。
プログラム作成支援装置1は、上述したように、シーケンスプログラムから共通のロジック部分Hを抽出し、ユーザからの指示に従いプログラム部品を生成する。
シーケンスプログラム作成装置2は、シーケンサとも呼ばれるPLC(Programmable Logic Controller)システムなどで動作させるシーケンスプログラムを作成する装置である。シーケンスプログラム作成装置2は、作成したシーケンスプログラムをプログラム作成支援装置1に入力する。
シーケンスプログラム編集装置3は、プログラム作成支援装置1でプログラム部品に置き換えられたシーケンスプログラムを用いてシーケンスプログラムの編集を行う装置である。表示装置5は、液晶モニタなどであり、プログラム作成支援装置1からの指示に従って、シーケンスプログラム、共通回路パターンG、プログラム部品などを表示する。
プログラム作成支援装置1は、プログラム入力部11と、プログラム格納部12と、共通判定部13と、検索結果記憶部14と、検索結果表示処理部15と、指示入力部16と、プログラム部品登録部17と、プログラム部品格納部18と、部品化処理部19と、出力部20と、部品定義表示処理部21と、部品化イメージ表示処理部22とを備えている。
プログラム入力部11は、シーケンスプログラム作成装置2から入力されるシーケンスプログラムを受け取り、受け取ったシーケンスプログラムをプログラム格納部12に送る。
プログラム格納部12は、共通のロジック部分Hが検索されるシーケンスプログラム(部品化対象のプログラム)を記憶しておくメモリなどである。プログラム格納部12は、プログラム入力部11からシーケンスプログラムを受け取ると、受け取ったシーケンスプログラムを保持する。また、プログラム格納部12は、シーケンスプログラム編集装置3から要求を受けるなどした場合、要求されたシーケンスプログラムを出力部20へ出力する。出力部20へ出力されたシーケンスプログラムは、出力部20からシーケンスプログラム編集装置3に受け渡される。また、プログラム格納部12は、保持しているシーケンスプログラムを構成している回路ブロックのうち、プログラム部品の生成に用いられた回路ブロックが後述する部品化処理部19によってプログラム部品に置き換えられる処理である置換処理が行われた場合、置換処理後のシーケンスプログラムを保持する。
共通判定部13は、プログラム格納部12に格納されているシーケンスプログラムを読み込んで、その中に共通のロジック部分Hがあるか否かを判定する。共通判定部13は、共通のロジック部分Hがある場合、共通のロジック部分Hにおける共通のロジックを共通回路パターンGとして抽出する。換言すると、共通判定部13は、共通のロジック部分Hに配置されている回路パターンに共通して現れるロジックのパターンを共通回路パターンGとして抽出する。なお、プログラム作成支援装置1は、シーケンスプログラムに共通のロジック部分Hが存在しているかを判定する際、公知のコードクローン検出手法などを利用する。コードクローン検出手法とは、プログラムを表すソースコードの中から、類似しているコード片を探し出す方法である。ソースコードを構成している、類似しているコード片がコードクローンと呼ばれる。
また、共通判定部13は、共通のロジック部分H全てで、同じ座標に配置された回路部品に対するデバイス割付が一致するかどうかを確認し、確認結果を示す情報として、共通回路パターンGの付属情報を生成する。共通判定部13は、複数の共通のロジック部分Hに含まれる複数の回路部品のそれぞれについて、デバイス割付が全ての共通のロジック部分Hで一致しているか否かを確認し、確認結果を示す付属情報を生成する。付属情報は、共通のロジック部分Hに含まれる複数の回路部品のそれぞれについての確認結果を示す。例えば、共通のロジック部分Hが4つの回路部品#1〜回路部品#4を含む場合、付属情報は、回路部品#1に対するデバイス割付が全ての共通のロジック部分Hで一致しているか否かの情報と、回路部品#2に対するデバイス割付が全ての共通のロジック部分Hで一致しているか否かの情報と、回路部品#3に対するデバイス割付が全ての共通のロジック部分Hで一致しているか否かの情報と、回路部品#4に対するデバイス割付が全ての共通のロジック部分Hで一致しているか否かの情報と、を含んで構成される。
検索結果記憶部14は、共通判定部13が抽出した共通回路パターンGの情報および付属情報を、検索結果として記憶しておくメモリなどである。すなわち、検索結果記憶部14は、共通判定部13で共通回路パターンGが抽出されると、抽出された共通回路パターンGの構成を示す情報と付属情報とを受け取り、受け取った各情報を検索結果として保持する。以下、共通回路パターンGの構成を示す情報を構成情報と称する。
検索結果表示処理部15は、検索結果記憶部14が保持している検索結果を、一覧形式で表示装置5に表示させる。検索結果表示処理部15は、表示中の検索結果内からユーザによって部品化する共通回路パターンGが選択されると、選択された共通回路パターンGの構成情報および付属情報を、共通回路パターンGに関する情報として部品定義表示処理部21に送る。
指示入力部16は、ユーザによって入力される指示を受け取り、指示内容を示す情報を検索結果表示処理部15、部品定義表示処理部21および部品化イメージ表示処理部22の一部または全てに出力する。ユーザによる指示は、検索に関する指示である検索指示、部品化に関する指示である部品指定指示、引数生成要否指示および部品化確定指示、または出力に関する指示である出力指示、などである。
検索指示は、シーケンスプログラム内から共通回路パターンGを検索させる指示であり、指示入力部16から共通判定部13に送られる。部品指定指示は、検索結果の中から部品化する共通回路パターンGを指定する指示であり、指示入力部16から検索結果表示処理部15に送られる。引数生成要否指示は、共通回路パターンGに対するプログラム部品の入出力引数の生成要否を指定する指示であり、指示入力部16から部品定義表示処理部21に送られる。部品化確定指示は、シーケンスプログラム内の一部の回路ブロックをプログラム部品に置き換えた後のイメージの確認結果を基に、部品化を確定するかキャンセルするかを指定する指示である。部品化確定指示は、指示入力部16から部品化イメージ表示処理部22に送られる。出力指示は、シーケンスプログラムを外部装置であるシーケンスプログラム編集装置3などに出力させる指示であり、指示入力部16から出力部20に送られる。
プログラム部品登録部17は、後述する部品化イメージ表示処理部22からプログラム部品の定義情報が送られてくると、送られてきた定義情報に基づいて、共通回路パターンGをプログラム部品に変換して部品化を行う。すなわち、プログラム部品登録部17は、共通回路パターンGおよび定義情報に基づいてプログラムコンポーネントであるプログラム部品を生成するプログラムコンポーネント生成部である。また、プログラム部品登録部17は、生成したプログラム部品をプログラム部品格納部18に登録する。
プログラム部品格納部18は、プログラム部品登録部17からの指示に従ってプログラム部品を格納するメモリなどである。プログラム部品格納部18は、プログラム部品登録部17から受け取ったプログラム部品を保持する。プログラム部品格納部18は、部品化処理部19がシーケンスプログラムの回路ブロックをプログラム部品に置換する処理を行う際、保持しているプログラム部品を部品化処理部19に出力する。
部品化処理部19は、プログラム格納部12に格納されているシーケンスプログラムの中の共通のロジック部分Hを、プログラム部品格納部18が保持しているプログラム部品に置き換える。部品化処理部19は、置換後のシーケンスプログラムをプログラム格納部12に記憶させる。
出力部20は、指示入力部16から出力指示が送られてきた場合、出力指示で指定されたシーケンスプログラムをプログラム格納部12から読み出して外部装置であるシーケンスプログラム編集装置3に出力する。シーケンスプログラム編集装置3に加えて他の外部装置が出力部20に接続されている場合、出力部20は、出力指示で指定されたシーケンスプログラムを、出力指示で指定された外部装置に出力する。
部品定義表示処理部21は、検索結果表示処理部15から送られてきた共通回路パターンGに関する情報に基づき、プログラム部品の入出力引数の生成指定画面(図1に示した画面101に相当)を表示装置5に表示させる。部品定義表示処理部21は、プログラム部品の入出力引数の生成指定画面を表示させた状態で、生成する入出力引数の指定をユーザより受け付ける。部品定義表示処理部21は、生成する入出力引数のユーザによる指定が終了すると、ユーザによる指定結果に基づいてプログラム部品の定義情報を生成し、生成した定義情報を部品化イメージ表示処理部22に送る。
部品化イメージ表示処理部22は、部品定義表示処理部21から送られてきたプログラム部品の定義情報に基づき、共通のロジック部分Hをプログラム部品に置換後のシーケンスプログラムのイメージ(確認用画面)を作成し、表示装置5に表示させる。具体的には、部品化イメージ表示処理部22は、図1に示した画面102に相当する画面を表示装置5に表示させる。また、部品化イメージ表示処理部22は、置換後のシーケンスプログラムの確認用画面を表示装置5に表示させた状態で、実際に置換を行うか否かの判断結果の入力をユーザより受け付ける。部品化イメージ表示処理部22は、置換を行うことを示す判断結果の入力を受け付けると、部品定義表示処理部21から受け取ったプログラム部品の定義情報をプログラム部品登録部17に送る。一方、部品化イメージ表示処理部22は、置換を行わないことを示す判断結果の入力を受け付けると、判断結果を部品定義表示処理部21に通知する。通知を受けた部品定義表示処理部21は、プログラム部品の入出力引数の生成指定画面を表示装置5に再度表示させて、生成する入出力引数の指定をユーザより受け付ける。
図3は、実施の形態にかかるプログラム作成支援装置1の動作の一例を示すフローチャートである。図3のフローチャートは、プログラム作成支援装置1が、シーケンスプログラムからプログラム部品を作成し、共通のロジック部分Hをプログラム部品に置き換えたシーケンスプログラムを生成する場合の処理手順を示す。
プログラム作成支援装置1は、シーケンスプログラムをプログラム格納部12で保持しているものとする。すなわち、プログラム作成支援装置1のプログラム入力部11が、シーケンスプログラム作成装置2からシーケンスプログラムを受け取り、受け取ったシーケンスプログラムをプログラム格納部12に格納する処理が完了しているものとする。
プログラム作成支援装置1は、共通のロジック部分Hの検索指示を受け付けて、プログラム部品化処理を開始する(ステップS1)。すなわち、ユーザによって、指示入力部16から共通回路パターンG(共通のロジック部分H)の検索指示が入力されると、検索指示は、指示入力部16から共通判定部13に送られる。これにより、プログラム作成支援装置1はプログラム部品化処理を開始する。
共通判定部13は、指示入力部16から検索指示を受け取ると、プログラム格納部12が保持しているシーケンスプログラムから共通回路パターンGを抽出する。共通判定部13は、例えば、シーケンスプログラムから共通のロジック部分Hを抽出し、この共通のロジック部分Hに配置されている回路ブロック(図1に示した回路ブロック2a〜4aなど)から共通回路パターンGを抽出する(ステップS2)。また、共通判定部13は、抽出した共通のロジック部分Hを構成する各回路部品について、回路部品に対するデバイス割付が全ての共通のロジック部分Hで一致しているか否かを確認し、確認結果を示す付属情報を生成する。付属情報は、共通のロジック部分Hを構成する回路部品のそれぞれが、第1の回路部品および第2の回路部品のどちらに該当するかを示す情報である。
共通判定部13は、共通回路パターンGの抽出および付属情報の生成が終了すると、抽出した共通回路パターンGの構成情報および付属情報と、この共通回路パターンGの件数とを対応付けして検索結果記憶部14に格納する(ステップS3)。
また、共通判定部13は、共通のロジック部分Hの場所と、共通のロジック部分Hが抽出されたシーケンスプログラムを識別する情報であるプログラム識別情報とを対応付けして部品化処理部19に送る。共通のロジック部分Hの場所は、たとえば、ラダープログラムの行番号である。
検索結果記憶部14は共通判定部13から情報を受け取ると、受け取った情報を記憶する。検索結果表示処理部15は、共通判定部13から出力された情報が検索結果記憶部14に格納されると、検索結果記憶部14が保持している情報に基づいて、共通判定部13により抽出された共通回路パターンGの構成および件数を表示装置5に一覧表示させる。表示装置5は、例えば、図1に示した共通回路パターンGと、その件数(図1では3件)を表示する(ステップS4)。共通判定部13から出力された情報が検索結果記憶部14に格納されたか否かは、例えば、検索結果表示処理部15が検索結果記憶部14の状態を定期的に確認することにより把握する。なお、共通判定部13が、情報を検索結果記憶部14に格納したことを検索結果表示処理部15に通知してもよい。
ステップS4を実行後、プログラム作成支援装置1は、ユーザによって、部品化する共通回路パターンGが選択されるのを待つ。指示入力部16は、部品化する共通回路パターンGの選択をユーザより受け付けると(ステップS5)、選択された共通回路パターンGを示す部品指定指示を生成して検索結果表示処理部15に送る。検索結果表示処理部15は、部品指定指示が示す共通回路パターンGの構成情報および付属情報を検索結果記憶部14から読み出して、部品定義表示処理部21に送る。
部品定義表示処理部21は、共通回路パターンGの構成情報および付属情報を検索結果表示処理部15から受け取ると、受け取った情報に基づいて、ステップS5でユーザに選択された共通回路パターンGに対応するプログラム部品の入出力引数の生成指定画面を表示装置5に表示させる(ステップS6)。部品定義表示処理部21は、ステップS6において、例えば、図4に示した内容の画面をプログラム部品の入出力引数の生成指定画面として表示装置5に表示させる。図4は、プログラム部品の入出力引数の生成指定画面の一例を示す図である。プログラム部品の入出力引数の生成指定画面は、プログラム部品の入出力引数として生成する引数をユーザに指定させる場合に表示される。すなわち、プログラム作成支援装置1は、プログラム部品の入出力引数として生成する引数の指定をユーザから受け付ける場合にプログラム部品の入出力引数の生成指定画面を表示装置5に表示させる。図4に例示したプログラム部品の入出力引数の生成指定画面(以下、画面101と記載する)は、「座標」、「回路記号」、「デバイス割付の一致・不一致」および「入出力引数の生成要否」を含む。「座標」は、共通回路パターンGに含まれる各回路部品の共通回路パターンGにおける位置を示す。「回路記号」は、同じ行の「座標」が示す位置に存在する回路部品の種類を示す。「デバイス割付の一致・不一致」は、同じ行の「座標」が示す位置に存在する回路部品に対するデバイス割付が、共通のロジック部分Hの全てにおいて一致しているか否かを示す。すなわち、「デバイス割付の一致・不一致」は、同じ行の「座標」が示す位置に存在する回路部品が第1の回路部品および第2の回路部品のどちらに該当するのかを示す。「デバイス割付の一致・不一致」が「一致」となっている回路部品(第1の回路部品)については、回路部品に割付けられているデバイスを合わせて表示するようにしている。例えば、座標が(1,0)の回路部品に割付けられているデバイスは「M2」である。「入出力引数の生成要否」は、同じ行の「座標」が示す位置に存在する回路部品にデバイスを割付けるための入出力引数を生成するか否かを示す。ユーザは、表示装置5に画面101が表示されている状態のときに、マウスなどの入力装置を操作して「入出力引数の生成要否」の項目にチェックを入れる、またはチェックを外すことで、生成する入出力引数の指定を変更する。ただし、「デバイス割付の一致・不一致」が「不一致」となっている回路部品(第2の回路部品)については入出力引数の生成が必須である。そのため、プログラム作成支援装置1は、「デバイス割付の一致・不一致」が「不一致」となっている回路部品の「入出力引数の生成要否」はチェックが入った状態で固定とし、ユーザによるチェックを外す操作を受け付けることはしない。
ステップS6を実行後、プログラム作成支援装置1は、図4に示した画面101を表示装置5に表示させた状態で、ユーザによって、プログラム部品の生成する入出力引数が選択され、選択操作が終了するのを待つ。指示入力部16は、ユーザによる選択操作が終了すると、すなわち、生成する入出力引数の選択をユーザより受け付けると(ステップS7)、選択された入出力引数を示す引数生成要否指示を生成して部品定義表示処理部21に送る。指示入力部16は、例えば、図4では記載を省略している選択操作終了ボタンがユーザにより押下された場合、引数生成要否指示を生成する。ここでは、図4に示した画面101の内容に従って引数生成要否指示を生成するものとして説明を続ける。すなわち、ユーザが、座標(2,0)のコイルに対してデバイスを割付けるための入出力引数の生成を指定したものとして説明を続ける。この場合、引数生成要否指示は、座標(0,0)のa接点、座標(2,0)のコイルおよび座標(1,1)のb接点にそれぞれに対してデバイスを割付けるための入出力引数の生成を指定する情報を含む。なお、上記のステップS6およびS7を実行する部品定義表示処理部21および指示入力部16は、第1の回路部品の中から、共通のロジック部分Hがプログラム部品に置き換えられた後に入出力引数を用いたデバイス割付が必要な第1の回路部品をユーザに選択させる選択受付部を構成する。
部品定義表示処理部21は、引数生成要否指示を受け取ると、受け取った引数生成要否指示と、検索結果表示処理部15から受け取って保持している共通回路パターンGの構成情報とを、部品化イメージ表示処理部22に送る。
部品化イメージ表示処理部22は、部品定義表示処理部21から引数生成要否指示と、共通回路パターンGの構成情報とを受け取ると、受け取った情報を保持する。また、部品化イメージ表示処理部22は、部品定義表示処理部21から受け取った情報と、プログラム格納部12で保持されているシーケンスプログラムとに基づいて、共通のロジック部分Hをプログラム部品に置き換えた後のシーケンスプログラムの確認用画面を表示装置5に表示させる(ステップS8)。部品化イメージ表示処理部22は、ステップS8において、例えば、図5に示した内容の画面を置換処理実行後のシーケンスプログラムの確認用画面として表示装置5に表示させる。図5は、置換処理実行後のシーケンスプログラムの確認用画面の一例を示す図である。置換処理実行後のシーケンスプログラムの確認用画面は、共通のロジック部分Hがプログラム部品で置き換えられた後のシーケンスプログラムの構成を確認するための画面である。すなわち、部品化イメージ表示処理部22は、プログラム部品で置き換えられた後のシーケンスプログラムの構成を確認するための画面を表示装置5に表示させる確認表示処理部である。図5に示した置換処理実行後のシーケンスプログラムの確認用画面(以下、画面102と記載する)は、置換前のシーケンスプログラムと、置換後のシーケンスプログラムとを横に並べた構成である。画面102の左側が、共通のロジック部分Hをプログラム部品に置き換える前のシーケンスプログラム(置換前のプログラム)、画面102の右側が、共通のロジック部分Hをプログラム部品に置き換えた後のシーケンスプログラム(置換後のプログラム)である。部品化イメージ表示処理部22は、置換前のシーケンスプログラムのサイズおよび置換後のシーケンスプログラムのサイズを計算して画面102に表示させてもよい。この場合、共通のロジック部分Hをプログラム部品に置換することによるプログラムサイズの削減効果をユーザが事前に知ることが可能となり、置換を実行するか否かの判断材料とすることができる。図5では、1つの共通のロジック部分Hについて、プログラム部品に置き換えた後のシーケンスプログラムの構成を表示する画面の例を示したが、複数の共通のロジック部分Hについて、プログラム部品に置き換えた後のシーケンスプログラムの構成を表示するようにしてもよい。また、部品化イメージ表示処理部22は、ユーザからの操作に従い画面102の表示を上下にスクロールさせ、共通のロジック部分Hのすべてについて、プログラム部品に置き換えた後のシーケンスプログラムの構成をユーザが確認できるようにしてもよい。
ステップS8を実行後、プログラム作成支援装置1は、図5に示した画面102を表示装置5に表示させた状態で、ユーザによって、プログラム部品による共通のロジック部分Hの置き換えを実行するか否かが選択されるのを待つ(ステップS9)。指示入力部16は、画面102の右下の「OK(実行)」ボタンが押下されると、すなわち、プログラム部品による共通のロジック部分Hの置き換えの実行が選択されると(ステップS9:実行)、部品化確定指示を生成して部品化イメージ表示処理部22に送る。また、指示入力部16は、画面102の右下の「キャンセル」ボタンが押下されると、すなわち、プログラム部品による共通のロジック部分Hの置き換えを実行しないことが選択されると(ステップS9:キャンセル)、キャンセル指示を生成して部品化イメージ表示処理部22に送る。
部品化イメージ表示処理部22は、キャンセル指示を受け取ると、受け取ったキャンセル指示を部品定義表示処理部21に送り、画面102の表示装置5への表示を終了する。部品定義表示処理部21は、部品化イメージ表示処理部22経由でキャンセル指示を受け取った場合、画面101を表示装置5に表示させる。そして、部品定義表示処理部21は、ユーザによって、プログラム部品の生成する入出力引数が選択され、選択操作が終了するのを再度待つ。このように、図5に示した画面102の右下の「キャンセル」ボタンがユーザにより押下された場合、プログラム作成支援装置1は、ステップS7に戻る。
一方、部品化イメージ表示処理部22は、部品化確定指示を受け取ると、部品定義表示処理部21から受け取って保持しておいた情報、具体的には、引数生成要否指示と、共通回路パターンGの構成情報とをプログラム部品登録部17に送る。
プログラム部品登録部17は、部品化イメージ表示処理部22から引数生成要否指示と、共通回路パターンGの構成情報とを受け取ると、ステップS5で選択された共通回路パターンGをプログラム部品に変換する(ステップS10)。具体的には、プログラム部品登録部17は、部品化イメージ表示処理部22から受け取った、共通回路パターンGの構成情報が表す共通回路パターンGを、引数生成要否指示が示す入出力引数を有するプログラム部品に変換することでプログラム部品を作成する。プログラム部品登録部17は、変換したプログラム部品をプログラム部品格納部18に格納する(ステップS11)。このように、ユーザによって選択された共通回路パターンGが、プログラム部品としてプログラム部品格納部18に格納される。
プログラム部品格納部18は、プログラム部品登録部17からプログラム部品を受け取ると、受け取ったプログラム部品を記憶する。部品化処理部19は、プログラム部品登録部17により作成されたプログラム部品がプログラム部品格納部18に格納されると、プログラム格納部12が保持しているシーケンスプログラムの中にある共通のロジック部分Hを、プログラム部品格納部18に格納されているプログラム部品に置き換える(ステップS12)。部品化処理部19は、共通のロジック部分Hをプログラム部品で置き換える際に、置き換えたプログラム部品の入出力引数の割付を行う。このとき、部品化処理部19は、共通判定部13から受け取って保持しておいた情報、具体的には、共通のロジック部分Hの場所と、共通のロジック部分Hが抽出されたシーケンスプログラムのプログラム識別情報とに基づいて、プログラム識別情報が示すシーケンスプログラムの共通のロジック部分Hをプログラム部品に置き換える。具体的には、部品化処理部19は、プログラム識別情報に基づいて、プログラム格納部12内から部品化対象のシーケンスプログラムを抽出する。そして、部品化処理部19は、抽出したシーケンスプログラムの共通のロジック部分Hにある回路パターンを、プログラム部品格納部18が保持しているプログラム部品で置き換える。プログラム部品がプログラム部品格納部18に格納されたか否かは、例えば、部品化処理部19がプログラム部品格納部18の状態を定期的に確認することにより把握する。なお、プログラム部品登録部17が、プログラム部品をプログラム部品格納部18に格納したことを部品化処理部19に通知してもよい。
シーケンスプログラムの少なくとも一部がプログラム部品によって置き換えられた後、置換後のシーケンスプログラムは、プログラム格納部12に格納される。この後、ユーザが指示入力部16に出力指示を入力すると、この出力指示は指示入力部16から出力部20に送られる。出力部20は、出力指示で指定されたシーケンスプログラムをプログラム格納部12から抽出してシーケンスプログラム編集装置3に送る。これにより、シーケンスプログラム編集装置3では、ユーザの指示に従ってシーケンスプログラムの編集が行われる。
プログラム作成支援装置1は、図3のステップS12を実行した後、ステップS4に戻って動作を継続するようにしてもよい。この場合、検索結果表示処理部15は、ステップS4において共通回路パターンGの構成および件数を表示装置5に一覧表示させる際、過去に実行したステップS5で選択された共通回路パターンG、すなわち、プログラム部品への部品化が済んでいる共通回路パターンGについては一覧表示に含めないようにする。
なお、本実施の形態では、ユーザによって指定された共通回路パターンGを部品化したが、プログラム部品登録部17は、共通判定部13で抽出された全ての共通回路パターンGを部品化してもよい。この場合、プログラム作成支援装置1は、例えば、図3に示したステップS6〜S9の処理を繰り返し実行し、全ての共通回路パターンGについてステップS6〜S9の処理が終了すると、ステップS10〜S12を実行する。
また、本実施の形態において、プログラム作成支援装置1は、上記のステップS6およびS7において、プログラム部品の入出力引数をユーザに選択させるようにしたが、ユーザによる選択を受け付けない構成としてもよい。すなわち、共通回路パターンGに含まれる回路部品のうち、共通のロジック部分Hの全てでデバイス割付が一致している回路部品(第1の回路部品)については入出力引数を生成しないこととして、プログラム部品の入出力引数の数が最小となるようにしてもよい。この場合、プログラム作成支援装置1は、上記のステップS5に続いてステップS10を実行する。このとき、検索結果表示処理部15は、ステップS5でユーザに選択された共通回路パターンGの構成情報および付属情報を検索結果記憶部14から読み出して、プログラム部品登録部17に送る。
また、本実施の形態では、プログラム作成支援装置1が取り扱うシーケンスプログラムがラダープログラムである場合の例について説明したが、シーケンスプログラムをラダープログラムに限定するものではない。
また、プログラム作成支援装置1は、特許文献1に記載の発明と同様に、共通回路パターンGとして抽出するブロックのサイズをユーザに指定させるようにしてもよい。
以上のように、本実施の形態にかかるプログラム作成支援装置1は、シーケンスプログラムを解析して構成が同じ回路パターンが複数存在するか否かを確認し、構成が同じ回路パターンである共通回路パターンGを抽出し、抽出した共通回路パターンGを表すプログラム部品を生成する。そして、プログラム作成支援装置1は、シーケンスプログラムに含まれる共通回路パターンGを、生成したプログラム部品に置き換える。また、プログラム作成支援装置1は、共通回路パターンGを抽出した後、共通回路パターンGに含まれる回路部品のそれぞれについて、抽出した全ての共通回路パターンGの間でデバイス割付が一致するか否かを確認し、確認結果を示す付属情報を生成する。そして、プログラム作成支援装置1は、プログラム部品を生成する際、全ての共通回路パターンGの間でデバイス割付が一致している第1の回路部品については、ユーザから指示された場合を除いて、デバイス割付を行うための入出力引数を生成しないこととした。これにより、プログラム部品の入出力引数の数を削減できる。この結果、シーケンスプログラムの可読性および保守性を高めることが可能となる。
次に、プログラム作成支援装置1のハードウェア構成について説明する。図6は、実施の形態にかかるプログラム作成支援装置1のハードウェア構成を示す図である。プログラム作成支援装置1は、CPU(Central Processing Unit)91、ROM(Read Only Memory)92、RAM(Random Access Memory)93、通信インタフェース94および入力部95を有している。プログラム作成支援装置1では、これらのCPU91、ROM92、RAM93、通信インタフェース94および入力部95がバスラインBを介して接続されている。入力部95は、マウスやキーボードを備えて構成される。また、ROM92にはプログラム90が格納されている。プログラム90は、CPU91が共通判定部13、検索結果表示処理部15、プログラム部品登録部17、部品化処理部19、部品定義表示処理部21および部品化イメージ表示処理部22として動作するためのプログラムである。通信インタフェース94は、プログラム作成支援装置1がシーケンスプログラム作成装置2、シーケンスプログラム編集装置3などの他の機器との間で通信用の信号を送受信するための処理回路であり、例えばネットワークインタフェースカードである。バスラインBには表示装置5も接続されている。
図2に示したプログラム作成支援装置1の各構成要素のうち、共通判定部13、検索結果表示処理部15、プログラム部品登録部17、部品化処理部19、部品定義表示処理部21および部品化イメージ表示処理部22は、CPU91およびROM92により実現される。すなわち、CPU91が、ROM92に格納されたプログラム90をROM92から読み出して実行することにより、上記の各構成要素が実現される。
また、図2に示したプログラム作成支援装置1のプログラム格納部12、検索結果記憶部14およびプログラム部品格納部18は、RAM93により実現される。図2に示したプログラム作成支援装置1のプログラム入力部11および出力部20は通信インタフェース94により実現される。図2に示したプログラム作成支援装置1の指示入力部16は、入力部95により実現される。
なお、ここでは、プログラム作成支援装置1の共通判定部13、検索結果表示処理部15、プログラム部品登録部17、部品化処理部19、部品定義表示処理部21および部品化イメージ表示処理部22として動作するためのプログラム(プログラム90)が予めROM92に格納されているものとしたがこれに限定されない。上記のプログラム90は、CD(Compact Disc)−ROM、DVD(Digital Versatile Disc)−ROMなどの記録媒体に書き込まれた状態でユーザに供給され、プログラム作成支援装置1を実現するハードウェアにユーザがインストールを行う形態であってもよい。この場合、プログラム作成支援装置1を実現するハードウェアは、記録媒体からプログラムを読み出すための読み取り装置、または、読み取り装置を接続するためのインタフェース回路を含む構成となる。また、上記のプログラム90は、インターネットなどの通信回線を介して提供される形態であってもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1 プログラム作成支援装置、2 シーケンスプログラム作成装置、3 シーケンスプログラム編集装置、5 表示装置、2a〜4a,2b〜4b 回路ブロック、11 プログラム入力部、12 プログラム格納部、13 共通判定部、14 検索結果記憶部、15 検索結果表示処理部、16 指示入力部、17 プログラム部品登録部、18 プログラム部品格納部、19 部品化処理部、20 出力部、21 部品定義表示処理部、22 部品化イメージ表示処理部、100 プログラム作成システム。
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム作成支援装置は、シーケンスプログラム内の回路全体から共通のロジック部分を抽出し、抽出した共通のロジック部分に含まれる回路部品について、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する共通判定部、を備える。また、プログラム作成支援装置は、共通判定部が抽出した共通のロジック部分と付属情報とに基づいてプログラムコンポーネントを生成するプログラムコンポーネント生成部と、シーケンスプログラム内の共通のロジック部分の各々を、プログラムコンポーネントとプログラムコンポーネントの入出力引数に接続する回路部品とで置き換える置換部と、を備える。プログラムコンポーネント生成部は、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致している回路部品である第1の回路部品の中のユーザに指定された第1の回路部品に対してデバイス割付を行う入出力引数と、第1の回路部品に該当しない回路部品である第2の回路部品にデバイス割付を行う入出力引数と、を有するプログラムコンポーネントを生成する

Claims (7)

  1. シーケンスプログラム内の回路全体から共通のロジック部分を抽出し、抽出した共通のロジック部分に含まれる回路部品について、同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する共通判定部と、
    前記共通判定部が抽出した共通のロジック部分と前記付属情報とに基づいてプログラムコンポーネントを生成するプログラムコンポーネント生成部と、
    前記シーケンスプログラム内の前記共通のロジック部分の各々を、前記プログラムコンポーネントと前記プログラムコンポーネントの入出力引数に接続する回路部品とで置き換える置換部と、
    を備え、
    前記プログラムコンポーネント生成部は、前記付属情報のうち、同じ位置の回路部品に対するデバイス割付が全ての前記共通のロジック部分で一致している回路部品については、ユーザが入出力引数を生成するか否かを選択することができる、
    ことを特徴とするプログラム作成支援装置。
  2. 前記共通判定部が抽出した共通のロジック部分をプログラムコンポーネントの候補として表示装置に表示させる検索結果表示処理部、
    を備え、
    前記プログラムコンポーネント生成部は、前記プログラムコンポーネントの候補の中からユーザによって選択された共通のロジック部分と前記付属情報とに基づいてプログラムコンポーネントを生成する、
    ことを特徴とする請求項1に記載のプログラム作成支援装置。
  3. 前記プログラムコンポーネント生成部は、前記共通のロジック部分に含まれる回路部品のうち、前記共通のロジック部分内の位置およびデバイス割付が全ての共通のロジック部分で一致している回路部品である第1の回路部品に該当しない回路部品である第2の回路部品に対してデバイス割付を行う入出力引数を有するプログラムコンポーネントを生成する、
    ことを特徴とする請求項1または2に記載のプログラム作成支援装置。
  4. 前記第1の回路部品の中から、前記共通のロジック部分が前記プログラムコンポーネント生成部で生成されるプログラムコンポーネントに置き換えられた後に入出力引数を用いたデバイス割付が必要な第1の回路部品をユーザに選択させる選択受付部、
    を備え、
    前記プログラムコンポーネント生成部は、前記第2の回路部品に対してデバイス割付を行う入出力引数と、ユーザによって選択された第1の回路部品に対してデバイス割付を行う入出力引数とを有するプログラムコンポーネントを生成する、
    ことを特徴とする請求項3に記載のプログラム作成支援装置。
  5. 前記プログラムコンポーネント生成部が前記プログラムコンポーネントを生成して前記置換部が前記共通のロジック部分を前記プログラムコンポーネントで置き換える前に、前記共通のロジック部分が前記プログラムコンポーネントと前記プログラムコンポーネントの入出力引数に接続する回路部品とで置き換えられた後の前記シーケンスプログラムの構成を確認するための画面を表示装置に表示させる確認表示処理部、
    を備えることを特徴とする請求項4に記載のプログラム作成支援装置。
  6. シーケンスプログラムの作成を支援するプログラム作成支援装置が実行するプログラム作成支援方法であって、
    シーケンスプログラム内の回路全体から共通のロジック部分を抽出する第1のステップと、
    前記第1のステップで抽出した共通のロジック部分に含まれる回路部品について、各共通のロジック部分の同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する第2のステップと、
    前記第1のステップで抽出した共通のロジック部分と前記付属情報とに基づいてプログラムコンポーネントを生成する第3のステップと、
    前記シーケンスプログラム内の前記共通のロジック部分を前記プログラムコンポーネントと前記プログラムコンポーネントの入出力引数に接続する回路部品とで置き換える第4のステップと、
    を含むことを特徴とするプログラム作成支援方法。
  7. シーケンスプログラム内の回路全体から共通のロジック部分を抽出する第1のステップと、
    前記第1のステップで抽出した共通のロジック部分に含まれる回路部品について、各共通のロジック部分の同じ位置の回路部品に対するデバイス割付が全ての共通のロジック部分で一致しているか否かを示す付属情報を生成する第2のステップと、
    前記第1のステップで抽出した共通のロジック部分と前記付属情報とに基づいてプログラムコンポーネントを生成する第3のステップと、
    前記シーケンスプログラム内の前記共通のロジック部分を前記プログラムコンポーネントと前記プログラムコンポーネントの入出力引数に接続する回路部品とで置き換える第4のステップと、
    をコンピュータに実行させることを特徴とするプログラム作成支援プログラム。
JP2019552927A 2019-03-05 2019-03-05 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム Active JP6664563B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/008657 WO2020178983A1 (ja) 2019-03-05 2019-03-05 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム

Publications (2)

Publication Number Publication Date
JP6664563B1 JP6664563B1 (ja) 2020-03-13
JPWO2020178983A1 true JPWO2020178983A1 (ja) 2021-03-11

Family

ID=70000323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019552927A Active JP6664563B1 (ja) 2019-03-05 2019-03-05 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム

Country Status (3)

Country Link
JP (1) JP6664563B1 (ja)
CN (1) CN113518947B (ja)
WO (1) WO2020178983A1 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526692B2 (ja) * 1990-03-02 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラのプログラミング方法
JP3755500B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
JP4266334B2 (ja) * 2003-09-19 2009-05-20 株式会社キーエンス ラダープログラムマクロ作成装置、ラダープログラムマクロ作成方法、ラダープログラムマクロ作成プログラムおよびコンピュータで読み取り可能な記録媒体
JP5566473B2 (ja) * 2010-11-24 2014-08-06 三菱電機株式会社 システム設計装置
KR101543196B1 (ko) * 2012-03-19 2015-08-07 미쓰비시덴키 가부시키가이샤 시퀀스 프로그램 작성 장치
JP5769900B2 (ja) * 2013-03-29 2015-08-26 三菱電機株式会社 シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置
JP6224575B2 (ja) * 2014-12-19 2017-11-01 ファナック株式会社 指定した信号の演算条件によりラダー回路を検索可能なラダープログラム検索装置
DE112015006067T5 (de) * 2015-01-28 2017-10-12 Mitsubishi Electric Corporation Intelligentes Funktionsmodul und speicherprogrammierbares Steuerungssystem
US20190121816A1 (en) * 2017-04-17 2019-04-25 Mitsubishi Electric Corporation Program creating device

Also Published As

Publication number Publication date
WO2020178983A1 (ja) 2020-09-10
JP6664563B1 (ja) 2020-03-13
CN113518947B (zh) 2022-10-21
CN113518947A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
JP5769900B2 (ja) シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置
JPWO2008102426A1 (ja) プログラマブルコントローラの周辺装置、置換方法およびプログラム
JP2008123103A (ja) プログラム変換装置
US20130007697A1 (en) Program creation support apparatus, program, and information system
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP2011039786A (ja) ソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラム
JP4319082B2 (ja) プログラミングシステム
JP6292096B2 (ja) プログラマブルコントローラシステム、その支援装置
JP6926841B2 (ja) コントロールシステム、開発支援装置、及びコントロール方法
JP6664563B1 (ja) プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム
JP2013222439A (ja) プログラム生成装置
JP2008198143A (ja) プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
JP4266334B2 (ja) ラダープログラムマクロ作成装置、ラダープログラムマクロ作成方法、ラダープログラムマクロ作成プログラムおよびコンピュータで読み取り可能な記録媒体
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP5257898B2 (ja) 情報処理装置及びその制御方法、並びに、プログラム
JP5883936B2 (ja) プログラマブルコントローラシステム
JP6242554B1 (ja) プログラム開発支援装置およびプログラム部品の管理方法
JP6095743B2 (ja) 支援装置、プログラム
JP2020017225A (ja) 情報処理装置および表示プログラム
KR101149655B1 (ko) 프로그램 디자인 장치 및 그 방법
WO2021024791A1 (ja) 設計支援システム及び設計支援方法
JP2016212916A (ja) プログラマブル表示器、プログラム
JP2011128996A (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP6407481B1 (ja) プログラム作成装置
JPH07334358A (ja) 手順編集装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190925

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190925

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200218

R150 Certificate of patent or registration of utility model

Ref document number: 6664563

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