(57)【要約】【課題】  プログラマブル・ロジック・コントローラのシーケンスプログラムをプログラム構成要素単位（ＰＯＵ）で編集する装置において、ＰＯＵの分割／結合に伴う変数の変更、登録、削除を自動化し、編集ミスを少なくする。【解決手段】  ＰＯＵ分割・結合制御部１６０は、ＰＯＵの分割にあたり、分割後のＰＯＵで共用されているローカル変数をグローバル変数ワークシートにグローバル変数として追加し、分割後のローカル変数ワークシートに外部参照変数として登録する。ＰＯＵの結合にあたり、結合前のＰＯＵでのみ外部参照変数として共用されていたグローバル変数をローカル変数に変えて結合後のローカル変数ワークシートに登録し、グローバル変数ワークシートから削除する。【選択図】        図１
2010049484.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・コントローラのシーケンスプログラムをプログラム構成要素単位で編集するプログラム編集手段と、
前記プログラム構成要素のロジックを定義するプログラムワークシートと、プログラムワークシートで使用されているローカル変数を登録するローカル変数ワークシートと、複数のプログラム構成要素のプログラムワークシートで共用されているグローバル変数を登録するグローバル変数ワークシートとを格納するプログラムメモリと、
一つのプログラム構成要素を複数に分割し、分割後のプログラム構成要素に対応する前記プログラムワークシートと前記ローカル変数ワークシートとを作成するプログラム分割手段とを備え、
前記プログラム分割手段が、分割後のプログラム構成要素で共用されているローカル変数をグローバル変数に変えて前記グローバル変数ワークシートに追加するとともに、分割後のローカル変数ワークシートに外部参照変数として登録することを特徴とするプログラマブル・ロジック・コントローラのプログラム編集装置。
【請求項２】
前記プログラム分割手段が、グローバル変数の追加にあたり、該変数の重複をプログラム編集者に通知し、重複登録を回避することを特徴とする請求項１記載のプログラマブル・ロジック・コントローラのプログラム編集装置。
【請求項３】
プログラマブル・ロジック・コントローラのシーケンスプログラムをプログラム構成要素単位で編集するプログラム編集手段と、
前記プログラム構成要素のロジックを定義するプログラムワークシートと、プログラムワークシートで使用されているローカル変数を登録するローカル変数ワークシートと、複数のプログラム構成要素のプログラムワークシートで共用されているグローバル変数を登録するグローバル変数ワークシートとを格納するプログラムメモリと、
複数のプログラム構成要素を一つに結合し、結合後のプログラム構成要素に対応する前記プログラムワークシートと前記ローカル変数ワークシートを作成するプログラム結合手段とを備え、
前記プログラム結合手段が、結合前のプログラム構成要素でのみ外部参照変数として共用されていたグローバル変数をローカル変数に変えて結合後のローカル変数ワークシートに登録するとともに、前記グローバル変数ワークシートから削除することを特徴とするプログラマブル・ロジック・コントローラのプログラム編集装置。
【請求項４】
前記プログラム結合手段が、ローカル変数ワークシートの作成にあたり、ローカル変数の重複をプログラム編集者に通知し、重複登録を回避することを特徴とする請求項３記載のプログラマブル・ロジック・コントローラのプログラム編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラのシーケンスプログラムをプログラム構成要素単位で編集する装置に関し、特に、プログラム構成要素の分割／結合を行うプログラム編集装置に関する。
【背景技術】
【０００２】
従来、プログラマブル・ロジック・コントローラ（以下ＰＬＣと略す）が実行するシーケンスプログラムをプログラム構成要素（Program Organization Unit：以下ＰＯＵと略す）を単位として作成し、編集する技術が知られている。ここで、ＰＯＵは、ロジックを定義するプログラムワークシートと、プログラムワークシートで使用されている変数をローカル変数として登録するローカル変数ワークシートとで構成される。複数のＰＯＵが参照する変数は、グローバル変数としてグローバル変数ワークシートに登録され、それぞれのＰＯＵのローカル変数ワークシートに外部参照変数として登録される。
【０００３】
ＰＯＵは機能のまとまり毎に作成することが望ましいため、従来、プログラムを育成するにあたり、一つのＰＯＵを複数に分割したり、逆に複数のＰＯＵを一つに結合したりする編集装置が提案されている。例えば、特許文献１には、一つのＰＯＵを複数に分割し、分割後のＰＯＵを複数のＰＬＣに割り当てるプログラミングツールが記載されている。特許文献２には、複数のＰＯＵを一つに結合し、結合後のＰＯＵに対するメモリの参照情報であるクロスリファレンスを自動生成するプログラム作成装置が記載されている。
【特許文献１】特開平１０−３３３７２１号公報
【特許文献２】特開平１１−８５２３２号公報
【０００４】
図１２は、従来のプログラム編集装置の全体的な構成を示す。この編集装置１００では、バス１１０にＣＰＵ１２０、ワークメモリ１３０、キーボードやマウス等の入力装置１４０、表示装置等の出力装置１５０、ＰＯＵ編集制御部１７０、ＰＬＣプログラムメモリ１８０が接続されている。ＰＬＣプログラムメモリ１８０には、ＰＯＵ１８１のプログラムワークシート１８２およびローカル変数ワークシート１８３と、グローバル変数ワークシート１８４とが格納されている。
【０００５】
ＰＯＵ編集制御部１７０は、プログラムワークシート１８２、ローカル変数ワークシート１８３、グローバル変数ワークシート１８４をプログラムメモリ１８０から読み出し、出力装置１５０の表示部に表示し、入力装置１４０からの編集操作を受け付ける。そして、プログラム編集者が入力装置１４０を操作し、プログラムワークシート１８２とローカル変数ワークシート１８３のコピー／カット／ペーストをワークシート単位またはシンボル単位で繰り返し、ＰＯＵ１８１の分割／結合を行うようになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＰＯＵ１８１の分割にあたり、ローカル変数ワークシート１８３をコピーすると、分割後のプログラムワークシートで使用しないローカル変数もコピーされてしまうため、不用な変数を取り除く必要がある。また、分割後に複数のＰＯＵで共用されるグローバル変数はグローバル変数ワークシートに追加し、外部参照変数に変更して分割後の複数のローカル変数ワークシートに登録する必要がある。ＰＯＵの結合にあたっては、結合後のＰＯＵで使用するローカル変数をプログラムワークシートから抽出してローカル変数ワークシートを作成し、結合前のＰＯＵでのみ共用されていたグローバル変数をローカル変数に変更してローカル変数ワークシート登録し、かつグローバル変数ワークシートから削除する必要もある。
【０００７】
しかし、従来のプログラム編集装置１００によると、こうした変数の変更、登録、削除を編集者の手作業で行っていた。このため、ＰＯＵを分割／結合する前に、多くのワークシートを照合し、変数の使われ方を判断し、ワークシートのコピー／カット／ペーストを行い、変数を変更、登録、削除した後に、ワークシートを再度照合し、変数の適否を判断し、不適当な場合に一連の作業を繰り返す必要があった。したがって、プログラムの編集作業に手間と時間がかかるうえ、編集ミスが起きやすいという問題があった。特に、変数の登録を変更するときには、ローカル変数とグローバル変数の区別を間違えやすいため、ＰＬＣの誤動作を招く可能性が高くなるという問題もあった。
【０００８】
本発明は、上記課題を解決するためになされたものであり、その目的は、ＰＯＵの分割／結合にあたり、変数の変更、登録、削除を自動化し、編集ミスを少なくすることができるプログラマブル・ロジック・コントローラの編集装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明のプログラム編集装置は、ＰＬＣが実行するシーケンスプログラムをＰＯＵ単位で編集するプログラム編集手段と、ＰＯＵのロジックを定義するプログラムワークシートと、プログラムワークシートで使用されているローカル変数を登録するローカル変数ワークシートと、複数のＰＯＵのプログラムワークシートで共用されているグローバル変数を登録するグローバル変数ワークシートとを格納するプログラムメモリと、一つのＰＯＵを複数に分割し、分割後のＰＯＵに対応するプログラムワークシートとローカル変数ワークシートを作成するプログラム分割手段とを備え、
（１）プログラム分割手段が、分割後のＰＯＵで共用されているローカル変数をグローバル変数ワークシートにグローバル変数として追加するとともに、分割後のローカル変数ワークシートに外部参照変数として登録することを特徴とする。
（２）プログラム分割手段が、グローバル変数をグローバル変数ワークシートに追加するときに、該変数の重複登録を検出し、プログラム編集者に通知することを特徴とする。
【００１０】
また、本発明はＰＯＵの結合に適したプログラム編集装置を提供する。この編集装置は、上記編集手段およびプログラムメモリに加え、複数のＰＯＵを一つに結合し、結合後のＰＯＵに対応するプログラムワークシートとローカル変数ワークシートを作成するプログラム結合手段を備え、
（３）プログラム結合手段が、結合前のＰＯＵでのみ外部参照変数として共用されていたグローバル変数をローカル変数に変えて結合後のローカル変数ワークシートに登録するとともに、グローバル変数ワークシートから削除することを特徴とする。
（４）プログラム結合手段が、ローカル変数ワークシートの作成にあたり、ローカル変数の重複をプログラム編集者に通知し、重複登録を回避することを特徴とする。
【発明の効果】
【００１１】
上記（１）のプログラム編集装置によれば、ＰＯＵの分割にあたり、新たに派生したグローバル変数をグローバル変数ワークシートに自動的に追加でき、ローカル変数ワークシートに外部参照変数として正しく登録できる効果がある。
上記（２）のプログラム編集装置によれば、分割に伴うグローバル変数の重複登録を未然に回避できる効果がある。
【００１２】
上記（３）のプログラム編集装置によれば、ＰＯＵの結合にあたり、結合前のグローバル変数をローカル変数に変えてローカル変数ワークシートに正しく登録でき、グローバル変数ワークシートから自動的に削除できる効果がある。
上記（４）のプログラム編集装置によれば、結合に伴うローカル変数の重複登録を未然に回避できる効果がある。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に基づいて説明する。図１は、ＰＬＣのシーケンスプログラムを編集するプログラム編集装置１の全体的な構成を示す。この編集装置１は、従来装置（図１２参照）と同様に機能する入力装置１４０、出力装置１５０、ＰＯＵ編集制御部１７０、ＰＬＣプログラムメモリ１８０等に加え、ＰＯＵ１８１の分割／結合時に変数の変更、登録、削除を制御するＰＯＵ分割・結合制御部１６０を備えている。
【００１４】
図２は、ＰＬＣプログラムメモリ１８０に格納されたＰＯＵ１のプログラムワークシートを例示する。ここでは、ＰＯＵ１に含まれるロジックがワークシート１Ｗ２０１、ワークシート２Ｗ２０２、ワークシート３Ｗ２０３、ワークシート４Ｗ２０４の４枚のプログラムワークシートに定義されている。
【００１５】
図３は、ＰＯＵ１のローカル変数ワークシートを例示する。このローカル変数ワークシートには、４枚のプログラムワークシートＷ２０１〜Ｗ２０４で使用されている変数がその変数名、データ型、種別を示す一覧表の形態で登録されている。種別の項目には、変数のうちＰＯＵ１のみで使用されているローカル変数が「ＶＡＲ」と表示され、その他のＰＯＵでも使用されている外部参照変数が「ＶＡＲ＿ＥＸＴＥＲＮＡＬ」と表示されている。
【００１６】
図４は、分割前のグローバル変数ワークシートを例示する。このグローバル変数ワークシートには、ＰＯＵ１とその他のＰＯＵで共用されているグローバル変数がその変数名、データ型、種別を示す一覧表の形態で登録されている。種別の項目には、グローバル変数が「ＶＡＲ＿ＧＬＯＢＡＬ」と表示されている。なお、図２〜図４に示す各ワークシートは、単独または所要の組み合わせで出力装置１５０に表示される。
【００１７】
次に、プログラム分割手段であるＰＯＵ分割・結合制御部１６０によるＰＯＵの分割処理について説明する。以下では、図２に鎖線で示すように、ＰＯＵ１を二つに分割し、ワークシート１Ｗ２０１、ワークシート３Ｗ２０３の２枚のプログラムワークシートを含むＰＯＵ２と、ワークシート２Ｗ２０２、ワークシート４Ｗ２０４の２枚のプログラムワークシートを含むＰＯＵ３とを生成する場合の処理について説明する。
【００１８】
図９のフローチャートに示すように、ＰＯＵ１の分割にあたり、ＰＯＵ分割・結合制御部１６０は、まず、ＰＯＵ１のプログラムワークシートを分割し、ワークシート１Ｗ２０１とワークシート３Ｗ２０３をＰＬＣプログラムメモリ１８０の指定領域に指定順序でコピーし、ＰＯＵ２に対応するプログラムワークシートを作成するとともに、ワークシート２Ｗ２０２とワークシート４Ｗ２０４を同様にコピーし、ＰＯＵ３に対応するプログラムワークシートを作成する（Ｓ３０１）。この時点で、ＰＯＵ２およびＰＯＵ３のローカル変数ワークシートは空白である。
【００１９】
次に、ＰＯＵ１のローカル変数ワークシートから変数を一つずつ取り出し（Ｓ３０２）、その変数がＰＯＵ２とＰＯＵ３のプログラムワークシートで共用されているか否かを判定する（Ｓ３０３）。そして、共用されていない場合は、その変数をＰＯＵ２またはＰＯＵ３固有のローカル変数として、それぞれのローカル変数ワークシートに登録する（Ｓ３０４）。共用されている場合は、その変数をグローバル変数として、グローバル変数ワークシートに追加する。
【００２０】
ここで、グローバル変数の重複登録を回避するために、追加しようとする変数の変数名と登録済み変数の変数名とを照合し、グローバル変数の重複をチェックする（Ｓ３０５）。重複していない場合は、その変数をグローバル変数ワークシートに追加し（Ｓ３０６）、ＰＯＵ２とＰＯＵ３のローカル変数ワークシートに外部参照変数として登録する（Ｓ３０７）。重複している場合は、所定のメッセージで変数の重複をプログラム編集者に通知し（Ｓ３０９）、エラー処理とする。そして、ＰＯＵ１のすべての変数を処理し（Ｓ３０８）、ＰＯＵ２とＰＯＵ３のローカル変数ワークシートを完成し、グローバル変数ワークシートを更新して、分割作業を終了する。
【００２１】
図５、図６はそれぞれ分割後のＰＯＵ２、ＰＯＵ３のローカル変数ワークシートを例示し、図７は分割後のグローバル変数ワークシートを例示する。図５、図６に示す変数ｍＭＤＳＬＡＳと変数ｍＲＭＣＫは共に、ＰＯＵ２とＰＯＵ３の両方で使用されているため、図７に示すグローバル変数ワークシートにグローバル変数（ＶＡＲ＿ＧＬＯＢＡＬ）として登録され、図５、図６に示すローカル変数ワークシートには外部参照変数（ＶＡＲ＿ＥＸＴＥＲＮＡＬ）として登録されている。
【００２２】
次に、プログラム結合手段であるＰＯＵ分割・結合制御部１６０によるＰＯＵの結合処理について説明する。以下では、ＰＯＵ２とＰＯＵ３を一つに結合し、ＰＯＵ２のワークシート１Ｗ２０１、ワークシート３Ｗ２０３とＰＯＵ３のワークシート２Ｗ２０２、ワークシート４Ｗ２０４との合計４枚のプログラムワークシートを含むＰＯＵ４を生成する場合の処理について説明する。
【００２３】
図１０のフローチャートに示すように、ＰＯＵ２とＰＯＵ３の結合にあたり、ＰＯＵ分割・結合制御部１６０は、まず、ＰＬＣプログラムメモリ１８０の指定領域にＰＯＵ２のワークシート１Ｗ２０１、ワークシート３Ｗ２０３と、ＰＯＵ３のワークシート２Ｗ２０２、ワークシート４Ｗ２０４とを指定順序でコピーし、ＰＯＵ４に対応する一組のプログラムワークシートを作成する（Ｓ４０１）。この時点でＰＯＵ４のローカル変数ワークシートは空白である。
【００２４】
次に、ＰＯＵ２のローカル変数ワークシートからすべてのローカル変数を取り出し、ＰＯＵ４のローカル変数ワークシートに登録する（Ｓ４０２）。続いて、ＰＯＵ３のローカル変数ワークシートからローカル変数を一つずつ取り出し（Ｓ４０３）、その変数名と登録済み変数の変数名とを照合し、ローカル変数の重複をチェックする（Ｓ４０４）。重複していない場合は、そのローカル変数をＰＯＵ４のローカル変数ワークシートに登録する（Ｓ４０５）。重複している場合は、所定のメッセージで変数の重複をプログラム編集者に通知し（Ｓ４０６）、重複登録を回避する。そして、ＰＯＵ３のすべてのローカル変数を処理し（Ｓ４０７）、ＰＯＵ４のローカル変数ワークシートを作成する。
【００２５】
続いて、図１１のフローチャートに示すように、ＰＯＵ２のローカル変数ワークシートからすべての外部参照変数を取り出し、ＰＯＵ４のローカル変数ワークシートに登録する（Ｓ５０１）。次に、ＰＯＵ３のローカル変数ワークシートから外部参照変数を一つずつ取り出し（Ｓ５０２）、ＰＯＵ４のローカル変数ワークシートに登録済みであるか否かを判定する（Ｓ５０３）。登録済でない場合は、その外部参照変数をＰＯＵ４のローカル変数ワークシートに登録する（Ｓ５０７）。登録済みの場合は、この外部参照変数を他のＰＯＵが参照しているか否かを判断する（Ｓ５０４）。
【００２６】
そして、他のＰＯＵが参照している場合は、その変数が依然グローバル変数のままであると判断し、ステップＳ５０２に戻り、次の外部参照変数を取り出す。他のＰＯＵが参照していない場合は、その変数がグローバル変数からローカル変数に変わったと判断し、所定のメッセージで変数の登録変更をプログラム編集者に通知する（Ｓ５０５）。その後、このグローバル変数をローカル変数に変更してＰＯＵ４のローカル変数ワークシートに登録するとともに、グローバル変数ワークシートから削除する（Ｓ５０６）。こうして、すべての外部参照変数を処理し（Ｓ５０８）、ＰＯＵ４のローカル変数ワークシートを完成し、グローバル変数ワークシートを更新して、結合作業を終了する。
【００２７】
図８は結合後のグローバル変数ワークシートを例示する。この実施例では、ＰＯＵ１から分割されたＰＯＵ２とＰＯＵ３を結合してＰＯＵ４を生成している。このため、結合前のグローバル変数ワークシート（図７参照）に登録されていた変数ｍＭＤＳＬＡＳと変数ｍＲＭＣＫは、結合に伴ってグローバル変数からＰＯＵ４固有のローカル変数に変わり、図８に示す結合後のグローバル変数ワークシートから自動的に削除される。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態を示すプログラム編集装置のブロック図である。
【図２】ＰＯＵ１のプログラムワークシートを示す模式図である。
【図３】ＰＯＵ１のローカル変数ワークシートを示す模式図である。
【図４】グローバル変数ワークシートを示す模式図である。
【図５】ＰＯＵ２のローカル変数ワークシートを示す模式図である。
【図６】ＰＯＵ３のローカル変数ワークシートを示す模式図である。
【図７】分割後のグローバル変数ワークシートを示す模式図である。
【図８】結合後のグローバル変数ワークシートを示す模式図である。
【図９】ＰＯＵの分割処理を示すフローチャートである。
【図１０】ＰＯＵの結合処理を示すフローチャートである。
【図１１】図１０に続く結合処理を示すフローチャートである。
【図１２】従来のプログラム編集装置を示すブロック図である。
【符号の説明】
【００２９】
１  プログラム編集装置
１４０  入力装置
１５０  出力装置
１６０  ＰＯＵ分割・結合制御部
１７０  ＰＯＵ編集制御部
１８０  ＰＬＣプログラムメモリ
１８１  ＰＯＵ
１８２  プログラムワークシート
１８３  ローカル変数ワークシート
１８４  グローバル変数ワークシート
【図１】
2010049484.tif 000003
【図２】
2010049484.tif 000004
【図３】
2010049484.tif 000005
【図４】
2010049484.tif 000006
【図５】
2010049484.tif 000007
【図６】
2010049484.tif 000008
【図７】
2010049484.tif 000009
【図８】
2010049484.tif 000010
【図９】
2010049484.tif 000011
【図１０】
2010049484.tif 000012
【図１１】
2010049484.tif 000013
【図１２】
2010049484.tif 000014