(57)【特許請求の範囲】
【請求項１】
ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備え、
前記ラダー関数シミュレータは、
ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、当該関数の指定として前記ラダー回路図編集部で用いる関数を受け付ける関数設定受付部と、
前記関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、
前記入力接点部に対して指定された値に基づき、前記受け付けた関数の演算処理を行う関数処理部と、
前記関数処理部の演算処理結果を前記出力接点部の値として出力する出力制御部とを備えたラダー回路図編集装置。
【請求項２】
前記出力制御部は、出力する画面上の表示領域のサイズが指定された場合、当該サイズに対応して前記関数処理部の演算処理結果を表示することを特徴とする請求項１記載のラダー回路図編集装置。
【請求項３】
ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備え、
前記ラダー関数シミュレータは、
ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、当該関数の指定を受け付ける関数設定受付部と、
前記関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、
前記入力接点部に対して指定された値に基づき、前記受け付けた関数の演算処理を行う関数処理部と、
前記関数処理部の演算処理結果として前記ラダー回路図編集部で用いる関数の演算処理結果を前記出力接点部の値として出力する出力制御部とを備えたラダー回路図編集装置。
【請求項４】
前記出力制御部は、出力する画面上の表示領域のサイズが指定された場合、当該サイズに対応して前記関数処理部の演算処理結果を表示することを特徴とする請求項３記載のラダー回路図編集装置。
【請求項５】
ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備えたラダー回路図編集装置に用いられ、ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、当該関数のシミュレーションを行うコンピュータを、
前記関数の指定としてラダー回路図編集部で用いる関数を受け付ける関数設定受付部と、
前記関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、
前記入力接点部に対して指定された値に基づき、前記受け付けた関数の演算処理を行う関数処理部と、
前記関数処理部の演算処理結果を前記出力接点部の値として出力する出力制御部として機能させるためのラダー関数シミュレータプログラム。
【請求項６】
ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備え、
前記ラダー関数シミュレータは、
ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、当該関数の指定として前記ラダー回路図編集部で用いる関数を受け付ける関数設定受付部と、
関数定義を格納する関数定義記憶部と、
前記関数定義記憶部の関数定義を参照して前記関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、
前記入出力接点出力部から出力された入力接点部と出力接点部を表示するディスプレイに表示された入力接点部に対して指定された入力接点値に基づき、前記関数定義記憶部から参照した関数定義に従って演算処理を行う関数処理部、
前記関数処理部の演算処理結果を前記出力接点部の値として前記ディスプレイに出力する出力制御部と、
を備えたラダー回路図編集装置。
【請求項７】
一つの単位となる処理を実行するために定義された回路のまとまりを関数としてラダー言語で生成されるラダー回路図を編集するラダー回路図編集部と、ラダー関数シミュレータとを備え、
前記ラダー回路図編集部はラダー回路編集画面となるディスプレイを具備し、
前記ディスプレイは前記ラダー回路図編集部で作成するプログラム本体の編集作業エリアとなるプログラム編集部と、入力接点部と出力接点部を表示する関数シミュレーション部とを有し、
前記ラダー関数シミュレータは、前記ラダー回路図編集部で編集中の関数を関数指定として受け付ける関数設定受付部と、関数定義を格納する関数定義記憶部と、前記関数定義記憶部の関数定義を参照して前記関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを前記ディスプレイの関数シミュレーション部に出力する入出力接点出力部と、前記ディスプレイの関数シミュレーション部に表示された入力接点部に対して指定された入力接点値に基づき、前記関数定義記憶部から参照した関数定義に従って演算処理を行う関数処理部と、前記関数処理部の演算処理結果を前記ラダー回路図編集部の編集中の関数の演算処理結果とし、当該演算処理結果を前記出力接点部の値として前記ディスプレイの関数シミュレーション部に出力する出力制御部とを具備したことを特徴とするラダー回路図編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラダー言語で生成される回路の関数をシミュレーションするラダー関数シミュレータ及びこれを用いたラダー回路図編集装置、並びにラダー関数シミュレータプログラムに関するものである。
【背景技術】
【０００２】
エンジニアリングソフト（ラダー回路図編集プログラム）のラダー言語は、Ｃ言語などの高級言語とは異なり、接点とコイルを接続したプログラム言語である。ラダー言語で生成される回路について、任意の処理を実行するために定義された回路のまとまりを、関数とする。関数には、ベンダが提供する関数や、ユーザが定義した関数等がある。
エンジニアリングソフトのラダー回路編集作業において、従来、編集中のプログラム内で関数を使用する場合、関数の動作を単体では確認できなった。すなわち、関数を試用するためには、プログラム本体に関数を組み込み、動作確認のための入出力接点等を設定する必要があった。さらに、このような関数を動作させるためにはプログラム全体をコンパイルおよび実行する必要がある。
【０００３】
一方、プロセス制御環境において、各種機能をガジェットにドラッグ＆ドロップすることで表示項目として追加するようにしたシステムがあった（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−３４５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のラダー回路編集作業では、編集中のプログラム内で関数を使用する場合、プログラム本体に関数を組み込み、プログラム全体をコンパイルして実行する必要があったため、関数の動作確認をするためのプログラム本体編集作業時の編集エラーや、関数の動作確認ミスなどといった不具合の発生や、それに伴う非効率な作業を生じさせる要因となっていた。
また、例えば特許文献１に記載されたようなシステムでは、関数を試用するといった構成は備えていないため、ラダー回路編集作業に適用しようとしても、このような問題を解決することができなかった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、ラダー回路図の編集作業を行うプログラム本体に変更を加えることなく、関数の動作確認を行うことのできるラダー関数シミュレータを得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るラダー回路図編集装置は、ラダー関数シミュレータとラダー回路の編集を行うラダー回路図編集部を備え、ラダー関数シミュレータは、ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、関数の指定をラダー回路図編集部で用いる関数として受け付ける関数設定受付部と、関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、入力接点部に対して指定された値に基づき、受け付けた関数の演算処理を行う関数処理部と、関数処理部の演算処理結果を出力接点部の値として出力する出力制御部とを備えたものである。
【発明の効果】
【０００８】
この発明に係るラダー回路図編集装置は、ラダー関数シミュレータが、関数の指定をラダー回路図編集部で用いる関数として受け付ける関数設定受付部と、入出力接点出力部によって出力された入力接点部に対して指定された値に基づき、関数の演算処理を行う関数処理部と、関数演算処理結果を出力接点部の値として出力する出力制御部とを備えたので、ラダー回路図の編集作業を行うプログラム本体に変更を加えることなく、関数の動作確認を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１によるラダー関数シミュレータを示す構成図である。
【図２】この発明の実施の形態１によるラダー関数シミュレータが出力する画面の一例を示す説明図である。
【図３】この発明の実施の形態１によるラダー関数シミュレータの動作を示すフローチャートである。
【図４】この発明の実施の形態２によるラダー回路図編集装置を示す構成図である。
【図５】この発明の実施の形態２によるラダー回路図編集装置が表示する回路編集画面を示す説明図である。
【図６】この発明の実施の形態２によるラダー回路図編集装置の通常の操作手順とラダー関数シミュレータを用いた操作手順を示す説明図である。
【図７】この発明の実施の形態３によるラダー関数シミュレータが出力する画面の一例を示す説明図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１によるラダー関数シミュレータを示す構成図である。
図示のように、ラダー関数シミュレータは、関数設定受付部１、入出力接点表示制御部２、関数定義記憶部３、関数処理部４、入力接点値受付部５、出力制御部６を備えている。
関数設定受付部１は、ユーザがマンマシンインタフェース（例えばキーボードやマウスなど）を操作することで、選択された関数を受け付ける処理を実施する。入出力接点表示制御部２は、選択された関数について、関数定義記憶部３を参照し、関数に対応した入力接点部および出力接点部をディスプレイに表示させる入出力接点出力部を構成している。関数定義記憶部３は、関数定義を格納するための記憶部である。関数処理部４は、入力接点値受付部５を通じてユーザが入力する入力接点値を受け取り、関数定義記憶部３から参照した関数定義に従って演算処理を行う。入力接点値受付部５は、ユーザがマンマシンインタフェースを操作することで、選択された入力接点値を受け付ける。出力制御部６は、上記の演算結果を関数処理部４から受け取り、ディスプレイに描画する。
【００１１】
なお、実施の形態１のラダー関数シミュレータは、コンピュータによって構成され、関数設定受付部１、入出力接点表示制御部２、関数処理部４〜出力制御部６は、それぞれの機能に対応したプログラムをＣＰＵで実行することにより実現されている。また、関数定義記憶部３は、ハードディスク装置や半導体メモリといった記憶装置上に構成されている。
【００１２】
図２は、実施の形態１のラダー関数シミュレータの出力する画面の一例を示している。
本画面例の関数は、入力引数がＸ、出力引数がＹであり、各々が複数の引数を持つことが可能である。引数にはデータ型があり、例では、２値をとるビット型や、実数値をとる実数型等が表示されている。
入力接点設定／表示部７および出力接点表示部９は、選択された関数に応じ、動的に入出力接点のインタフェースを表示するもので、図１における入出力接点表示制御部２の機能によって実現される。その際、画面例のように各引数のデータ型に応じた形式で表示してもよい。また、入力接点設定／表示部７には、入力接点値受付部５で受け付けた入力値が、出力接点表示部９には、出力制御部６によって出力される出力値が表示される。
関数表示部１０は、選択された関数の概要を示す。その際、画面例のように、プログラム本体での関数使用時の見た目を模した表示方法であってもよい。
【００１３】
シミュレーションＯＮ／ＯＦＦ入力部８は、関数動作のシミュレーションの開始／停止を制御するためのインタフェースである。画面例のように、モニタ開始とモニタ停止それぞれの入力部を設けてもよいし、トグルでＯＮ／ＯＦＦを切り替える入力部であってもよい。
ユーザが入力接点設定／表示部７に入力値を設定し、シミュレーションＯＮ／ＯＦＦ入力部８で「モニタ開始」を選択すると、図１における関数処理部４によって、関数処理が行われ、出力制御部６によって、出力接点表示部９に出力値が表示される。ＯＮの状態で、入力接点設定／表示部７から入力値を変更した場合、リアルタイムで出力値を更新・表示してもよい。
【００１４】
以下、図３のフローチャートを参照して実施の形態１のラダー関数シミュレータの動作について説明する。
ユーザが任意の関数（一例として、図２の画面例に示すように、入力接点を３つ、出力接点を５つ持つ関数）を選択すると、入力Ｘ０〜Ｘ２および出力Ｙ０〜Ｙ４が、データ型に従った形式（ビット型であればラジオボタン、数値であればテキストボックス等）で、入力接点設定／表示部７および出力接点表示部９に表示される（ステップＳＴ１）。また、関数の概要が関数表示部１０に表示される（ステップＳＴ１）。ユーザは、入力接点設定／表示部７に任意の値（例ではＸ０：ＯＮ，Ｘ１：９９．９，Ｘ２：２）を入力する（ステップＳＴ２）。また、入力接点値が閾値の範囲内かを判定するステップ（ステップＳＴ３）を設け、閾値の範囲内ではなかった場合は入力接点値エラー警告を行い（ステップＳＴ４）、ステップＳＴ２に戻るようにしてもよい。
【００１５】
次に、シミュレーションＯＮ／ＯＦＦ入力部８でシミュレーションの開始が選択されると（ステップＳＴ５）、入力値に応じた出力値（図２の画面例では、Ｙ０：ＯＦＦ，Ｙ１：ＯＮ，Ｙ２：ＯＦＦ，Ｙ３：０，Ｙ４：０）が、出力接点表示部９に表示される（ステップＳＴ６）。その後、入力接点設定／表示部７における入力接点値の変更があった場合（ステップＳＴ７）は、ステップＳＴ２からの処理を繰り返す。
【００１６】
以上説明したように、実施の形態１のラダー関数シミュレータによれば、ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、関数の指定を受け付ける関数設定受付部と、関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、入力接点部に対して指定された値に基づき、受け付けた関数の演算処理を行う関数処理部と、関数処理部の演算処理結果を出力接点部の値として出力する出力制御部とを備えたので、ラダー回路図の編集作業を行うプログラム本体に変更を加えることなく、関数の動作確認を行うことができる。これにより、プログラム編集作業において、ユーザが様々な関数を試したり、プログラム本体に適用する前に動作チェックを行ったりといった操作が容易になり、作業効率の向上が見込まれる。
【００１７】
また、実施の形態１のラダー関数シミュレータプログラムによれば、ラダー言語で生成される回路において一つの単位となる処理を実行するために定義された回路のまとまりを関数とした場合、当該関数のシミュレーションを行うコンピュータを、関数の指定を受け付ける関数設定受付部と、関数設定受付部で受け付けた関数に対応した入力接点部と出力接点部とを出力する入出力接点出力部と、入力接点部に対して指定された値に基づき、受け付けた関数の演算処理を行う関数処理部と、関数処理部の演算処理結果を出力接点部の値として出力する出力制御部として機能させるようにしたので、単体で関数の動作確認を行うことができるラダー関数シミュレータをコンピュータ上に実現することができる。
【００１８】
実施の形態２．
実施の形態２は、実施の形態１のラダー関数シミュレータを用いたラダー回路図編集装置に関するものである。
図４は、実施の形態２のラダー回路図編集装置を示す構成図であり、ラダー回路図編集装置は、ラダー関数シミュレータ１００とラダー回路図編集部２００で構成されている。ラダー関数シミュレータ１００は、図１で示した実施の形態１のラダー関数シミュレータであり、その関数設定受付部１は、ラダー回路図編集部２００で編集中の関数を関数指定として受け付け、また、出力制御部６は、関数処理部４の演算処理結果をラダー回路図編集部２００で編集中の関数の演算処理結果として出力するよう構成されている。ラダー回路図編集部２００は、一般的なラダー回路図の編集装置であり、編集機能を有するプログラムをＣＰＵで実行することにより実現されている。
【００１９】
図５は、ラダー回路図編集装置が表示するラダー回路編集画面を示す説明図である。
プログラム編集部１１は、ラダー回路図編集部２００で作成するプログラム本体の編集作業エリアである。関数リスト部１２は、使用可能な関数を検索・閲覧するためのエリアである。関数シミュレータ部１３は、ラダー関数シミュレータ１００が用いるエリアである。関数シミュレータ部１３の配置方法としては、図５に示すようにラダー回路図編集部２００の作業エリア内の一部のエリアに配置したり、タブ表示等であってもよいし、ウィジェットのような形態であってもよい。
【００２０】
関数シミュレータ部１３でシミュレーションする関数を設定する方法として、プログラム編集部１１に配置済の関数から選択できる。操作方法としては、プログラム編集部１１のエリアから関数シミュレータ部１３のエリアへのドラッグアンドドロップや、コンテキストメニューからの選択などであってもよい。
同様に、関数リスト部１２からシミュレーション対象の関数を選択することができる。操作方法としては、関数シミュレータ部１３のエリアへのドラッグアンドドロップや、コンテキストメニューからの選択などであってもよい。
【００２１】
また、関数シミュレータ部１３でシミュレーションした関数を、プログラム本体に適用する方法として、関数シミュレータ部１３からプログラム編集部１１へ追加することも可能である。操作方法としては、プログラム編集部１１のエリアへのドラッグアンドドロップや、コンテキストメニューからの選択などであってもよい。すなわち、図１に示した出力制御部６は、関数処理部４の演算処理結果を、ラダー回路図編集部２００で編集されているプログラム編集部１１への関数の演算結果として出力する。
【００２２】
図６は、通常の操作手順とラダー関数シミュレータ１００を用いた操作手順を示す説明図である。
画面６０１から画面６０２に示すように、通常の操作手順では、関数を編集中のプログラムに直接追加してデバッグを行う。これに対し、ラダー関数シミュレータ１００を用いた操作手順は、関数リスト部１２から関数シミュレータ部１３に関数を設定する（画面６１１→画面６１２）。これにより、実施の形態１で説明したように、ラダー関数シミュレータ１００がシミュレーションを行い、その結果を表示する。ユーザはこれを確認し、プログラム編集部１１中のドラッグ＆ドロップすることにより、編集中のプログラムに追加する（画面６１３）。
【００２３】
以上説明したように、実施の形態２のラダー回路図編集装置によれば、ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備え、ラダー関数シミュレータの関数設定受付部は、ラダー回路図編集部で用いる関数を関数指定として受け付けるようにしたので、ラダー回路図編集部のプログラム本体に大幅な変更を加えることなく、ラダー回路の編集作業中に関数の動作確認を容易に行うことができる。
【００２４】
また、実施の形態２のラダー回路図編集装置によれば、ラダー関数シミュレータと、ラダー回路の編集を行うラダー回路図編集部とを備え、ラダー関数シミュレータの出力制御部は、関数処理部の演算処理結果をラダー回路図編集部で用いる関数の演算処理結果として出力するようにしたので、ラダー関数シミュレータで動作確認を行った関数を容易にラダー回路図に反映させることができる。
【００２５】
実施の形態３．
実施の形態３は、ラダー関数シミュレータにおいて、ユーザから出力する画面上の表示エリアのサイズが指定された場合に、そのサイズに基づいて表示を行うようにした例である。すなわち、実施の形態３のラダー関数シミュレータは、その出力制御部が、出力する画面上の表示領域のサイズが指定された場合、指定されたサイズに対応して関数処理部の演算処理結果を表示するようにしたものである。ラダー関数シミュレータの図面上の構成は図１に示した実施の形態１と同様であるため、ここでの説明は省略する。
【００２６】
図７は、実施の形態３の画面例を示すもので、実施の形態１における図２の画面例の別形態である。ユーザが、シミュレーション結果を視覚的に表示したい場合、関数表示部１４に示すように、プログラム本体で関数を実行した場合に近い表示形式で、シミュレーション結果を表示する。すなわち、関数の接点部分に対応した位置に、リアルタイムの値（ＯＮ／ＯＦＦや数値等）を表示する。図２の場合よりも表示内容が増加するため、ユーザが定義するサイズに応じて表示方法を切り替えられるようにしておくのもよい。例えば、ユーザが表示領域を拡大させると、図７のような表示に切り替わる方法がある。また、ボタンなどの入力部を用いた操作等で切り替えてもよい。
【００２７】
以上説明したように、実施の形態３のラダー関数シミュレータによれば、出力制御部は、出力する画面上の表示領域のサイズが指定された場合、サイズに対応して関数処理部の演算処理結果を表示するようにしたので、ユーザが所望する表示内容に応じた演算処理結果の表示を行うことができる。
【００２８】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００２９】
１  関数設定受付部、２  入出力接点表示制御部、３  関数定義記憶部、４  関数処理部、５  入力接点値受付部、６  出力制御部、７  入力接点設定／表示部、８  シミュレーションＯＮ／ＯＦＦ入力部、９  出力接点表示部、１０  関数表示部、１１  プログラム編集部、１２  関数リスト部、１３  関数シミュレータ部、１４  関数表示部、１００  ラダー関数シミュレータ、２００  ラダー回路図編集部。
【図１】
0006395467.tif 000002
【図２】
0006395467.tif 000003
【図３】
0006395467.tif 000004
【図４】
0006395467.tif 000005
【図５】
0006395467.tif 000006
【図６】
0006395467.tif 000007
【図７】
0006395467.tif 000008