以下に、本発明の実施の形態にかかるシステム設計支援ツールを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかるシステム設計支援ツールを実現するハードウェア構成を示す図である。実施の形態1にかかるシステム設計支援ツールを実現するシステム設計支援装置5は、コンピュータである。システム設計支援装置5は、CPU(Central Processing Unit)601と、RAM(Random Access Memory)602と、ROM(Read Only Memory)603と、記憶部604と、入力部605と、表示部606と、通信インタフェース609と、を備える。
CPU601は、RAM602を作業領域として使用しながら、ROM603に記憶されているプログラムを実行する。記憶部604は、CPU601によって作成されたデータを記憶する。入力部605は、作業者からの入力を受け付ける。表示部606は、文字及び画像を表示する。通信インタフェース609は、他の装置との通信を行う。
図2は、本発明の実施の形態1にかかるシステム設計支援ツールを用いた制御システムの構成を示す図である。
制御システム1は、制御装置2、3及び4と、システム設計支援装置5と、がネットワークNによって接続されて構成されている。
制御装置2、3及び4の各々は、制御プログラムを実行することにより、被制御装置を制御する。制御装置2、3及び4は、プログラマブルコントローラが例示される。被制御装置は、産業機械が例示される。
制御装置2、3及び4の各々は、CPUと、メモリと、を含む。メモリは、RAMが例示される。メモリの一部は、共有メモリ領域に使用され、メモリの他の一部は、ローカルメモリ領域に使用される。共有メモリ領域内の各アクセス単位は、リンクデバイスと呼ばれる。ある制御装置があるリンクデバイスに書き込んだデータは、他の全ての制御装置の同一アドレスのリンクデバイスに転送される。これにより、全ての制御装置間でのデータ共有が実現される。リンクデバイスは、制御装置2、3及び4で夫々実行される複数のアプリケーションである複数の制御プログラム間でデータを連携させるために使用される。
制御プログラムが作成される際は、各リンクデバイスは、アドレスではなく、各リンクデバイスを一意に特定する識別子であるシステムラベルを用いて記述される。これにより、制御プログラムの作成の容易化が図られるとともに、制御プログラムの可読性が高められる。そして、制御プログラムがコンパイルされてオブジェクトコードが作成される際に、システムラベルがアドレスに置換される。
制御装置2は、制御装置2を一意に特定する局番号に「1」が設定されている。制御装置2は、制御装置3及び4を管理する管理局である。制御装置3は、制御装置3を一意に特定する局番号に「2」が設定されている。制御装置3は、制御装置2によって管理される通常局である。制御装置4は、制御装置4を一意に特定する局番号に「3」が設定されている。制御装置4は、制御装置2によって管理される通常局である。ネットワークNは、ネットワークNを一意に特定するネットワーク番号に「1」が設定されている。
システム設計支援装置5は、制御装置2、3及び4がデータを共有するための共有メモリ空間内に設定される複数のリンクデバイスを制御プログラム内で記述するために夫々使用される識別子である複数のシステムラベルを有するシステムラベルリストを生成するシステム設計支援ツール6と、記憶部604と、を備える。システム設計支援装置5は、パーソナルコンピュータが例示される。
システム設計支援ツール6は、システム設計支援装置5内のCPU601がシステム設計支援プログラムを実行することにより、実現される。
システム設計支援ツール6は、制御装置2、3及び4のネットワーク構成を示し、制御装置2、3及び4の各々を一意に特定する局番号を含むシステム構成図30を作成するシステム構成図作成部10と、被制御装置を制御するための制御プログラム並びに制御プログラムの実行時又はコンパイル時に参照される情報を夫々有するプロジェクト31a、31b及び31cを作成するプロジェクト作成部11と、を備える。プロジェクト31a、31b及び31cの各々は、制御装置2、3又は4の局番号と、制御プログラムのオブジェクトコードが実行される際に参照される実行データと、を含む。
制御プログラムの実行時又はコンパイル時に参照される情報は、パラメータ、ワークメモリ領域を規定するデバイスメモリ、並びに、制御装置2、3及び4の複数の端子と産業機械との接続を記述した接続情報が例示される。
また、システム設計支援ツール6は、プロジェクト31a、31b及び31cを、システム構成図30内の制御装置に夫々割り付けるプロジェクト割付部12と、局番号と、複数の制御装置2、3及び4の各々がデータの書き込みを行う共有メモリ空間内の領域であるリンクデバイスの先頭アドレス及び最終アドレスと、の項目を有するネットワーク範囲割付情報32を作成するネットワーク範囲割付情報作成部13と、を備える。
また、システム設計支援ツール6は、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、リンクデバイスを一意に特定する識別子であるシステムラベル、及びリンクデバイスを一意に特定するデバイス名の項目を有するシステムラベルリスト33を作成するシステムラベルリスト作成部14を備える。
また、システム設計支援ツール6は、ネットワーク範囲割付情報の複数のレコードのアドレス範囲が重複するか否かを判定する、ネットワーク範囲割付情報重複判定部15と、システム構成図30の変更に追従して、システムラベルリスト33を変更する第1システムラベルリスト変更部16と、ネットワーク範囲割付情報の変更に追従して、システムラベルリスト33を変更する第2システムラベルリスト変更部17と、を備える。
また、システム設計支援ツール6は、共有メモリ空間内のシステムラベルを作成する対象領域の選択をユーザから受け付けるシステムラベル化対象選択部18と、システム構成図30から、使用できるネットワーク範囲を算出し、ネットワーク範囲割付情報32に反映するネットワーク範囲割付算出反映部19と、を備える。
記憶部604は、システム構成図作成部10によって作成されるシステム構成図30と、プロジェクト作成部11によって作成されるプロジェクト31a、31b及び31と、ネットワーク範囲割付情報作成部13によって作成されるネットワーク範囲割付情報32と、システムラベルリスト作成部14によって作成されるシステムラベルリスト33と、を記憶する。記憶部604は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)が例示される。
図3は、実施の形態1にかかるシステム設計支援ツールのシステムラベル作成動作を示すフローチャートである。まず、ステップS100において、システム構成図作成部10が、システム構成図30の作成を行う。
図4は、実施の形態1にかかるシステム構成図を示す図である。システム構成図30の作成に際しては、まず、システム構成図作成部10は、制御装置2、3及び4に夫々対応するオブジェクト30a、30b及び30cを配置する。オブジェクト30aは、制御装置2に対応しており、局番号「1」が設定される。オブジェクト30bは、制御装置3に対応しており、局番号「2」が設定される。オブジェクト30cは、制御装置4に対応しており、局番号「3」が設定される。次に、システム構成図作成部10は、オブジェクト30a、30b及び30cを接続するオブジェクト30dを配置する。オブジェクト30dは、ネットワークNに対応しており、ネットワーク番号「1」が設定される。
システム構成図作成部10は、制御システム1のネットワーク構成を記述した情報に基づいて、システム構成図30を自動的に作成することが可能である。
再び図3を参照すると、ステップS102において、プロジェクト作成部11が、各制御装置2、3及び4のプロジェクト31a、31b及び31cの作成を行い、プロジェクト割付部12が、プロジェクト31a、31b及び31cのオブジェクト30a、30b及び30cへの割付を行う。
図5は、実施の形態1にかかるシステム構成図を示す図である。プロジェクト割付部12は、作業者の操作入力に基づいて、制御装置2に対応するオブジェクト30aに、オブジェクト30eを割付ける。オブジェクト30eは、プロジェクト31aに対応しており、プロジェクト名「prj01」が設定される。プロジェクト割付部12は、作業者の操作入力に基づいて、制御装置3に対応するオブジェクト30bに、オブジェクト30fを割付ける。オブジェクト30fは、プロジェクト31bに対応しており、プロジェクト名「prj02」が設定される。プロジェクト割付部12は、作業者の操作入力に基づいて、制御装置4に対応するオブジェクト30cに、オブジェクト30gを割付ける。オブジェクト30gは、プロジェクト31cに対応しており、プロジェクト名「prj03」が設定される。
再び図3を参照すると、ステップS104において、ネットワーク範囲割付情報作成部13が、ネットワーク範囲割付情報の作成を行う。
図6は、実施の形態1にかかるネットワーク範囲割付情報を示す図である。ネットワーク範囲割付情報32は、局番号と、制御装置2、3及び4の各々がデータの書き込みを行う共有メモリ空間内の領域であるリンクデバイスの先頭アドレス及び最終アドレスと、の項目を有する。
作業者は、ネットワーク範囲割付情報32の各項目に、局番号と、リンクデバイスの先頭アドレスと、最終アドレスと、を入力する。ネットワーク範囲割付情報32において、第1行32aには、制御装置2の局番号「1」と、先頭アドレス「0x0000」と、最終アドレス「0x000F」と、が入力されている。また、第2行32bには、制御装置3の局番号「2」と、先頭アドレス「0x0010」と、最終アドレス「0x001F」と、が入力されている。また、第3行32cには、制御装置4の局番号「3」と、先頭アドレス「0x0020」と、最終アドレス「0x002F」と、が入力されている。
従って、局番号「1」の制御装置2がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0000」から最終アドレス「0x000F」までの16バイトである。また、局番号「2」の制御装置3がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0010」から最終アドレス「0x001F」までの16バイトである。また、局番号「3」の制御装置4がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0020」から最終アドレス「0x002F」までの16バイトである。
再び図3を参照すると、ステップS106において、システムラベルリスト作成部14が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合することにより、システムラベルリスト33の作成を行う。
図7は、実施の形態1にかかるシステムラベルリストを示す図である。システムラベルリスト33は、リンクデバイスを一意に特定する識別子であるシステムラベル、制御装置に内蔵されているCPU名及びリンクデバイスを一意に特定するデバイス名の項目を有する。なお、システムラベルリスト33は、補助的にプロジェクトのプロジェクト名を含んでも良いが、プロジェクト名は、システムラベルリスト33の必須項目ではない。
システムラベルリスト33において、複数の行33aの各々は、制御装置2がデータの書き込みを行うリンクデバイスの各バイトに対応する。システムラベルリスト作成部14は、複数の行33aの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを予め定められた生成規則に従って作成し、配置する。
実施の形態1において、予め定められた生成規則は、“起動_”という文字列と、当該リンクデバイスにデータを書き込む制御装置の局番号と、“局のスイッチ”という文字列と、当該制御装置がデータを書き込むリンクデバイスの通し番号と、を結合する規則である。
システムラベルリスト33において、複数の行33aの最初の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_1局のスイッチ1」が配置されている。また、複数の行33aの最後の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_1局のスイッチ16」が配置されている。
また、システムラベルリスト作成部14は、複数の行33aの各々において、CPU名の項目には、制御装置2に内蔵されているCPU名「CPU01」を配置する。また、システムラベルリスト作成部14は、複数の行33aの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を配置する。
システムラベルリスト33において、複数の行33bの各々は、制御装置3がデータの書き込みを行うリンクデバイスの各バイトに対応する。システムラベルリスト作成部14は、複数の行33bの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを予め定められた生成規則に従って作成し、配置する。
システムラベルリスト33において、複数の行33bの最初の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_2局のスイッチ1」が配置されている。また、複数の行33bの最後の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_2局のスイッチ16」が配置されている。
また、システムラベルリスト作成部14は、複数の行33bの各々において、CPU名の項目には、制御装置3に内蔵されているCPU名「CPU02」を配置する。また、システムラベルリスト作成部14は、複数の行33bの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を配置する。
システムラベルリスト33において、複数の行33cの各々は、制御装置4がデータの書き込みを行うリンクデバイスの各バイトに対応する。システムラベルリスト作成部14は、複数の行33cの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを予め定められた生成規則に従って作成し、配置する。
システムラベルリスト33において、複数の行33cの最初の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_3局のスイッチ1」が配置されている。また、複数の行33cの最後の行のシステムラベルの項目には、システムラベルリスト作成部14によって生成された「起動_3局のスイッチ16」が配置されている。
また、システムラベルリスト作成部14は、複数の行33cの各々において、CPU名の項目には、制御装置4に内蔵されているCPU名「CPU03」を配置する。また、システムラベルリスト作成部14は、複数の行33cの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を配置する。
上記したように、システム設計支援ツール6によれば、システムラベルリスト作成部14が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を作成することができる。これにより、作業者がシステムラベルリスト33の各項目を入力することが不要となるので、システムラベルリスト33に入力ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
なお、システム設計支援ツール6は、作業者がシステムラベルリスト33を表計算プログラム又はテキストエディタで変更することができないように、システムラベルリスト33にプロテクトを掛けると好適である。これにより、作業者がシステムラベルリスト33の各項目を変更することができなくなるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
図8は、実施の形態1にかかるシステム設計支援ツールのシステムラベル変更動作を示すフローチャートである。ここでは、局番号が「3」である制御装置4が、局番号が「4」である新たな制御装置にリプレースされた場合を例に取って説明する。
まず、ステップS110において、システム構成図作成部10が、システム構成図30の変更を行う。具体的には、システム構成図作成部10は、図4に示す、局番号が「3」である制御装置4に対応するオブジェクト30cを、局番号が「4」である新たな制御装置に対応するオブジェクト30hにリプレースする。
図9は、実施の形態1にかかるシステム構成図を示す図である。システム構成図30は、局番号が「3」である制御装置4に対応するオブジェクト30cを、局番号が「4」である新たな制御装置に対応するオブジェクト30hにリプレースしたものである。
再び図8を参照すると、ステップS112において、プロジェクト割付部12が、プロジェクト31cのオブジェクト30hへの割付変更を行う。
図10は、実施の形態1にかかるシステム構成図を示す図である。プロジェクト割付部12は、作業者の操作入力に基づいて、局番号が「4」である新たな制御装置に対応するオブジェクト30hに、オブジェクト30gを割付ける。オブジェクト30gは、プロジェクト31cに対応している。
再び図8を参照すると、ステップS114において、ネットワーク範囲割付情報作成部13が、ネットワーク範囲割付情報の変更を行う。
図11は、実施の形態1にかかるネットワーク範囲割付情報を示す図である。作業者は、ネットワーク範囲割付情報32の第3行32cの局番号を「3」から「4」に変更する入力を行う。
再び図8を参照すると、ステップS116において、ネットワーク範囲割付情報重複判定部15が、ネットワーク範囲割付情報32の重複チェックを行う。具体的には、ネットワーク範囲割付情報重複判定部15は、ネットワーク範囲割付情報32の各行のアドレス範囲に重複がないかのチェックを行う。
次に、ステップS118において、第1システムラベルリスト変更部16が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合することにより、システムラベルリスト33の変更を行う。
図12は、実施の形態1にかかるシステムラベルリストを示す図である。図12に示すシステムラベルリスト33において、複数の行33dが変更されており、他の複数の行は変更されていない。
システムラベルリスト33の複数の行33dの各々は、局番号が「4」である新たな制御装置がデータの書き込みを行うリンクデバイスの各バイトに対応する。第1システムラベルリスト変更部16は、複数の行33dの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを予め定められた生成規則に従って作成し、配置する。
システムラベルリスト33において、複数の行33dの最初の行のシステムラベルの項目には、第1システムラベルリスト変更部16によって生成された「起動_4局のスイッチ1」が配置されている。また、複数の行33dの最後の行のシステムラベルの項目には、第1システムラベルリスト変更部16によって生成された「起動_4局のスイッチ16」が配置されている。
また、第1システムラベルリスト変更部16は、複数の行33dの各々において、CPU名の項目には、局番号が「4」である新たな制御装置に内蔵されているCPU名「CPU04」を配置する。
上記したように、システム設計支援ツール6によれば、第1システムラベルリスト変更部16が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を変更することができる。これにより、作業者がシステムラベルリスト33の各項目を変更することが不要となるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
なお、システム設計支援ツール6は、作業者がシステムラベルリスト33を表計算プログラム又はテキストエディタで変更することができないように、システムラベルリスト33にプロテクトを掛けると好適である。これにより、作業者がシステムラベルリスト33の各項目を変更することができなくなるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
上記では、局番号が「3」である制御装置4が、局番号が「4」である新たな制御装置にリプレースされた場合を例に取って図8のフローチャートを説明したが、次に、リンクデバイスが増減した場合を例に取って図8のフローチャートを説明する。
リンクデバイスが増減した場合は、システム構成に変更がないので、ステップS110において、システム構成図作成部10は、システム構成図30の変更を行わない。なお、システム構成に変更がない場合は、ステップS110をスキップしても良い。
リンクデバイスが増減した場合は、システム構成に変更がないので、ステップS112において、プロジェクト割付部12は、プロジェクト31a、31b及び31cのオブジェクト30a、30b及び30cへの割付変更を行わない。なお、システム構成に変更がない場合は、ステップS112をスキップしても良い。
次に、ステップS114において、ネットワーク範囲割付情報作成部13が、ネットワーク範囲割付情報の変更を行う。
図13は、実施の形態1にかかるネットワーク範囲割付情報を示す図である。作業者は、ネットワーク範囲割付情報32において、第1行32aの最終アドレスの項目に、「0x0010」を入力する。これにより、局番号「1」の制御装置2がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0000」から最終アドレス「0x0010」までの17バイトに拡大される。
また、作業者は、ネットワーク範囲割付情報32において、第2行32bの先頭アドレスの項目に、「0x0011」を入力する。また、作業者は、ネットワーク範囲割付情報32において、第2行32bの最終アドレスの項目に、「0x001F」を入力する。これにより、局番号「2」の制御装置3がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0011」から最終アドレス「0x001F」までの15バイトに縮小される。
また、作業者は、ネットワーク範囲割付情報32において、第3行32cの先頭アドレスの項目に、「0x0020」を入力する。また、作業者は、ネットワーク範囲割付情報32において、第3行32cの最終アドレスの項目に、「0x002E」を入力する。これにより、局番号「3」の制御装置4がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0020」から最終アドレス「0x002E」までの15バイトに縮小される。
再び図8を参照すると、ステップS118において、第2システムラベルリスト変更部17が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合することにより、システムラベルリスト33の変更を行う。
図14は、実施の形態1にかかるシステムラベルリストを示す図である。局番号が「1」の制御装置2のリンクデバイスが17バイトに拡大されたことに伴い、図14に示すシステムラベルリスト33において、行33eが追加されている。
また、局番号が「2」の制御装置3のリンクデバイスが15バイトに縮小されたことに伴い、図14に示すシステムラベルリスト33において、行33fに取消線が付加されている。なお、第2システムラベルリスト変更部17は、行33fを削除しても良い。
また、局番号が「3」の制御装置4のリンクデバイスが15バイトに縮小されたことに伴い、図14に示すシステムラベルリスト33において、行33gに取消線が付加されている。なお、第2システムラベルリスト変更部17は、行33gを削除しても良い。
上記したように、システム設計支援ツール6によれば、第2システムラベルリスト変更部17が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を変更することができる。これにより、作業者がシステムラベルリスト33の各項目を変更することが不要となるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
なお、システム設計支援ツール6は、作業者がシステムラベルリスト33を表計算プログラム又はテキストエディタで変更することができないように、システムラベルリスト33にプロテクトを掛けると好適である。これにより、作業者がシステムラベルリスト33の各項目を変更することができなくなるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
また、システム設計支援ツール6は、作業者が、全てのリンクデバイスの中からシステムラベル化対象を選択することもできる。
図15は、実施の形態1にかかるシステム設計支援ツールのシステムラベル作成動作を示すフローチャートである。図15のフローチャートにおいて、ステップS100、S102、S104及びS106は、図3に示したフローチャートと同様であるので、説明を省く。
図15のフローチャートにおいて、ステップS104の後且つステップS106の前に、ステップS105が追加されている。
ステップS105において、システムラベル化対象選択部18は、作業者の操作入力に基づいて、全てのリンクデバイスの中からシステムラベル化対象を選択する。作業者は、ネットワーク範囲割付情報32に記述されたアドレス範囲の中から必要なアドレス範囲を選択することで、システムラベル化対象を選択することができる。また、作業者は、システム構成図30に配置されたオブジェクトの中から必要なオブジェクトを選択することで、システムラベル化対象を選択することができる。
上記したように、システム設計支援ツール6によれば、システムラベル化対象選択部18が、作業者の操作入力に基づいて、全てのリンクデバイスの中からシステムラベル化対象を選択することができる。これにより、システム設計支援ツール6は、必要なリンクデバイスだけを含むシステムラベルリスト33を作成することができる。従って、システム設計支援ツール6は、システムラベルリスト33の肥大化を抑制することができ、システムラベルリスト33の可読性を高めることができる。
また、システム設計支援ツール6は、リンクデバイスに使用できるネットワーク範囲つまりアドレス範囲を算出することもできる。例えば、制御システム1には、制御装置2、3及び4の他に装置がネットワーク接続される場合がある。他の装置は、制御装置2、3及び4の種々の情報を表示できる表示装置が例示される。他の装置がネットワーク接続される場合、表示装置で使用されるアドレスは、リンクデバイスのアドレスに使用することができない。
図16は、実施の形態1にかかるシステム設計支援ツールのシステムラベル作成動作を示すフローチャートである。図16のフローチャートにおいて、ステップS100、S102、S104及びS106は、図3に示したフローチャートと同様であるので、説明を省く。
図16のフローチャートにおいて、ステップS102の後且つステップS104の前に、ステップS103が追加されている。
ステップS103において、ネットワーク範囲割付算出反映部19は、システム構成図30のネットワーク構成を記述した情報に基づいて、リンクデバイスに使用できるネットワーク範囲つまりアドレス範囲を算出し、ネットワーク範囲割付情報32に反映する。作業者は、ステップS103でネットワーク範囲割付情報32に反映されたアドレス範囲を参照しながら、ステップS104でネットワーク範囲割付情報32に項目を入力することができる。
上記したように、システム設計支援ツール6によれば、ネットワーク範囲割付算出反映部19が、システム構成図30のネットワーク構成を記述した情報に基づいて、リンクデバイスに使用できるネットワーク範囲つまりアドレス範囲を算出し、ネットワーク範囲割付情報32に反映する。これにより、システム設計支援ツール6は、リンクデバイスと他の装置とのアドレスのコンフリクトを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
次に、本発明の比較例について説明する。
図17は、比較例にかかるシステム設計支援装置を用いた制御システムの構成を示す図である。
制御システム51は、制御装置52、53及び54と、システム設計支援装置55と、がネットワークN1によって接続されて構成されている。
制御装置52、53及び54の各々は、制御プログラムを実行することにより、被制御装置を制御する。
制御装置52は、制御装置52を一意に特定する局番号に「1」が設定されている。制御装置52は、制御装置53及び54を管理する管理局である。制御装置53は、制御装置53を一意に特定する局番号に「2」が設定されている。制御装置53は、制御装置52によって管理される通常局である。制御装置54は、制御装置54を一意に特定する局番号に「3」が設定されている。制御装置54は、制御装置52によって管理される通常局である。ネットワークN1は、ネットワークN1を一意に特定するネットワーク番号に「1」が設定されている。
システム設計支援装置55は、プログラミングツール部56と、表計算部57と、記憶部58と、を備える。
プログラミングツール部56は、システム設計支援装置55内のCPUがプログラミングツールプログラムを実行することにより、実現される。表計算部57は、システム設計支援装置55内のCPUが表計算プログラムを実行することにより、実現される。
記憶部58は、プログラミングツール部56によって作成されるプロジェクト61、62及び63と、表計算部57によって作成されるシステムラベル情報70と、を記憶する。
次に、システム設計支援装置55のシステムリスト作成動作について説明する。
まず、プログラミングツール部56が、作業者の入力に基づいて、ネットワーク範囲割付情報61aを、管理局である制御装置52に割り付けられるプロジェクト61内に作成する。なお、通常局である制御装置53及び54に夫々割り付けられるプロジェクト62及び63は、ネットワーク範囲割付情報を含まない。
図18は、比較例にかかるプロジェクト内のネットワーク範囲割付情報を示す図である。プロジェクト61には、プロジェクト61を一意に特定するプロジェクト名に「prj01」が設定されている。ネットワーク範囲割付情報61aは、局番号と、制御装置52、53及び54の各々がデータの書き込みを行う共有メモリ空間内の領域であるリンクデバイスの先頭アドレス及び最終アドレスと、の項目を有する。
作業者は、ネットワーク範囲割付情報61aの各項目に、局番号と、リンクデバイスの先頭アドレスと、最終アドレスと、を入力する。ネットワーク範囲割付情報61aにおいて、第1行61a1には、制御装置52の局番号「1」と、先頭アドレス「0x0000」と、最終アドレス「0x000F」と、が入力されている。また、第2行61a2には、制御装置53の局番号「2」と、先頭アドレス「0x0010」と、最終アドレス「0x001F」と、が入力されている。また、第3行61a3には、制御装置54の局番号「3」と、先頭アドレス「0x0020」と、最終アドレス「0x002F」と、が入力されている。
従って、局番号「1」の制御装置52がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0000」から最終アドレス「0x000F」までの16バイトである。また、局番号「2」の制御装置53がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0010」から最終アドレス「0x001F」までの16バイトである。また、局番号「3」の制御装置54がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0020」から最終アドレス「0x002F」までの16バイトである。
次に、表計算部57が、作業者の入力に基づいて、システムラベル情報70を作成する。作業者は、プログラミングツール部56で作成されたネットワーク範囲割付情報61aを参照しながら、システムラベル情報70の作成作業を行う。
図19は、比較例にかかるシステムラベル情報を示す図である。システムラベル情報70は、リンクデバイスを一意に特定する識別子であるシステムラベル、制御装置に内蔵されているCPU名及びリンクデバイスを一意に特定するデバイス名の項目を有する。なお、システムラベル情報70は、補助的にプロジェクトのプロジェクト名を含んでも良いが、プロジェクト名は、システムラベル情報70の必須項目ではない。
システムラベル情報70において、複数の行70aの各々は、制御装置52がデータの書き込みを行うリンクデバイスの各バイトに対応する。作業者は、複数の行70aの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを入力する。
システムラベル情報70において、複数の行70aの最初の行のシステムラベルの項目には、作業者によって「起動_1局のスイッチ1」が入力されている。また、複数の行70aの最後の行のシステムラベルの項目には、作業者によって「起動_1局のスイッチ16」が入力されている。
また、作業者は、複数の行70aの各々において、CPU名の項目には、制御装置52に内蔵されているCPU名「CPU01」を入力する。また、作業者は、複数の行70aの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を入力する。
システムラベル情報70において、複数の行70bの各々は、制御装置53がデータの書き込みを行うリンクデバイスの各バイトに対応する。作業者は、複数の行70bの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを入力する。
システムラベル情報70において、複数の行70bの最初の行のシステムラベルの項目には、作業者によって「起動_2局のスイッチ1」が入力されている。また、複数の行70bの最後の行のシステムラベルの項目には、作業者によって「起動_2局のスイッチ16」が入力されている。
また、作業者は、複数の行70bの各々において、CPU名の項目には、制御装置53に内蔵されているCPU名「CPU02」を入力する。また、作業者は、複数の行70bの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を入力する。
システムラベル情報70において、複数の行70cの各々は、制御装置54がデータの書き込みを行うリンクデバイスの各バイトに対応する。作業者は、複数の行70cの各々において、システムラベルの項目には、各リンクデバイスを一意に特定する識別子であるシステムラベルを入力する。
システムラベル情報70において、複数の行70cの最初の行のシステムラベルの項目には、作業者によって「起動_3局のスイッチ1」が入力されている。また、複数の行70cの最後の行のシステムラベルの項目には、作業者によって「起動_3局のスイッチ16」が入力されている。
また、作業者は、複数の行70cの各々において、CPU名の項目には、制御装置54に内蔵されているCPU名「CPU03」を入力する。また、作業者は、複数の行70cの各々において、デバイス名の項目には、各リンクデバイスを一意に特定するデバイス名を入力する。
次に、プログラミングツール部56が、作業者の入力に基づいて、プロジェクト61、62及び63内に、システムラベルリスト61b、62b及び63bを作成する。作業者は、表計算部57で作成されたシステムラベル情報70を参照しながら、システムラベルリスト61b、62b及び63bの作成作業を行う。
図20は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。システムラベルリスト61bは、システムラベル、CPU名及びデバイス名の項目を有する。なお、システムラベルリスト61bは、補助的にプロジェクトのプロジェクト名を含んでも良いが、プロジェクト名は、システムラベルリスト61bの必須項目ではない。作業者は、表計算部57で作成されたシステムラベル情報70内の複数の行70aを参照しながら、システムラベルリスト61bの各項目の値を入力する。
図21は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。システムラベルリスト62bは、システムラベル、CPU名及びデバイス名の項目を有する。なお、システムラベルリスト62bは、補助的にプロジェクトのプロジェクト名を含んでも良いが、プロジェクト名は、システムラベルリスト62bの必須項目ではない。作業者は、表計算部57で作成されたシステムラベル情報70内の複数の行70bを参照しながら、システムラベルリスト62bの各項目の値を入力する。
図22は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。システムラベルリスト63bは、システムラベル、CPU名及びデバイス名の項目を有する。なお、システムラベルリスト63bは、補助的にプロジェクトのプロジェクト名を含んでも良いが、プロジェクト名は、システムラベルリスト63bの必須項目ではない。作業者は、表計算部57で作成されたシステムラベル情報70内の複数の行70cを参照しながら、システムラベルリスト63bの各項目の値を入力する。
上記のように、比較例では、作業者が、システムラベル情報70並びにシステムラベルリスト61b、62b及び63bの全ての項目を入力していた。従って、システムラベル情報70並びにシステムラベルリスト61b、62b及び63bに入力ミスが発生し易かった。システムラベル情報70並びにシステムラベルリスト61b、62b及び63bに入力ミスがあると、プロジェクト61、62及び63内の制御プログラムが予期しない動作を行い、ひいては被制御装置が予期しない動作を行う可能性があった。
次に、システム設計支援装置55のシステムリスト変更動作について説明する。
まず、プログラミングツール部56が、作業者の入力に基づいて、ネットワーク範囲割付情報61aを変更する。
図23は、比較例にかかるプロジェクト内のネットワーク範囲割付情報を示す図である。作業者は、ネットワーク範囲割付情報61aの第1行61a1の最終アドレスを、「0x000F」から「0x0010」に変更する。従って、局番号「1」の制御装置52がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0000」から最終アドレス「0x0010」までの17バイトになる。
次に、作業者は、ネットワーク範囲割付情報61aの第2行61a2の先頭アドレスを、「0x0010」から「0x0011」に変更する。従って、局番号「2」の制御装置53がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0011」から最終アドレス「0x001F」までの15バイトになる。
次に、作業者は、ネットワーク範囲割付情報61aの第3行61a3の最終アドレスを、「0x002F」から「0x002E」に変更する。従って、局番号「3」の制御装置54がデータの書き込みを行うリンクデバイスは、先頭アドレス「0x0020」から最終アドレス「0x002E」までの15バイトになる。
次に、表計算部57が、作業者の入力に基づいて、システムラベル情報70を変更する。作業者は、プログラミングツール部56で変更されたネットワーク範囲割付情報61aを参照しながら、システムラベル情報70の変更作業を行う。
図24は、比較例にかかるシステムラベル情報を示す図である。作業者は、制御装置52がデータの書き込みを行うリンクデバイスが16バイトから17バイトに変更されたことに伴い、行70dを追加する。行70dのシステムラベルの項目には、作業者によって「起動_1局のスイッチ17」が入力されている。また、行70dのCPU名の項目には、作業者によって「CPU01」が入力されている。また、行70dのデバイス名の項目には、作業者によって「J1¥B10」が入力されている。
また、作業者は、制御装置53がデータの書き込みを行うリンクデバイスが16バイトから15バイトに変更されたことに伴い、行70eに取消線を付加する。なお、作業者は、行70eを削除してしまっても良い。
また、作業者は、制御装置54がデータの書き込みを行うリンクデバイスが16バイトから15バイトに変更されたことに伴い、行70fに取消線を付加する。なお、作業者は、行70fを削除してしまっても良い。
次に、プログラミングツール部56が、作業者の入力に基づいて、プロジェクト61、62及び63内のシステムラベルリスト61b、62b及び63bを変更する。作業者は、表計算部57で作成されたシステムラベル情報70を参照しながら、システムラベルリスト61b、62b及び63bの変更作業を行う。
図25は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。作業者は、表計算部57でシステムラベル情報70に行70dが追加されたことに伴い、システムラベルリスト61bに行61b1を追加する。
図26は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。作業者は、表計算部57でシステムラベル情報70の行70eに取消線が付加されたことに伴い、システムラベルリスト62bの行62b1に取消線を付加する。なお、作業者は、行62b1を削除してしまっても良い。
図27は、比較例にかかるプロジェクト内のシステムラベルリストを示す図である。作業者は、表計算部57でシステムラベル情報70の行70fに取消線が付加されたことに伴い、システムラベルリスト63bの行63b1に取消線を付加する。なお、作業者は、行63b1を削除してしまっても良い。
上記したように、比較例では、作業者が、システムラベル情報70並びにシステムラベルリスト61b、62b及び63bを変更していた。従って、システムラベル情報70並びにシステムラベルリスト61b、62b及び63bに変更ミスが発生し易かった。システムラベル情報70並びにシステムラベルリスト61b、62b及び63bに変更ミスがあると、プロジェクト61、62及び63内の制御プログラムが予期しない動作を行い、ひいては被制御装置が予期しない動作を行う可能性があった。
一方、実施の形態1にかかるシステム設計支援ツール6によれば、システムラベルリスト作成部14が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を作成することができる。これにより、作業者がシステムラベルリスト33の各項目を入力することが不要となるので、システムラベルリスト33に入力ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
また、システム設計支援ツール6によれば、第1システムラベルリスト変更部16が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を変更することができる。これにより、作業者がシステムラベルリスト33の各項目を変更することが不要となるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
また、システム設計支援ツール6によれば、第2システムラベルリスト変更部17が、システム構成図30、ネットワーク範囲割付情報32並びにプロジェクト31a、31b及び31cを局番号をキーにして照合し、システムラベルリスト33を変更することができる。これにより、作業者がシステムラベルリスト33の各項目を変更することが不要となるので、システムラベルリスト33に変更ミスが発生することを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
また、システム設計支援ツール6によれば、システムラベル化対象選択部18が、作業者の操作入力に基づいて、全てのリンクデバイスの中からシステムラベル化対象を選択することができる。これにより、システム設計支援ツール6は、必要なリンクデバイスだけを含むシステムラベルリスト33を作成することができる。従って、システム設計支援ツール6は、システムラベルリスト33の肥大化を抑制することができ、システムラベルリスト33の可読性を高めることができる。
また、システム設計支援ツール6によれば、ネットワーク範囲割付算出反映部19が、システム構成図30のネットワーク構成を記述した情報に基づいて、リンクデバイスに使用できるネットワーク範囲つまりアドレス範囲を算出し、ネットワーク範囲割付情報32に反映する。これにより、システム設計支援ツール6は、リンクデバイスと他の装置とのアドレスのコンフリクトを抑制することができる。従って、システム設計支援ツール6は、制御プログラムが予期しない動作をしてしまう可能性を抑制することができ、被制御装置が予期しない動作をしてしまう可能性を抑制することができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。