(57)【要約】【課題】プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能な情報処理装置を提供する。【解決手段】情報処理装置は、オブジェクトをドラッグし、かつ情報処理装置の表示画面内に設けられた描画領域にオブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける。情報処理装置は、描画領域にドロップされたオブジェクトを描画する。情報処理装置は、オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成する。情報処理装置は、描画領域内の第１の領域にオブジェクトとしてのオブジェクト＃１が配置されている状態で、第１の領域にオブジェクトとしての第２のオブジェクト＃２がドロップされると、オブジェクト＃１とオブジェクト＃２とを第１の領域内において整列させる。【選択図】図１
2020008946.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
オブジェクトをドラッグし、かつ前記情報処理装置の表示画面内に設けられた描画領域に前記オブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける操作受付手段と、
前記描画領域にドロップされた前記オブジェクトを描画する描画手段と、
前記オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成する画面データ生成手段とを備え、
前記描画手段は、前記描画領域内の第１の領域に前記オブジェクトとしての第１のオブジェクトが配置されている状態で、前記第１の領域に前記オブジェクトとしての第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記第１の領域内において整列させる、情報処理装置。
【請求項２】
前記描画手段は、前記描画領域内の第２の領域に前記オブジェクトとしての第３のオブジェクトがドロップされると、当該ドロップされた位置に前記第３のオブジェクトを配置する、請求項１に記載の情報処理装置。
【請求項３】
前記オブジェクトの整列態様を設定するための設定画面を前記表示画面に表示させる表示制御手段をさらに備え、
前記描画手段は、
前記設定画面にて第１の方向設定がなされている場合には、前記第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを、前記第１の領域の横方向に整列させ、
前記設定画面にて第２の方向設定がなされている場合には、前記第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを、前記第１の領域の縦方向に整列させる、請求項１または２に記載の情報処理装置。
【請求項４】
前記表示制御手段は、前記表示画面内にアイコンをさらに表示し、
前記描画手段は、前記第１のオブジェクトと前記第２のオブジェクトとが前記横方向および前記縦方向のうちの一方向に整列している状態で、前記アイコンがクリックされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記横方向および前記縦方向のうちの他方向に整列させる、請求項３に記載の情報処理装置。
【請求項５】
前記描画手段は、前記第１の方向設定がなされている場合、
前記設定画面にて第１の位置設定がさらになされているときには、前記第１の領域内の上端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させ、
前記設定画面にて第２の位置設定がさらになされているときには、前記第１の領域内の中央位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させ、
前記設定画面にて第３の位置設定がさらになされているときには、前記第１の領域内の下端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させる、請求項３または４のいずれか１項に記載の情報処理装置。
【請求項６】
前記描画手段は、前記第２の方向設定がなされている場合、
前記設定画面にて第４の位置設定がさらになされているときには、前記第１の領域内の左端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させ、
前記設定画面にて第５の位置設定がさらになされているときには、前記第１の領域内の中央位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させ、
前記設定画面にて第６の位置設定がさらになされているときには、前記第１の領域内の右端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させる、請求項５に記載の情報処理装置。
【請求項７】
前記オブジェクトのサイズは、前記オブジェクトの種類に応じて固定されており、
前記描画手段は、少なくとも前記第１のオブジェクトと前記第２のオブジェクトとを含む複数の前記オブジェクトを前記第１の領域において整列させる場合、一行または一列で表示できないときには、折り返し処理によって前記複数のオブジェクトを二行以上または二列以上で整列する、請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記描画手段は、少なくとも前記第１のオブジェクトと前記第２のオブジェクトとを含む複数の前記オブジェクトを前記第１の領域において整列させる場合、一行または一列で表示するために、前記複数のオブジェクトの各々のサイズを小さくする、請求項１から６のいずれか１項に記載の情報処理装置。
【請求項９】
操作に基づき、前記第１の領域のサイズを変更する変更手段をさらに備え、
前記描画手段は、前記複数のオブジェクトが一行または一列で配置されている状態において、前記第１の領域のサイズが縮小されることにより、前記複数のオブジェクトが一行または一列で配置できないと判断した場合、前記複数のオブジェクトの各々のサイズを小さくすることにより前記複数のオブジェクトを一行または一列で配置する、請求項８に記載の情報処理装置。
【請求項１０】
前記描画手段は、前記複数のオブジェクトが一行または一列で配置されている状態において、前記第１の領域のサイズが行方向または列方向に拡大された場合、当該拡大後の前記第１の領域のサイズに基づき、前記複数のオブジェクトの各々のサイズを大きくする、請求項９に記載の情報処理装置。
【請求項１１】
前記描画手段は、前記第１の領域のサイズと、前記第１の領域にドロップされる前記オブジェクトの数とに応じて各前記オブジェクトのサイズを変更する、請求項１から６のいずれか１項に記載の情報処理装置。
【請求項１２】
前記第１の領域が設定されていない状態で前記描画領域において範囲を指定する入力を受け付けると、指定された範囲に含まれる１以上のオブジェクトの配置およびサイズをテンプレートとして生成するテンプレート生成手段をさらに備える、請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記第１の領域にドロップされた順番にしたがって、前記オブジェクトにアドレスまたは変数を設定する設定手段をさらに備える、請求項１から１２のいずれか１項に記載の情報処理装置。
【請求項１４】
情報処理方法であって、
オブジェクトをドラッグし、かつ表示画面内に設けられた描画領域に前記オブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付けるステップと、
前記描画領域にドラッグされた前記オブジェクトを描画するステップと、
前記オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成するステップとを備え、
前記描画するステップでは、前記描画領域内の予め設定された領域に前記オブジェクトとしての第１のオブジェクトが配置されている状態で、前記予め設定された領域に前記オブジェクトとしての第２のオブジェクトがドラッグされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記予め設定された領域内において整列させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、たとえば特許文献１に示すように、複数のオブジェクトを配置することによってプログラマブル表示器の表示画面を生成する作画エディタを有する情報処理装置が知られている。作画エディタにより生成された表示画面は、画面データとしてプログラマブル表示器にダウンロードされる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３１８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラマブル表示器の表示画面をユーザが作成する場合には、情報処理装置において、オブジェクトを配置し、かつ各オブジェクトのプロパティ（見た目等）を設定した後に、マウスによるドラッグアンドドロップ操作およびオブジェクトの整列機能を用いてオブジェクトの位置を合わせる必要がある。このため、オブジェクトの数が多くなると、オブジェクトの位置合わせに必要な手数が非常に多くなる。
【０００５】
本開示は、上記の問題点に鑑みなされたものであって、その目的は、プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能な情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
本開示のある局面に従うと、情報処理装置は、オブジェクトをドラッグし、かつ情報処理装置の表示画面内に設けられた描画領域にオブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける操作受付手段と、描画領域にドロップされたオブジェクトを描画する描画手段と、オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成する画面データ生成手段とを備える。描画手段は、描画領域内の第１の領域にオブジェクトとしての第１のオブジェクトが配置されている状態で、第１の領域にオブジェクトとしての第２のオブジェクトがドロップされると、第１のオブジェクトと第２のオブジェクトとを第１の領域内において整列させる。
【０００７】
上記の構成によれば、ユーザは、第１のオブジェクトと第２のオブジェクトとを整列させる操作が不要となる。それゆえ、プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能となる。
【０００８】
好ましくは、描画手段は、描画領域内の第２の領域にオブジェクトとしての第３のオブジェクトがドロップされると、当該ドロップされた位置に第３のオブジェクトを配置する。
【０００９】
上記の構成によれば、第２の領域では、ドロップされた位置に第３のオブジェクトを配置される。このように、オブジェクトがドロップされた位置が、第１の領域か第２の領域かで、異なる処理を実行させることができる。
【００１０】
好ましくは、情報処理装置は、オブジェクトの整列態様を設定するための設定画面を表示画面に表示させる表示制御手段をさらに備える。描画手段は、設定画面にて第１の方向設定がなされている場合には、第２のオブジェクトがドロップされると、第１のオブジェクトと第２のオブジェクトとを、第１の領域の横方向に整列させる。描画手段は、設定画面にて第２の方向設定がなされている場合には、第２のオブジェクトがドロップされると、第１のオブジェクトと第２のオブジェクトとを、第１の領域の縦方向に整列させる。
【００１１】
上記の構成によれば、設定画面での設定に応じて、横方向または縦方向に第１のオブジェクトと第２のオブジェクトとを整列させることができる。
【００１２】
好ましくは、表示制御手段は、表示画面内にアイコンをさらに表示する。描画手段は、第１のオブジェクトと第２のオブジェクトとが横方向および縦方向のうちの一方向に整列している状態で、アイコンがクリックされると、第１のオブジェクトと第２のオブジェクトとを横方向および縦方向のうちの他方向に整列させる。
【００１３】
上記の構成によれば、ユーザは、アイコンをクリックするだけで、第１のオブジェクトと第２のオブジェクトとの配列を、横方向から縦方向へ、あるいは縦方向から横方向へと切替えることが可能となる。
【００１４】
好ましくは、描画手段は、第１の方向設定がなされている場合、設定画面にて第１の位置設定がさらになされているときには、第１の領域内の上端位置にて、第１のオブジェクトと第２のオブジェクトとを横方向に整列させ、設定画面にて第２の位置設定がさらになされているときには、第１の領域内の中央位置にて、第１のオブジェクトと第２のオブジェクトとを横方向に整列させ、設定画面にて第３の位置設定がさらになされているときには、第１の領域内の下端位置にて、第１のオブジェクトと第２のオブジェクトとを横方向に整列させる。
【００１５】
上記の構成によれば、設定画面での設定に応じて、第１の領域内の上端位置、中央位置、および下端位置のいずれかで第１のオブジェクトと第２のオブジェクトとを横方向に整列させることができる。
【００１６】
好ましくは、描画手段は、第２の方向設定がなされている場合、設定画面にて第４の位置設定がさらになされているときには、第１の領域内の左端位置にて、第１のオブジェクトと第２のオブジェクトとを縦方向に整列させ、設定画面にて第５の位置設定がさらになされているときには、第１の領域内の中央位置にて、第１のオブジェクトと第２のオブジェクトとを縦方向に整列させ、設定画面にて第６の位置設定がさらになされているときには、第１の領域内の右端位置にて、第１のオブジェクトと第２のオブジェクトとを縦方向に整列させる。
【００１７】
上記の構成によれば、設定画面での設定に応じて、第１の領域内の左端位置、中央位置、および右端位置のいずれかで第１のオブジェクトと第２のオブジェクトとを縦方向に整列させることができる。
【００１８】
好ましくは、オブジェクトのサイズは、オブジェクトの種類に応じて固定されている。描画手段は、少なくとも第１のオブジェクトと第２のオブジェクトとを含む複数のオブジェクトを第１の領域において整列させる場合、一行または一列で表示できないときには、折り返し処理によって複数のオブジェクトを二行以上または二列以上で整列する。
【００１９】
上記の構成によれば、オブジェクトのサイズを変更することなく、複数のオブジェクトを横方向または横方向に整列させることができる。
【００２０】
好ましくは、描画手段は、少なくとも第１のオブジェクトと第２のオブジェクトとを含む複数のオブジェクトを第１の領域において整列させる場合、一行または一列で表示するために、複数のオブジェクトの各々のサイズを小さくする。
【００２１】
上記の構成によれば、画面デザイン変更に対するユーザの作業負担が軽減できる。
好ましくは、情報処理装置は、操作に基づき、第１の領域のサイズを変更する変更手段をさらに備える。描画手段は、複数のオブジェクトが一行または一列で配置されている状態において、第１の領域のサイズが縮小されることにより、複数のオブジェクトが一行または一列で配置できないと判断した場合、複数のオブジェクトの各々のサイズを小さくすることにより複数のオブジェクトを一行または一列で配置する。
【００２２】
上記の構成によれば、ユーザは、第１の領域を狭める操作を行った場合であっても、一行または一列に収めるためにオブジェクトの位置およびサイズを変更する操作を行う必要がなくなる。それゆえ、画面デザイン変更に対するユーザの作業負担が軽減できる。
【００２３】
好ましくは、描画手段は、複数のオブジェクトが一行または一列で配置されている状態において、第１の領域のサイズが行方向または列方向に拡大された場合、当該拡大後の第１の領域のサイズに基づき、複数のオブジェクトの各々のサイズを大きくする。
【００２４】
上記の構成によれば、ユーザは、第１の領域を拡大する操作を行った場合、各オブジェクトの位置およびサイズを変更する操作を行う必要がなくなる。それゆえ、画面デザイン変更に対するユーザの作業負担が軽減できる。
【００２５】
好ましくは、描画手段は、第１の領域のサイズと、第１の領域にドロップされるオブジェクトの数とに応じて各オブジェクトのサイズを変更する。
【００２６】
上記の構成によれば、ユーザは、各オブジェクトのサイズを変更する操作を行うことなく、複数のオブジェクトが整列した画面データを得ることができる。
【００２７】
好ましくは、情報処理装置は、第１の領域が設定されていない状態で描画領域において範囲を指定する入力を受け付けると、指定された範囲に含まれる１以上のオブジェクトの配置およびサイズをテンプレートとして生成するテンプレート生成手段をさらに備える。
【００２８】
上記の構成によれば、データ流用性を向上させ、ユーザの画面デザインにかかる工数を削減することができる。
【００２９】
好ましくは、情報処理装置は、第１の領域にドロップされた順番にしたがって、オブジェクトにアドレスまたは変数を設定する設定手段をさらに備える。
【００３０】
上記の構成によれば、オブジェクトの配置と同時に自動的にアドレスや変数の割り付けができるため、ユーザの画面デザインにかかる工数を大幅に削減可能となる。
【００３１】
本開示の他の局面に従うと、情報処理方法は、オブジェクトをドラッグし、かつ表示画面内に設けられた描画領域にオブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付けるステップと、描画領域にドラッグされたオブジェクトを描画するステップと、オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成するステップとを備える。描画するステップでは、描画領域内の予め設定された領域にオブジェクトとしての第１のオブジェクトが配置されている状態で、予め設定された領域にオブジェクトとしての第２のオブジェクトがドラッグされると、第１のオブジェクトと第２のオブジェクトとを予め設定された領域内において整列させる。
【００３２】
上記の構成によれば、ユーザは、第１のオブジェクトと第２のオブジェクトとを整列させる操作が不要となる。それゆえ、プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能となる。
【発明の効果】
【００３３】
本開示によれば、プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能となる。
【図面の簡単な説明】
【００３４】
【図１】プログラマブル表示器の画面データの生成過程の一例を表した図である。
【図２】本実施の形態にかかるＰＬＣシステムを示す模式図である。
【図３】プログラマブル表示器の画面データを作成するときに用いられるアプリケーションの実行によって、ＰＣのディスプレイに表示させる画面例を表した図である。
【図４】設定画面での設定例を説明するための図である。
【図５】設定画面での他の設定例を説明するための図である。
【図６】整列処理を説明するための状態遷移図である。
【図７】オブジェクトの整列態様を説明するための図である。
【図８】オブジェクトの整列態様を説明するための図である。
【図９】整列処理を説明するための遷移図である。
【図１０】オブジェクトの整列態様を説明するための図である。
【図１１】オブジェクトの整列態様を説明するための図である。
【図１２】オブジェクトの整列方向の切替操作を説明するための図である。
【図１３】オブジェクトの数が多くなったときに行われるオブジェクトの折り返し処理を説明するための図である。
【図１４】レイアウト枠を狭める操作がなされたときに行われるオブジェクトの折り返し処理を説明するための図である。
【図１５】オブジェクトの数が多くなったときに行われるオブジェクトの縮小処理を説明するための図である。
【図１６】レイアウト枠を狭める操作がなされたときに行われるオブジェクトの縮小処理を説明するための図である。
【図１７】レイアウト枠を拡大する操作がなされたときに行われるオブジェクトの拡大処理を説明するための図である。
【図１８】ＰＣの機能的構成を説明するためのブロック図である。
【図１９】ＰＣで実行される処理の流れを説明するためのフロー図である。
【図２０】ＰＣのハードウェア構成を示す模式図である。
【図２１】整列処理を説明するための状態遷移図である。
【図２２】整列処理の他の例を説明するための状態遷移図である。
【図２３】ＰＣの表示画面を表した図である。
【図２４】図２３の後にＰＣで表示される表示画面を表した図である。
【図２５】図２４の後にＰＣで表示される表示画面を表した図である。
【図２６】図２５の後にＰＣで表示される表示画面を表した図である。
【図２７】図２６の後にＰＣで表示される表示画面を表した図である。
【図２８】ＰＣの機能的構成を説明するためのブロック図である。
【図２９】ＰＣの表示画面を表した図である。
【図３０】図２９の後にＰＣで表示される表示画面の描画領域を表した図である。
【図３１】ＰＣの機能的構成を説明するためのブロック図である。
【発明を実施するための形態】
【００３５】
以下において、本発明の実施の形態について図面を参照しつつ説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについては詳細な説明は繰り返さない。
【００３６】
また、以下では、プログラマブル表示器に送信する画面データを生成する情報処理装置（典型的には、ＰＣ（Personal Computer））において実行される処理を説明する。つまり、情報処理装置において作画エディタ機能を用いて画面データを生成する局面を説明する。後述する表示画面の例は、情報処理装置のディスプレイに表示されるものである。
【００３７】
§１  適用例
図１は、プログラマブル表示器の画面データの生成過程の一例を表した図である。
【００３８】
図１を参照して、情報処理装置は、作画機能を実行することにより、情報処理装置の表示画面に描画領域（作画領域）を設定する。描画領域は、第１の領域と、第２の領域とを含んでいる。典型的には、第１の領域はユーザ操作によって設定される。なお、典型的には、第１の領域の設定に伴い、描画領域における第１の領域以外の領域が第２の領域として自動的に確定する。
【００３９】
情報処理装置は、オブジェクトをドラッグし、かつ描画領域に当該オブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける。また、情報処理装置は、描画領域にドロップされたオブジェクトを描画する。
【００４０】
たとえば、状態（Ａ）に示すように、情報処理装置は、オブジェクト＃１のドラッグと、描画領域内の第１の領域へのオブジェクト＃１のドロップとを受け付ける。この場合、情報処理装置は、オブジェクト＃１がドロップされた領域が第１の領域であるため、状態（Ｂ）に示すように、オブジェクト＃１の位置をドラッグされた位置から別の位置（たとえば、第１の領域の中央左端部）へと移動させる。
【００４１】
次に、状態（Ｃ）に示すように、情報処理装置は、オブジェクト＃２のドラッグと、第１の領域へのオブジェクト＃２のドロップとを受け付ける。この場合、情報処理装置は、状態（Ｄ）に示すように、オブジェクト＃２の位置を移動させることにより、オブジェクト＃１とオブジェクト＃２とを第１の領域内において整列させる。たとえば、情報処理装置は、状態（Ｄ）に示すように、オブジェクト＃１とオブジェクト＃２とを、表示画面の横方向（図のＸ軸の方向）に並ぶように整列させる。
【００４２】
なお、情報処理装置は、状態（Ｅ）に示すように、オブジェクト＃３のドラッグと、描画領域内の第２の領域へのオブジェクト＃３のドロップとを受け付けた場合には、状態（Ｆ）に示すように、オブジェクト＃３をドロップされた位置に配置する。つまり、譲歩処理装置は、第１の領域外ではオブジェクト＃３の整列処理は実行しない。
【００４３】
情報処理装置は、オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成する。なお、当該生成されたデータは、典型的には情報処理装置からプログラマブル表示器に送信される。あるいは、当該生成されたデータは、ＵＳＢ（Universal Serial Bus）メモリ等の記憶媒体を用いて、プログラマブル表示器に格納される。
【００４４】
以上のように、情報処理装置は、描画領域内の第１の領域にオブジェクト＃１が配置されている状態で、第１の領域にオブジェクト＃２がドロップされると、オブジェクト＃１とオブジェクト＃２とを第１の領域内において整列させる。
【００４５】
上記の構成によれば、ユーザは、複数のオブジェクト＃１，＃２を整列させる操作が不要となる。それゆえ、プログラマブル表示器の画面データをユーザが作成する際の手間を削減可能となる。
【００４６】
§２  構成例
［実施の形態１］
＜Ａ．システム構成＞
図２は、本実施の形態にかかるＰＬＣシステム１０００を示す模式図である。図２を参照して、ＰＬＣシステム１０００は、複数のＰＬＣ１，２，３と、プログラマブル表示器４と、情報処理装置としてのＰＣ（Personal Computer）５とを含む。
【００４７】
各ＰＬＣ１〜３は、典型的には、プログラムを実行する主体であるＣＰＵユニット１０と、ＣＰＵユニット１０などへ電力を供給する電源ユニット１２と、フィールドからの信号を遣り取りするＩＯ（Input/Output）ユニット１４とを含む。ＩＯユニット１４は、ＣＰＵユニット１０とシステムバス１１を介して接続されている。典型的には、ＩＯユニット１４は、フィールド機器である検出センサ６から入力信号を取得し、またＣＰＵユニット１０でのプログラムの実行結果に応じてフィールド機器であるリレー７を駆動する。
【００４８】
プログラマブル表示器４は、ＨＭＩ（Human Machine Interface）環境におけるＧＵＩ（Graphical User Interface）としての役割を果たす。プログラマブル表示器４は、タッチパネルなどの操作部と液晶ディスプレイなどの表示部とＣＰＵユニット１０と通信する通信部と各部を制御する制御部とを備える。各ＰＬＣ１〜３は、プログラマブル表示器４の操作部による操作に応じて各種の設定の変更が可能であり、ＰＬＣの所定の情報をプログラマブル表示器４に表示させることが可能である。
【００４９】
ＰＣ５は、プログラマブル表示器４に接続される。ＰＣ５は、接続先のＰＬＣ１〜３の運転状態や各種データの値などをモニタする機能を有している。ＰＣ５をサポート装置として機能させる場合、ＰＣ５は、ＰＬＣ１〜３で実行されるプログラムおよび設定情報を生成する。さらに、ＰＣ５は、ユーザによる実行可能プログラムの生成を支援するため、デバック機能やシミュレーション機能を有していてもよい。
【００５０】
ＰＬＣ１〜３は、たとえば、ＦＩＮＳ（Factory Interface Netwrok Service）通信、ＨＴＴＰ（Hyper Text Transfer Protocol）通信、またはＥＩＰ（EtherNet/IP）通信のいずれかによりりプログラマブル表示器４と通信する。
【００５１】
＜Ｂ．ユーザインターフェイス＞
（ｂ１．作画画面）
図３は、プログラマブル表示器の画面データを作成するときに用いられるアプリケーションの実行によって、ＰＣ５のディスプレイに表示させる画面例を表した図である。
【００５２】
図３を参照して、ＰＣ５の表示画面５５０は、ユーザが描画（作画）するための描画領域（作画領域）５５１を有する。描画領域５５１には、ユーザがレイアウト枠を設定することにより、レイアウト枠内の領域５５２（「第１の領域」の例）と、レイアウト枠外の領域５５３（「第２の領域」の例）とが形成される。
【００５３】
なお、図３では、点線で示した矩形がレイアウト枠を表している。以下では、レイアウト枠内の領域５５２を、「枠内領域５５２」と称し、レイアウト枠外の領域５５３を、「枠外領域５５３」とも称する。
【００５４】
描画領域５５１には、アイコン５５４が表示される。アイコン５５４に付与された機能については後述する。
【００５５】
表示画面５５０は、ツールボックスを有する。ツールボックスは、たとえば、ボタンのツール５５６と、ランプのツール５５７と、図形のツール５５８と、標準コントロールのツール５５９と、ゲージのツール５６０と、ＨＭＩコントロールのツール５６１と、カスタムのツール５６２と、コンベアのツール５６３と、タンクのツール５６４とを有する。
【００５６】
ボタンのツール５５６は、「セットボタン」を描画するためのツール５５６１と、「トグルボタン」を描画するためのツール５５６２と、「ボタン」（通常のボタン）を描画するためのツール５５６３と、「モーメンタリボタン」を描画するためのツール５５６４と、「リセットボタン」を描画するためのツール５５６５とを有する。なお、「セットボタン」、「トグルボタン」、「ボタン」、「モーメンタリボタン」、および「リセットボタン」の各々は、それぞれ、オブジェクトの一例である。
【００５７】
図３の例では、ＰＣ５がユーザによるドラッグアンドドロップ操作を行っている途中の状態を表している。具体的には、マウスでツール５５６３が選択されてドラック操作がなされ、領域５５１内にボタンのオブジェクト６０１をドラッグする直前の状態を表している。
【００５８】
詳細については後述するが、ＰＣ５では、枠内領域５５２では、オブジェクトの整列が実行される。つまり、レイアウト枠内ではレイアウト処理が実行される。以下では、まず、整列態様を設定するための設定画面を説明し、その後、整列の具体例を説明する。なお、設定画面は、ユーザ操作に基づき、画面５５０上に表示される。
【００５９】
（ｂ２．設定画面）
図４は、設定画面での設定例を説明するための図である。
【００６０】
図４を参照して、設定画面５７０では、ユーザは、整列の態様（スタイル）の設定を行うことができる。設定画面５７０は、配置方向を設定するためのアイコン５７１，５７２と、配置されたオブジェクトをラップさせる（折り返す）か否かを設定するためのラジオボタン５７３，５７４と、描画領域５５１に対応する領域５５１Ａと、枠内領域５５２に対応する領域５５２Ａと、位置に関するアイコン５７５，５７６，５７７と、ボタン５７８，５７９とを有する。
【００６１】
なお、アイコン５７１，５７２は、どちらかが選択状態となる。また、アイコン５７５，５７６，５７７は、いずれか１つが選択状態となる。
【００６２】
図４の設定画面５７０の例では、アイコン５７１が選択された状態を示している。この設定の場合、ＰＣ５は、枠内領域５５２に配置されたオブジェクトを横方向に整列する。また、図４の設定画面５７０の例では、アイコン５７５が選択された状態を示している。この設定の場合、ＰＣ５は、枠内領域５５２内の上端位置において、枠内領域５５２に配置されたオブジェクトを整列させる。
【００６３】
また、アイコン５７１が選択された状態において、アイコン５７６が選択されると、ＰＣ５は、枠内領域５５２内の中央位置において、枠内領域５５２に配置されたオブジェクトを横方向に整列させる。さらに、アイコン５７１が選択された状態において、アイコン５７７が選択されると、ＰＣ５は、枠内領域５５２内の下端位置において、枠内領域５５２に配置されたオブジェクトを横方向に整列させる。
【００６４】
ＰＣ５は、ユーザが設定内容を容易に確認できるように、３つのサンプル図形（図中の正方形、三角形、円）を用いて、選択された配置方向と選択された位置とを表示する。
【００６５】
ユーザによってボタン５７８が選択されると、ＰＣ５は、ユーザによって設定された設定内容を確定する。ユーザによってボタン５７９が選択されると、ＰＣ５は、今回の設定内容を廃棄する。
【００６６】
図５は、設定画面での他の設定例を説明するための図である。
図５を参照して、この設定画面５７０の例では、アイコン５７２が選択された状態を示している。この設定の場合、ＰＣ５は、枠内領域５５２に配置されたオブジェクトを縦方向に整列する。また、図５の設定画面５７０の例では、アイコン５８０が選択された状態を示している。この設定の場合、ＰＣ５は、枠内領域５５２内の左端部において、枠内領域５５２に配置されたオブジェクトを整列させる。
【００６７】
また、アイコン５７２が選択された状態において、アイコン５８１が選択されると、ＰＣ５は、枠内領域５５２内の中央位置において、枠内領域５５２に配置されたオブジェクトを縦方向に整列させる。さらに、アイコン５７２が選択された状態において、アイコン５８２が選択されると、ＰＣ５は、枠内領域５５２内の右端部において、枠内領域５５２に配置されたオブジェクトを縦方向に整列させる。
【００６８】
以下では、設定画面５７０において各種の設定がなされた場合の整列態様について、具体例を挙げて説明する。特に、本実施の形態においては、「ボタン」のオブジェクトと、図形の一例としての「円」のオブジェクトを、ドラッグアンドドロップ操作によって、枠内領域５５２に描画する場合を例に挙げて説明する。
【００６９】
（ｂ３．横方向に整列）
図６は、設定画面５７０においてアイコン５７１とアイコン５７６（図４参照）とが選択状態にある場合における、整列処理を説明するための状態遷移図である。つまり、図６は、横方向かつ中央位置での配置が選択されている場合の状態遷移図である。
【００７０】
図６を参照して、状態（Ａ）に示すように、ＰＣ５は、オブジェクト６１１のドラッグと、描画領域５５１内の枠内領域５５２へのオブジェクト６１１のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６１１がドロップされた領域が枠内領域５５２であるため、状態（Ｂ）に示すように、オブジェクト６１１の位置をドラッグされた位置から枠内領域５５２の中央左端部へと移動させる。
【００７１】
次に、状態（Ｃ）に示すように、ＰＣ５は、オブジェクト６１２のドラッグと、枠内領域５５２へのオブジェクト６１２のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｄ）に示すように、オブジェクト６１２の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とを枠内領域５５２内の中央位置において左端側から横方向に整列させる。
【００７２】
次に、状態（Ｅ）に示すように、ＰＣ５は、オブジェクト６１３のドラッグと、枠内領域５５２へのオブジェクト６１３のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｆ）に示すように、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の中央位置において左端側から横方向に整列させる。
【００７３】
図７は、設定画面５７０においてアイコン５７１とアイコン５７５（図４参照）とが選択状態にある場合における、オブジェクト６１１，６１２，６１３の整列態様を説明するための図である。つまり、図７は、横方向かつ上端位置での配置が選択されている場合の状態遷移図である。
【００７４】
図７を参照して、ＰＣ５は、枠内領域５５２へのオブジェクト６１３のドロップを受け付けと、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の上端位置において左端側から横方向に整列させる。
【００７５】
図８は、設定画面５７０においてアイコン５７１とアイコン５７７（図４参照）とが選択状態にある場合における、オブジェクト６１１，６１２，６１３の整列態様を説明するための図である。図８は、横方向かつ下端位置での配置が選択されている場合の状態遷移図である。
【００７６】
図８を参照して、ＰＣ５は、枠内領域５５２へのオブジェクト６１３のドロップを受け付けと、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の下端位置において左端側から横方向に整列させる。
【００７７】
（ｂ４．縦方向に整列）
図９は、設定画面５７０においてアイコン５７２とアイコン５８１（図５参照）とが選択状態にある場合における、整列処理を説明するための遷移図である。つまり、図９は、縦方向かつ中央位置での配置が選択されている場合の状態遷移図である。
【００７８】
図９を参照して、状態（Ａ）に示すように、ＰＣ５は、オブジェクト６１１のドラッグと、描画領域５５１内の枠内領域５５２へのオブジェクト６１１のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６１１がドロップされた領域が枠内領域５５２であるため、状態（Ｂ）に示すように、オブジェクト６１１の位置をドラッグされた位置から枠内領域５５２の中央上端位置へと移動させる。
【００７９】
次に、状態（Ｃ）に示すように、ＰＣ５は、オブジェクト６１２のドラッグと、枠内領域５５２へのオブジェクト６１２のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｄ）に示すように、オブジェクト６１２の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とを枠内領域５５２内の中央位置において上端側から縦方向に整列させる。
【００８０】
次に、状態（Ｅ）に示すように、ＰＣ５は、オブジェクト６１３のドラッグと、枠内領域５５２へのオブジェクト６１３のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｆ）に示すように、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の中央位置において上端側から縦方向に整列させる。
【００８１】
図１０は、設定画面５７０においてアイコン５７２とアイコン５８０（図５参照）とが選択状態にある場合における、オブジェクト６１１，６１２，６１３の整列態様を説明するための図である。つまり、図１０は、縦方向かつ左端位置での配置が選択されている場合の状態遷移図である。
【００８２】
図１０を参照して、ＰＣ５は、枠内領域５５２へのオブジェクト６１３のドロップを受け付けと、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の左端部において上端側から縦方向に整列させる。
【００８３】
図１１は、設定画面５７０においてアイコン５７２とアイコン５８２（図５参照）とが選択状態にある場合における、オブジェクト６１１，６１２，６１３の整列態様を説明するための図である。つまり、図１１は、縦方向かつ右端位置での配置が選択されている場合の状態遷移図である。
【００８４】
図１１を参照して、ＰＣ５は、枠内領域５５２へのオブジェクト６１３のドロップを受け付けと、オブジェクト６１３の位置を移動させることにより、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とを枠内領域５５２内の右端部において上端側から縦方向に整列させる。
【００８５】
（ｂ５．切替処理）
（１）設定画面５７０による切替処理
ユーザは、以下のような操作によって、横方向と縦方向との切替処理をＰＣ５に実行させることができる。
【００８６】
再び図６および図９を参照して、たとえば図６の状態（Ｆ）のように複数のオブジェクトを横方向に整列させた状態において、設定画面５７０を表示させてアイコン５７２を選択する操作を完了すると、ＰＣ５は、たとえば図９の状態（Ｆ）に示すように複数のオブジェクトを縦方向に整列させる。同様に、図９の状態（Ｆ）のように複数のオブジェクトを縦方向に整列させた状態において、設定画面５７０を表示させてアイコン５７１を選択する操作を完了すると、ＰＣ５は、たとえば図６の状態（Ｆ）に示すように複数のオブジェクトを横方向に整列させる。
【００８７】
また、ユーザは、枠内領域５５２に１以上のオブジェクトが配置されている状態において、アイコン５７５，５７６，５７７（図４参照）の選択がなされると、選択されたアイコンに対応付けられた位置に当該オブジェクトを移動させる。たとえば、アイコン５７６が選択された状態からアイコン５７５が選択された状態に切り替わると、ＰＣ５は、たとえば図６の状態（Ｆ）から図７の状態へと、オブジェクトの位置を変更する。
【００８８】
同様に、ユーザは、枠内領域５５２に１以上のオブジェクトが配置されている状態において、アイコン５８０，５８１，５８２（図５参照）の選択がなされると、選択されたアイコンに対応付けられた位置に当該オブジェクトを移動させる。たとえば、アイコン５８１が選択された状態からアイコン５８０が選択された状態に切り替わると、ＰＣ５は、たとえば図９の状態（Ｆ）から図１０の状態へと、オブジェクトの位置を変更する。
【００８９】
このような構成によれば、ユーザは、描画の途中であっても、オブジェクトを整列方向および位置を変更可能となる。それゆえ、最初から描画をやり直す必要がなくなるため、ユーザの作業負担を減らすことが可能となる。
【００９０】
（２）アイコン５４４を用いた横方向と縦方向との切替処理
図１２は、オブジェクトの整列方向の切替操作を説明するための図である。
【００９１】
図１２を参照して、状態（Ａ）は、図６の状態（Ｆ）を示している。すなわち、図１２の状態（Ａ）では、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とが枠内領域５５２内の中央位置において左端側から横方向に整列している。
【００９２】
状態（Ｂ）は、図９の状態（Ｆ）を示している。すなわち、図１２の状態（Ｂ）では、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とが枠内領域５５２内の中央位置において上端側から縦方向に整列している。
【００９３】
状態（Ａ）においてユーザがマウス等でアイコン５５４をクリックすると、ＰＣ５は、枠内領域５５２のオブジェクト６１１，６１２，６１３の整列態様を、状態（Ａ）から状態（Ｂ）へと切替える。つまり、ＰＣ５は、横並びから縦並びへと変更する。
【００９４】
同様に、状態（Ｂ）においてユーザがマウス等でアイコン５５４をクリックすると、ＰＣ５は、枠内領域５５２のオブジェクト６１１，６１２，６１３の整列態様を、状態（Ｂ）から状態（Ａ）へと切替える。つまり、ＰＣ５は、縦並びから横並びへと変更する。
【００９５】
このように、ユーザは、アイコン５５４をクリックするだけで、横並びと縦並びとを逐次切換えることができる。このため、設定画面５７０を立ち上げるとともに配置方向に関するアイコン５７１，５７２（図４等参照）をクリックするといった一連の操作が不要となる。よって、画面デザイン変更に対するユーザの作業負担が軽減できる。
【００９６】
（ｂ６．オブジェクトの折り返し処理）
オブジェクトの折り返し処理（ラップ処理）について、２つの例を挙げて説明する。
【００９７】
（１）第１の例
図１３は、オブジェクトの数が多くなったときに行われるオブジェクトの折り返し処理を説明するための図である。本例では、オブジェクトのサイズは、オブジェクトの種類に応じて固定されているものとする。
【００９８】
図１３を参照して、状態（Ａ）では、オブジェクト６１１とオブジェクト６１２とオブジェクト６１３とが枠内領域５５２内の中央位置において左端側から横方向に整列している。
【００９９】
次に、状態（Ｂ）に示すように、ＰＣ５は、オブジェクト６１４のドラッグと、枠内領域５５２へのオブジェクト６１４のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６１４のサイズ（この場合、横方向のサイズ）に基づき、４つのオブジェクト６１１，６１２，６１３，６１４が一行で収まるか否かを判断する。
【０１００】
ＰＣ５は、収まらないと判断すると、状態（Ｃ）に示すように、折り返し処理を実行する。具体的には、オブジェクト６１４の位置を枠内領域５５２の左端部であって、左端部のオブジェクト６１１の下側に移動させる。この場合、オブジェクト６１１，６１２，６１３，６１４からなるオブジェクト群が枠内領域５５２の中央位置に位置するように、オブジェクト６１１，６１２，６１３についても上方向（Ｙ方向）に移動させる。
【０１０１】
このように、ＰＣ５は、複数のオブジェクトを枠内領域５５２において整列させる場合、一行で表示できないときには、折り返し処理によって複数のオブジェクトを二行以上で整列させる。このような構成によれば、オブジェクトのサイズを変更することなく、オブジェクトを横方向に整列させることができる。
【０１０２】
なお、上記においては、オブジェクトを横方向に整列させる構成を例に挙げて説明したが、これに限定されるものではない。縦方向に整列させる構成にも適用できる。具体的には、ＰＣ５は、複数のオブジェクトを枠内領域５５２において整列させる場合、一列で表示できないときには、折り返し処理によって複数のオブジェクトを二列以上で整列させる。
【０１０３】
（２）第２の例
図１４は、レイアウト枠を狭める操作がなされたとき（つまり、枠内領域５５２が狭まったとき）に行われるオブジェクトの折り返し処理を説明するための図である。
【０１０４】
図１４を参照して、状態（Ａ）にて示すようにレイアウト枠が矢印５９０が示す方向に狭められた場合、オブジェクト６１３が枠内領域５５２に収まらなくなってしまう。この場合、ＰＣ５は、状態（Ｂ）に示すように、折り返し処理を行なう。具体的には、オブジェクト６１３の位置を枠内領域５５２の左端部であって、左端部のオブジェクト６１１の下側に移動させる。この場合、オブジェクト６１１，６１２，６１３からなるオブジェクト群が枠内領域５５２の中央位置に位置するように、オブジェクト６１１，６１２についても上方向（Ｙ方向）に移動させる。
【０１０５】
このように、ＰＣ５は、複数のオブジェクトを枠内領域５５２において整列させる場合、一行で表示できないときには、折り返し処理によって複数のオブジェクトを二行以上で整列させる。
【０１０６】
（ｂ７．オブジェクトの縮小処理）
オブジェクトの縮小処理について、２つの例を挙げて説明する。
【０１０７】
（１）第１の例
図１５は、オブジェクトの数が多くなったときに行われるオブジェクトの縮小処理を説明するための図である。
【０１０８】
図１５を参照して、状態（Ａ）に示すように、オブジェクト６１１，６１２，６１３が横方向に整列した状態において、オブジェクト６１４のドラッグと、枠内領域５５２へのオブジェクト６１４のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６１４のサイズ（この場合、横方向のサイズ）に基づき、４つのオブジェクト６１１，６１２，６１３，６１４が一行で収まるか否かを判断する。
【０１０９】
ＰＣ５は、収まらないと判断すると、状態（Ｂ）に示すように、全てのオブジェクト６１１，６１２，６１３，６１４のサイズを縮小する処理を実行する。典型的には、オブジェクト６１１，６１２，６１３，６１４を一行で整列させた状態で枠内領域５５２に収まるように、オブジェクト６１１，６１２，６１３，６１４を縮小する。
【０１１０】
このように、ＰＣ５は、複数のオブジェクトを枠内領域５５２において整列させる場合、一行で表示するために、複数のオブジェクトの各々のサイズを小さくする。このような構成によれば、オブジェクトを横方向に一行で整列させることができる。これによれば、画面デザイン変更に対するユーザの作業負担が軽減できる。
【０１１１】
なお、上記においては、オブジェクトを横方向に整列させる構成を例に挙げて説明したが、これに限定されるものではない。縦方向に整列させる構成にも適用できる。具体的には、ＰＣ５は、複数のオブジェクトを枠内領域５５２において整列させる場合、一列で表示するために、複数のオブジェクトの各々のサイズを小さくする。
【０１１２】
（２）第２の例
図１６は、レイアウト枠を狭める操作がなされたとき（つまり、枠内領域５５２が狭まったとき）に行われるオブジェクトの縮小処理を説明するための図である。
【０１１３】
図１６を参照して、状態（Ａ）にて示すようにレイアウト枠が矢印５９０が示す方向に狭められた場合、オブジェクト６１３が枠内領域５５２に収まらなくなってしまう。この場合、ＰＣ５は、状態（Ｂ）に示すように、各オブジェクトの縮小処理を行なう。典型的には、オブジェクト６１１，６１２，６１３を一行で整列させた状態で、狭められた枠内領域５５２に収まるように、オブジェクト６１１，６１２，６１３を縮小する。
【０１１４】
このように、ＰＣ５は、複数のオブジェクトが一行で配置されている状態において、枠内領域５５２のサイズが横方向に縮小されることにより、複数のオブジェクトが一行で配置できないと判断した場合、複数のオブジェクトの各々のサイズを小さくすることにより複数のオブジェクトを一行で配置する。このような構成によれば、ユーザは、枠内領域５５２を横方向に狭める操作を行った場合であっても、一行に収めるためにオブジェクトの位置およびサイズを変更する操作を行う必要がなくなる。このように、画面デザイン変更に対するユーザの作業負担が軽減できる。
【０１１５】
なお、上記においては、オブジェクトを横方向に整列させる構成を例に挙げて説明したが、これに限定されるものではない。縦方向に整列させる構成にも適用できる。具体的には、ＰＣ５は、複数のオブジェクトが一列で配置されている状態において、枠内領域５５２のサイズが縦方向に縮小されることにより、複数のオブジェクトが一列で配置できないと判断した場合、複数のオブジェクトの各々のサイズを小さくすることにより複数のオブジェクトを一列で配置する。
【０１１６】
（ｂ８．オブジェクトの拡大処理）
オブジェクトの拡大処理について説明する。
【０１１７】
図１７は、レイアウト枠を拡大する操作がなされたとき（つまり、枠内領域５５２が広がったとき）に行われるオブジェクトの拡大処理を説明するための図である。
【０１１８】
状態（Ａ）に示すように、オブジェクト６１１，６１２，６１３が横方向に一行で整列している状態において、状態（Ｂ）に示すように、レイアウト枠が矢印５９１が示す方向に拡大された場合、ＰＣ５は、オブジェクトの拡大処理を行なう。典型的には、ＰＣ５は、枠内領域５５２の幅に対する３つのオブジェクト６１１〜６１３の横幅の合計の比率を一定に保つように、オブジェクト６１１〜６１３を同じ比率で縦および横方向に拡大する。
【０１１９】
このように、ＰＣ５は、複数のオブジェクトが一行で配置されている状態において、枠内領域５５２のサイズが少なくとも行方向に拡大された場合、当該拡大後の枠内領域５５２のサイズに基づき、複数のオブジェクトの各々のサイズを大きくする。このような構成によれば、ユーザは、枠内領域５５２を横方向に拡大する操作を行った場合、各オブジェクトの位置およびサイズを変更する操作を行う必要がなくなる。このように、画面デザイン変更に対するユーザの作業負担が軽減できる。
【０１２０】
＜Ｃ．機能的構成＞
図１８は、ＰＣ５の機能的構成を説明するためのブロック図である。
【０１２１】
図１８を参照して、ＰＣ５は、入力装置７０１と、表示装置７０２と、制御部７０３と、通信ＩＦ部７０４とを備える。
【０１２２】
入力装置７０１は、キーボード５１０と、マウス５１２とを備える。
制御部７０３は、ＰＣ５の全体的な動作を制御する。制御部７０３は、作画エディタとしても機能する。制御部７０３は、操作受付部７３１と、表示制御部７３２と、画面データ生成部７３３と、領域サイズ変更部７３４と、オブジェクトサイズ変更部７３５とを備える。
【０１２３】
表示制御部７３２は、表示装置７０２に、ＰＣ５の状態に即した各種の画面を表示させる。表示制御部７３２は、ユーザ操作に基づき、オブジェクトの整列態様を設定するための設定画面５７０（図４等）を表示装置７０２の表示画面５５０（図３参照）に表示させる。また、表示制御部は、表示画面５５０内（典型的には、描画領域５５１）にアイコン５５４（図３参照）をさらに表示する。
【０１２４】
表示制御部７３２は、描画部７３２０を備える。描画部７３２０は、整列処理部７３２１を備える。
【０１２５】
操作受付部７３１は、入力装置７０１を介した各種のユーザ操作を受け付ける。たとえば、操作受付部７３１は、オブジェクトをドラッグし、かつＰＣ５の表示画面５５０内に設けられた描画領域５５１にオブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける。また、操作受付部７３１は、レイアウト枠（換言すれば、枠内領域５５２）のサイズを変更（拡大または縮小）する操作を受け付ける。さらに、操作受付部７３１は、レイアウト枠（換言すれば、枠内領域５５２）の位置を変更する操作を受け付ける。
【０１２６】
操作受付部７３１が描画領域５５１にオブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付けると、描画部７３２０は、描画領域５５１において、ドロップされたオブジェクトの描画を行う。整列処理部７３２１は、設定画面における設定に基づき、枠内領域５５２にドロップされたオブジェクトの整列を行う。
【０１２７】
描画部７３２０は、たとえば、枠内領域５５２に第１のオブジェクト（たとえば、オブジェクト６１１）が配置されている状態で、枠内領域５５２に第２のオブジェクト（たとえば、オブジェクト６１２）がドロップされると、第１のオブジェクトと第２のオブジェクトとを枠内領域５５２内において整列させる。一方、描画部７３２０は、枠外領域５５３に第３のオブジェクトがドロップされると、当該ドロップされた位置に第３のオブジェクトを配置する。
【０１２８】
画面データ生成部７３３は、オブジェクトの描画に基づき、プログラマブル表示器４において表示させる画面の画面データを生成する。詳しくは、画面データ生成部７３３は、描画部７３２０から描画データを受け取り、表示器用画面データを生成する。画面データ生成部７３３は、生成された画面データを通信ＩＦ部７０４に送る。
【０１２９】
通信ＩＦ部７０４は、画面データをプログラマブル表示器４に送信する。
以下、描画部７３２０のさらなる処理について説明する。なお、以下では、第１のオブジェクトの一例として、オブジェクト６１１を挙げ、第２のオブジェクトの一例として、オブジェクト６１２を挙げて説明する。
【０１３０】
（１）図６を再び参照して、描画部７３２０は、設定画面５７０にてアイコン５７１が選択されている場合（第１の方向設定がなされている場合）には、オブジェクト６１２がドロップされると、オブジェクト６１１とオブジェクト６１２とを、枠内領域５５２の横方向に整列させる。
【０１３１】
また、図９を再び参照して、描画部７３２０は、設定画面５７０にてアイコン５７２が選択されている場合（第２の方向設定がなされている場合）には、オブジェクト６１２がドロップされると、オブジェクト６１１とオブジェクト６１２とを、枠内領域５５２の縦方向に整列させる。
【０１３２】
（２）図１２を再び参照して、描画部７３２０は、オブジェクト６１１とオブジェクト６１２とが横方向（Ｘ軸方向）および縦方向（Ｙ軸方向）のうちの一方向に整列している状態で、アイコン５４４がクリックされると、オブジェクト６１１とオブジェクト６１２とを横方向および縦方向のうちの他方向に整列させる。
【０１３３】
（３）描画部７３２０は、図４に示すように設定画面５７０にてアイコン５７１が選択されている場合（第１の方向設定がなされている場合）、以下の処理を行なう。
【０１３４】
描画部７３２０は、設定画面５７０にてアイコン５７５（図４参照）が選択されているとき（第１の位置設定がさらになされているとき）には、枠内領域５５２内の上端位置にて、オブジェクト６１１とオブジェクト６１２とを横方向に整列させる（図７参照）。
【０１３５】
描画部７３２０は、設定画面５７０にてアイコン５７６が選択されているとき（第２の位置設定がさらになされているとき）には、枠内領域５５２内の中央位置にて、オブジェクト６１１とオブジェクト６１２とを横方向に整列させる（図６参照）。
【０１３６】
描画部７３２０は、設定画面５７０にてアイコン５７７が選択されているとき（第３の位置設定がさらになされているとき）には、枠内領域５５２内の下端位置にて、オブジェクト６１１とオブジェクト６１２とを横方向に整列させる（図８参照）。
【０１３７】
（４）描画部７３２０は、図５に示すように設定画面５７０にてアイコン５７２が選択されている場合（第１の方向設定がなされている場合）、以下の処理を行なう。
【０１３８】
描画部７３２０は、設定画面５７０にてアイコン５８０（図５参照）が選択されているとき（第４の位置設定がさらになされているとき）には、枠内領域５５２内の左端位置にて、オブジェクト６１１とオブジェクト６１２とを縦方向に整列させる（図１０参照）。
【０１３９】
描画部７３２０は、設定画面５７０にてアイコン５８１が選択されているとき（第５の位置設定がさらになされているとき）には、枠内領域５５２内の中央位置にて、オブジェクト６１１とオブジェクト６１２とを縦方向に整列させる（図９参照）。
【０１４０】
描画部７３２０は、設定画面５７０にてアイコン５８２が選択されているとき（第６の位置設定がさらになされているとき）には、枠内領域５５２内の右端位置にて、オブジェクト６１１とオブジェクト６１２とを縦方向に整列させる（図１１参照）。
【０１４１】
（５）図１３および図１４を再び参照して、描画部７３２０は、オブジェクト６１１とオブジェクト６１２とを含む複数のオブジェクトを枠内領域５５２において整列させる場合、一行または一列で表示できないときには、折り返し処理によって当該複数のオブジェクトを二行以上または二列以上で整列する。
【０１４２】
（６）図１５および図１６を再び参照して、描画部７３２０は、オブジェクト６１１とオブジェクト６１２とを含む複数のオブジェクトを枠内領域５５２において整列させる場合、一行または一列で表示するために、当該複数のオブジェクトの各々のサイズを小さくする。
【０１４３】
（７）ユーザ操作に基づき、領域サイズ変更部７３４によって枠内領域５５２のサイズが変更された場合、描画部７３２０は以下の処理を行なう。
【０１４４】
図１６を再び参照して、描画部７３２０は、複数のオブジェクトが一行または一列で配置されている状態において、枠内領域５５２のサイズが縮小されることにより、当該複数のオブジェクトが一行または一列で配置できないと判断した場合、当該複数のオブジェクトの各々のサイズを小さくすることにより当該複数のオブジェクトを一行または一列で配置する。
【０１４５】
（８）図１７を再び参照して、描画部７３２０は、複数のオブジェクトが一行または一列で配置されている状態において、枠内領域５５２のサイズが行方向または列方向に拡大された場合、当該拡大後の枠内領域５５２のサイズに基づき、当該複数のオブジェクトの各々のサイズを大きくする。
【０１４６】
＜Ｄ．制御構造＞
説明の便宜上、以下では、描画領域５５１のうち枠内領域５５２にオブジェクトがドロップされたときの処理に着目して、制御構造を説明する。図１９は、ＰＣ５で実行される処理の流れを説明するためのフロー図である。
【０１４７】
図１９を参照して、ステップＳ１において、ＰＣ５は、予め定められた変数ｉの値を１に設定する。ステップＳ２において、ＰＣ５は、枠内領域５５２内に１番目のオブジェクトをドロップする操作を受け付ける。ステップＳ３において、ＰＣ５は、設定画面５７０での設定に応じて、１番目のオブジェクトを枠内領域５５２に配置する（図６の状態（Ｂ）等参照）。
【０１４８】
ステップＳ４において、ＰＣ５は、枠内領域５５２内にｉ＋１番目のオブジェクトをドロップする操作を受け付けたか否かを判断する。ＰＣ５は、操作を受け付けたと判断した場合（ステップＳ４においてＹＥＳ）、ステップＳ５において、設定画面での設定に応じて１番目からｉ＋１番目までのオブジェクトを枠内領域５５２内に整列配置する。ＰＣ５は、操作を受け付けていないと判断した場合（ステップＳ４においてＮＯ）、処理をステップＳ７に進める。
【０１４９】
ステップＳ６にて、ＰＣ５は、変数ｉの値をインクリメントする。すなわち、ＰＣ５は、変数ｉの値を１だけ増加させる。ステップＳ７において、ＰＣ５は、プログラマブル表示器用の画面データの生成指示（ユーザ指示）を受け付けた否かを判断する。
【０１５０】
ＰＣ５は、生成指示を受け付けたと判断した場合（ステップＳ７においてＹＥＳ）、ステップＳ８において、描画領域５５１内のオブジェクトに基づいた画面データ（表示器用の画面データ）を生成する。ＰＣ５は、生成指示を受け付けていないと判断した場合（ステップＳ７においてＮＯ）、処理をステップＳ４に戻す。
【０１５１】
＜Ｅ．ハードウェア構成＞
図２０は、ＰＣ５のハードウェア構成を示す模式図である。図２０を参照して、ＰＣ５は、ＯＳを含む各種プログラムを実行するＣＰＵ５０２と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）５０４と、ＣＰＵ５０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ５０６と、ＣＰＵ５０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）５０８とを含む。
【０１５２】
ＰＣ５は、さらに、ユーザからの操作を受け付けるキーボード５１０およびマウス５１２と、情報をユーザに提示するためのモニタ５１４とを含む。さらに、ＰＣ５は、プログラマブル表示器４などと通信するための通信インターフェイス（ＩＦ）５１８を含む。ＰＣ５は、通信ＩＦ５１８によってプログラマブル表示器４と通信可能に接続される。
［実施の形態２］
本実施の形態では、オブジェクトを枠内領域５５２にドロップするたびに、オブジェクトのサイズを変更する構成について説明する。なお、本実施の形態では、実施の形態１との相違点のみを説明し、実施の形態１との共通点については説明を繰り返さない。
【０１５３】
図２１は、整列処理を説明するための状態遷移図である。なお、本例では、設定画面５７０（図４参照）において、アイコン５７１とアイコン５７６とが選択状態にあるものとする。つまり、横方向かつ中央位置での配置が選択されているものとする。
【０１５４】
図２１を参照して、状態（Ａ）に示すように、ＰＣ５は、オブジェクト６２１のドラッグと、枠内領域５５２へのオブジェクト６２１のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６２１がドロップされた領域が枠内領域５５２であるため、状態（Ｂ）に示すように、オブジェクト６２１のサイズを拡大するとともに、オブジェクト６２１の位置をドラッグされた位置から枠内領域５５２の中央位置へと移動させる。詳しくは、ＰＣ５は、枠内領域５５２の横幅とオブジェクト６２１との横幅とが一致するように、オブジェクト６２１を縦方向と横方向とにおいて同倍率で拡大する。
【０１５５】
次に、状態（Ｃ）に示すように、ＰＣ５は、オブジェクト６２２のドラッグと、枠内領域５５２へのオブジェクト６２２のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｄ）に示すように、オブジェクト６２１とオブジェクト６２２とを枠内領域５５２内の中央位置において左端側から順に横方向に整列させる。
【０１５６】
詳しくは、ＰＣ５は、オブジェクト６２１とオブジェクト６２２とのデフォルトサイズからの拡縮率が同じとなるように、オブジェクト６２１，６２２のサイズを変更する。さらに詳しくは、ＰＣ５は、枠内領域５５２の横幅と、２つのオブジェクト６２１，６２２の横幅の合計とが一致するように、オブジェクト６２１，６２２のサイズを拡大または縮小する。なお、オブジェクト６２１，６２２は、同種のオブジェクトであるため、状態（Ｄ）に示すように、サイズは同一となっている。
【０１５７】
次に、状態（Ｅ）に示すように、ＰＣ５は、オブジェクト６２３のドラッグと、枠内領域５５２へのオブジェクト６２３のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｆ）に示すように、オブジェクト６２１とオブジェクト６２２とオブジェクト６２３とを枠内領域５５２内の中央位置において左端側から順に横方向に整列させる。
【０１５８】
詳しくは、ＰＣ５は、オブジェクト６２１とオブジェクト６２２とオブジェクト６２３とのデフォルトサイズからの拡縮率が同じとなるように、オブジェクト６２１，６２２，６２３のサイズを変更する。さらに詳しくは、ＰＣ５は、枠内領域５５２の横幅と、３つのオブジェクト６２１，６２２，６２３の横幅の合計とが一致するように、オブジェクト６２１，６２２，６２３のサイズを拡大または縮小する。
【０１５９】
このように、ＰＣ５（詳しくは、描画部７３２０）は、枠内領域５５２のサイズと、枠内領域５５２にドロップされるオブジェクトの数とに応じて各オブジェクトのサイズを変更する構成である。詳しくは、ＰＣ５は、各オブジェクトのサイズが、枠内領域５５２のサイズを枠内領域５５２にドロップされたオブジェクトの数で均等分割したサイズになるように、各オブジェクトのサイズを自動変更する。つまり、ＰＣ５は、レイアウト枠へのフィッティング処理を実行する。この構成によれば、ユーザは、各オブジェクトのサイズを変更する操作を行うことなく、複数のオブジェクトが整列した画面データを得ることができる。
【０１６０】
なお、オブジェクトの数が増加し、デフォルトのサイズ以下に縮小しないと枠内領域５５２に一列で収まらない場合には、折り返し処理を行なうように、描画部７３２０を構成してもよい。
【０１６１】
また、上記においては、横方向にオブジェクトを並べる例を挙げているが、縦方向にオブジェクトを並べる場合にも上記の処理を適用できる。上記のような処理を行なうか否かを設定できるように、設定画面５７０を構成しておけばよい。
【０１６２】
＜変形例＞
図２２は、整列処理の他の例を説明するための状態遷移図である。なお、本例でも、設定画面５７０（図４参照）において、アイコン５７１とアイコン５７６とが選択状態にあるものとする。つまり、横方向かつ中央位置での配置が選択されているものとする。
【０１６３】
図２２を参照して、状態（Ａ）に示すように、ＰＣ５は、オブジェクト６２１のドラッグと、枠内領域５５２へのオブジェクト６２１のドロップとを受け付ける。この場合、ＰＣ５は、オブジェクト６２１がドロップされた領域が枠内領域５５２であるため、状態（Ｂ）に示すように、オブジェクト６２１のサイズを拡大するとともに、オブジェクト６２１の位置をドラッグされた位置から枠内領域５５２の中央位置へと移動させる。詳しくは、ＰＣ５は、枠内領域５５２の横幅および高さとオブジェクト６２１の横幅および高さとが一致するように、オブジェクト６２１を縦方向と横方向とにおいて拡大する。
【０１６４】
次に、状態（Ｃ）に示すように、ＰＣ５は、オブジェクト６２２のドラッグと、枠内領域５５２へのオブジェクト６２２のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｄ）に示すように、オブジェクト６２１とオブジェクト６２２とを枠内領域５５２内の中央位置において左端側から順に横方向に整列させる。
【０１６５】
詳しくは、ＰＣ５は、オブジェクト６２１とオブジェクト６２２とのデフォルトサイズからの拡縮率が同じとなるように、オブジェクト６２１，６２２のサイズを変更する。さらに詳しくは、ＰＣ５は、枠内領域５５２の横幅と、２つのオブジェクト６２１，６２２の横幅の合計とが一致するように、オブジェクト６２１，６２２の横方向のサイズを拡大または縮小する。また、ＰＣ５は、オブジェクト６２２の縦方向のサイズを枠内領域５５２の高さと一致させる。なお、オブジェクト６２１，６２２は、同種のオブジェクトであるため、状態（Ｄ）に示すように、サイズは同一となっている。
【０１６６】
次に、状態（Ｅ）に示すように、ＰＣ５は、オブジェクト６２３のドラッグと、枠内領域５５２へのオブジェクト６２３のドロップとを受け付ける。この場合、ＰＣ５は、状態（Ｆ）に示すように、オブジェクト６２１とオブジェクト６２２とオブジェクト６２３とを枠内領域５５２内の中央位置において左端側から順に横方向に整列させる。
【０１６７】
詳しくは、ＰＣ５は、オブジェクト６２１とオブジェクト６２２とオブジェクト６２３とのデフォルトサイズからの拡縮率が同じとなるように、オブジェクト６２１，６２２，６２３のサイズを変更する。さらに詳しくは、ＰＣ５は、枠内領域５５２の横幅と、３つのオブジェクト６２１，６２２，６２３の横幅の合計とが一致するように、オブジェクト６２１，６２２，６２３のサイズを拡大または縮小する。また、ＰＣ５は、オブジェクト６２３の縦方向のサイズを枠内領域５５２の高さと一致させる。なお、オブジェクト６２１，６２２，６２３は、同種のオブジェクトであるため、状態（Ｆ）に示すように、サイズは同一となっている。
【０１６８】
このような構成によれば、枠内領域５５２を１以上のオブジェクトで満たすことが可能となるとともに、複数のオブジェクトを整列させることが可能となる。
［実施の形態３］
本実施の形態では、オブジェクトの配置関するテンプレートを生成し、当該生成されたテンプレートを活用して新たな画面データを生成する構成について説明する。なお、本実施の形態では、実施の形態１との相違点のみを説明し、実施の形態１との共通点については説明を繰り返さない。なお、実施の形態１のＰＣ５と区別するために、説明の便宜上、本実施の形態におけるＰＣを「ＰＣ５Ａ」と称する。
【０１６９】
＜Ａ．処理の概要＞
ＰＣ５Ａは、ユーザによって選択された範囲内のオブジェクトの位置およびサイズ（選択範囲に対する相対的な位置、割合的なサイズ）、種類をテンプレートとして情報保存できる仕組みを有する。
【０１７０】
枠内領域５５２の設定として、上記テンプレート情報を読み込む仕組みを用意する。ＰＣ５Ａは、テンプレート情報が読み出されると、読み出されたテンプレートの枠内領域５５２内に、テンプレートで定義されている種類のオブジェクトを、テンプレートで定義されている位置、サイズで、自動配置および整列させる。
【０１７１】
ＰＣ５Ａは、上記テンプレート情報を読み込んだ枠内領域５５２内に、オブジェクトをドロップさせると、当該オブジェクトの種類がテンプレートで定義されていれば、指定の位置に指定のサイズで当該オブジェクトを配置する。
【０１７２】
なお、ＰＣ５Ａは、枠内領域５５２のサイズがユーザ操作によって変更されると、枠内領域５５２内に配置済みの各オブジェクトの位置関係を維持したまま、一定の割合で各オブジェクトのサイズを自動変更する。
【０１７３】
＜Ｂ．ユーザインターフェイス＞
テンプレートの作成および利用の局面におけるユーザインターフェイスの例について、以下説明する。
【０１７４】
図２３は、ＰＣ５Ａの表示画面５５０を表した図である。図２３を参照して、ユーザは、描画領域５５１において範囲８０１を指定する。範囲８０１が指定された状態で、マウス等のクリック操作によってコンテキストメニュー８０２内のレイアウトテンプレート保存の項目８０３が選択されると、範囲８０１に含まれるオブジェクトの配置およびサイズがテンプレートとして保存される。
【０１７５】
なお、典型的には、テンプレートは他のテンプレートと識別可能なように名称が付され状態で保存される。テンプレートの保存先はファイルの保存場所でもよい。ツールにライブラリ一覧のようなリストを用意しておき、そこにテンプレートが保存されるような仕組みであってもよい。
【０１７６】
図２４は、図２３の後にＰＣ５Ａで表示される表示画面５５０を表した図である。図２４を参照して、ユーザが枠内領域５５２を設定する。その後、ユーザは、マウス等のクリック操作によってコンテキストメニュー８０４内において、レイアウトテンプレート適用の項目８０５を選択する。さらに、典型的には、ユーザは、項目８０５を選択した後、テンプレートを選択する。なお、ツールのライブラリ一覧を表示し、その中から適用するテンプレートを選択する構成であってもよい。
【０１７７】
図２５は、図２４の後にＰＣ５Ａで表示される表示画面５５０を表した図である。図２５を参照して、ＰＣ５Ａは、枠内領域５５２に、選択されたテンプレートに基づいた要素領域５５２１，５５２２，５５２３，５５２４，５５２５，５５２６を設定し、かつ要素領域（具体的には、要素領域のレイアウト枠）を表示する。具体的には、適用したテンプレートに含まれるオブジェクトの位置と相対サイズとに基づいて枠内領域５５２をさらに複数の領域に区分けする。
【０１７８】
さらに、ＰＣ５Ａは、各要素領域５５２１〜５５２６に配置可能なオブジェクトの種類を表示する。たとえば、図２５の例では、オブジェクトの種類として、「Ｌａｂｅｌ」，「ＤａｔａＤｉｓｐｌａｙ」，「Ｂｕｔｔｏｎ」が表示されている。
【０１７９】
図２６は、図２５の後にＰＣ５Ａで表示される表示画面５５０を表した図である。図２６を参照して、ユーザは、テンプレートが適用された状態（図２５の状態）で、所望するオブジェクト（図２６の場合には「ボタン」）をドラッグし、かつ枠内領域５５２の任意の位置に当該オブジェクト６３１をドロップする操作を行う。
【０１８０】
図２７は、図２６の後にＰＣ５Ａで表示される表示画面５５０を表した図である。図２７を参照して、オブジェクト６３１が枠内領域５５２にドロップされると、オブジェクト６３１の種類に合致した要素領域にオブジェクトが配置される。
【０１８１】
図２７の例の場合、オブジェクト６３１がボタンであるため、ボタンの要素領域にオブジェクトが配置される。詳しくは、本例ではオブジェクトを左から順に整列させる設定となっており、かつ、要素領域５５２３，５５２６の２つにオブジェクトが配置されていないため、ＰＣ５Ａは、オブジェクト６３１を左側の要素領域５５２３に配置する。さらに詳しくは、ＰＣ５Ａは、オブジェクト６３１が要素領域５５２３を満たすように（フィットするように）、オブジェクト６３１を拡大（あるいは縮小）する。
【０１８２】
＜Ｃ．機能的構成＞
図２８は、ＰＣ５Ａの機能的構成を説明するためのブロック図である。
【０１８３】
図２８を参照して、ＰＣ５Ａは、入力装置７０１と、表示装置７０２と、制御部７０３Ａと、通信ＩＦ部７０４と、テンプレート記憶部７０５とを備える。
【０１８４】
制御部７０３Ａは、ＰＣ５Ａの全体的な動作を制御する。制御部７０３Ａは、テンプレート生成部７３６とテンプレート読出部７３７とを備える点において、実施の形態１の制御部７０３（図１８参照）と異なる。したがって、以下では、テンプレート生成部７３６およびテンプレート読出部７３７における処理に着目した説明をし、実施の形態１で説明した内容については繰り返さない。
【０１８５】
操作受付部７３１は、枠内領域５５２が設定されていない状態で描画領域５５１において範囲を指定する入力を受け付ける（図２３参照）。
【０１８６】
テンプレート生成部７３６は、指定された範囲に含まれる１以上のオブジェクトの配置およびサイズをテンプレートとして生成する。テンプレート生成部７３６は、生成されたテンプレートをテンプレート記憶部７０５に保存する。
【０１８７】
枠内領域５５２を設定するためのユーザ操作を操作受付部７３１が受け付けた場合、描画部７３２０は、描画領域５５１内に枠内領域５５２を描画する。次いで、コンテキストメニューを表示し、かつレイアウトテンプレート適用の項目を選択するユーザ操作を操作受付部７３１が受け付けた場合（図２４参照）、ＰＣ５Ａは、枠内領域５５２に選択されたテンプレートを適用する。具体的には、テンプレート読出部７３７がテンプレート記憶部７０５から選択されたテンプレートを読み出す。テンプレート読出部７３７は、読み出したテンプレートを描画部７３２０に送る。
【０１８８】
描画部７３２０は、テンプレートに基づき、当該テンプレートの要素領域を、各要素領域の種別名とともに、描画領域５５１の枠内領域５５２に表示する（図２５参照）
要素領域が表示された状態で、操作受付部７３１がオブジェクトのドラッグアンドドロップ操作を受け付けると（図２６参照）、描画部７３２０は、当該オブジェクトの種別と同じ種別の要素領域に当該オブジェクトをフィッティングさせる（図２７参照）。
【０１８９】
＜Ｄ．利点＞
プログラマブル表示器の画面デザインにおいて、いくつかのオブジェクトを組み合わせて、ある情報をわかりやすく表示したり設定したりできるようにユーザがアプリを作成する。このように組み合わせたオブジェクトは、使い勝手がよく汎用的であれば、他のプログラマブル表示器で利用する画面の一部にも流用される。しかしながら、同じオブジェクトの組み合わせであっても、見た目（デザイン）は、使用するプログラマブル表示器、あるいはユーザの好みに応じて変更することが多い。
【０１９０】
ＰＣ５Ａでは、このような用途でオブジェクトの種類、サイズ位置関係を、保存および再現できる仕組みを提供できるる。それゆえ、ＰＣ５Ａによれば、データ流用性を向上させ、ユーザの画面デザインにかかる工数を削減する効果がある。
［実施の形態４］
本実施の形態では、オブジェクトにアドレスまたは変数を設定できる構成について説明する。なお、本実施の形態では、実施の形態１との相違点のみを説明し、実施の形態１との共通点については説明を繰り返さない。なお、実施の形態１のＰＣ５等と区別するために、説明の便宜上、本実施の形態におけるＰＣを「ＰＣ５Ｂ」と称する。
【０１９１】
＜Ａ．処理の概要＞
枠内領域５５２の設定として、アドレスおよび／または変数を設定できる仕組みを用意する。枠内領域５５２内にオブジェクトがドロップされると、当該オブジェクトがアドレスおよび／または変数の値を表示したり、入力した値をアドレスおよび／または変数に書き込んだりする機能を持っているものであれば、ＰＣ５Ｂは、枠内領域５５２に設定したアドレスおよび／または変数を自動的に当該オブジェクトの設定に割り付ける。このとき、ＰＣ５Ｂは、オブジェクトが枠内領域５５２にドロップされるごとに、アドレスの場合には自動的にアドレスのインクリメント、変数の場合には変数名の末尾の数字を自動インクリメント、変数が配列変数の場合には要素番号を自動インクリメントすることにより、インクリメント後の値をオブジェクトの設定に割り付ける。
【０１９２】
＜Ｂ．ユーザインターフェイス＞
アドレスを設定する局面におけるユーザインターフェイスの例について、以下説明する。
【０１９３】
図２９は、ＰＣ５Ｂの表示画面５５０を表した図である。図２９を参照して、ＰＣ５Ｂは、枠内領域５５２の設定項目として、「割当アドレス」の項目５６５を表示する。
【０１９４】
図３０は、図２９の後にＰＣ５Ｂで表示される表示画面５５０の描画領域５５１を表した図である。図３０を参照して、オブジェクト６４１が枠内領域５５２にドロップされると、図２９で示さている割当アドレス“Ｗ０．０”がオブジェクト６４１に設定される。この設定に伴い、「割当アドレス」の項目５６５に示された値がインクリメントされ、“Ｗ０．１”となる。この状態で、ユーザが次のオブジェクト６４２を枠内領域５５２にドロップすると、割当アドレス“Ｗ０．１”がオブジェクト６４１に設定される。
【０１９５】
＜Ｃ．機能的構成＞
図３１は、ＰＣ５Ｂの機能的構成を説明するためのブロック図である。
【０１９６】
図３１を参照して、ＰＣ５Ｂは、入力装置７０１と、表示装置７０２と、制御部７０３Ｂと、通信ＩＦ部７０４とを備える。
【０１９７】
制御部７０３Ａは、ＰＣ５Ｂの全体的な動作を制御する。制御部７０３Ｂは、設定部７３８を備える点において、実施の形態１の制御部７０３（図１８参照）と異なる。したがって、以下では、設定部７３８における処理に着目した説明をし、実施の形態１で説明した内容については繰り返さない。
【０１９８】
設定部７３８は、アドレス設定部７３８１と、変数設定部７３８２とを備える。
アドレス設定部７３８１は、枠内領域５５２にドロップされたオブジェクトに対して、アドレスを割り当てる。また、アドレス設定部７３８１は、当該割り当て後に、アドレスのインクリメントを行う。アドレス設定部７３８１は、枠内領域５５２に次にドロップされるオブジェクトに対して、当該インクリメント後のアドレスを割り当てる。
【０１９９】
変数設定部７３８２は、枠内領域５５２にドロップされたオブジェクトに対して、変数を設定する。また、変数設定部７３８２は、当該割り当て後に、上述したように、数名の末尾の数字を自動インクリメント、または、要素番号を自動インクリメントする。変数設定部７３８２は、枠内領域５５２に次にドロップされるオブジェクトに対して、当該インクリメント後の変数を割り当てる。
【０２００】
＜Ｄ．利点＞
プログラマブル表示器の画面デザインにおいて、プログラマブル・ロジック・コントローラ（ＰＬＣ）などの機器が持つ情報を表示するためのオブジェクトを配置する。通常は、オブジェクトを配置した後に、各オブジェクトの設定にＰＬＣのアドレスおよび／または変数を割り付ける。オブジェクトの数が増えると、この設定操作は時間を要する。
【０２０１】
ＰＣ５Ｂによれば、オブジェクトの配置と同時に自動的にアドレスや変数の割り付けができるため、ユーザの画面デザインにかかる工数を大幅に削減可能となる。
【０２０２】
＜＜付記＞＞
〔構成１〕
情報処理装置（５，５Ａ，５Ｂ）であって、
オブジェクトをドラッグし、かつ前記情報処理装置（５，５Ａ，５Ｂ）の表示画面（５５０）内に設けられた描画領域（５５１）に前記オブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付ける操作受付手段（７３１）と、
前記描画領域（５５１）にドロップされた前記オブジェクトを描画する描画手段（７３２０）と、
前記オブジェクトの描画に基づき、プログラマブル表示器において表示させる画面の画面データを生成する画面データ生成手段（７３３）とを備え、
前記描画手段（７３２０）は、前記描画領域内の第１の領域（５５２）に前記オブジェクトとしての第１のオブジェクトが配置されている状態で、前記第１の領域（５５２）に前記オブジェクトとしての第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記第１の領域（５５２）内において整列させる、情報処理装置（５，５Ａ，５Ｂ）。
【０２０３】
〔構成２〕
前記描画手段（７３２０）は、前記描画領域（５５１）内の第２の領域（５５３）に前記オブジェクトとしての第３のオブジェクトがドロップされると、当該ドロップされた位置に前記第３のオブジェクトを配置する、構成１に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０４】
〔構成３〕
前記オブジェクトの整列態様を設定するための設定画面（５７０）を前記表示画面（５５０）に表示させる表示制御手段（７３２）をさらに備え、
前記描画手段（７３２０）は、
前記設定画面（５７０）にて第１の方向設定がなされている場合には、前記第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを、前記第１の領域（５５２）の横方向に整列させ、
前記設定画面（５７０）にて第２の方向設定がなされている場合には、前記第２のオブジェクトがドロップされると、前記第１のオブジェクトと前記第２のオブジェクトとを、前記第１の領域（５５２）の縦方向に整列させる、構成１または２に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０５】
〔構成４〕
前記表示制御手段は、前記表示画面内にアイコン（５５４）をさらに表示し、
前記描画手段（７３２０）は、前記第１のオブジェクトと前記第２のオブジェクトとが前記横方向および前記縦方向のうちの一方向に整列している状態で、前記アイコン（５５４）がクリックされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記横方向および前記縦方向のうちの他方向に整列させる、構成１から３のいずれか１項に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０６】
〔構成５〕
前記描画手段（７３２０）は、前記第１の方向設定がなされている場合、
前記設定画面にて第１の位置設定がさらになされているときには、前記第１の領域（５５２）内の上端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させ、
前記設定画面にて第２の位置設定がさらになされているときには、前記第１の領域（５５２）内の中央位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させ、
前記設定画面にて第３の位置設定がさらになされているときには、前記第１の領域（５５２）内の下端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを横方向に整列させる、構成３または４のいずれか１項に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０７】
〔構成６〕
前記描画手段（７３２０）は、前記第２の方向設定がなされている場合、
前記設定画面（５７０）にて第４の位置設定がさらになされているときには、前記第１の領域（５５２）内の左端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させ、
前記設定画面（５７０）にて第５の位置設定がさらになされているときには、前記第１の領域（５５２）内の中央位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させ、
前記設定画面（５７０）にて第６の位置設定がさらになされているときには、前記第１の領域（５５２）内の右端位置にて、前記第１のオブジェクトと前記第２のオブジェクトとを縦方向に整列させる、構成５に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０８】
〔構成７〕
前記オブジェクトのサイズは、前記オブジェクトの種類に応じて固定されており、
前記描画手段（７３２０）は、少なくとも前記第１のオブジェクトと前記第２のオブジェクトとを含む複数の前記オブジェクトを前記第１の領域（５５２）において整列させる場合、一行または一列で表示できないときには、折り返し処理によって前記複数のオブジェクトを二行以上または二列以上で整列する、構成１から６のいずれか１項に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２０９】
〔構成８〕
前記描画手段（７３２０）は、少なくとも前記第１のオブジェクトと前記第２のオブジェクトとを含む複数の前記オブジェクトを前記第１の領域（５５２）において整列させる場合、一行または一列で表示するために、前記複数のオブジェクトの各々のサイズを小さくする、構成１から６のいずれか１項に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２１０】
〔構成９〕
操作に基づき、前記第１の領域（５５２）のサイズを変更する変更手段（７３４）をさらに備え、
前記描画手段（７３２０）は、前記複数のオブジェクトが一行または一列で配置されている状態において、前記第１の領域（５５２）のサイズが縮小されることにより、前記複数のオブジェクトが一行または一列で配置できないと判断した場合、前記複数のオブジェクトの各々のサイズを小さくすることにより前記複数のオブジェクトを一行または一列で配置する、構成８に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２１１】
〔構成１０〕
前記描画手段（７３２０）は、前記複数のオブジェクトが一行または一列で配置されている状態において、前記第１の領域（５５２）のサイズが行方向または列方向に拡大された場合、当該拡大後の前記第１の領域のサイズに基づき、前記複数のオブジェクトの各々のサイズを大きくする、構成９に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２１２】
〔構成１１〕
前記描画手段（７３２０）は、前記第１の領域（５５２）のサイズと、前記第１の領域（５５２）にドロップされる前記オブジェクトの数とに応じて各前記オブジェクトのサイズを変更する、構成１から６のいずれか１項に記載の情報処理装置（５，５Ａ，５Ｂ）。
【０２１３】
〔構成１２〕
前記第１の領域（５５２）が設定されていない状態で前記描画領域（５５１）において範囲を指定する入力を受け付けると、指定された範囲に含まれる１以上のオブジェクトの配置およびサイズをテンプレートとして生成するテンプレート生成手段（７３６）をさらに備える、構成１から１１のいずれか１項に記載の情報処理装置（５Ａ）。
【０２１４】
〔構成１３〕
前記第１の領域（５５２）にドロップされた順番にしたがって、前記オブジェクトにアドレスまたは変数を設定する設定手段（７３８）をさらに備える、構成１から１２のいずれか１項に記載の情報処理装置（５Ｂ）。
【０２１５】
〔構成１４〕
情報処理方法であって、
オブジェクトをドラッグし、かつ表示画面（５５０）内に設けられた描画領域（５５１）に前記オブジェクトをドロップするドラッグ・アンド・ドロップ操作を受け付けるステップと、
前記描画領域（５５１）にドラッグされた前記オブジェクトを描画するステップと、
前記オブジェクトの描画に基づき、プログラマブル表示器（４）において表示させる画面の画面データを生成するステップとを備え、
前記描画するステップでは、前記描画領域（５５１）内の予め設定された領域（５５２）に前記オブジェクトとしての第１のオブジェクトが配置されている状態で、前記予め設定された領域（５５２）に前記オブジェクトとしての第２のオブジェクトがドラッグされると、前記第１のオブジェクトと前記第２のオブジェクトとを前記予め設定された領域（５５２）内において整列させる、情報処理方法。
【０２１６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１７】
１，２，３  ＰＬＣ、４  プログラマブル表示器、５  ＰＣ、６  検出センサ、７  リレー、１０  ＣＰＵユニット、１４  ＩＯユニット、１１  システムバス、１２  電源ユニット、５１２  マウス、５１４  モニタ、５４４，５５４，５７１，５７２，５７５，５７６，５７７，５８０，５８１，５８２  アイコン、５５０  表示画面、５５１  描画領域、５５１Ａ，５５２Ａ  領域、５５２  枠内領域、５５３  枠外領域、５５６，５５７，５５８，５５９，５６０，５６１，５６２，５６３，５６４，５５６１，５５６２，５５６３，５５６４，５５６５  ツール、５６５，８０３，８０５  項目、５７０  設定画面、５７３，５７４  ラジオボタン、５７８，５７９  ボタン、５９０，５９１  矢印、６０１，６１１，６１２，６１３，６１４，６２１，６２２，６２３，６３１，６４１，６４２  オブジェクト、７０１  入力装置、７０２  表示装置、７０３，７０３Ａ，７０３Ｂ  制御部、７０４  通信ＩＦ部、７０５  テンプレート記憶部、７３１  操作受付部、７３２  表示制御部、７３３  画面データ生成部、７３４  領域サイズ変更部、７３５  オブジェクトサイズ変更部、７３６  テンプレート生成部、７３７  テンプレート読出部、７３８  設定部、８０１  範囲、１０００  システム、５５２１，５５２２，５５２３，５５２４，５５２５，５５２６  要素領域、７３２０  描画部、７３２１  整列処理部、７３８１  アドレス設定部、７３８２  変数設定部。
【図１】
2020008946.tif 000003
【図２】
2020008946.tif 000004
【図３】
2020008946.tif 000005
【図４】
2020008946.tif 000006
【図５】
2020008946.tif 000007
【図６】
2020008946.tif 000008
【図７】
2020008946.tif 000009
【図８】
2020008946.tif 000010
【図９】
2020008946.tif 000011
【図１０】
2020008946.tif 000012
【図１１】
2020008946.tif 000013
【図１２】
2020008946.tif 000014
【図１３】
2020008946.tif 000015
【図１４】
2020008946.tif 000016
【図１５】
2020008946.tif 000017
【図１６】
2020008946.tif 000018
【図１７】
2020008946.tif 000019
【図１８】
2020008946.tif 000020
【図１９】
2020008946.tif 000021
【図２０】
2020008946.tif 000022
【図２１】
2020008946.tif 000023
【図２２】
2020008946.tif 000024
【図２３】
2020008946.tif 000025
【図２４】
2020008946.tif 000026
【図２５】
2020008946.tif 000027
【図２６】
2020008946.tif 000028
【図２７】
2020008946.tif 000029
【図２８】
2020008946.tif 000030
【図２９】
2020008946.tif 000031
【図３０】
2020008946.tif 000032
【図３１】
2020008946.tif 000033