以下に、本発明の実施の形態にかかるプログラム作成装置およびプログラム作成方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかるプログラム作成装置の構成を示すブロック図である。プログラム作成装置1は、シーケンスプログラムを表示するコンピュータである。シーケンスプログラムの一例は、ラダープログラムである。なお、以下の説明では、シーケンスプログラムをプログラムという。
実施の形態1のプログラム作成装置1は、編集対象のプログラムを表示させる際に、編集対象のプログラム箇所に関連する関連情報を表示することによって、プログラムの作成を容易にする。
編集対象のプログラムに関連する関連情報は、プログラムの全部または一部であるプログラム箇所、またはプログラム以外の情報である。プログラム箇所は、(1)編集対象のプログラムと同じ内容の複製プログラムから抽出されたものであってもよいし、(2)編集対象のプログラムに類似する他のプログラムから抽出されたものであってもよい。
プログラム以外の情報は、(3)編集時の注意事項または(4)コメントである。なお、以下では、編集対象のプログラム箇所を表示する画面を編集画面といい、編集対象のプログラム箇所に関連する関連情報を表示する画面を参照画面と呼ぶ。
編集対象のプログラム箇所に関連する関連情報が上記(1)の情報である場合、プログラム作成装置1は、第1のプログラムの一部である第1のプログラム箇所を編集画面に表示し、第1のプログラムの一部を複製した第2のプログラム箇所を参照画面に表示する。また、編集対象のプログラム箇所に関連する関連情報が上記(2)の情報である場合、プログラム作成装置1は、第1のプログラムの一部である第1のプログラム箇所を編集画面に表示し、第2のプログラムの一部である第3のプログラム箇所を参照画面に表示する。以下では、編集対象のプログラム箇所に関連する関連情報が上記(1)の情報である場合について説明する。
プログラム作成装置1は、画面に表示させる情報を計算する計算機10と、ユーザから入力される指示を受付けて計算機10に送る入力装置40と、計算機10からの指示に従って画面上にプログラム箇所または情報を表示する表示装置50とを備えている。計算機10は、入力装置40および表示装置50に接続されている。
入力装置40は、マウスまたはキーボードを備えている。表示装置50は、液晶モニタを備えており、液晶モニタの画面上にプログラムを表示する。実施の形態1の表示装置50は、プログラムを編集するための画面である編集画面と、プログラムを編集する際に参照される画面である参照画面とを表示する。
参照画面は、ユーザにより設定された表示項目の関連要件またはデフォルトで設定されている表示項目の関連要件を表示する画面である。実施の形態1での表示項目は、上述した(1)編集対象のプログラムと同一のプログラムから抽出されたものである。表示装置50は、編集画面に、プログラムのうちの編集対象データを表示し、参照画面に、プログラムのうちの被参照データを表示する。編集対象データは、編集の対象となるプログラム箇所であり、被参照データは、編集対象データが編集される際に参照の対象となるプログラム箇所である。このように、表示装置50は、編集対象データを編集画面である第1の画面に表示し、編集対象データに関連する被参照データを参照画面である第2の画面に表示する。プログラムのうちの編集対象データと、プログラムのうちの被参照データとは、ユーザにより設定された関係またはデフォルトで設定された関係を有している。また、表示項目の関連要件は、(1)編集対象のプログラムと同一のプログラムからユーザ所望のプログラムを抽出する為の検索要件であり、後述の、ユーザが編集対象のプログラムに対して参照用にマーカを施したプログラムに該当する。
なお、入力装置40に含まれる装置は、マウスまたはキーボードに限定されない。また、表示装置50に含まれる装置は、液晶モニタに限定されない。また、表示装置50は、参照画面に、被参照データ以外の情報を表示してもよい。
計算機10は、表示装置50を制御する表示制御部20と、表示装置50に表示させる項目を設定する設定部である表示項目設定部30とを備えている。表示制御部20は、入力装置40から送られてくる指示を受付けて表示項目設定部30に送る入力部21を備えている。また、表示制御部20は、編集画面にプログラム内の編集対象データを表示させる編集画面表示制御部22と、参照画面にプログラム内の被参照データを表示させる参照画面表示制御部23とを備えている。
編集画面表示制御部22は、表示項目設定部30から送られてくる指示に基づいて、表示装置50を制御し、表示装置50の編集画面に種々のプログラム箇所を表示させる。編集画面表示制御部22は、表示項目設定部30から編集対象データの表示指示が送られてきた場合には、編集前の編集対象データを編集画面に表示させる。また、編集画面表示制御部22は、計算機10内の図示しない編集部から編集指示が送られてきた場合には、編集後の編集対象データを編集画面に表示させる。編集部は、ユーザ指示に基づいて、プログラムを編集する機能を有している。参照画面表示制御部23は、表示項目設定部30から送られてくる指示に基づいて、表示装置50を制御し、表示装置50の参照画面に被参照データを表示させる。
表示項目設定部30は、ユーザがプログラム内に設定したマーカの位置情報およびマーカの属性である属性値を記憶する記憶部31を備えている。実施の形態1のマーカは、プログラム箇所を識別するためにプログラム箇所に対応付けされる識別情報である。マーカは、プログラム行単位でプログラム箇所に対応付けされるものであり、編集画面または参照画面に表示される際には印で表される。各マーカは、後述するマーカIDによって識別され、マーカIDごとに、対応するプログラム内の位置、属性値、表示するときの図形が設定されている。なお、実施の形態1における属性値は、プログラム箇所同士が関連している場合には、同じものが割り当てられ、関連していない場合には異なるものが割り当てられるものとする。
また、表示項目設定部30は、編集画面に表示されているマーカと同一の属性値を有したマーカを記憶部31から検索する検索部32と、編集画面および参照画面に表示させる情報を管理する管理部33とを備えている。
管理部33は、入力装置40から送られてくるユーザ指示に基づいたデータを、編集画面表示制御部22または参照画面表示制御部23に送る。管理部33は、入力装置40からプログラム内の編集位置が指定された指示を受信した場合には、編集位置のプログラム箇所を記憶部31から読み出して編集画面表示制御部22に送る。
また、管理部33は、入力装置40からプログラム内の編集位置が指定された指示を受信した場合には、この編集位置のプログラム箇所に対応する被参照データを記憶部31から取得して参照画面表示制御部23に送る。具体的には、管理部33は、何れのマーカが編集画面に表示されているかを判定する。管理部33が判定したマーカの関連要件である属性値は、参照画面に表示させる情報を検索する際のキーとなるマーカである。なお、以下の説明では、検索時にキーとするマーカをキーマーカという場合がある。
管理部33は、編集画面を表示させるために編集画面表示制御部22に送る情報に基づいて、キーマーカの属性値を判定する。また、管理部33は、表示装置50が実際に編集画面に表示している情報に基づいて、キーマーカの属性値を判定してもよい。管理部33は、判定結果であるキーマーカの属性値を検索部32に送る。
検索部32は、キーマーカが付された編集対象データに対応する被参照データを記憶部31から検索する。具体的には、検索部32は、キーマーカが有する属性値と同一の属性値を有したマーカを記憶部31から検索する。そして、検索部32は、検索結果を管理部33に送る。
これにより、管理部33は、記憶部31内の被参照データの候補の中から、検索されたマーカに対応する被参照データを読み出す。なお、以下の説明では、キーマーカが有する属性値と同一の属性値を有したマーカであって、キーマーカ以外のマーカを参照マーカという場合がある。したがって、検索部32は、キーマーカに基づいて参照マーカを検索し、管理部33は、参照マーカに対応する被参照データを読み出す。このように、実施の形態1のキーマーカは、編集画面に表示されている編集対象データに付されたマーカであり、参照マーカは、参照画面に表示される被参照データに付されたマーカである。なお、入力部21は、表示制御部20の外部に配置されてもよい。また、記憶部31は、表示項目設定部30の外部に配置されてもよい。
このように、実施の形態1のプログラム作成装置1は、編集画面にキーマーカが表示されていれば、キーマーカに対応する参照マーカを検索し、この参照マーカを有した被参照データを参照画面に表示させる。これにより、表示装置50は、編集画面に編集対象データを表示しつつ、編集対象データに関連する被参照データを参照画面に表示することができる。この結果、プログラム作成装置1は、プログラム全体の論理構造を見やすく表示できる。
図2は、実施の形態1に係るプログラム作成装置が表示する画面の第1例を示す図である。図2では、プログラム作成ソフトウェアにより生成される画面例を示している。実施の形態1のプログラム作成装置1は、プログラムを表示させる際に、編集画面61Xと参照画面62Xとを同時に表示させる。そして、プログラム作成装置1は、編集画面61Xに、プログラムのうちの編集対象データを表示し、参照画面62Xに、プログラムのうちの被参照データを表示する。このように、プログラム作成装置1は、編集対象データを表示する編集画面61Xと、この編集画面61Xとは別に被参照データを表示する参照画面62Xとを表示する。
プログラム作成装置1が参照画面62Xを表示する際には、入力装置40がユーザのマウス操作に対応するユーザ指示を受付ける。具体的には、入力装置40は、ユーザから画面の分割指示を受付ける。画面の分割指示は、画面を編集画面61Xと参照画面62Xとに分割させる指示である。また、画面の分割指示には、画面の分割条件が含まれていてもよい。画面の分割条件は、画面の分割方向であってもよいし、画面の分割数であってもよい。
図3は、実施の形態1に係る画面分割操作を説明するための図である。図3では、入力装置40が、ユーザによる画面分割操作を受付ける際の操作画面の例を示している。ユーザによって入力装置40にナビゲーション機能を指定する指示が入力された後、ユーザによって「プログラム本体」を指定する指示が入力されると、表示装置50はプログラムを表示する。そして、表示装置50がメインメニューを画面表示している際に、入力装置40がユーザからの画面分割操作を受付けると、入力装置40は、画面分割操作に対応する画面分割指示を入力部21に送る。ユーザによる画面分割操作の一例は、メインメニューで画面分割操作に対応する項目が選択される操作である。
入力部21は、画面分割指示を管理部33に送り、管理部33は、画面分割指示を編集画面表示制御部22に送る。これにより、編集画面表示制御部22は、画面の分割方向を設定するための分割方向設定画面71を画面上に表示する。分割方向は、画面が分割される方向である。表示装置50は、分割方向設定画面71に、画面を上下方向に分割する際に選択される「上下に分割」の項目と、画面を左右方向に分割する際に選択される「左右に分割」の項目と、を表示する。
表示装置50が分割方向設定画面71を表示している際に、入力装置40がユーザから分割方向の指定操作を受付けると、入力装置40は、分割方向の指定操作に対応する方向指定指示を入力部21に送る。ユーザによる分割方向の指定操作の一例は、分割方向設定画面71で分割方向に対応する項目が選択される操作である。分割方向設定画面71上で「上下に分割」がユーザ選択された場合には、入力装置40が上下方向の指定操作を受付けて、上下方向の分割指示を入力部21に送る。一方、分割方向設定画面71上で「左右に分割」がユーザ選択された場合には、入力装置40が左右方向の指定操作を受付けて、左右方向の分割指示を入力部21に送る。
そして、入力部21は、方向指定指示を管理部33に送り、管理部33は、方向指定指示を編集画面表示制御部22および参照画面表示制御部23に送る。管理部33が送る方向指定指示は、分割された画面の何れを編集画面61Xまたは参照画面62Xとするかの指示情報が含まれている。これにより、編集画面表示制御部22および参照画面表示制御部23は、画面を編集画面61Xと参照画面62Xとに分割する。そして、編集画面表示制御部22は、分割された画面の一方に編集画面61Xを表示させ、参照画面表示制御部23は、分割された画面の他方に参照画面62Xを表示させる。
分割方向が上下方向の場合、編集画面表示制御部22および参照画面表示制御部23は、画面を上側の画面領域と下側の画面領域とに分割する。この場合において、編集画面表示制御部22は、上側の画面領域に編集画面61Xを表示させ、参照画面表示制御部23は、下側の画面領域に参照画面62Xを表示させる。
また、分割方向が左右方向の場合、編集画面表示制御部22および参照画面表示制御部23は、画面を左側の画面領域と右側の画面領域とに分割する。この場合において、編集画面表示制御部22は、左側の画面領域に編集画面61Xを表示させ、参照画面表示制御部23は、右側の画面領域に参照画面62Xを表示させる。
なお、編集画面表示制御部22および参照画面表示制御部23は、ユーザ操作に基づいた位置で画面を分割させてもよいし、デフォルト設定されている位置で画面を分割させてもよい。編集画面表示制御部22および参照画面表示制御部23が、ユーザ操作に基づいた位置で画面を分割させる場合、入力装置40は、ユーザによって指定される画面分割位置を受付けて、入力部21に送る。そして、入力部21は、画面分割位置を管理部33に送り、管理部33は、画面分割位置を編集画面表示制御部22および参照画面表示制御部23に送る。これにより、編集画面表示制御部22および参照画面表示制御部23は、画面分割位置で画面を分割する。
大規模なプログラムは、このプログラムに関連する関連プログラムの数が増大するので、プログラム作成装置1は、1つの編集画面61Xと、複数の参照画面62Xとを同時に表示してもよい。この場合、プログラム作成装置1は、参照画面62Xの分割数を、ユーザ操作に対応する数またはデフォルト設定されている数に設定する。
図4は、実施の形態1に係る分割数設定処理を説明するための図である。図4では、入力装置40が、ユーザによる分割数の設定を受付ける際の操作画面の例を示している。分割方向設定画面71上で分割方向が選択された後、表示装置50は、参照画面62Xの分割数を設定するための分割数設定画面72を画面上に表示する。表示装置50は、参照画面表示制御部23からの指示に従って、分割数設定画面72に、参照画面62Xの最大数を1とする場合に設定される「1」と、参照画面62Xの最大数を2とする場合に設定される「2」と、参照画面62Xの最大数を3とする場合に設定される「3」とを表示する。
表示装置50が分割数設定画面72を表示している際に、入力装置40がユーザから分割数の指定操作を受付けると、入力装置40は、分割数の指定操作に対応する分割数指定指示を入力部21に送る。ユーザによる分割数の指定操作の一例は、分割数設定画面72で分割数に対応する項目が選択される操作である。分割数設定画面72上で分割数である「1」から「3」の何れかがユーザにより選択された場合には、入力装置40がユーザ選択された分割数を受付けて、分割数を入力部21に送る。
そして、入力部21は、分割数を管理部33に送り、管理部33は、分割数を参照画面表示制御部23に送る。これにより、参照画面表示制御部23は、参照画面62Xを管理部33からの分割数で分割する。そして、参照画面表示制御部23は、分割後の参照画面62Xを表示させる。分割数が「3」である場合、参照画面表示制御部23は、参照画面62Xを3つに分割し、分割した3つの参照画面62Xを表示装置50に表示させる。
つぎに、プログラムへのマーカ設定について説明する。図5は、実施の形態1に係るマーカ設定例を説明するための図である。ここでのプログラム箇所は、編集画面61Xに表示される際には編集対象となり、参照画面62Xに表示される際には参照対象となる。
図5では、プログラムに被参照データの候補である候補箇所をマーカ設定した結果を図示している。プログラム作成装置1は、ユーザ操作に基づいて、プログラム内にマーカを設定する。このマーカ設定されたプログラム箇所は、参照画面62Xに表示されることによって被参照データとなる。一方、マーカ設定されたプログラム箇所は、編集画面61Xに表示されることによって編集対象データとなる。
表示装置50は、ユーザによってプログラムが指定されると、プログラムを画面に表示する。ここでは、1つの画面に収まらないほど長いプログラムが指定された場合について説明する。なお、図5では、プログラムのうち、説明に関係のない部分は波線を用いて省略している。表示装置50は、1つの画面に収まらないプログラムが指定された場合、プログラムのうちの一部を画面表示する。
プログラムは、複数のプログラム箇所を含んでおり、各プログラム箇所にマーカがユーザ設定される。各プログラム箇所には、グループG1のマーカ、グループG2のマーカまたはグループG3のマーカがユーザ設定される。なお、Nを4以上の自然数とした場合に、グループGNのマーカがユーザ設定されてもよい。また、マーカが設定されないプログラム箇所があってもよい。
マーカ110,120,121,122は、グループG1のマーカである。マーカ130,140は、グループG1とは異なるグループG2に属するプログラム箇所であることを示すマーカである。
プログラム作成装置1は、ユーザからマーカ設定操作を受付けると、マーカ設定操作に対応するマーカをプログラム箇所に設定する。ここで、プログラム作成装置1がマーカ設定する際の動作について説明する。
ユーザによってプログラム内のプログラム箇所にマーカが設定されると、計算機10は、ユーザによるマーカ設定を受付ける。入力装置40がマウスである場合、プログラム作成装置1は、マウスへの操作に対応するマーカ設定を受付ける。この場合、ユーザによってマーカ設定対象のプログラム行がマウスで指定されたうえでマウスが右クリックされると、計算機10は、マウスで指定されたプログラム行が属するプログラム箇所の位置情報を受付ける。この位置情報は、プログラム内での行数である。計算機10が位置情報を受付けると、表示装置50は、指定されたプログラム行の位置にマーカを設定するためのマーカ設定画面73を表示する。
マーカ設定画面73には、「グループG1のマーカを設定する」の項目と、「グループG2のマーカを設定する」の項目と、「グループG3のマーカを設定する」の項目とが表示される。
マーカ設定画面73上でユーザによって何れかの項目が選択されると、計算機10は、選択された項目に対応するマーカの属性値を登録する。各マーカの属性値は、プログラム箇所同士で関連がある場合には、同一の属性値が割り当てられるので、計算機10は、プログラム箇所同士で関連がある場合には、同一の属性値を登録する。マーカ設定画面73上でユーザによって「グループG1のマーカを設定する」ための項目が選択されると、計算機10は、グループG1のマーカを示す属性値を登録する。
これにより、表示項目設定部30の管理部33は、位置情報および属性値を、後述するマーカテーブル80に登録する。マーカテーブル80は、記憶部31内に格納される情報であり、プログラム内のプログラム箇所をマーカの属性値毎に管理するための情報である。このように、プログラム作成装置1は、ユーザによってマーカ設定が行われることにより、位置情報および属性値をマーカテーブル80に登録する。
なお、図5では、プログラム作成装置1が、マーカの所属するグループを属性値に設定する場合について説明したが、プログラム作成装置1は、何れの情報を属性値に設定してもよい。また、プログラム作成装置1は、属性値の代わりにマーカの属性を示す他の情報をマーカテーブル80に登録してもよい。
図6は、実施の形態1に係るマーカテーブルの構成例を示す図である。マーカテーブル80は、ソフトウェア(SW:software)であるプログラム内でのデータ構造を示す情報テーブルである。
マーカテーブル80は、マーカの識別情報であるマーカIDと、マーカ設定箇所の位置情報と、マーカの属性を示す属性値とが対応付けされている。位置情報は、被参照データのプログラム名と、被参照データ内でのプログラム行番号とを含んでいる。
マーカIDが「0」のマーカは、図5に示したマーカ110に対応し、マーカIDが「1」のマーカは、図5に示したマーカ130に対応している。同様に、マーカIDが「2」から「4」のマーカは、図5に示したマーカ120から122に対応し、マーカIDが「5」のマーカは、図5に示したマーカ140に対応している。
そして、マーカIDが「0」、「2」、「3」および「4」のマーカの属性値は「0」であり、マーカIDが「1」および「5」のマーカの属性値は「1」である。
プログラム作成装置1では、管理部33が、ユーザ操作に対応する位置情報および属性値を取得すると、記憶部31内のマーカテーブル80に位置情報および属性値を登録する。このとき、管理部33は、位置情報および属性値にマーカIDを付与し、マーカIDと、位置情報と、属性値とを対応付けしてマーカテーブル80に登録する。
プログラム作成装置1の管理部33は、編集画面61Xに編集対象のプログラム箇所を表示する際に、マーカテーブル80を用いて、編集対象のプログラム箇所に関連するプログラム名およびプログラム行番号を取得する。そして、表示装置50は、取得したプログラム名およびプログラム行番号に対応する被参照データを参照画面62Xに表示する。この場合において、管理部33は、マーカテーブル80に登録されている属性値に対応する参照マーカを参照画面62Xに表示させる。
図7は、実施の形態1に係るプログラム作成装置が表示する画面の第2例を示す図である。プログラム作成装置1は、画面91内に編集画面61Xの一例である編集画面61Aを表示する際に、画面91内に参照画面62Xの一例である参照画面62A〜62Cを表示する。
プログラム作成装置1は、図5で示したマーカの属性値に基づいて、編集画面61Aおよび参照画面62Aから62Cを画面91に表示する。具体的には、プログラム作成装置1は、編集画面61Aに表示するマーカの属性値と同じ属性値を有したマーカが割り当てられたプログラム箇所を参照画面62Aから62Cに表示する。
属性値は、プログラム箇所同士が関連する場合に同じものが割り当てられるので、参照画面62Aから62Cに表示される被参照データは、編集画面61Aに表示される編集対象データに関連している。そして、プログラム箇所同士が関連する場合には、同一の属性値が割り当てられているので、プログラム箇所同士が関連する場合には、同一のマーカが表示される。したがって、プログラム作成装置1は、編集画面61A内の編集対象データのキーマーカと、参照画面62Aから62C内の被参照データの参照マーカとを同一のマーカで表示する。
編集画面61Aに表示された編集対象データであるプログラム箇所は、ユーザが入力装置40を用いてスクロール可能となっている。編集画面61Aに表示されたプログラム箇所が、ユーザによってスクロールされると、プログラム作成装置1は、ユーザ操作に対応するプログラム箇所を編集画面61Aに表示する。換言すると、ユーザによってプログラム箇所の表示移動操作が行われると、プログラム作成装置1は、表示移動操作に対応する編集対象データを編集画面61Aに表示する。
プログラム作成装置1は、ユーザ操作に基づいて、マーカ110を割り当てられた編集対象データを編集画面61Aに表示する場合、マーカ110の属性値と同じ属性値を有した被参照データを選択して参照画面62Aから62Cに表示する。図7では、プログラム作成装置1が、マーカ120を割り当てられた被参照データを参照画面62Aに表示し、マーカ121を割り当てられた被参照データを参照画面62Bに表示し、マーカ122を割り当てられた被参照データを参照画面62Cに表示した場合を示している。
プログラム作成装置1は、編集画面61Aに表示された編集対象データがユーザによってスクロールされてマーカ130を割り当てられた編集対象データを編集画面61Aに表示する場合、マーカ130の属性値と同じ属性値を有した被参照データを選択して参照画面62Aから62Cに表示する。具体的には、プログラム作成装置1は、マーカ130と同一の属性値を有したマーカ140を抽出し、このマーカ140を割り当てられた被参照データを参照画面62Aに表示する。
なお、プログラム作成装置1は、編集画面61Aに複数のマーカを表示する場合、デフォルト設定されている位置のマーカを編集対象データのキーマーカに設定する。デフォルト設定の位置が上段側領域である場合、プログラム作成装置1は、複数のマーカのうち最も上段側のプログラム行に表示されるマーカを、編集対象データのキーマーカに設定する。また、プログラム作成装置1は、編集画面61Aに複数のマーカを表示する場合、ユーザによって選択されたプログラム行に最も近いマーカを編集対象データのキーマーカに設定してもよい。
また、プログラム作成装置1の管理部33は、編集画面61Xでのユーザ操作を参照画面62Xに反映してもよいし、参照画面62Xでのユーザ操作を編集画面61Xに反映してもよい。この場合、管理部33は、ユーザからの指示に基づいてマーカ毎に反映内容を設定する。反映内容がスクロールの反映である場合、管理部33は、編集画面61Xで編集対象データが上下左右にスクロールされる際に、参照画面62Xの参照部分を編集対象データと同じ方向にスクロールさせる指示を表示制御部20に送る。これにより、参照画面表示制御部23は、参照画面62Xの参照部分を編集対象データと同じ方向にスクロールさせる。同様に、編集画面表示制御部22は、編集画面61Xの編集対象データを参照部分と同じ方向にスクロールさせてもよい。なお、プログラム作成装置1は、マーカ表示の区別を色分けで行ってもよいし、形状または図柄といった他の表示方法で区別してもよい。
図8は、実施の形態1に係る画面表示処理の処理手順を示すフローチャートである。プログラム作成装置1は、ユーザ操作に基づいて編集画面61Xにプログラムを表示する。この後、ユーザによって編集画面61X内の編集対象データをスクロールする処理が実行されると、ステップS10において、入力部21が、スクロール操作である移動操作を受け付ける。
入力部21は、スクロール操作に対応するスクロール指示を管理部33に送る。そして、管理部33は、スクロール指示を検索部32に送る。管理部33が検索部32に送るスクロール指示には、表示中のプログラムの関連要件と、スクロール前の表示位置と、スクロール量とが含まれている。
ステップS20において、検索部32は、スクロール指示に基づいて、編集画面61X上に何れのプログラム行を表示させるかを検索する。具体的には、検索部32は、表示中のプログラムの関連要件に基づいて、検索対象となるプログラムを決定する。そして、検索部32は、スクロール前の表示位置と、スクロール量とに基づいて、スクロール指示に対応するプログラム行を、プログラムから検索し、検索結果を管理部33に送る。
この後、ステップS30において、管理部33は、検索されたプログラム行に対応するプログラム箇所を、記憶部31内のプログラムから取得する。なお、管理部33が、表示装置50の状態から、何れのマーカが編集画面61Xに表示されているかを判定してもよい。この場合、管理部33は、表示されているマーカに対応するプログラム行を検索部32に検索させる。
ステップS40において、管理部33は、編集画面61Xに表示させる表示データである編集対象データを、検索部32からのプログラム箇所を用いて作成する。管理部33は、編集対象データを表示させる指示を編集画面表示制御部22に送る。
ステップS50において、管理部33は、編集対象データの中にマーカが含まれているか否かを判定する。編集対象データの中にマーカが含まれている場合、すなわちステップS50においてYesの場合、管理部33は、検索部32に検索指示を送る。具体的には、管理部33が、編集対象データに含まれるマーカと同一属性値のマーカを検索する指示を、検索部32に送る。これにより、ステップS60において、検索部32は、編集対象データに含まれるマーカと同一属性値のマーカをマーカテーブル80から検索する。そして、検索部32は、検索したマーカの位置情報をマーカテーブル80から取得して管理部33に送る。
この後、ステップS70において、管理部33は、検索されたマーカに対応するプログラム箇所を、位置情報に基づいて記憶部31から取得する。具体的には、管理部33は、検索されたマーカに対応するプログラム箇所を、位置情報内のプログラム名およびプログラム行番号に基づいて記憶部31から読み出す。すなわち、管理部33は、位置情報で指定されているプログラム名を有したプログラム箇所のうち、プログラム行番号で指定されているプログラム箇所を読出す。管理部33が記憶部31から取得するプログラム箇所は、マーカの付されているプログラム行と、このプログラム行の周辺に配置されているプログラム行である。プログラム行の周辺の一例は、このプログラム行の前の一定数のプログラム行と、このプログラム行の後の一定数のプログラム行とである。
そして、ステップS80において、管理部33は、参照画面62Xに表示させる表示データである被参照データを、検索部32からのプログラム箇所を用いて作成する。管理部33は、被参照データを表示させる指示を参照画面表示制御部23に送る。
この後、ステップS90において、編集画面表示制御部22は、編集画面61Xの表示を更新し、参照画面表示制御部23は、参照画面62Xの表示を更新する。これにより、表示装置50は、編集画面61Xに編集対象データを表示させ、参照画面62Xに被参照データを表示させる。ここでの編集画面表示制御部22は、ステップS40の処理で作成した編集対象データを編集画面61Xに表示させ、参照画面表示制御部23は、ステップS80の処理で作成した被参照データを参照画面62Xに表示させる。
また、ステップS50において、編集対象データの中にマーカが含まれていない場合、すなわちステップS50においてNoの場合、ステップS90において、編集画面表示制御部22は、編集画面61Xの表示を更新し、参照画面表示制御部23は、参照画面62Xの表示を更新する。これにより、表示装置50は、編集画面61Xに編集対象データを表示させる。ここでの編集画面表示制御部22は、ステップS40の処理で作成した編集対象データを編集画面61Xに表示させる。この場合において、参照画面表示制御部23は、表示済みの被参照データを参照画面62Xに表示させたままにしてもよいし、表示済みの被参照データを参照画面62Xから消去させてもよい。なお、編集画面表示制御部22は、ステップS40の処理の後、ステップS90の処理よりも前に編集画面61Xを表示させてもよい。
このように、プログラム作成装置1は、画面を複数に分割したうえで、編集画面61Xには編集対象データを表示し、参照画面62Xには被参照データを表示するので、プログラム全体の論理構造を見やすく表示することが可能となる。また、プログラム作成装置1は、参照画面62Xに編集対象データに類似する類似プログラムのプログラム箇所または関連する関連プログラムのプログラム箇所を表示することで、プログラムを作成する際のユーザの操作量を減らすことができる。したがって、プログラム作成装置1は、プログラム作成の時間を短縮させることが可能となる。
ここで、計算機10のハードウェア構成について説明する。図9は、実施の形態1にかかる計算機のハードウェア構成例を示す図である。計算機10は、図9に示した制御回路300、すなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSPともいう)、システムLSI(Large Scale Integration)などである。メモリ302は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはDVD(Digital Versatile Disc)等である。
計算機10は、プロセッサ301が、メモリ302で記憶されている、計算機10として動作するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、表示制御部20および表示項目設定部30の手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリとしても使用される。
このように、プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトである。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
また、計算機10を専用のハードウェアで実現してもよい。また、計算機10の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
また、プログラム作成装置1は、マーカをプログラム行に設定する場合に限らず、コメント行といったプログラム以外の情報が記載されている行にマーカを設定してもよい。プログラム作成装置1は、関数の説明にマーカを設定することで、関数の説明を参照画面62Xに表示することが可能となり、関数の説明を調べるためのユーザの操作量を減らすことができる。
また、プログラム作成装置1は、ユーザ指示に基づいてマーカを設定する際に、マーカ間の主従関係を属性に設定してもよい。この場合、プログラム作成装置1は、関数の呼び出しを主の属性を持つマーカに設定し、関数の定義を従の属性を持つマーカに設定する。そして、プログラム作成装置1は、参照画面62Xで従のマーカが選択された場合に、選択されたマーカをキーマーカに設定してマーカテーブル80を検索し、検索した参照マーカが設定されたプログラム行を別の参照画面62Xに表示する。これにより、関数の呼び出しがネストしている場合に、プログラム作成装置1は、ネストしている関数の全てを参照画面62Xに表示することができ、プログラム全体を一覧する画面を作成するためのユーザの操作量を減らすことができる。
また、プログラム作成装置1は、編集対象のプログラムに関連する関連プログラムをユーザからの指定に基づいてグループ分けしておき、グループ毎に参照画面62Xのレイアウトを記憶しておいてもよい。この場合、プログラム作成装置1は、参照画面62Xを表示させた際に参照画面62Xのレイアウトを記憶しておき、次回関連プログラムを参照画面62Xに表示させる際に、記憶しておいたレイアウトを用いて関連プログラムを表示させる。これにより、プログラム作成装置1は、目的の画面レイアウトを作成するためのユーザの操作量を減少させることができる。
なお、プログラム作成装置1は、編集画面61Xに編集対象以外のプログラムを表示させてもよい。例えば、プログラム作成装置1は、編集画面61Xに確認用または参照用のプログラムを表示させてもよい。また、プログラム作成装置1は、編集画面61Xにプログラム以外の情報を表示させてもよい。
このように実施の形態1によれば、プログラム作成装置1は、編集画面61Xに編集対象部分を表示し、参照画面62Xに被参照部分を表示するので、プログラムを見やすく表示することができる。したがって、プログラムが作成される際のユーザの操作量を減らすことが可能となる。
また、プログラム作成装置1は、ユーザ指示に基づいてマーカを設定する際に、プログラム行番号とともにプログラム名を保存しているので、編集対象データのプログラムとは異なるプログラムにマーカを設定することが可能となる。この場合、プログラム作成装置1は、第1のプログラムの一部を編集画面61Xに表示でき、第2のプログラムの一部を参照画面62Xに表示できる。
また、プログラムがラダープログラムである場合、1つのプログラムが長くなることが多いので、プログラム作成装置1は、同一プログラム内の複数のプログラム箇所を参照画面62Xに表示することで、プログラムを見やすくすることができる。
また、プログラム作成装置1は、表示する編集対象データをスクロールで切り替えた場合であっても、編集対象データに対応する被参照データを表示するので、被参照データを表示する際のユーザによる操作量を抑制することができる。
実施の形態2.
つぎに、図5および図10を用いて実施の形態2について説明する。実施の形態2では、プログラム作成装置1が、参照画面62Xに表示するプログラムを自動で決定する。換言すると、実施の形態2では、プログラム作成装置1が、ユーザによるマーカ設定を用いることなく、参照画面62Xに表示するプログラムを決定する。なお、実施の形態2のプログラム作成装置1は、実施の形態1のプログラム作成装置1と同様の構成を有しているので、その説明は省略する。
実施の形態2では、プログラム作成装置1の検索部32が、キーマーカを用いてプログラム箇所を検索する代わりに、編集画面61Xに表示している編集対象データに関連性のあるプログラム箇所を検索して参照画面62Xに表示する。このため、検索部32は、編集対象データと、記憶部31内に含まれるプログラム箇所との関連性の有無を判定し、判定結果に基づいて、編集対象データに関連性のあるプログラム箇所を検索する。
なお、編集対象データは、1行分のプログラム行であってもよいし、複数行分のプログラム行であってもよい。編集対象データは、ユーザによって選択されるものであるので、検索部32は、ユーザによって選択された1から複数のプログラム行と、この1から複数のプログラム行と、記憶部31内のプログラム行との関連性を判定する。さらに、検索部32は、関連性の判定結果に基づいて、ユーザ選択されたプログラム行に関連するプログラム箇所を検索する。そして、表示装置50が、ユーザ選択された編集対象データを編集画面61Xに表示し、検索されたプログラム箇所を参照画面62Xに表示する。
なお、検索部32は、何れの方法を用いてプログラムの関連性を判定してもよい。実施の形態2では、検索部32は、プログラムに含まれる出力変数の変数名をキーに設定したうえで、編集対象データに関連するプログラム箇所を検索する。図5に示したプログラムの場合、ユーザによって2行目のプログラム行が選択されると、検索部32は、出力変数である「M1」をキーにプログラム内を検索し、「M1」が存在するプログラム行である51行目、68行目および85行目のプログラム行を抽出する。そして、表示装置50が、51行目、68行目および85行目のプログラム行を、異なる参照画面62Xに表示する。
また、検索部32は、プログラムに含まれる関数をキーに設定したうえで、編集対象データに関連するプログラム箇所を検索してもよい。以下では、検索部32が、編集対象データに含まれる変数または関数と同一変数または同一関数が含まれるプログラム箇所を検索する場合について説明する。
図10は、実施の形態2に係る画面表示処理の処理手順を示すフローチャートである。図10の各処理のうち図8で説明した実施の形態1の画面表示処理と同様の処理については重複する説明を省略する。
プログラム作成装置1は、ユーザ操作に基づいて編集画面61Xにプログラムを表示する。この後、ユーザによって編集画面61X内の編集対象データをスクロールする処理が実行されると、プログラム作成装置1は、ステップS110からS140の処理を実行する。ステップS110からS140の処理は、ステップS10からS40の処理と同様の処理である。
管理部33は、ステップS140の処理を実行した後、ステップS150において、表示される編集対象データに含まれる変数または関数を抽出する。ユーザによって選択された編集対象データに複数のプログラム行が含まれる場合は、管理部33は、この複数のプログラム行に含まれる変数または関数を全て抽出してもよいし、一部を抽出してもよい。ユーザによって複数のプログラム行のうちの何れかのプログラム行が選択された場合には、管理部33は、選択されたプログラム行に含まれる変数または関数を抽出する。この場合において、ユーザによって複数のプログラム行が選択された場合には、管理部33は、選択された複数のプログラム行に含まれる変数または関数を全て抽出する。また、ユーザによって何れのプログラム行も選択されなかった場合には、管理部33は、表示される編集対象データに含まれる変数または関数を全て抽出する。
管理部33は、変数または関数を抽出した後、検索部32に検索指示を送る。具体的には、抽出した変数または関数と同一変数または同一関数が含まれるプログラム箇所を検索する指示を、管理部33が検索部32に送る。これにより、ステップS160において、検索部32は、抽出された変数または関数と同一変数または同一関数が含まれるプログラム箇所を検索する。
そして、検索部32は、検索結果であるプログラム箇所の位置情報を、管理部33に送る。この後、ステップS170において、管理部33は、プログラム箇所の位置情報に基づいて、抽出した変数または関数と同一変数または同一関数が含まれるプログラム箇所を記憶部31から取得する。そして、ステップS180において、管理部33は、被参照データを、検索部32からのプログラム箇所を用いて作成する。管理部33は、被参照データを表示させる指示を参照画面表示制御部23に送る。
この後、ステップS190において、編集画面表示制御部22は、編集画面61Xの表示を更新し、参照画面表示制御部23は、参照画面62Xの表示を更新する。これにより、表示装置50は、編集画面61Xに編集対象データを表示させ、参照画面62Xに被参照データを表示させる。ここでの編集画面表示制御部22は、ステップS140の処理で作成した編集対象データを編集画面61Xに表示させ、参照画面表示制御部23は、ステップS180の処理で作成した被参照データを参照画面62Xに表示させる。なお、プログラム作成装置1は、シーケンスプログラム以外のプログラムを、上述した処理によって編集画面61Xおよび参照画面62Xに表示してもよい。
このように実施の形態2によれば、検索部32が、編集対象データに関連性のあるプログラム箇所を検索して参照画面62Xに表示するので、実施の形態1の画面表示処理よりも、プログラムが作成される際のユーザの操作量を減らすことができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
上述した課題を解決し、目的を達成するために、本発明は、プログラム作成装置が、表示装置を制御するとともに、プログラムに含まれている第1のプログラム箇所を表示する第1の画面と、第1の画面に表示する第1のプログラム箇所に関連する関連情報を表示する第2の画面とを表示装置に表示させる表示制御部を備えている。また、本発明のプログラム作成装置は、第2の画面に表示させる関連情報を特定する為の関連要件を設定するとともに、設定した関連要件に対応した関連情報を表示制御部に送る設定部を備えている。設定部は、ユーザ指示に基づいてプログラムのうち関連情報の候補である候補箇所にマーカを設定しておき、第1の画面が、第1のプログラム箇所を表示する際には、候補箇所の中から第1のプログラム箇所に含まれるマーカと同一のマーカが設定された関連情報を抽出して表示制御部に送り、表示制御部は、設定部から受け取った関連情報を第2の画面に表示させる。
上述した課題を解決し、目的を達成するために、本発明は、プログラム作成装置が、表示装置を制御するとともに、プログラムに含まれている第1のプログラム箇所を表示する第1の画面と、第1の画面に表示する第1のプログラム箇所に関連する関連情報を表示する第2の画面とを表示装置に表示させる表示制御部を備えている。また、本発明のプログラム作成装置は、第2の画面に表示させる関連情報を特定する為の関連要件を設定するとともに、設定した関連要件に対応した関連情報を表示制御部に送る設定部を備えている。設定部は、ユーザ指示に基づいてプログラムのうち関連情報の候補である候補箇所にマーカを設定しておき、第1の画面が、第1のプログラム箇所を表示する際には、候補箇所の中から第1のプログラム箇所に含まれるマーカと同一のマーカが設定された関連情報を抽出して表示制御部に送る。関連情報は、プログラムと同じ内容の複製プログラムから抽出された第2のプログラム箇所、またはプログラムとは異なる別プログラムから抽出された第3のプログラム箇所であり、表示制御部は、設定部から受け取った関連情報を第2の画面に表示させる。