JP2007122524A - 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 - Google Patents
制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2007122524A JP2007122524A JP2005315504A JP2005315504A JP2007122524A JP 2007122524 A JP2007122524 A JP 2007122524A JP 2005315504 A JP2005315504 A JP 2005315504A JP 2005315504 A JP2005315504 A JP 2005315504A JP 2007122524 A JP2007122524 A JP 2007122524A
- Authority
- JP
- Japan
- Prior art keywords
- ladder
- program
- routine
- monitor
- control program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】制御プログラムのモニタにおいて、容易に表示させる所望の回路を選択する。
【解決手段】制御プログラム実行部22aは、予め、ラダープログラムにおいて各ステップの開始を示す命令(オペコード)であるSOR命令に続くルーチンの先頭を示すオペランドと、そのオペランドを特定するスタートアドレス(ルーチンの先頭アドレス)とを対応付けた対応テーブルを作成する。ラダーモニタ部22bは、上記の対応テーブルを参照して、各ルーチンの先頭のルーチン開始部に付された名称のリストを、HMI制御部21に指示してラダーモニタ画面上に表示させる。ユーザが表示されたリストから所望のオペランドを選択すると、ラダーモニタ部22bは、選択されたオペランドに対応するスタートアドレスで特定されるルーチンの部分を、HMI制御部21に指示してラダーモニタ画面に表示させる。
【選択図】図1
【解決手段】制御プログラム実行部22aは、予め、ラダープログラムにおいて各ステップの開始を示す命令(オペコード)であるSOR命令に続くルーチンの先頭を示すオペランドと、そのオペランドを特定するスタートアドレス(ルーチンの先頭アドレス)とを対応付けた対応テーブルを作成する。ラダーモニタ部22bは、上記の対応テーブルを参照して、各ルーチンの先頭のルーチン開始部に付された名称のリストを、HMI制御部21に指示してラダーモニタ画面上に表示させる。ユーザが表示されたリストから所望のオペランドを選択すると、ラダーモニタ部22bは、選択されたオペランドに対応するスタートアドレスで特定されるルーチンの部分を、HMI制御部21に指示してラダーモニタ画面に表示させる。
【選択図】図1
Description
本発明は、制御手順を規定する制御プログラムの実行状況をモニタする制御プログラムモニタ装置の改良に関するものである。
プログラマブルロジックコントローラ(以降、PLCと称する)などと呼ばれる制御装置は、シーケンス制御をはじめとする各種制御を実現するために、CPUおよびメモリを中心とするハードウェアの部分と、ターゲットシステムの制御を司るソフトウェアの部分とを備えている。ソフトウェアの部分は、PLCを設計当初の制御システム通りに動作させるためのシーケンス制御フローの設計、その制御フローの命令語への変換、命令語のメモリへの書き込みなどを含んでいる。一般に、この一連の作業をプログラミングと称している。
このようなプログラミングにおいては、コンピュータの専門知識を持たなくても簡単にプログラム作成ができるように、独自の言語を用いており、利用者に使いやすい各種のプログラミング言語が次々と開発されるようになった。現在、IEC(International ElectrotechnicalCommission)において、標準のプログラミング言語が制定されている(IEC 6 1131-3 )。それは、SFC(Sequential Function Chart)、LD(Ladder Diagram)、IL(Instruction List)、FBD(Function Block Diagram)およびST(Structured Text)の5言語である。
上記のように、各種のプログラミング言語を用いてプログラム開発を行うことができるように環境が整えらている。例えば、ラダー図(LD)は、リレー記号を用いて比較的容易にラダー回路を設計することができるので従来から広く普及しており、現在でも最もよく用いられているプログラミング言語である。このようなプログラミング言語によるプログラミング作業において用いられるプログラミングツールとしては、ラダーエディタなどのプログラミングソフトウェアが普及してきている。このソフトウェアは、パーソナルコンピュータなどのコンピュータ装置において、ラダー図のような記号化された命令を含む形態でプログラムを容易に作成および編集することできる。
作成されたプログラムは、当初の設計通りに正しく動作させるために、通常、デバッグで修正や変更が施されることによって完成される。デバッグにおいては、PLCにデバイスが接続された状態でプログラムを実行させて、設計通りに機器が動作しているかどうかを確認する。例えば、ラダープログラムがどのように実行されているかを確認する手法として、ラダーモニタのシステムが知られている(特許文献1)。
このようなシステムでは、PLCの制御機能を有する表示器(プログラマブル表示器)において、表示器の表示機能を利用してモニタ画面にラダープログラムの実行状況を表示するように構成されている。
また、モニタ画面においてラダープログラムの所望の回路を表示させるには、通常、画面のスクロールや指定した行の番号(ステップ番号)へのジャンプなどの手段が用いられる。また、ラダープログラムにおける所望箇所の表示は、特許文献2に開示されているように、命令語や変数の検索範囲とする条件を指定して検索を行うことによっても可能である。
特開2000−20113号公報(2000年1月21日公開)
特開2004−5060号公報(2004年1月8日公開)
しかしながら、画面のスクロールを用いる方法では、所望の回路がどの行に作成されていたのかわらなければ、その回路が確認できるまで、スクロールをし続けなければならない。このため、所望の回路が大きい番号の行に作成されていた場合、その行を見つけ出すのに手間がかかる。また、行番号を指定してジャンプする方法でも、所望の回路がどの行に作成されていたのかわらなければ、指定できないという不都合がある。
一方、命令語や変数を検索する方法では、所望の回路以外の回路にも同じ命令語や変数を多数含んでいる場合、所望の回路に含まれる命令語や変数にたどり着くまで検索操作を繰り返すことがある。
このように、従来の方法では、所望の回路が作成された行の位置をユーザが記憶していなければ、当該回路を表示するために手間を要する可能性がある。
本発明は、上記の問題点に鑑みてなされたものであり、制御プログラムのモニタにおいて、容易に表示させる所望の回路を選択することを目的としている。
本発明に係る制御プログラムモニタ装置は、制御の手順を規定する制御プログラムの実行状況を表示する制御プログラムモニタ装置において、上記の課題を解決するために、前記制御プログラムから各ルーチンの先頭を示すルーチン開始部のリストの名称を作成して制御プログラムのモニタ画面に表示させるリスト作成手段と、表示された前記リストからルーチン開始部の名称が選択されると、前記制御プログラムを当該ルーチン開始部から前記モニタ画面に表示させるルーチン選択手段とを備えていることを特徴としている。
上記の構成では、リスト作成手段によって作成されたリストから所望のルーチン開始部を選択することによって、ルーチン選択手段によって、制御プログラムが選択されたルーチン開始部からモニタ画面に表示される。これにより、ユーザは、表示させたい回路を含むルーチンのルーチン開始部をリストによって選択して、特定されたルーチンを表示させて選択範囲を絞り込んだ上で、前述の従来のサーチ方法を用いて所望の回路を表示させる。それゆえ、全体として所望の回路を表示させるまでの手間を軽減することができる。
前記の制御プログラムモニタ装置は、前記制御プログラムの実行に先立って、ルーチンの先頭を特定するために、前記制御プログラムにおける各ステップの前記ルーチン開始部と、前記制御プログラムが実行時に格納されるメモリ領域において前記ルーチン開始部を格納するアドレスとを対応付ける対応付け手段を備え、前記リスト作成手段が、前記ルーチン開始部と前記アドレスとの対応関係に基づいて、有効な前記ルーチン開始部を抽出することによりリストを作成することことが好ましい。この構成では、リスト作成手段が、対応付け手段によって、制御プログラムの実行においてルーチン開始部を特定するために予め作成されたルーチン開始部とルーチン開始部を格納するアドレスとの対応付けを利用してリストを作成する。これにより、制御プログラムの全体に対して検索を行う従来の方法に比べて、演算量を大幅に削減することができる。それゆえ、制御プログラムモニタ装置の演算処理による負担を軽減することができる。
この制御プログラムモニタ装置においては、リスト作成手段は、前記モニタ画面に表示された前記制御プログラムにおける前記ルーチン開始部への前記モニタ画面上のタッチ操作によって前記リストを表示させることが好ましい。これにより、リストを表示させるための操作ボタンなどをモニタ画面に設ける必要がなく、モニタ画面における操作ボタン群のレイアウトの自由度を向上させることができる。
本発明のモニタプログラムは、前記のいずれかの制御プログラムモニタ装置を動作させるモニタプログラムであって、コンピュータを前記各手段として機能させる。また、この制御モニタプログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供される。これにより、前記の制御システムと同様、ラダーモニタ画面上で選択されたラダー記号に応じたデバイス情報を表示することができる。また、このエディタプログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供される。これにより、前記の制御プログラムモニタ装置において、所望の回路を表示させるまでの手間を軽減することをソフトウエア的に実現することができる。
本発明に係る制御プログラムモニタ装置は、上記のように、制御プログラムにおける各ルーチンの先頭を表すルーチン開始部の名称のリストをモニタ画面上で表示して、そのリストから選択されルーチンをモニタ画面に表示させることにより、ルーチンを特定した上で所望の回路を捜すので、所望の回路にたどり着くまでの時間を短縮することができる。したがって、本発明を採用することにより、制御プログラムのデバッグ作業を効率的に行うことができるという効果を奏する。
本発明の実施形態について図1ないし図5に基づいて説明すると以下の通りである。
図1に示すように、本実施形態に係る制御システム1は、プログラマブル表示器2と、PLC3と、デバイス4とを備えている。
プログラマブル表示器2は、USBケーブルなどからなる転送ケーブル6を介してエディタコンピュータ5と接続されている。転送ケーブル6は、後述するようにエディタコンピュータ5で作成された画面ファイル、ラダーファイルおよびラダーモニタファイルをプログラマブル表示器2に転送するためのケーブルである。
エディタコンピュータ5は、画面作成ソフトウエアおよびラダープログラム作成ソフトウエアがインストールされており、後述するようにして作成された画面ファイル、ラダーファイルおよびラダーモニタファイルを転送するときに転送ケーブル6を介してプログラマブル表示器2と接続されるが、通常、プログラマブル表示器2とPLC3とが通信を行う制御システム1の運転時には、プログラマブル表示器2と切り離される。
PLC3は、ユーザが作成した制御プログラムとしてのシーケンスプログラム(ラダープログラムなど)にしたがって、例えば、数十msなどの予め定められたスキャンタイム毎に、入力ユニットを介して入力用のデバイス4の状態を取り込むとともに、出力用のデバイス4に制御指示を与える。本実施の形態においては、制御プログラムとしてラダープログラムを用いた例について説明する。
入力用のデバイス4としては、センサ(温度センサ、光センサなど)、スイッチ(押ボタンスイッチ、リミットスイッチ、圧力スイッチなど)のような機器が用いられる。出力用のデバイス4としては、アクチュエータ、リレー、電磁弁、表示器などが用いられる。これらのデバイス4は、製造ラインなどの各種のターゲットシステムの所要各部に配置される。
なお、デバイス4は、後述するタッチパネル26などの入力装置から手動で入力されたデータを格納するためのデータメモリ(図示せず)における特定の領域であってもよい。また、デバイス4は、PLC3内のメモリにおける特定の領域であってもよい。
PLC3内のメモリ(デバイスメモリ)は、デバイス4の状態(デバイス4からの出力値やデバイス4への設定値)を示すデータ(ワードデータやビットデータ)を、デバイスアドレスで特定される領域に格納している。メモリにおいて、ワードデバイスは、入出力されるデータが数値のようなワードデータを格納する領域として設定され、ワードアドレス(デバイスアドレス)で指定される。また、ビットデバイスは、オン・オフ状態のようなビットデータを格納する領域として設定され、ビットアドレス(デバイスアドレス)で設定される。このような設定により、メモリ内の任意のワードデバイスまたはビットデバイスをデバイスアドレスを指定してアクセスするだけでデバイス4を制御し、またはその状態に関する情報を個別に取り出すことができる。
以降の説明では、デバイスアドレスを適宜、アドレスと称する。
プログラマブル表示器2は、CPUなどの演算処理装置を備えており、ユーザが作成した入力操作および表示用の画面データを表示することによりプログラマブル表示器特有の操作機能および表示機能を実現する専用コンピュータである。制御システム1のHMI機器として好適に使用されるプログラマブル表示器2は、後述する処理指示語(タグ)を組み合わせて決定される画面データに基づいて、デバイス4の状態を画面表示する際の動作や、画面への操作に応じてデバイス4の状態を制御する際の動作を特定する。
このプログラマブル表示器2は、シリアルケーブル7を介したPLC3との通信により、PLC3を介して表示画面に状態を表示する各デバイス4の状態を取得し、例えば、後述のディスプレイ24に各デバイス4の状態を表示する機能を有する。また、プログラマブル表示器2は、後述のタッチパネル26への操作に応じて、デバイス4へデバイスの状態制御を指示する機能を有する。
プログラマブル表示器2は、操作機能および表示機能だけではなく、PLCの制御機能を備えている。これにより、プログラマブル表示器2は、PLC3を介さずに直接デバイス4を制御することができる。
なお、デバイス4の状態の取得/変更は、その都度指示してもよいし、プログラマブル表示器2内にキャッシュを用意し、取得/変更時には、キャッシュへアクセスするとともに、所定の時間間隔毎や所定のイベント毎に通信してアドレスの実体と同期を取ってもよい。
プログラマブル表示器2は、上記の機能を実現するために、HMI制御部21と、コントローラ部22と、プログラムメモリ23と、コントロールメモリ24と、ディスプレイ25と、タッチパネル26、インターフェース部(図中、I/F)27,28と、I/O部29とを備えている。以下、プログラマブル表示器2の主要各部について詳細に説明する。
ディスプレイ25は、プログラマブル表示器2を薄型に構成するために、液晶ディスプレイや、ELディスプレイや、プラズマディスプレイのような平板型ディスプレイが好適に用いられる。タッチパネル26は、ディスプレイ25の表示画面上でタッチ入力を行うために設けられている入力装置である。
インターフェース部27は、プログラマブル表示器2がエディタコンピュータ5との間の通信を行うための通信制御部であり、転送ケーブル6に接続されている。一方、インターフェース部28は、プログラマブル表示器2がPLC3との間のシリアル通信を行うための通信制御部であり、シリアルケーブル7に接続されている。
I/O部29は、I/O制御インターフェース部29aおよびI/Oユニット29bからなる。
I/Oユニット29bは、デバイス4が接続可能となるように、多数の入出力端子、入出力回路などを備えている。このI/Oユニット29bは、接続される通信システムに応じて異なる機種が、プログラマブル表示器2の本体に着脱可能に取り付けられる。例えば、I/Oユニット29bとしては、デジタルデータの入出力を行うためのDIOユニットや、高速通信を行うためのリモートI/Oを構成するFlex NetworkI/Fユニットに接続される各種I/Oユニット(アナログ/デジタル変換ユニット、高速カウンタユニットなど)が用いられる。プログラマブル表示器2には、予め装着可能な動作を保証しているI/Oユニット29bが規定されている。
I/O制御インターフェース部29aは、コントローラ部22と、I/Oユニット29bとの間の信号の授受を仲介するインターフェース回路であって、入出力メモリ、D/A変換器、A/D変換器などを備えている。
HMI制御部21は、HMI制御プログラムをプログラマブル表示器2が備えるCPUなどの演算処理手段に実行させることにより実現される機能ブロックである。このHMI制御部21は、後述するユーザ画面やラダーモニタ画面の表示制御、ユーザ画面を介した入力操作の制御、PLC3などの接続機器との通信の制御といったHMI機能を果たす。なお、これらのHMI機能については、後に詳しく説明する。
ユーザ画面のデータである画面データは、ユーザ画面に関連して行われる各種の処理を規定する処理指示語(タグ)を含んでいる。この処理指示語は、ベース画面上で実行されるべき事象毎に作成されており、基本的には、表示処理を実行すべきベース画面のファイル番号と、このベース画面上で実行すべき動作内容を特定する事象名と、各実行事象毎に参照される1または複数のデータからなる参照情報とを一組として備えている。
本実施の形態に係るプログラマブル表示器2では、上記のタグとして、ベース画面上の領域(表示範囲)とその領域への表示に対応するデバイスのデバイスアドレスとの対応を示す表示タグ、画面上の領域(入力範囲)とその領域へのタッチ入力に対応するアドレスとの対応を示すタッチ入力タグおよび後述するラダーモニタ画面表示用のタグ(ラダー状態変更用タグ)が規定されている。さらに、本実施形態では、各タグは、複数のユーザ画面の少なくとも1つと関連付けることができる。
HMI制御部21は、デバイス4の状態を取得してユーザ画面に表示する場合、PLC3内のメモリに設定される前述のビットデバイスまたはワードデバイスが示す状態情報のうち、必要な情報を適時にデータメモリに読み込む一方、上記の表示タグを繰り返し読み出して、表示タグで指定された表現形式のパーツを読み出した値に応じた形態で画面上の指定された領域へ表示する。また、HMI制御部21は、プログラマブル表示器2が制御装置(PLC)として動作する場合、PLC3のメモリの代わりにデータメモリに設定される前述のビットデバイスまたはワードデバイスが示す状態情報のうちの必要な情報を参照しながら、上記の表示タグを繰り返し読み出して、表示タグで指定された表現形式のパーツを読み出した値に応じた形態で画面上の指定された領域へ表示する。これによって、ビットデバイスまたはワードデバイスの状態の変化に応じて変化する表示動作が実行され、PLC3またはデバイス4から取得したデバイス4の状態がユーザ画面におけるパーツの表示状態に反映される。
HMI制御部21は、ユーザ画面上でのタッチ入力によってデバイス4に制御指示を与える場合、前述のタッチ入力タグを繰り返し読み出して、タッチ入力タグにおける参照情報に含まれる、ユーザ画面の所定の領域におけるタッチ位置を特定するための、タッチによる入力が有効となる有効入力座標範囲、およびタッチパネル26の操作(数値入力操作、ON/OFF操作など)を特定する事象名などで特定される内容の動作をPLC3内のメモリにビットデバイスまたはワードデバイスとして設定する。また、HMI制御部21は、プログラマブル表示器2が制御装置として動作する場合、タッチ入力タグを繰り返し読み出して、タッチ入力タグにおける参照情報に含まれる有効入力座標範囲、およびタッチパネル26の操作を特定する事象名などで特定される内容の動作を、PLC3のメモリの代わりにデータメモリにビットデバイスまたはワードデバイスとして設定する。これによって、ビットデバイスまたはワードデバイスの状態の変化に応じて変化するPLC3またはプログラマブル表示器2において、設定された制御指示が上記の動作として実行され、デバイス4の状態が変化する。
また、HMI制御部21は、コントローラ部22のラダーモニタ部22bから与えられるラダーモニタ画面を表示する。
コントローラ部22は、PLC機能を果たす部分であり、制御機能プログラムをプログラマブル表示器2が備える前述の演算処理手段に実行させることによって実現される機能ブロックである。このコントローラ部22は、制御プログラム実行部22aと、ラダーモニタ部22bとを有している。
制御プログラム実行部22aは、プログラムメモリ23からラダーファイルを読み出してプログラム実行メモリ24aにラダープログラムとして展開する。この制御プログラム実行部22aは、プログラム実行メモリ24aから読み出したラダープログラムを数十msなどの予め定められた周期でスキャンして、ラダー命令を一つずつ実行していく。
ラダープログラムがプログラム実行メモリ24aに展開されている状態では、各命令(LD、AND、ORなどのニーモニック形式の命令)が一つずつアドレスで指定される領域に格納されている。そして、各命令(オペコード)は、ジャンプ命令、CALL命令、RET命令などに続く命令を除いてアドレスの順番に一つずつ実行される。また、命令としては、通常のラダー命令以外に、各ステップの開始を示す命令(母線からの分岐を示す命令)であるSOR命令が用意されており、各ステップにSOR命令に続いてルーチンの開始を示すルーチン開始部(ルーチン開始命令)が含まれている場合は、そのルーチン開始部がSOR命令のオペランドとしてSOR命令と併せてアドレスに格納されている。
また、対応付け手段としての制御プログラム実行部22aは、ラダープログラムをプログラム実行メモリ24aに展開(ロード)したとき、ラダープログラムにおいて各ステップのルーチン開始部と、そのオペランドを特定するスタートアドレスとを対応付けた対応テーブルを作成する。上記のオペランドとしては、例えば、I/O部29などのシステム初期化を示す“INIT”や、メインルーチンプログラムの開始を示す“MAIN”や、サブルーチンの開始を示す“SUB−001”,“SUB−002”…などが挙げられており、各ルーチンはそれぞれを特定するための数値で表される。具体的には、“INIT”、“MAIN”、“SUB−001”、“SUB−002”…には、それぞれ“1”、“2”、“31”、“32”…が割り当てられている。また、SOR命令の後に続くルーチン開始部がない場合には、“0”が割り当てられる。このように、SOR命令に対して行われる処理が予め数値で規定されている。
制御プログラム実行部22aは、プログラム実行メモリ24aに格納されているラダープログラムの各SOR命令をサーチして、SOR命令に対応したオペランドを抽出して、当該オペランドより格納されているアドレスを特定し、スタートアドレスとして用い、当該オペランドを表す数値と、上記のスタートアドレスとを対応付けていく。制御プログラム実行部22aは、このようにして、各数値とスタートアドレスとを対応付けた対応テーブルを作成し、後述する対応テーブルメモリ24bに格納する。制御プログラム実行部22aは、上記の対応テーブルを作成しておくことにより、ラダープログラムの実行時に、そのスタートアドレスによってオペランドを特定する。ただし、制御プログラム実行部22aは、“0”に対してはスタートアドレスを作成しないので、対応テーブルにおいて“0”に対応するスタートアドレスは存在しないことになる。
PLC3のメーカ毎に固有の名称で呼ばれるデバイスアドレスには、変数が対応付けられている。変数は、ユーザによって任意に設定可能な名称であり、後述するコメントを変数として扱うことができる。
ラダーモニタ部22bは、予め画面エディタ51およびラダーエディタ52によって作成されたユーザ画面と同一フォーマットのラダーモニタ画面をターゲットシステムが稼働している状態で表示し、ラダープログラムが制御プログラム実行部22aによって実行されることで取得したデバイス4の状態をラダーモニタ画面上に表示する。具体的には、例えば、ラダーモニタ画面上のラダープログラム(ラダー回路)において、回路上導通している部分を太く表示したり、明るく表示したりする。このラダーモニタ部22bは、例えば、前述の特許文献1に開示された方法と同様の方法でラダーモニタ画面を表示する。
リスト作成手段としてのラダーモニタ部22b(モニタプログラム)は、前述の対応テーブルを参照して、オペランドを表す数値を基にオペランドの名称の一覧表としてルーチン名リストを作成し、後述するリストメモリ24cに格納する。ラダーモニタ部22bは、スタートアドレスが対応付けられている有効な数値(オペランド)のみに基づいてルーチン名リストを作成する。また、ラダーモニタ部22bは、各オペランドに対応するルーチン名のリストをHMI制御部2に指示してラダーモニタ画面上に表示させる。また、例えば、オペレータが表示されたルーチン名リストの中から所望のルーチン名をタッチするなどして、表示されたルーチン名リストからルーチン名が選択されると、ルーチン選択手段としてのラダーモニタ部22bは、受け付けた選択操作に基づいて、そのルーチン名に対応するオペランドを特定し、プログラム実行メモリ24aに展開されているラダープログラムにおいて、そのオペランドに該当する数値に対応するスタートアドレスを対応テーブルを参照してサーチして、スタートアドレスで特定される部分をラダーモニタ画面上に表示するようにHMI制御部21に指示する。
上記のHMI制御プログラムおよび制御機能プログラムは、プログラマブル表示器2と分離可能に構成される記録媒体からプログラマブル表示器2にインストールすることが可能である。
上記の記録媒体は、磁気テープやカセットテープなどのテープ系、フロッピディスクやハードディスクなどの磁気ディスク系、CD−ROM、MO、MD、DVDなどの光ディスク系、ICカード(メモリカードを含む)、光カードなどのカード系が好適である。その他、上記のプログラムメディアは、マスクROM、EPROM、EEPROM、フラッシュROMなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
また、本制御システムは、インターネットを含む通信ネットワークと接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。ただし、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予めエディタコンピュータ5に格納されるか、あるいは別な記録媒体からインストールされるものであってもよい。
プログラムメモリ23は、前述の画面ファイル、ラダーファイルおよびラダーモニタファイルを格納するためのメモリであり、FEPROM(Flash Erasable and Programmable ROM)が用いられる。FEPROMは、書き替え可能な読み出し専用のフラッシュメモリであるので、一般のパーソナルコンピュータにおけるハードディスクドライブの役割を果たす。フラッシュメモリは、可動部を持たず、かつ衝撃に強いので、劣悪な周囲環境でも安定して動作する。
画面ファイルは、プログラマブル表示器2に表示される画面データ(ユーザ画面のデータ)のファイルであり、ディスプレイ25に表示すべきベース画面やパーツのデータおよび各パーツに付与された後述する処理指示語などを含んでいる。この画面ファイルは、図形データ部およびアドレスデータ部を含んでいる。図形データ部は、ユーザが作成したマークについての図形データや選択されたパーツを格納し、アドレスデータ部は、図形データ部に対応するように、入力されたマークやパーツについて、ラダーエディタ52で設定された前記のアドレスおよびアドレスに対応するコメントを格納している。具体的には、図形データ部におけるマークやパーツの個々は、アドレスデータ部においてそれぞれ対応するコメントおよびアドレスと対応付けられている。
ラダーファイルは、ラダープログラムのファイルであって、後述するラダーエディタ52によって作成される。ラダープログラムは、デバイス4が所望のシーケンスにしたがって動作するように制御手順を定めるプログラムである。
ラダープログラムは、コマンドデータ部およびアドレスデータ部を含んでいる。コマンドデータ部は、入力されたラダー記号に対応するラダー命令をそれぞれに対応する、コーディングに用いるオペランド(アドレス)を格納している。ラダープログラム作成時に選択されたラダー記号は、ラダーファイルにおいてラダー命令として保存される。一方、アドレスデータ部は、コマンドデータ部のオペランドと個々に対応するように、入力されたラダー記号に対応するラダー命令について、ラダーエディタ52で設定されたアドレスおよびアドレスに関連付けられたコメントを格納している。
コメントとしては、デバイス4の動作状態のような事象名や、スイッチに対応するSWやランプに対応するLAMPのようなデバイス4に対応する符号や、操作指示などが挙げられる。
ラダーモニタファイルは、ラダーモニタ用の画面データ(ラダーモニタ画面データ)のファイルである。ラダーモニタ画面データは、一般の画面データと同様、プログラマブル表示器2によって表示されるが、ラダープログラムが実行された状態でデバイス4の状態を表示する。このため、ラダーモニタファイルは、前述のコマンドデータ部と同様なコマンドデータ部を備える他、アドレスデータ部に対応するアドレスデータ部と、図形データ部に対応する図形データ部とを備えている。
コントロールメモリ24は、コントローラ部22が制御処理を行うときに使用する作業領域として用いるメモリであり、例えば、DRAMによって構成されている。このコントロールメモリ24は、PLC3のメモリにおいてアドレスによって特定される領域に格納されるデバイス4の状態を示すデータ(アドレスの内容)をメモリとの間で受け渡しするための状態メモリ領域を有している。
また、コントロールメモリ24は、プログラム実行メモリ24aと、対応テーブルメモリ24bと、リストメモリ24cとを有している。これらのメモリ24a〜24cは、それぞれDRAMの所定の領域として確保されている。
プログラム実行メモリ24aは、制御プログラム実行部22aが実行するラダープログラムを展開するために設けられている。対応テーブルメモリ24bは、制御プログラム実行部22aによって作成される前述の対応テーブルを格納する。リストメモリ24cは、ラダーモニタ部22bによって作成される前述のルーチン名リストを格納する。
続いて、エディタコンピュータ5について説明する。エディタコンピュータ5は、一般の汎用パーソナルコンピュータと同様に、CPU、メモリ(RAM、ROMなど)、外部記憶装置(ハードディスクドライブ、MOドライブなど)、表示装置および入力装置(キーボード、マウスなど)を有している。また、エディタコンピュータ5は、画面エディタ51およびラダーエディタ52を備えている。
画面エディタ51は、ユーザ独自の画面であるユーザ画面を作成できるように、スイッチ、ランプ、テンキー、各種表示器(例えば、数値表示器、メータ表示器およびグラフ表示器)などのパーツ、各種のタグ設定機能、描画機能、テキスト入力機能などを備えている。パーツとしては、単一の機能を有するパーツだけでなく、複数の機能を有する、複合スイッチ、カウンタ、タイマといった複合機能を有するパーツが用意されている。パーツは、ユーザが容易に選択できるようにライブラリ形式で登録されており、パーツの機能にに応じた入力タグや表示タグなどが予め付与されている。
ラダーエディ52は、デバイス4が所望のシーケンスにしたがって動作するようにPLC3の制御手順を定める前述のラダープログラムを作成するためのプログラミングソフトウェアをCPUなどによる演算処理手段によって実行することによって実現される機能ブロックである。このラダーエディタ52は、エディタコンピュータ5の図示しないディスプレイの表示画面上でデバイス4に対応するラダー記号や演算処理などの各種処理を表すラダー記号を配置してラダー図(ラダープログラム)を作成できるように構成されている。
また、ラダーエディタ52は、アドレスとユーザにより設定されたコメント(変数)との対応付けを行う。この割り付けの結果は、ラダープログラムの一部としてラダーファイルに保存される。
また、画面エディタ51およびラダーエディタ52は、プログラマブル表示器2のディスプレイ25にユーザ画面と同様にラダーモニタ画面を表示するために、画面データと同一のフォーマット(ファイル形式)のラダーモニタ画面用のラダーモニタ画面データを作成する機能を備えている。以下に、その機能について説明する。
ラダーエディタ52は、作成されたラダープログラムを構成している各ラダー命令の種類(LD、AND、OUTなど)を解析して、当該ラダー命令で使用するコメント(変数)およびアドレスが判明すると、そのラダー命令の種類に基づいて、予めラダーエディタ52が備えているラダー記号を選択して、ラダー記号の選択順序とラダー命令の種類とで決まるベース画面上の位置に配置した状態で表示する処理と、上記のコメントおよびアドレスに基づいて、表示するラダー記号に付与すべき必要なパラメータ(デバイス名、大きさ、位置など)を設定する。これにより、ラダープログラムに含まれるラダー記号をコメントおよびパーツに変換して、1または複数のパーツで表した画面(パーツ画面)が完成する。パーツ画面は、例えばラダープログラムのラング(行)単位で作成される。
画面エディタ51は、ディスプレイ25に表示される画面をユーザ画面とラダーモニター画面との間で切り換えるための画面番号変更用のパーツや、ラダープログラムを実行/実行停止するためのRUN/STOPなどのラダー状態変更用タグを、各パーツ画面に付与するとともに、各パーツ(ラダー記号)にタッチ入力を受け付ける前述のタッチ入力タグを設定し、作成された1または複数のパーツ画面を、画面ファイルと同一フォーマットを有するラダーモニタファイルとして保存する。また、画面エディタ51は、関連している画面ファイルおよびラダーモニタファイルがあれば、プログラマブル表示器2へのダウンロードに先立ってこれらを合成し、これらのファイルに個別の画面番号を付与して、これらのファイルを1つのプロジェクトファイルにまとめた上でダウンロードする。
ここで、上記のように構成される制御システム1のラダーモニタにおけるルーチンの選択動作について説明する。
まず、ラダーモニタ部22bによって、ラダーモニタファイルがプログラムメモリM23からデータメモリに読み込まれると、HMI制御部21によって、ラダーモニタ画面がラダーモニタファイルに基づいてディスプレイ25に表示される。この状態で、制御プログラム実行部22aがラダープログラムの実行を開始すると、ラダーモニタ部22bは、プログラマブル表示器2に取り込まれたデバイス4の状態を取得し、その状態をラダーモニタ画面に表示する。例えば、回路上導通している(接続線上の)部分を太線または明るく表示し、非導通の部分を細線で表示したり、接点やコイルの点灯表示させたりする。これにより、回路上でどのデバイス4が導通しているかをラダーモニタ画面上で確認することができる。
一方、制御プログラム実行部22aは、ラダープログラムをプログラム実行メモリ24aにロードしたときに、ラダープログラムにおける各命令をサーチして前述の対応テーブルを作成して、対応テーブルメモリ24bに格納しておく。例えば、図2に示すように、ラダープログラムがメインルーチンとサブルーチンのプログラムを含む場合、図3に示すように、メインルーチンの先頭を示す命令“MAIN”を表す“2”と、サブンルーチンの先頭を示す命令“SUB−001”を表す“31”が特定され、これらの数値に基づいて対応テーブルが作成される。
ラダーモニタ部22bは、上記の対応テーブルを参照して、前述のルーチン名リストを作成してリストメモリ24cに格納しておく。HMI制御部2は、ラダーモニタ部22bの指示を受けて、そのルーチン名リストラダーモニタ画面上に表示させる。例えば、図5に示すラダーモニタ画面101においては、前述のように特定された命令の名称として“MAIN”および命令の名称として“SUB−001”がルーチン名リスト102に表示される。
そして、ユーザが、ルーチン名リスト102において、“MAIN”をタッチするとラダーモニタ画面101には、ラダープログラムにおける“MAIN”を先頭とする部分が表示される。また、ユーザが、ルーチン名リスト102において、“SUB−001”をタッチするとラダーモニタ画面101には、ラダープログラムにおける“SUB−001”を先頭とする部分が表示される。
ラダーモニタ画面101にラダープログラムが表示されると、ルーチン名リストが表示されなくなる。そのような場合には、ラダープログラムにおける“MAIN”や“SUB−001”のルーチン開始命令の表示箇所をユーザがタッチすると、ラダーモニタ部22bがルーチン名リスト102を表示させる。これにより、ルーチン名リストを表示させるための操作ボタンなどをラダーモニタ画面101に設ける必要がなく、ラダーモニタ画面101における操作ボタン群のレイアウトの自由度を向上させることができる。
このように、本実施の形態のプログラマブル表示器2は、ラダーモニタ部22bを備えることによって、制御プログラムモニタ装置として機能する。また、ラダーモニタ部22bが、制御プログラム実行部22aによって予め作成された対応テーブルを利用してルーチン名リストを作成して表示させ、表示されたルーチン名リストから選択されたルーチンの部分を表示させる。これにより、ユーザは、ラダープログラムにおける所望の回路を表示させるとき、まず、当該回路を含むルーチンをルーチン名リストによって選択して、特定されたルーチンを表示させる。そして、ユーザは、従来のサーチ方法(ラダープログラムのスクロール表示や命令語および変数による検索など)を用いて所望の回路を表示させる。
通常、制御プログラムは、メインルーチンの部分とサブルーチンの部分からなり、全体としてブロック化されることによって、プログラムの容量を削減するように作成される。また、プログラムの作成者は、通常、どの処理が制御プログラムのどの部分に対応しているかを把握しているので、デバッグ作業などにおいて、所望の回路がどのブロック(ルーチン)にあるかがわかる。したがって、ルーチンを特定し、そのルーチン内で所望の回路を捜すことにより、全体として所望の回路を表示させるまでの手間を軽減することができ、ラダープログラムのデバック作業を効率的に行うことができる。
また、ルーチン名リストの作成においては、予め作成されている対応テーブルを利用するので、ラダープログラムの全体に対して検索を行う従来の方法に対して、演算量を大幅に削減することができる。それゆえ、プログラマブル表示器2の演算処理による負担を軽減することができる。
なお、本実施の形態では、制御プログラムのプログラミング言語としてラダーを用いた例について説明したが、そのプログラミング言語としては、前述の国際基準IECに準拠した各プログラミング言語やそれ以外のプログラミング言語を用いることができる。
本発明は、上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の制御プログラムモニタ装置は、ラダープログラムのような制御プログラムにおける各ルーチンの開始部の名称のリストをラダーモニタ画面上で表示して、そのリストから選択したルーチンをラダーモニタ画面に表示させることにより、ルーチンを特定した上で所望の回路を捜すので、所望の回路にたどり着くまでの時間を短縮することができ、ラダープログラムのデバッグを効率的に行うことに有効に利用することができる。
2 プログラマブル表示器(制御プログラムモニタ装置)
22a 制御プログラム実行部(対応付け手段)
22b ラダーモニタ部(リスト作成手段,ルーチン選択手段,モニタプログラム)
24a プログラム実行メモリ
24b 対応テーブルメモリ
101 ラダーモニタ画面(モニタ画面)
102 ルーチン名リスト(リスト)
22a 制御プログラム実行部(対応付け手段)
22b ラダーモニタ部(リスト作成手段,ルーチン選択手段,モニタプログラム)
24a プログラム実行メモリ
24b 対応テーブルメモリ
101 ラダーモニタ画面(モニタ画面)
102 ルーチン名リスト(リスト)
Claims (5)
- 制御の手順を規定する制御プログラムの実行状況を表示する制御プログラムモニタ装置において、
前記制御プログラムから各ルーチンの先頭を示すルーチン開始部の名称のリストを作成して制御プログラムのモニタ画面に表示させるリスト作成手段と、
表示された前記リストからルーチン開始部の名称が選択されると、前記制御プログラムを当該ルーチン開始部から前記モニタ画面に表示させるルーチン選択手段とを備えていることを特徴とする制御プログラムモニタ装置。 - 前記制御プログラムの実行に先立って、ルーチンの先頭を特定するために、前記制御プログラムにおける各ステップの前記ルーチン開始部と、前記制御プログラムが実行時に格納されるメモリ領域において前記ルーチン開始部を格納するアドレスとを対応付ける対応付け手段を備え、
前記リスト作成手段は、前記ルーチン開始部と前記アドレスとの対応関係に基づいて、有効な前記ルーチン開始部を抽出することによりリストを作成することを特徴とする請求項1に記載の制御プログラムモニタ装置。 - リスト作成手段は、前記モニタ画面に表示された前記制御プログラムにおける前記ルーチン開始部への前記モニタ画面上のタッチ操作によって前記リストを表示させることを特徴とする制御プログラムモニタ装置。
- 請求項1ないし3のいずれか1項に記載の制御プログラムモニタ装置を動作させるモニタプログラムであって、コンピュータを前記各手段として機能させるためのモニタプログラム。
- 請求項4に記載のモニタプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005315504A JP2007122524A (ja) | 2005-10-28 | 2005-10-28 | 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005315504A JP2007122524A (ja) | 2005-10-28 | 2005-10-28 | 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007122524A true JP2007122524A (ja) | 2007-05-17 |
Family
ID=38146287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005315504A Pending JP2007122524A (ja) | 2005-10-28 | 2005-10-28 | 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007122524A (ja) |
-
2005
- 2005-10-28 JP JP2005315504A patent/JP2007122524A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8843885B2 (en) | Program creation support device | |
JP5599535B2 (ja) | シーケンスプログラムデバッグ支援装置 | |
JP6372308B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体 | |
JP2006099568A (ja) | 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体 | |
JP3847585B2 (ja) | エディタの登録装置、登録プログラムおよびそれを記録した記録媒体 | |
JP6337810B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2007094724A (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2008084027A (ja) | プログラマブル表示器、表示プログラムおよびそれを記録した記録媒体 | |
JP2006285496A (ja) | プログラマブル表示器、表示制御プログラムおよびそれを記録した記録媒体 | |
JP2007179112A (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体 | |
JP2006243841A (ja) | Plc用ツール装置 | |
JP4964036B2 (ja) | エディタ装置およびエディタプログラム | |
JP2007122524A (ja) | 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 | |
JP3795357B2 (ja) | エディタ装置、エディタプログラムおよびそれを記録した記録媒体 | |
JP4372739B2 (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2007065907A (ja) | 画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体、ならびにプログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体 | |
JP4381793B2 (ja) | プログラマブル表示器、表示制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2006134096A (ja) | 画面作成装置、画面作成プログラムおよび記録媒体 | |
JP2002062910A (ja) | エディタ装置およびエディタプログラムを記録した記録媒体 | |
JP2001075791A (ja) | エディタ装置およびエディタプログラムを記録した記録媒体 | |
JP4515434B2 (ja) | ユニット情報設定装置、ユニット情報設定プログラムおよびそれを記録した記録媒体 | |
JPH11338519A (ja) | プログラマブルコントローラ、プログラム作成支援装置及びプログラム作成支援方法 | |
JP2004178151A (ja) | 表示制御装置、プログラム、および、そのプログラムが記録された記録媒体 | |
JP2005251014A (ja) | 制御システム、制御モニタプログラムおよびそのプログラムを記録した記録媒体、ならびにエディタ装置、エディタプログラムおよびそのプログラムを記録した記録媒体 | |
JP2003044277A (ja) | プログラム開発支援装置、プログラム開発支援プログラムおよびそれを記録した記録媒体 |