JP2021157382A - 情報処理装置およびラダープログラムを表示するためのプログラム - Google Patents

情報処理装置およびラダープログラムを表示するためのプログラム Download PDF

Info

Publication number
JP2021157382A
JP2021157382A JP2020055649A JP2020055649A JP2021157382A JP 2021157382 A JP2021157382 A JP 2021157382A JP 2020055649 A JP2020055649 A JP 2020055649A JP 2020055649 A JP2020055649 A JP 2020055649A JP 2021157382 A JP2021157382 A JP 2021157382A
Authority
JP
Japan
Prior art keywords
ladder
circuit
screen
ladder circuit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020055649A
Other languages
English (en)
Other versions
JP7380376B2 (ja
Inventor
健次郎 長尾
Kenjiro Nagao
健次郎 長尾
大生 笹井
Daiki Sasai
大生 笹井
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2020055649A priority Critical patent/JP7380376B2/ja
Priority to PCT/JP2020/047226 priority patent/WO2021192456A1/ja
Publication of JP2021157382A publication Critical patent/JP2021157382A/ja
Application granted granted Critical
Publication of JP7380376B2 publication Critical patent/JP7380376B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

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

Abstract

【課題】ラダープログラムの全体構造を分かりやすく表示することを目的とする。【解決手段】サポート装置10は、ラダープログラム42を複数のラダー回路420を含む回路態様で表示するとともに、ラダー回路420ごとに登録されたテキスト情報460を対応するラダー回路420に対応付けて表示するためのラダー画面120と、ラダー画面120を介して入力された親子情報480に基づいて定義された階層構造160をテキスト情報460で表示するための階層画面180とを表示する。【選択図】図1

Description

本開示は、ラダープログラムを表示する情報処理装置およびラダープログラムを表示するためのプログラムに関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計されたユーザプログラムを実行する。このようなユーザプログラムは、制御装置とは別に用意された開発環境にて作成される。
ユーザプログラムを記述するためのプログラミング言語には、複数の命令要素を互いに繋いだ回路態様で表示可能なラダーダイアグラム(LD:Ladder Diagram)を含む。複数の命令要素を互いに繋いだ回路態様で記述されたプログラムは、「ラダープログラム」とも言われる。
ユーザプログラムを開発するための環境を提供する開発支援装置として、ラダープログラムを作成する際に、各ラダープログラムの内容を理解しやすくするために、ラダープログラム内に適宜コメント行を設けるものが知られている(たとえば、特許文献1参照)。
特開2017−059046号公報
ラダープログラムは、接点およびコイル等の組み合わせで表現される論理回路が梯子状に描かれた構成を有している。コイルは、接点を組み合わせた論理演算の結果の出力先を示す。また、一の論理回路が他の論理回路の結果を受け、さらに、他の論理回路が、別の他の論理回路の結果を受けるような階層的な表現でラダープログラムは記述されることもある。
従来の開発支援装置によるラダープログラムの表示方法では、逐次実行される論理回路の内容を理解しやすくすることはできたものの、階層のない表現であったため、ラダープログラムの全体構造がわかりにくかった。
本発明は、上記課題を解決することを目的とするものであって、ラダープログラムの階層構造を分かりやすく表示することを目的とする。
本開示の一例によれば、ラダープログラムを表示する情報処理装置が提供される。情報処理装置は、ラダー画面生成部と、受付部と、定義部と、階層画面生成部とを含む。ラダー画面生成部は、ラダープログラムを複数のラダー回路を含む回路態様で表示するためのラダー画面を生成する。ラダー画面には、複数のラダー回路が表示されるとともに、ラダー回路ごとに登録されたテキスト情報が対応するラダー回路に対応して表示される。受付部は、ラダー画面に対する操作に応じて、一のラダー回路と他のラダー回路との親子関係を示す親子情報の入力を受け付ける。定義部は、受付部が受け付けた親子情報に基づいて、ラダープログラムに含まれる複数のラダー回路の階層構造を定義する。階層画面生成部は、定義部が定義した階層構造をテキスト情報で表示するための階層画面を生成する。
この開示によれば、テキスト情報であれば、インデントを設けたり、あるいは、罫線でテキスト情報同士をつなげたりする方法によって容易に階層構造を表現できる。その結果、情報処理装置は、ラダープログラムの全体構造を分かり易く表示できる。
上述の開示において、階層画面に含まれるテキスト情報の各々は、対応するラダー回路のラダー画面上における位置を示す位置情報に関連付けられていてもよい。この場合に、階層画面を介してテキスト情報が選択されたことに応じて、ラダー画面を表示する領域内に、選択されたテキスト情報に対応するラダー回路が表示されるようにしてもよい。
この開示によれば、階層構造を表示した階層画面を介した操作によりラダー画面の表示範囲を変更できるため、目的のラダー回路を容易に表示できる。
上述の開示において、定義部は、ラダー回路のラダー画面上における位置を示す位置情報と親子情報とに基づいて階層構造を定義し、位置情報の変更が受け付けられたことに応じて階層構造を定義し直してもよい。
この開示によれば、ラダー画面上におけるラダー回路間の位置関係に応じて任意に階層構造を定義できるため、ユーザは、親子関係とする各ラダー回路の内容を確認しながら親子情報を入力できる。
上述の開示において、受付部は、階層画面に対する操作に応じて位置情報の変更を受け付けてもよい。
この開示によれば、階層構造を表示した階層画面を介した操作によりラダー回路間の位置関係を変更でき、位置関係の変更に応じて階層構造も変更できる。そのため、階層構造の変更を容易に行うことができる。
上述の開示において、定義部は、一のラダー回路が選択された状態でラダー回路の追加操作がされた場合に、予め定められた追加ルールと選択されたラダー回路の階層とに基づいて階層構造を定義し直してもよい。
この開示によれば、ラダー回路を追加してラダープログラムを開発していく際に、容易に階層構造を定義できる。
上述の開示において、情報処理装置は、テキスト情報の編集または作成を行う作成部をさらに含み得る。この場合に、作成部は、ラダー回路が追加されたことに応じて位置情報の変更が受け付けられた場合に、定義し直された階層構造と、追加されたラダー回路が属する階層のラダー回路に対応するテキスト情報とに基づいて、追加されたラダー回路に対応するテキスト情報を作成してもよい。
この開示によれば、新たに追加されたラダー回路の階層を示したテキスト情報を生成できる。
上述の開示において、一のラダー回路が選択された状態でラダー回路の削除操作がされた場合、選択されたラダー回路と、選択されたラダー回路の子階層に含まれるラダー回路とが削除されてもよい。
この開示によれば、ラダープログラムの開発をする際の利便性が向上する。
上述の開示において、受付部は、一のラダー回路の選択を受け付けるとともに、選択されたラダー回路および、選択されたラダー回路の子階層に含まれるラダー回路を一の管理単位の部品として受け付けてもよい。
この開示によれば、親子情報の入力により任意の階層構造を定義できるとともに、再利用できる部品の作成も同時にできる。
上述の開示において、ラダー画面生成部は、ラダー回路が選択された場合に、選択されたラダー回路の子階層に含まれるラダー回路を省略したラダー画面を生成してもよい。
この開示によれば、ラダープログラムの全体構造をより分かり易く表示できる。
上述の開示において、階層画面生成部は、ラダー回路が選択された場合に、選択されたラダー回路の子階層に含まれるラダー回路に対応するテキスト情報を省略した階層画面を生成してもよい。
この開示によれば、ラダープログラムの全体構造をより分かり易く表示できる。
上述の開示において、ラダー画面生成部は、定義部が定義した階層構造に基づいて、同じ階層に含まれるラダー回路と異なる階層に含まれるラダー回路とを互いに異なる表示態様で表示したラダー画面を生成してもよい。
この開示によれば、ラダー画面を確認するだけで、階層の区切りをユーザに容易に把握させることができる。
上述の開示において、ラダープログラムは、プログラム要素のまとまりから構成されたブロックを呼び出す1または複数の呼出命令を含み得る。階層画面生成部は、呼出命令を含むラダー回路の子階層に呼出命令によって呼び出されるブロックが含まれるように階層画面を生成してもよい。
この開示によれば、各ラダー回路でどのようなブロックが呼び出されるかを階層画面上に表示できる。
本開示の別の一例によれば、ラダープログラムを表示するためのサポートプログラムが提供される。サポートプログラムは、ラダープログラムを複数のラダー回路を含む回路態様で表示するとともに、ラダー回路ごとに登録されたテキスト情報を対応するラダー回路に対応させて表示するためのラダー画面を生成するステップと、ラダー画面に対する操作に応じて、一のラダー回路と他のラダー回路との親子関係を示す親子情報の入力を受け付けるステップと、受け付けられた親子情報に基づいて、ラダープログラムに含まれる複数のラダー回路の階層構造を定義するステップと、定義された階層構造をテキスト情報で表示するための階層画面を生成するステップとを含む。
この開示によれば、テキスト情報であれば、インデントを設けたり、あるいは、罫線でテキスト情報同士をつなげたりする方法によって容易に階層構造を表現できる。その結果、情報処理装置は、ラダープログラムの全体構造を分かり易く表示できる。
本開示の一例によれば、ラダープログラムの全体構造を分かりやすく表示できる。
本実施の形態に係るサポート装置10の機能構成を示すブロック図である。 サポート装置10を適用可能な制御システム1の構成例を示す模式図である。 サポート装置10のハードウェア構成例を示す模式図である。 サポート装置10のソフトウェア構成例を示す模式図である。 ユーザインターフェイス画面140の一例である。 ディスプレイ114上にラダープログラム42を表示する際に実行される表示処理を示すフローチャートである。 ラダー回路420を追加するときに実行される追加処理を示すフローチャートである。 挿入ルールの一例を示す図である。 挿入ルールの他の例を示す図である。 挿入ルールの他の例を示す図である。 挿入ルールの他の例を示す図である。 階層を考慮しない挿入ルールの一例を示す図である。 テキスト情報460の作成ルールの一例について説明するための図である。 コピー・アンド・ペーストをした場合の画面遷移の一例である。 ラダー回路420を削除するときに実行される削除処理を示すフローチャートである。 削除ルールの一例を示す図である。 削除ルールの他の例を示す図である。 親子情報480の更新ルールの一例を示す図である。 ラダー回路420を移動するときに実行される移動処理を示すフローチャートである。 移動操作による画面遷移の一例を示す図である。 階層構造160を定義するための階層化処理を示すフローチャートである。 省略表示と展開表示の一例を示す図である。 省略表示と展開表示の他の例を示す図である。 階層構造160を表したラダー画面120の一例を示す図である。 第1領域142に表示されるラダー画面120の範囲が変更される様子を示す図である。 1または複数のラダー回路420を一の部品として登録する様子を示す図である。 POUを呼出元のラダー回路の子階層として表示した画面の一例を示す図である。 変形例にかかる階層化処理を示すフローチャートである。 変形例にかかる階層化処理に従って定義された階層構造160の一例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係るサポート装置10の機能構成を示すブロック図である。
サポート装置10は、ラダープログラム42を表示するための情報処理装置の一例である。サポート装置10は、典型的には、汎用のコンピュータで構成される。サポート装置10は、ラダープログラム42を作成する場面、ラダープログラム42の動作を確認する場面、またはラダープログラム42のバグを修正する場面などで利用される。
ラダープログラム42は、FA分野で使用される各種装置を制御するPLCのような制御装置が実行する制御プログラムの一種である。「制御プログラム」は、FA分野で使用される各種装置を制御する制御装置の基本的な機能を提供するためのプログラムと、制御対象に応じて任意に設計されるプログラム(「ユーザプログラム」ともいう)とを包含する概念である。
ラダープログラム42は、複数の命令要素を互いに繋いだ回路態様で表示可能なプログラミング言語で記述されているプログラムである。典型的には、ラダープログラム42は、国際規格IEC61131−3において既定されているPLCアプリケーションのプログラミング言語のうち、ラダーダイアグラム(LD:Ladder Diagram)で記述されたプログラムである。なお、プログラム全体を複数の言語で記述する方式を採用する場合に、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)、各メーカ独自の言語、またはC言語等の手続き型プログラミング言語などで記述されたプログラムがラダープログラム42に含まれていてもよい。
図1を参照して、サポート装置10は、ラダー画面生成部12と、受付部14と、定義部16と、階層画面生成部18とを備える。
ラダー画面生成部12は、ラダープログラム42を1または複数のラダー回路420を含む回路態様で表示するためのラダー画面120を生成する。ラダー画面生成部12は、ラダー回路420を並べて表示するとともに、ラダー回路420ごとに登録されたテキスト情報460を対応するラダー回路420に対応付けて表示するようにラダー画面120を生成する。
各ラダー回路420は、入力側母線421および出力側母線422、ならびに入力側母線421と出力側母線422との間に接続線と回路要素とを用いて描かれた論理回路(以下、単に「回路」とも称する)から構成される。回路要素は、たとえば、入力信号に基づいてオン/オフする接点423と、回路内の演算結果を出力するコイル424とを含む。なお、図1において、一部符号を省略している。
テキスト情報460は、文字からなる情報である。なお、文字は、記号および数字も含み得る。テキスト情報460は、典型的には、ラダー回路420の名称である。図1に示す例では、テキスト情報460として、ラダー回路420の名称(たとえば、図1中の「回路1」という文字)と、ラダー回路420の順番(たとえば、図1中の「0」という文字)とがラダー画面120上に表示されている。なお、テキスト情報460として、ラダー回路420の内容を示すコメントが登録されていてもよい。また、テキスト情報460は、自動で生成されてもよく、また、ユーザによって入力されることで生成されてもよい。
受付部14は、ラダー画面120に対する操作に応じて、一のラダー回路420と他のラダー回路420との親子関係を示す親子情報480の入力をラダー回路420ごとに受け付ける。親子関係とは、従属関係を意味する。上位の階層のラダー回路420が親であり、その階層の下位層に含まれるラダー回路420が子である。たとえば、ユーザは、一のラダー回路420が他のラダー回路420の出力結果を受けるようにラダープログラムを記述する場合に、他のラダー回路420(子)を一のラダー回路420(親)に従属させるように親子情報480を入力できる。
図1に示す例では、ラダー画面120上のテキスト情報460が表示された領域に特殊記号「#」が入力されることで、テキスト情報460に対応するラダー回路420に関連付けて親子情報480の入力が受け付けられる。また、ユーザは、特殊記号「#」を入力することで階層を区切ることができ、特殊記号「#」の数により階層の深さを表すことができる。
たとえば、図1に示す例では、「回路1」が示すラダー回路420は、「回路1−1」が示すラダー回路420の出力結果である「a」という変数と、「回路1−2」が示すラダー回路420の出力結果である「b」という変数とによって出力結果が変わる。この場合に、ユーザは、「回路1」が示すラダー回路420を親、「回路1−1」が示すラダー回路420と、「回路1−2」が示すラダー回路420とを「回路1」が示すラダー回路420の子とするように親子情報480を入力できる。
定義部16は、受付部14が受け付けた親子情報480に基づいて、ラダープログラム42に含まれる複数のラダー回路420の階層構造160を定義する。たとえば、定義部16は、入力された親子情報480と、予め定められた親子情報480を入力するルールに基づいて階層構造160を定義する。
図1に示す例では、定義部16は、たとえば、0番目のラダー回路420に対して受け付けられた親子情報480(「#」)に基づいて、0番目のラダー回路420と1番目のラダー回路420とで階層の区切りが生じ、「#」の数により0番目のラダー回路420が1番上の階層であることを特定する。そして、定義部16は、1番目のラダー回路420が0番目のラダー回路420の子階層であることを定義する。また、2番目のラダー回路420に対して親子情報480の入力がされていないため、定義部16は、2番目のラダー回路420が1番目のラダー回路420と同じ階層であることを定義する。
階層画面生成部18は、定義部16が定義した階層構造160をテキスト情報460で表示した階層画面180を生成する。図1に示す例では、階層画面生成部18は、テキスト情報460の冒頭にインデントをいくつ設けるかによって、このテキスト情報460に対応するラダー回路420の階層を表現する。たとえば、「0.回路1」に対応する0番目のラダー回路420は、「0.回路1」にインデントが設けられていないため、1番上の階層のラダー回路420である。
ラダープログラム42は、一のラダー回路420内のコイル424が出力する結果を他のラダー回路420に含まれる接点423が受けるような階層的な表現で記述されることがある。
階層的な表現で記述されたラダープログラム42は、複数のラダー回路420から構成されている。ラダー画面120を表示可能な範囲には制限があるため、ラダープログラム42全体をディスプレイ内に収めることは難しく、ラダープログラム42の全体構造を表現することが難しかった。
また、一般的に、ラダー回路420を並べて表示する場合、入力側母線421の位置が固定された態様で表示される。入力側母線421の位置を変更することで階層関係を表現することも可能だが、入力側母線421の位置を変更するとラダー回路420の表示位置がラダー回路420ごとに変わってしまい、見難いという課題がある。
本実施の形態にかかるサポート装置10は、ラダー回路420に対する操作に応じて親子情報480の入力を受け付ける。そのため、ユーザは、ラダー回路420間の親子関係を、ラダー回路420を確認しながら任意に定義することができる。
また、サポート装置10は、親子情報480に基づいて定義される階層構造160をテキスト情報460で表示するための階層画面180を生成するための階層画面生成部18を備える。ラダー回路420と異なり、テキスト情報460であればインデントを設けたり、あるいは、罫線でテキスト情報460同士をつなげたりする方法によって容易に階層構造160を表現できる。そのため、サポート装置10は、ラダープログラム42の全体構造を分かりやすく表示できる。
また、ラダー回路420とテキスト情報460とを比較すると、テキスト情報460を表示するために必要な領域は、ラダー回路420を表示するために必要な領域よりも狭い。そのため、テキスト情報460で階層構造160を表すことで階層構造160を一の画面内に収めることが容易になる。その結果、ラダープログラム42の全体構造を分かりやすく表示できる。
以下、本発明の具体例として、本実施の形態に係るサポート装置10のより詳細な構成および処理について説明する。
<B.サポート装置を適用可能な制御システム>
図2は、サポート装置10を適用可能な制御システム1の構成例を示す模式図である。図2を参照して、制御システム1は、複数のPLC200−1,200−2,200−3,200−4,…(以下、「PLC200」とも総称する。)を含んでいる。PLC100の各々は、リレー,センサー等のフィールド機器である制御対象を制御する制御装置の一例である。サポート装置10は、PLC200に接続可能であり、PLC200の制御プログラムの開発を支援する環境を提供する。制御システム1は、1台のPLC200を含む構成であってもよい。以下では、説明を簡単にするために、1台のPLC200を対象にした開発環境を説明する。
PLC200は、典型的には、制御プログラムを含む各種プログラムを実行する主体であるCPU(Central Processing Unit)ユニット20と、CPUユニット20などへ電力を供給する電源ユニット22と、フィールドからの信号を遣り取りするI/O(Input/Output)ユニット24とを含む。I/Oユニット24は、CPUユニット20とシステムバス21を介して接続されている。
サポート装置10が提供する開発支援環境は、制御プログラムのエディタ(編集)、デバッカ、シミュレータおよびこれらの出力情報をディスプレイ等のモニタに出力するためのモニタ機能等を有し得る。サポート装置10は、さらに、運転中のPLC200の状態値を取得し、ディスプレイ等のモニタに出力する機能なども備える。
光学記録媒体8に格納されたアプリケーションプログラムであるサポートプログラムがサポート装置10にインストールされることで、上述したような開発支援環境のための各種機能が実現される。光学記録媒体8に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをダウンロードするようにしてもよい。サポート装置10は、一例として、接続ケーブルを介してPLC200のCPUユニット20と接続される。
<C.サポート装置10のハードウェア構成例>
図3は、サポート装置10のハードウェア構成例を示す模式図である。図3を参照して、サポート装置10は、典型的には、汎用のコンピュータで構成される。なお、PLC200が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
サポート装置10は、記憶部101と、オペレーティングシステム(OS)を含む各種プログラムを実行するCPU102とを備える。記憶部101は、BIOSや各種データを格納するROM(Read Only Memory)104と、CPU102でのプログラムの実行に必要なデータを格納するための作業領域を提供するRAM(Random Access Memory)106と、CPU102で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)108とを含む。ROM104と、HDD108とは、非一時的なコンピュータ可読媒体の具体化例である。
サポート装置10は、さらに、サポート装置10に指示を入力するためにユーザが操作するキーボード110およびマウス112を含む操作部103、および情報をユーザに提示するためのディスプレイ114を含む。サポート装置10は、PLC200(CPUユニット20)などと通信するための通信インターフェイス118を含む。通信インターフェイス118は、PLC200が備えるUSB(Universal Serial Bus)インターフェイス(図示略)と通信するためにUSB通信モジュールを含み得る。
サポート装置10は、光学記録媒体8からそれに格納されている開発支援環境を提供するためのサポートプログラムを読み取るための光学記録媒体読取装置116を含む。光学記録媒体8は、非一時的なコンピュータ可読媒体の具体化例である。
図3には、CPU102等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<D.サポート装置10のソフトウェア構成>
図4は、サポート装置10のソフトウェア構成例を示す模式図である。図4では、サポート装置10のソフトウェア構成に関連付けて、記憶部101に格納される情報の一例が示される。
(d1.サポート装置10に格納される情報)
記憶部101に格納される情報は、ラダープログラム42と、テキスト情報460と、親子情報480と、位置情報440と、階層構造160と、部品情報430と、設定情報450と、オブジェクト情報52と、サポートプログラム54とを含む。
本実施の形態において、ラダープログラム42は、ラダーダイアグラムで記述されたコンパイルがされる前の状態で記憶部101に格納されているものとして説明する。ラダープログラム42は、複数のラダー回路420を含む。また、ラダープログラム42に含まれる各ラダー回路420は、後述するエディタ15によって編集され、作成される。
テキスト情報460は、ラダー回路420ごとに格納されている。各テキスト情報460は、いずれのラダー回路420と対応関係にあるかを特定可能な情報を含む。テキスト情報460は、図示しないものの、ラダー回路420の名称を示すテキスト情報および、ラダー回路420の順番を示すテキスト情報のうちの少なくとも一方の情報を含む。
親子情報480は、ラダー画面120を介して入力される情報であって、一のラダー回路420と他のラダー回路420との階層関係を示す情報である。親子情報480は、いずれのラダー回路420に対して入力された情報であるかを特定可能な情報を含む。本実施の形態においては、親子情報480は、階層の区切りを示す情報と階層の深さを示す情報とを含む。
なお、親子情報480は、設定情報450に含まれる入力ルールに従って入力される情報である。入力ルールは、予め定められていてもよく、また、ユーザによって変更可能な構成であってもよい。
位置情報440は、ラダー画面120上における各ラダー回路420の位置を示す情報である。なお、位置情報440は、各ラダー回路420の位置を示すものであればよく、たとえば、ラダー回路420の順序を示すものであってもよい。
階層構造160は、親子情報480に基づいて定義部16が定義するラダープログラム42に含まれるラダー回路420の全体構造を示す情報である。本実施の形態においては、階層構造160は、設定情報450に含まれる入力ルールと、親子情報480と、位置情報440とに基づいて定義される。
部品情報430は、ラダープログラム42に含まれる呼出命令によって呼び出されるファンクションブロックを含む。また、部品情報430は、任意に選択した1または複数のラダー回路420から構成された部品を含む。
設定情報450は、親子情報480の入力ルール、ディスプレイ114にラダー画面120および階層画面180を表示する際の表示ルール、階層構造160を定義し直す際のルール、新たなラダー回路420を追加または削除するときのルールなどを含む。
オブジェクト情報52は、ラダープログラム42を視覚的にディスプレイ114に表示するために用いられる。オブジェクト情報52は、ラダープログラム42の内容を視覚的に示すための各部品を含む。たとえば、オブジェクト情報52は、入力側母線421、出力側母線422、接点423、およびコイル424などを含む。
サポートプログラム54は、ラダープログラム42を表示するためのプログラムを含む。また、サポートプログラム54は、制御プログラムを開発するための各種機能を実現するためのプログラムである。
(d2.ラダープログラムを表示するためのモジュール)
図4に示された各種機能は、CPU102がサポートプログラム54を実行することで実現される。具体的には、サポートプログラム54は、受付部14、エディタ15、ラダー画面生成部12、定義部16、作成部17、階層画面生成部18、部品化部19、および表示部11の機能を提供する。
受付部14は、操作部103からの操作の入力を受け付ける。受付部14は、典型的には、入力インターフェイスである。たとえば、受付部14は、親子情報480の入力、位置情報440の変更、部品情報430の登録、テキスト情報460の入力などを受け付ける。なお、位置情報440の変更は、ラダー回路420の追加またはラダー回路420の削除に基づくものを含む。
エディタ15は、ユーザ操作に従いラダープログラム42の編集および作成を実施する。エディタ15は、PLC200の運転中に実行される制御プログラムの一部を書き換える(編集する)オンラインエディット機能をさらに提供し得る。
ラダー画面生成部12は、ラダー画面120を生成する。ラダー画面120上には、上述したように、複数のラダー回路420が並べて表示され、ラダー回路420ごとに登録されたテキスト情報460が対応するラダー回路420の上部に表示される。
ラダー画面生成部12は、受付部14が情報の入力を受け付けた場合、受け付けた内容に応じてラダー画面120の表示内容を更新する。たとえば、ラダー画面生成部12は、受付部14が親子情報480の入力を受け付けた場合に、入力された親子情報480をラダー画面120上に表示する。
定義部16は、親子情報480に基づいて階層構造160を定義する。本実施の形態において、定義部16は、設定情報450に含まれる入力ルールと、親子情報480と、位置情報440とに基づいて階層構造160を定義する。
また、定義部16は、受付部14が情報の入力を受け付けた場合、受け付けた内容に応じて階層構造160を定義しなおす。たとえば、定義部16は、親子情報480が入力されたこと、または位置情報440が変更されたことに応じて、階層構造160を定義しなおす。
作成部17は、テキスト情報460の編集または作成を行う。たとえば、作成部17は、受付部14がテキスト情報460の入力を受け付けた場合にテキスト情報460の編集または作成を行う。また、作成部17は、ラダー回路420が追加されたり、あるいは削除されたりしたことに応じて、テキスト情報460を更新または作成する。詳細については、後述する。
階層画面生成部18は、定義部16が定義した階層構造160をテキスト情報460で表示した階層画面180を生成する。階層構造160の表現方法は、図1に示したテキスト情報460の冒頭にインデントを設ける方法に限られず、たとえば、罫線を用いてテキスト情報460同士を繋いだ表現方法、テキスト情報460の間に階層区切りを示すスラッシュを入れる表現方法などであってもよい。
階層画面生成部18は、受付部14が情報の入力を受け付けた場合、受け付けた内容に応じて階層画面180の表示内容を更新する。たとえば、階層画面生成部18は、受付部14が受け付けた内容に応じて階層構造160が定義しなおされたり、テキスト情報460の内容が更新されたりした場合に、階層画面180の表示内容を更新する。
部品化部19は、複数のラダー回路420を一の部品として部品情報430に登録する。たとえば、部品化部19は、受付部14が、一のラダー回路420の選択を受け付けた場合に、選択されたラダー回路420および選択されたラダー回路420の子階層に含まれるすべてのラダー回路420を一の部品として部品情報430に登録する。
表示部11は、ラダー画面生成部12が生成したラダー画面120と、階層画面生成部18が生成した階層画面180とをディスプレイ114に表示する。また、表示部11は、受付部14が表示範囲の変更を受け付けた場合に、ディスプレイ114に表示するラダー画面120および階層画面180の表示範囲を変更する。たとえば、表示部11は、階層画面生成部18を介して一のテキスト情報460が選択された場合に、テキスト情報460に対応するラダー回路420がディスプレイ114内に表示されるようにラダー画面120の表示範囲を変更する。
<E.ユーザインターフェイス画面>
図5は、ユーザインターフェイス画面140の一例である。ユーザインターフェイス画面140は、表示部11によって生成されて、ディスプレイ114に表示される。
図5を参照して、ユーザインターフェイス画面140は、ラダー画面120を表示する第1領域142と階層画面180を表示するための第2領域144とを含む。また、ラダー画面120には、階層画面180の表示を省略して、ラダー画面120を表示するための第1領域142を広げるための切替ボタン146が設けられている。また、ユーザインターフェイス画面140は、第1領域142上に表示するラダー画面120の表示範囲を変更するためのスクロールバー148が設けられている。
本実施の形態において、ラダー画面120と階層画面180とは、一のユーザインターフェイス画面140内に表示される。なお、ラダー画面120と階層画面180とを表示する方法は、これに限られない。たとえば、ラダー画面120と階層画面180とは、それぞれ別のウィンドウに表示されてもよい。
<F.表示処理>
図6は、ディスプレイ114上にラダープログラム42を表示する際に実行される表示処理を示すフローチャートである。図6に示す表示処理は、ユーザインターフェイス画面140をディスプレイ114に表示するための処理である。表示処理は、たとえば、ユーザインターフェイス画面140の表示が求められているときに、所定の処理周期毎にメインルーチン(図示せず)から呼び出されて実行される。
S101において、CPU102は、ラダー画面120を生成する。より具体的には、CPU102は、ラダープログラム42を複数のラダー回路420を含む回路態様で表示するとともに、ラダー回路420ごとに登録されているテキスト情報460を、対応するラダー回路420に対応させて表示するためのラダー画面120を生成する。テキスト情報460は、ラダー回路420を表示する順番に従って生成されてもよい。また、CPU102は、S101において、ラダー画面120を生成したときにラダー画面120上における各ラダー回路420の位置を示す位置情報440を生成する。
S102において、CPU102は、親子情報480の入力を受け付ける。より具体的には、CPU102は、ラダー画面120上に特殊記号「#」の入力がされた場合に、その入力を受け付ける。
S104において、階層化処理を実行する。階層化処理は、ラダープログラム42に含まれる複数のラダー回路420の階層構造160を定義する処理である。階層化処理は、S102で生成された位置情報440とS102で受け付けられた親子情報480とに基づいて実行される。階層化処理については、図21を参照して後述する。
S105において、CPU102は、階層画面180を生成する。より具体的には、CPU102は、テキスト情報460と、階層構造160とに基づいて、階層構造160をテキスト情報460で表した階層画面180を生成する。
S106において、CPU102は、S101で生成したラダー画面120と、S105で生成した階層画面180とを含むユーザインターフェイス画面140を生成してディスプレイ114上に表示して、表示処理を終了する。
<G.位置情報440の変更操作>
上述のように、受付部14は、位置情報440の変更を受け付ける。本実施の形態において、受付部14は、ラダー画面120を介して入力された操作に限らず、階層画面180を介して入力された操作に基づいて行われる操作によっても、位置情報440の変更を受け付ける。
ラダー画面120上におけるラダー回路420間の位置関係に応じて任意に階層構造160を定義できるため、ユーザは、親子関係とする各ラダー回路420の内容を確認しながら親子情報480を入力できる。
また、階層画面生成部18を介した操作によりラダー回路420間の位置関係を変更でき、位置関係の変更に応じて階層構造160も変更できる。そのため、階層構造160の変更を容易に行うことができる。
位置情報440は、ラダー回路420の順序を変更したときに限らず、ラダー回路420を追加した場合、またはラダー回路420を削除した場合に変更される。位置情報440の変更は、ラダー回路420の順序を変更する操作に限らず、ラダー回路420を追加する操作、およびラダー回路420を削除する操作によっても行われる。以下、各操作が受け付けられたときの処理について詳細に説明する。
(g1.追加操作)
図7は、ラダー回路420を追加するときに実行される追加処理を示すフローチャートである。追加処理は、ラダー回路420を追加するための操作が受け付けられたときにCPU102によって行われる処理である。
S111において、CPU102は、挿入ルールに従ってラダー回路420を挿入する位置を決定する。挿入ルールは、設定情報450として予め記憶部101に格納されている。挿入ルールは、サポートプログラム54を提供するベンダによって予め定められていてもよく、また、ユーザによって変更可能であってもよい。
S112において、CPU102は、位置情報440を更新する。具体的には、新たに追加されたラダー回路420の位置情報440が追加され、新たに追加されたラダー回路420よりも順番が後のラダー回路420の位置情報440が更新される。
S113において、CPU102は、新たに追加されたラダー回路420および、新たに追加されたラダー回路420と隣り合うラダー回路420の親子情報480を更新する。たとえば、CPU102は、追加する際に選択したラダー回路420およびラダー回路420を追加する位置の少なくとも一方に応じて親子情報480を更新する。親子情報480の更新の一例については、図10および図11を参照して後述する。
S114において、CPU102は、階層化処理を実行する。階層化処理は、ラダープログラム42に含まれる複数のラダー回路420の階層構造160を定義する処理である。階層化処理は、S112で更新された位置情報440とS113で更新された親子情報480とに基づいて実行される。階層化処理については、図21を参照して後述する。
S115において、CPU102は、テキスト情報460を更新する。本実施の形態において、テキスト情報460は、ラダー回路420の名称を示す情報と、ラダー回路420の順番を示す情報とを含む。CPU102は、ラダー回路420の順番を示す情報を、S112において更新された後の位置情報440に基づいて更新する。また、CPU102は、新たに追加するラダー回路420の名称を作成する。
すなわち、作成部17は、ラダー回路420が追加されたときに、更新された後の位置情報440に基づいて、テキスト情報460に含まれるラダー回路420の順番を示す情報を更新するとともに、新たに追加されたラダー回路420の名称を作成する。
なお、作成する名称は、予め定められた定型テキスト(たとえば、「回路コメント」)であってもよく、また、所定のルールに従って作成されたテキストであってもよい。たとえば、作成部17は、新たに追加されたラダー回路420が属する階層を指すテキストを名称として作成してもよい。
S116において、CPU102は、S111〜S115の処理を実行することで更新した各種情報に基づいてラダー画面120の表示を更新する。
S117において、CPU102は、S111〜S115の処理を実行することで更新した各種情報に基づいて階層画面180の表示を更新して追加処理を終了する。
(g2.追加操作による画面遷移)
図8を参照して、追加操作による具体的な画面遷移を説明する。図8は、挿入ルールの一例を示す図である。たとえば、ユーザは、操作部103を操作することで、カーソルPを動かし、階層画面180上の一のテキスト情報460を選択できる。階層画面180上で一のテキスト情報460を選択することで、選択したテキスト情報460に対応するラダー回路420が選択されたこととなる。
ラダー回路420が選択された状態で追加操作がされると、図7に示した追加処理が実行され、図8の左側に示した画面が右側に示した画面に遷移する。図8に示す例では、CPU102は、選択したラダー回路420の子階層の一番下に新たなラダー回路420を挿入するというルールに従って新たなラダー回路420を追加する。その結果、図8に示すように、ラダー画面120上の2行目に新たなラダー回路420と、「2 回路コメント」というテキスト情報460とが追加されるとともに、階層画面180上に「2 回路コメント」というテキスト情報460が追加される。そして、2行目以降のラダー回路420の位置が一つずつずれるとともに、テキスト情報460も更新される。また、追加された新たなラダー回路420が、「回路1」が示すラダー回路420の子階層に含まれることが定義される。
なお、挿入ルールは、図8に示したルールに限られない。図9〜図11は、挿入ルールの他の例を示す図である。図9を参照して、CPU102は、選択したラダー回路420の子階層の一番上に新たなラダー回路420を挿入するというルールに従って新たなラダー回路420を追加してもよい。このルールに従うと、図9に示すように、ラダー画面120上の1行目に新たなラダー回路420とテキスト情報460とが追加されるとともに、階層画面180上に「1.回路コメント」というテキスト情報460が追加される。そして、1行目以降のラダー回路420の位置が一つずつずれるとともに、テキスト情報460も更新される。また、追加された新たなラダー回路420が、「回路1」が示すラダー回路420の子階層に含まれることが定義される。
図10を参照して、CPU102は、選択したラダー回路420と同じ階層であって、選択したラダー回路420の一つ下に位置するようにラダー回路420を挿入するというルールに従って新たなラダー回路420を追加してもよい。このルールに従うと、図10に示すように、「回路1」が示すラダー回路420の子階層の下である、ラダー画面120上の2行目に新たなラダー回路420とテキスト情報460とが追加されるとともに、階層画面180上に「2.回路コメント」というテキスト情報460が追加される。そして、2行目以降のラダー回路420が一つずつずれるとともに、テキスト情報460も更新される。また、追加された新たなラダー回路420が、「0.回路1」が示すラダー回路420と同じ階層であることが定義される。
図11を参照して、CPU102は、選択したラダー回路420と同じ階層であって、選択したラダー回路420の階層の一番下にラダー回路420を挿入するというルールに従って新たなラダー回路420を追加してもよい。このルールに従うと、図11に示すように、ラダー画面120上の10行目に新たなラダー回路420とテキスト情報460とが追加されるとともに、階層画面180上に「10.回路コメント」というテキスト情報460が追加される。また、追加された新たなラダー回路420が、「0.回路1」が示すラダー回路420と同じ階層であることが定義される。
なお、階層を考慮してラダー回路420が挿入される場合、必要に応じて親子情報480が更新される。具体的には、選択したラダー回路420に対して親子情報480が入力されているか否か、および挿入位置のうちの少なくとも一方の情報に基づいて、親子情報480が更新される。たとえば、図10および図11に示すように、親子情報480が入力されたラダー回路420が選択された状態で、選択されたラダー回路420と同じ階層にラダー回路420を追加する場合、追加したラダー回路420に親子情報480が追加される。
なお、挿入ルールは、図8〜図11に示したものに限られない。たとえば、CPU102は、選択したラダー回路420と同じ階層であって、選択したラダー回路420の階層の一番上にラダー回路420を挿入するというルールに従って新たなラダー回路420を追加してもよい。
テキスト情報460を追加してラダープログラム42を開発していく際に、上述のように、ラダー回路420を追加する度に階層構造160が定義し直されるため、容易に階層構造160を定義できる。
また、CPU102は、階層を考慮することなくラダー回路420を追加してもよい。図12は、階層を考慮しない挿入ルールの一例を示す図である。たとえば、CPU102は、選択したラダー回路420の階層を考慮することなく、選択したラダー回路420の一つ上に新たなラダー回路420を追加してもよい。CPU102は、階層を考慮しないため、親子情報480を追加する処理を実行しない。なお、CPU102は、上述したいずれかの挿入ルールに従ってラダー回路420を挿入する場合であっても、親子情報480を追加、または変更する処理を実行しなくともよい。
図13を参照して、テキスト情報460の作成ルールについて説明する。図13は、テキスト情報460の作成ルールの一例について説明するための図である。上述したように、作成部17は、所定のルールに従って新たなテキスト情報460を作成してもよい。たとえば、作成部17は、定義し直された階層構造160と、追加されたラダー回路420が属する階層のラダー回路420に対応するテキスト情報460とに基づいて、追加されたラダー回路420に対応するテキスト情報460を作成してもよい。
図13に示す例では、定義し直された階層構造160において、新たに追加されたラダー回路420は、回路1の子階層であって、子階層に含まれるラダー回路420の上から2番目に位置する。また、新たに追加されたラダー回路420が属する階層のラダー回路420(親のラダー回路420)に対応するテキスト情報460は、「回路1」である。この場合に、作成部17は、作成部17は、「回路1−2」というテキスト情報460を作成する。
定義し直された階層構造160と、追加されたラダー回路420が属する階層のラダー回路420に対応するテキスト情報460とに基づいて、追加されたラダー回路420に対応するテキスト情報460が作成されるため、新たに追加されたラダー回路420に対して、そのラダー回路420の階層を示したテキスト情報460を生成できる。
上記追加処理は、選択したラダー回路420をコピーして、貼り付ける(ペースト)場合に実行されてもよい。図14は、コピー・アンド・ペーストをした場合の画面遷移の一例である。貼り付け操作が受け付けられた場合、図7で示した追加処理が行われる。なお、貼り付け操作が受け付けられた場合には、新たに追加されたラダー回路420に対応するテキスト情報460は、元のテキスト情報460をコピーしたものであってもよく、また、作成部17によって新たに作成されてもよい。
なお、追加処理が行われた場合に、CPU102は、ラダー画面120および階層画面180上に追加した箇所を明示する目印を設けてもよい。
(g3.削除操作)
図15は、ラダー回路420を削除するときに実行される削除処理を示すフローチャートである。削除処理は、ラダー回路420を削除するための操作が受け付けられたときにCPU102によって行われる処理である。
S121において、CPU102は、削除ルールに従って削除対象を決定する。削除ルールは、設定情報450として予め記憶部101に格納されている。削除ルールは、サポートプログラム54を提供するベンダによって予め定められていてもよく、また、ユーザによって変更可能であってもよい。
S122において、CPU102は、位置情報440を更新する。より具体的には、削除対象のラダー回路420よりも順番が後のラダー回路420の位置情報440が更新される。
S123において、CPU102は、親子情報480を更新する。たとえば、CPU102は、削除対象のラダー回路420に応じて親子情報480を更新する。親子情報480の更新の一例については、図18を参照して後述する。
S124において、CPU102は、階層化処理を実行する。階層化処理は、ラダープログラム42に含まれる複数のラダー回路420の階層構造160を定義する処理である。階層化処理は、S122で更新された位置情報440とS123で更新された親子情報480とに基づいて実行される。階層化処理については、図21を参照して後述する。なお、削除処理において実行される階層化処理と、図7の追加処理において実行される階層化処理とは、共通の処理である。
S125において、CPU102は、テキスト情報460を更新する。本実施の形態において、テキスト情報460は、ラダー回路420の名称と、ラダー回路420の順番を示す情報とを含む。CPU102は、ラダー回路420の順番を示す情報を、S122において更新された後の位置情報440に基づいて更新する。
換言すると、上述した作成部17は、ラダー回路420が削除されたときに、更新された後の位置情報440に基づいて、テキスト情報460に含まれるラダー回路420の順番を示す情報を更新する。
S126において、CPU102は、S121〜S125の処理を実行することで更新した各種情報に基づいてラダー画面120の表示を更新する。
S127において、CPU102は、S121〜S125の処理を実行することで更新した各種情報に基づいて階層画面180の表示を更新して削除処理を終了する。
(g4.削除操作による画面遷移)
図16を参照して、削除操作による具体的な画面遷移を説明する。図16は、削除ルールの一例を示す図である。たとえば、ユーザは、操作部103を操作することで、カーソルPを動かし、階層画面180上の一または複数のテキスト情報460を選択できる。階層画面180上で一または複数のテキスト情報460を選択することで、選択したテキスト情報460に対応するラダー回路420が選択されたこととなる。図16に示す例では、一つのテキスト情報460が選択されている例を示すが、複数のテキスト情報460を選択できるようにしてもよい。
ラダー回路420が選択された状態で削除操作がされると、図15に示した削除処理が実行され、図16の左側に示した画面が右側に示した画面に遷移する。図16に示す例では、CPU102は、選択したラダー回路420を削除するという削除ルールに従ってラダー回路420を削除し、また、親子情報480の更新を行わないというルールに従ってS123の処理を実行する。その結果、ラダー画面120上の7行目以降のラダー回路420が繰り上がるとともに、テキスト情報460も更新される。また、親子情報480が更新されないため、削除対象である「回路2−1−2」が示すラダー回路420の子階層に含まれる「回路2−1−2−1」が示すラダー回路420が「回路2−1−1」が示すラダー回路420の子階層に含まれることになる。
なお、削除ルールは、図16に示したルールに限られない。図17は、削除ルールの他の例を示す図である。図17を参照して、CPU102は、選択したラダー回路420と、選択したラダー回路420の子階層に含まれるラダー回路420を削除対象に決定してもよい。より具体的には、図17を参照して、「回路2−1−2」が示すラダー回路420が選択された場合に、CPU102は、削除対象を、「回路2−1−2」が示すラダー回路420と、「回路2−1−2」が示すラダー回路420の子階層に定義されている「回路2−1−2−1」が示すラダー回路420とに決定してもよい。
このように、選択したラダー回路420と、選択したラダー回路420の子階層に含まれるラダー回路420が削除対象とされることで、一のラダー回路420を選択して複数のラダー回路420を削除できる。その結果、ラダープログラム42の編集が容易になり、開発する際の利便性が向上する。
また、図16に示した例では、親子情報480の更新を行わないものとした。なお、親子情報480を更新するようにしてもよい。図18は、親子情報480の更新ルールの一例を示す図である。たとえば、選択したラダー回路420の子階層にラダー回路420が含まれる場合に、CPU102は、子階層のラダー回路420の階層を一つ繰り上げるようにしてもよい。具体的には、CPU102は、図18に示すように、削除対象である「回路2−1−2」が示すラダー回路420の子階層に含まれる「回路2−1−2−1」が示すラダー回路420を、「回路2−1−2」が示すラダー回路420の親である「回路2−1」が示すラダー回路420の子階層に含めるように「回路2−1−2−1」が示すラダー回路420に入力された親子情報480を削除するようにしてもよい。
(g5.移動操作)
図19は、ラダー回路420を移動するときに実行される移動処理を示すフローチャートである。移動処理は、ラダー回路420を移動するための操作が受け付けられたときにCPU102によって行われる処理である。
S132において、CPU102は、位置情報440を更新する。より具体的には、CPU102は、移動対象のラダー回路420よりも順番が後であって、移動先よりも順番が前のラダー回路420の位置情報440を更新する。
S133において、CPU102は、親子情報480を更新する。たとえば、CPU102は、選択対象のラダー回路420を移動する前後で、選択対象以外のラダー回路420の親子関係が変化しないように親子情報480を更新する。CPU102は、選択対象のラダー回路420と、挿入先の前後に位置するラダー回路420との親子関係が予め定められたルールを満たすように親子情報480を更新する。たとえば、CPU102は、選択対象のラダー回路420が挿入先の前に位置するラダー回路420の子となるように親子情報480を更新する。なお、CPU102は、選択対象のラダー回路420が、挿入先の前または後ろに位置するラダー回路420と同じ階層となるように親子情報480を更新してもよい。
S134において、CPU102は、階層化処理を実行する。階層化処理は、ラダープログラム42に含まれる複数のラダー回路420の階層構造160を定義する処理である。階層化処理は、S132で更新された位置情報440とS133で更新された親子情報480とに基づいて実行される。階層化処理については、図21を参照して後述する。なお、移動処理において実行される階層化処理と、図7の追加処理において実行される階層化処理と、図15の削除処理において実行される階層化処理とは、互いに共通の処理である。
S135において、CPU102は、テキスト情報460を更新する。本実施の形態において、テキスト情報460は、ラダー回路420の名称と、ラダー回路420の順番を示す情報とを含む。CPU102は、ラダー回路420の順番を示す情報を、S132において更新された後の位置情報440に基づいて更新する。
換言すると、上述した作成部17は、ラダー回路420が移動されたときに、更新された後の位置情報440に基づいて、テキスト情報460に含まれるラダー回路420の順番を示す情報を更新する。
S136において、CPU102は、S132〜S135の処理を実行することで更新した各種情報に基づいてラダー画面120の表示を更新する。
S137において、CPU102は、S132〜S135の処理を実行することで更新した各種情報に基づいて階層画面180の表示を更新して削除処理を終了する。
(g6.移動操作による画面遷移)
図20を参照して、移動操作による具体的な画面遷移を説明する。図20は、移動操作による画面遷移の一例を示す図である。たとえば、ユーザは、操作部103を操作することで、カーソルPを動かし、階層画面180上の一または複数のテキスト情報460を選択できる。階層画面180上で一または複数のテキスト情報460を選択することで、選択したテキスト情報460に対応するラダー回路420が選択されたこととなる。図16に示す例では、一つのテキスト情報460が選択されている例を示すが、複数のテキスト情報460を選択できるようにしてもよい。
ラダー回路420が選択された状態で移動操作(ドラッグアンドドロップ)がされると、図19に示した移動処理が実行され、図20の左側に示した画面が右側に示した画面に遷移する。図20に示す例では、CPU102は、1行目の「回路1−1」が示すラダー回路420を7行目と8行目との間に挿入する。
CPU102は、1行目の「回路1−1」が示すラダー回路420を7行目と8行目との間に挿入することに伴って、2行目から7行目までのラダー回路420に対応するテキスト情報460を更新する。また、図19に示す例では、CPU102は、挿入先の前に位置するラダー回路420の子階層となるように、選択したラダー回路420に親子情報480を入力する。より具体的には、CPU102は、7行目のラダー回路420に「#####」という親子情報480を入力する。なお、移動対象のラダー回路420がわかるように、CPU102は、ラダー画面120上に目印124を設けてもよい。
<H.階層化処理>
図21は、階層構造160を定義するための階層化処理を示すフローチャートである。なお、図21に示す階層化処理は、一例であって、他の処理手順で階層構造160が定義されてもよい。また、図21に示す階層化処理は、上述した表示処理、追加処理、削除処理、および移動処理において実行される。なお、表示処理、追加処理、削除処理、および移動処理の各々で実行される階層化処理は共通の処理であってもよく、また、処理ごとに固有の階層化処理であってもよい。本実施の形態においては、表示処理、追加処理、削除処理、および移動処理の各々で実行される階層化処理は共通の処理であるとして説明する。
図21を参照して、S141において、CPU102は、1行目のラダー回路420を対象のラダー回路とする。
S142において、CPU102は、対象のラダー回路420に親子情報480が入力されているか否かを判定する。対象のラダー回路420に親子情報480が入力されていないと判定した場合(S142においてNO)、S144において、CPU102は、対象のラダー回路420を前のラダー回路420と同じ階層に設定する。
対象のラダー回路420に親子情報480が入力されていると判定した場合(S142においてYES)、S146において、対象のラダー回路420の階層の深さと、対象のラダー回路420の親となるラダー回路420を設定する。
たとえば、CPU102は、入力されている親子情報480が一番上の階層(第1階層目)を示している場合、対象のラダー回路420の階層を一番上の階層に設定する。一方、入力されている親子情報480が一番上の階層ではない場合(第2階層以下)、入力されている親子情報480に基づいて階層の深さを設定する。そして、CPU102は、位置情報440に基づいて、対象のラダー回路420よりも前のラダー回路420であって設定した深さの階層よりも一つ上の階層に設定されているラダー回路420のうち対象のラダー回路420と最も近いラダー回路420を親とする。
CPU102は、S144またはS146の処理を実行した後、S148において、位置情報440に基づいて、後ろにラダー回路420があるか否かを判定する。
CPU102は、後ろにラダー回路420があると判定した場合(S148においてYES)、S150において、対象のラダー回路420を一つ後ろのラダー回路420に変更して、S142〜S148の処理を実行する。
CPU102は、後ろにラダー回路420がないと判定するまで、S150を実行するとともにS142〜S148の処理を繰り返す。CPU102は、後ろにラダー回路420がないと判定した場合(S148においてNO)、階層化処理を終了する。
<I.子階層に含まれるラダー回路420の表示態様>
階層画面生成部18は、階層画面180を介して選択された一のラダー回路420の子階層に含まれるラダー回路420に対応するテキスト情報460を階層画面180上に表示したり、あるいは、省略したりすることができる。
図22は、省略表示と展開表示の一例を示す図である。階層画面生成部18は、たとえば、階層画面180上に省略表示と展開表示とを切り替えるためのタブ182を設ける。カーソルPでタブ182が選択されると、階層画面生成部18は、階層画面180上に子階層のラダー回路420に対応するテキスト情報460を表示したり(展開表示)、あるいは省略したり(省略表示)する。図22中の左側に示した画面は、展開表示中の画面の一例である。図22中の右側に示した画面は、省略表示中の画面の一例である。
図22においては、「回路2」の横に位置するタブ182が選択されると、「回路2」に対応するラダー回路420の子階層に位置するラダー回路420に対応するテキスト情報460である「4.回路2−1」、「5.回路2−1−2」、「6.回路2−1−2」、「7.回路2−1−2−1」が表示されたり、あるいは省略されたりする。なお、階層画面生成部18は、省略表示されていることを示すために、タブ182の形状を展開表示中の形状と省略表示中の形状とで異なるようにしてもよい。
なお、ラダー画面生成部12は、階層画面生成部18の省略表示と展開表示との切り替えに応じて、ラダー画面120上の表示を切り替えてもよい。図23は、省略表示と展開表示の他の例を示す図である。図23中の左側に示した画面は、展開表示中の画面の一例である。図22中の右側に示した画面は、省略表示中の画面の一例である。
ラダー画面生成部12は、図23中の右側に示すように、省略表示中に、階層画面180上で表示が省略されているテキスト情報460に対応するラダー回路420の表示をラダー画面120上で省略してもよい。このとき、ラダー画面生成部12は、縮小していること、および縮小している箇所を示す目印122をラダー画面120上に設けてもよい。
このような縮小表示と展開表示とを切り替える機能は、図22および図23に示すように、ラダー回路420の数が多いときに特に有効である。たとえば、ユーザは、縮小表示によりラダープログラム42の全体像を把握するとともに、展開表示に切り替えることでラダープログラム42を詳細に検討できる。
なお、ラダー画面生成部12は、ラダー画面120上にタブ182に相当するタブを設け、当該タブに対する操作に応じて省略表示と展開表示とを切り替えるようにしてもよい。この場合、階層画面生成部18は、ラダー画面120の省略表示と展開表示との切り替えに応じて、階層画面180の省略表示と展開表示とを切り替えてもよく、また、切り替えなくともよい。
<J.ラダー画面120上での階層構造160の表示>
ラダー画面生成部12は、各ラダー回路420の表示態様を変えることで定義部16が定義した階層構造160を表現したラダー画面120を生成してもよい。たとえば、ラダー画面生成部12は、一のラダー回路420と、一のラダー回路420の子階層に含まれるラダー回路420とで、各ラダー回路420を表示する領域の背景を異ならせたラダー画面120を生成してもよい。
図24は、階層構造160を表したラダー画面120の一例を示す図である。たとえば、ラダー画面生成部12は、一番上の階層(一階層目)のラダー回路420を表示する範囲の背景を背景Aとし、二階層目のラダー回路420を表示する範囲の背景を背景Bとし、3階層目のラダー回路420を表示する範囲の背景を背景Cとしてラダー画面120を生成してもよい。
ラダー回路420の表示態様を階層ごとに変更することで、階層画面180を確認しなくとも、ラダー画面120を確認するだけで、階層の区切りをユーザが容易に把握できる。
<K.第1領域142に表示されるラダー画面120の範囲の変更>
図25は、第1領域142に表示されるラダー画面120の範囲が変更される様子を示す図である。上述したように、表示部11は、階層画面180を介して一のテキスト情報460が選択された場合に、テキスト情報460に対応するラダー回路420がディスプレイ114の第1領域142内に表示されるようにラダー画面120の表示範囲を変更してもよい。
たとえば、図25を参照して、階層画面180上の一のテキスト情報460にカーソルPを合わせた状態で、特定の操作(たとえば、ダブルクリック)が受け付けられると、図25の右側に示すように、第1領域142に表示されるラダー画面120の表示範囲が変更される。図25に示す例では、表示部11は、階層画面180上の一のテキスト情報460が選択されて特定の操作が受け付けられると、選択されたテキスト情報460に対応するラダー回路420が第1領域142の最上部に位置するようにラダー画面120の表示範囲を変更する。
図25に示す例では、表示部11は、選択されたラダー回路420が第1領域142の最上部に位置するようにラダー画面120の表示範囲を変更するとした。なお、選択されたラダー回路420を表示する位置は、ラダー画面120の最上部に限らず、たとえば、第1領域142の真ん中、第1領域142の最下部など、第1領域142上のいずれの位置であってもよい。
たとえば、ラダープログラム42の開発が進み、多くのラダー回路420がラダープログラム42内に含まれる場合、ラダー画面120上から目的のラダー回路420を探し出すことは困難である。このような場合、ユーザは、ラダー回路420を作成しながらラダープログラム42の全体構造を任意に定義し、階層画面180上に定義した全体構造(階層構造160)を表示させておくことができる。階層画面180を介した操作によりラダー画面120の表示範囲を変更できるため、ユーザは、ラダー回路420が多くなった場合でも目的のラダー回路420を容易に探せる。
<L.部品化>
上述したように、部品化部19は、複数のラダー回路420を一の部品として部品情報430に登録する。より具体的には、部品化部19は、受付部14が、一のラダー回路420の選択を受け付けた場合に、選択されたラダー回路420および選択されたラダー回路420の子階層に含まれるすべてのラダー回路420を一の部品として部品情報430に登録する。
図26は、1または複数のラダー回路420を一の部品として登録する様子を示す図である。図26を参照して、「回路1」というテキスト情報460に対応するラダー回路420が選択された状態で部品化にかかる操作が受け付けられた場合、部品化部19は、「回路1」が示すラダー回路420および、「回路1」が示すラダー回路420の子階層に含まれる「回路1−1」と「回路1−2」とのラダー回路420をからなるプログラムを一の部品として部品情報430に登録する。
部品化にかかる操作が受け付けられると、図26の下に示すように、部品情報430として登録された1または複数のラダー回路420から構成されたプログラムが別ウィンドウで表示されてもよい。
国際規格IEC61131−3においては、プログラムやプロジェクトを構成するブロックは、POU(Program Organization Units)と称される。POUは、プログラム要素のまとまりの単位に相当する。すなわち、換言すると、部品化部19は、選択されたラダー回路420および選択されたラダー回路420の子階層に含まれるすべてのラダー回路420を一のPOUとして部品情報430に登録する。
こユーザは、ラダー画面120上でラダー回路420を追加したり、削除したりしながら、ラダープログラム42の開発を進める。本実施の形態においては、ラダー画面120を介して親子情報480の入力が受け付けられることから、ユーザは、任意の階層構造160をラダープログラム42の開発を進めながら定義できる。そして、ユーザが任意に定義した階層構造160のうち、一の階層に含まれるすべてのラダー回路420を一の部品として登録できる。すなわち、ユーザは、階層構造160を任意に定義しながら、再利用できる部品の作成も同時にできることとなる。
<M.呼出命令の階層化表示>
ラダープログラム42は、別のPOUを呼び出す1または複数の呼出命令を含む。階層画面生成部18は、呼出命令を含むラダー回路420の子階層に呼出命令によって呼び出されるPOUが含まれるように階層画面180を生成する。
図27は、POUを呼出元のラダー回路の子階層として表示した画面の一例を示す図である。図27に示す「回路1」が示すラダー回路420は、「Function0」という名称のPOUの一例であるファンクションを呼び出す呼出命令425を含む。図27に示す「回路1−1」が示すラダー回路420は、「FunctionBlock0」という名称のPOUの一例であるファンクションブロックを呼び出す呼出命令425を含む。
この場合に、図27を参照して、階層画面生成部18は、「回路1」の子階層に「Function0」のPOUが含まれており、「回路1−1」の子階層に「FunctionBlock0」のPOUが含まれているように階層画面180を生成する。
このように、階層画面180上にラダー回路420に含まれる呼出命令425が、当該ラダー回路420の子階層として表示されることで、各ラダー回路420でどのようなPOUが呼び出されるかを階層画面180上に表示できる。
<N.階層化ルールの変形例>
上記実施の形態においては、対象のラダー回路420に親子情報480が入力されているか否かに応じて、対象のラダー回路420の前のラダー回路420と、対象のラダー回路420との間で階層が変わる例を示した。なお、上記実施の形態に示した階層化のルールは、一例であって、上記実施の形態に示したルールに限られない。
図28および図29を参照して、ラダー回路420の階層化ルールの変形例について説明する。図28は、変形例にかかる階層化処理を示すフローチャートである。図29は、変形例にかかる階層化処理に従って定義された階層構造160の一例を示す図である。
変形例にかかる階層化処理は、図21に示した階層化処理と比較して、S144に代えて、S143,S145,S147を実行する点で上記実施の形態に示した階層化処理と異なる。以下、上記実施の形態と異なる点を中心に説明する。
CPU102は、対象のラダー回路420に親子情報480が入力されていないと判定した場合(S142においてNO)、S143,S145,およびS147の処理を実行する。
S143において、CPU102は、一つ前のラダー回路420に親子情報480が入力されているか否かを判定する。なお、一つ前のラダー回路420は、位置情報440に基づいて特定される。
CPU102は、一つ前のラダー回路420に親子情報480が入力されていないと判定した場合(S143においてNO)、S145において、対象のラダー回路420を前のラダー回路420と同じ階層に設定する。
CPU102は、一つ前のラダー回路420に親子情報480が入力されていると判定した場合(S143においてYES)、S147において、対象のラダー回路420を前のラダー回路420の子階層に設定する。
すなわち、変形例にかかる階層化ルールに従うと、親子情報480の入力に基づいて階層の深さと親のラダー回路420が設定される(S146)。たとえば、図29に示すように、「#」の数により階層の深さが設定されることになり、「#」が1つ入力された「回路1」、「回路2」、および「回路3」は、一番上の階層(第1階層目)に設定される。また、「#」が2つ入力された「回路2−1」、および「回路3−1」は、第2階層目に設定される。
変形例にかかる階層化ルールに従うと、親子情報480が入力されたラダー回路420の次に記載されたラダー回路420が、親子情報480が入力されたラダー回路420の子階層に設定される(S147)。たとえば、図29に示すように、「#」が1つ入力された「回路1」の次の「回路1−1」は、「回路1」の子階層に設定される。
また、変形例にかかる階層化ルールに従うと、上下に位置するラダー回路420のいずれにも親子情報480が入力されていなければ、上下に位置するラダー回路420は、いずれも同じ階層に設定される(S145)。たとえば、図29に示すように、「#」が入力されていない「回路1−1」と「回路1−2」とは、いずれも同じ階層に設定される。
なお、階層化ルールは、一例であって、上記実施の形態に示したルール、および変形例に示したルールに限らず、任意のルールを設定することができる。
<O.付記>
以上のように、上記の実施の形態および変形例は以下のような技術思想を含む。
(構成1)
ラダープログラム(42)を表示する情報処理装置(10)であって、
前記ラダープログラム(42)を複数のラダー回路(420)を含む回路態様で表示するためのラダー画面(120)を生成するラダー画面生成部(12)を備え、
ラダー画面には、複数の前記ラダー回路(420)が表示されるとともに、前記ラダー回路(420)ごとに登録されたテキスト情報(460)が対応する前記ラダー回路(420)に対応して表示され、
前記ラダー画面(120)に対する操作に応じて、一の前記ラダー回路(420)と他の前記ラダー回路(420)との親子関係を示す親子情報(480)の入力を受け付ける受付部(14)と、
前記受付部(14)が受け付けた前記親子情報(480)に基づいて、前記ラダープログラム(42)に含まれる複数の前記ラダー回路(420)の階層構造(160)を定義する定義部(16)と、
前記定義部(16)が定義した前記階層構造(160)を前記テキスト情報(460)で表示するための階層画面(180)を生成する階層画面生成部(18)とをさらに備える、情報処理装置。
(構成2)
前記階層画面(180)に含まれる前記テキスト情報(460)の各々は、対応する前記ラダー回路(420)の前記ラダー画面(120)上における位置を示す位置情報(440)に関連付けられており、
前記階層画面(180)を介して前記テキスト情報(460)が選択されたことに応じて、前記ラダー画面(120)を表示する領域(142、114)内に、選択された前記テキスト情報(460)に対応する前記ラダー回路(420)が表示される、構成1に記載の情報処理装置。
(構成3)
前記定義部(18)は、
前記ラダー回路(420)の前記ラダー画面(120)上における位置を示す位置情報(440)と前記親子情報(480)とに基づいて前記階層構造(160)を定義し、
前記位置情報(440)の変更が受け付けられたことに応じて前記階層構造(160)を定義し直す(S114,S124,S134)、構成1に記載の情報処理装置。
(構成4)
前記受付部(14)は、前記階層画面(180)に対する操作に応じて前記位置情報(440)の変更を受け付ける、構成3に記載の情報処理装置。
(構成5)
前記定義部(16)は、一の前記ラダー回路(420)が選択された状態で前記ラダー回路(420)の追加操作がされた場合に、予め定められた追加ルールと選択された前記ラダー回路(420)の階層とに基づいて前記階層構造(160)を定義し直す(S111〜S114)、構成3または構成4に記載の情報処理装置。
(構成6)
前記テキスト情報(460)の編集または作成を行う作成部(17)をさらに備え、
前記作成部(17)は、前記ラダー回路(420)が追加されたことに応じて前記位置情報(440)の変更が受け付けられた場合に(S112)、定義し直された前記階層構造(160)と、追加された前記ラダー回路(420)が属する階層の前記ラダー回路(420)に対応する前記テキスト情報(460)とに基づいて、追加された前記ラダー回路(420)に対応する前記テキスト情報(460)を作成する(S115)、構成3または構成4に記載の情報処理装置。
(構成7)
一の前記ラダー回路(420)が選択された状態で前記ラダー回路(420)の削除操作がされた場合、選択された前記ラダー回路(420)と、選択された前記ラダー回路(420)の子階層に含まれる前記ラダー回路(420)とが削除される(S121)、構成3または構成4に記載の情報処理装置。
(構成8)
前記受付部(14)は、一の前記ラダー回路(420)の選択を受け付けるとともに、選択された前記ラダー回路(420)および、選択された前記ラダー回路(420)の子階層に含まれる前記ラダー回路(420)を一の管理単位の部品(430)として受け付ける、構成1に記載の情報処理装置。
(構成9)
前記ラダー画面生成部(12)は、前記ラダー回路(420)が選択された場合に、選択された前記ラダー回路(420)の子階層に含まれる前記ラダー回路(420)を省略した前記ラダー画面(120)を生成する、構成1に記載の情報処理装置。
(構成10)
前記階層画面生成部(18)は、前記ラダー回路(420)が選択された場合に、選択された前記ラダー回路(420)の子階層に含まれる前記ラダー回路(420)に対応する前記テキスト情報(460)を省略した前記階層画面(180)を生成する、構成1に記載の情報処理装置。
(構成11)
前記ラダー画面生成部(12)は、前記定義部(16)が定義した前記階層構造(160)に基づいて、同じ階層に含まれる前記ラダー回路と異なる階層に含まれる前記ラダー回路とを互いに異なる表示態様(A,B,C)で表示した前記ラダー画面(120)を生成する、構成1に記載の情報処理装置。
(構成12)
前記ラダープログラム(42)は、プログラム要素のまとまりから構成されたブロックを呼び出す1または複数の呼出命令(425)を含み、
前記階層画面生成部(18)は、前記呼出命令(425)を含む前記ラダー回路(420)の子階層に前記呼出命令(425)によって呼び出される前記ブロックが含まれるように前記階層画面(180)を生成する、構成1に記載の情報処理装置。
(構成13)
ラダープログラム(42)を表示するためのプログラム(54)であって、
前記ラダープログラム(42)を複数のラダー回路(420)を含む回路態様で表示するためのラダー画面(120)を生成するステップ(S101)を含み、
前記ラダー画面(120)には、複数の前記ラダー回路(420)が表示されるとともに、前記ラダー回路(420)ごとに登録されたテキスト情報(460)が対応する前記ラダー回路(420)に対応して表示され、
前記ラダー画面(120)に対する操作に応じて、一の前記ラダー回路(420)と他の前記ラダー回路(420)との親子関係を示す親子情報(480)の入力を受け付けるステップ(S102)と、
受け付けられた前記親子情報(480)に基づいて、前記ラダープログラム(42)に含まれる複数の前記ラダー回路(420)の階層構造(160)を定義するステップ(S104)と、
定義された前記階層構造(160)を前記テキスト情報(460)で表示するための階層画面(180)を生成するステップ(S105)とをさらに含む、サポートプログラム。
(構成14)
構成13に記載のサポートプログラム(54)を格納した非一時的なコンピュータ可読媒体(8,104,108)。
(構成15)
ラダープログラム(42)を複数のラダー回路(420)を含む回路態様で表示するためのラダー画面(120)を生成するステップ(S101)を含み、
前記ラダー画面(120)には、複数の前記ラダー回路(420)が表示されるとともに、前記ラダー回路(420)ごとに登録されたテキスト情報(460)が対応する前記ラダー回路(420)に対応して表示され、
前記ラダー画面(120)に対する操作に応じて、一の前記ラダー回路(420)と他の前記ラダー回路(420)との親子関係を示す親子情報(480)の入力を受け付けるステップ(S102)と、
受け付けられた前記親子情報(480)に基づいて、前記ラダープログラム(42)に含まれる複数の前記ラダー回路(420)の階層構造(160)を定義するステップ(S104)と、
定義された前記階層構造(160)を前記テキスト情報(460)で表示するための階層画面(180)を生成するステップ(S105)とをさらに含む、ラダープログラムを表示するための方法。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1 制御システム、8 光学記録媒体、10 サポート装置、11 表示部、12 ラダー画面生成部、14 受付部、15 エディタ、16 定義部、17 作成部、18 階層画面生成部、19 部品化部、20 CPUユニット、21 システムバス、22 電源ユニット、24 I/Oユニット、42 ラダープログラム、52 オブジェクト情報、54 サポートプログラム、101 記憶部、102 CPU、103 操作部、104 ROM、106 RAM、108 HDD、110 キーボード、112 マウス、114 ディスプレイ、116 光学記録媒体読取装置、118 通信インターフェイス、120 ラダー画面、122 目印、140 ユーザインターフェイス画面、142 第1領域、144 第2領域、146 切替ボタン、148 スクロールバー、160 階層構造、180 階層画面、182 タブ、420 ラダー回路、421 入力側母線、422 出力側母線、423 接点、424 コイル、425 呼出命令、430 部品情報、440 位置情報、450 設定情報、460 テキスト情報、480 親子情報、P カーソル。

