(57)【特許請求の範囲】
【請求項１】
ＰＬＣのＳＴ形式の制御プログラムを開発するための制御プログラム開発支援装置と、制御プログラム開発支援装置により作成されＳＴ形式の制御プログラムを実行可能なＰＬＣとを含み、制御プログラム開発支援装置とＰＬＣとは通信ケーブルを介して接続され、相互にデータの送受信が可能になされており、
制御プログラム開発支援装置には、
ＳＴ形式の制御プログラムのソースファイルを格納するための第１の記憶手段と、
ＳＴ形式の制御プログラムのオブジェクトファイルを格納するための第２の記憶手段と、
第１の記憶手段に格納されたＳＴ形式の制御プログラムのソースファイルを編集するためのプログラム編集手段と、
編集されたＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトに変換して第２の記憶手段にＳＴ形式の制御プログラムのオブジェクトファイルとして格納するコンパイル手段と、
前記コンパイル手段により変換された制御プログラムのオブジェクトのＰＬＣへの転送、及びＰＬＣからのデータ受信を行うプログラム転送手段と、が設けられており、
前記コンパイル手段は、ＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトへ変換する際に、各命令に対応する一連のオブジェクトの先頭に、ソースファイル上の各命令に相当する文字列を含むコメント命令を付加するという特徴を備え、
ＰＬＣには、
制御プログラム開発支援装置から転送されてくるコメント命令付のＳＴ形式の制御プログラムを受信して、これをプログラムメモリに格納するプログラム受信手段と、
プログラムメモリに格納されたコメント命令付のＳＴ形式の制御プログラムのオブジェクトをコメント命令を無視して実行するプログラム実行手段と、が設けられている、
ことを特徴とするＰＬＣシステム。
【請求項２】
制御プログラム開発支援装置には、
制御プログラムを編集する際に、第１の記憶手段に格納されたＳＴ形式の制御プログラムの編集範囲をソースファイル上で選択するための編集範囲選択手段と、
ＳＴ編集範囲が選択されるのに応答して、ソースファイル上で選択された編集範囲に対応する、ＰＬＣ内のコメント命令付のＳＴ形式の制御プログラムのオブジェクトにおける該当範囲の先頭行位置を計算する演算手段と、
計算された先頭行位置を起点として、ＰＬＣ内のコメント命令付のＳＴ形式の制御プログラムのオブジェクトの該当位置から編集範囲に対応する選択行数分のコメント命令とそれに含まれる文字列データを取得するデータ取得手段と、
開発支援装置のソースファイル上で選択された一連のコメント命令に対応する文字列と、ＰＬＣから取得されたコメント命令に対応する文字列とが一致することを条件として、ＳＴ編集範囲のソースファイル上での編集を許可する編集可否判定手段と、がさらに設けられている、
ことを特徴とする請求項１に記載のＰＬＣシステム。
【請求項３】
ＳＴ形式の制御プログラムのソースファイルを格納するための第１の記憶手段と、
ＳＴ形式の制御プログラムのオブジェクトファイルを格納するための第２の記憶手段と、
第１の記憶手段に格納されたＳＴ形式の制御プログラムのソースファイルを編集するためのプログラム編集手段と、
編集されたＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトに変換して第２の記憶手段にＳＴ形式の制御プログラムのオブジェクトファイルとして格納するコンパイル手段と、
前記コンパイル手段により変換された制御プログラムのオブジェクトのＰＬＣへの転送、及びＰＬＣからのデータ受信を行うプログラム転送手段と、が設けられ、ＰＬＣと通信ケーブルを介して接続され、相互にデータの送受信が可能になされており、
前記コンパイル手段は、ＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトへ変換する際に、各命令に対応する一連のオブジェクトを先頭に、ソースファイル上の各命令に相当する文字列を含むコメント命令を付加する、
ことを特徴とするＰＬＣのＳＴ形式の制御プログラムを開発するための制御プログラム開発支援装置。
【請求項４】
制御プログラムを編集する際に、第１の記憶手段に格納されたＳＴ形式の制御プログラムの編集範囲をソースファイル上で選択するための編集範囲選択手段と、
ＳＴ編集範囲が選択されるのに応答して、ソースファイル上で選択された編集範囲に対応する、ＰＬＣ内のコメント命令付のＳＴ形式の制御プログラムのオブジェクトにおける該当範囲の先頭行位置を計算する演算手段と、
計算された先頭行位置を起点として、ＰＬＣ内のコメント命令付のＳＴ形式の制御プログラムのオブジェクトの該当位置から編集範囲に対応する選択行数分のコメント命令とそれに含まれる文字列データを取得するデータ取得手段と、
開発支援装置のソースファイル上で選択された一連のコメント命令に対応する文字列と、ＰＬＣから取得されたコメント命令に対応する文字列とが一致することを条件として、ＳＴ編集範囲のソースファイル上での編集を許可する編集可否判定手段と、がさらに設けられている、
ことを特徴とする請求項３に記載の制御プログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・コントローラ（以下、ＰＬＣと言う）のストラクチャードテキスト形式（以下、ＳＴ形式と言う）の制御プログラムを開発するための制御プログラム開発支援装置と、制御プログラム開発支援装置により作成されＳＴ形式の制御プログラムを実行可能なＰＬＣとを有するＰＬＣシステムに関するものである。
【背景技術】
【０００２】
一般に、ＰＬＣユーザが制御プログラムを作成する場合は、リレー制御を記述するのに適したラダー言語を使用する。また、ＰＬＣ側もこのラダー言語を実行するのに適した内部構造になっている。しかし、最近のＰＬＣではリレー制御の他に数値演算処理を行うことが多くなり、ラダー言語だけでは制御プログラムの作成を簡単には行うことができなくなりつつある。
【０００３】
そこで、数値演算を記述するのに適したストラクチャードテキスト（ＳＴ）で制御プログラムを記述可能な制御プログラム開発支援装置が出現している（特許文献１参照）。ただし、この場合でもＰＬＣに転送する制御プログラムについては、実際にＰＬＣが実行可能なオブジェクトに変換されている。通常のこのＳＴ形式で記述される制御プログラムから変換（コンパイル）されたオブジェクトは、再びＳＴ形式で記述された制御プログラムへと逆変換して戻すことは非常に困難である。
【０００４】
そのため、ＰＬＣ側では、転送された制御プログラムのオブジェクトの他に、元のＳＴデータ(ＳＴソーステキスト)を別のメモリに持つことが一般的である。これは、ＰＬＣ側から制御プログラム開発支援装置に制御プログラムを転送して、中身を確認するために重要である。
【０００５】
このことを図面を参照して重ねて説明する。制御プログラムの生成とＰＬＣへの格納に関する説明図が図１１に示されている。同図に示されるように、このＰＬＣシステムは、ＰＬＣ１と制御プログラム開発支援装置２とを含んでいる。
【０００６】
ＰＬＣ１内には記憶装置（メモリ）が内蔵されており、この記憶装置は第１の記憶エリア１１と第２の記憶エリア１２とを有する。第１の記憶エリアには、ラダープログラムのオブジェクトＯＢＪ１１ａとＳＴプログラムのオブジェクトＯＢＪ２１ａとが格納されている。ここで、ＳＴプログラムのオブジェクトＯＢＪ２１ａとは、ＳＴ形式で記述されたプログラムを所定のコンパイラを介してＰＬＣが実行可能な制御プログラムに変換したものである。一方、第２の記憶エリア１２には、ＳＴプログラムのソーステキストＳＴＳが格納されている。このＳＴプログラムのソーステキストＳＴＳは、第１の記憶エリアに格納されたＳＴプログラムのオブジェクトに対応するものである。
【０００７】
このように、ＰＬＣ１側の記憶装置には、第１の記憶エリア（例えば、ユーザプログラムメモリで構成される）１１と第２の記憶エリア（例えば、拡張メモリで構成される）１２とからなる２つの記憶エリアが設けられている。
【０００８】
一方、制御プログラム開発支援装置２は、記憶装置２１と、プログラム編集処理部２２と、ラダープログラムのコンパイル部２３と、ＳＴプログラムのコンパイル部２４と、プログラム転送処理部２５と、通信インターフェース２６とを含んでいる。
【０００９】
記憶装置２１内には、ラダープログラムのソースファイルＦ１と、ＳＴプログラムのソースファイルＦ２と、制御プログラムのオブジェクトファイルＦ３とが設けられている。制御プログラムのオブジェクトファイルＦ３内には、ラダープログラムのオブジェクトＯＢＪ１とＳＴプログラムのオブジェクトＯＢＪ２とが含まれている。
【００１０】
プログラム編集処理部２２は、図示しない操作部を介するユーザの編集指示に応じて、ラダープログラムのソースファイルＦ１及び／又はＳＴプログラムのソースファイルＦ２に対する編集処理を実行するものである（ステップ２０１，２０２）。
【００１１】
ラダープログラムのコンパイル部２３は、ラダープログラムのソースファイルＦ１を読む込むと共に（ステップ２０３）、これを所定のコンパイラを介してＰＬＣが直接実行可能な形式に変換し（ステップ２０５）、これを制御プログラムのオブジェクトファイルＦ３内にラダープログラムのオブジェクトＯＢＪ１として格納する（ステップ２０５）。
【００１２】
ＳＴプログラムのコンパイル部２４は、ＳＴプログラムのソースファイルＦ２を読み出すと共に（ステップ２０４）、これを所定のコンパイラを介してＰＬＣが直接実行可能な形式に変換し、これを制御プログラムのオブジェクトファイルＦ３内にＳＴプログラムのオブジェクトＯＢＪ２として格納する（ステップ２０６）。
【００１３】
プログラム転送処理部２５ａは、制御プログラムのオブジェクトファイルＦ３からラダープログラムのオブジェクトＯＢＪ１及びＳＴプログラムのオブジェクトＯＢＪ２を読み出すと共に（ステップ２０８）、これを通信インターフェース２６を介して、ＰＬＣ１へと転送する。するとＰＬＣ１では、図示しない通信インターフェースを介してこれを受信すると共に、これらを第１の記憶エリア１１内に、ラダープログラムのオブジェクトＯＢＪ１１ａ及びＳＴプログラムのオブジェクトＯＢＪ２１ａとして格納する。
【００１４】
プログラム転送処理部２５ａは、さらに、ＳＴプログラムのソースファイルＦ２から、ＳＴプログラムのソーステキストを読み出すと共に（ステップ２０７）、これを通信インターフェース２６を介して、ＰＬＣ１へと転送する。すると、ＰＬＣ１の側ではこれを受信すると共に、第２の記憶エリア１２内にＳＴプログラムのソーステキストＳＴＳとして格納する。
【００１５】
ＳＴプログラムの「ソーステキスト」と「オブジェクト」との関係を示す説明図（従来例）が図１２に示されている。
【００１６】
同図（ａ）に示されるように、いま仮に、ソーステキストとして、２行の命令行ａ１，ａ２を含んだものを想定すると、同図（ｂ）に示されるように、コンパイル後のオブジェクトにおいては、ソーステキストの命令行ａ１はオブジェクトの命令行ｂ１１に変換され、同様にして、ソーステキストの命令行ａ２は、オブジェクトの２つの命令行ｂ２１，ｂ２２に変換される。
【００１７】
同様にして、ソーステキストを構成する各命令行は、オブジェクトを構成する１又は２以上の命令行にそれぞれ変換される。つまり、ソーステキストの各命令行ａ１，ａ２は、オブジェクトの各命令行ｂ１１，ｂ２１，ｂ２２とは１対１に対応してはいない。そのため、オブジェクトの内容からソーステキストの記載を求めることはなかなか容易なことではない。
【００１８】
このようなＰＬＣシステムにおいて、ＰＬＣ１に格納されたＳＴプログラムのオブジェクトＯＢＪ２１ａを編集する場合には、プログラム転送処理部２５ａは、通信インターフェース２６を介して、ＰＬＣ１の第２の記憶エリアに格納されたＳＴプログラムのソーステキストＳＴＳを取得し、これを記憶装置２１内のＳＴプログラムのソースファイルＦ２に格納する。しかる後、プログラム編集処理部２２は、ＳＴプログラムのソースファイルＦ２からＳＴプログラムのソースファイル（ＰＬＣ１から取得したもの）を読み出すと共に、これをユーザ側の指示に応じて編集する（ステップ２０２）。
【００１９】
こうして編集されたＳＴプログラムのソースファイルＦ２は、先に説明したように、ＳＴプログラムのコンパイル部２４を介してＳＴプログラムのオブジェクトＯＢＪ２に変換され、再度、プログラム転送処理部２５ａの作用により、通信インターフェース２６を介してＰＬＣ１へと送られ、第１の記憶エリア１１内のＳＴプログラムのオブジェクトＯＢＪ２１ａが編集内容に応じて書き換えられる。同時に、ＳＴプログラムの編集後のソースファイルＦ２についても、プログラム転送処理部２５ａの作用で、通信インターフェース２６を介してＰＬＣ１へと転送され、ＰＬＣ１内の第２の記憶エリア内にＳＴプログラムのソーステキストＳＴＳとして格納される。
【特許文献１】特開２００３−１５０２１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
このようなＰＬＣシステムでは、制御プログラムの一部を変更する必要がある場合に、制御プログラムの変更だけでは、別途ＰＬＣへ転送してあるＳＴソーステキスト（ＳＴＳ）との整合が取れなくなってしまう。整合性を確保するためには、制御プログラムの変更のたびにＳＴ元データをＰＬＣ１へ転送し直すことが必要になる。通常の場合では、一部の制御プログラムの変更でも、すべてのＳＴソーステキスト（ＳＴＳ）の転送が必要になる。そのため、制御プログラムに加えてソーステキストを格納するために、ＰＬＣ側の記憶装置（メモリ）の容量が大きくなることに加えて、プログラム変更時のソーステキスト転送作業等により、プログラム変更に時間がかかると言う問題点がある。
【００２１】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、この種のＳＴ形式の制御プログラムを取り扱うＰＬＣシステムにおいて、ＰＬＣ側のメモリ容量の節減並びにプログラム変更に要する時間の短縮を図ることにある。
【００２２】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００２３】
この発明に係るＰＬＣシステムは、上記の目的を達成するために、次のような構成を採用するものである。
【００２４】
すなわち、このＰＬＣシステムは、ＰＬＣのＳＴ形式の制御プログラムを開発するための制御プログラム開発支援装置と、制御プログラム開発支援装置により作成されるＳＴ形式の制御プログラムを実行可能なＰＬＣとを含んでいる。
【００２５】
制御プログラム開発支援装置には、ＳＴ形式の制御プログラムのソースファイルを格納するための第１の記憶手段と、ＳＴ形式の制御プログラムのオブジェクトファイルを格納するための第２の記憶手段と、第１の記憶手段に格納されたＳＴ形式の制御プログラムのソースファイルを編集するためのプログラム編集手段と、編集されたＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトに変換して第２の記憶手段にＳＴ形式の制御プログラムのオブジェクトファイルとして格納するコンパイル手段と、前記コンパイル手段により変換された制御プログラムのオブジェクトをＰＬＣへ転送するプログラム転送手段と、が設けられており、前記コンパイル手段は、ＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトに変換する際に、各命令に対する一連のオブジェクトの先頭に、ソースファイル上の各命令に相当する文字列を含むコメント命令を付加するという特徴を備えている。
【００２６】
一方、ＰＬＣには、制御プログラム開発支援装置から転送されてくるコメント命令付のＳＴ形式の制御プログラムを受信して、これをプログラムメモリに格納するプログラム受信手段と、プログラムメモリに格納されたコメント命令付のＳＴ形式の制御プログラムのオブジェクトをコメント命令を無視して実行するプログラム実行手段とが設けられている。
【００２７】
このような構成によれば、ＰＬＣ側のプログラムメモリに格納されるＳＴプログラムのオブジェクトには、ソースファイルの１命令に対応する一連の命令毎に、ソースファイル上の対応１命令に相当する文字列を含むコメント命令が付加されているため、このコメント命令を頼りとして文字列を取り出して、一面に並べれば、ＳＴ形式の制御プログラムのソースファイルを任意の部分について再現することができ、この再現されたソースファイルに基づいて、ＳＴ形式の制御プログラムの部分修正や削除を容易に行うことが可能となる。
【００２８】
しかも、本発明によれば、ＳＴ形式の制御プログラムのオブジェクトからソースファイルを直接的に再現できるため、修正ないし削除された制御プログラムをＰＬＣ側へ再度格納する際には、従前のように別途ＳＴプログラムのソーステキストを格納する必要がなく、その分だけＳＴ形式の制御プログラムの編集に要する所要時間の短縮を図ることができる。
【００２９】
本発明の好ましい実施の形態においては、制御プログラムの開発支援装置は、制御プログラムのＳＴ変更範囲をソースファイル上で選択するための変更範囲選択手段と、ＳＴ変更範囲が選択されるのに応答して、変更範囲ＳＴ行先頭の制御プログラム内でのステップ位置を計算する演算手段と、計算されたステップ位置を起点として、ＰＬＣ内の制御プログラム該当位置から選択行数分のコメント命令とそれに含まれる文字列データを取得するデータ取得手段と、ソースファイル上で選択された一連の命令に対応する文字列とＰＬＣから取得された文字列とが一致することを条件として、ＳＴ変更範囲のソースファイル上での編集を許可する変更可否手段とがさらに設けられていても良い。
【００３０】
このような構成によれば、ＳＴ形式の制御プログラムの任意の部分領域に対するプログラム編集を容易かつ確実に行わせることができる。
【００３１】
別の一面からすると、本発明は、ＳＴ形式の制御プログラムのソースファイルを格納するための第１の記憶手段と、ＳＴ形式の制御プログラムのオブジェクトファイルを格納するための第２の記憶手段と、第１の記憶手段に格納されたＳＴ形式の制御プログラムのソースファイルを編集するためのプログラム編集手段と、編集されたＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトに変換して第２の記憶手段にＳＴ形式の制御プログラムのオブジェクトファイルとして格納するコンパイル手段と、前記コンパイル手段により変換された制御プログラムのオブジェクトをＰＬＣへ転送する転送手段と、が設けられており、前記コンパイル手段は、ＳＴ形式の制御プログラムのソースファイルを構成する各命令をＰＬＣが実行可能なオブジェクトへ変換する際に、各命令に対応する一連のオブジェクトを先頭に、ソースファイル上の各命令に相当する文字列を含むコメント命令を付加する、ことを特徴とするＰＬＣのＳＴ形式の制御プログラムを開発するための制御プログラム開発支援装置として把握することもできる。
【００３２】
このような構成によれば、前述と同様に、ＰＬＣに格納されるＳＴ形式の制御プログラムの編集に要する所要時間を短縮することができる。
【００３３】
好ましい実施の形態においては、上記の制御プログラム開発支援装置は、制御プログラムのＳＴ変更範囲をソースファイル上で選択するための変更範囲選択手段と、ＳＴ変更範囲が選択されるのに応答して、変更範囲ＳＴ行先頭の制御プログラム内でのステップ位置を計算する演算手段と、計算されたステップ位置を起点として、ＰＬＣ内の制御プログラム該当位置から選択行数分のコメント命令とそれに含まれる文字列データを取得するデータ取得手段と、ソースファイル上で選択された一連の命令に対応する文字列とＰＬＣから取得された文字列とが一致することを条件として、ＳＴ変更範囲のソースファイル上での編集を許可する変更可否判定手段とがさらに設けられていても良い。
【００３４】
このような構成によれば、先に説明したように、ＰＬＣに格納されたＳＴ形式の制御プログラムに関し、任意のプログラム部分に対する編集を容易かつ確実に行わせることができる。
【発明の効果】
【００３５】
本発明のＰＬＣシステムによれば、ＰＬＣに格納されたＳＴ形式の制御プログラムの編集に要する所要時間を従前のものに比べて短縮することができる。
【発明を実施するための最良の形態】
【００３６】
以下に、この発明に係るＰＬＣの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００３７】
本発明が適用されるＰＬＣシステム全体の基本構成の説明図が図１に示されている。同図（ａ）に示されるように、本発明が適用されるＰＬＣシステムは、ビルディングブロック型のＰＬＣ１とパーソナルコンピュータ（以下、パソコンと称する）で構成される制御プログラム開発支援装置２とを含んで構成される。
【００３８】
ＰＬＣ１は、電源ユニット１０と、ＣＰＵユニット１２と、１台もしくは２台以上の入出力ユニット１３，１３・・・と、特殊機能ユニット１４とを含んでいる。これらのユニット１１〜１４は、バックプレーン３上に付設されたシステムバス４に対して、同図（ｂ）に示されるように、コネクタ３ａ，３ａ・・・を介して着脱自在に装着される。ＰＬＣ１と制御プログラム開発支援装置２とは通信ケーブル５を介して接続され、両者間で様々なデータの送受信が可能になされている。
【００３９】
ＣＰＵユニットのハードウェア構成図が図２に示されている。同図に示されるように、ＣＰＵユニット１２は、ＭＰＵ１２１と、ＡＳＩＣ１２２と、ユーザプログラムメモリ（高速ＲＡＭ）１２３と、入出力メモリ（高速ＲＡＭ）１２４と、システムプログラムメモリ（ＲＯＭ）１２５と、ワーキングメモリ（ＲＡＭ）１２６と、データ格納用不揮発性メモリ（ＦＲＯＭ）１２７とを含んでいる。ＭＰＵ１２１は、ＣＰＵユニット１２の全体を統括制御する。すなわち、このＭＰＵ１２１は、システムプログラムメモリ（ＲＯＭ）１２５から読み出したシステムプログラムを、ワーキングメモリ（ＲＡＭ）１２６の領域を利用して実行することによって、ＰＬＣとしての各種の機能を実現する。後に図７を参照しつつ詳述するように、ＰＬＣの機能を実現するためには、電源ＯＮ時初期処理（ステップ７０１）、共通処理（ステップ７０２）、制御プログラム実行処理（ステップ７０３）、Ｉ／Ｏリフレッシュ処理（ステップ７０４）、及び周辺サービス処理（ステップ７０５）が実行される。
【００４０】
ユーザプログラムメモリ（高速ＲＡＭ）１２３はＰＬＣ側の第１の記憶エリア１１として機能するものであり、このユーザプログラムメモリ（高速ＲＡＭ）１２３内には、後に詳述するように、ラダープログラムのオブジェクトＯＢＪ１１ａとＳＴプログラムのオブジェクトＯＢＪ２１ａとが格納される。
【００４１】
入出力メモリ（高速ＲＡＭ）１２４は、外部機器接続用の入出力ユニットの入出力割付に対応する入出力データの格納場所となるものであり、この入出力メモリ１２４にはそれらの入出力データの他に、ユーザプログラムで使用する各種のデータが格納される。
【００４２】
ユーザプログラムメモリ（高速ＲＡＭ）１２３に格納されるユーザプログラムは、その殆どすべてがＡＳＩＣ１２２を介して実行される。もっとも、複雑な数値演算処理や複雑な判定処理などについては、ＡＳＩＣ１２２からＭＰＵ１２１へと実行権が受け渡され、これをＭＰＵ１２１が実行することとなる。
【００４３】
制御プログラム開発支援装置の概略構成図が図３に示されている。同図に示されるように、制御プログラム開発支援装置２は、本発明と関連する部分のみを取り出して示せば、ＳＴテキスト記憶メモリ２ａと、ＳＴテキストコンパイラ２ｂと、制御プログラム保存用メモリ２ｃと、通信装置２ｄとを備えている。なお、図において符号２６で示されるものはＰＬＣ１との通信を行うための通信インターフェースである。
【００４４】
図３に示される制御プログラム開発支援装置の内部作用をさらに具体的に説明する。制御プログラムの生成とＰＬＣへの格納に関する説明図（本発明）が図４に示されている。
【００４５】
同図に示されるように、本発明のＰＬＣシステムは、ＰＬＣ１と制御プログラム開発支援装置２とを含んで構成される。
【００４６】
ＰＬＣ１には記憶装置（メモリ）が内蔵されており、この記憶装置の第１の記憶エリア１１には、ラダープログラムのオブジェクトＯＢＪ１１ａとＳＴプログラムのオブジェクトＯＢＪ２１ａとが格納される。なお、図１１に示される従来例と比較して明らかなように、本発明の記憶装置内には、第１の記憶エリア１１は設けられるものの、第２の記憶エリア１２は存在しない。
【００４７】
すなわち、本発明にあっては、ＰＬＣ１内には、ラダープログラムのオブジェクトＯＢＪ１１ａ及びＳＴプログラムのオブジェクトＯＢＪ２１ａは存在するものの、ＳＴプログラムのソーステキストＳＴＳは存在しない。これは、後に詳細に説明するように、本発明にあっては、ＳＴプログラムのオブジェクトＯＢＪ２１ａ内に、所定のコメント命令が存在することによって、このコメント命令に付された文字列に基づき、ＳＴプログラムのソーステキストを容易に再現できるからである。
【００４８】
制御プログラム開発支援装置２は、記憶装置２１と、プログラム編集処理部２２と、ラダープログラムのコンパイル部２３と、ＳＴプログラムのコンパイル部２４と、プログラム転送処理部２５と、通信インターフェース２６とが含まれている。
【００４９】
記憶装置２１内には、図１１に示される従来例と同様にして、ラダープログラムのソースファイルＦ１と、ＳＴプログラムのソースファイルＦ２と、制御プログラムのオブジェクトファイルＦ３とが格納されている。そして、この制御プログラムのオブジェクトファイルＦ３内には、ラダープログラムのオブジェクトＯＢＪ１とＳＴプログラムのオブジェクトＯＢＪ２とが含まれている。
【００５０】
プログラム編集処理部２２は、記憶装置２１に格納されたラダープログラムのソースファイルＦ１及び／又はＳＴプログラムのソースファイルＦ２を読み出すと共に、これらのファイルをユーザのキー操作やマウス操作などに応答して、修正または変更などの編集操作を行った後、再度記憶装置２１へと格納することによって、それらのファイルＦ１，Ｆ２を編集する（ステップ２０１，２０２）。
【００５１】
ラダープログラムのコンパイル部２３は、記憶装置２１内に格納された編集前または編集後のラダープログラムのソースファイルＦ１を読み出すと共に（ステップ２０３）、これを所定のコンパイラを介してＰＬＣが直接実行可能な形式に変換して、制御プログラムのオブジェクトファイルＦ３内にラダープログラムのオブジェクトＯＢＪ１として格納する（ステップ２０５）。
【００５２】
ＳＴプログラムのコンパイル部２４は、記憶装置２１に格納されたＳＴプログラムのソースファイルＦ２を読み出すと共に（ステップ２０４）、これを所定のコンパイラを介してＰＬＣが直接実行可能な形式に変換し、これを制御プログラムのオブジェクトファイルＦ３内にＳＴプログラムのオブジェクトＯＢＪ２として格納する（ステップ２０６）。
【００５３】
プログラム転送処理部２５は、ＰＬＣ１に対する送信処理と、ＰＬＣ１からの受信処理との双方の機能を実現する。すなわち、このプログラム転送処理部２５は、制御プログラムのオブジェクトファイルＦ３からラダープログラムのオブジェクトＯＢＪ１とＳＴプログラムのオブジェクトＯＢＪ２を読み出すと（ステップ２０７）、通信インターフェース２６を介してＰＬＣ１へと送信する。
【００５４】
次に、本発明の要部をなす、ＳＴプログラムのソースファイルに格納されているソーステキストからＳＴプログラムのオブジェクト（ＰＬＣが実行可能）への変換について説明する。その処理は、ＳＴプログラムのコンパイル部２４が行う。
【００５５】
ＳＴプログラムのソーステキストとＳＴプログラムのオブジェクトの関係が図５に示されている。同図（ａ）に示されるように、ソーステキスト上において、命令行ａ１，ａ２が存在する場合、同図（ｂ）に示されるように、命令行ａ１はコンパイル処理の結果オブジェクト上の命令行ｂ１１に変換される。同様にして、ソーステキスト上の命令行ａ２も、所定のコンパイル処理の結果、オブジェクト上の２行の命令行ｂ２１，ｂ２２に変換される。
【００５６】
そして、本発明の特徴部分であるが、オブジェクト上においては、命令行ｂ１１の先頭にはコメント命令である命令行ｃ１が付加され、同様にして、オブジェクト上の２行の命令行ｂ２１，ｂ２２の先頭には、コメント命令である命令行ｃ２が付加される。
【００５７】
図から明らかなように、命令行ｃ１，ｃ２にそれぞれ記述されたコメント命令は、符号５０１で示されるオペコード「Ｃｍｔ」と符号５０２で示されるオペランド「"ｘｘ・・・ｘ"」とから構成されている。そのため、このようにして生成されたオブジェクトにあっては、オペコード５０１である「Ｃｍｔ」を頼りとして、コメント命令を検索すると共に、そのオペランド５０２である「"ｘｘｘ"」の中で、「"」及び「"」で挟まれた文字列「ＤＤＤ：＝＋１０；」を抽出することにより、ソーステキスト上の対応する命令行を容易に再現することができる。
【００５８】
しかも、各コメント命令で挟まれて存在する命令行（例えば、命令行ｃ１と命令行ｃ２で挟まれて存在する命令行ｂ１１「Ｍｏｖ＋１０  ＤＤＤ」）に基づいて、そのコメント命令で示されるソーステキスト上の命令行に対応するオブジェクト上の命令行を確実に把握することができる。
【００５９】
そのため、本発明においては、後に詳細に説明するように、上述の検索処理ならびに文字列抽出処理、さらには、コメント行で挟まれる命令行を抽出する処理などを組み合わせることによって、ＰＬＣ１に格納されたＳＴプログラムのオブジェクトＯＢＪ２１ａから、ＳＴプログラムの対応するソースファイルを把握することができ、これを利用して、ＳＴプログラムのオブジェクト上の任意の領域における削除や変更といった編集を自在に行うことが可能となる。しかも、この際には、従前のように、プログラム全体に相当するソーステキストをＰＬＣ１側へと再送信する必要もないため、編集処理に要する所要時間を大幅に短縮できる。
【００６０】
以上の処理内容が図６のフローチャートにまとめて示されている。すなわち、このＳＴプログラムのソーステキストからＳＴプログラムのオブジェクトへの変換処理においては、図６に示されるように、まずＳＴプログラムのソースファイルよりＳＴテキストを１行取得すると共に（ステップ６０１）、取得した１行のＳＴテキストを所定のコンパイラを介してＰＬＣが実行可能な形式のオブジェクトへ変換し（ステップ６０２）、さらにこのＳＴテキストをコメント命令に変換しオブジェクトに追加し（ステップ６０３）、以上の動作をＳＴテキストが残り行がある限り繰り返し（ステップ６０４ＹＥＳ）、残り行がなくなるのを待って（ステップ６０４ＮＯ）、こうして得られたオブジェクトを制御プログラムのオブジェクトファイル内にＳＴプログラムのオブジェクトとして格納する（ステップ６０５）。
【００６１】
このようにして生成されたコメント命令付きのＳＴプログラムのオブジェクトＯＢＪ２は、通信インターフェース２６を介してＰＬＣ１へと転送され、ＰＬＣ１の記憶装置の第１の記憶エリアに、ＳＴプログラムのオブジェクトＯＢＪ２ａとして格納される。
【００６２】
なお、ラダープログラムのオブジェクトＯＢＪ１については、そのまま通信インターフェース２６を介してＰＬＣ１へと転送され、ＰＬＣ１内の第１の記憶エリア内にラダープログラムのオブジェクトＯＢＪ１１ａとして格納される。
【００６３】
次に、このようにしてＰＬＣ１の第１の記憶エリア１１に格納されたＳＴプログラムのオブジェクトＯＢＪ２１ａがどのようにしてＰＬＣで実行されるかについて説明する。ＣＰＵユニットの処理の全体を概略的に示すゼネラルフローチャートが図７に、制御プログラム実行処理の詳細を示すフローチャートが図８にそれぞれ示されている。
【００６４】
図７に示されるように、当業者にはよく知られている、ＣＰＵユニット１２においては、電源投入と共に動作が開始され、まず、電源ＯＮ時初期処理（ステップ７０１）を実行して、各種のフラグやレジスタを初期設定した後、以後、共通処理（ステップ７０２）、制御プログラム実行処理（ステップ７０３）、Ｉ／Ｏリフレッシュ処理（ステップ７０４）、及び周辺サービス処理（ステップ７０５）を一巡する処理を、繰り返し実行する。なお、それらの処理（ステップ７０２〜７０５）に要する時間をサイクルタイムと称し、このサイクルタイムの長短がそのＰＬＣの入出力応答特性に影響を与える。
【００６５】
それらの処理（ステップ７０２〜７０５）は、当業者にはよく知られているが、要するに、共通処理（ステップ７０２）においては、ＰＬＣの正常な運転に必要な各種機能のチェックを行うものであり、制御プログラム実行処理（ステップ７０３）においては、プログラムメモリ（ユーザプログラムメモリ１２３）から制御プログラム（ラダープログラムのオブジェクトＯＢＪ１１ａ及びＳＴプログラムのオブジェクトＯＢＪ２１ａ）を順次に読み出し、これを入出力メモリ１２４内の入出力データや各種設定データを参照して実行すると共に、その実行結果によって、入出力メモリ１２４の出力状態を書き換える処理などを実行する。また、Ｉ／Ｏリフレッシュ処理（ステップ７０４）においては、入出力メモリ１２４と入出力ユニット１３との間でデータの入出力転送を行うものであり、周辺サービス処理７０５においては、制御プログラム開発支援装置２とのデータ送受信処理などを含む各種の周辺サービスを実行するものである。
【００６６】
制御プログラム実行処理（ステップ７０３）においては、基本的には、図８に示される処理が行われる。まず、ユーザプログラムメモリ１２３からの１命令取得及び命令解析処理（ステップ８０１）を実行する。次に、取得された命令がコメント命令「Ｃｍｔ」であるかどうかの判定を行う（ステップ８０２）。そしてそれがコメント命令でない場合には（ステップ８０２ＮＯ）、通常どおりその命令を実行し（ステップ８０３）、次の命令が存在すれば（ステップ８０４ＹＥＳ）、１命令取得及び命令解析処理（ステップ８０１）に戻る。
【００６７】
ステップ８０２において、取得された命令がコメント命令であると判定されると（ステップ８０２ＹＥＳ）、命令実行処理（ステップ８０３）はスキップ（無視）され、再び次の１命令取得及び命令解析処理へと復帰する（ステップ８０１）。
【００６８】
そのため、本発明の制御プログラム実行処理（ステップ７０３）においては、特に、ＳＴプログラムのオブジェクトＯＢＪ２１ａ内にコメント命令が存在したとしても、そのコメント命令は、一切無視されて、次の命令の実行へと移行するから、ＳＴプログラムのオブジェクトＯＢＪ２１ａ上に、コメント命令が付加されていたとしても、ＰＬＣの動作には影響しない。
【００６９】
次に、ＰＬＣ内のＳＴプログラムの一部変更を行うための制御プログラム開発支援装置側の処理を示すフローチャートが図９に示されている。
【００７０】
同図に示されるように、制御プログラム開発支援装置側において、ユーザのキー操作あるいはマウス操作によって、ＳＴプログラムの一部変更処理が開始されると、まず、ステップ９０１では、ユーザの所定キー操作あるいはマウス操作に基づいて、制御用プログラムのＳＴ変更行範囲の選択が行われる。すなわち、制御プログラム開発支援装置２の側では、ＳＴプログラムのソースファイルＦ２を読み出すと共に、これを画面に表示して、ソースファイル上においてどの部分を修正あるいは削除すべきかをユーザに問いかけ、ユーザからの応答を待って、ＳＴ変更行範囲の選択を行う。
【００７１】
続くステップ９０２では、こうして選択された変更行範囲ＳＴ行先頭の制御プログラム内でのステップ位置が計算される。すなわち、ソースファイル上で選択された変更行範囲がＰＬＣのＳＴプログラムのオブジェクト上においてどこに位置するかが求められる。
【００７２】
次いでステップ９０３では、計算されたステップ位置に基づいて、ＰＬＣ１内の制御プログラム該当位置から選択行数分のコメント命令とその文字列データが取得される（ステップ９０３）。すなわち、選択行数分のコメント命令とその文字列データを取得することによって、変更対象となるプログラムのソースファイル上での状態が特定される。
【００７３】
続くステップ９０４においては、取得された文字列データを並べて構成された文字列と、ソースファイル上で選択された領域の文字列との一致が照合され、両者が一致した場合に限り（ステップ９０４ＹＥＳ）、上述したＳＴ変更行範囲の編集開始が許可される（ステップ９０５）。
【００７４】
しかる後、ユーザは制御プログラム開発支援装置に備えられた画像表示器の画面上において、キー操作やマウス操作を併用しながら、該当行範囲のＳＴを変更する（ステップ９０６）。
【００７５】
ユーザが、キー操作やマウス操作によって変更終了を指示すると、変更処理は終了され（ステップ９０７）、しかる後、変更後のＳＴプログラムのオブジェクトへの変換（コメント命令追加を含む）が実行される（ステップ９０８）。
【００７６】
こうして得られた変更後のＳＴプログラムのオブジェクトは、ＰＬＣ１内へと転送され（ステップ９０９）、処理は終了する。
【００７７】
最後に、ＰＬＣのメモリ内におけるユーザプログラムのイメージを従来例と本発明とで比較して示す説明図が図１０に示されている。
【００７８】
同図（ａ）に示される従来例にあっては、ＰＬＣ側にはプログラムメモリと拡張メモリとの２つのメモリを必要とし、プログラムメモリにはＳＴプログラムのオブジェクト、拡張メモリにはＳＴプログラムのソーステキストを格納していた。これに対して、同図（ｂ）に示される本発明にあっては、ＰＬＣ内には拡張メモリは存在せず、プログラムメモリだけが存在する。しかも、プログラムメモリ内にはコメント命令とそれと関連するＳＴプログラムとが交互に配置されている。そのため、本発明にあっては、プログラムメモリ内のデータを読み出すだけで、ＳＴプログラムを構成する各命令とそれと対応するオブジェクトとの関係を容易に認識することができる。
【００７９】
このように、本発明によれば、ＰＬＣは制御プログラム内にＳＴソーステキストを埋め込むことができ、このＳＴソーステキストは実行の対象とはならない。また、所定の長さのコメント命令を連続して複数個使用することで、ＳＴソーステキストは任意の箇所に任意の長さで埋め込むことが可能である。
【００８０】
また、制御プログラム開発支援装置において、制御プログラムは、ＳＴソーステキストが埋め込まれた実行可能なオブジェクトコードとして生成され、ＰＬＣへ転送される。別途、ＳＴソーステキストの転送は行わない。
【００８１】
また、このＰＬＣへ転送された制御プログラムの一部を変更する場合には、任意の箇所に埋め込まれたＳＴソーステキストと連続して書かれた制御プログラムを一括して変更することにより、制御プログラム自身の変更とＳＴソーステキストの変更を行うことができる。
【００８２】
さらに、ＰＬＣ内の制御プログラムを制御プログラム開発支援装置に転送する場合には、制御プログラムに埋め込まれたＳＴソーステキストにより、制御プログラムを表示することができる。
【００８３】
以上により、ＳＴで記述された制御プログラムの運用が容易に行え、常に整合性が保持されるわけである。
【産業上の利用可能性】
【００８４】
以上の説明で明らかなように、本発明によれば、この種のＳＴプログラムで記述された制御プログラムを実行するＰＬＣシステムにおいて、制御プログラムの編集に要する処理の容易化を図り、その所要時間を大幅に短縮することができる。
【図面の簡単な説明】
【００８５】
【図１】ＰＬＣシステム全体の基本構成の説明図である。
【図２】ＣＰＵユニットのハードウェア構成図である。
【図３】制御プログラム開発支援装置の概略構成図である。
【図４】制御プログラムの生成とＰＬＣへの格納に関する説明図（本発明）である。
【図５】ＳＴプログラムの「ソーステキスト」と「オブジェクト」との関係を示す説明図（本発明）である。
【図６】ＳＴプログラムのソーステキストからオブジェクトに変換する処理を示すフローチャートである。
【図７】ＣＰＵユニットの処理の全体を概略的に示すゼネラルフローチャートである。
【図８】制御プログラム実行処理の詳細を示すフローチャートである。
【図９】ＰＬＣ内のＳＴプログラムの一部変更を行うための制御プログラム開発支援装置側の処理を示すフローチャートである。
【図１０】ＰＬＣのメモリ内におけるユーザプログラムのイメージを従来例と本発明とで比較して示す説明図である。
【図１１】制御プログラムの生成とＰＬＣへの格納に関する説明図（従来例）である。
【図１２】ＳＴプログラムの「ソーステキスト」と「オブジェクト」との関係を示す説明図（従来例）である。
【符号の説明】
【００８６】
１    ＰＬＣ
２    制御プログラム開発支援装置
２ａ  ＳＴテキスト記憶メモリ
２ｂ  ＳＴテキストコンパイラ
２ｃ  制御プログラム保存用メモリ
２ｄ  通信装置
３    バックプレーン
４    システムバス
５    通信ケーブル
１１  第１の記憶エリア
１０  電源ユニット
１２  ＣＰＵユニット
１３  入出力ユニット
１４  特殊機能ユニット
２１  記憶装置
２２  プログラム編集処理部
２３  ラダープログラムのコンパイル部
２４  ＳＴプログラムのコンパイル部
２５  プログラム転送処理部
２６  通信インターフェース
１２１  ＭＰＵ
１２２  ＡＳＩＣ
１２３  ユーザプログラムメモリ（高速ＲＡＭ）
１２４  入出力メモリ（高速ＲＡＭ）
１２５  システムプログラムメモリ（ＲＯＭ）
１２６  ワーキングメモリ（ＲＡＭ）
１２７  データ格納用不揮発性メモリ（ＦＲＯＭ）
５０１  オペコード
５０２  オペランド
ａ１，ａ２  ソーステキストの命令行
ｂ１１，ｂ２１，ｂ２２  オブジェクトの命令行
ｃ１，ｃ２  コメント命令の命令行
Ｆ１  ラダープログラムのソースファイル
Ｆ２  ＳＴプログラムのソースファイル
Ｆ３  制御プログラムのオブジェクトファイル
ＯＢＪ１  ラダープログラムのオブジェクト
ＯＢＪ２  ＳＴプログラムのオブジェクト
ＯＢＪ１１ａ  ラダープログラムのオブジェクト
ＯＢＪ２１ａ  ＳＴプログラムのオブジェクト
【図１】
0004737441.tif 000002
【図２】
0004737441.tif 000003
【図３】
0004737441.tif 000004
【図４】
0004737441.tif 000005
【図５】
0004737441.tif 000006
【図６】
0004737441.tif 000007
【図７】
0004737441.tif 000008
【図８】
0004737441.tif 000009
【図９】
0004737441.tif 000010
【図１０】
0004737441.tif 000011
【図１１】
0004737441.tif 000012
【図１２】
0004737441.tif 000013