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

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

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

特許7423895ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム
<>
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図1
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図2
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図3
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図4
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図5
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図6
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図7
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図8
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図9
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図10
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図11
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図12
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図13
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図14
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図15
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図16
  • 特許-ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】ラダー図プログラム作成支援装置、ラダー図プログラム作成支援方法、およびラダー図プログラム作成支援プログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20240123BHJP
【FI】
G05B19/05 B
【請求項の数】 8
(21)【出願番号】P 2019044374
(22)【出願日】2019-03-12
(65)【公開番号】P2020149168
(43)【公開日】2020-09-17
【審査請求日】2022-01-12
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110000970
【氏名又は名称】弁理士法人 楓国際特許事務所
(72)【発明者】
【氏名】岩村 慎太郎
(72)【発明者】
【氏名】小林 修一
【審査官】西井 香織
(56)【参考文献】
【文献】特開平09-198110(JP,A)
【文献】特開平05-282394(JP,A)
【文献】特開平06-131011(JP,A)
【文献】特開平04-004403(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
処理対象のラダー図プログラムに対して、複数の接点からなる部分回路であって、予め定めている所定回数を超えて出現している部分回路を抽出する抽出部と、
前記抽出部によって抽出された前記部分回路と、その部分回路の出現回数とを対応付けた画面を表示器に表示させる表示部と、
前記抽出部によって抽出され、前記表示器に表示されている前記部分回路を選択する部分回路選択部と、
前記部分回路選択部が選択した前記部分回路よりも少ない個数の接点からなる置換回路を生成する置換回路生成部と、
前記置換回路生成部が生成した前記置換回路に、前記部分回路選択部が選択した前記部分回路と同じ動作をさせる補助回路を生成する補助回路生成部と、
前記処理対象のラダー図プログラムに対して、この処理対象のラダー図プログラムに出現している前記部分回路を、前記置換回路生成部が生成した前記置換回路に置き換える置換処理を行うとともに、前記補助回路生成部が生成した前記補助回路を前記処理対象のラダー図プログラムに挿入する補助回路挿入処理を行うプログラム編集部と、を備えたラダー図プログラム作成支援装置。
【請求項2】
前記処理対象のラダー図プログラムにおいて、前記プログラム編集部が前記置換処理で置き換えた前記置換回路が選択されたとき、選択された前記置換回路に対応する前記補助回路を出力する補助回路出力部を備えている、請求項1に記載のラダー図プログラム作成支援装置。
【請求項3】
前記プログラム編集部は、前記置換処理において、前記部分回路選択部が選択した前記部分回路に属する接点のコイルを含むステップが前記処理対象のラダー図プログラムに出現していれば、このステップ以降に出現している前記部分回路を前記置換回路に置き換えるのを禁止する、請求項1、または2に記載のラダー図プログラム作成支援装置。
【請求項4】
前記プログラム編集部は、前記補助回路挿入処理において、前記部分回路選択部が選択した前記部分回路に属する接点のコイルを含むステップが前記処理対象のラダー図プログラムに出現していれば、このステップと、このステップ以降において前記部分回路が最初に出現しているステップとの間に、前記補助回路生成部が生成した前記補助回路を挿入する、請求項1、または2に記載のラダー図プログラム作成支援装置。
【請求項5】
前記プログラム編集部は、前記処理対象のラダー図プログラムに対して、前記置換回路に置き換えた前記部分回路に属する接点のコイルを含むステップが追加されたとき、この追加されたステップ以降に出現している前記置換回路を対応する前記部分回路に置き換える、請求項1~4のいずれかに記載のラダー図プログラム作成支援装置。
【請求項6】
前記プログラム編集部は、前記処理対象のラダー図プログラムに対して、前記置換回路に置き換えた前記部分回路に属する接点のコイルを含むステップが追加されたとき、この追加されたステップの直後に、前記補助回路生成部が生成した前記補助回路を挿入する、請求項1~4のいずれかに記載のラダー図プログラム作成支援装置。
【請求項7】
処理対象のラダー図プログラムに対して、複数の接点からなる部分回路であって、予め定めている所定回数を超えて出現している部分回路を抽出する抽出ステップと、
前記抽出ステップで抽出した前記部分回路と、その部分回路の出現回数とを対応付けた画面を表示器に表示させる表示ステップと、
前記抽出ステップで抽出され、前記表示器に表示されている前記部分回路を選択する部分回路選択ステップと、
前記部分回路選択ステップで選択した前記部分回路よりも少ない個数の接点からなる置換回路を生成する置換回路生成ステップと、
前記置換回路生成ステップで生成した前記置換回路に、前記部分回路選択ステップで選択した前記部分回路と同じ動作をさせる補助回路を生成する補助回路生成ステップと、
前記処理対象のラダー図プログラムに対して、この処理対象のラダー図プログラムに出現している前記部分回路を、前記置換回路生成ステップで生成した前記置換回路に置き換える置換処理を行うとともに、前記補助回路生成ステップで生成した前記補助回路を前記処理対象のラダー図プログラムに挿入する補助回路挿入処理を行うプログラム編集ステップと、をコンピュータで実行するラダー図プログラム作成支援方法。
【請求項8】
処理対象のラダー図プログラムに対して、複数の接点からなる部分回路であって、予め定めている所定回数を超えて出現している部分回路を抽出する抽出ステップと、
前記抽出ステップで抽出した前記部分回路と、その部分回路の出現回数とを対応付けた画面を表示器に表示させる表示ステップと、
前記抽出ステップで抽出され、前記表示器に表示されている前記部分回路を選択する部分回路選択ステップと、
前記部分回路選択ステップで選択した前記部分回路よりも少ない個数の接点からなる置換回路を生成する置換回路生成ステップと、
前記置換回路生成ステップで生成した前記置換回路に、前記部分回路選択ステップで選択した前記部分回路と同じ動作をさせる補助回路を生成する補助回路生成ステップと、
前記処理対象のラダー図プログラムに対して、この処理対象のラダー図プログラムに出現している前記部分回路を、前記置換回路生成ステップで生成した前記置換回路に置き換える置換処理を行うとともに、前記補助回路生成ステップで生成した前記補助回路を前記処理対象のラダー図プログラムに挿入する補助回路挿入処理を行うプログラム編集ステップと、をコンピュータに実行させるラダー図プログラム作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、PLC(プログラマブルコントローラ)等で実行させるラダー図プログラムの作成を支援する技術に関する。
【背景技術】
【0002】
従来、PLC(プログラマブルコントローラ)で実行させるラダー図プログラムは、パーソナルコンピュータ等の汎用コンピュータで作成し、PLCにアップロードしているケースが多い。汎用コンピュータには、ラダー図プログラムを作成する作成機能、ラダー図プログラムを編集する編集機能、ラダー図プログラムをPLCへアップロードするアップロード機能、ラダー図プログラムをPLCからダウンロードするダウンロード機能等を実行させるプログラムがインストールされている。
【0003】
また、ラダー図プログラムの作成を支援する装置として、特許文献1に記載されたものがある。この特許文献1の装置は、ラダー図プログラムの一部をファンクションブロックプログラム(FBプログラム)に変換する操作を簡単且つ迅速に行うことを目的としたものである。この装置は、オペレータがラダー図プログラム中のFBプログラムに変換したい領域を選択すると、この選択された領域をFBプログラムに変換するのに必要な変数定義用の案内画面を生成し表示する。また、この装置は、オペレータが案内画面の表示にしたがって定義した各変数の内容に基づき、選択された領域のFBプログラムを生成する。さらに、この装置は、案内画面において、各変数の変数種別を、選択された領域のラダー図プログラム中に含まれる各命令のオペランドと既知の情報とに基づいて求められた変数種別情報により定義する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008- 33913号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、同じ部分回路が繰り返し何度も出現するラダー図プログラムは、その規模が大きくなるとともに、煩雑なものになり、可読性、およびデバッグ効率を低下させる。ここで言う部分回路は、複数の接点で構成されるものである。また、接点は、論理的な意味を持つラダー図プログラムの最小単位である。
【0006】
この発明の目的は、同じ部分回路が繰り返し出現するラダー図プログラムを、可読性、およびデバッグ効率を向上させたラダー図プログラムに簡単に編集する技術を提供することにある。
【課題を解決するための手段】
【0007】
この発明のラダー図プログラム作成支援装置は、上記目的を達するために以下のように構成している。
【0008】
部分回路選択部は、ラダー図プログラムにおける複数の接点からなる部分回路を選択する。置換回路生成部は、部分回路選択部が選択した部分回路よりも個数の少ない接点からなる置換回路を生成する。また、補助回路生成部は、置換回路生成部が生成した置換回路に、部分回路選択部が選択した部分回路と同じ動作をさせる補助回路を生成する。
【0009】
そして、プログラム編集部は、ラダー図プログラムに対して、このラダー図プログラムに出現している部分回路を、置換回路生成部が生成した置換回路に置き換える置換処理を行うとともに、補助回路生成部が生成した補助回路をラダー図プログラムに挿入する補助回路挿入処理を行う。
【0010】
したがって、複数の接点からなる部分回路を選択することで、この部分回路が、より接点が少ない置換回路に置き換えられる。また、補助回路をラダー図プログラムに挿入するので、置き換えた置換回路に、対応する部分回路と同じ動作をさせることができる。これにより、ラダー図プログラムの可読性、およびデバッグ効率を向上させることができる。
【0011】
なお、部分回路選択部は、入力指定された複数の接点からなる回路を、部分回路として選択する構成にしてもよい。また、部分回路選択部は、ラダー図プログラムにおいて、複数の接点からなり、且つ予め定めた回数を越えて出現している回路を、部分回路として抽出する構成にしてもよい。この場合、部分回路選択部は、抽出した部分回路を表示する等して、オペレータに提示して置換回路に置き換える部分回路を選択させる構成にしてもよいし、抽出した部分回路を自動的に置換回路に置き換える部分回路として選択する構成にしてもよい。
【0012】
また、ラダー図プログラムにおいて、プログラム編集部が置換処理で置き換えた置換回路が選択されたとき、選択された置換回路に対応する補助回路を出力する補助回路出力部を追加的に備える構成にしてもよい。このように構成すれば、オペレータは、置換回路に対応する補助回路、および部分回路の確認が容易に行える。
【0013】
また、プログラム編集部は、置換処理において、部分回路選択部が選択した部分回路に属する接点のコイルを含むステップがラダー図プログラムに出現していれば、このステップ以降に出現している部分回路を置換回路に置き換えるのを禁止する構成にしてもよい。このように構成すれば、部分回路を置換回路に置き換えることにより、ラダー図プログラムにバグが生じるのを防止できる(部分回路と、この部分回路を置き換えた置換回路との動作状態が異なるのを防止できる。)。
【0014】
また、プログラム編集部は、補助回路挿入処理において、部分回路選択部が選択した部分回路に属する接点のコイルを含むステップがラダー図プログラムに出現していれば、このステップと、このステップ以降において部分回路が最初に出現しているステップとの間に、補助回路生成部が生成した前記補助回路を挿入する構成にしてもよい。このように構成しても、部分回路を置換回路に置き換えることにより、ラダー図プログラムにバグが生じるのを防止できる。
【0015】
また、プログラム編集部は、ラダー図プログラムに対して、置換回路に置き換えた部分回路に属する接点のコイルを含むステップが追加されたとき、この追加されたステップ以降に出現する置換回路を対応する部分回路に置き換える構成にしてもよい。このように構成すれば、オペレータは、部分回路を置換回路に置き換える編集を行ったラダー図プログラムであるかどうかを気にすることなく、このラダー図プログラムに対してステップを追加する編集作業が行える。
【0016】
また、プログラム編集部は、ラダー図プログラムに対して、置換回路に置き換えた部分回路に属する接点のコイルを含むステップが追加されたとき、この追加されたステップの直後に、補助回路生成部が生成した補助回路を挿入する構成にしてもよい。このように構成しても、オペレータは、部分回路を置換回路に置き換える編集を行ったラダー図プログラムであるかどうかを気にすることなく、このラダー図プログラムに対してステップを追加する編集作業が行える。
【発明の効果】
【0017】
この発明によれば、同じ部分回路が繰り返し出現するラダー図プログラムを、可読性、およびデバッグ効率を向上させたラダー図プログラムに簡単に編集できる。
【図面の簡単な説明】
【0018】
図1】ラダー図プログラム作成支援装置の主要部の構成を示すブロック図である。
図2】制御部の機能構成を示すブロック図である。
図3】ラダー図プログラムを示す図である。
図4】ラダー図プログラム作成支援装置の動作を示すフローチャートである。
図5図5(A)は、部分回路、図5(B)は、置換回路、図5(C)は、補助回路を示す図である。
図6】編集したラダー図プログラムを示す図である。
図7】別の例にかかるラダー図プログラムを示す図である。
図8】別の例にかかるラダー図プログラム作成支援装置の動作を示すフローチャートである。
図9】別の例にかかるラダー図プログラム作成支援装置が編集したラダー図プログラムを示す図である。
図10】別の例にかかるラダー図プログラム作成支援装置の動作を示すフローチャートである。
図11】別の例にかかるラダー図プログラム作成支援装置が編集したラダー図プログラムを示す図である。
図12】候補抽出処理を示すフローチャートである。
図13】候補抽出処理の処理結果の表示例を示す図である。
図14図14(A)~(D)は、同一であると判断する部分回路を説明する図である。
図15】表示部による表示画面例を示す図である。
図16】置換適正化処理を示すフローチャートである。
図17】別の例にかかる置換適正化処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、この発明の実施形態であるラダー図プログラム作成支援装置について説明する。
【0020】
図1は、この例にかかるラダー図プログラム作成支援装置の主要部の構成を示すブロック図である。この例のラダー図プログラム作成支援装置1は、制御部2と、入力操作部3と、表示部4と、記憶部5と、入出力部6と、を備えている。このラダー図プログラム作成支援装置1は、ラダー図プログラムを作成する作成機能、ラダー図プログラムを編集する編集機能、ラダー図プログラムをPLCへアップロードするアップロード機能、ラダー図プログラムをPLCからダウンロードするダウンロード機能等を実行させるプログラムをインストールした汎用のコンピュータで実現できる。このコンピュータが、この発明にかかるラダー図プログラム作成支援方法を実行する。また、この発明にかかるラダー図プログラム作成支援プログラムは、このコンピュータにインストールされる。
【0021】
制御部2は、ラダー図プログラム作成支援装置1本体各部の動作を制御する。
【0022】
入力操作部3は、キーボードやマウス等の入力デバイスを有し、オペレータによる入力デバイスの操作に応じた入力を受け付ける。
【0023】
表示部4は、表示器等の表示デバイスを有し、その時点で処理しているラダー図プログラムや、その時点におけるラダー図プログラム作成支援装置1本体の状態等を表示する。
【0024】
記憶部5は、ハードディスクやメモリ等の記憶媒体を有し、ラダー図プログラム作成支援装置1本体の動作に必要なプログラム、データ、ラダー図プログラム等を記憶する。
【0025】
入出力部6は、図示していないPLC(プログラマブルコントローラ)との間で、ラダー図プログラムの入出力(ラダー図プログラムのアップロードや、ダウンロード)等を行う。
【0026】
図2は、制御部の機能構成を示すブロック図である。制御部2は、部分回路選択部21と、置換回路生成部22と、補助回路生成部23と、プログラム編集部24と、補助回路出力部25とを備えている。図2に示すラダー図プログラム20は、その時点で処理しているプログラムであり、制御部2において展開されている。
【0027】
部分回路選択部21は、その時点で処理しているラダー図プログラム20における複数の接点からなる部分回路を選択する。すなわち、部分回路選択部21が選択する部分回路は、複数の接点からなる。接点は、論理的な意味を持つラダー図プログラムの最小単位であり、変数である
置換回路生成部22は、部分回路選択部21が選択した部分回路よりも少ない接点からなる置換回路を生成する。置換回路は、単一の接点からなる回路であるのが好ましい。
【0028】
補助回路生成部23は、置換回路生成部22が生成した置換回路に、部分回路選択部21が選択した部分回路と同じ動作をさせる補助回路を生成する。
【0029】
プログラム編集部24は、ラダー図プログラム20に対して、様々な編集処理を行う。例えば、プログラム編集部24は、ラダー図プログラム20に出現している部分回路を、置換回路に置き換える置換処理を行う。また、プログラム編集部24は、補助回路生成部23が生成した補助回路をラダー図プログラム20の適当な場所に挿入する補助回路挿入処理を行う。補助回路挿入処理では、置換回路生成部22が生成し、置換処理で置換した置換回路が、対応する部分回路と同じ動作になる場所に挿入する。
【0030】
補助回路出力部25は、選択された置換回路に対応する補助回路を出力する。補助回路出力部25が出力した補助回路は、表示部4の表示器等において表示される。
【0031】
以下、この例にかかるラダー図プログラム作成支援装置1の動作について説明する。
【0032】
図3は、ラダー図プログラムを示す図である。図3では、ラダー図プログラム20の一部(n+1ステップ~n+3ステップまでの3ステップ)を示している。1つのステップが、ラダー回路である。すなわち、ラダー図プログラム20は、1つ以上のラダー回路によって構成される。
【0033】
また、図3に示すラダー図プログラム20には、n+1ステップ、n+2ステップ、およびn+3ステップの3つのラダー回路において、接点a、接点b、および接点cが直列に接続された部分回路が出現している。部分回路は、ラダー回路を構成する一部の回路要素である(ラダー回路は、1つの部分回路で構成されない。)。接点aは、変数var1であり、接点bは、変数var2であり、接点cは、変数var3である。また、図3に示すFBは、ファンクションブロックである。
【0034】
図4は、この例のラダー図プログラム作成支援装置の動作を示すフローチャートである。ラダー図プログラム作成支援装置1では、図3に示すラダー図プログラム20が表示部4の表示器に表示される。オペレータは、入力操作部3の入力デバイス(マウス等)を操作して、編集する部分回路を選択する。例えば、オペレータは、処理対象のラダー図プログラム20(表示器に表示されているラダー図プログラム20)に繰り返し何度も出現している部分回路を確認し、その部分回路を選択する。オペレータが選択する部分回路は、複数の接点からなる。言い換えれば、オペレータは、単一の接点を部分回路として選択することはできない。
【0035】
部分回路選択部21が、オペレータによる部分回路の選択を受け付けると(s1)、置換回路生成部22が、今回選択を受け付けた部分回路を置換する置換回路を生成する(s2)。ここでは、オペレータは、接点a、接点b、および接点cが直列に接続された回路を部分回路として選択した場合を例にする。s2では、今回受け付けた部分回路に属する接点の個数(ここでは、接点a、接点b、および接点cの3つ)よりも少ない個数の接点で構成される置換回路を生成する。例えば、部分回路が、複数の接点からなる回路であれば、置換回路を1つの接点Aからなる回路にする。ここでは、接点Aは、変数varAとする。s2で生成する置換回路は、s1で選択された部分回路と同じ動作をさせることができる回路である。
【0036】
なお、置換回路は、2つ以上の接点で構成してもよい。但し、置換回路を構成する接点の個数は、部分回路を構成する接点の個数よりも少ないことが条件である。
【0037】
補助回路生成部23は、置換回路生成部22がs2で生成した置換回路に、s1で選択を受け付けた部分回路と同じ動作をさせるための補助回路を生成する(s3)。例えば、補助回路生成部23は、接点a、接点b、および接点cが直列に接続された部分回路(図5(A)参照)が選択され、且つ接点A(図5(B)参照)が、この部分回路の置換回路として生成されている場合、図5(C)に示す補助回路を生成する。この補助回路は、図示するように、直列に接続された接点a、接点b、接点c、および接点AのコイルAを直列に接続した回路である。補助回路は、ラダー図プログラム20の1つのステップとして用いる。すなわち、補助回路は、ラダー回路である。
【0038】
プログラム編集部24は、処理対象のラダー図プログラム20に対して、s3で生成した補助回路を、s1で選択を受け付けた部分回路の直前のステップに挿入する(s4)。例えば、プログラム編集部24は、図3に示すn+1ステップのラダー回路に出現している、接点a、接点b、および接点cが直列に接続された回路が部分回路として選択された場合、s3で生成した補助回路を、処理対象のラダー図プログラム20のnステップに挿入する(実際には、挿入した補助回路が処理対象のラダー図プログラム20におけるn+1ステップのラダー回路になり、これ以降のラダー回路のステップ番号が1つずつカウントアップされる。)。
【0039】
プログラム編集部24は、処理対象のラダー図プログラム20に対して、s4で補助回路を挿入したステップ以降のステップを順番に検索し、s1で選択を受け付けた部分回路が出現しているラダー回路(ステップ)を抽出すると(s5)、ここで抽出したラダー回路に出現している部分回路を、s2で生成した置換回路に置き換える(s6)。プログラム編集部24は、s5、およびs6の処理を繰り返す。プログラム編集部24は、s1で選択を受け付けた部分回路が出現しているラダー回路を処理対象のラダー図プログラム20から抽出できなければ(処理対象のラダー図プログラム20の最後のステップであるラダー回路に対して、s5、およびs6にかかる処理が完了すると)、本処理を終了する。
【0040】
例えば、図3のラダー図プログラム20では、プログラム編集部24は、ステップn+1、n+2、およびn+3のラダー回路に出現している部分回路(接点a、接点b、および接点cが直列に接続された回路)を、順番に置換回路(接点A)に置き換える。図6は、図3に示したラダー図プログラム20を、上述した処理によって編集したラダー図プログラム20を示す図である。したがって、ラダー図プログラム20は、複数の接点からなる部分回路を、より個数の少ない接点からなる置換回路に簡単に置き換えられる。これにより、ラダー図プログラム20の可読性、およびデバッグ効率を向上させることができる。
【0041】
次に、ラダー図プログラム作成支援装置の別の例について説明する。この別の例にかかるラダー図プログラム作成支援装置1のハードウェアは、上記した例と同じである。この別の例にかかるラダー図プログラム作成支援装置1は、図4に示した処理に換えて、後述する図8に示す処理を行う点で、上記の例と異なる。
【0042】
図7は、ラダー図プログラムの別の例を示す図である。図7に示すラダー図プログラム20は、図3に示したラダー図プログラムにn+4ステップ、およびn+5ステップを追加したものである。n+4ステップは、接点aのコイルaを含むラダー回路である。また、n+5ステップは、n+1ステップ~n+3ステップと同様に、接点a、接点b、および接点cが直列に接続された部分回路が出現しているラダー回路である。
【0043】
図8は、この別の例のラダー図プログラム作成支援装置の動作を示すフローチャートである。図8では、図4と同じ処理については、同じステップ番号(s#)を付している。この別の例にかかるラダー図プログラム作成支援装置1も、上記したs1~s5の処理を実行する。
【0044】
プログラム編集部24は、s5において、s1で選択を受け付けた部分回路が出現しているラダー回路を処理対象のラダー図プログラム20から抽出すると、以下に示す処理を行う。
【0045】
プログラム編集部24は、処理対象のラダー図プログラム20において、s4で補助回路を挿入したステップと、今回s5で抽出した部分回路が出現しているラダー回路との間に、この部分回路に属する接点のコイルを含むラダー回路(該当するラダー回路)があるかどうかを判定する(s10)。プログラム編集部24は、該当するラダー回路が無ければ、今回抽出したラダー回路に出現している部分回路を、s2で生成した置換回路に置き換える(s6)。また、プログラム編集部24は、s10で該当するラダー回路があると判定すると、今回抽出したラダー回路に出現している部分回路を、s2で生成した置換回路に置き換えることなく、本処理を終了する。
【0046】
例えば、図7のラダー図プログラム20では、プログラム編集部24は、ステップn+1、n+2、およびn+3のラダー回路に出現している部分回路(接点a、接点b、および接点cが直列に接続された回路)を、置換回路(接点A)に置き換えるが、ステップn+4が今回選択を受け付けた部分回路に属する接点aのコイルを含むラダー回路であるので、ステップn+5のラダー回路に出現している部分回路については、置換回路(接点A)に置き換えない。図9は、図7に示したラダー図プログラム20を、上述した処理によって編集したラダー図プログラム20を示す図である。したがって、ラダー図プログラム20を図8に示した処理で編集しても、編集したラダー図プログラム(図9に示すラダー図プログラム)において、ステップn+5でバグが生じることはない。
【0047】
さらに、ラダー図プログラム作成支援装置の別の例について説明する。この別の例にかかるラダー図プログラム作成支援装置1のハードウェアは、上記した2つの例と同じである。この別の例にかかるラダー図プログラム作成支援装置1は、図4または図8に示した処理に換えて、図10に示す処理を行う点で、上記の例と異なる。
【0048】
図10は、この別の例にかかるラダー図プログラム作成支援装置の動作を示すフローチャートである。図10では、図4、または図8で示した処理と同じ処理については、同じステップ番号(s#)を付している。この別の例にかかるラダー図プログラム作成支援装置1においても、プログラム編集部24が、上記したs1~s5の処理を実行する。また、プログラム編集部24は、s10で、処理対象のラダー図プログラム20において、s4で補助回路を挿入したステップと、今回s5で抽出した部分回路が出現しているラダー回路との間に、この部分回路に属する接点のコイルを含むラダー回路(該当するラダー回路)があるかどうかを判定する。プログラム編集部24は、該当するラダー回路が無ければ、今回抽出したラダー回路に出現している部分回路を、s2で生成した置換回路に置き換える(s6)。また、プログラム編集部24は、s10で該当するラダー回路があると判定すると、s3で生成した補助回路を、今回s5で抽出したラダー回路の直前のステップに挿入する(s11)。さらに、プログラム編集部24は、s5で今回抽出したラダー回路の部分回路をs2で生成した置換回路に置き換える(s6)。プログラム編集部24は、s5、s6、s10、およびs11にかかる処理を繰り返す。プログラム編集部24は、s5において、s1で選択を受け付けた部分回路が出現しているラダー回路を処理対象のラダー図プログラム20から抽出できなければ、本処理を終了する。
【0049】
なお、s11で補助回路を挿入する位置は、今回s5で抽出したラダー回路の直前のステップに限らず、s1で選択を受け付けた部分回路に属する接点のコイルを含むラダー回路にかかるステップと、今回s5で抽出したラダー回路の直前のステップとの間であればどこに挿入してもよい。
【0050】
この図10に示す処理では、ラダー図プログラム20に対して、s1で選択を受け付けた全ての部分回路を、s2で生成した置換回路に置換することができる。図11は、図7に示したラダー図プログラムを、図10に示した処理によって編集したラダー図プログラムを示す図である。したがって、ラダー図プログラム20を図10に示した処理で編集しても、編集したラダー図プログラム20(図11に示すラダー図プログラム20)において、ステップn+6(図3のステップn+5に対応する。)でバグが生じることもない。
【0051】
また、ラダー図プログラム作成支援装置1は、図12に示す処理を部分回路選択部21に実行させる構成にしてもよい。図12は、処理対象のラダー図プログラムに対して、置換する部分回路の候補を抽出する候補抽出処理を示すフローチャートである。
【0052】
部分回路選択部21は、処理対象のラダー図プログラム20に対して、予め定めている所定回数(例えば、5回)を越えて出現している部分回路を抽出する(s21)。ラダー図プログラム作成支援装置1は、部分回路選択部21がs21で抽出した部分回路をリスト化し、表示部4の表示器に表示する出力処理を行う(s22)。
【0053】
図13は、s12の出力処理で、表示器に表示される画面を示す図である。図13に示すように、表示部4は、s21で抽出した部分回路と、その出現回数と、を対応付けて表示する。
【0054】
また、ラダー図プログラム作成支援装置1は、オペレータが図13に示す画面において、部分回路を選択する操作を行うと、上述した図4図8、または図11に示すいずれかの処理を実行する構成にしてもよい。また、ラダー図プログラム作成支援装置1は、出現回数が最も多い部分回路を自動的に選択し、上述した図4図8、または図11に示すいずれかの処理を実行する構成にしてもよい。
【0055】
なお、上記のいずれの例において、ラダー図プログラム作成支援装置1は、接点の接続形態が一致していなくても、接点が同じで、且つ同じ動作をする回路を同一の部分回路であると判断する。
【0056】
変数がvar1の接点a、変数がvar2の接点b、および変数がvar3の接点cが直列に接続された部分回路を例にすると、ラダー図プログラム作成支援装置1は、図14(A)~(D)に示す回路を、同一の部分回路であると判断する。図14(A)は、接点a、接点b、および接点cをこの順番に直列に接続した回路である。図14(B)は、接点a、接点c、および接点bをこの順番に直列に接続した回路である。図14(C)は、接点b、接点c、および接点aをこの順番に直列に接続した回路である。図14(D)は、接点a、接点c、および接点bをこの順番に直列に接続し、且つ接点cと接点bとの間に変数がvarXの接点xを直列に挿入した回路である。
【0057】
また、ラダー図プログラム作成支援装置1は、上述した図4図8、または図11に示すいずれかの処理で編集されたラダー図プログラムにおいて、置換されている置換回路が選択されたとき、選択された置換回路に対応する補助回路を表示部4の表示器に表示する(図15参照)。図15は、破線で示す円で囲んだ変数がvarAの接点Aが選択されたときに、この選択された接点Aに対応する補助回路を画面下(破線で示す矩形で囲んだ領域)に表示する例を示している。
【0058】
また、ラダー図プログラム作成支援装置1は、図4図8、または図11に示すいずれかの処理で編集されたラダー図プログラムに対して、オペレータがステップ(ラダー回路)を追加する編集を行うと、図16に示す置換適正化処理を行う。
【0059】
プログラム編集部24は、オペレータの操作によって追加されたステップのラダー回路が、図4図8、または図11に示すいずれかの処理で置換回路に置き換えた部分回路に属する接点のコイル(対象コイル)を含んでいるかどうかを判定する(s31)。プログラム編集部24は、今回追加されたステップのラダー回路が、対象コイルを含んでいなければ、本処理を終了する。また、プログラム編集部24は、今回追加されたステップのラダー回路が、対象コイルを含んでいれば、今回追加されたステップ以降に出現する各置換回路を、対応する部分回路に戻し(s32)、本処理を終了する。
【0060】
したがって、図4図8、または図11に示すいずれかの処理で編集されたラダー図プログラムに対して、オペレータがステップを追加する編集を行っても、図4図8、または図11に示すいずれかの処理で部分回路を置換回路に置き換えたステップでバグが生じることがない。また、オペレータは、図4図8、または図11に示すいずれかの処理で編集されたラダー図プログラムであるかどうかを気にすることなく、ステップ(ラダー回路)を追加する編集作業が行える。
【0061】
また、図13に示した置換適正化処理は、図17に示す処理としてもよい。図17では、上記s32にかかる処理に換えて、今回追加されたステップ(ラダー回路)の直後に、対応する補助回路を挿入し(s33)、本処理を終了する。これにより、上記と同様の効果を奏する。
【符号の説明】
【0062】
1…ラダー図プログラム作成支援装置
2…制御部
3…入力操作部
4…表示部
5…記憶部
6…入出力部
20…ラダー図プログラム
21…部分回路選択部
22…置換回路生成部
23…補助回路生成部
24…プログラム編集部
25…補助回路出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17