Claims (13)

  1. ラダープログラムを表示する情報処理装置であって、
    前記ラダープログラムを複数のラダー回路を含む回路態様で表示するためのラダー画面を生成するラダー画面生成部を備え、
    前記ラダー画面には、複数の前記ラダー回路が表示されるとともに、前記ラダー回路ごとに登録されたテキスト情報が対応する前記ラダー回路に対応して表示され、
    前記ラダー画面に対する操作に応じて、一の前記ラダー回路と他の前記ラダー回路との親子関係を示す親子情報の入力を受け付ける受付部と、
    前記受付部が受け付けた前記親子情報に基づいて、前記ラダープログラムに含まれる複数の前記ラダー回路の階層構造を定義する定義部と、
    前記定義部が定義した前記階層構造を前記テキスト情報で表示するための階層画面を生成する階層画面生成部とをさらに備える、情報処理装置。
  2. 前記階層画面に含まれる前記テキスト情報の各々は、対応する前記ラダー回路の前記ラダー画面上における位置を示す位置情報に関連付けられており、
    前記階層画面を介して前記テキスト情報が選択されたことに応じて、前記ラダー画面を表示する領域内に、選択された前記テキスト情報に対応する前記ラダー回路が表示される、請求項1に記載の情報処理装置。
  3. 前記定義部は、
    前記ラダー回路の前記ラダー画面上における位置を示す位置情報と前記親子情報とに基づいて前記階層構造を定義し、
    前記位置情報の変更が受け付けられたことに応じて前記階層構造を定義し直す、請求項1に記載の情報処理装置。
  4. 前記受付部は、前記階層画面に対する操作に応じて前記位置情報の変更を受け付ける、請求項3に記載の情報処理装置。
  5. 前記定義部は、一の前記ラダー回路が選択された状態で前記ラダー回路の追加操作がされた場合に、予め定められた追加ルールと選択された前記ラダー回路の階層とに基づいて前記階層構造を定義し直す、請求項3または請求項4に記載の情報処理装置。
  6. 前記テキスト情報の編集または作成を行う作成部をさらに備え、
    前記作成部は、前記ラダー回路が追加されたことに応じて前記位置情報の変更が受け付けられた場合に、定義し直された前記階層構造と、追加された前記ラダー回路が属する階層の前記ラダー回路に対応する前記テキスト情報とに基づいて、追加された前記ラダー回路に対応する前記テキスト情報を作成する、請求項3または請求項4に記載の情報処理装置。
  7. 一の前記ラダー回路が選択された状態で前記ラダー回路の削除操作がされた場合、選択された前記ラダー回路と、選択された前記ラダー回路の子階層に含まれる前記ラダー回路とが削除される、請求項3または請求項4に記載の情報処理装置。
  8. 前記受付部は、一の前記ラダー回路の選択を受け付けるとともに、選択された前記ラダー回路および、選択された前記ラダー回路の子階層に含まれる前記ラダー回路を一の管理単位の部品として受け付ける、請求項1に記載の情報処理装置。
  9. 前記ラダー画面生成部は、前記ラダー回路が選択された場合に、選択された前記ラダー回路の子階層に含まれる前記ラダー回路を省略した前記ラダー画面を生成する、請求項1に記載の情報処理装置。
  10. 前記階層画面生成部は、前記ラダー回路が選択された場合に、選択された前記ラダー回路の子階層に含まれる前記ラダー回路に対応する前記テキスト情報を省略した前記階層画面を生成する、請求項1に記載の情報処理装置。
  11. 前記ラダー画面生成部は、前記定義部が定義した前記階層構造に基づいて、同じ階層に含まれる前記ラダー回路と異なる階層に含まれる前記ラダー回路とを互いに異なる表示態様で表示した前記ラダー画面を生成する、請求項1に記載の情報処理装置。
  12. 前記ラダープログラムは、プログラム要素のまとまりから構成されたブロックを呼び出す1または複数の呼出命令を含み、
    前記階層画面生成部は、前記呼出命令を含む前記ラダー回路の子階層に前記呼出命令によって呼び出される前記ブロックが含まれるように前記階層画面を生成する、請求項1に記載の情報処理装置。
  13. ラダープログラムを表示するためのプログラムであって、
    前記ラダープログラムを複数のラダー回路を含む回路態様で表示するためのラダー画面を生成するステップを含み、
    前記ラダー画面には、複数の前記ラダー回路が表示されるとともに、前記ラダー回路ごとに登録されたテキスト情報が対応する前記ラダー回路に対応して表示され、
    前記ラダー画面に対する操作に応じて、一の前記ラダー回路と他の前記ラダー回路との親子関係を示す親子情報の入力を受け付けるステップと、
    受け付けられた前記親子情報に基づいて、前記ラダープログラムに含まれる複数の前記ラダー回路の階層構造を定義するステップと、
    定義された前記階層構造を前記テキスト情報で表示するための階層画面を生成するステップとをさらに含む、ラダープログラムを表示するためのプログラム。
