(57)【特許請求の範囲】
【請求項１】
ＰＬＣと通信を介して接続可能とされ、かつ前記ＰＬＣ上で実行されている制御プログラムの一部を実行中に編集するオンライン編集機能が組み込まれた制御プログラム開発支援装置であって、
制御プログラムを表すラダー図上においてユーザの選択操作を受け付けるための選択操作受付手段と、
前記選択操作受付手段にて受け付けれられた選択操作による選択対象がラダー図を構成する１つの又は一連の回路か、それとも１つの回路を構成する回路要素かを判定する選択対象判定手段と、
前記判定手段により１つの又は一連の回路であると判定されたときには、その選択された１つの又は一連の回路に対応する制御プログラムのオブジェクトサイズが、オンライン編集機能実現に必要な所定の上限サイズを超えないときに限り、その選択された１つの又は一連の回路をオンライン編集の対象回路として決定する第１の編集対象決定手段と、
前記判定手段により１つの回路を構成する回路要素と判定されたときには、その回路要素の属する１つの回路を含みかつ対応する制御プログラムのオブジェクトサイズが、前記上限サイズとなる一連の回路をオンライン編集の対象回路として決定する第２の編集対象決定手段とを含む、ことを特徴とする制御プログラムの開発支援装置。
【請求項２】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される一連の回路の先頭には、前記選択された回路要素が属する１つの回路が配置される、ことを特徴とする請求項１に記載の制御プログラムの開発支援装置。
【請求項３】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される、オンライン編集機能実現に必要な所定の上限サイズを有する一連の回路は、前記選択された回路要素の属する１つの回路から順に一つずつ隣接回路をオンライン編集の対象候補として加えつつ、各回路に対応する制御プログラムのオブジェクトサイズを積算する動作を、その積算値が前記上限サイズを超えるに至る手前まで繰り返すことにより取得される、ことを特徴とする請求項１に記載の制御プログラムの開発支援装置。
【請求項４】
前記第２の編集対象決定手段は、選択された回路要素に基づいてオンライン編集の対象回路として決定される一連の回路を、制御プログラムを表すラダー図上に他の回路と区別できるように表示する機能が組み込まれている、ことを特徴とする請求項１に記載の制御プログラムの開発支援装置。
【請求項５】
コンピュータを、
制御プログラムを表すラダー図上においてユーザの選択操作を受け付けるための選択操作受付手段と、
前記選択操作受付手段にて受け付けれられた選択操作による選択対象がラダー図を構成する１つの又は一連の回路か、それとも１つの回路を構成する回路要素かを判定する選択対象判定手段と、
前記選択対象判定手段により１つの又は一連の回路であると判定されたときには、その選択された１つの又は一連の回路に対応する制御プログラムのオブジェクトサイズが、オンライン編集機能実現に必要な所定の上限サイズを超えないときに限り、その選択された１又は一連の回路をオンライン編集の対象回路として決定する第１の編集対象決定手段と、
前記選択対象判定手段により１つの回路を構成する回路要素と判定されたときには、その回路要素の属する１つの回路を含みかつ対応する制御プログラムのオブジェクトサイズが、前記上限サイズとなる一連の回路をオンライン編集の対象回路として決定する第２の編集対象決定手段とを含み、
ＰＬＣと通信を介して接続可能とされ、かつ前記ＰＬＣ上で実行されている制御プログラムの一部を実行中に編集するオンライン編集機能が組み込まれた制御プログラム開発支援装置、として機能させるためのコンピュータプログラム。
【請求項６】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される一連の回路の先頭には、前記選択された回路要素が属すこる１つの回路が配置される、ことを特徴とする請求項５に記載のコンピュータプログラム。
【請求項７】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される、オンライン編集機能実現に必要な所定の上限サイズを有する一連の回路は、前記選択された回路要素の属する１つの回路から順に一つずつ隣接回路をオンライン編集の対象候補として加えつつ、各回路に対応する制御プログラムのオブジェクトサイズを積算する動作を、その積算値が前記上限サイズを超えるに至る手前まで繰り返すことにより取得される、ことを特徴とする請求項５に記載のコンピュータプログラム。
【請求項８】
前記第２の編集対象決定手段は、選択された回路要素に基づいてオンライン編集の対象回路として決定される一連の回路を、制御プログラムを表すラダー図上に他の回路と区別できるように表示する機能が組み込まれている、ことを特徴とする請求項５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＰＬＣと通信を介して接続可能とされ、かつＰＬＣ上に実行されている制御プログラムの一部を実行中に編集するオンライン編集機能が組み込まれた制御プログラム開発支援装置に関する。
【背景技術】
【０００２】
プログラマブル・コントローラ（以下、ＰＬＣと言う）と通信を介して接続可能とされ、かつＰＬＣ上で実行されている制御プログラムの一部を実行中に編集するオンライン編集機能が組み込まれた制御プログラム開発支援装置は従来から知られている。
【０００３】
この種の開発支援装置は、一般的に、制御プログラム作成機能、編集機能、ＰＬＣへのアップロード機能、ＰＬＣからのダウンロード機能、ＰＬＣで実行しているプログラムのモニタ機能等々のようなさまざまな機能が組み込まれており、それらの機能の１つとして、本発明に係るオンライン編集機能が含まれている。
【０００４】
それら様々な機能は、一般に、パーソナルコンピュータ（以下、単にパソコンと言う）にそれぞれ専用のソフトウェアを組み込むことで実現されており、ユーザは、パソコンに備えられたディスプレイ、マウス、キーボードなどを介して、入出力操作を行う。
【０００５】
オンライン編集機能が起動されると、パソコンのディスプレイ上には、ユーザにより作製された、又はＰＬＣからダウンロードされた制御プログラムに相当するラダー図が表示される。このラダー図は、複数の「回路」を含んで構成される。ここで「回路」とは、論理的な意味を持つラダープログラムの最小単位を示す。
【０００６】
ラダー図を構成する様々な回路例の説明図が図１３に示されている。同図に示されるように、ラダー図を構成する「回路」としては、同図（ａ）に示される入力と出力が１対１に対応するもの、同図（ｂ）に示される入力と出力が１：ｎに対応するもの、同図（ｃ）に示される入力と出力がｎ：１に対応するもの、同図（ｄ）に示される入力と出力がｎ：ｎに対応するもの、同図（ｅ）に示される接点と命令の組み合わせとなるもの、及び同図（ｆ）に示される命令のみのもの等々が存在する。
【０００７】
ユーザは、パソコンのディスプレイに表示されたラダー図の中から、オンライン編集の対象となる１つの又は一連の回路を決定せねばならない。この編集対象となる回路の決定は、例えばキーボードやマウスを用いて、縦横の長さが自在に変更可能とされた矩形カーソルを用い、１つの回路、一連の回路、１つの回路を構成する１回路要素のいずれかを選択することにより行われる。
【０００８】
回路が選択されたときの表示例を示す説明図が図１４に示されている。同図（ａ）に示されるように、１つの回路が選択される場合、その選択される１回路は、矩形カーソル４０１によって囲まれる。また、同図（ｂ）に示されるように、複数の回路が選択される場合には、それらの回路は同様な矩形カーソル４０２によって囲まれる。
【０００９】
なお、図１４（ａ），（ｂ）に破線で示されているように、選択操作の途中におけるカーソル４０１，４０２は、未決定の状態を示す所定の表示態様とされる。一方、選択操作が完了（例えば、ダブルクリック、所定のキー操作等々）した後、こうして選択された１つの回路又は一連の回路が、編集対象回路として決定されると、それらの矩形カーソルは決定されたことを示す所定の表示態様とされる。
【００１０】
一方、オンライン編集機能は、原則として回路単位で行うものであるから、１つの回路を構成する回路要素がオンライン編集対象として決定されることは好ましくない。ここで、回路要素とは、ラダープログラムを構成する接点、コイル、命令語、接続線などを意味する。
【００１１】
そこで、図１５（ａ）に示されるように、１つの回路を構成する回路要素が矩形カーソル４０３で選択されたような場合には、図１５（ｂ）に示されるように、１つの回路要素から自動的にその要素の属する１つの回路が編集対象として選択され、それを囲むように矩形カーソル４０４が表示され、その後、図中実線で示されるように、編集対象回路として決定される。
【００１２】
ところで、オンライン編集機能の実行は、ＰＬＣが制御プログラム実行中にその制御プログラムを書き換えるため、ＰＬＣのサイクルタイムを増加させる要因となる。そのためオンライン編集（オンラインエディットとも呼ばれる）機能の実行にともなうサイクルタイムへの影響を考慮したＰＬＣ上のオンラインエディット実行の仕組みが提案されている（例えば特許文献１参照）。一方、サイクルタイムへの影響を小さくするため制御プログラム開発支援装置側で制限を設ける場合がある。具体的には、オンライン編集が可能な回路数に上限を設けるというものである。これは、オンライン編集機能を実現するためには、ＰＬＣのサイクルタイム内でラダープログラムの変更処理を完了させる必要から、１回のオンライン編集で変更できるプログラムのサイズに制限を生ずること、ＰＬＣのサイクルタイム内で変更処理を完了させるために、プログラム書き込みコマンドの受信処理を１サイクル内で完了させる必要から、プログラム書き込みコマンドのフレームサイズに制限を生じること、などからであり、これらの制限サイズはＰＬＣの機種及び伝送経路の種別により異なるのが通例である。
【００１３】
そのため、図１６に示されるように、矩形カーソル４０５によって、上限を超える回路が選択されようとした場合、図１７に示されるように、上限を超える回路が選択されて、オンライン編集ができない旨の警告が行われる。
【特許文献１】特開平１１−２４９８８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、このような従来のオンライン編集機能を有する制御プログラム開発支援装置にあっては、
（１）選択しようとした回路数がたまたまその上限を超えていた場合、ユーザは再度回路数を減らして選択操作をやり直せねばならないこと、
（２）大規模な回路を複数に分割してオンライン編集を行う場合、選択可能な最大回路数が明示されていないため、上限を超えた場合のやり直しを避けようとして、ユーザは選択可能な上限よりも少ない回路数を選択しがちとなり、その結果分割数が増大すること、
（３）１つの回路上のある回路要素に矩形カーソルが位置する状態で、回路選択機能を作動させた場合、その回路要素が属する１つの回路のみが編集対象として決定されるため、ユーザは複数回路を一度に選択できることに気がつきにくいこと、
といった問題点があった。
【００１５】
この発明は、従来の制御プログラムの開発支援装置における上述の問題点に着目してなされたものであり、その目的とするところは、この種のオンライン編集機能を備えたＰＬＣの制御プログラム開発支援装置において、編集対象となる回路を選択する際の操作性を向上させることにある。
【００１６】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００１７】
上述の発明が解決しようとする課題は、以下の構成を有するＰＬＣの制御プログラムの開発支援装置によって解決することができると考えられる。
【００１８】
すなわち、この制御プログラム開発支援装置は、ＰＬＣと通信を介して接続可能とされ、かつ前記ＰＬＣ上で実行されている制御プログラムの一部を実行中に編集するオンライン編集機能が組み込まれたものであることを前提とする。
【００１９】
この制御プログラム開発支援装置には、制御プログラムを表すラダー図上においてユーザの選択操作を受け付けるための選択操作受付手段と、前記選択操作受付手段にて受け付けられた選択操作による選択対象がラダー図を構成する１つの又は一連の回路か、それとも１つの回路を構成する回路要素かを判定する選択対象判定手段と、前記判定手段により１つの又は一連の回路であると判定されたときには、その選択された１つの又は一連の回路に対応する制御プログラムのオブジェクトサイズが、オンライン編集機能実現に必要な所定の上限サイズを超えないときに限り、その選択された１つの又は一連の回路をオンライン編集の対象回路として決定する第１の編集対象決定手段と、前記判定手段により１つの回路を構成する回路要素と判定されたときには、その回路要素の属する１つの回路を含みかつ対応する制御プログラムのオブジェクトサイズが、前記上限サイズとなる一連の回路をオンライン編集の対象回路として決定する第２の編集対象決定手段とを含んでいる。
【００２０】
このような構成によれば、ユーザが回路単位でオンライン編集の対象回路を選択しようとした場合には、その選択しようとする回路数がその上限を超えない限り、選択しようとする回路数がそのままオンライン編集の対象回路として決定されるから、ユーザは一の回路のみならず任意の複数回路をオンライン編集の対象回路として決定することができる。
【００２１】
また、ユーザが１つの回路を構成する任意の回路要素を選択したままで、オンライン編集の対象回路を選択しようとすると、その選択された回路要素が属する１つの回路のみならず、それに隣接する一連の複数回路が選択可能な最大数に至るまで自動的に選択されるため、この自動選択機能を利用すれば、大規模な回路を複数に分割してオンライン編集を行うような場合、その分割数が最小となり、オンライン編集を効率よく実行することができる。
【００２２】
しかも、１つの回路を構成する任意の回路要素を選択して、オンライン編集の対象回路を選択しようとした場合、意図せずして、複数の回路が自動的に選択、決定されるから、この自動選択動作を通じて、ユーザは１つの回路のみならず複数の回路を同時に選択して、オンライン編集を行えることを学習することができる。
【００２３】
その結果、本発明の制御プログラムの開発支援装置によれば、オンライン編集の対象回路を決定するに際し、その操作性を格段に向上させることができる。
【００２４】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される一連の回路の先頭には、前記選択された回路要素が属する１つの回路が配置されるようにしてもよい。別の表現をすれば、前記選択された回路要素が属する１つの回路を先頭回路として、オンライン編集の対象回路となる一連の回路を決定するようにしてもよい。
【００２５】
このような構成によれば、選択可能な最大回路数をもって、一連の回路をオンライン編集の対象回路として決定したいような場合、先頭の回路のいずれかの回路要素を選択することによって、その回路要素が属する１つの回路に連なる一連の回路をその最大回路数に至るまで選択できるから、編集しようとする一群の回路を編集対象回路として誤りなく設定することができる。
【００２６】
前記第２の編集対象決定手段において、オンライン編集の対象回路として決定される、オンライン編集機能実現に必要な所定の上限サイズを有する一連の回路は、前記選択された回路要素の属する１つの回路から順に１つずつ隣接回路をオンライン編集の対象候補として加えつつ、各回路に対する制御プログラムのオブジェクトサイズを積算する動作を、その積算値が前記上限サイズを超えるに至る手前まで繰り返すことにより取得されるようにしても良い。
【００２７】
このような構成によれば、選択可能な最大回路数に至る一連の回路を、オンライン編集の対象回路として確実に過不足なく決定することができる。
【００２８】
前記第２の編集対象決定手段は、選択された回路要素に基づいてオンライン編集の対象回路として決定される一連の回路を、制御プログラムを表すラダー図上に他の回路と区別できるように表示する機能が組み込まれていても良い。
【００２９】
このような構成によれば、意図せずして選択された一連の回路を、ユーザに対して確実に認識させることができる。
【００３０】
以上述べた一連の本発明は、別の一面から見れば、そのような機能を実現するためのコンピュータプログラムとして把握することもできる。
【発明の効果】
【００３１】
以上、本発明によれば、この種のオンライン編集機能の組み込まれたプログラム開発支援装置において、オンライン編集の対象となる回路を決定するための操作が簡略化され、その分だけオンライン編集の作業能率を向上させることができる。
【発明を実施するための最良の形態】
【００３２】
以下に、本発明に係るＰＬＣの制御プログラムの開発支援装置、及び同装置を実現するためのコンピュータプログラムの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００３３】
本発明が適用されるＰＬＣシステムの構成図が図１に示されている。同図に示されるように、このＰＬＣシステムは、本発明が適用される制御プログラム開発支援装置１とＰＬＣ２とを通信手段３を介して接続して構成されている。
【００３４】
図示例においては、制御プログラム開発支援装置１は、パソコンに制御プログラム開発支援装置に必要な各種の機能を実現するためのソフトウェアをインストールして構成されている。
【００３５】
また、ＰＬＣ２は、図示例では、電源ユニット２１、ＣＰＵユニット２２、入出力ユニット２３、及び通信ユニット２４とを備えたビルディング・ブロック型のものとして構成されている。ＰＬＣを構成する他のユニットとしては、モーション制御専用のユニットやプロセス制御専用のユニットのように特別な機能を果たす特殊機能ユニットがある。
【００３６】
制御プログラム開発支援装置のハードウェア構成図が図２に示されている。同図に示されるように、制御プログラム開発支援装置１は、パソコン本体１１、ディスプレイ１２、キーボード１３、及びポインティングデバイス１４を含んで構成されている。
【００３７】
パソコン本体１１は、ＣＰＵ１１ａ、ハードディスクドライブ１１ｂ、メモリ１１ｃ、及びＣＯＭポート（シリアル通信用）１１ｄをシステムバス１１ｅで結んで構成されている。ＣＰＵ１１ａは、ハードディスクドライブ１１ｂに格納された制御プログラム開発支援装置として必要な各種のソフトウェアを読み出すと共に、これをメモリ１１ｃをワークエリアとして実行することによって、制御プログラム開発支援装置としての各種の機能を実現可能とされている。また、ＣＰＵ１１ａは、ＣＯＭポート１１ｄを介してＰＬＣ２と通信を行う。
【００３８】
それらの機能の中で、本発明に係るオンライン編集機能が実現されると、ディスプレイ１２には、先に図１３〜図１７を参照して説明したように、制御プログラムの内容に対応したラダー図が表示され、その状態で、キーボード１３及びポインティングデバイス（例えば、マウスなど）１４をユーザが操作することによって、パソコンとユーザとの対話が可能となされている。
【００３９】
次に、ＰＬＣ２の基本的な構成について説明する。ＣＰＵユニット２２、入出力ユニット２３、及び通信ユニット２４は、電源ユニット２１から給電されて動作する。入出力ユニット２３は、外部入出力端子と入出力バスとの間で入出力データの交換を行う入出力回路を内蔵する。通信ユニット２４は、他のＰＬＣあるいはリモートＩＯターミナルなどとの間で通信を行うための通信回路を内蔵する。
【００４０】
一方、ＣＰＵユニット２２は、ＰＬＣ２の全体を統括制御するものであり、その内部には、マイクロプロセッサとＡＳＩＣとを主体として構成されたＣＰＵと、ユーザの作成した制御プログラムを格納するユーザメモリと、入出力ユニット２３の入出力データのバッファエリアとなる入出力メモリなどが内蔵されている。
【００４１】
そして、ＣＰＵに含まれるマイクロプロセッサは、図３に示される基本処理を実行することによって、ＰＬＣとしての各種の機能を実現する。
【００４２】
ＰＬＣの基本処理の全体を示すフローチャートが図３に示されている。同図に示されるように、ＰＬＣの基本処理の全体は電源ＯＮ時処理（ステップ１０１）と、共通処理（ステップ１０２）と、演算処理（ステップ１０３）と、Ｉ／Ｏリフレッシュ処理（ステップ１０４）と、周辺サービス処理（ステップ１０５）とを含んで構成される。
【００４３】
電源ＯＮ時処理（ステップ１０１）は、いわゆる電源オン直後のイニシャル処理であって、例えば、ハードメモリ／システムワークの初期化、実装されているユニットの認識、ユーザメモリ（ＵＭ）チェックなどの各種の処理が、この電源ＯＮ時処理（ステップ１０１）で実行される。
【００４４】
共通処理（ステップ１０２）は、ＰＬＣの様々なモード（図示例では運転モードのみを代表的に示す）において共通の処理であって、例えば、バッテリ異常チェック、ディップスイッチ監視、Ｉ／Ｏバスチェック、ユーザプログラムのメモリチェック、などの処理が実行される。
【００４５】
演算処理（ステップ１０３）においては、運転中処理としてユーザプログラムの実行処理を、異常中処理として出力をオフさせる処理などが実行される。ここで、ユーザプログラムの実行とは、入出力メモリのデータを参照して、ユーザプログラム（制御プログラム）を構成する各命令語を順次実行すると共に、その実行結果により、入出力メモリの出力データを書き換えるといった処理である。
【００４６】
Ｉ／Ｏリフレッシュ処理（ステップ１０４）は、入出力ユニット２３（図１参照）の外部端子から取り込まれた入力データで、入出力メモリの入力エリアの内容を書き換えると共に、入出力メモリの出力エリアのデータを入出力ユニット２３の出力端子へと送出する処理である。
【００４７】
周辺サービス処理（ステップ１０５）は、特殊機能ユニットとのイベントサービス、ＲＳ−２３２Ｃポートサービス、ファイルアクセスサービス、通信ポートサービスなどを実行するものである。そして、この周辺サービス処理（ステップ１０５）において、オンライン編集機能実現のためのプログラム書き込みコマンドの受信、プログラムデータの更新などが実行される。
【００４８】
ここで、共通処理（ステップ１０２）、演算処理（ステップ１０３）、Ｉ／Ｏリフレッシュ処理（ステップ１０４）、及び周辺サービス処理（ステップ１０５）からなる一連の処理を一巡実行する時間を、一般にサイクルタイムと称する。そして、オンライン編集処理を実行するためには、プログラム書き込みコマンドの受信、プログラムデータの更新などは、このサイクルタイム内で完結せねばならないことから、後述するように、プログラム書き込みコマンドのフレームサイズの制限が生ずるのである。
【００４９】
プログラム書き込みコマンドのフォーマットを示す説明図が図４に示されている。同図に示されるように、プログラム書き込みコマンドは、送信先アドレス、送信元アドレス、コマンドコード、コマンドデータを含んで構成される。そして、コマンドコードには、プログラム書き込みコマンドが格納され、コマンドデータにはプログラムデータが格納される。このような構成からなるプログラム書き込みコマンドが、制御プログラム開発支援装置１からＣＰＵユニット２２へと送信され、これが周辺サービス処理１０５で受信されて、オンライン編集処理のためのプログラムデータの更新処理が行われるのである。
【００５０】
次に、制御プログラム開発支援装置１において実行されるオンライン編集処理の全体を示すフローチャートが図５に示されている。同図に示されるように、オンライン編集処理の全体は、編集対象回路を決定するためのオンライン編集開始処理（ステップ２１）と、決定された編集対象回路に対して行われる回路の編集処理（ステップ２２）と、編集が完了した回路を、ＰＬＣ２へと転送する変更転送処理（ステップ２３）とを含んでいる。
【００５１】
オンライン編集開始処理（ステップ２１）の詳細が図６のフローチャートに示されている。同図において、処理が開始されると、まず入力判定処理（ステップ２１１）が実行される。
【００５２】
この入力判定処理（ステップ２１１）においては、図７に示されるように、一連の処理（ステップ２１１１〜２１１５）が実行される。すなわち、最初の処理（ステップ２１１１）においては、入力装置（ポインティングデバイス１４やキーボード１３）から入力されたカーソル位置を取得する。続くステップ２１１２においては、取得されたカーソル位置を、図９に示されるように、マトリクス化されたウィンドウ上の位置に変換して、これにより選択位置を取得する。図９から明らかなように、選択位置は、座標（Ａｋ，Ｂｋ）（ｋ＝１，２，３，・・・ｎ）として表される。
【００５３】
続くステップ２１１３においては、座標（Ａｋ，Ｂｋ）で表される選択位置に基づき、図９のマトリクスに示されるＡ１列上にカーソルが存在するか否かを判定する。ここで、Ａ１列上にカーソルが存在すると判定される場合には（ステップ２１１３ＹＥＳ）、ステップ２１１４へ進んで、Ａ１列のセルを含む回路を、選択された回路として、選択中回路情報を保持する。これに対して、Ａ１列上にカーソルが存在しないと判定される場合には（ステップ２１１３ＮＯ）、ステップ２１１５へ進んで、回路ではなく要素（回路要素）が選択されているとして、選択中要素情報を保持する。なお、このような処理を行うのは、例えば、図９のマトリクスにおいて、Ｂ２、Ｂ３、Ｂ４列に存在する回路を選択する場合、ユーザはまずＡ１列上のＢ２行に置かれたカーソルを、同Ａ１列のＢ４行まで３行分ドラッグするように取り決められているからである。
【００５４】
図６に戻って、入力判定処理（ステップ２１１）が終了すると、続いて、入力判定処理（ステップ２１１）で保持された選択中回路情報又は選択中要素情報に基づいて、選択されたのが回路であるか否かが判定される（ステップ２１２）。
【００５５】
ここで、選択されたのが回路であると判定されると（ステップ２１２ＹＥＳ）、選択された回路のサイズ、すなわち選択された回路をＰＬＣ２が実行可能なオブジェクトコードに変換した場合のオブジェクトサイズが公知の手法で計算された後（ステップ２１４）、こうして選択された回路が図４に示されるプログラム書き込みコマンドの１フレーム分のコマンドデータ送信容量に収まるか否かが判定される（ステップ２１５）。
【００５６】
ここで、選択された回路が上述のオブジェクトサイズとして１フレーム分のコマンドデータ送信容量に収まると判定されれば（ステップ２１５ＹＥＳ）、選択された回路は、編集対象回路として決定され、これにより画面上の矩形フレームは、決定（確定）状態を示す所定の表示態様になるのに対し、選択された回路が１フレームに収まらないと判定されると（ステップ２１５ＮＯ）、先に図１７を参照して説明したように、選択範囲の異常警告表示が行われる（ステップ２１７）。
【００５７】
一方、選択されたのが回路ではない（すなわち、回路要素である）と判定されると（ステップ２１２ＮＯ）、本発明の要部の１つである編集対象回路自動選択処理（ステップ２１３）が実行される。
【００５８】
編集対象回路自動選択処理を示すフローチャートが図８に示されている。同図に示されるように、この編集対象回路自動選択処理は、ステップ２１３１〜２１３８からなる一連の処理から構成されている。
【００５９】
まず、ステップ２１３１においては、対象ＰＬＣの機種及び伝送経路の種別からプログラム書き込みコマンドで送信可能なフレームサイズが取得される。先に説明したように、オンライン編集機能を実現するためには、図３に示されるＰＬＣの基本処理の全体を示すフローチャートにおいて、サイクルタイム内でラダープログラムの変更処理を完了させる必要があるため、１回のオンライン編集で変更できるプログラムのサイズに制限を生じる。また、１サイクルタイム内で変更処理を完了させるために、プログラム書き込みコマンドの受信処理を１サイクルタイム内で完了させる必要がある。そのため、プログラム書き込みコマンドのフレームサイズの制限が生じる。これらの制限サイズはＰＬＣの機種及び伝送経路の種別により異なる。このことから、ステップ２１３１の処理が存在するのである。
【００６０】
続くステップ２１３２では、入力判定処理（ステップ２１１）で取得した選択中要素情報から、要素が属する回路を取得する。例えば、図９のマトリクスにおいて、回路要素（Ａ２，Ｂ２）が選択された場合、その回路要素が属する１つの回路、すなわちＢ２行のＡ１列〜Ａｎ列に存在する回路情報がすべて取得される。
【００６１】
続くステップ２１３３においては、回路中のラダープログラムをニモニック（文字列情報）に変換する。なお、この変換のためには、図示しないが、要素コードとニモニック（文字列情報）との変換テーブルが利用される。
【００６２】
続くステップ２１３４では、ニモニックをオブジェクトコード（ＰＬＣが理解できる機械語）に変換したときのオブジェクトサイズを、制御プログラム開発支援装置内に持つ変換テーブル（図１０参照）から取得する。図１０から明らかなように、このオブジェクトサイズ取得用テーブルにおいては、各ニモニックとそのオブジェクトサイズとが関連付けて記憶されている。
【００６３】
その後、ステップ２１３５において、オブジェクトサイズが制限フレームサイズ以下（所定の上限を超えていないこと）であるか否かの判定が行われる。すなわち、このステップ２１３５においては、選択された全回路の中で、最初の回路のオブジェクトサイズが制限フレームサイズ以下であるか否かが判定される。
【００６４】
ここでオブジェクトサイズが制限フレームサイズ以下であると判定されれば（ステップ２１３５ＹＥＳ）、ステップ２１３６に進んで、その回路は編集対象回路として決定して保持した後、ステップ２１３７において次の回路を編集対象に加えては、以上一連の処理（ステップ２１３３〜２１３６）が繰り返し実行される。これにより、選択された一連の回路は、先頭回路から順次編集対象回路に加えられていくこととなる。
【００６５】
その間に、ステップ２１３５において、オブジェクトサイズが制限フレームサイズを超えたと判定されると（ステップ２１３５ＮＯ）、その時点で編集対象として決定されて保持された回路がディスプレイ上のラダープログラムウィンドウ上に明示（他の回路と区別可能に表示）されることとなる。
【００６６】
つまり、以上説明した一連の処理（ステップ２１３１〜２１３８）が実行される結果、選択された回路要素の属する１つの回路から順に１つずつ隣接回路をオンライン編集の対象候補として加えつつ、各回路に対応する制御プログラムのオブジェクトサイズを積算する動作を、その積算値が上限サイズを超えるに至る手前まで繰り返すことにより、オンライン編集機能実現に必要な所定の上限サイズを有する一連の回路が、オンライン編集の対象回路として決定されるのである。
【００６７】
こうしてオンライン編集の対象回路として決定された一連の回路は、その先頭には、選択された回路要素が属する１つの回路が配置されることとなるため、ユーザ操作としては、例えばある程度の規模のある一連の回路をオンライン編集の対象回路として決定したいような場合、その一連の回路の最初の回路のいずれかの回路要素に、例えば図１１に示されるように矩形カーソル３０１を当てて選択操作を行えば、図１２に示されるように、その選択された回路要素が属する１つの回路を先頭回路とし、かつそれに続く許容最大回路数分の一連の回路が、矩形カーソル３０２によって囲まれた状態で、その一連の回路が編集対象回路として決定されるのである。
【００６８】
図５に戻って、オンライン編集開始処理（ステップ２１）が終了したならば、公知の手法により、その編集対象として決定された回路について編集処理が行われ（ステップ２２）、続いて変更が終了した回路に対応する一連のオブジェクトコードは、プログラム書き込みコマンドのコマンドデータとして格納されて、目的とするＰＬＣ２へと転送される（ステップ２３）。
【００６９】
すると、図３を参照して先に説明したように、周辺サービス処理（ステップ１０５）において、プログラム書き込みコマンドの受信及びプログラムデータの更新が行われ、いわゆるオンライン編集機能が実現されるのである。
【００７０】
以上説明した本発明によれば、図１１及び図１２に示されるように、１つの回路を構成するいずれかの回路要素を矩形カーソル３０１で選択すれば、その回路要素が属する１つの回路を含む一連の許容最大選択数分の回路が自動的に選択対象回路として決定されて、矩形カーソル３０２により他の回路と識別可能に表示されるから、このような機能を知っているユーザにあっては、例えば大規模な回路を複数に分割してオンライン編集を行いたいような場合、その大規模回路の先頭に位置する１つの回路のいずれかの回路要素に矩形カーソル３０１を合わせて、所定の選択操作を行うだけで、許容最大選択数分の回路について、オンライン編集を行うことができるから、以上を繰り返すことによって、最小分割数をもって最短時間でその大規模回路に関するオンライン編集を実現することができ、従前のものに比べその作業能率を格段に向上させることができる。
【００７１】
すなわち、先に説明したように、従前の方法にてこのような大規模回路の分割編集を行おうとすると、選択可能な最大回路数を知り得ないことから、その選択回路数の上限よりも少なめに回路数を設定して、より多い分割数をもって、オンライン編集を繰り返すこととなり、その結果作業能率が低下するのに対し、本発明にあっては、許容最大数分をもって毎回一連の回路を編集対象として決定できるため、無駄のない能率のよいオンライン編集が可能となるのである。
【００７２】
また、このような便利な機能を知らずとも、たまたまいずれかの回路要素に矩形カーソル３０１を当てた状態で、所定の選択操作を行えば、図１２に示されるように、一連の複数回路が自動的に編集対象として選択及び決定されるから、このような動作を観察することによって、ユーザは、１つの回路のみならずそれに続く一連の複数の回路を同時にオンライン編集対象として選択及び決定できることを学習することができる。
【００７３】
そのため、そのように学習したユーザは、従来より備え付けられている回路単位での選択機能を利用することによって、先に図１４（ｂ）を参照して説明したように、回路単位で複数の回路を意識して選択するようになるであろう。
【００７４】
つまり、従来方法によれば、先に図１５を参照して説明したように、矩形カーソル４０３がいずれかの回路要素に置かれた状態で、所定の選択操作が行われると、その回路要素を含む１つの回路のみが編集対象として選択及び決定され、矩形カーソル４０４で囲まれて表示されることから、ユーザは、編集対象としての決定は、単一回路でしか行えないと誤解しがちであるのに対し、本発明によれば、図１１及び図１２で説明したように、いずれかの回路要素を矩形カーソル３０１で選択して、所定の選択操作を行えば、図１２に示されるように一連の回路が矩形カーソル３０２で囲まれて表示されることとなるため、このような動作の確認によって、複数回路を同時に選択及び決定できることに容易に気付くこととなるのである。
【００７５】
なお、図１１に示される矩形カーソル３０１は未確定を示す表示態様であり、図１２に示される矩形カーソル３０２は確定状態を示す表示態様とされる。加えて、図１２の例にあっては、矩形カーソル３０２で囲まれた内部領域は、他の領域と区別可能な輝度又は色彩などをもって描かれることとなる。これによりユーザは、一連の回路領域が自動的に選択され及び決定されたことを容易に視認することができる。
【００７６】
なお、以上の実施形態においては、図１２に示されるように、自動的に選択及び決定された領域の先頭回路として、当初選択された回路要素を含む１つの回路が配置されているが、これは本発明の一例を示すものと理解されたい。
【００７７】
その他、選択された回路要素の属する１つの回路を含み、その前後に一連の回路が連続するようにして、選択対象回路を決定するようにしても良いであろう。
【００７８】
このように、選択された回路要素の属する１つの回路を真ん中にして、その前後に所定許容回路数分の回路を連続させるようにすれば、ある特定の１つの回路を中心としてそれを含むおおよその回路を対象としてオンライン編集を行いたいような場合に好適なものとなるであろう。
【産業上の利用可能性】
【００７９】
本発明によれば、この種のオンライン編集機能の組み込まれたプログラム開発支援装置において、オンライン編集の対象となる回路を決定するための操作が簡略化され、その分だけオンライン編集の作業能率を向上させることができる。
【図面の簡単な説明】
【００８０】
【図１】本発明が適用されるＰＬＣシステムの構成図である。
【図２】制御プログラム開発支援装置のハードウェア構成図である。
【図３】ＰＬＣの基本処理の全体を示すフローチャートである。
【図４】プログラム書き込みコマンドのフォーマットを示す説明図である。
【図５】オンライン編集処理の全体を示すフローチャートである。
【図６】オンライン編集開始処理を示すフローチャートである。
【図７】入力判定処理を示すフローチャートである。
【図８】編集対象回路自動選択処理を示すフローチャートである。
【図９】カーソル位置変換用マトリクスの説明図である。
【図１０】オブジェクトサイズ取得用テーブルの説明図である。
【図１１】１回路要素が選択されている場合の表示例を示す説明図である。
【図１２】１回路要素から自動的に複数の回路が編集対象として決定されたときの表示例を示す説明図である。
【図１３】ラダー図を構成する様々な回路例の説明図である。
【図１４】回路が選択されたときの表示例を示す説明図である。
【図１５】回路自動選択の場合の表示例を示す説明図である。
【図１６】上限を超える回路が選択されている途中の表示例を示す説明図である。
【図１７】上限を超える回路が選択されて、オンライン編集ができない旨の警告が行われた場合の表示例を示す説明図である。
【符号の説明】
【００８１】
１      制御プログラム開発支援装置
２      ＰＬＣ
３      通信手段
１１    パソコン本体
１１ａ  ＣＰＵ
１１ｂ  ハードディスクドライブ
１１ｃ  メモリ
１１ｄ  ＣＯＭポート（シリアル通信用）
１１ｅ  システムバス
１２    ディスプレイ
１３    キーボード
１４    ポインティングデバイス
２１    電源ユニット
２２    ＣＰＵユニット
２３    入出力ユニット
２４    通信ユニット
３０１，３０２，４０１，４０２，４０３，４０４，４０５  矩形カーソル
４０６  警告用ウィンドウ
【図１】
0004919092.tif 000002
【図２】
0004919092.tif 000003
【図３】
0004919092.tif 000004
【図４】
0004919092.tif 000005
【図５】
0004919092.tif 000006
【図６】
0004919092.tif 000007
【図７】
0004919092.tif 000008
【図８】
0004919092.tif 000009
【図９】
0004919092.tif 000010
【図１０】
0004919092.tif 000011
【図１１】
0004919092.tif 000012
【図１２】
0004919092.tif 000013
【図１３】
0004919092.tif 000014
【図１４】
0004919092.tif 000015
【図１５】
0004919092.tif 000016
【図１６】
0004919092.tif 000017
【図１７】
0004919092.tif 000018