IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2024-90201プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
<>
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図1
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図2
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図3
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図4
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図5
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図6
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図7
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図8
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図9
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図10
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図11
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図12
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図13
  • 特開-プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024090201
(43)【公開日】2024-07-04
(54)【発明の名称】プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20240627BHJP
【FI】
G05B19/05 B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022205928
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100155712
【弁理士】
【氏名又は名称】村上 尚
(72)【発明者】
【氏名】長尾 健次郎
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA04
5H220AA06
5H220BB15
5H220CC07
5H220CX02
5H220CX06
5H220DD04
5H220GG03
5H220JJ12
5H220JJ22
5H220JJ24
5H220JJ42
(57)【要約】
【課題】ラダープログラムのより効率的な問題調査を実現する。
【解決手段】記憶部(50)からラダープログラム(51)を読み出して、所要の回路に対応するラダー図を含む、表示装置(3)に表示可能な画像を生成する表示処理部(12)を備え、表示処理部(12)は、当該画像に含まれる回路に関する操作者のコメントを受け付け、当該画像に当該コメントを付加した新たな画像を生成して、表示装置(3)に表示させる、プログラム作成支援装置。
【選択図】図1
【特許請求の範囲】
【請求項1】
ラダープログラムの作成を支援するプログラム作成支援装置であって、
前記ラダープログラムを記憶する記憶部と、
前記記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理部と、を備え、
前記表示処理部は、
前記表示処理部が前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けて、
当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる、プログラム作成支援装置。
【請求項2】
前記ラダープログラムを実行する制御装置において前記ラダープログラムを実行させたときの、接点およびコイルを含むプログラム要素の状態を模擬するシミュレーション実行部を更に備え、
前記表示処理部は、
前記画像に含まれる前記ラダー図におけるそれぞれの接点およびコイルについて、導通状態または非導通状態のいずれの状態であるかを表すように前記画像を生成する、請求項1に記載のプログラム作成支援装置。
【請求項3】
前記コメントは、前記回路の前記コイルの状態に関するコイル状態コメントを含み、
前記表示処理部は、
前記コイル状態コメントについての、前記コイルの状態が異常である旨の前記操作者による入力を受け付けると、
当該コイルを含む前記回路における前記接点のうちから、当該コイルの状態を定めている接点を選択し、
これら選択された接点それぞれに関する前記操作者による接点状態コメントを受け付けるための接点状態コメント受付ボックスを付加した新たな画像を生成して、前記表示装置に表示させる、請求項2に記載のプログラム作成支援装置。
【請求項4】
前記表示処理部は、
選択された前記接点のうちの第1接点について、前記第1接点の状態が正常であると判断できない旨の前記操作者による入力を受け付けると、
前記第1接点に相応するコイルを有する回路に対応するラダー図を追加した新たな画像を生成して、前記表示装置に表示させる、請求項3に記載のプログラム作成支援装置。
【請求項5】
前記表示処理部は、
前記表示処理部が前記表示装置に表示させた画像に含まれる第1の回路のラダー図に表された前記接点のうちから、展開する第1の接点を選択する、操作者の指示を検出し、
前記第1の接点の状態を定めるコイルが記述された第2の回路を特定し、
当該画像に、前記第2の回路のラダー図を追加した新たな画像を生成して、前記表示装置に表示させる、請求項2に記載のプログラム作成支援装置。
【請求項6】
前記表示処理部は、
前記表示処理部が前記表示装置に表示させた画像に含まれる複数の回路のそれぞれに対応するラダー図のうちから、消去する特定のラダー図を選択する、操作者の指示を検出し、
当該画像から、当該特定のラダー図を削除した新たな画像を生成して、前記表示装置に表示させる、請求項5に記載のプログラム作成支援装置。
【請求項7】
前記表示処理部は、
前記画像に含まれる複数の回路の依存関係を示す、プログラム要素のシンボルを用いたツリー構造グラフを当該画像中に含むように前記画像を生成する、請求項5に記載のプログラム作成支援装置。
【請求項8】
前記表示処理部は、
前記表示処理部の生成した前記画像を、操作者の指示に従って前記記憶部にデータとして記憶する請求項1から7のいずれか1項に記載のプログラム作成支援装置。
【請求項9】
ラダープログラムの作成を支援するプログラム作成支援装置の制御方法であって、
前記ラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理ステップを含み、
前記表示処理ステップにおいて、
前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けるコメント受付ステップと、
当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる表示ステップと、を実行することを特徴とするプログラム作成支援装置の制御方法。
【請求項10】
ラダープログラムの作成を支援するプログラム作成支援装置の制御プログラムであって、
前記ラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理ステップを含み、
前記表示処理ステップにおいて、
前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けるコメント受付ステップと、
当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる表示ステップと、を実行することを特徴とするプログラム作成支援装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ラダープログラムの作成を支援するプログラム作成支援装置等に関する。
【背景技術】
【0002】
プログラマブルロジックコントローラ(PLC)による入力または出力デバイスのシーケンス制御の方法は、一例として、ラダー言語で記述されるラダー図で規定されることがある。ラダー図は、間隔を空けて描かれた、動力を表現する2つの母線(左母線及び右母線)を結ぶようにして、接点およびコイルで表現される論理回路が梯子状に描かれた構成を有している。
【0003】
従来、上記ラダー図は物理的なリレー回路を論理回路として示すために用いられてきた。一方、近年このラダー図にて規定するシーケンス制御をプログラムデータ(以下、ラダープログラムと称する)として保存および編集するプログラム作成支援装置が開発されている。プログラム作成支援装置は、ラダープログラムに対応するラダー図を表示装置等に表示させる。
【0004】
例えば、下記特許文献1には、ラダー図から、操作者が指定した検索対象ブロックに含まれる接点に対応する入力装置を開閉する出力装置を有する回路ブロックを検索する技術が開示されている。特許文献1に開示された技術では、該検索を繰り返して各ブロックの階層関係を特定および表示することで、ラダー図の可視性を向上させることができる。また、シーケンス制御を実行したときの、ラダープログラムのプログラム要素とその導通状態とを表示部に表示させることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2016-004414号公報(2016年1月12日公開)
【発明の概要】
【発明が解決しようとする課題】
【0006】
ラダープログラムの一部、又はラダープログラムに従って動作する装置の一部に問題がある場合、その原因を特定するためにプログラム作成支援装置の操作者(調査者)は、関係するプログラム要素を遡って調査する必要があった。しかし、ラダープログラムにおいてプログラム要素の依存関係は複雑に分岐しているため、原因の特定は容易ではなく、問題調査(デバッグ)をより効率的に行えるプログラム作成支援装置が望まれていた。
【0007】
本発明の一態様は、ラダープログラムのより効率的な問題調査(デバッグ)を実現できるプログラム作成支援装置を実現することを目的とする。
【課題を解決するための手段】
【0008】
すなわち、本発明の一側面に係るプログラム作成支援装置は、前記ラダープログラムを記憶する記憶部と、前記記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理部と、を備え、前記表示処理部は、前記表示処理部が前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けて、当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる。
【0009】
上記構成によれば、調査者が調査内容を回路ごとに記録し、調査経過の記録及び調査結果の共有を容易にすることが実現される。
【0010】
上記一側面に係るプログラム作成支援装置において、接点およびコイルを含むプログラム要素の状態を模擬するシミュレーション実行部を更に備え、前記表示処理部は、前記画像に含まれる前記ラダー図におけるそれぞれの接点およびコイルについて、導通状態または非導通状態のいずれの状態であるかを表すように前記画像を生成する、構成を有していてもよい。
【0011】
上記構成によれば、ラダープログラムの導通状態が正常かどうかを操作者が回路ごとに確認し、問題箇所の特定を容易にすることが実現される。
【0012】
上記一側面に係るプログラム作成支援装置において、前記回路の前記コイルの状態に関するコイル状態コメントを含み、前記表示処理部は、前記コイル状態コメントについての、前記コイルの状態が異常である旨の前記操作者による入力を受け付けると、当該コイルを含む前記回路における前記接点のうちから、当該コイルの状態を定めている接点を選択し、これら選択された接点それぞれに関する前記操作者による接点状態コメントを受け付けるための接点状態コメント受付ボックスを付加した新たな画像を生成して、前記表示装置に表示させる、構成を有していてもよい。
【0013】
上記構成によれば、ラダープログラムに存在する問題を発見するために、調査者が関連するプログラム要素を簡単な操作により遡って確認できることが実現される。
【0014】
上記一側面に係るプログラム作成支援装置において、選択された前記接点のうちの第1接点について、前記第1接点の状態が正常であると判断できない旨の前記操作者による入力を受け付けると、前記第1接点に相応するコイルを有する回路に対応するラダー図を追加した新たな画像を生成して、前記表示装置に表示させる、構成を有していてもよい。
【0015】
上記構成によれば、ラダープログラムに存在する問題を発見するために、調査者が簡単な操作により関連するプログラム要素を遡って確認できることが実現される。
【0016】
上記一側面に係るプログラム作成支援装置において、前記表示処理部が前記表示装置に表示させた画像に含まれる第1の回路のラダー図に表された前記接点のうちから、展開する第1の接点を選択する、操作者の指示を検出し、前記第1の接点の状態を定めるコイルが記述された第2の回路を特定し、当該画像に、前記第2の回路のラダー図を追加した新たな画像を生成して、前記表示装置に表示させる、構成を有していてもよい。
【0017】
上記構成によれば、ラダープログラムに存在する問題を発見するために、調査者が簡単な操作により関連するプログラム要素を遡って確認できることが実現される。
【0018】
上記一側面に係るプログラム作成支援装置において、前記表示処理部が前記表示装置に表示させた画像に含まれる複数の回路のそれぞれに対応するラダー図のうちから、消去する特定のラダー図を選択する、操作者の指示を検出し、当該画像から、当該特定のラダー図を削除した新たな画像を生成して、前記表示装置に表示させる、構成を有していてもよい。
【0019】
上記構成によれば、ラダープログラムに存在する問題を発見するために不要な情報を表示装置簡単に除外し、調査を容易にすることが実現される。
【0020】
上記一側面に係るプログラム作成支援装置において、前記画像に含まれる複数の回路の依存関係を示す、プログラム要素のシンボルを用いたツリー構造グラフを当該画像中に含むように前記画像を生成する、構成を有していてもよい。
【0021】
上記構成によれば、調査者がラダープログラムの構造を理解し、問題箇所の特定を容易にすることが実現される。
【0022】
上記一側面に係るプログラム作成支援装置において、前記表示処理部の生成した前記画像を、操作者の指示に従って前記記憶部にデータとして記憶する構成を有していてもよい。
【0023】
上記構成によれば、調査者が確認した内容を報告書又はデータとして利活用することが実現される。
【0024】
本発明の一側面に係るプログラム作成支援装置の制御方法は、前記ラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理ステップを含み、前記表示処理ステップにおいて、前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けるコメント受付ステップと、当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる表示ステップと、を有していてもよい。
【0025】
上記構成によれば、調査者が調査内容を回路ごとに記録し、調査経過の記録及び調査結果の共有を容易にすることが実現される。
【0026】
本発明の一側面に係るプログラム作成支援装置の制御プログラムは、前記ラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して、所要の回路に対応するラダー図を含む、表示装置に表示可能な画像を生成する表示処理ステップを含み、前記表示処理ステップにおいて、前記表示装置に表示させた画像に含まれる前記回路に関する操作者のコメントを受け付けるコメント受付ステップと、当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる表示ステップと、を有していてもよい。
【0027】
上記構成によれば、調査者が調査内容を回路ごとに記録し、調査経過の記録及び調査結果の共有を容易にすることが実現される。
【0028】
本発明の各態様に係るプログラム作成支援装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記プログラム作成支援装置が備える各部(ソフトウェア要素)として動作させることにより前記プログラム作成支援装置をコンピュータにて実現させるプログラム作成支援装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0029】
本発明の一態様によれば、ラダープログラムにおける問題調査をスムーズにすることが実現される。
【図面の簡単な説明】
【0030】
図1】本発明の実施形態1に係るプログラム作成支援装置1に含まれる装置の要部構成を示すブロック図である。
図2】本発明の実施形態1に係るプログラム作成支援装置1の全体の処理の流れの一例を示すフローチャートである。
図3】本発明の実施形態1に係るラダー図の一例である。
図4】本発明の実施形態1に係るデバッグ表示の一例を示した画面図である。
図5】本発明の実施形態2に係る処理の流れの一例を示したフローチャートである。
図6】本発明の実施形態2に係るラダー図の展開表示前の画面の一例を示す画面図である。
図7】本発明の実施形態2に係る表示変更操作を行った場合の画面図である。
図8】本発明の実施形態2に係るラダー図の展開表示後の画面の一例を示す画面図である。
図9】本発明の実施形態2に係るラダー図の削除表示前の画面の一例を示す画面図である。
図10】本発明の実施形態2に係る表示変更操作を行った場合の画面図である。
図11】本発明の実施形態2に係るラダー図の削除表示後の画面の一例を示す画面図である。
図12】本発明の実施形態2に係るラダー図の非表示処理前の画面の一例を示す画面図である。
図13】本発明の実施形態2に係る表示変更操作を行った場合の画面図である。
図14】本発明の実施形態2に係るラダー図の非表示処理後の画面の一例を示す画面図である。
【発明を実施するための形態】
【0031】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
【0032】
§1 適用例
図1は、本実施形態に係るプログラム作成支援装置1に含まれる装置の要部構成を示すブロック図である。管理システム100は、図示しないデバイスと、前記デバイスを集中管理するプログラマブルロジックコントローラ(PLC)2と、前記デバイスの接続関係と稼働状態をモニタするプログラム作成支援装置1とを含む。
【0033】
プログラム作成支援装置1は、ラダープログラム51を記憶する記憶部50と、記憶部50から前記ラダープログラム51を読み出して、所要の回路に対応するラダー図を含む、表示装置3に表示可能な画像を生成する表示処理部12とを備える。
【0034】
操作者が、前記表示装置3に表示された画像に含まれる回路に関して、プログラム作成支援装置1にコメントを入力した場合、表示処理部12は、当該コメントを受け付けて、当該画像に当該コメントを付加した新たな画像を生成して、前記表示装置に表示させる。本実施形態によれば、調査者が調査内容を回路ごとに記録し、調査経過の記録、確認及び調査結果の共有を容易にすることが実現される。
【0035】
§2 構成例
〔実施形態1〕
以下、本発明の第1実施形態について、図1~4を用いて詳細に説明する。本発明は、プログラム作成支援装置1に関する。プログラム作成支援装置1は、一例として、工場等に設置される生産設備を集中管理するFA(factory automation)システムに関する。本発明は、各種生産設備に含まれる入力デバイスまたは出力デバイス(以降、両者を単に「デバイス」と称する)の接続関係と、FAシステムを稼働させた場合の各デバイスおよびデバイスに含まれる構成要素の導通状態と、を操作者に図示する管理システムに係るものである。入力デバイスとは、例えばセンサおよびリミットスイッチ等である。出力デバイスとは、例えばランプやアクチュエータ等である。
【0036】
≪要部構成≫
図1は、本実施形態に係るプログラム作成支援装置1が適用される場面の一例である管理システム100の要部構成を示すブロック図である。管理システム100は、図示しないデバイスと、前記デバイスを集中管理するプログラマブルロジックコントローラ(PLC)2と、前記デバイスの接続関係と稼働状態をモニタするプログラム作成支援装置1とを含む。PLC2に接続される前記デバイスの台数は特に限定されない。PLC2と前記デバイスとは、通信カプラやスレーブ装置を介して間接的に接続されてもよい。
なお、本実施形態に係るプログラム作成支援装置1が適用され得るシステムは、PLC2を含むシステムに限られない。本実施形態に係るプログラム作成支援装置1は、ラダープログラムが使用される装置、システムであれば、いずれにも好適に適用され得る。例えば、FAネットワークで利用される時系列データ記録再生装置等に用いられるラダープログラムの作成支援にも、本実施形態に係るプログラム作成支援装置1は好適に用いることができる。
【0037】
PLC2は前記デバイスのシーケンス制御を行う装置である。PLC2は、プログラム作成支援装置1と通信するための通信ユニット70を含む。PLC2はプログラムモードと運転モードとのいずれかのモードで稼働する。プログラムモードは、PLC2が前記デバイスを制御しないモードである。PLC2は、例えばプログラム作成支援装置1とデータを送受信する場合にプログラムモードで稼働する。一方、運転モードは、前記デバイスを制御するモードである。PLC2は運転モードにおいて、前記デバイスを制御するためのラダープログラムを実行する。ラダープログラムはプログラム作成支援装置1で作成され、PLC2にダウンロードされる。一方、運転モードでは、PLC2は前記デバイスのシーケンス制御を行う。
【0038】
(プログラム作成支援装置1の要部構成)
プログラム作成支援装置1は、PLC2の制御方法を記述したラダープログラム51を、操作者の入力操作に応じて作成するプログラム作成装置である。プログラム作成支援装置1は、ラダープログラム51の作成を支援するプログラム作成支援装置でもある。プログラム作成支援装置1は、作成した(または作成中の)ラダープログラム51をプログラム作成支援装置1内で仮想的に実行することで、ラダープログラム51を実行したときのプログラム要素が導通状態か非導通状態かを特定することも可能である。なお、所定の処理を一まとめとしたファンクションブロックのインスタンスも、ラダープログラム上の一プログラム要素としてもよい。プログラム作成支援装置1は、例えばパーソナル・コンピューターであってよい。
【0039】
プログラム要素は、入力を示す接点と、出力を示すコイルに大別され、あるコイルの出力が別の接点の入力として利用されることがある。なお、コイルには、例えばランプやアクチュエータ等の出力デバイスが含まれてもよい。プログラム要素には、0と1、trueとfalse、またはONとOFFの2値いずれか示す変数が割り付けられている。導通状態とは、プログラム要素に割り付けられた変数の値が1、true、またはONの状態を意味する。一方、非導通状態とは、上記変数の値が0、false、またはOFFの状態を意味する。
【0040】
プログラム作成支援装置1は、制御部10、入力部20、通信部40、および記憶部50を備える。入力部20は操作者の入力操作を受付ける。例えば、入力部20はプログラム作成支援装置1に内蔵または接続されたマウスやキーボード等の入力デバイスである。入力部20は受け付けた入力操作を示す入力信号を、制御部10の入力制御部11(後述)に送信する。
【0041】
制御部10は、プログラム作成支援装置1を統括的に制御するCPU(Central Processing Unit)である。制御部10は、記憶部50に格納されているプログラム作成支援装置1の制御プログラムをRAM(random access memory、図示せず)等に読み出して実行することにより、以下で説明する入力制御部11及び表示処理部12の機能ブロックを実現する。
【0042】
入力制御部11は、入力部20から入力信号を受信し、当該信号から操作者がプログラム作成支援装置1に対し行った指示を検出する。入力制御部11は、ラダープログラム51の表示(ラダー図の表示)に係る指示を検出した場合は、当該指示内容を示す情報を表示処理部12に送信する。
【0043】
表示処理部12は、ラダープログラム51に対応するラダー図と、各プログラム要素の導通状態とを表示装置3に表示させるものである。表示処理部12は入力制御部11からの指示内容に応じて、記憶部50からラダープログラム51を読み出し、当該ラダープログラム51に対応するラダー図を表示装置3に表示させる。
【0044】
シミュレーション実行部13は、ラダープログラム51の論理形式を確認し、当該ラダープログラム51を実行した際の所要のプログラムステップにおいて、各プログラム要素が導通状態であるか非導通状態であるかを前記ラダー図とともに表示装置3に識別可能に表示させる。導通状態の表示方法は特に限定しないが、例えばシミュレーション実行部13は、導通状態のプログラム要素、および導通状態のプログラム要素を結ぶ接続線に対し太線やマーキングなどの強調表示を行うことで、各プログラム要素および接続線が導通状態か非導通状態かを操作者に示してもよい。これにより、シミュレーション実行部13は、導通状態であるべきリレーが非導通状態となっていないか、または非導通状態となるべきリレーが導通状態となっていないかにつき、操作者の確認を容易ならしめる。
【0045】
通信部40は、プログラム作成支援装置1がPLC2と通信するための通信デバイスである。記憶部50は、プログラム作成支援装置1が動作するための各種データ(プログラム作成支援装置1自体の制御プログラム等)とともに、ラダープログラム51及び画像データ52を格納する。
【0046】
ラダープログラム51は、操作者の所定の指示に応じて制御部10により読み出され、通信部40を介してPLC2に送信される。画像データ52は、表示処理部12によって生成され、操作者の所定の指示に応じて制御部10により読み出される。ラダープログラム51は、通常複数の回路からなる。回路とは、ラダー図上において右母線に接続されたあるコイルを出発して左母線までたどることができるパスの集合を示す。回路は、たとえば1の接続線と、少なくとも1の接点及び少なくとも1のコイルを備えていてもよいが、この限りではない。1つの回路は、ラダー図上では1行に表示される。
【0047】
表示装置3は、プログラム作成支援装置1に内蔵または接続された表示装置である。表示装置3は、表示処理部12の制御に従って、ラダープログラム51に対応するラダー図を表示する。
【0048】
(処理の流れ)
図2は、上記実施形態に係る上記プログラム作成支援装置の全体の処理の流れの一例を示すフローチャートである。
【0049】
ステップS1において、入力制御部11は、問題のあるコイルに対応する回路を表示する操作者の指示を検出したかどうかを判定する。操作者の当該指示を、入力部20を通じて検出した場合、入力制御部11は、当該指示を表示処理部12へ渡し、表示処理部12はステップS2を実行する。
【0050】
ステップS2において、表示処理部12は、当該回路を含むラダープログラムを記憶部50から読み出す。
【0051】
ステップS3において、表示処理部12は、問題のあるコイルに対応するツリー構造グラフ、正常性判断コメント入力欄、任意コメント入力欄、ラダー図をラダープログラムから読み出して表示装置3に表示する。これらの項目は、後述の各画面図にあるように、表形式で表示されることが望ましいが、この限りではない。ツリー構造グラフは、ラダープログラムにおける接点とコイルの依存状態を階層関係で示したものであり、本実施形態では、接点に対応するコイル及び当該コイルの属する回路が下位に表示されるが、この限りではなく、上位に表示されてもよい。
【0052】
正常性判断コメント入力欄は、当該コイルに対するコイル状態コメントの1形態であり、当該コイルが正常または異常であるかについての操作者の入力を受け付ける。本実施形態では、正常性判断コメント入力欄は項目選択形式となっており、当該コイルが正常であるという判断は「No Problem」に、当該コイルが異常であるという判断は「Problem」に、正常又は異常のいずれともつかないという判断は「Not Sure」に、未判断のものは空文字列の項目に、それぞれ対応するものとするが、項目数や項目名はこの限りではない。なお、当該問題のあるコイルについては異常であることが自明であるため、表示処理部12は、正常性判断コメント入力欄については、最初から「Problem」を表示することが望ましいが、この限りではない。任意コメント入力欄は、操作者のコメントを、例えば任意の文字列形式で受け付ける。
【0053】
ステップS4において、表示処理部12は、問題のあるコイルについての正常性判断コメント入力欄への操作者の入力を受け付ける。本実施形態において、操作者は、当該コイルが正常と判断した場合は項目「No Problem」を、当該コイルが異常と判断した場合は項目「Problem」を、正常又は異常のいずれとも判断がつかない場合は項目「Not Sure」を、それぞれ入力するものとする。
【0054】
ステップS5において、表示処理部12は、問題のあるコイルについての正常性判断コメント入力欄への入力を判定する。正常性判断コメント入力欄に、当該コイルが異常であるとの入力があった場合、表示処理部は、ステップS6以降を実行する。正常性判断コメント入力欄に、当該コイルが異常であるとの入力がなかった場合、表示処理部はステップS4の入力受付状態を継続する。
【0055】
ステップS6において、表示処理部12は、当該コイルに対応するツリー構造グラフの近辺に展開可能シンボルを表示する。展開可能シンボルは、操作者の操作を受け付けて、ステップS7以降で表示される画像の表示状態と非表示状態を切り替える。
【0056】
ステップS7において、表示処理部12は、当該回路の論理回路の正誤判定を表示する。表示処理部12は、当該回路の論理回路の正誤判定についての正常性判断コメント入力欄を表示してもよく、ステップS4と同様に、当該回路の論理回路の正誤について操作者の判断を受け付けてもよい。すなわち、操作者は、当該回路の論理回路が正しければ項目「No Problem」を、当該回路の論理回路が誤りと判断した場合は項目「Problem」を、正しい又は誤りのいずれとも判断がつかない場合は項目「Not Sure」を、それぞれ入力するものとしてもよい。あるいは、当該回路の論理回路の正誤判定を、制御部10が行ってもよい。
【0057】
以下、表示処理部12は、当該回路の有する各接点につきステップS11からステップS12を繰り返す。
【0058】
ステップS11において、表示処理部12は、当該接点が問題のあるコイルの状態を定めているかどうかを判定する。当該接点が問題のあるコイルの状態を定めていない場合(S11のNO)、当該接点は当該問題とは関係がないため、表示処理部12は、当該接点を表示しない。当該接点が問題のあるコイルの状態を定めている場合(S11のYES)、当該接点は当該問題と関連している可能性があるので、表示処理部12は、ステップS12を実行する。
【0059】
ステップS12において、表示処理部12は、当該接点に対応するツリー構造グラフ、接点の識別子、接点の導通状態の真偽値、正常性判断コメント入力欄、任意コメント入力欄を表示する。各項目は、ステップS3の内容を接点について適用したものであるので、説明を繰り返さない。なお、接点が異常かどうかは自明ではないので、正常性判断コメント入力欄の初期表示は、空欄または「Not Sure」であってもよい。また、当該表示は、例えば、ステップS3にて表示された表画像と結合されていてもよい。
【0060】
ステップS13において、表示処理部12は、表示済みの各接点について、操作者の入力を受け付ける。操作者の入力とは、例えば表示装置3に表示された画像の中の、いずれかの接点についての正常性判断コメント入力欄のいずれかの項目を選択するであってもよく、当該接点のシンボルをマウスで右クリックすることであってもよい。入力部20は、当該操作を受け付けたとき、その情報を表示処理部12に渡す。
【0061】
ステップS21において、表示処理部12は、いずれかの接点についての正常性判断コメント入力欄への入力を判定する。いずれかの接点についての正常性判断コメント入力欄への入力が、正常と判断できない、つまり、本実施形態の例では「Not Sure」または「Problem」である場合、表示処理部12は、ステップS22を実行する。それ以外の場合(ステップS21の「入力なし、又は正常」)、表示処理部12は、ステップS13の入力受付状態に戻る。
【0062】
ステップS22において、表示処理部12は、当該接点に対応するコイルを特定する。当該接点に対応するコイルとは、当該コイルの出力が当該接点の入力として使われていることを意味し、例えば、当該接点と同じ識別子が割り振られたコイルである。以下、このコイルを当該コイルという。対応するコイルが存在する場合、表示処理部12は、ステップS23を実行する。対応するコイルが存在しない場合、表示処理部12は、処理を中断する。
【0063】
ステップS23において、表示処理部12は、当該コイルに対応するツリー構造グラフ、正常性判断コメント入力欄、任意コメント入力欄、当該コイルが属する回路に対応するラダー図を表示する。各項目は、ステップS3の内容を接点について適用したものであるので、説明を繰り返さない。なお、当該コイルが異常かどうかは自明ではないので、正常性判断コメント入力欄の初期表示は、空欄または「Not Sure」であってもよい。また、当該表示は、例えば、ステップS3にて表示された表画像と結合されていてもよい。
【0064】
ステップS24において、表示処理部12は、当該コイルに対応するツリー構造グラフの近辺に展開可能シンボルを表示する。展開可能シンボルは、ステップS6のものと同様である。
【0065】
ステップS25において、表示処理部12は、当該コイルに対応する回路の論理回路の正誤判定を表示する。この判定は、ステップS7の判定と同様である。
【0066】
以下、表示処理部12は、当該コイルを含む回路の有する接点につきステップS31からステップS32までを繰り返す。
【0067】
ステップS31において、表示処理部12は、当該接点が問題のあるコイルの状態を定めているかどうかを判定する。当該判定は、ステップS11のものと同様である。
【0068】
ステップS32において、表示処理部12は、当該接点に対応するツリー構造グラフ、正常性判断コメント入力欄、任意コメント入力欄を表示する。当該表示は、ステップS12のものと同様である。
【0069】
表示処理部12は、表示装置3に表示された各プログラム要素についてステップS13からステップS32までを再帰的に実行できる。また、図示しないが、入力部20は、操作者の操作に応じて、表示した画像全体のデータである画像データ52を記憶部50に保存してもよい。当該画像データ52は、画像そのものであってもよく、当該画像を表示するために必要な各種データのセットであってもよい。
【0070】
(ラダー図の例)
図3は、表示処理部12が表示装置3にラダープログラム51に対応するラダー図の全体を表示した場合に表示されるラダー図の一例である。なお、図3では、本実施形態の説明に不要な回路は記載を省略している。図3では、ラダープログラム51のうち0行目、11行目、20行目、22行目、25行目及び98行目の回路が表示されており、「回路」を表す「Rung」の文字列及び回路の行数を示す文字列が左母線の左側にそれぞれ表示されている。ラダープログラムの行番号は、ラダープログラムの実行優先順に対応しており、図3に示されたラダープログラム51では、0行目の回路が最優先で実行され、98行目の回路が最劣後で実行される。
【0071】
ここでは、ラダープログラムは行数の小さい回路から優先して実行され、あるコイルとある接点に同じ識別子が割り当てられている場合、当該コイルの出力が当該接点の入力として利用されるものとする。接点の出入力を定める方法は、その他の方法により実現されていてもよい。コイルの出力は真偽値であってもよく、数値その他の変数型であってもよく、その真偽値が反転されていてもよく、その他の演算または加工がなされたものであってもよい。
【0072】
0行目の回路には接点R00C1及びコイルR00L1、11行目の回路には接点R11C1及びコイルR11L1、20行目の回路にはR20C1及びR20C2ならびにコイルR20L1、22行目の回路には接点R22C1及びコイルR22L1、25行目の回路には接点R25C1、R25C2、R25C3及びR25C4ならびにコイルR25L1、98行目の回路には接点R98C1及びコイルR98L1がプログラム要素として配置(記述)されている。各プログラム要素のシンボルは、多くの操作者に理解できるよう、図3の例のようにIECまたはJIS規格に沿ったシンボルであることが望ましいが、この限りではない。
【0073】
また、表示装置3には、各プログラム要素の導通状態および非導通状態が識別可能に表示されてもよい。接続線については、左母線から、左母線の直近のプログラム要素までは常に導通状態となる。そして、該直近のプログラム要素が導通状態の場合は、該プログラム要素から次のプログラム要素までの接続線は導通状態となる。一方、直近のプログラム要素が非導通状態の場合は、該プログラム要素から次のプログラム要素までの接続線は非導通状態となる。図3の例では、導通状態のプログラム要素を塗りつぶして表示している。図3の例では、導通状態のプログラム要素を結ぶ接続線を太線で表示している。以降のラダー図を示した図面についても同様に導通状態および非導通状態を示すこととする。
【0074】
各接点およびコイルに付したアルファベット及び記号は、そのプログラム要素に割り付けられた識別子を示す。ある識別子が付された接点は、同一の識別子が付されたコイルの実行結果を入力信号として受信する。
【0075】
このような複雑なラダープログラムにおいては、デバッグの際、操作者が問題発生箇所から原因へとプログラム階層(回路)を遡っていくうちに、調査状況を見失いやすい。つまり、どこまで調査したかを忘れたり、調査結果を忘れたりしやすいという問題が発生する。そこで、プログラム作成支援装置1は、回路に応じたコメントを受付可能な画像を生成することで操作者の調査を支援し、調査状況を明確化する。以下では、一例として、コイルR25L1が本来非導通状態のはずなのに導通状態となる誤動作(問題)が発生しており、操作者は、当該誤作動の原因を調査するべくプログラム作成支援装置1を操作するものとする。
【0076】
(デバッグ表示の画面例)
図4は、本実施形態にかかるデバッグ表示の一例を示した画面図である。表示処理部12が、入力制御部11からの指令に従って、問題のあるコイルR25L1に関する情報を、表示装置3上のディスプレイ31に表示したものである。表示処理部12は、問題のあるコイルR25L1に関する情報を、領域σに表として表示するが、他の形式で表示してもよい。行σ0には、当該表の見出しが表示され、行σ1以降に、特定のプログラム要素ごとの各種情報が表示される。
【0077】
列σAには、調査対象となるプログラム要素に関する題、展開可能シンボル、及びツリー構造図が表示される。列σBには、調査対象となっているプログラム要素の識別子が表示される。調査対象となっているのが回路の論理回路である場合、識別子が存在しないので、列σBの表示は省略されてもよいが、本図の例では、回路の論理回路が調査対象となっていることを明らかにするため、識別子の代わりに「Rung Logic」の文字列を表示する。また、ラダープログラム51が、ある接点と、当該接点に対応するコイルとが同じ識別子を持つ設計である場合、そのいずれかに対応する列σBの表示は省略されてよく、本図の例では、コイルに対応する識別子の表示が省略されている。
【0078】
列σCには、調査対象となっているプログラム要素の導通状態の真偽値が表示される。ラダープログラム51が、ある接点と、当該接点に対応するコイルとの導通状態が一致する設計である場合、いずれかの真偽値の表示は省略されてよく、本図の例では、コイル及び回路の論理回路については表示が省略されている。列σDには、正常性判断コメント入力欄が表示される。列σEには、任意コメント入力欄が表示される。列σFには、調査対象に対応する回路が表示される。本図の例では、調査対象がコイルである場合のみ当該コイルに対応する回路を表示しているが、この限りではない。以降、例えば行σ1の列σAに対応する領域σ内の領域を、「領域σ(1、A)」のように記載する。
【0079】
行σ1には、問題のあるコイルR25L1に関する情報が表示されている。列σ11には、問題のあるコイルR25L1の属する回路の論理回路に関する情報が表示されている。
【0080】
列σ12には、問題のあるコイルR25L1の状態を定める接点R25C1に関する情報が表示されている。ここで、領域σ(12、D)の正常性判断コメント入力欄には、一例として、操作者の判断の結果、当該接点が正常であった旨のコメントが表示されている。また、領域σ(12、E)の任意コメント入力欄には、一例として、操作者の判断の根拠を示す文字列「because ...」が表示されている。
【0081】
行σ13には、問題のあるコイルR25L1の状態を定める接点R25C2に関する情報が表示されている。ここで、領域σ(13、D)の正常性判断コメント入力欄313Dには、一例として、操作者の判断の結果、当該接点が正常又は異常のいずれとも判断がつかない旨のコメントが表示されている。そこで、表示処理部12は、当該接点R25C2についてのさらなる情報を行σ131、行σ1311及び行σ1312に表示する。
【0082】
以下、操作者が、接点R25C2に対応するコイルR20L1について、正常とも異常とも判断がつかなかったので更に調査したところ、最終的に正常だと判断しコメントを入力する場合の、表示処理部12が行う表示処理について詳細に説明する。領域σ(131、A)には、ツリー構造グラフ3131A1、展開可能シンボル3131A2、題3131A3が表示されている。この場合、ツリー構造グラフ3131A1は、接点R25C2と接点R25C3が同じ回路に属することを示す直線と、コイルR20L1が接点R25C2に対応することを示す折れ線とからなる。
【0083】
展開可能シンボル3131A2は、調査対象となっているプログラム要素にかかわる情報が展開表示されているかどうかを示すとともに、入力部20は、展開可能シンボル3131A2に相応する領域について操作者の操作を受け付ける。操作者が正常性判断コメント入力欄313Dに「Not Sure」を入力したため、行σ131が表示されている。さらに行σ131の直下には行σ1311及び行σ1312が展開表示されており、展開可能シンボル3131A2は、展開状態を示す下向きのシェヴロンとなっているが、展開状態は、他のシンボルで表現されてもよい。題3131A3は、例えば、調査時に留意すべき事項を端的に示す文字列であってよい。
【0084】
行σ1311には、コイルR20L1の属する回路の論理回路の適否に関する情報が表示される。コイルR20L1の属する回路の論理回路が適であった場合、操作者は、領域σ(1311、D)の正常性判断コメントに「No Problem」を入力する。行σ1312には、コイルR20L1の状態を定める接点R20C2の情報が表示される。接点R20C2が正常であった場合、操作者は、領域σ(1312、D)の正常性判断コメントに「No Problem」を入力する。すなわち、行σ131の正常性に関わる要素のすべてに問題がなかったので、操作者は、行σ131に関して問題がないと判断して、例えば、領域σ(131、D)に表示されている正常性判断コメント入力欄3131Dをクリックする。表示処理部12は、当該操作に応じて、正常性判断コメント入力欄を項目選択可能状態にし、操作者の操作を受け付ける。
【0085】
ここで、操作者が「No Problem」を入力した場合、表示処理部12は、操作者の当該正常性判断コメントを受け付けて、正常性判断コメント入力欄3131Dに当該コメント(「No Problem」)を反映した新たな画像を生成して、領域σ(131、D)に表示させる。図示しないが、表示処理部12は、行σ1311及び行σ1312を削除し、空いた領域に行σ14を繰り上げて表示してもよい。このように、入力された正常性判断コメントによって表示を制御することで、プログラム作成支援装置1は、操作者のスムーズな問題調査を可能にする。また、操作者は、例えば行σ131に問題がなかったと判断する根拠を、領域σ(131、E)に表示された任意コメント入力欄に入力してもよい。
【0086】
列σ14には、問題のあるコイルR25L1の状態を定める接点R25C3に関する情報が表示されている。なお、行σ14に係る詳細情報は展開表示されていないので、領域σ(14、A)に表示されている展開可能シンボルは、非展開状態を示す横向きのシェヴロンとなっているが、非展開状態は、他のシンボルで表現されてもよい。
【0087】
なお、接点R25C4は、問題のあるコイルR25L1の状態を定めていないため、表示処理部12は、接点R25C4に関する情報を表示していない。接点R20C1も、コイルR20L1の状態を定めていないため同様である。これにより、操作者は、不要な情報を探索する必要がなく、スムーズに調査を進めることができる。
また、図示しないが、表示処理部12は、所定の状況の画面を画像データ52として記憶部50に保存することができる。当該保存は、一定のタイミングで行われてもよく、表示装置3上の画像を更新するタイミングで行われてもよく、操作者の保存操作を受け付けて行ってもよい。表示処理部12は、例えば操作者の操作を受け付けて、当該画像を記憶部50から読みだして表示装置3に表示させることができる。これにより、調査者が確認した内容を報告書又はデータとして利活用できる。プログラムが大規模化している昨今では、複数のプログラマが関与し、プログラムを分担して開発することが多いため、国際規格で表記法が定められたラダー図をベースとした当該調査画像は、より幅広い者に分かりやすい問題報告書になるというメリットがある。
【0088】
〔実施形態2〕
図5は、本実施形態にかかる処理の流れの一例を示したフローチャートである。ステップS101及びステップS102は、それぞれ図2のステップS1及びステップS2と同様である。
【0089】
ステップS103において、表示処理部12は、問題のあるコイルに対応するシンボル、ラダー図、任意コメント入力欄を表示する。
【0090】
ステップS104において、表示処理部12は、表示されているいずれかの領域について、操作者の操作選択があったかどうかを判定する。操作者の操作選択とは、例えば、接点を選択して展開する指示、領域内の画像を削除する指示、領域内のラダー図を表示する指示、領域内のラダー図を非表示にする指示又は任意コメント欄へのコメント入力操作であり、入力部20は、これらの操作を受け付けて表示処理部12に操作情報を渡す。表示処理部12は、当該操作が、接点を選択して展開する指示である場合はステップS121、領域内の画像を削除する指示である場合はステップS131、領域内のラダー図を表示する指示である場合はステップS141、領域内のラダー図を非表示にする指示である場合はステップS151、任意コメント欄へのコメント入力操作である場合はステップS162を実行する。
【0091】
ステップS121において、表示処理部12は、当該接点に対応するコイルを特定する。当該特定は、図2のステップS22と同様であり、当該接点に対応するコイルがある場合、表示処理部12は、ステップS122を実行する。
【0092】
ステップS122において、表示処理部12は、ツリー構造グラフ及び当該接点及び当該コイルに対応するシンボル、ラダー図、任意コメント入力欄を表示する。
【0093】
ステップS131において、表示処理部12は、当該接点の属する領域に表示された画像を削除する。操作者の確認の便宜のため、表示処理部12は、当該接点の属する領域に表示された画像を削除した後、空いた領域に他の領域の画像を移動させてもよい。
【0094】
領域内のラダー図を表示する指示を受けた場合、表示処理部12は、表示対象となる領域についてステップS141を繰り返す。表示対象となる領域は、例えば、操作者がマウスで選択した領域であってもよく、表示されている全てのコイルに係る領域であってもよい。ステップS141において、表示処理部12は、当該領域に属するラダー図を表示する。当該領域に属するラダー図とは、当該領域に係るコイルの属する回路に対応するラダー図である。
【0095】
領域内のラダー図を非表示にする指示を受けた場合、表示処理部12は、非表示対象となる領域についてステップS151を繰り返す。非表示対象となる領域は、例えば、操作者がマウスで選択した領域であってもよく、表示されている全てのコイルに係る領域であってもよい。ステップS151において、表示処理部12は、当該領域に属するラダー図を非表示にする。
【0096】
ステップS162において、表示処理部12は、当該操作者の任意コメント入力欄への入力を記憶部50に保存する。当該保存は、当該調査の間に画像を生成するための一時的なものであってもよく、恒久的なものであってもよい。
【0097】
表示処理部12は、表示装置3に表示された各接点についてステップS104からステップS122までを再帰的に実行できる。また、図示しないが、入力部20は、操作者の操作に応じて、表示した画像全体のデータである画像データ52を記憶部50に保存してもよい。当該画像データ52は、画像そのものであってもよく、あるいは当該画像を表示するために必要な各種データのセットであってもよい。
【0098】
(展開表示の画面例)
図6から8は、上記実施形態に係るラダー図の展開処理の一例を示す画面図である。図6は、上記実施形態に係るラダー図の展開表示前の画面の一例を示す画面図である。図6は、表示処理部12が、入力制御部11からの指令に従って、コイルR25L1に関する情報を、表示装置3のディスプレイ31に表示したものである。表示処理部12は、コイルR25L1に関する情報を、領域σに表として表示するが、他の形式で表示してもよい。行σ0には、当該表の見出しが表示され、行σ1以降に、特定のプログラム要素ごとの各種情報が表示される。
【0099】
列σAには、当該プログラム要素のシンボルと、問題が発生しているリレーと当該プログラム要素に対応するリレーとの階層関係を示すツリー構造グラフとが表示される。列σBには、当該プログラム要素に対応するリレーの属するプログラム名が表示される。列σCには、当該プログラム要素の属する回路名が表示される。列σDには、当該プログラム要素の属する回路に対応するラダー図が表示され、また、入力部20は、列σD内に表示されたプログラム要素に対する操作者の入力を受け付ける。列σEには、操作者の文字情報入力を受け付ける入力欄が表示される。表示処理部12は、当該プログラム要素について対応する文字情報が記憶部50に存在する場合、当該文字情報を読みだして当該入力欄に表示してもよい。
【0100】
まず、入力部20が、コイルR25L1について操作者の表示指示を受け付けた場合、入力制御部11は、表示処理部12に指令し、関連情報を行σ1に表示させる。表示処理部12は、領域σ(1、A)に当該コイルR25L1のシンボルを表示する。当該プログラム要素は、問題が発生しているリレーに対応するプログラム要素と同一であるため、ツリー構造グラフは表示されない。表示処理部12は、コイルR25L1に対応するリレーが属するプログラム名「Program0.Section0」を領域σ(1、B)に表示する。表示処理部12は、コイルR25L1の属する回路名「Rung25」を領域σ(1、C)に表示する。表示処理部12は、コイルR25L1の属する25行目の回路に対応するラダー図を領域σ(1、D)に表示する。当該ラダー図は、図3の25行目の回路(Rung25)に対応する部分と同じ表示である。
【0101】
表示処理部12は、コイルR25L1に関する操作者の文字入力を受け付ける任意コメント入力欄3151を領域σ(1、E)に表示する。表示処理部12は、操作者の任意コメントを受け付け、任意コメント入力欄3151に操作者のコメントが入力された場合、当該コメントを反映した新たな画像を生成して、領域σ(1、E)に表示させる。
【0102】
図7は、図6における領域σ(1、D)に表示されたラダー図において、操作者が接点R25C1に対して表示変更操作を行った場合の画面である。表示変更操作とは、例えば領域σ(1、D)内の接点R25C1に対応する領域上でのマウスの右クリックであってもよく、表示処理部12は、当該領域を操作者が認識しやすいよう強調表示を行ってもよい。
【0103】
入力部20は、操作者の当該操作を受け付けると、操作選択モーダル32を表示する。操作選択モーダル32には、接点に対する展開表示を示す「Expand」、ラダー図の非表示を示す「Hide」、ラダー図の表示を示す「Show」、削除表示を示す「Delete」、領域σ上の全ラダー図の非表示を示す「Hide All」及び領域σ上の全ラダー図の表示を示す「Show All」が表示され、入力部20は、これらそれぞれに対する操作者の入力を受け付ける。なお、当該接点が対応するコイルを持たない場合、表示処理部12は、操作選択モーダル32に、接点に対する展開表示を指示する項目を表示しないこともできる。
【0104】
図8は、図7において操作者が「Expand」を選択した場合の表示である。表示処理部12は図5のステップS121及びステップS122を実行した結果、図6の画像に加えて、行σ2に接点R25C1に関する情報を表示する。表示処理部12は、領域σ(2、A)に、接点R25C1がコイルR25L1の状態を決定することを示すツリー構造グラフ312Aと、接点R25C1に対応するシンボルを表示する。表示処理部12は、領域σ(2、B)に、接点R25C1に対応するコイルR00L1が属するプログラム名「Program0.Section0」を表示する。表示処理部12は、領域σ(2、C)に、接点R25C1に対応するコイルR00L1の属する回路名「Rung0」を表示する。表示処理部12は、領域σ(2、D)に、コイルR00L1の属する回路に対応するラダー図を表示する。表示処理部12は、領域σ(2、E)に、任意コメント入力欄を表示する。
【0105】
なお、図示しないが、例えば、0行目の回路の最初の接点R00C1が、PLC2の電源スイッチなどであって、対応するコイルを持たない場合、表示処理部12は、操作選択モーダル32に、接点に対する展開表示を指示する項目を表示しなくてもよく、あるいは、操作選択モーダル32は表示するが、操作者が接点R00C1について「Expand」を選択した際、ステップS121の判断に従い、処理を中断してもよい。
【0106】
(削除表示の画面例)
図9から図11は、上記実施形態に係るラダー図の削除表示の一例を示す画面図である。図9は、上記実施形態に係る表示装置3におけるラダー図の削除表示前の画面の一例を示す画面図である。領域σ内の行σ1には、問題のあるコイルR25L1についての情報が、行σ2から行σ4には、問題のあるコイルR25L1の状態を定める3つの接点に対応する情報が接点ごとに表示されている。このうち、行σ2には、図8と同様に、接点R25C1に対応するコイルR00L1に関する情報が表示されている。
【0107】
図10は、図9において操作者が領域σ(2、D)上で表示変更操作を行った場合の画面である。表示変更操作とは、例えば当該領域内を右クリックすることでもよく、表示処理部12は、当該領域を操作者が認識しやすいよう強調表示を行ってもよい。入力部20は、操作者の当該操作を受け付けると、操作選択モーダル32を表示する。
【0108】
図11は、図10において操作者が「Delete」を選択した場合の表示である。表示処理部12は、行σ2に表示されていた接点R25C1に対応するコイルR00L1に関する情報を削除し、行σ3及び行σ4に表示されていた画像をそれぞれ行σ2及び行σ3に繰り上げて表示する。
また、図示しないが、表示処理部12は、所定の状況の画面を画像データ52として記憶部50に保存することができる。当該保存は、一定のタイミングで行われてもよく、表示装置3上の画像を更新するタイミングで行われてもよく、操作者の保存操作を受け付けて行ってもよい。表示処理部12は、例えば操作者の操作を受け付けて、当該画像を記憶部50から読みだして表示装置3に表示させることができる。これにより、調査者が確認した内容を報告書又はデータとして利活用できる。プログラムが大規模化している昨今では、複数のプログラマが関与し、プログラムを分担して開発することが多いため、国際規格で表記法が定められたラダー図をベースとした当該調査画像は、より幅広い者に分かりやすい問題報告書になるというメリットがある。さらに、本実施形態においては、図11のように問題に関係のない回路についての情報を削除できるので、より分かりやすい報告書を作成することができる。
【0109】
(非表示の画面例)
図12から14は、上記実施形態に係るラダー図の非表示処理の一例を示す画面図である。図12は、上記実施形態に係るラダー図の非表示処理前の画面の一例を示す画面図である。表示装置3には、行σ1から行σ4まで、問題のあるコイル及び関連するコイルの属する回路の情報が表示された状態である。
【0110】
図13は、図12において操作者が領域σ(2、D)上で表示変更操作を行った場合の画面である。表示変更操作とは、例えば操作者が当該領域内を右クリックすることでもよく、表示処理部12は、当該領域を操作者が認識しやすいよう強調表示を行ってもよい。あるいは、表示変更操作は、操作者が領域σ内のいずれかの場所を右クリックすることであってよい。
【0111】
図14は、図13において操作者が「Hide All」を選択した場合の表示である。入力部20が操作者の当該操作を受け付けると、入力制御部11は、当該情報を表示処理部12に渡す。当該操作は、領域σ上の全ラダー図の非表示指令であるため、表示処理部12は、図5のステップS151を、行σ1から行σ4について実行する。
【0112】
〔変形例〕
なお、上述の説明は、操作者が人間であることを前提にしているが、入力部20は、例えば、操作者に替えて制御部10または図示しない人工知能の判断を各種入力として受け付けてもよい。
【0113】
〔ソフトウェアによる実現例〕
プログラム作成支援装置1(以下、「装置」と呼ぶ)の機能は、当該装置としてコンピュータを機能させるためのプログラムであって、当該装置の各制御ブロック(特に制御部10に含まれる各部)としてコンピュータを機能させるためのプログラムにより実現することができる。
【0114】
この場合、上記装置は、上記プログラムを実行するためのハードウェアとして、少なくとも1つの制御装置(例えばプロセッサ)と少なくとも1つの記憶装置(例えばメモリ)を有するコンピュータを備えている。この制御装置と記憶装置により上記プログラムを実行することにより、上記各実施形態で説明した各機能が実現される。
【0115】
上記プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、上記装置が備えていてもよいし、備えていなくてもよい。後者の場合、上記プログラムは、有線または無線の任意の伝送媒体を介して上記装置に供給されてもよい。
【0116】
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータにより上記各制御ブロックの機能を実現することも可能である。
【0117】
また、上記各実施形態で説明した各処理は、AI(Artificial Intelligence:人工知能)に実行させてもよい。この場合、AIは上記制御装置で動作するものであってもよいし、他の装置(例えばエッジコンピュータまたはクラウドサーバ等)で動作するものであってもよい。
【0118】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0119】
1 プログラム作成支援装置
2 PLC
3 表示装置
10 制御部
11 入力制御部
12 表示処理部
13 シミュレーション実行部
50 記憶部
51 ラダープログラム
R00C1、R11C1、R20C1、R20C2、R22C1、R25C1、R25C2、R25C3、R25C4、R98C1 接点
R00L1、R11L1、R20L1、R22L1、R25L1、R98L1 コイル
52 画像データ
312A、3131A、3131A1 ツリー構造グラフ
313D、3131D 正常性判断コメント入力欄
3151 任意コメント入力欄
σ 領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14