JP2020055649A 2020-03-26 2020-03-26 情報処理装置およびラダープログラムを表示するためのプログラム Active JP7380376B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020055649A JP7380376B2 (ja) 2020-03-26 2020-03-26 情報処理装置およびラダープログラムを表示するためのプログラム
PCT/JP2020/047226 WO2021192456A1 (ja) 2020-03-26 2020-12-17 情報処理装置およびラダープログラムを表示するためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020055649A JP7380376B2 (ja) 2020-03-26 2020-03-26 情報処理装置およびラダープログラムを表示するためのプログラム

Publications (2)

Publication Number Publication Date
JP2021157382A true JP2021157382A (ja) 2021-10-07
JP7380376B2 JP7380376B2 (ja) 2023-11-15

Family

ID=77891203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020055649A Active JP7380376B2 (ja) 2020-03-26 2020-03-26 情報処理装置およびラダープログラムを表示するためのプログラム

Country Status (2)

Country Link
JP (1) JP7380376B2 (ja)
WO (1) WO2021192456A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086118A (ja) * 2009-10-15 2011-04-28 Yokogawa Electric Corp プログラム入力装置
WO2014136240A1 (ja) 2013-03-07 2014-09-12 三菱電機株式会社 ラダープログラム表示プログラムおよびラダープログラム表示装置
JP6079817B2 (ja) 2015-04-21 2017-02-15 株式会社安川電機 ラダープログラム作成装置、コンピュータープログラム及びラダープログラム作成方法

