(57)【要約】【課題】  プログラムモジュールに変更を加える際の操作性を向上させた制御プログラム作成装置を提供する。【解決手段】  複数のシステム構成情報２２、デバイス指定を用いて記述された複数のプログラムモジュール２３、及び、システム構成情報２２及びプログラムモジュール２３を指定する複数のプログラム構成情報２４を記憶するプログラム情報記憶部２１と、プログラム構成情報２４により指定されたプログラムモジュール２３に関連付けられているシステム構成情報２２、及び、プログラム構成情報２４で指定されているシステム構成情報２２を比較するシステム構成比較部２５と、システム構成比較部２５による比較結果に基づいてプログラムモジュール２３内で用いられているデバイス指定を変更し、制御プログラムを生成する制御プログラム生成部２６により構成される。【選択図】  図２
2007310571.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定するプログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成する制御プログラム作成装置において、
上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶手段と、
上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶手段と、
上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶手段と、
上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較手段と、
上記システム構成比較手段による比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成手段とを備えたことを特徴とする制御プログラム作成装置。
【請求項２】
接続可能な上記拡張ユニットが規定されたＣＰＵユニット情報を上記システム構成情報に関連付けて記憶するＣＰＵユニット情報記憶手段と、
上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報により指定されている上記ＣＰＵユニット情報を比較し、整合性を判別する整合性判別手段とを備え、
上記制御プログラム生成手段が、上記整合性判別手段による判別結果に基づいて、上記プログラムモジュール内で用いられているデバイス指定を変更することを特徴とする請求項１に記載の制御プログラム作成装置。
【請求項３】
上記制御プログラム生成手段は、上記ＣＰＵユニット情報で規定されていない拡張ユニットを指定するデバイス指定がプログラムモジュール内に存在する場合に、当該デバイス指定を無効化することを特徴とする請求項２に記載の制御プログラム作成装置。
【請求項４】
ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定する制御プログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成する制御プログラム作成装置において実行される編集プログラムであって、
上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶手順と、
上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶手順と、
上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶手順と、
上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較手順と、
上記システム構成比較手順における比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成手順とを実行することを特徴とする編集プログラム。
【請求項５】
ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定するプログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成するプログラム作成方法において、
上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶ステップと、
上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶ステップと、
上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶ステップと、
上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較ステップと、
上記システム構成比較ステップにおける比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成ステップとからなることを特徴とするプログラム作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム作成装置、編集プログラム及びプログラム作成方法に係り、さらに詳しくは、ＣＰＵユニット及びＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定する制御プログラムを作成するプログラム作成装置の改良に関する。
【背景技術】
【０００２】
駆動装置やセンサーなどの機器を制御する制御装置として、ＰＬＣ（Programmable Logic Controller：プログラマブルロジックコントローラ）が知られている。ＰＬＣは、ラダーエディタなどのプログラム作成装置を用いて作成された制御プログラムに基づいて動作するプログラム書き換え可能な電子機器である。一般に、ＰＬＣには、様々な拡張ユニットが接続され、ＰＬＣ本体（ここでは、ＣＰＵユニットと呼ぶことにする）及び拡張ユニットにより構成されるＰＬＣシステムとして使用される場合が少なくない。拡張ユニットは、特定の機能に特化した付加ユニットであり、ＣＰＵユニットとの接続時には、ＣＰＵユニット内のメモリ領域が割り当てられる。ＣＰＵユニットは、特定のメモリ領域を割り当てた拡張ユニットに対し、所定のメモリアドレスにより指定されるメモリ領域内の状態データを変化させることで、当該拡張ユニットの制御を行っている。
【０００３】
この様なＣＰＵユニットや拡張ユニットに接続される機器及び各ユニットが備える特定の機能は、通常、デバイスと呼ばれ、ユニットごとに規定されている。上記プログラム作成装置では、この様なデバイスに対応付けてＣＰＵユニット内のメモリアドレスをユーザが指定することにより、制御プログラムが作成される。すなわち、ＣＰＵユニット及び拡張ユニットが規定するデバイスをＣＰＵユニット内のメモリ領域のアドレスによって指定することをデバイス指定と呼ぶことにすると、制御プログラムは、この様なデバイス指定を用いて記述される。
【０００４】
最近では、制御プログラムを特定の機能ごとに区分して作成する場合が少なくない。機能ごとの区分は、通常、プログラムモジュールと呼ばれ、デバイス指定を用いて記述される。作成された複数のプログラムモジュールは、拡張ユニットに対するメモリ領域の割り当て情報（ここでは、システム構成情報と呼ぶことにする）に関連付けて保持され、ＰＬＣシステムへの転送時には、１つの制御プログラムとして転送される。
【０００５】
従来、制御プログラムは、システム構成情報に基づいて作成され、システム構成、すなわち、アドレス割り当てが共通する各プログラムモジュールは、システム構成情報に関連付けて１つの制御プログラムとして保持される。従って、機能が同じプログラムモジュールであっても、アドレス割り当てが異なると、異なる制御プログラムとして保持されることとなる。このため、機能が同じプログラムモジュールに変更を加えようとすると、当該プログラムモジュールを含みアドレス割り当ての異なる各制御プログラムについて変更を加えなければならず、操作性が良くないという問題があった。
【０００６】
そこで、アドレス割り当ての異なる制御プログラムを新たに作成する際、機能の異ならないプログラムモジュールについては、当該プログラムモジュールが保持されている制御プログラムを指定するリンク先指定情報のみを保持させるようにすることが考えられる。しかし、プログラムモジュールの実体が機能の異なる制御プログラムに分散される場合が生じるので、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成しようとすると、編集対象のプログラムモジュールがいずれの制御プログラムに保持されているのかがわからなくなってしまうという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した通り、従来の制御プログラム作成装置では、機能が同じプログラムモジュールに変更を加えた際に、当該プログラムモジュールを含みアドレス割り当ての異なる各制御プログラムについて変更を加えなければならないので、操作性が良くないという問題があった。また、プログラムモジュールの実体が機能の異なる制御プログラムに分散される場合が生じるので、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成する際に、編集対象のプログラムモジュールがいずれの制御プログラムに保持されているのかがわからなくなるという問題があった。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、プログラムモジュールに変更を加える際の操作性を向上させた制御プログラム作成装置、編集プログラム及びプログラム作成方法を提供することを目的とする。特に、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成する際に、当該プログラムモジュールがいずれの制御プログラムとして保持されているのかがわからなくなるのを防止することができる制御プログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の本発明による制御プログラム作成装置は、ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定するプログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成する制御プログラム作成装置であって、上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶手段と、上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶手段と、上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶手段と、上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較手段と、上記システム構成比較手段による比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成手段とを備えて構成される。
【００１０】
この制御プログラム作成装置では、各プログラムモジュールがシステム構成情報にそれぞれ関連付けて記憶され、システム構成情報及びプログラムモジュールを指定するプログラム構成情報が記憶される。その際、プログラム構成情報によって指定されたプログラムモジュールに関連付けられているシステム構成情報と、当該プログラム構成情報で指定されているシステム構成情報とが比較され、この比較結果に基づいてプログラムモジュール内で用いられているデバイス指定を変更して制御プログラムが生成される。この様な構成により、プログラム構成情報に基づいてシステム構成が比較され、その比較結果に応じて制御プログラムが生成されるので、異なるアドレス割り当てを指定する複数の制御プログラムについて、同じプログラムモジュールを使用して制御プログラムを生成させることができる。従って、プログラムモジュールに変更を加える際の操作性を向上させることができるとともに、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成する際に当該プログラムモジュールがいずれの制御プログラムとして保持されているのかがわからなくなるのを防止することができる。
【００１１】
第２の本発明による制御プログラム作成装置は、上記構成に加え、接続可能な上記拡張ユニットが規定されたＣＰＵユニット情報を上記システム構成情報に関連付けて記憶するＣＰＵユニット情報記憶手段と、上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報により指定されている上記ＣＰＵユニット情報を比較し、整合性を判別する整合性判別手段とを備え、上記制御プログラム生成手段が、上記整合性判別手段による判別結果に基づいて、上記プログラムモジュール内で用いられているデバイス指定を変更するように構成される。すなわち、プログラム構成情報によって指定されたプログラムモジュールに関連付けられているシステム構成情報と、当該プログラム構成情報によりシステム構成情報を介して指定されているＣＰＵユニット情報とが比較され、整合性が判別される。この制御プログラム作成装置では、この様な整合性の判別結果に基づいてプログラムモジュール内で用いられているデバイス指定が変更されるので、接続可能でない拡張ユニットを指定するデバイス指定を含むプログラムモジュールがプログラム構成情報で指定されている場合であっても制御プログラムを適切に作成させることができる。
【００１２】
第３の本発明による制御プログラム作成装置は、上記構成に加え、上記制御プログラム生成手段が、上記ＣＰＵユニット情報で規定されていない拡張ユニットを指定するデバイス指定がプログラムモジュール内に存在する場合に、当該デバイス指定を無効化するように構成される。
【００１３】
第４の本発明による編集プログラムは、ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定する制御プログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成する制御プログラム作成装置において実行される編集プログラムであって、上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶手順と、上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶手順と、上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶手順と、上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較手順と、上記システム構成比較手順における比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成手順とを実行することを特徴とする。
【００１４】
第５の本発明によるプログラム作成方法は、ＣＰＵユニット及びこのＣＰＵユニット内のメモリ領域が割り当てられた拡張ユニットにより構成されるＰＬＣシステムの動作を規定するプログラムであって、上記拡張ユニットのデバイスを上記メモリ領域のアドレスにより指定するデバイス指定を用いて記述される制御プログラムを作成するプログラム作成方法であって、上記拡張ユニットに対する上記メモリ領域の割り当て情報をシステム構成情報として記憶するシステム構成記憶ステップと、上記デバイス指定を用いて記述された２以上のプログラムモジュールを上記システム構成情報にそれぞれ関連付けて記憶するプログラムモジュール記憶ステップと、上記システム構成情報及び上記プログラムモジュールを指定する２以上のプログラム構成情報を記憶するプログラム構成記憶ステップと、上記プログラム構成情報により指定されたプログラムモジュールに関連付けられているシステム構成情報、及び、上記プログラム構成情報で指定されているシステム構成情報を比較するシステム構成比較ステップと、上記システム構成比較ステップにおける比較結果に基づいて上記プログラムモジュール内で用いられているデバイス指定を変更し、上記制御プログラムを生成する制御プログラム生成ステップとからなることを特徴とする。
【発明の効果】
【００１５】
本発明による制御プログラム作成装置、編集プログラム及びプログラム作成方法によれば、プログラム構成情報に基づいてシステム構成が比較され、比較結果に応じて制御プログラムが生成されるので、異なるアドレス割り当てを指定する複数の制御プログラムについて、同じプログラムモジュールを使用して制御プログラムを生成させることができる。従って、プログラムモジュールに変更を加える際の操作性を向上させることができるとともに、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成する際に当該プログラムモジュールがいずれの制御プログラムとして保持されているのかがわからなくなるのを防止することができる。
【発明を実施するための最良の形態】
【００１６】
実施の形態１．
図１は、本発明の実施の形態１による制御プログラム作成装置１００を含む制御システムの概略構成の一例を示した斜視図である。この制御システムは、ＣＰＵユニット１０及び拡張ユニット１１〜１３により構成されるＰＬＣシステム１と、ＰＬＣシステム１の動作を規定する制御プログラム２ａ及びシステム構成情報２ｂを作成する制御プログラム作成装置１００からなる。ＰＬＣシステム１は、例えば、工場内に配置され、製造ラインに関する各種制御に使用される。
【００１７】
ＣＰＵユニット１０は、入出力機器５及び拡張ユニット１１〜１３の制御を行う制御装置であり、プログラム情報記憶部２、ＣＰＵ３及び状態データ記憶部４が設けられている。入出力機器５は、駆動装置、インジケータなどの出力装置、又は、センサー、スイッチ、カウンタなどの入力装置からなる。
【００１８】
拡張ユニット１１〜１３は、ＣＰＵユニット１０に対して着脱可能な付加ユニットである。ここでは、温度調節ユニット１１、入出力ユニット１２、ネットワーク接続ユニット１３が拡張ユニットとしてＣＰＵユニット１０に接続されているものとする。また、各ユニット１１〜１３は、この順序でＣＰＵユニット１０に連結されているものとする。
【００１９】
温度調節ユニット１１は、温度センサー６からの検出データに基づいてヒーター７を制御し、温度管理を行うための拡張ユニットである。入出力ユニット１２は、複数の入出力機器の接続可能な端子台を有する拡張ユニットである。ネットワーク接続ユニット１３は、ＬＡＮなどの通信ネットワーク８に接続するための拡張ユニットである。
【００２０】
ＣＰＵユニット１０は、各拡張ユニット１１〜１３が接続されていなくても機能するユニットであるのに対し、拡張ユニット１１〜１３は、単体では機能せず、ＣＰＵユニット１０に接続させた状態で使用されるユニットとなっている。
【００２１】
プログラム情報記憶部２は、制御プログラム作成装置１００から転送された制御プログラム２ａ及びシステム構成情報２ｂを書き換え可能に記憶するメモリである。制御プログラム２ａは、ＰＬＣシステム１の動作を規定するプログラムであり、デバイス指定を用いて記述される。ここでいうデバイスとは、各ユニット１０〜１３に接続される入出力装置、又は、各ユニット１０〜１３が備える特定の機能のことであり、デバイス指定は、各ユニット１０〜１３が規定するデバイスを状態データ記憶部４内のメモリ領域のアドレスによって指定するプログラムデータである。
【００２２】
システム構成情報２ｂは、各ユニット１０〜１３に対するメモリ領域の割り当て情報であり、状態データ記憶部４内のメモリ領域を示すアドレス情報がユニットごとに指定されている。
【００２３】
ＣＰＵ３は、プログラム情報記憶部２内に格納されている制御プログラム２ａに基づいて動作し、システム構成情報２ｂに基づいて状態データ記憶部４に対する状態データの読み書きを行う制御回路である。ここでいう状態データは、デバイスへの出力データ、デバイスからの入力データ、又は、デバイスの制御データのことである。
【００２４】
状態データ記憶部４は、メモリアドレスで指定される領域内に状態データを書き換え可能に記憶するメモリであり、ＣＰＵ３がシステム構成情報２ｂに基づいて各ユニットについて割り当てたメモリ領域４ａ〜４ｄからなる。
【００２５】
ここでは、メモリ領域４ａが「ユニット０」としてＣＰＵユニット１０に割り当てられた領域であるものとする。このメモリ領域４ａ内にＣＰＵユニット１０に関する状態データが格納される。また、メモリ領域４ｂが「ユニット１」として温度調節ユニット１１に割り当てられた領域であるものとする。このメモリ領域４ｂ内に温度調節ユニット１１に関する状態データが格納される。また、メモリ領域４ｃが「ユニット２」として入出力ユニット１２に割り当てられた領域であるものとする。このメモリ領域４ｃ内に入出力ユニット１２に関する状態データが格納される。また、メモリ領域４ｄが「ユニット３」としてネットワーク接続ユニット１３に割り当てられた領域であるものとする。このメモリ領域４ｄ内にネットワーク接続ユニット１３に関する状態データが格納される。
【００２６】
ＣＰＵユニット１０は、この様なメモリ領域４ｂ〜４ｄを割り当てた各ユニット１１〜１３に対し、メモリアドレスにより指定されるメモリ領域内の状態データを変化させることで、各ユニット１１〜１３の制御を行っている。
【００２７】
制御プログラム作成装置１００は、制御プログラム２ａを生成するプログラム生成装置であり、ユーザ操作に基づいて制御プログラムを作成編集する機能を備えている。ここでは、制御プログラム作成装置１００がディスプレイ１００ａ及び操作入力部１００ｂを有するパーソナルコンピュータなどの情報処理端末により提供されるものとする。
【００２８】
なお、この様な制御プログラム作成装置１００は、情報処理端末上で編集プログラムを実行することにより実現することができる。この様な編集プログラムは、ＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体を介して提供され、或いは、情報処理端末とともに提供されるものとする。
【００２９】
図２、図３（ａ）及び（ｂ）は、図１の制御システムの要部における構成例を示したブロック図であり、制御プログラム作成装置１００内の機能構成が示されている。この制御プログラム作成装置１００は、操作入力部１００ｂの他に、プログラム情報記憶部２１、システム構成比較部２５及び制御プログラム生成部２６により構成される。
【００３０】
プログラム情報記憶部２１は、システム構成情報２２、プログラムモジュール２３及びプログラム構成情報２４を書き換え可能に記憶するメモリである。システム構成情報２２は、ＣＰＵユニット及び拡張ユニットに対するメモリ領域の割り当て情報である。
【００３１】
プログラムモジュール２３は、デバイス指定を用いて記述される制御プログラムの一部分であり、例えば、特定の機能を実現する機能ブロックとして作成される。各プログラムモジュール２３は、それぞれシステム構成情報２２に関連付けて記憶される。
【００３２】
ここでは、アドレス割り当ての異なる複数のシステム構成情報２２が、「システム構成Ａ１」、「システム構成Ａ２」、・・・、「システム構成Ａｍ」（ｍは、２以上の整数）として記憶されているものとする。また、機能の異なる複数のプログラムモジュール２３が、「モジュールａ１」、「モジュールａ２」、・・・、「モジュールａｎ」（ｎは、２以上の整数）として記憶されているものとする。
【００３３】
プログラム構成情報２４は、システム構成情報２２及びプログラムモジュール２３を指定する指定情報である。このプログラム構成情報２４では、プログラム情報記憶部２１内に格納されている各システム構成情報２２のうちの１つと、各プログラムモジュール２３のうちの１又は２以上が指定される。ここでは、指定先とするシステム構成情報２２やプログラムモジュール２３の異なる複数のプログラム構成情報２４が、「プログラム構成Ｂ１」、「プログラム構成Ｂ１」、・・・、「プログラム構成Ｂｈ」（ｈは、２以上の整数）として記憶されているものとする。
【００３４】
図３（ａ）には、プログラム構成情報２４がプログラムモジュール２３及びシステム構成情報２２に関連付けられている様子が示されている。この例では、「プログラム構成Ｂｉ」（ｉは、１〜ｈのいずれか）が、「モジュールａ２」及び「モジュールａ３」を指定しているとともに、「システム構成Ａ１」を指定している。図３（ｂ）には、プログラムモジュール２３がシステム構成情報２２に関連付けられている様子が示されている。この例では、「モジュールａｉ」が、「システム構成Ａ２」に関連付けられている。
【００３５】
システム構成比較部２５は、ユーザが選択したプログラム構成情報２４により指定されたプログラムモジュール２３に関連付けられているシステム構成情報２２と、プログラム構成情報２４で指定されているシステム構成情報２２とを比較する処理を行っている。
【００３６】
制御プログラム生成部２６は、システム構成比較部２５による比較結果に基づいて、プログラムモジュール２３内で用いられているデバイス指定を変更し、制御プログラムを生成する処理を行っている。具体的には、ユーザが制御プログラムの編集対象として選択したプログラム構成情報２４に関し、このプログラム構成情報２４によって指定されているプログラムモジュール２３の中に、プログラム構成情報２４で指定されているシステム構成情報２２とはアドレス割り当ての異なるシステム構成情報に関連付けられているプログラムモジュールが存在するか否かに応じてデバイス指定の変更が行われる。
【００３７】
例えば、プログラム構成情報２４によって指定されているプログラムモジュール２３の中に、プログラム構成情報２４で指定されているシステム構成情報２２とはアドレス割り当ての異なるシステム構成情報に関連付けられているプログラムモジュールが存在すれば、当該プログラムモジュールについて、モジュール内で用いられているデバイス指定が変更される。このデバイス指定の変更は、上記プログラム構成情報２４で指定されているシステム構成情報２１に基づいて自動的に行われる。
【００３８】
図４は、図２の制御プログラム作成装置１００における動作の一例を示した図であり、編集対象とするプログラム構成を選択させるプログラム構成の選択画面３１が示されている。この選択画面３１は、ディスプレイ１００ａ上の入力画面であり、編集対象として選択されたプログラム構成情報２４が表示される。
【００３９】
選択画面３１には、選択中のプログラム構成情報２４を表示する表示領域３２と、予め登録されたプログラム構成情報２４を表示する表示領域３３が配置されている。表示領域３３内には、プログラム構成情報２４の識別情報が一覧表示（ここでは、プログラム構成ライブラリと呼ぶことにする）され、プログラム構成情報２４の各識別情報には、チェックボックス３４が配置されている。このチェックボックス３４にチェックを入れることにより、当該プログラム構成情報２４を択一的に選択することができる。
【００４０】
ここでは、プログラム構成情報２４の識別情報として、文字列「プログラム構成Ｂ１」〜「プログラム構成Ｂ３」が表示され、「プログラム構成Ｂ１」が選択中であるものとする。チェックを変更すれば、編集対象とするプログラム構成を切り替えることができる。
【００４１】
表示領域３２は、表示領域３３の左側に配置され、表示領域３３内で選択中のプログラム構成情報２４によって指定されているシステム構成情報２２、ＣＰＵユニット情報及びプログラムモジュール２３の各識別情報が現在のプログラム構成として表示されている。具体的には、「プログラム構成Ｂ１」で指定されているシステム構成情報２２として、「システム構成Ａｋ１」が表示され、ＣＰＵユニット情報として、「ＣＰＵユニット設定情報Ｃｋ２」が表示されている。また、プログラムモジュール２３として、「プログラムモジュールａ」〜「プログラムモジュールｄ」が表示されている。
【００４２】
ここで、ＣＰＵユニット設定情報は、拡張ユニットに対するアドレス割り当てを規定する情報であり、例えば、接続可能な拡張ユニットが規定されている。この様な選択画面３１の表示状態で、例えば、「新規登録」ボタンを操作すれば、プログラム構成情報２４を新たに作成してその識別情報を表示領域３３内に追加させることができる。また、表示領域３２内で「システム構成Ａｋ１」を選択すれば、システム構成情報の編集画面に切り替えられ、当該システム構成を変更することができる。また、「ＣＰＵユニット設定情報Ｃｋ２」を選択すれば、ＣＰＵユニット設定情報の編集画面に切り替えられ、当該ＣＰＵユニット設定情報を変更することができる。また、「プログラムモジュールａ」〜「プログラムモジュールｄ」のいずれか１つを選択すれば、プログラムモジュールの編集画面に切り替えられ、当該プログラムモジュールを変更することができる。
【００４３】
本実施の形態では、選択画面３１の表示状態で、例えば、「実行」キー又は「ＯＫ」ボタンを操作すれば、その操作入力に基づいて、プログラム構成ライブラリで選択されているプログラム構成情報２４に基づくシステム構成の比較処理が行われ、その比較処理に基づいて制御プログラムが生成される。具体的には、「システム構成Ａｋ１」と、「プログラムモジュールａ」〜「プログラムモジュールｄ」にそれぞれ関連付けられているシステム構成とが比較され、「システム構成Ａｋ１」とはアドレス割り当ての異なるプログラムモジュールが存在すれば、当該プログラムモジュールについて、モジュール内のデバイス指定が変更される。
【００４４】
図５（ａ）及び（ｂ）は、図２の制御プログラム作成装置１００における動作の一例を示した図であり、アドレス割り当ての異なるシステム構成情報４１及び４２が示されている。図５（ａ）には、ユーザが選択したプログラム構成情報２４で指定されているプログラムモジュール２３に関連付けられているシステム構成情報４１が示されている。また、図５（ｂ）には、ユーザが選択したプログラム構成情報２４で指定されているシステム構成情報４２が示されている。
【００４５】
システム構成情報４１は、ユーザが選択画面３１上で選択したプログラム構成情報２４によって指定されているプログラムモジュール２３に関連付けられているシステム構成（ここでは、「システム構成Ａ１」と呼ぶことにする）であり、ユニットごとのアドレス割り当てからなる。
【００４６】
具体的には、ＣＰＵユニットとして、「０．ＫＶ−１０００」が割り当てられ、拡張ユニットとして、「１．ＫＶ−Ｃ３２Ｘ」、「２．ＫＶ−Ｂ１６Ｔ」、「３．ＫＶ−Ｈ２０Ｇ」、「４．ＭＶ−Ｌ４０」が割り当てられている。拡張ユニット「１．ＫＶ−Ｃ３２Ｘ」には、メモリアドレス「Ｒ３００００」で始まるメモリ領域が指定され、「２．ＫＶ−Ｂ１６Ｔ」には、アドレス「Ｒ３０２００」で始まるメモリ領域が指定されている。また、拡張ユニット「３．ＫＶ−Ｈ２０Ｇ」には、アドレス「Ｒ３０３００」で始まるメモリ領域と、アドレス「ＤＭ１００００」が指定され、拡張ユニット「４．ＭＶ−Ｌ４０」には、アドレス「Ｒ３２１００」で始まるメモリ領域と、アドレス「ＤＭ１０６００」が指定されている。
【００４７】
一方、システム構成情報４２は、ユーザが選択画面３１上で選択したプログラム構成情報２４によって指定されているシステム構成（ここでは、「システム構成Ａ２」と呼ぶことにする）であり、ユニットごとのアドレス割り当てからなる。
【００４８】
具体的には、ＣＰＵユニットとして、「０．ＫＶ−１０００」が割り当てられ、拡張ユニットとして、「１．ＫＶ−Ｂ１６Ｔ」、「２．ＫＶ−Ｃ３２Ｘ」、「３．ＫＶ−Ｂ１６Ｔ」、「４．ＫＶ−Ｈ２０Ｇ」、「５．ＭＶ−Ｌ４０」が割り当てられている。拡張ユニット「１．ＫＶ−Ｂ１６Ｔ」には、メモリアドレス「Ｒ３００００」で始まるメモリ領域が指定され、「２．ＫＶ−Ｃ３２Ｘ」には、アドレス「Ｒ３０１００」で始まるメモリ領域が指定されている。また、拡張ユニット「３．ＫＶ−Ｂ１６Ｔ」には、アドレス「Ｒ３０３００」で始まるメモリ領域が指定され、拡張ユニット「４．ＫＶ−Ｈ２０Ｇ」には、アドレス「Ｒ３０４００」で始まるメモリ領域と、アドレス「ＤＭ１００００」が指定されている。また、拡張ユニット「５．ＭＶ−Ｌ４０」には、アドレス「Ｒ３２２００」で始まるメモリ領域と、アドレス「ＤＭ１０６００」が指定されている。
【００４９】
システム構成Ａ１とシステム構成Ａ２とでは、アドレス割り当てが異なっている。このため、プログラム構成情報２４で指定されているプログラムモジュール２３のうち、システム構成Ａ１に従って作成されたプログラムモジュールに対し、システム構成Ａ２に基づくデバイス指定の変更処理が行われる。
【００５０】
具体的には、ユニット「ＫＶ−Ｃ３２Ｘ」に関して、アドレス「Ｒ３００００」を「Ｒ３０１００」に置き換え、ユニット「ＫＶ−Ｂ１６Ｔ」に関して、アドレス「Ｒ３０２００」を「Ｒ３０３００」に置き換える処理が行われる。また、ユニット「ＫＶ−Ｈ２０Ｇ」に関して、アドレス「Ｒ３０３００」を「Ｒ３０４００」に置き換え、ユニット「ＭＶ−Ｌ４０」に関して、アドレス「Ｒ３２１００」を「Ｒ３２２００」に置き換える処理が行われる。この様にして、プログラムモジュール２３内のデバイス指定を変更させることにより、メモリアドレスの割り当てに不整合が生じるのを防止することができる。
【００５１】
図６のステップＳ１０１〜Ｓ１０８は、図２の制御プログラム作成装置１００における動作の一例を示したフローチャートである。まず、システム構成比較部２５は、選択画面３１上で編集対象とするプログラム構成が選択指定されると、表示領域３２内に現在のプログラム構成として表示させる（ステップＳ１０１，Ｓ１０２）。
【００５２】
このとき、プログラム構成を変更するための操作入力が行われれば、その操作入力に基づいてプログラム構成情報２４が書き換えられる（ステップＳ１０３，Ｓ１０８）。次に、システム構成比較部２５は、「実行」キー又は「ＯＫ」ボタンが操作されれば、プログラム構成情報２４に基づいてシステム構成を比較し、比較結果を制御プログラム生成部２６へ出力する（ステップＳ１０４）。
【００５３】
制御プログラム生成部２６は、プログラム構成情報２４で指定されたプログラムモジュール２３内のデバイス指定で指定されているユニットにシステム構成情報２２で指定されているものとはアドレス割り当ての異なるユニットが存在すれば、当該プログラムモジュール内のデバイス指定についてメモリアドレスを置換し、置換処理後のプログラムモジュールから制御プログラムを生成する（ステップＳ１０５〜Ｓ１０７）。
【００５４】
本実施の形態によれば、ユーザが選択したプログラム構成情報２４に基づいてシステム構成が比較され、その比較結果に応じて制御プログラムが生成されるので、異なるアドレス割り当てを指定する複数の制御プログラムについて、同じプログラムモジュール２３を使用して制御プログラムを生成させることができる。従って、プログラムモジュールの実体が複数の制御プログラムに分散されることがないので、プログラムモジュール２３に変更を加える際の操作性を向上させることができる。また、機能の異ならないプログラムモジュールを流用して新たに制御プログラムを作成する際に、当該プログラムモジュールがいずれの制御プログラムとして保持されているのかがわからなくなるのを防止することができる。
【００５５】
なお、本実施の形態では、プログラム情報記憶部２１内に複数のプログラム構成情報２４、プログラムモジュール２３及びシステム構成情報２２が予め格納されており、ユーザがプログラム構成情報２４の１つを選択指定すると、システム構成情報２２の比較処理が行われ、その比較結果に基づいてデバイス指定が変更される場合の例について説明したが、本発明はこれに限られるものではない。例えば、新たにプログラム構成情報２４を作成する際、プログラム構成ライブラリに既に登録されているプログラム構成で指定されているプログラムモジュール２３を選択することによって当該プログラムモジュール２３をプログラム構成に追加することもできる。
【００５６】
具体的には、新たにプログラム構成情報２４を作成する際、新たなプログラム構成情報２４の識別情報が入力され、システム構成情報２２やプログラムモジュール２３が指定される。このとき、プログラム構成ライブラリに未登録のプログラムモジュール２３については、新たに作成し、プログラム構成ライブラリに追加される。プログラム構成ライブラリ内のプログラム構成で指定されているプログラムモジュール２３を指定する場合には、当該プログラムモジュール２３の識別情報を選択画面３１上でドラッグ&ドロップすることによって、プログラム構成に追加される。
【００５７】
実施の形態２．
実施の形態１では、ユーザが選択したプログラム構成情報２４に基づいてシステム構成が比較され、その比較結果に基づいてプログラムモジュール２３内のデバイス指定が変更される場合の例について説明した。これに対し、本実施の形態では、ユーザが選択したプログラム構成情報２４に基づいてシステム構成情報２２及びＣＰＵユニット情報が比較され、その整合性の判別結果に基づいてプログラムモジュール２３内のデバイス指定を変更する場合について説明する。
【００５８】
図７、図８（ａ）及び（ｂ）は、本発明の実施の形態２による制御プログラム作成装置２００の構成例を示したブロック図である。この制御プログラム作成装置２００は、操作入力部１００ｂの他に、プログラム情報記憶部２２１、システム構成比較部２５、整合性判別部２０２及び制御プログラム生成部２６により構成される。
【００５９】
プログラム情報記憶部２２１は、システム構成情報２２、プログラムモジュール２３、プログラム構成情報２４及びＣＰＵユニット情報２０１を書き換え可能に記憶するメモリである。
【００６０】
ＣＰＵユニット情報２０１は、拡張ユニットに対するアドレス割り当てを規定する情報であり、ＣＰＵユニットの機種などに応じて定められる。例えば、接続可能な拡張ユニットがＣＰＵユニット情報２０１として規定される。ここでは、異なるシステム構成情報２２に関連付けられる複数のＣＰＵユニット情報２０１が、「ＣＰＵユニット設定情報Ｃ１」、「ＣＰＵユニット設定情報Ｃ２」、・・・、「ＣＰＵユニット設定情報Ｃｋ」（ｋは、２以上の整数）として記憶されているものとする。
【００６１】
プログラム構成情報２４では、システム構成情報２２及びプログラムモジュール２３の他に、各ＣＰＵユニット情報２０１のうちの１つが指定される。
【００６２】
図８（ａ）には、プログラム構成情報２４がプログラムモジュール２３、システム構成情報２２及びＣＰＵユニット情報２０１に関連付けられている様子が示されている。この例では、「プログラム構成Ｂｉ」（ｉは、１〜ｈのいずれか）が、「モジュールａ１」、「モジュールａ２」、「システム構成Ａ１」及び「ＣＰＵユニットＣ１」を指定している。図８（ｂ）には、ＣＰＵユニット情報２０１がシステム構成情報２２に関連付けられている様子が示されている。この例では、「ＣＰＵユニット設定情報Ｃｉ」が、「システム構成Ａ１」及び「システム構成Ａ２」に関連付けられている。
【００６３】
整合性判別部２０２は、ユーザが選択したプログラム構成情報２４により指定されたプログラムモジュール２３に関連付けられているシステム構成情報２２と、プログラム構成情報２４により指定されているＣＰＵユニット情報２０１とを比較し、整合性を判別する処理を行っている。
【００６４】
制御プログラム生成部２６では、整合性判別部２０２による判別結果に基づいて、プログラムモジュール２３内で用いられているデバイス指定を変更する処理が行われる。具体的には、例えば、ＣＰＵユニット情報２０１で規定されていない拡張ユニットを指定するデバイス指定がプログラムモジュール２３内に存在する場合に、当該デバイス指定が無効化される。
【００６５】
通常、システム構成情報２２は、ＣＰＵユニット情報２０１に従って定められ、プログラムモジュール２３は、システム構成情報に従って作成される。このため、ユーザが選択指定したプログラム構成情報２４によって指定されたプログラムモジュール２３の中には、当該プログラム構成情報２４で指定されているＣＰＵユニット情報２０１で規定されていないユニットを指定するデバイス指定を含むものが存在する場合がある。
【００６６】
この様な場合に、当該プログラムモジュールについて、上記ユニットを指定するデバイス指定が無効化される。例えば、デバイス指定に対応付けられているメモリアドレスが所定の変数（「？？？」など）に置き換えられる。
【００６７】
ＣＰＵユニット情報２０１には、接続可能な拡張ユニットの他に、使用可能なデバイス数、メモリアドレスの種類及び範囲、ローカルデバイスの使用の可否、使用可能なモジュールの種類、使用可能なプログラムの種類などが規定されている。メモリアドレスの種類としては、１ビットのメモリ領域を指定するデバイス（ここでは、ビットデバイスと呼ぶことにする）を指定するもの、２以上の所定ビットのメモリ領域を指定するデバイス（ここでは、ワードデバイスと呼ぶことにする）を指定するものなどがある。
【００６８】
ビットデバイスには、入出力リレー（Ｒ）、ＭＲ、ラッチリレー（ＬＲ）などのリレーデバイス、タイマー（Ｔ）、カウンタ（Ｃ）などの接点デバイスがある。入出力リレーデバイスは、外部機器からＣＰＵユニット内にオンオフ情報を取り込んだり、外部機器へオンオフ指令や演算結果を送り出すためのデバイスである。
【００６９】
ワードデバイスには、データメモリ（ＤＭ）、拡張データメモリ（ＥＭ，ＦＭ）、タイマー（Ｔ）、カウンタ（Ｃ）などのメモリデバイスがある。データメモリ及び拡張データメモリデバイスは、プログラム内のコマンドが演算する際に参照するデータを保持したり、演算結果を格納するための１６ビット単位のデバイスである。データメモリ（ＤＭ）デバイスは、拡張ユニットに割り当てることができる。タイマー（Ｔ）は、３２ビットの設定値と、３２ビットの現在値が格納されるデバイスであり、現在値及び設定値の比較結果に基づいてタイムアップし、接点がオンされる。カウンタ（Ｃ）は、３２ビットの設定値と、３２ビットの現在値が格納されるデバイスであり、現在値及び設定値の比較結果に基づいてカウントアップし、接点がオンされる。
【００７０】
ローカルデバイスは、プログラムモジュール２３に関連付けて定められる変数によってメモリアドレスを指定するデバイス指定である。モジュールの種類としては、例えば、毎スキャンモジュール、初期化モジュール、待機モジュールなどがある。毎スキャンモジュールは、ＣＰＵユニットが制御プログラムを実行する際に、制御プログラムを実行するごとに走査されるプログラムモジュールである。初期化モジュールは、ＣＰＵユニットの起動時、最初に１回だけ走査されるプログラムモジュールである。待機モジュールは、制御プログラム内で呼び出されたときにだけ走査されるプログラムモジュールである。
【００７１】
プログラムの種類としては、ラダー形式のコマンドの他、文字列を指定するスクリプトコマンド、マクロコマンドなどがある。
【００７２】
ユーザが選択指定したプログラム構成情報２４によって指定されたプログラムモジュール２３の中に、当該プログラム構成情報２４で指定されているＣＰＵユニット情報２０１で規定されているものとは異なるデバイス数、メモリアドレスの種類及び範囲、ローカルデバイス、モジュールの種類、プログラムの種類を指定するものが存在すれば、当該プログラムモジュールについて、デバイス指定が無効化される。
【００７３】
具体的には、メモリアドレスの種類や範囲が異なる場合には、プログラムモジュール２３内のデバイス指定について、アドレスが変数「？？？」に置き換えられる。ローカルデバイスが使用できない場合には、プログラムモジュール２３内のデバイス指定について、アドレスが変数「？？？」に置き換えられる。
【００７４】
ここでは、デバイス指定の変更処理として、対応するコマンド（命令語）がない場合に、プログラムモジュール２３内のデバイス指定を置換又は削除する処理も含まれるものとする。具体的には、ユーザが選択指定したプログラム構成情報２４によって指定されたプログラムモジュール２３の中に、当該プログラム構成情報２４で指定されているＣＰＵユニット情報２０１で規定されているものとは異なるコマンドを指定するものが存在すると、当該プログラムモジュール内の関連するデバイス指定について、コマンドが対応するもの（例えば、上位コマンド）に置換され、或いは、機能として対応するものがなければ削除される。
【００７５】
モジュールの種類が異なる場合には、当該プログラムモジュールが毎スキャンモジュールに変更される。プログラムの種類が異なる場合には、行コメントを挿入し、或いは、削除される。
【００７６】
図９のステップＳ２０１〜Ｓ２０８は、図７の制御プログラム作成装置２００における動作の一例を示したフローチャートである。まず、システム構成比較部２５は、選択画面３１上で編集対象とするプログラム構成が選択指定されると、表示領域３２内に現在のプログラム構成として表示させる（ステップＳ２０１，Ｓ２０２）。
【００７７】
このとき、プログラム構成を変更するための操作入力が行われれば、その操作入力に基づいてプログラム構成情報２４が書き換えられる（ステップＳ２０３，Ｓ２０８）。次に、システム構成比較部２５は、「実行」キー又は「ＯＫ」ボタンが操作されれば、プログラム構成情報２４に基づいてシステム構成を比較し、比較結果を制御プログラム生成部２６へ出力する。また、整合性判別部２０２は、上記プログラム構成情報２４により指定されたプログラムモジュール２３に関連付けられているシステム構成情報２２と、プログラム構成情報２４により指定されているＣＰＵユニット情報２０１とを比較し、整合性を判別する（ステップＳ２０４）。
【００７８】
制御プログラム生成部２６は、プログラム構成情報２４で指定されたプログラムモジュール２３内のデバイス指定で指定されている拡張ユニットにＣＰＵユニット情報２０１で規定されているものとは異なるユニットが存在すれば、当該プログラムモジュール内のデバイス指定についてメモリアドレスを所定の変数に置換し、デバイス指定を無効化して制御プログラムを生成する（ステップＳ２０５〜Ｓ２０７）。
【００７９】
本実施の形態によれば、システム構成の整合性の判別結果に基づいてプログラムモジュール内で用いられているデバイス指定が変更されるので、接続可能でない拡張ユニットを指定するデバイス指定を含むプログラムモジュールがプログラム構成情報２４で指定されている場合であっても制御プログラムを適切に作成させることができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態１による制御プログラム作成装置１００を含む制御システムの概略構成の一例を示した斜視図である。
【図２】図１の制御システムの要部における構成例を示したブロック図であり、制御プログラム作成装置１００内の機能構成が示されている。
【図３】図１の制御システムの要部における構成例を示したブロック図であり、制御プログラム作成装置１００内の機能構成が示されている。
【図４】図２の制御プログラム作成装置１００における動作の一例を示した図であり、編集対象のプログラム構成の選択画面３１が示されている。
【図５】図２の制御プログラム作成装置１００における動作の一例を示した図であり、アドレス割り当ての異なるシステム構成情報４１及び４２が示されている。
【図６】図２の制御プログラム作成装置１００における動作の一例を示したフローチャートである。
【図７】本発明の実施の形態２による制御プログラム作成装置２００の構成例を示したブロック図である。
【図８】本発明の実施の形態２による制御プログラム作成装置２００の構成例を示したブロック図である。
【図９】図７の制御プログラム作成装置２００における動作の一例を示したフローチャートである。
【符号の説明】
【００８１】
１  ＰＬＣシステム
２  プログラム情報記憶部
２ａ  制御プログラム
２ｂ  システム構成情報
３  ＣＰＵ
４  状態データ記憶部
４ａ〜４ｄ  メモリ領域
１０  ＣＰＵユニット
１１〜１３  拡張ユニット
２１  プログラム情報記憶部
２２  システム構成情報
２３  プログラムモジュール
２４  プログラム構成情報
２５  システム構成比較部
２６  制御プログラム生成部
１００  制御プログラム作成装置
１００ａ  ディスプレイ
１００ｂ  操作入力部
２００  制御プログラム作成装置
２２１  プログラム情報記憶部
２０１  ＣＰＵユニット情報
２０２  整合性判別部
【図１】
2007310571.tif 000003
【図２】
2007310571.tif 000004
【図３】
2007310571.tif 000005
【図４】
2007310571.tif 000006
【図５】
2007310571.tif 000007
【図６】
2007310571.tif 000008
【図７】
2007310571.tif 000009
【図８】
2007310571.tif 000010
【図９】
2007310571.tif 000011