(57)【要約】【課題】  シーケンスプログラムを調査するとき、その調査を容易にするプログラマブルコントローラを提供する。【解決手段】  シーケンスプログラムのラダー図を表示するとき、メインプログラムおよび実行状態のサブプログラムのラダー図は通常の輝度で表示する（２０２，２０３，２０４，２１１）。非実行状態のサブプログラムのラダー図は低輝度で表示する（２０５）。これによって、ラダー図表示させたとき、サブプログラムが実行されているか否かを容易に判別でき、シーケンスプログラムの調査が容易となる。【選択図】          図３
2006092441.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムをモニタするモニタ装置を備えたプログラマブルコントローラにおいて、
前記シーケンスプログラム中のサブプログラムの実行状態を記録する記憶手段と、
前記記録された実行状態を読み出す手段と、
該読み出された実行状態に基づきシーケンスプログラム中の実行されているサブプログラムと、実行されていないサブプログラムを判別可能に前記モニタ装置に表示する表示制御手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項２】
前記表示制御手段は、前記実行状態のサブプログラムと実行されていないサブプログラムとを輝度によって判別可能に表示する請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記表示制御手段は、前記実行状態のサブプログラムと実行されていないサブプログラムとを表示色によって判別可能に表示する請求項１に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種機械や装置のシーケンス制御を行うプログラマブルコントローラに関する。
【背景技術】
【０００２】
プログラマブルコントローラで使用されるシーケンスプログラムは、図１０に示すようなラダー図によって示されるラダープログラムで構成され、メインプログラムと該メインプログラムで呼び出されるサブプログラムで構成されている。図１０に示す例では、メインプログラム１、２とサブプログラムＰ１，Ｐ２，Ｐ３で構成されている。「ＥＮＤ１」命令はメインプログラム１の終了を意味し、この「ＥＮＤ１」命令までがメインプログラム１であり、「ＥＮＤ１」命令の次から「ＥＮＤ２」命令までがメインプログラム２であり、「ＥＮＤ２」命令はメインプログラム２の終了を意味する。「ＣＡＬＬ」命令はサブプログラムの呼び出しを意味し、例えば「ＣＡＬＬ  Ｐ１」でサブプログラムＰ１が読み出され実行される。「ＳＰ」命令はサブプログラムの開始を意味し、「ＳＰＥ」命令がサブプログラムの終了を意味している。その結果、「ＳＰ」命令から「ＳＰＥ」命令までが、「ＣＡＬＬ」命令で指定されたサブプログラムである。また、「ＥＮＤ」命令は、全プログラムの終了を意味する。
【０００３】
以上のようなシーケンスプログラム（ラダープログラム）を編集したり、シーケンスプログラム（ラダープログラム）上で問題が発生したときなどシーケンスプログラム（ラダープログラム）を表示画面に表示して、目的とする部分を探し出すには、時間を要することから、モニタ装置が接続されたプログラマブルコントローラでは、図１１に示すようにモニタ装置の表示画面の左部分にプログラム一覧を表示し、画面右にはラダー図を表示し、サブプログラム名を表示画面左部分のプログラム一覧から選択することによって、そのサブプログラムのラダー図を表示し、このラダー図をスクロールして目的とする箇所を発見できるようにしたものが知られている（特許文献１参照）。
【０００４】
また図１２に示すように、ラダー図の部分を表示画面いっぱいに拡大して表示するようにもなされている。そして、通常、この表示されたラダー図中で、接点やコイルのオン・オフ状態を確認できるように、オンしている接点やコイルの表示に対して、特別な表示属性を持たせて、他と区別できるように表示している。図１１，図１２では、符号ａで示す網掛け表示した常閉接点が作動している（該接続オフとなっている）ことを、他の接点やコイル等の表示とは異なった表示をして表示している。
【０００５】
【特許文献１】特開平５−３４１８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
サブプログラムを指定して、そのラダー図を表示し、また、ラダー図中の信号のオン／オフ状態を表示することができても、そのサブプログラムが実際に実行されているのか否かは分からないため、サブプログラムで問題が発生した場合には、ラダー図において、そのサブプログラムの呼び出し元を順次たどり、サブプログラムの呼び出しが行われているのを確認したうえでサブプログラム内の原因を究明する必要がある。
【０００７】
例えば、図１０において、サブプログラムＰ２に問題が発生したとき、該サブプログラムＰ２の呼び出しが行われているか否かを判別するためにラダー図をたどり、符号ａで示すように、サブプログラムＰ２の呼び出し指令「ＣＡＬＬ  Ｐ２」のネットの接点がオンとなっていることを確認することによって、初めてサブプログラムＰ２が呼び出されて実行されていることを確認できるものである。
【０００８】
このように、シーケンスプログラムで問題が生じたとき、その原因調査に時間を要するという問題がある。  
そこで、本発明の目的は、シーケンスプログラムにおいて問題が発生したとき、シーケンスプログラムの調査を容易にするプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００９】
本願発明は、シーケンスプログラムをモニタするモニタ装置を備えたプログラマブルコントローラにおいて、前記シーケンスプログラム中のサブプログラムの実行状態を記録する記憶手段と、前記記録された実行状態を読み出す手段と、該読み出された実行状態に基づきシーケンスプログラム中の実行されているサブプログラムと、実行されていないサブプログラムを判別可能に前記モニタ装置に表示する表示制御手段とを備え、実行状態のサブプログラムと非実行状態のサブプログラムを区別し判別可能に表示することによって、シーケンスプログラムの調査を容易にする。特に、前記表示制御手段による実行状態のサブプログラムと実行されていないサブプログラムを判別可能の表示は、輝度の差異によって行われる。若しくは表示色によって行われる。
【発明の効果】
【００１０】
実行状態のサブプログラムと実行されていないサブプログラムが区別され判別可能に表示されるから、サブプログラムに問題が発生したとき等において、シーケンスプログラムの調査が容易となる。
【発明を実施するための最良の形態】
【００１１】
以下本発明のプログラマブルコントローラの一実施形態について図面と共に説明する。  図１は、同実施形態の要部ブロック図である。プログラマブルコントローラ１０は、該プログラマブルコントローラ全体を制御するプロセッサ１１、該プロセッサ１１が実行する制御ソフトウェアを記憶するＲＯＭ１２、ラダープログラム（シーケンスプログラム）を記憶するラダープログラムメモリ１３ａ、後述するサブプログラム情報テーブル１３ｂ、サブプログラム実行状態ワークメモリ１３ｃ、サブプログラム実行状態メモリ１３ｄ等を有するＲＡＭ１３、接点やコイル（リレー）のオン／オフ状態を記憶する信号メモリ１４、外部入出力デバイス３１を接続する入出力デバイスインタフェース１５等で構成され、これらはバス３０で接続されている。
【００１２】
また、バス３０には、モニタ装置２０が接続され、該モニタ装置２０は、モニタ装置全体を制御するプロセッサ２１、モニタのためのソフトウェアを記憶するＲＯＭ２２、ワークメモリ２３、表示器のＣＲＴ３２とのインタフェース２４、キーボード３３とのインタフェース２５がバス接続されている。なお、表示器としては液晶やその他の表示器を用いてもよい。  
上述したモニタ装置２０が接続されたプログラマブルコントローラ１０はすでに公知のものとほぼ同じであるが、ＲＡＭ１３中にサブプログラム情報テーブル１３ｂ、サブプログラム実行状態ワークメモリ１３ｃ、サブプログラム実行状態メモリ１３ｄを設け、また、後述するように実行状態のサブプログラムのラダー図を他のラダー図とは輝度等を変えて表示する点で、従来のプログラマブルコントローラと相違するものである。
【００１３】
図４は、サブプログラム情報テーブル１３ｂの説明図である。このサブプログラム情報テーブル１３ｂは、シーケンスプログラムが作成され、ラダープログラムメモリ１３ａに格納された後、サブプログラム情報取得指令をプログラマブルコントローラに入力することによって、プロセッサ１１は、このシーケンスプログラム（ラダープログラム）を解析し、サブプログラム番号（サブプログラム名）毎にその開始ネット番号（「ＳＰ」命令のネット番号）と終了ネット番号（「ＳＰＥ」命令のネット番号）を、このサブプログラム情報テーブル１３ｂに書き込み作成されるものである。
【００１４】
また、サブプログラム実行状態ワークメモリ１３ｃは、図５に示すようにサブプログラム番号（サブプログラム名）毎にそのサブプログラムが、現在のシーケンスプログラムの実行サイクルで実行されているか否かを記憶するもので、実行されているときには、状態を示すビットに「１」が書き込まれるものである。  
サブプログラム実行状態メモリ１３ｄは、シーケンスプログラムの１実行サイクルが終了後、サブプログラム実行状態ワークメモリ１３ｃの状態記憶ビットの記憶内容がコピーされて、図６に示すようにサブプログラム番号（サブプログラム名）毎にその１サイクル前のサブプログラムの実行状態が記憶されるものであり、ラダー図を表示するときこのサブプログラム実行状態メモリ１３ｄを参照して、サブプログラムのラダー図の表示輝度、色等の表示属性を変えて、他とは区別して表示するようにするものである。
【００１５】
図２は、プログラマブルコントローラ１０のプロセッサ１１がシーケンスプログラムを実行するとき、本発明に関係する部分を中心とした処理のフローチャートである。  
シーケンスプログラムの開始指令が入力されると、まず、実行ポインタＰを初期値の「１」にセットし（ステップ１００）、ラダープログラムからポインタＰで示されるネット番号のネットを読み出し、該ネットの指令がサブプログラムの呼び出し指令（ＣＡＬＬ指令）か判断し（ステップ１０１）、呼び出し指令でなければ、読み出した指令を実行し（ステップ１０２）、ポインタＰを１インクリメントする（ステップ１０３）。そして、このポインタＰで示されるネットの指令がシーケンスプログラムの終了（ＥＮＤ）か判別し（ステップ１０４）、終了でなければ、ステップ１０１に戻り、前述したようにサブプログラムの呼び出し命令か否か判別する。以下、サブプログラム読み出し指令が読み出されるまで、ステップ１０１からステップ１０４の処理を繰り返し実行する。
【００１６】
ステップ１０１でサブプログラム読み出し指令であると判断されたときには、サブプログラム実行状態ワークメモリ１３ｃにおける、読み出されたサブプログラム番号（サブプログラム名）に対応するサブプログラム番号の状態記憶ビットに「１」を書き込み、当該サブプログラムがこのサイクルで使用されたことを記憶する（ステップ１０７）。そして、実行ポインタＰの値に「１」加算し、メインプログラムにおける次のネット番号の値をレジスタＭＰに記憶し（ステップ１０８）、この指令されたサブプログラムの番号（名称）の開始ネット番号をサブプログラム情報テーブル１３ｂより読み出し、この読み出した開始ネット番号をポインタＰにセットし（ステップ１０９）、該ポインタＰを１更新しながら、サブプログラムのエンドを示す「ＳＰＥ」が読み込まれるまで、ポインタＰで示されるネットの命令を実行する（ステップ１１０〜１１２）。サブプログラムのエンドを示す「ＳＰＥ」が読み込まれると、ポインタＰにステップ１０８でレジスタＭＰに記憶したメインプログラムの次のネット番号を示す値にセットし（ステップ１１３）、ステップ１０１に戻る。
【００１７】
以下、ステップ１０１〜ステップ１０４の処理を実行し、サブプログラム呼び出し指令が読み込まれる毎にステップ１０７〜ステップ１１３の処理を実行し、シーケンスプログラムを実行する。
【００１８】
かくして、ステップ１０４でシーケンスプログラムの終了命令が読み込まれたと判断されると、サブプログラム実行状態ワークメモリ１３ｃ（図５参照）の各サブプログラムの実行状態を記憶するビットの値をコピーし、サブプログラム実行状態メモリ１３ｄ（図６参照）に記憶する（ステップ１０５）。その後、サブプログラム実行状態ワークメモリ１３ｃの状態記憶値を「０」にクリアし、次のサイクルで使用されるサブプログラムの記憶に備え（ステップ１０６）、ステップ１００に戻る。
【００１９】
図３は、プログラマブルコントローラ１０のプロセッサが実施するシーケンスプログラムの表示処理のフローチャートである。  
シーケンスプログラム表示指令が入力されると、図７に示すようにモニタ画面をシーケンスプログラムリスト表示に切換表示する。そして、「表示中ネット番号」を記憶するレジスタに、選択されているプログラムの開始ネット番号をセットする（ステップ２００）。通常は最初、全プログラムが選択されていることから、この「表示中ネット番号」に「１」がセットされていることになる。しかし、すでにサブプログラムやメインプログラムのレベル番号が選択されている場合には、そのプログラムの開始ネット番号がセットされることになる。サブプログラムの場合には、図４で示したサブプログラム情報テーブル１３ｂより、選択されたサブプログラムの開始ネット番号が読み出され、セットされることになる。また、メインプログラムをレベル分けしたときはそのレベルの開始ネット番号を予めセットし記憶させておき、選択レベル番号に対応する設定された開始ネット番号をこの「表示中ネット番号」にセットすることになる。なお、図７に示す例では、サブプログラムＰ１が選択されている例を示している。
【００２０】
次にＲＡＭ１３のラダープログラムメモリ１３ａに記憶されているラダープログラムより、レジスタに記憶する「表示中ネット番号」のラダープログラムを１ネット分読み出す（ステップ２０１）。この読み出したネットがサブプログラムか否かをこのネット番号と、サブプログラム情報テーブル１３ｂ（図４参照）より判断する。サブプログラム情報テーブル１３ｂに記憶する各サブプログラムの開始ネット番号と終了ネット番号間に、「表示中ネット番号」が入っていなければ、ステップ２１１に移行して、通常の輝度で当該ネットのラダー図を表示しステップ２０６に移行する。
【００２１】
一方、「表示中ネット番号」がサブプログラム中のネット番号であると判別されたときには、その属するサブプログラム番号（名称）に対して、サブプログラム実行状態メモリ１３ｄに記憶されている状態を読み出し（ステップ２０３）、このサブプログラム画実行状態の「１」か否かを判断する（ステップ２０４）。「１」で実行状態であれば、通常の輝度で当該ネットのラダー図を表示し（ステップ２１１）、ステップ２０６に移行する。また「０」で実行状態でなければ、低輝度で当該ネットのラダー図を表示し（ステップ２０５）、ステップ２０６に移行する。  
ステップ２０６では、１画面表示が完了したか判断し、完了してなければ、ステップ２１２に移行し、「表示中ネット番号」のレジスタを「１」インクリメントしてステップ２０１に戻り、前述した処理を実行する。
【００２２】
１画面表示が完了すると、この画面に表示しているラダープログラムで使用されている接点、コイルの信号状態を信号メモリ１４より読み出し（ステップ２０７）、読み出した信号状態に応じて、画面表示中のラダープログラムの各接点、コイルのＯＮ／ＯＦＦ状態表示を更新する（ステップ２０８）。
【００２３】
そして、スクロール指令が入力されたか（ステップ２０９）、また新たにプログラム選択切換があったかを判断し（ステップ２１０）、共に入力がなければ、ステップ２０７に戻りステップ２０７〜２１０の処理を繰り返し実行する。  
スクロール指令が入力されたときには、スクロール処理を行う。スクロールアップの場合には、「表示中ネット番号」を１進め、そのネット番号を追加表示のネット番号としてステップ２０２に戻る。また、スクロールダウン指令の場合は、スクロールダウンし、「表示中ネット番号」を１減じるとともに現在表示中の最小ネット番号より１つ小さいネット番号を追加表示ネット番号としてステップ２０２に移行する。こうしてスクロール指令が入力されると表示画面がスクロールされ、かつ、非実行状態のサブプログラムのラダー図は低輝度で表示され、それ以外は通常の輝度でラダー図が描画されることになる。
【００２４】
一方、モニタ装置２０の下面に表示されたプログラム一覧から別のプログラム（メインプログラム、そのレベル、サブプログラム等）が選択された場合（ステップ２１０）、ステップ２００に戻り、この選択プログラムの開始ネット番号より前述したようにラダー図の表示が開始される。
【００２５】
図７は、サブプログラムＰ１が選択されそのラダー図を表示した例であり、この場合、このサブプログラムＰ１は実行されていないことから（現在実行状態のサイクルより１つ前のサイクルで実行されていない）、低輝度でこのサブプログラムＰ１に対応するラダー図が表示されているものである。図７はこの低輝度であることを示すために、破線で表している。図１１に示す従来例における、同じ画面の表示例と比較し、本実施形態による表示の図７において、サブプログラムＰ１のラダー図が低輝度（破線）で表示されている点が相違するものである。
【００２６】
また、図８は、この画面のラダー図を拡大表示させたときの図で、サブプログラムＰ１の部分だけが低輝度（破線）で他の部分は通常の輝度（実線）で表示されている。この図８と同じ画面の従来例である図１２と比較して明らかのように、図１２に示す従来の例では、全てのラダー図が同一の輝度（実線）で表示されているが、図８は、この実施されているサブプログラムＰ１の部分だけが低輝度（破線）で表示されている。
【００２７】
即ち、図９（ａ）に示しているように、サブプログラムＰ１が実行されていれば、該サブプログラムのラダー図の表示は通常の輝度で表示され、図９（ｂ）に示すように、実行されていないサブプログラムＰ２のラダー図の表示は、低輝度（破線）で表示されるものである。また、図１０では、サブプログラムＰ２が実行され、該サブプログラムＰ２のラダー図だけは、実行されていない他のサブプログラムと区別するために、太線で表している。  
なお、図７、図８、図９において符号ａは図１１，図１２と同じように動作している接点を示している。
【００２８】
上述した実施形態では、表示したラダー図の輝度を変えることによって、実行状態のサブプログラムと非実行のサブプログラムとを判別可能にしたが、輝度を変える代わりに表示色によって判別可能にしてもよいものである。または、非実行のサブプログラムの部分に対しては背景色を変えるようにしてもよい。要するに、実行しているサブプログラムのラダー図と非実行のサブプログラムのラダー図では、表示形態を変えて実行／非実行を判別可能に表示するようにする。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態のプログラマブルコントローラの要部ブロック図である。
【図２】同実施形態におけるシーケンスプログラムの実行処理のフローチャートである。
【図３】同実施形態おけるシーケンスプログラム表示処理のフローチャートである。
【図４】同実施形態におけるサブプログラム情報テーブルの説明図である。
【図５】同実施形態におけるサブプログラム実行状態ワークメモリの説明図である。
【図６】同実施形態におけるサブプログラム実行状態メモリの説明図である。
【図７】同実施形態におけるにおけるシーケンスプログラム表示画面の一例である。
【図８】同実施形態におけるラダー図を拡大表示したときの一例である。
【図９】実行状態のサブプログラムと非実行状態のサブプログラムのラダー図表示における区別を説明する説明図である。
【図１０】ラダー図の一例である。
【図１１】従来のプログラマブルコントローラにおけるシーケンスプログラム表示画面の一例である。
【図１２】従来のプログラマブルコントローラにおけるラダー図を拡大表示したときの一例である。
【符号の説明】
【００３０】
１０  プログラマブルコントローラ
２０  モニタ装置
３０  バス
【図１】
2006092441.tif 000003
【図２】
2006092441.tif 000004
【図３】
2006092441.tif 000005
【図４】
2006092441.tif 000006
【図５】
2006092441.tif 000007
【図６】
2006092441.tif 000008
【図７】
2006092441.tif 000009
【図８】
2006092441.tif 000010
【図９】
2006092441.tif 000011
【図１０】
2006092441.tif 000012
【図１１】
2006092441.tif 000013
【図１２】
2006092441.tif 000014
【手続補正書】
【提出日】平成17年10月24日(2005.10.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
図３は、モニタ装置２０のプロセッサ２１が実施するシーケンスプログラムの表示処理のフローチャートである。  
シーケンスプログラム表示指令が入力されると、図７に示すようにモニタ画面をシーケンスプログラムリスト表示に切換表示する。そして、「表示中ネット番号」を記憶するレジスタに、選択されているプログラムの開始ネット番号をセットする（ステップ２００）。通常は最初、全プログラムが選択されていることから、この「表示中ネット番号」に「１」がセットされていることになる。しかし、すでにサブプログラムやメインプログラムのレベル番号が選択されている場合には、そのプログラムの開始ネット番号がセットされることになる。サブプログラムの場合には、図４で示したサブプログラム情報テーブル１３ｂより、選択されたサブプログラムの開始ネット番号が読み出され、セットされることになる。また、メインプログラムをレベル分けしたときはそのレベルの開始ネット番号を予めセットし記憶させておき、選択レベル番号に対応する設定された開始ネット番号をこの「表示中ネット番号」にセットすることになる。なお、図７に示す例では、サブプログラムＰ１が選択されている例を示している。