(57)【要約】【課題】機械制御プログラム中のレジスタへの参照の入れ替えをするにあたり、作業負担を低減し、ヒューマンエラーを防止することにより、機械制御プログラムの生産性を高める。【解決手段】機械制御プログラム作成装置１は、機械制御プログラムを記憶する記憶部３と、第１のレジスタ及び第２のレジスタを指定するレジスタ指定部７と、記憶部３に記憶された前記機械制御プログラム中の前記第１のレジスタへの参照と、前記第２のレジスタへの参照を入れ替える入れ替え部９と、を有する。【選択図】図２
2017027259.tif 000002
【特許請求の範囲】
【請求項１】
機械制御プログラムを記憶する記憶部と、
第１のレジスタ及び第２のレジスタを指定するレジスタ指定部と、
前記記憶部に記憶された前記機械制御プログラム中の前記第１のレジスタへの参照と、前記第２のレジスタへの参照を入れ替える入れ替え部と、
を有する機械制御プログラム作成装置。
【請求項２】
前記レジスタ指定部は、前記第１のレジスタ及び前記第２のレジスタとして複数のレジスタを指定可能である請求項１に記載の機械制御プログラム作成装置。
【請求項３】
前記レジスタ指定部は、入れ替えに係るレジスタの範囲を指定する範囲指定部を有する請求項２に記載の機械制御プログラム作成装置。
【請求項４】
前記入れ替え部は、
前記機械制御プログラム中の命令を特定方向に読み込み、
前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第２のレジスタへの参照に置き換え、
前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に非該当且つ前記第２のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第１のレジスタへの参照に置き換える、
請求項１〜３のいずれか１項に記載の機械制御プログラム作成装置。
【請求項５】
前記第１のレジスタ及び前記第２のレジスタから、レジスタの重複の無い単一の変換テーブルを作成する変換テーブル作成部を有し、
前記入れ替え部は、
前記機械制御プログラム中の命令を特定方向に読み込み、
前記変換テーブルに基いて、前記命令に含まれるレジスタへの参照を置き換える、
請求項１〜３のいずれか１項に記載の機械制御プログラム作成装置。
【請求項６】
コンピュータを、請求項１〜５のいずれか１項に記載の機械制御プログラム作成装置として機能させるためのコンピュータプログラム。
【請求項７】
機械制御プログラムに含まれる第１のレジスタ及び第２のレジスタを指定し、
前記機械制御プログラム中の命令を特定方向に読み込み、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第２のレジスタへの参照に置き換え、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に非該当且つ前記第２のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第１のレジスタへの参照に置き換える、
機械制御プログラム中のレジスタへの参照の入れ替え方法。
【請求項８】
機械制御プログラムに含まれる第１のレジスタ及び第２のレジスタを指定し、
前記第１のレジスタ及び前記第２のレジスタから、レジスタの重複の無い単一の変換テーブルを作成し、
前記機械制御プログラム中の命令を特定方向に読み込み、前記変換テーブルに基いて、前記命令に含まれるレジスタへの参照を置き換える、
機械制御プログラム中のレジスタへの参照の入れ替え方法。
【請求項９】
変数への参照を含む、コンピュータにより実行可能な電子データを記憶する記憶部と、
第１の変数及び第２の変数を指定する変数指定部と、
前記記憶部に記憶された前記電子データ中の前記第１の変数への参照と、前記第２の変数への参照を入れ替える入れ替え部と、
を有するコンピュータにより実行可能な電子データ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械制御プログラム作成装置、コンピュータプログラム、機械制御プログラム中のレジスタへの参照の入れ替え方法及びコンピュータにより実行可能な電子データ作成装置に関する。
【背景技術】
【０００２】
ラダープログラム等の機械制御プログラムをコンピュータ上で作成及び編集することが一般に行われている。機械制御プログラムは、ＰＬＣ（プログラマブルロジックコントローラ）等のコントローラにおいて実行され、コントローラ内部のレジスタ（いわゆる接点）の状態を変化させることにより、当該コントローラに接続された各種の機械要素の制御を行う。
【０００３】
ここで、コントローラと機械要素との接続位置が異なると、当該機械要素に対応するレジスタも異なるものが割り当てられることとなるため、一旦機械制御プログラムを作成した後に、コントローラに対する機械要素の接続位置を変更したり、あるコントローラについて作成された機械制御プログラムを、かかるコントローラと機械要素の接続位置が異なる他のコントローラにおいて流用しようとすると、機械制御プログラム中のレジスタへの参照（例えば、レジスタ名）を機械要素との接続状態に応じて変更しなければならない。
【０００４】
機械制御プログラムの作成及び編集をするコンピュータプログラムにおいて、機械制御プログラム中のあるレジスタへの参照を、他のレジスタへの参照に置き換える機能を備えるものは既に知られている。このとき、あるレジスタへの参照（これを「第１のレジスタ」と称する）と、他のレジスタへの参照（これを「第２のレジスタ」と称する）を入れ替えようとする場合には、あるレジスタへの参照を一旦使用されていない別のレジスタへの参照（これを「第３のレジスタ」と称する）に置き換え、次いで第２のレジスタを第１のレジスタへと置き換え、さらに第３のレジスタを第１のレジスタに置き換える作業が必要であり、煩雑で且つヒューマンエラーを誘発しやすい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の解決しようとする課題は、機械制御プログラム中のレジスタへの参照の入れ替えをするにあたり、作業負担を低減し、ヒューマンエラーを防止することにより、機械制御プログラムの生産性を高めることである。
【課題を解決するための手段】
【０００６】
本発明の一側面に係る機械制御プログラム作成装置は、機械制御プログラムを記憶する記憶部と、第１のレジスタ及び第２のレジスタを指定するレジスタ指定部と、前記記憶部に記憶された前記機械制御プログラム中の前記第１のレジスタへの参照と、前記第２のレジスタへの参照を入れ替える入れ替え部と、を有する。
【０００７】
また、本発明の一側面に係る機械制御プログラム作成装置では、前記レジスタ指定部は、前記第１のレジスタ及び前記第２のレジスタとして複数のレジスタを指定可能であってよい。
【０００８】
また、本発明の一側面に係る機械制御プログラム作成装置では、前記レジスタ指定部は、入れ替えに係るレジスタの範囲を指定する範囲指定部を有してよい。
【０００９】
また、本発明の一側面に係る機械制御プログラム作成装置では、前記入れ替え部は、前記機械制御プログラム中の命令を特定方向に読み込み、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第２のレジスタへの参照に置き換え、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に非該当且つ前記第２のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第１のレジスタへの参照に置き換えてよい。
【００１０】
また、本発明の一側面に係る機械制御プログラム作成装置は、前記第１のレジスタ及び前記第２のレジスタから、レジスタの重複の無い単一の変換テーブルを作成する変換テーブル作成部を有し、前記入れ替え部は、前記機械制御プログラム中の命令を特定方向に読み込み、前記変換テーブルに基いて、前記命令に含まれるレジスタへの参照を置き換えてよい。
【００１１】
また、本発明の別の一側面に係るコンピュータプログラムは、コンピュータを、上述のいずれかの機械制御プログラム作成装置として機能させる。
【００１２】
また、本発明の別の一側面に係る機械制御プログラム中のレジスタへの参照の入れ替え方法は、機械制御プログラムに含まれる第１のレジスタ及び第２のレジスタを指定し、前記機械制御プログラム中の命令を特定方向に読み込み、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第２のレジスタへの参照に置き換え、前記命令に含まれるレジスタへの参照が前記第１のレジスタへの参照に非該当且つ前記第２のレジスタへの参照に該当する場合に、当該レジスタへの参照を対応する前記第１のレジスタへの参照に置き換える。
【００１３】
また、本発明の別の一側面に係る機械制御プログラム中のレジスタへの参照の入れ替え方法は、機械制御プログラムに含まれる第１のレジスタ及び第２のレジスタを指定し、前記第１のレジスタ及び前記第２のレジスタから、レジスタの重複の無い単一の変換テーブルを作成し、前記機械制御プログラム中の命令を特定方向に読み込み、前記変換テーブルに基いて、前記命令に含まれるレジスタへの参照を置き換える。
【００１４】
また、本発明の別の一側面に係るコンピュータにより実行可能な電子データ作成装置は、変数への参照を含む、コンピュータにより実行可能な電子データを記憶する記憶部と、第１の変数及び第２の変数を指定する変数指定部と、前記記憶部に記憶された前記電子データ中の前記第１の変数への参照と、前記第２の変数への参照を入れ替える入れ替え部と、を有する。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る機械制御プログラム作成装置の物理的な構成例を示すブロック図である。
【図２】本発明の実施形態に係る機械制御プログラム作成装置の機能的な構成例を示す機能ブロック図である。
【図３】機械制御プログラム作成装置における、レジスタの入れ替えの指示をするためのＧＵＩを示す図である。
【図４】機械制御プログラム作成装置において、複数のレジスタに対し入れ替えを指示する場合のＧＵＩを示す図である。
【図５】入れ替え部により実行される処理のフロー図である。
【図６】入れ替え部により実行される処理の別実施例を示すフロー図である。
【発明を実施するための形態】
【００１６】
図１は本発明の実施形態に係る機械制御プログラム作成装置１の物理的な構成例を示すブロックである。機械制御プログラム作成装置１としては一般的なコンピュータを用いてよく、本実施形態においても、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１ａ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１ｂ、外部記憶装置１ｃ、ＧＣ（Ｇｒａｐｈｉｃｓ  Ｃｏｎｔｒｏｌｌｅｒ）１ｄ、入力デバイス１ｅ及びＩ／Ｏ（Ｉｎｐｕｒ／Ｏｕｔｐｕｔ）１ｆがデータバス１ｇにより相互に電気信号のやり取りができるよう接続されている一般的なコンピュータを用いている。ここで、外部記憶装置１ｃはＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の静的に情報を記録できる装置である。またＧＣ１ｄからの信号はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やいわゆるフラットパネルディスプレイ等の、使用者が視覚的に画像を認識するモニタ１ｈに出力され、画像として表示される。入力デバイス１ｅはキーボードやマウス、タッチパネル等の、ユーザが情報を入力するための機器であり、Ｉ／Ｏ１ｆは機械制御プログラム作成装置１が外部の機器と情報をやり取りするためのインタフェースである。コンピュータを機械制御プログラム作成装置１として機能させるためのアプリケーションプログラムは外部記憶装置１ｃにインストールされ、必要に応じてＲＡＭ１ｂに読みだされてＣＰＵ１ａにより実行される。また、かかるプログラムは、適宜の光ディスク、光磁気ディスク、フラッシュメモリ等の適宜のコンピュータ可読情報記録媒体に記録されて提供されても、インターネット等の情報通信回線を介して提供されてもよく、さらに、Ｉ／Ｏ１ｆを介して外部のネットワークに接続されたサーバにより機械制御プログラム作成装置１としての機能が提供される、いわゆるクラウドコンピューティングにより提供されてもよい。
【００１７】
本明細書では、機械制御プログラムという語を、コントローラにより実行され、機械要素を制御するためのコンピュータプログラムの意で用いる。ここで言うコントローラは、機械要素を電子的・電気的に制御する機器であり、具体的には、ＰＬＣやサーボコントローラ等が含まれる。機械制御プログラムには、各種のコントローラで用いられるプログラムが含まれ、具体的には、ラダーチャートやＳＦＣ（シーケンシャルファンクションチャート）、Ｃ言語によるプログラムやタイムチャート等が含まれる。
【００１８】
また、本明細書では、機械要素という語を、コントローラに接続され制御される物理的な要素の意で用いる。具体的には、機械要素には、サーボモータやステップモータ等のアクチュエータ、それらのコントローラ、スイッチやランプ、ソレノイドや油空圧バルブ等の各種自動化機器を含む。
【００１９】
図２は本発明の実施形態に係る機械制御プログラム作成装置１の機能的な構成例を示す機能ブロック図である。本図に示す各機能ブロックは、上述の機械制御プログラム作成装置１の物理的構成を用いて、例えば、ＣＰＵ１ａにより所定のプログラムを実行したり、ＲＡＭ１ｂや外部記憶装置１ｃに所定の情報を記憶する領域を割り当てたりすることにより仮想的に実現されており、機械制御プログラム作成装置１が有する機能に着目して個別に示したものである。従って、本図に示す機能ブロックは必ずしも機械制御プログラム作成装置１の物理的構成や、機械制御プログラム作成装置１が実行するプログラム自体が機能ブロック毎に区分されることを意味しない。また、本図には機械制御プログラム作成装置１が有する全ての機能が示されているわけではなく、本発明と技術的関連の低い部分は省略されている。
【００２０】
機械制御プログラム作成部２は、ユーザからの入力をＧＵＩ（グラフィックスユーザインタフェース）等により受け付け、入力内容に従って機械制御プログラムを作成する機能を実現する部分である。種々の機械制御プログラムを作成する手法と、そのインタフェースは公知であるのでここでは詳細は割愛するが、作成された機械制御プログラムは記憶部３に記憶される。
【００２１】
記憶部３は、作成された機械制御プログラムを記憶する部分である。機械制御プログラムは、表示部４により整形され、モニタ１ｈにより、ユーザが理解できる態様で表示される。
【００２２】
出力部５は、作成された機械制御プログラムを外部の機器、例えばＰＬＣ６へと出力する部分である。ＰＬＣ６は、機械制御プログラム作成装置１から転送された機械制御プログラムをＰＬＣ６自身の内部に保持し、実行することにより、各種の機械要素の制御を行う。
【００２３】
レジスタ指定部７は、入れ替えに係るレジスタを指定する部分である。ここで、入れ替え元のレジスタを第１のレジスタ、入れ替え先のレジスタを第２のレジスタと称すると、レジスタ指定部７は、第１のレジスタ及び第２のレジスタを指定する機能を有することになる。この指定は、後ほど具体例に示すように、適宜のＧＵＩを用いたものであってよい。
【００２４】
さらに、本実施形態では、レジスタ指定部７は範囲指定部８を含む。範囲指定部８は、入れ替えに係るレジスタの範囲を指定する部分である。範囲指定部８の技術的意義や動作については後述する。
【００２５】
入れ替え部９は、記憶部３に記憶された機械制御プログラム中の第１のレジスタへの参照と、第２のレジスタへの参照を入れ替える機能を有する部分である。ここで、第１のレジスタと第２のレジスタは、レジスタ指定部７により指定されたレジスタである。これにより、記憶部３に記憶された機械制御プログラムは更新されることになる。
【００２６】
なお、ここで「レジスタ」は通常の意味で用いている。すなわち、フリップフロップ等の回路により状態を保持することのできる論理回路であって、一般に記憶容量が小容量のものをさす。機械制御プログラムが、ラダープログラムである場合は、いわゆる「接点」と、ラダープログラム中で使用される変数がここでのレジスタに該当する。
【００２７】
変換テーブル作成部１０は、入れ替え部９が実行する処理のアルゴリズムによっては必要となる部分であり、第１のレジスタ及び第２のレジスタから、レジスタの重複の無い単一の変換テーブルを作成する。この変換テーブル作成部１０の技術的意義や動作については後述する。
【００２８】
図３は、機械制御プログラム作成装置１における、レジスタの入れ替えの指示をするためのＧＵＩを示す図である。同図には、機械制御プログラム作成装置１において、レジスタの入れ替えをするためのコマンドを入力した際に、レジスタ指定部７によりモニタ１ｈ上に表示されるダイアログ１００が示されている。なお、本実施形態の機械制御プログラム作成装置１では、レジスタの置き換えの機能も同時に有しており、ダイアログ１００は置き換えと入れ替えとで共通のものを使用している。
【００２９】
ダイアログ１００中、「検索レジスタ」として示されるボックス１０１は、第１のレジスタをユーザが入力し指定する領域である。また、「置換レジスタ」として示されるボックス１０２は、第２のレジスタをユーザが入力し指定する領域である。ここでは、第１のレジスタとしてレジスタ１が、第２のレジスタとしてレジスタ２が指定されている。
【００３０】
チェックボックス１０３は、レジスタの置換をするか、入れ替えをするかをユーザが指定する領域である。前述の通り、このダイアログ１００はレジスタの置換と入れ替えとで共通のものを用いており、このチェックボックス１０３にチェックを入れることでレジスタの入れ替えの指定がなされる。なお、このチェックボックス１０３にチェックがなされていない場合には、単純に第１のレジスタを第２のレジスタで置き換える、置換の処理が指定されることになる。
【００３１】
「対象プログラム指定」として示されるボックス１０４は、記憶部３内に複数の機械制御プログラムが記憶されている場合に、レジスタの入れ替えの処理をどの機械制御プログラムに適用するかをユーザが指定する領域である。本実施形態では、ボックス１０４内に、記憶部３内に記憶されている機械制御プログラム名がチェックボックスを付されて一覧表示される。ユーザは、所望の機械制御フログラムの名前に付されたチェックボックスにチェックを入れることにより、どの機械制御プログラムにレジスタの入れ替えの処理を適用するかを指定できる。この例では、ラダープログラム１が指定されている。
【００３２】
第１のレジスタ及び第２のレジスタ、及び適用すべき機械制御プログラムの指定後、実行ボタン１０５を選択することにより、入れ替え部９により、指定された機械制御プログラム中の第１のレジスタへの参照と、第２のレジスタへの参照を入れ替える処理がなされる。これにより、機械制御プログラム中のレジスタへの参照の入れ替えをするにあたり、第１のレジスタを一旦第３のレジスタに置き換える退避の作業を不要とし、操作が単純になることで作業負担が低減されるとともにヒューマンエラーの発生可能性が低減される。また、レジスタの入れ替えの処理にあたり、一時的に使用される第３のレジスタを用意する必要が無いため、無駄なレジスタを用意する必要が無く、メモリの使用効率もまた改善される。
【００３３】
なお、本実施形態の機械制御プログラム作成装置１は、レジスタの入れ替えを単一のレジスタについて行うのみならず、複数のレジスタに対しまとめて行う機能を有している。単一のレジスタに対し入れ替えを行うか、複数のレジスタに対し入れ替えを行うかは、ダイアログ１００中のタブを選択することにより切り替えることができる。図３では、個別タグ１０６が選択され、単一のレジスタに対し入れ替えを行う場合のダイアログ１００が示されている。
【００３４】
図４は、機械制御プログラム作成装置１において、複数のレジスタに対し入れ替えを指示する場合のＧＵＩを示す図である。本実施形態では、ダイアログ１００中の範囲タブ１０６を選択することにより、図４に示した表示に切り替わる。
【００３５】
図４に示したダイアログ１００では、置き換え又は入れ替えを指示する複数の条件を入力することができるようになっている。それらの条件は、条件入力領域１０８に入力される。
【００３６】
条件入力領域１０８では、個々の行が１つの条件を示しており、それぞれ、検索元、種別、置換先、サイズ及び対象プログラムを指定するようになっている。複数の条件が入力された場合には、条件入力領域には条件の数に等しい行数だけ条件が示され、個々の条件には番号がつけられて区別されている。図４に示した例では、番号１〜３の３つの条件が入力されている状態が示されている。それぞれの条件に付された番号は、各行の左端に示されている。
【００３７】
検索元は、それぞれの条件において、第１のレジスタを指定する領域である。図４の１番の条件では、レジスタ１が指定されている。また、置換先は、第２のレジスタを指定する領域である。ここでは、レジスタ３が指定されている。そして、種別は、置換か入れ替えかを指定する領域である。この例では、双方向の矢印が入れ替えを、右向きの矢印が置換を示しているから、１番の条件では、入れ替えが指定されていることになる。
【００３８】
さらに、ここで示したダイアログ１００では、サイズの欄があり、レジスタ指定部７に含まれる範囲指定部８により、入れ替えに係るレジスタの範囲が指定できるようになっている。これにより、複数のレジスタをまとめて入れ替える指定が可能となっている。この範囲の指定は、どのような入力方式によってもよく、逐一対象となるレジスタを指定してもよいし、対象となるレジスタを列挙した電子ファイルを読み込む等してもよいが、本実施形態では、対象となるレジスタの個数を数値で指定する。この場合、検索元及び置換先で指定されたレジスタは、指定された範囲の先頭のレジスタを示すものと解釈され、かかるレジスタから指定された個数分のレジスタまでが指定された範囲に含まれることになる。図示した１番の条件では、検索元としてレジスタ１〜レジスタ５が第１のレジスタとして指定され、又、置換先として、レジスタ３〜レジスタ７が第２のレジスタとして指定されることになる。なお、ここで示したように、検索元の範囲と、置換先の範囲が一部重複するような指定も可能である。
【００３９】
対象プログラムの欄は、レジスタの入れ替えの対象となる機械制御プログラムを指定する欄である。その意味するところは、図３のボックス１０４と同様である。
【００４０】
なお、ここで示した２番の条件は、種別が右向きの矢印、すなわち、置換を指定するものとなっており、サイズが３であるから、レジスタ１０〜１２をレジスタ２０〜２３で置き換える処理を指定する条件となっている。
【００４１】
また、３番の条件のように、検索元と置換先の指定は、必ずしも、レジスタ番号によるものでなくともよく、複数のレジスタをまとめる任意の単位を指定することによってもよい。そのような単位としては、例えば、特定の機械要素が決まった個数のレジスタを占有することが分かっている場合、その機械要素自身を単位とすることが挙げられる。３番の条件として挙げた例では、サーボ軸の軸番号を指定することにより、機械要素としてのサーボコントローラが使用する複数のレジスタをまとめて指定するものとなっている。このような指定では、検索元と、置換先の指定は、同種の機械要素を指定するものとなり、ここでは、サーボ軸１とサーボ軸２がそれぞれ用いるレジスタを入れ替える指定となっている。なお、この場合にはサイズの指定はなされない。
【００４２】
機械制御プログラム作成装置１は、このようにダイアログ１００に複数の条件が入力された状態で、実行ボタン１０５が選択されると、各条件を番号順に逐次実行する。このようにすることで、機械制御プログラム中に対し、レジスタへの置換や入れ替えを複数回実施するような場合に、当該処理をまとめて実行できるため、作業効率が向上し、また、それぞれの置換や入れ替えを実行済みであるのかそうでないのかを取り違えるなど、ヒューマンエラーが生じる可能性を低減できる。
【００４３】
また、第１のレジスタ及び第２のレジスタとして複数のレジスタを指定できるから、複数のレジスタへの参照をまとめて入れ替える場合に、個々のレジスタに対し逐一入れ替えの操作をする必要が無く、作業効率が向上するとともにヒューマンエラーが生じる可能性を低減できる。さらに、範囲指定部８により、入れ替えに係るレジスタの範囲を一括で指定することで、第１のレジスタとして指定された範囲の大きさと第２のレジスタとして指定された範囲の大きさが食い違う等の入力ミスの発生を未然に防止できる。
【００４４】
なお、ダイアログ１００の範囲タブ１０７には、インポートボタン１０９及びエクスポートボタン１１０が設けられており、条件入力領域１０８に入力された条件を外部ファイルとして保存し、或いは保存された外部ファイルから呼び出すことができるようになっている。これにより、複数の機械制御プログラムに対し、同様の条件によるレジスタへの参照の入れ替えを行う際に、条件の入力が一度で済み、作業効率が向上するとともに、入力ミスによるヒューマンエラーが生じる可能性を低減できる。
【００４５】
続いて、入れ替え部９による、レジスタへの参照の入れ替えの具体的処理を図５を参照して説明する。図５は、入れ替え部９により実行される処理のフロー図である。
【００４６】
実行ボタン１０５が選択されると、ステップＳＴ０１において、機械制御プログラム中の命令を特定の方向、例えば、本実施形態では先頭から最後尾に向かう順となるように読み込む。最初にステップＳＴ０１が実行された際には、機械制御プログラムの先頭の命令が読み込まれることになる。
【００４７】
続くステップＳＴ０２で、読み込まれた命令に含まれるレジスタへの参照が、第１のレジスタへの参照に該当するか否かが判定される。該当する場合には、ステップＳＴ０３へと進み、該当するレジスタへの参照が、対応する第２のレジスタへの参照に置き換えられる。このステップＳＴ０３での処理では、図４の１番として示した条件を例にとれば、次のような置き換えがなされることになる。
レジスタ１→レジスタ３
レジスタ２→レジスタ４
レジスタ３→レジスタ５
レジスタ４→レジスタ６
レジスタ５→レジスタ７
【００４８】
一方、ステップＳＴ０２で、読み込まれた命令に含まれるレジスタへの参照が、第１のレジスタへの参照に該当しないと判定された場合には、ステップＳＴ０４へと進み、読み込まれた命令に含まれるレジスタへの参照が、第２のレジスタへの参照に該当するか否かが判定される。該当する場合には、ステップＳＴ０５へと進み、該当するレジスタへの参照が、対応する第１のレジスタへの参照に置き換えられる。このステップＳＴ０５での処理では、図４の１番として示した条件を例にとれば、次のような置き換えがなされることになる。
レジスタ３→レジスタ１
レジスタ４→レジスタ２
レジスタ５→レジスタ３
レジスタ６→レジスタ４
レジスタ７→レジスタ５
【００４９】
ステップＳＴ０３、ステップＳＴ０５の終了後、及び、ステップＳＴ０４で読み込まれた命令に含まれるレジスタへの参照が、第２のレジスタへの参照に該当しないと判定された場合には、ステップＳＴ０６へと進み、機械制御プログラム中の全ての命令を読み込んだか否かが判定される。まだ全ての命令の読み込みが完了していない場合には、ステップＳＴ０１に戻り、次の機械制御プログラム中の命令が新たに読み込まれる。全ての命令の読み込みが完了した場合には、レジスタへの参照の入れ替え処理を終了する。
【００５０】
このようなアルゴリズムによる処理により、第１のレジスタと第２のレジスタとして複数のレジスタを指定した際に、互いに重複する範囲が指定された場合にも入れ替え処理が可能であり、一意の結果が得られる。もちろん、このアルゴリズムは、第１のレジスタと第２のレジスタとして単一のレジスタが指定された場合にも用いられる。
【００５１】
図５に示したアルゴリズムと同様の結果は、異なるアルゴリズムによっても得ることができる。図６は、入れ替え部９により実行される処理の別実施例を示すフロー図である。
【００５２】
実行ボタン１０５が選択されると、ステップＳＴ１１において、変換テーブル作成部１０により、第１のレジスタ及び第２のレジスタから、単一の変換テーブルが作成される。この単一の変換テーブルは、第１のレジスタと第２のレジスタとの入れ替えを、第１のレジスタから第２のレジスタへの置換と、第２のレジスタから第１のレジスタへの置換の２つの置換に分解し、互いに重複するレジスタに対する処理を解消して合成したものである。互いに重複するレジスタに対する処理の解消は、第１のレジスタから第２のレジスタへの置換と、第２のレジスタから第１のレジスタへの置換のいずれか一方、本実施形態では前者を優先させることによってなされる。図４の１番として示した条件を例にとれば、第１のレジスタから第２のレジスタへの置換、すなわち、
レジスタ１→レジスタ３
レジスタ２→レジスタ４
レジスタ３→レジスタ５
レジスタ４→レジスタ６
レジスタ５→レジスタ７
と、第２のレジスタから第１のレジスタへの置換、すなわち、
レジスタ３→レジスタ１
レジスタ４→レジスタ２
レジスタ５→レジスタ３
レジスタ６→レジスタ４
レジスタ７→レジスタ５
を合成するのであるが、このとき、レジスタ３〜レジスタ５に対する置き換え処理が重複しているため、第１のレジスタから第２のレジスタへの置換を優先し、結果として、単一の変換テーブル
レジスタ１→レジスタ３
レジスタ２→レジスタ４
レジスタ３→レジスタ５
レジスタ４→レジスタ６
レジスタ５→レジスタ７
レジスタ６→レジスタ４
レジスタ７→レジスタ５
を得る。この変換テーブルで、右向き矢印の左側に示されたレジスタが変換元、右側に示されたレジスタが変換先である。
【００５３】
続くステップＳＴ１２では、機械制御プログラム中の命令を特定の方向、例えば、本実施形態では先頭から最後尾に向かう順となるように読み込む。最初にステップＳＴ１２が実行された際には、機械制御プログラムの先頭の命令が読み込まれることになる。
【００５４】
続くステップＳＴ１３で、読み込まれた命令に含まれるレジスタへの参照が、変換テーブルにおける変換元への参照に該当するか否かが判定される。該当する場合には、ステップＳＴ１４へと進み、該当するレジスタへの参照が、対応する変換先への参照に置き換えられる。このステップＳＴ１４での処理は、上述の変換テーブルに基いて、読み込まれた命令に含まれるレジスタへの参照を単純に置き換える処理となる。
【００５５】
ステップＳＴ１４及び、ステップＳＴ１３で読み込まれた命令に含まれるレジスタへの参照が、変換テーブルにおける変換元への参照に該当しないと判定された場合には、ステップＳＴ１５へと進み、機械制御プログラム中の全ての命令を読み込んだか否かが判定される。まだ全ての命令の読み込みが完了していない場合には、ステップＳＴ１２に戻り、次の機械制御プログラム中の命令が新たに読み込まれる。全ての命令の読み込みが完了した場合には、レジスタへの参照の入れ替え処理を終了する。
【００５６】
このようなアルゴリズムによる処理によっても、先の図５に示したアルゴリズムと同様の結果が得られ、第１のレジスタと第２のレジスタとして複数のレジスタを指定した際に、互いに重複する範囲が指定された場合にも入れ替え処理が可能であり、一意の結果が得られる。もちろん、このアルゴリズムは、第１のレジスタと第２のレジスタとして単一のレジスタが指定された場合にも用いることができる。
【００５７】
以上、本発明に係る実施形態について説明したが、この実施形態に示した具体的な構成は一例として示したものであり、本発明の技術的範囲をこれに限定することは意図されていない。当業者は、これら開示された実施形態を適宜変形してもよく、本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【００５８】
また、上述した実施形態では、レジスタの入れ替えを行う対象として、機械制御プログラムを特に対象として説明したが、これを任意のコンピュータにより実行可能な電子データに拡張することも可能である。このようなコンピュータにより実行可能な電子データとしては、一般的なコンピュータプログラムや、コンピュータにより実行される関数やマクロの情報を含む表データ等のデータベースが含まれてよい。この際、レジスタに相当するものとして、一般的な変数を対象としてよく、上述した実施形態におけるレジスタを、変数として読み替えてよい。
【符号の説明】
【００５９】
１  機械制御プログラム作成装置、１ａ  ＣＰＵ、１ｂ  ＲＡＭ、１ｃ  外部記憶装置、１ｄ  ＧＣ、１ｅ  入力デバイス、１ｆ  Ｉ／Ｏ、１ｈ  モニタ、２  機械制御プログラム作成部、３  記憶部、４  表示部、５  出力部、６  ＰＬＣ、７  レジスタ指定部、８  範囲指定部、９  入れ替え部、１０  変換テーブル作成部、１００  ダイアログ、１０１，１０２  ボックス、１０３  チェックボックス、１０４  ボックス、１０５  実行ボタン、１０６  個別タブ、１０７  範囲タブ、１０８  条件入力領域、１０９  インポートボタン、１１０  エクスポートボタン。
【図１】
2017027259.tif 000003
【図２】
2017027259.tif 000004
【図３】
2017027259.tif 000005
【図４】
2017027259.tif 000006
【図５】
2017027259.tif 000007
【図６】
2017027259.tif 000008