Also Published As

Publication number Publication date
JP7380376B2 (ja) 2023-11-15
WO2021192456A1 (ja) 2021-09-30

Similar Documents

Publication Publication Date Title
US6931288B1 (en) User interface and system for creating function block diagrams
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
CN112579050A (zh) 基于任务的配置呈现背景
EP3465426B1 (en) User interface with movable mini-tabs
JP5921765B2 (ja) プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム
CN105074587A (zh) 系统开发装置、方法以及程序
JP5785130B2 (ja) プログラム生成装置
CN110765028A (zh) 验证环境的可视化搭建方法、装置及存储介质
JP7067520B2 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
WO2021192456A1 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
EP4343468A1 (en) Development assistance device, control method for development assistance device, information processing program, and recording medium
JP4476223B2 (ja) 画面データ作成装置、画面データの編集方法及び画面データ編集プログラム
KR101726120B1 (ko) 프로그램 편집 장치, 프로그램 편집 방법 및 프로그램 편집 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN112292659A (zh) 通过从语义变焦增强用户接口调用开发工具来从控制计算机编写装置的代码
JP2012168900A (ja) プログラミング装置、プログラム
JP2017102872A (ja) 開発装置、開発システム、およびプログラム
CN111506306A (zh) 一种Ansible剧本编写方法、装置和电子设备
JP2021082031A (ja) プログラム作成支援装置
JP2011192088A (ja) Plcのプログラム開発支援装置
JP2020017225A (ja) 情報処理装置および表示プログラム
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
WO2022190417A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
JP7180524B2 (ja) プログラム編集装置、プログラム編集方法、および、プログラム編集プログラム
KR102228241B1 (ko) 웹 상에서의 가상 입력 방법 및 시스템
JP2016014951A (ja) 情報処理装置及び情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231016

R150 Certificate of patent or registration of utility model

Ref document number: 7380376

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150