以下に、本発明の実施の形態に係るラダープログラム表示装置およびラダープログラム表示方法を図面に基づいて詳細に説明する。なお、これらの実施の形態により、この発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係るラダープログラム表示装置の構成を示すブロック図である。ラダープログラム表示装置1Aは、ラダープログラムを表示する装置である。ラダープログラムは、例えばPLC(Programmable Logic Controller)などに用いられるプログラムである。ラダープログラム表示装置1Aは、例えば、タブレット端末、液晶ディスプレイ、CRT(Cathode Ray Tube)、PC(Personal Computer)、スマートホンなどであり、ラダープログラムを表示する表示画面を備えている。
なお、以下では、ラダープログラム表示装置1Aがタブレット端末である場合について説明する。また、以下で説明するラダープログラム表示装置1Aの縦置きは、表示画面が長方形である場合に、表示画面の長手方向が鉛直方向または使用者の視線方向となる置き方である。また、以下で説明するラダープログラム表示装置1Aの横置きは、表示画面が長方形である場合に、表示画面の短手方向が鉛直方向または使用者の視線方向となる置き方である。
本実施の形態のラダープログラム表示装置1Aは、縦置き/横置きの置き方に応じて、多くの情報量(ラダープログラム)を表示可能なよう、ラダープログラムを縦書き表示又は横書き表示にする。ラダープログラム表示装置1Aは、縦置きから横置きに変えられた際に、例えば、表示できないラダープログラムの部分が発生する場合または表示画面の余白が縦置き時よりも狭くなる場合に、ラダープログラムの表示を横書き表示から縦書き表示に変える。
また、ラダープログラム表示装置1Aは、縦置き/横置きの置き方に応じて、視認性が良くなるように、ラダープログラムを縦書き表示又は横書き表示にしてもよい。この場合、ラダープログラム表示装置1Aは、縦置きから横置きに変えられた際に、1行のラダープログラムが折り返されて(改行されて)複数行で表示する必要が生じた場合に、ラダープログラムの表示を縦書き表示から横書き表示に変える。
ラダープログラムを縦書き表示する場合、例えば、以下の仕様に従ってラダープログラムが表示される。
・配線間隔や、接点・コイルの表示仕様などは基本的に横書き表示時と同一とする。
・接点は上方に表示し、コイルは下方に表示する。
・各回路(部品)は左側から順番に配置していく。
なお、各回路は右側から順番に配置してもよい。
ラダープログラム表示装置1Aは、配置方向検出部11と、条件設定部12Aと、入力部13Aと、プログラム記憶部14Aと、表示方向決定部15Aと、表示方向変更部17Aと、表示部18と、を有している。
配置方向検出部11は、ラダープログラム表示装置1Aの配置方向(縦置き/横置き)を検出する。配置方向検出部11は、検出結果(縦置き又は横置き)(以下、配置情報という)を表示方向決定部15Aに送る。
入力部13Aは、ラダープログラムの表示方向を変更する条件(表示変更条件)、ラダープログラム自体、およびラダープログラムを表示させる指示(表示させるラダープログラムを指定する指示)などを入力する。入力部13Aへは、ラダープログラム表示装置1Aの使用者によって、所望の表示変更条件、所望のラダープログラム自体、所望の表示指示などが入力される。
入力部13Aは、表示変更条件を条件設定部12Aに送り、ラダープログラムを表示させる指示を表示方向変更部17Aに送る。また、入力部13Aは、ラダープログラムをプログラム記憶部14Aに送る。プログラム記憶部14Aは、入力部13Aから送られてくるラダープログラムを記憶するメモリなどである。
条件設定部12Aは、入力部13Aから送られてくる表示変更条件を設定する。条件設定部12Aが設定する表示変更条件は、以下の(1)〜(3)などである。
(1)無条件でラダープログラムの表示を縦書き表示にする。
(2)無条件でラダープログラムの表示を横書き表示にする。
(3)ラダープログラムの表示のされ方に基づいて、ラダープログラムの表示を縦書き表示または横書き表示にする。
表示方向決定部15Aは、配置方向検出部11から送られてくる配置情報が縦置き又は横置きに変化した場合、ラダープログラム表示装置1Aを起動した際、または条件設定部12Aに設定されている表示変更条件が変更された場合に、縦書き表示と横書き表示の何れを選択するかを判定する。表示方向決定部15Aは、縦書き表示と横書き表示の何れが適切かを判定する際に、条件設定部12Aに設定されている表示変更条件を読み出す。
表示方向決定部15Aは、条件設定部12Aに設定されている表示変更条件に基づいて、ラダープログラムを縦書き表示するか横書き表示するかを決定する。表示方向決定部15Aは、上述した(1)または(2)の表示変更条件が設定されている場合には、設定されている表示変更条件に応じた表示方向を表示方向変更部17Aに指示する。
表示方向決定部15Aは、上述した(3)の表示変更条件が設定されている場合には、ラダープログラムの表示のされ方に基づいて、ラダープログラムを縦書き表示するか横書き表示するかを決定する。
表示方向決定部15Aは、例えば、表示方向変更部17Aが表示部18に表示させるラダープログラムを用いて、ラダープログラムの表示方向を決定する。表示方向決定部15Aは、ラダープログラム表示装置1Aの置き方が変更された場合に、表示できなくなるラダープログラムの部分が発生するか否かを判定する。このとき、表示方向決定部15Aは、表示部18に設定されている表示領域の形状および大きさに関する情報を用いて、縦書き表示する場合のラダープログラムの表示のされ方と、横書き表示する場合のラダープログラムの表示のされ方と、を比較する。表示方向決定部15Aは、比較結果に基づいてラダープログラムの表示方向を決定する。
表示方向決定部15Aは、例えば、縦書き表示した場合に表示画面に表示できるラダープログラムの列数(縦書き時の列数)(縦方向の本数)と、横書き表示した場合に表示画面に表示できるラダープログラムの行数(横書き時の行数)(横方向の本数)と、を比較する。そして、表示方向決定部15Aは、行数と列数とで数の多い方を採用する。換言すると、表示方向決定部15Aは、横書き時の行数が、縦書き時の列数よりも少なくなる場合に、縦書きに決定する。また、表示方向決定部15Aは、縦書き時の列数が、横書き時の行数よりも少なくなる場合に、横書きに決定する。また、表示方向決定部15Aは、横書き時の行数と、縦書き時の行数と、表示画面に表示できるラダープログラムの行数が同じになる場合は、横書きに決定する。
また、表示方向決定部15Aは、例えば、縦書き表示した場合の表示画面の余白領域(縦書き時の余白領域)と、横書き表示した場合の表示画面の余白領域(横書き時の余白領域)と、を比較してもよい。この場合、表示方向決定部15Aは、余白領域の多い方を採用する。換言すると、表示方向決定部15Aは、横書き時の余白領域が、縦書き時の余白領域よりも広くなる場合は、横書き表示に決定する。また、表示方向決定部15Aは、縦書き時の余白領域が、横書き時の余白領域よりも広くなる場合は、縦書き表示に決定する。また、表示方向決定部15Aは、横書き時の余白領域と縦書き時の余白領域とが、同じ広さになる場合は、横書き表示に決定する。
また、表示方向決定部15Aは、例えば、横書き表示した場合に表示画面に表示されるラダープログラムの折り返し表示数(横書き時の折り返し表示数)と、縦書きした場合に表示部18に表示されるラダープログラムの折り返し表示数(縦書き時の折り返し表示数)と、を比較してもよい。この場合、表示方向決定部15Aは、折り返し表示数の少ない方を採用する。換言すると、表示方向決定部15Aは、縦書き時の折り返し表示数が、横書き時の折り返し表示数よりも多くなる場合は、横書き表示に決定する。また、表示方向決定部15Aは、横書き時の折り返し表示数が、縦書き時の折り返し表示数よりも多くなる場合は、縦書き表示に決定する。また、表示方向決定部15Aは、横書き時の折り返し表示数と縦書き時の折り返し表示数とが、同じ数になる場合は、横書き表示に決定する。
表示方向決定部15Aは、例えば、縦置き(横書き表示)から横置き(縦書き表示)に変更された場合、または横置き(縦書き表示)から縦置き(横書き表示)に変更されたた場合に、表示方向を変更するか否かを判定する。
表示方向決定部15Aは、例えば、縦置き(横書き表示)から横置き(縦書き表示)に変えられた場合に、ラダープログラムの横書き表示を維持すると、表示画面に表示できなくなるラダープログラムの部分が新たに発生するか否かを判定する。表示方向決定部15Aは、横書き時の行数が、縦書き時の行数よりも少なくなる場合に、表示できなくなるラダープログラムの部分が新たに発生すると判定し、縦書き表示に決定する。
また、表示方向決定部15Aは、例えば、縦置き(横書き表示)から横置き(縦書き表示)に変えられた場合に、ラダープログラムの横書き表示を維持すると、縦書き時の表示画面の余白領域が横書き時よりも広くなるか否かを判定する。表示方向決定部15Aは、縦書き時の余白領域が、横書き時よりも広くなる場合に、縦書き表示に決定する。
また、表示方向決定部15Aは、例えば、縦置き(縦書き表示)から横置き(横書き表示)に変えられた場合に、ラダープログラムの縦書き表示を維持すると、ラダープログラムの折り返し表示が新たに発生するか否かを判定する。表示方向決定部15Aは、縦書き時の折り返し表示数が、横書き時の折り返し表示数よりも大きくなる場合に、ラダープログラムの折り返し表示が新たに発生すると判定し、横書き表示に決定する。
表示方向決定部15Aは、ラダープログラムを縦書き表示にすることを決定した場合、表示方向変更部17Aに縦書き表示の指示を送る。表示方向決定部15Aは、ラダープログラムを横書き表示にすることを決定した場合、表示方向変更部17Aに横書き表示の指示を送る。
なお、表示方向決定部15Aは、例えば、下記に示す(A)および(B)の両方が成立した場合に、ラダープログラムを縦書き表示にする。また、表示方向決定部15Aは、下記に示す(A)および(B)の何れか一方が成立した場合に、ラダープログラムを縦書き表示にしてもよい。
(A)表示画面に表示できなくなるラダープログラムの部分が新たに発生する。
(B)縦書き時の表示画面の余白が横書き時よりも広くなる。
また、表示方向決定部15Aは、例えば、ラダープログラム表示装置1Aを起動した際に、縦置き状態であれば、ラダープログラムを横書きに決定し、横置き状態であれば、ラダープログラムを縦書きに決定してもよい。
この場合において、縦置き状態であって且つ上述した(1)の表示変更条件が設定されている場合には、表示方向決定部15Aは、ラダープログラムを横書きから縦書きに変更してもよい。また、横置き状態であって且つ上述した(2)の表示変更条件が設定されている場合には、表示方向決定部15Aは、ラダープログラムを縦書きから横書きに変更してもよい。また、上述した(3)の表示変更条件が設定されている場合には、表示方向決定部15Aは、ラダープログラムの表示のされ方に基づいて、ラダープログラムの表示を縦書き表示または横書き表示に変更してもよい。
なお、表示方向決定部15Aは、表示画面に実際に表示されているラダープログラムに基づいて、ラダープログラムの表示方向を決定してもよい。この場合、表示方向決定部15Aは、表示部18からラダープログラムの表示のされ方に関する情報を取得する。
表示方向変更部17Aは、表示方向決定部15Aから送られてくる指示に基づいて、表示部18にラダープログラムを表示させる。表示方向変更部17Aは、ラダープログラムを縦書き表示する指示が送られてきた場合には、表示部18にラダープログラムを縦書き表示させる。また、表示方向変更部17Aは、ラダープログラムを横書き表示する指示が送られてきた場合には、表示部18にラダープログラムを横書き表示させる。表示部18は、ラダープログラムを縦書き表示または横書き表示する表示画面である。
なお、ラダープログラム表示装置1Aの各構成要素を別々の装置に配置してもよい。例えば、表示部18および配置方向検出部11をコンピュータに接続されたディスプレイ装置に配置し、プログラム記憶部14Aをコンピュータ本体に配置してもよい。この場合、配置方向検出部11は、表示部18の配置方向を検出する。
ここで、ラダープログラムの縦書き表示および横書き表示について説明する。図2は、ラダープログラムの縦書き表示および横書き表示を説明するための図である。ラダープログラム表示装置1Aは、横置きされることによって、横置き状態101Yとなる。この横置き状態101Yでは、表示画面30が横長になる。そして、表示画面30には、縦書き表示でラダープログラムが表示される。
ラダープログラム表示装置1Aは、縦置きされることによって、縦置き状態101Xとなる。この縦置き状態101Xでは、表示画面30が縦長になる。そして、表示画面30には、横書き表示でラダープログラムが表示される。
このように、ラダープログラムは、横書き表示または縦書き表示が選択可能なようになっている。本実施の形態のラダープログラム表示装置1Aは、横置き状態101Yまたは縦置き状態101Xにされて使用される。横置き状態101Yと縦置き状態101Xとは、使用者によって切替えられる。
なお、ラダープログラム表示装置1Aが有しているアプリケーションのメニュー(置き方を指定させる項目)を使用者に選択させることによって、ラダープログラム表示装置1Aは、横置き状態101Yと縦置き状態101Xとを切替えてもよい。
なお、ラダープログラム表示装置1Aは、横置き状態101Yの場合であっても、ラダープログラムを横書きにしてもよい。また、ラダープログラム表示装置1Aは、縦置き状態101Xの場合であっても、ラダープログラムを縦書きにしてもよい。
つぎに、ラダープログラムの表示変更処理手順について説明する。図3は、実施の形態1のラダープログラム表示装置による表示方向の変更処理手順を示すフローチャートである。ラダープログラム表示装置1Aの置き方が、使用者によって変更されると(ステップS10)、配置方向検出部11は、ラダープログラム表示装置1Aの配置方向を示す配置情報を表示方向決定部15Aに送る。
これにより、表示方向決定部15Aは、無条件でラダープログラムの表示方向を変更する設定であるか否かを判定する(ステップS20)。具体的には、表示方向決定部15Aは、条件設定部12Aに設定されている表示変更条件を読み出す。そして、表示方向決定部15Aは、表示変更条件が、(1)無条件でラダープログラムの表示を縦書き表示にする、または(2)無条件でラダープログラムの表示を横書き表示にする、の何れかであるかを判定する。
無条件でラダープログラムの表示方向を変更する設定である場合(ステップS20、Yes)、表示方向決定部15Aは、ラダープログラムの表示方向を、表示変更条件に応じた表示方向に変更させる(ステップS60)。
例えば、表示変更条件が、上記(1)である場合、表示方向決定部15Aは、ラダープログラムの表示を縦書き表示にするための指示を、表示方向変更部17Aに送る。この場合、表示方向決定部15Aは、表示部18にラダープログラムを縦書き表示させる。
また、表示変更条件が、上記(2)である場合、表示方向決定部15Aは、ラダープログラムの表示を横書き表示にするための指示を、表示方向変更部17Aに送る。この場合、表示方向決定部15Aは、表示部18にラダープログラムを横書き表示させる。
また、表示変更条件が、上記(3)である場合、表示方向決定部15Aは、無条件でラダープログラムの表示方向を変更する設定でないと判断する。無条件でラダープログラムの表示方向を変更する設定でない場合(ステップS20、No)、表示方向決定部15Aは、ラダープログラムの表示方向を維持すると、ラダープログラム表示装置1Aの置き方が変更されたことによって、表示画面に表示できなくなる回路(ラダープログラム)が新たに発生するか否かを判定する(ステップS30)。
表示画面に表示できなくなる回路が新たに発生する場合(ステップS30、Yes)、表示方向決定部15Aは、ラダープログラム表示装置1Aの置き方に応じて、ラダープログラムの表示方向を変更させる(ステップS60)。例えば、ラダープログラム表示装置1Aが縦置き(横書き)から横置き(横書き)に変更されたことによって、表示画面に表示できなくなる回路が新たに発生する場合、表示方向決定部15Aは、ラダープログラムを縦書き表示に決定する。
表示画面に表示できなくなる回路が発生しない場合(ステップS30、No)、表示方向決定部15Aは、縦書き時の余白領域の広さと、横書き時の余白領域の広さと、を予測し(ステップS40)、比較する。
そして、表示方向決定部15Aは、ラダープログラムの表示方向を変更すると、ラダープログラム表示装置1Aの置き方が変更されたことによって、表示画面に表示される余白領域が広くなるか否かを判定する。換言すると、表示方向決定部15Aは、現在の表示方向から表示方向を変更した方が、表示画面に表示できる余白領域が広くなるか否かを判定する(ステップS50)。
ラダープログラム表示装置1Aの置き方に応じて、現在の表示方向を変更した方が、表示画面に表示できる余白領域が広くなる場合(ステップS50、Yes)、表示方向決定部15Aは、ラダープログラムの表示方向を変更させる(ステップS60)。例えば、ラダープログラム表示装置1Aが縦置き(横書き表示)から横置き(横書き表示)に変えられたことによって、表示画面に表示できる余白領域が狭くなる場合、表示方向決定部15Aは、ラダープログラムを縦書き表示に決定する。
一方、ラダープログラム表示装置1Aの置き方に応じて、現在の表示方向を変更しても、表示画面に表示できる余白領域が広くならない場合(ステップS50、No)、表示方向決定部15Aは、ラダープログラムの表示方向を変更させない。例えば、ラダープログラム表示装置1Aが縦置き(横書き表示)から横置き(横書き表示)に変えられても、表示画面に表示できる余白領域が狭くならない場合、表示方向決定部15Aは、ラダープログラムを横書き表示に決定する。
図4は、縦書き時と横書き時に表示できる回路を説明するための図である。図4では、ラダープログラム表示装置1Aが、縦置き状態103から横置き状態104,105に変更された場合に、表示画面に表示される回路の一例を示している。
横置き状態104の表示画面は、ラダープログラムを横書き表示した場合の回路を示し、横置き状態105の表示画面は、ラダープログラムを縦書き表示した場合の回路を示している。
縦置き状態103から横置き状態104に変更された場合、表示画面の縦幅(高さ)は、短くなるので、表示画面に表示できるラダープログラムの行数は減少する。このため、縦置き状態103では表示されていたにも関わらず、横置き状態104に変更されたことによって、表示画面に表示されないプログラム領域40が発生する場合がある。この場合、表示方向決定部15Aは、表示画面に表示できなくなる回路が新たに発生したと判定する。
一方、縦置き状態103から横置き状態105に変更された場合、横置き状態105の表示画面の横幅は、縦置き状態103の表示画面の縦幅と同じである。このため、横置き状態105において、ラダープログラムを縦書きすることによって、縦置き状態103と同様のプログラム領域を表示することが可能となる。図4では、横置き状態104の場合には、表示画面に表示されず、横置き状態105の場合に、表示画面に表示されるプログラム領域をプログラム領域41で示している。
図5は、縦書き時と横書き時に表示される余白領域を説明するための図である。図5では、ラダープログラム表示装置1Aが、縦置き状態106から横置き状態107,108に変更された場合に、表示画面に表示される余白領域の一例を示している。
横置き状態107の表示画面は、ラダープログラムを横書き表示した場合の余白領域を示し、横置き状態108の表示画面は、ラダープログラムを縦書き表示した場合の余白領域を示している。
縦置き状態106から横置き状態107に変更された場合、表示画面の縦幅は、短くなるので、表示画面に表示できるラダープログラムの行数は減少する。一方、縦置き状態106から横置き状態108に変更された場合、横置き状態108の表示画面の横幅は、縦置き状態106の表示画面の縦幅と同じである。
このため、横置き状態107の場合に表示される余白領域31Yは、横置き状態108の場合に表示される余白領域31Xよりも狭くなる。表示方向決定部15Aは、横置き状態107(横書き表示)と横置き状態108(縦書き表示)とでは、横置き状態108の方が、表示画面に表示できる余白領域が広くなると判定する。換言すると、表示方向決定部15Aは、縦置き状態106から横置き状態107に変更されると、表示画面に表示できる余白領域が狭くなると判定する。
なお、縦置き状態(縦書き表示)から横置き状態(縦書き表示)に変化した場合に、ラダープログラムの折り返し表示が所定数以上、新たに発生する場合には、ラダープログラム表示装置1Aは、ラダープログラムを横書き表示させてもよい。
同様に、横置き状態(横書き表示)から縦置き状態(横書き表示)に変化した場合に、ラダープログラムの折り返し表示が所定数以上、新たに発生する場合には、ラダープログラム表示装置1Aは、ラダープログラムを縦書き表示させてもよい。
また、条件設定部12Aには、多くの情報量(ラダープログラム)を表示することを優先させるか、折り返し表示を減らすこと(視認性の向上)を優先させるかの優先順位を設定しておいてもよい。また、条件設定部12Aには、以下のような条件(a)〜(i)の少なくとも1つを設定しておいてもよい。
(a)無条件で、多くの情報量を表示することを優先する。表示できる情報量が同じ場合には、折り返し表示を減らさせる。
(b)縦書き表示と横書き表示とで、表示行数に所定数以上の差がある場合に、多くの情報量を表示することを優先する。
(c)表示行数に所定数未満の差しかない場合には、折り返し表示を減らすことを優先する。
(d)縦書き表示と横書き表示とで、余白領域に所定面積以上の差がある場合に、多くの情報量を表示することを優先する。
(e)余白領域に所定面積未満の差しかない場合には、折り返し表示を減らすことを優先する。
(f)無条件で、折り返し表示を減らすことを優先する。折り返し表示の数が同じ場合は、多くの情報量を表示させる。
(g)縦書き表示と横書き表示とで、ラダープログラムの折り返し表示数に所定数以上の差がある場合に、折り返し表示を減らすことを優先する。
(h)ラダープログラムの折り返し表示数に所定数未満の差しかない場合には、多くの情報量を表示することを優先する。
(i)表示行数と、余白領域と、折り返し表示数とのそれぞれに優先度を示す係数(重み付け)を付与しておき、優先度の合計値に基づいて、縦書き表示および横書き表示の何れかに決定する。
なお、上述した条件(a)〜(i)を組み合わせてもよい。
このように、実施の形態1によれば、縦書き表示および横書き表示のうち、多くの情報量(ラダープログラム)を表示できる表示方向を選択してラダープログラムを表示するので、表示画面の置き方に関わらず、多くの情報量を表示することが可能になる。また、表示画面(ラダープログラム表示装置1A)の置き方が縦置きまたは横置きに変えられた場合であっても、表示可能な情報量を維持することが可能になる。
また、縦書き表示および横書き表示のうち、ラダープログラムの折り返し表示数を少なく表示できる表示方向を選択してラダープログラムを表示するので、表示画面の置き方に関わらず、ラダープログラムの視認性が向上するとともに、ラダープログラムの操作性(編集の容易性)が向上する。
実施の形態2.
つぎに、図6〜図8を用いてこの発明の実施の形態2について説明する。実施の形態2では、ラダープログラムを編集することができるラダープログラム表示装置について説明する。
図6は、実施の形態2に係るラダープログラム表示装置の構成を示すブロック図である。図6の各構成要素のうち図1に示す実施の形態1のラダープログラム表示装置1Aと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
本実施の形態のラダープログラム表示装置1Bは、ラダープログラムが編集された際に、ラダープログラムの折り返し表示が新たに発生すると、折り返し表示が無くなるよう、ラダープログラムの表示方向を変更する。
ラダープログラム表示装置1Bは、条件設定部12Bと、入力部13Bと、プログラム記憶部14Bと、表示方向決定部15Bと、表示方向変更部17Bと、表示部18と、編集部21と、を有している。
入力部13Bは、ラダープログラムの表示方向を変更する条件(表示変更条件)、ラダープログラム自体、ラダープログラムを表示させる指示、およびラダープログラムを編集する指示(編集内容)などを入力する。
入力部13Bは、表示変更条件を条件設定部12Bに送り、ラダープログラムを表示させる指示を表示方向変更部17Bに送る。また、入力部13Bは、ラダープログラムをプログラム記憶部14Bに送る。また、入力部13Bは、ラダープログラムを編集する指示を編集部21に送る。
編集部21は、ラダープログラムを編集する指示に従って、ラダープログラムを編集する。プログラム記憶部14Bは、入力部13Bから送られてくるラダープログラム、および編集部21で編集されたラダープログラムを記憶するメモリなどである。
条件設定部12Bは、入力部13Bから送られてくる表示変更条件を設定する。条件設定部12Bが設定する表示変更条件は、以下の(4)および(5)などである。
(4)ラダープログラムの折り返し表示に関わらず、ラダープログラムの表示方向を変更しない。
(5)ラダープログラムの折り返し表示の数に基づいて、ラダープログラムの表示を縦書き表示または横書き表示にする。
なお、以下の説明では、上述した(4)の表示変更条件が設定されている場合を、自動変更設定無しの場合とし、上述した(5)の表示変更条件が設定されている場合を、自動変更設定有りの場合として説明する。
ラダープログラム表示装置1Bは、ラダープログラム表示装置1Bが縦置き状態で使用されるよう構成されている場合には、初期設定を横書き表示にしておく。一方、ラダープログラム表示装置1Bは、ラダープログラム表示装置1Bが横置き状態で使用されるよう構成されている場合には、初期設定を縦書き表示にしておく。なお、表示方向決定部15Bは、表示方向決定部15Aと同様に、表示画面に表示できる情報の量またはラダープログラムの視認性に基づいて、ラダープログラムの表示方向を決定してもよい。
表示方向決定部15Bは、表示部18が表示しているラダープログラムの表示の仕方に基づいて、ラダープログラムの表示方向(縦書き/横書き)を決定する。表示方向決定部15Bは、自動変更設定有りの場合に、ラダープログラムが編集されてラダープログラムの折り返し表示が新たに発生すると、新たに発生した折り返し表示が無くなるよう、ラダープログラムの表示方向を変更する。例えば、ラダープログラム表示装置1Bが縦置きされている場合、ラダープログラムは横書き表示される。この場合において、ラダープログラムが編集されたことによって、ラダープログラムの折り返し表示が新たに発生すると、表示方向決定部15Bは、ラダープログラムを縦書き表示に変更する。
なお、ラダープログラムがさらに編集されたことによって、ラダープログラムの折り返し表示が解消された場合には、表示方向決定部15Bは、ラダープログラムを横書き表示に戻してもよい。
表示方向決定部15Bは、ラダープログラムを縦書き表示にすることを決定した場合、表示方向変更部17Bに縦書き表示の指示を送る。表示方向決定部15Bは、ラダープログラムを横書き表示にすることを決定した場合、表示方向変更部17Bに横書き表示の指示を送る。
表示方向変更部17Bは、表示方向決定部15Bから送られてくる情報に基づいて、表示部18にラダープログラムを表示させる。表示方向変更部17Bは、(4)の表示変更条件が送られてきた場合には、ラダープログラムの折り返し表示に関わらず、ラダープログラム表示装置1Bに設定されている初期設定を、ラダープログラムの表示方向に決定する。
また、表示方向変更部17Bは、ラダープログラムを縦書き表示する指示が送られてきた場合には、表示部18にラダープログラムを縦書き表示させる。また、表示方向変更部17Bは、ラダープログラムを横書き表示する指示が送られてきた場合には、表示部18にラダープログラムを横書き表示させる。なお、ラダープログラム表示装置1Bの各構成要素を別々の装置に配置してもよい。
つぎに、ラダープログラムの表示変更処理手順について説明する。図7は、実施の形態2のラダープログラム表示装置による表示方向の変更処理手順を示すフローチャートである。ラダープログラム表示装置1B内のラダープログラムが、使用者によって編集されると(ステップS110)、表示方向決定部15Bは、編集後のラダープログラムに折り返し表示が新たに発生したか否かを判定する(ステップS120)。
編集後のラダープログラムに折り返し表示が新たに発生していなければ(ステップS120、No)、表示方向決定部15Bは、現在のラダープログラムの表示方向を維持する。そして、ラダープログラムの編集作業が続けられる(ステップS110)。
一方、編集後のラダープログラムに折り返し表示が新たに発生した場合(ステップS120、Yes)、表示方向決定部15Bは、表示変更条件が自動変更設定有りに設定されているか否かを判定する。換言すると、表示方向の自動切換えが選択されているか否かが判定される(ステップS130)。具体的には、表示方向決定部15Bは、条件設定部12Bに設定されている表示変更条件を読み出す。そして、表示方向決定部15Bは、表示変更条件が、上述した(5)の表示変更条件であるかを判定する。
上述した(4)の表示変更条件が設定されている場合(自動変更設定無しの場合)(ステップS130、No)、表示方向決定部15Bは、現在のラダープログラムの表示方向を維持する。そして、ラダープログラムの編集作業が続けられる(ステップS110)。
一方、上述した(5)の表示変更条件が設定されている場合(自動変更設定有りの場合)(ステップS130、Yes)、表示方向決定部15Bは、新たに発生した折り返し表示が無くなるよう、ラダープログラムの表示方向を変更する(ステップS140)。
ここで、ラダープログラムの折り返し表示について説明する。図8は、ラダープログラムの折り返し表示を説明するための図である。図8では、ラダープログラム表示装置1Bを、横置き状態とした場合に、表示画面301〜304に表示される回路の一例を示している。
ラダープログラム表示装置1Bが横置き状態の場合、ラダープログラムは縦書き表示される。図8では、ラダープログラムが編集される前の表示画面を表示画面301として示している。この場合において、ラダープログラムが編集されると、表示画面が表示画面302となる。図8では、編集されたプログラム領域をプログラム領域45として示している。ラダープログラムが編集された場合であっても、ラダープログラムに新たな折り返し表示が発生していなければ、表示方向決定部15Bは、ラダープログラムの表示方向を変更しない。ここでの表示方向決定部15Bは、ラダープログラムの縦書き表示を維持する。
この後、ラダープログラムがさらに編集されると、表示画面が表示画面303となる。ラダープログラムが編集されたことによって、ラダープログラムに新たな折り返し表示が発生する場合がある。図8では、折り返し表示が発生したプログラム領域をプログラム領域46として示している。
ラダープログラムに折り返し表示が発生した場合、表示方向決定部15Bは、ラダープログラムに折り返し表示が無くなるよう、ラダープログラムの表示方向を変更する。ここでの表示方向決定部15Bは、ラダープログラムを横書き表示に変更する。これにより、表示画面は、ラダープログラムが縦書き表示された表示画面303から、ラダープログラムが横書き表示された表示画面304になる。
なお、ラダープログラム表示装置1Bにラダープログラム表示装置1Aの機能を加えてもよい。例えば、ラダープログラム表示装置1Bが、配置方向検出部11を備える構成としてもよい。
また、表示方向決定部15Bは、ラダープログラムが編集される前から折り返し表示がある場合には、編集する前に、折り返し表示がなくなるようラダープログラムの表示方向を変更してもよい。
図9は、ラダープログラム表示装置のハードウェア構成を示す図である。なお、ラダープログラム表示装置1A,1Bは、同様のハードウェア構成を有しているので、ここではラダープログラム表示装置1Aのハードウェア構成について説明する。
ラダープログラム表示装置1Aは、表示部18、表示用メモリ2、マイクロプロセッサ3、制御メモリ4、HDD(Hard Disk Drive)5、センサ6を備えている。ラダープログラム表示装置1Aでは、これらの表示部18、表示用メモリ2、マイクロプロセッサ3、制御メモリ4、HDD5、センサ6が、バスラインを介して接続されている。
センサ6は、ラダープログラム表示装置1Aの配置方向(縦置き/横置き)を検出する。ここでのセンサ6は、配置方向検出部11に対応している。HDD5は、ラダープログラムの表示方向を決定する際に用いるコンピュータプログラム(表示方向決定プログラム)および表示変更条件などを記憶する。このように、HDD5は、プログラム記憶部14Aおよび条件設定部12Aを含んで構成されている。
マイクロプロセッサ3は、センサ6から送られてくる配置情報(縦置き又は横置き)に基づいて、ラダープログラムの表示方向を決定する。このとき、マイクロプロセッサ3は、表示方向決定プログラムを用いてラダープログラムの表示方向を決定する。また、マイクロプロセッサ3は、ラダープログラムの表示方向を決定する際に必要な情報は、制御メモリ4に記憶させておく。制御メモリ4は、例えばRAM(Random Access Memory)である。
表示部18は、液晶モニタなどの表示装置であり、マイクロプロセッサ3からの指示に基づいて、ラダープログラムを表示する。表示部18にラダープログラムを表示する際には、表示用メモリ2にラダープログラムを記憶しておき、表示用メモリ2内のラダープログラムを表示部18に表示させる。表示用メモリ2は、例えばRAMである。
また、ラダープログラム表示装置1Aは、マウスやキーボードなどの入力部13A(ここでは、図示せず)を備えており、使用者から外部入力される指示情報(表示変更条件など)を入力する。入力部13Aへ入力された指示情報は、マイクロプロセッサ3へ送られる。
表示方向決定プログラムは、HDD5内からバスラインを介して制御メモリ4へロードされる。マイクロプロセッサ3は制御メモリ4内にロードされた表示方向決定プログラムを実行する。具体的には、ラダープログラム表示装置1Aでは、マイクロプロセッサ3がHDD5内から表示方向決定プログラムを読み出して制御メモリ4内のプログラム格納領域に展開して各種処理を実行する。マイクロプロセッサ3は、この各種処理に際して生じる各種データを制御メモリ4内に形成されるデータ格納領域に一時的に記憶させておく。なお、表示方向決定プログラムは、図示しないROM(Read Only Memory)内に格納しておいてもよい。
ラダープログラム表示装置1Aで実行される表示方向決定プログラムは、表示方向決定部15Aと、表示方向変更部17Aと、を含むモジュール構成となっており、これらが主記憶装置上にロードされ、主記憶装置上に生成される。
このように、実施の形態2によれば、ラダープログラムが編集されたことによって折り返し表示が新たに発生した場合であっても、折り返し表示がなくなるようにラダープログラムの表示方向が変更されるので、ラダープログラムの視認性が向上するとともに、ラダープログラムの操作性(編集の容易性)が向上する。
実施の形態3.
つぎに、図10〜図15を用いてこの発明の実施の形態3について説明する。実施の形態3では、ラダープログラムの回路の配置位置などを変更することによって、視認性を低下させることなく、表示画面に多くの情報量を表示する。なお、以下では、ラダープログラム表示装置1Cが回路を配置する場合について説明するが、ラダープログラム表示装置1A,1Bが回路を配置してもよい。
図10は、実施の形態3に係るラダープログラム表示装置の構成を示すブロック図である。図10の各構成要素のうち図1に示す実施の形態1のラダープログラム表示装置1Aと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
ラダープログラム表示装置1Cは、入力部13Cと、プログラム記憶部14Cと、表示制御部16と、表示部18と、を有している。入力部13Cは、ラダープログラム自体、ラダープログラムを表示させる指示などを入力する。入力部13Cは、ラダープログラムを表示させる指示を表示制御部16に送り、ラダープログラムをプログラム記憶部14Cに送る。表示制御部16は、表示画面に多くの情報量を表示することができるよう、ラダープログラムの回路を表示部18に表示させる。
図11は、ラダープログラムを縦書き表示した場合の回路表示例を示す図である。図11における、縦方向は、ラダープログラムの列方向に平行な方向であり、横方向はラダープログラムの列方向に垂直な方向である。
表示制御部16は、ラダープログラムを構成する「MOV」などの各回路(命令)を、回路表示例51のように、縦方向に文字を配列し、且つ各回路を縦方向に並べてもよい。また、表示制御部16は、各回路を、回路表示例52のように、横方向に文字を配列し、且つ各回路を縦方向に並べてもよい。
また、表示制御部16は、各回路を、回路表示例53のように、横方向に文字を配列し、且つ各回路を横方向に並べてもよいし、回路表示例54のように、回路表示例53を時計回りに90度回転させたものを配置してもよい。回路表示例54は、横方向に文字が配列され且つ各回路を横方向に並べたものを、回転させて列方向に配置したものである。
なお、図11に示した回路表示例51〜54を、ラダープログラムの横書き表示に適用してもよい。図12は、ラダープログラムを横書き表示した場合の回路表示例を示す図である。図12における、横方向は、ラダープログラムの行方向に平行な方向であり、縦方向はラダープログラムの行方向に垂直な方向である。図12の回路表示例55〜57は、それぞれ図11の回路表示例51〜53を、横書き表示したものに対応している。
表示制御部16は、ラダープログラムを構成する「MOV」などの各回路を、回路表示例55のように、横方向に文字を配列し、且つ各回路を横方向に並べてもよい。また、表示制御部16は、各回路を、回路表示例56のように、縦方向に文字を配列し、且つ各回路を横方向に並べてもよい。
また、表示制御部16は、各回路を、回路表示例57のように、縦方向に文字を配列し、且つ各回路を縦方向に並べてもよい。なお、回路表示例57は、回路表示例51と同じ表示形式であり、回路表示例55は、回路表示例53と同じ表示形式である。また、回路表示例54を横書き表示にしたものは、回路表示例55と同じである。
表示制御部16は、例えば、ラダープログラムを可能な限り狭い領域で表示できる回路表示方法を選択する。換言すると、表示制御部16は、表示画面上でできるだけラダープログラムを多く表示できるよう、回路(部品)の機能を示す文字の配列方向および回路を並べる方向を、ラダープログラムの行毎または列毎に設定する。
なお、表示制御部16は、複数の回路表示方法を組み合わせてもよい。表示制御部16は、例えば、ラダープログラムを列毎に回路表示例51〜54の何れかに設定して回路表示例51〜54を組み合わせることにより、最も狭い領域で表示できる回路表示を行なわせる。また、表示制御部16は、例えば、ラダープログラムを行毎に回路表示例55〜57の何れかに設定して回路表示例55〜57を組み合わせることにより、最も狭い領域で表示できる回路表示を行なわせる。
図13は、ラダープログラムの回路配置例を示す図である。図13では、ラダープログラムを横書き表示した場合の回路配置例を示している。表示制御部16は、ラダープログラム構成する各回路(回路X0〜X2など)を、行毎に回路の横方向の位置をずらした千鳥配置にしてもよい。例えば、表示制御部16は、第1の行に配置される回路X0と回路X2との間の横方向の位置が、第2の行に配置される回路X1の横方向の位置となるように回路X0〜X2を配置する。
なお、図13に示した回路配置例を、ラダープログラムの縦書き表示に適用してもよい。この場合、ラダープログラムを構成する各回路は、列毎に回路の縦方向の位置をずらした千鳥配置される。
ここで、図14−1および図14−2を用いて、ラダープログラムの行毎の千鳥配置方法について説明する。例えば、表示制御部16が、ラダープログラムの各回路を配置する仮想方眼としての格子状の領域(回路配置格子)を矩形状とし、行毎に回路配置格子の位置を横方向に半分ずつずらしておくことによって、ラダープログラムの各行を千鳥配置できる。
図14−1は、行毎にずらされた矩形状の回路配置格子を示す図である。表示制御部16は、各行において、矩形状の回路配置格子61を横方向に並べる。そして、表示制御部16は、行毎に回路配置格子61の位置を半分ずつずらしておく。これにより、表示制御部16は、ラダープログラムを千鳥配置できる。
また、表示制御部16が、ラダープログラムの各回路を配置する格子状の領域(回路配置格子)(仮想方眼)を六角形とし、行毎に回路配置格子の位置を横方向に半分ずつずらしておくことによって、ラダープログラムの各行間で千鳥配置できる。
図14−2は、行毎にずらされた六角形の回路配置格子を示す図である。表示制御部16は、各行において、六角形の回路配置格子62を横方向に並べる。そして、表示制御部16は、行毎に回路配置格子62の位置を横方向に半分ずつずらしておく。これにより、表示制御部16は、ラダープログラムを千鳥配置できる。
なお、図14−1および図14−2では、各回路配置格子の頂点が連続的に配置されている場合について説明したが、各回路配置格子の頂点は、離散的に配置されていてもよい。この場合、各回路配置格子は、所定の隙間を介して各行上に配置されることとなる。
また、表示制御部16は、回路配置格子を設定することなく、各回路を配置してもよい。この場合も、表示制御部16は、ラダープログラムが千鳥配置されるよう、各回路を配置していく。
また、表示制御部16は、回路を配置するレイヤを複数レイヤ準備しておき、レイヤ毎に回路を配置することによって、ラダープログラムを千鳥配置してもよい。例えば、表示制御部16は、第1の行を構成する回路に用いる第1のレイヤと、第2の行を構成する回路に用いる第2のレイヤと、を準備しておく。そして、表示制御部16は、第1のレイヤと第2のレイヤとで、ラダープログラムが千鳥配置されるよう、レイヤ毎に回路を配置していく。
また、表示制御部16は、ラダープログラムを行毎に3次元表示させてもよい。また、表示制御部16は、立体視眼鏡を介してラダープログラムを見た場合に、ラダープログラムが行毎に立体表示できるようラダープログラムを表示させてもよい。
また、表示制御部16は、ラダープログラムを横書き表示させるとともに、1行のラダープログラムを断線することなく所定位置で折り曲げて表示させてもよい。図15は、ラダープログラムを折り曲げて表示する場合の回路配置を示す図である。
従来、1行に収まらないラダープログラムは、折り返し表示(改行して複数行で表示)していた。本実施の形態では、表示制御部16は、1行に収まらないラダープログラムを、縦方向に折り曲げた後、再度、横方向に折り曲げて表示させる。
図15では、位置65,66のラダープログラムが、縦方向に折り曲げられて表示されている場合を示している。表示制御部16は、横書き表示しているラダープログラムを、位置65で折り曲げて縦書き表示させるとともに、位置65の後段を横書き表示に戻している。さらに、表示制御部16は、横書き表示に戻されたラダープログラムを、位置66で折り曲げて縦書き表示させるとともに、位置66の後段を横書き表示に戻している。
このように、表示制御部16は、1本のラダープログラムを途中で折り曲げて連結した状態で表示画面上に表示させる。なお、表示制御部16は、ラダープログラムを何回折り曲げてもよい。表示制御部16は、例えば、できるだけ折り曲げ回数が少なくなるようラダープログラムを折り曲げる。これにより、ラダープログラムを狭い領域に表示させることが可能となる。
また、表示制御部16は、縦書き表示する位置に、ラダープログラムの回路を配置してもよい。図15では、縦書き表示される位置65に回路が配置されている場合を示している。
また、表示制御部16は、同じ行内に配置されている回路間の距離を縮めることによって、ラダープログラムの折り返し表示を解消してもよい。図16は、ラダープログラムの折り返し表示を解消する処理を説明するための図である。図16の上段に示すラダープログラム71は、回路間が距離L1に設定されている。また、ラダープログラムは、回路数が予め設定している所定数(1行当たりに表示させる回路数)よりも多いので、折り返し表示されている。
表示制御部16は、図16の下段に示すように、回路間の距離を距離L1よりも小さな距離L2に変更する。これにより、表示制御部16は、ラダープログラム71の折り返し表示を解消したラダープログラム72を生成する。折り返し表示が解消されることによって、折り返し表示されている場合よりも、狭い領域にラダープログラムを表示することが可能となる。
また、表示制御部16は、回路に付す文字などを回路の上側と下側に順番に配置してもよい。例えば、「X0」、「X1」、「X2」、「X3」の文字を行上で各回路上に順番に配置する場合、表示制御部16は、1番目の回路の上側に「X0」を配置し、2番目の回路の下側に「X1」を配置する。さらに、表示制御部16は、3番目の回路の上側に「X2」を配置し、4番目の回路の下側に「X3」を配置する。換言すると、表示制御部16は、奇数番目の回路には、上側に文字を配置し、偶数番目の回路には、下側に文字を配置する。なお、表示制御部16は、偶数番目の回路には、上側に文字を配置し、奇数番目の回路には、下側に文字を配置してもよい。
表示制御部16は、例えば、回路間の距離を距離L1よりも小さな距離L2に変更した場合に、回路に付す文字などを行上で各回路の上側と下側に順番に配置する。なお、表示制御部16は、例えば、回路間の距離を距離L1のまま変更しない場合であっても、回路に付す文字などを行上で各回路の上側と下側に順番に配置してもよい。
また、表示制御部16は、ラダープログラムの行間の距離を、初期設定された距離よりも狭くすることによって、ラダープログラムの表示領域を削減してもよい。なお、図15および図16で説明した表示方法を、縦書き表示されているラダープログラムに適用してもよい。
また、表示制御部16は、ラダープログラムを横書き表示する際に、接点を右側から表示し、コイルを左側から表示してもよい。図17は、ラダープログラムの接点を右側から表示する場合の、ラダープログラムの表示例を示す図である。表示制御部16は、ラダープログラム75の接点を右側から表示し、コイルを左側から表示する。これにより、右側から左側に向かって言語表記を行う使用者に対してラダープログラム75の視認性を向上させることが可能となる。
なお、表示制御部16は、図12〜図16で説明した回路の表示方法を組み合わせてもよい。この場合、表示制御部16に、表示方法の優先度を設定しておく。例えば、表示制御部16は、回路間の距離を狭くした場合であっても、ラダープログラムの折り返し表示が解消されない場合に、ラダープログラムを折り曲げ表示させる。
このように、実施の形態3によれば、ラダープログラムの回路の配置位置などを変更することによって、広い領域に表示されていたラダープログラムを狭い領域に表示させるので、視認性を低下させることなく、表示画面に多くの情報量を表示することが可能となる。