従来から、加工機や組立機などの装置を制御するために、プログラマブルコントローラ(以下、PLCという)やモーションコントローラ(以下、MCという)、HMI(Human Machine Interface;表示器やSCADA(Supervisory Control And Data Acquisition))が用いられている。また、最近では、1つの装置の制御を行う場合のほかに、複数台の装置を用いて製造ラインを構成する場合などに、複数台のPLCを用いた制御システムが構築されることがある。このような複数台のPLCを用いて構築される制御システムには、(1)1台のCPU(Central Processing Unit)ユニットと1台のネットワークユニットとを有するPLCがネットワークを介して複数接続される形式のリンク型の制御システムと、(2)1台のベースユニット上にCPUユニットを複数装着し、それぞれのCPUユニットがバスを介して接続されてPLCを構成するマルチCPU型の制御システムと、の2つの形式がある。
(1)リンク型の制御システム
リンク型の制御システムでは、上述したように、複数台のPLC間でデータのやり取りが必要となり、これを実現するために、PLC間をFA(Factory Automation)ネットワークで接続し、データのやり取りを行っている。このようなリンク型の制御システムの場合には、互いのPLC間でのデータのやり取りを、リンクデバイスを介して行っている。図20−1は、リンク型の制御システムの構成の一例と、そのリンクデバイスを模式的に示す図であり、図20−2は、図20−1の制御システムのPLCにおけるリンクデバイスの内容の一例を示す図である。この制御システム500は、CPUユニット502とネットワークユニット503を有するPLC501−1〜501−4が、FAネットワーク504を介して相互に接続された構成を有する。ここで、1つのPLCを局と呼ぶことにし、PLC501−1〜501−4をそれぞれ局1〜局4と呼ぶことにする。CPUユニット502には、リンクデバイスが設けられており、このリンクデバイスを介して、各PLC501−1〜501−4間でのデータのやり取りを行う。このリンクデバイスは、周期的に他局のデバイス値が自局のデバイスにコピーされるものであって、FAネットワーク504に接続されたPLC501−1〜501−4間での共有メモリとして扱えるものに相当する機能を有するものである。
図20−2に示されるように、リンクデバイス510は、ネットワークで1つの割付を行い、同じ割付設定が各局のCPU502で使用されるが、リンクデバイス510の割付の際には、1つの局が書込むリンクデバイス510は1箇所に連続的に固めて割付ける仕様となっている。これは、周期的に他局のデバイス値が自局のリンクデバイス510にコピーされる場合において、1回の通信内に複数のデータ(1箇所にまとまって格納されたデバイス値)を一括して送信することで、局間での複数のデータの転送を効率的に行うようにするためである(たとえば、特許文献1参照)。
たとえば、各局のリンクデバイス510は、アドレス「B00〜B0F」の領域(以下、ブロック1という)に局1のデバイス値が書込まれ、アドレス「B10〜B1F」の領域(以下、ブロック2という)に局2のデバイス値が書込まれ、アドレス「B20〜B2F」の領域(以下、ブロック3という)に局3のデバイス値が書込まれ、アドレス「B30〜B3F」の領域(以下、ブロック4という)に局4のアドレス値が書込まれる。ただし、書込み局に対応する局の領域には自局のみ書込むことができ、他の局の領域は参照することしかできない。たとえば、局1のリンクデバイス510では、ブロック1には局1自身が書込むことができるが、ブロック2は局2が書込んだデバイス値であるので局1は参照のみ可能である。また、ブロック3,4についても、それぞれ局3,4が書込んだデバイス値であるので参照のみ可能である。そして、局1は、ブロック1に自局のデバイス値がまとめて格納されているために、このデバイス値をまとめて周期的に他局へ送信する。
(2)マルチCPU型の制御システム
つぎに、マルチCPU型の制御システムについて説明する。1つの装置の制御に複数台のPLCを用いる際には通常1台のPLCに1つのCPUが備わっているが、その代わりに、1台のPLCをマルチCPU構成にして、1台のPLCで装置を一括して制御する場合もある。同様に、複数台の装置を用いて製造ラインを構成する際にも通常1台のPLCに1つのCPUが備わっており、複数台のPLCを用いて制御しているが、その代わりに、1台のPLCをマルチCPU構成にして、1台のPLCで複数台の装置を一括して制御する場合もある(たとえば、非特許文献1参照)。このようなマルチCPU構成のPLCを有する制御システムをこの明細書では、マルチCPU型の制御システムと呼ぶ。
図21は、マルチCPU型の制御システムの構成を模式的に示す図である。このマルチCPU型の制御システム600は、ベースユニット601上にCPUユニット602−1〜602−4が複数台装着された構成を有している。ベースユニット601にはバス603が設けられており、各CPUユニット602−1〜602−4間を接続している。このようなマルチCPU型の制御システム600の場合には、互いのCPUユニット602−1〜602−4間でのデータのやり取りを、共有リフレッシュデバイスを介して行っている。
図22−1は、マルチCPU型の制御システムの共有リフレッシュデバイスを模式的に示す図であり、図22−2は、図22−1の制御システムのPLCにおける共有リフレッシュデバイスの設定の一例を示す図である。ここでは、マルチCPU型の制御システムが、2つのCPUユニット602−1,602−2からなる場合を例示している。各CPUユニット602−1,602−2には、共有リフレッシュデバイスが設けられている。この共有リフレッシュデバイスは、周期的に他CPUのデバイス値が自CPUのデバイスにコピーされるものであって、バス603を介して接続されたCPUユニット602−1,602−2間で共有メモリとして扱えるものに相当する機能を有する。なお、周期的に他CPUユニットのデバイス値が自CPUユニットのデバイスにコピーされる機能をマルチCPU自動リフレッシュ機能という。
図22−2の共有リフレッシュデバイスの設定610に示されるように、リフレッシュ元CPUがCPUユニット602−1の場合に、そのマルチCPU自動リフレッシュ機能として、CPUユニット602−1のデバイス値を書込む先頭アドレスが「D00」に設定され、CPUユニット602−2のデバイス値を書込む先頭アドレスが「D10」に設定されている。また、リフレッシュ元のCPUがCPUユニット602−2の場合に、そのマルチCPU自動リフレッシュ機能として、CPUユニット602−1のデバイス値を書込む先頭アドレスが「D10」に設定され、CPUユニット602−2のデバイス値を書込む先頭アドレスが「D00」に設定されている。ただし、このときのデバイス値の点数は16であるとする。
このようにマルチCPU自動リフレッシュ機能が設定されると、図22−1に示されるように、CPUユニット602−1のアドレス「D00〜D0F」までがCPUユニット602−1自身が書込む領域となり、CPUユニット602−1のアドレス「D10〜D1F」までがCPUユニット602−2のアドレス「D00〜F0F」のデバイス値が書込まれたものであり、ここは参照のみ可能となる。同様に、CPUユニット602−2のアドレス「D00〜D0F」までがCPUユニット602−2自身が書込む領域となり、CPUユニット602−2のアドレス「D10〜D1F」までがCPUユニット602−1のアドレス「D00〜F0F」のデバイス値が書込まれたものであり、ここは参照のみ可能となる。
また、図22−1〜図22−2に示されるように、マルチCPU自動リフレッシュ機能は、共有リフレッシュデバイスの割付の際には、1つのCPUが書込むデバイス値は1箇所に連続的に固めて割付ける仕様となっている。これは、周期的に他CPUユニットのデバイス値が自CPUユニットの共有リフレッシュデバイスにコピーされる場合において、1回の通信内に複数のデータ(1箇所にまとまって格納されたデバイス値)を一括して送信することで、CPUユニット間での複数のデータの転送を効率的に行うようにするためである。
以上が、リンク型の制御システムとマルチCPU型の制御システムの概略である。ところで、加工機や組立機などの装置を制御するために用いられるPLCやMCの制御プログラムや、HMIの画面プログラムは、従来から、デバイスのアドレスにより記述する方式が一般的であった。図23は、従来の制御プログラムの一例を示す図である。ここには、ラダープログラムで記述された制御プログラム701と、制御プログラムに使用されるデバイスデータが書込まれたデバイステーブル702と、が示されている。ラダープログラムは、制御プログラム701に示されるように、接点記号711とコイル記号712によって記述される。たとえば、上述のリンク型の制御システムの制御プログラムを記述する際には、PLC間のデータのやり取りに関する部分についてはリンクデバイスである「B0」を用いてプログラムを記述したり、上述のマルチCPU型の制御システムの制御プログラムを記述する際には、CPU間のデータのやり取りに関する部分については共有リフレッシュデバイスである「D0」を用いてプログラムを記述したりする。
従来では、図23のようにデバイスのアドレスにより記述する方式が一般的であった制御プログラムや画面プログラムも、近年ではラベル名を用いて記述し、ラベル名とデバイスのアドレスとの関連付けを別途行うような方式も一般化しつつある。図24は、ラベルを用いた制御プログラムの一例を示す図である。この図24の左側に示される開発ツール内には、制御プログラム701と、デバイステーブル702と、デバイスとラベルとを関連付けるラベル−デバイス関連付けテーブル703と、が示されている。つまり、制御プログラム701が、ラベルを用いて記述され、ラベル−デバイス関連付けテーブル703で予め使用可能なデバイスとラベルとが対応付けられており、コンパイル時にラベルをデバイスに変換するようにしている。変換後には、図24の右側に示されるように、制御プログラム701は、デバイスを用いて記述される。
ラベル名はBOOLやWORDといったデータ型を有しているため、ラベル名をデバイスへ関連付ける際には、BOOL型のラベル名はBOOL型のデバイスにさえ関連付ければよく、どのデバイスのどのアドレスに関連付けなければならないといった制約がない。また、ラベル名にはデータの内容がわかるような名前を付与できるので、デバイスで制御プログラムを記述する場合に比べ、プログラムの可読性がよい。これらの点において、ラベル名を用いた制御プログラムの作成は、従来のデバイスアドレスによるものに比べて、制御プログラム作成の効率化が図れる。
さて、上述した互いのPLC501間でのデータのやり取りを、リンクデバイスを介して行うリンク型の制御システム500において、各PLC501のプログラムをラベル名により記述する際には、PLC501間でやりとりされるデータに対するラベル名は、各PLC501間で同じラベル名を用いることが望ましい。これは、共有リフレッシュデバイスを介してCPUユニット602間でデータのやり取りを行うマルチCPU型の制御システム600でも同様である。
リンク型の制御システム500において、ラベル名は各PLC501単位で個別に管理されるため、PLC501間でやりとりされるデータに対して同じラベル名を用いようとすれば、各PLC501の制御プログラムを作成する担当者同士が予め同じラベル名を用いる“申し合わせ”をする必要がある。これは、共有リフレッシュデバイスを介してCPUユニット602間でデータのやり取りを行うマルチCPU型の制御システム600でも同様である。
複数のPLC501で同じラベル名を確実に使用するためには、担当者同士での“申し合わせ”だけでは、連絡行き違い等によりミスが発生する可能性がある。これを解決するために、各PLC501間で同じラベル名を用いるための技術として、たとえば、各PLC501のプログラムを作成するツール間でラベル名を共有するものが提案されている(たとえば、特許文献2参照)。
ところで、PLCやMCを用いて自動機や加工機、組立機などの装置を開発する装置開発者(セットメーカやシステムインテグレータ)においては、過去に開発した装置で用いた制御プログラムを次回に開発する装置へ再利用することで、装置の制御プログラムを新しくすべて記述するような手間を簡略化し、装置の開発を効率的に行っている。
たとえば、制御プログラムをデバイスのアドレスにより記述する方式を用いている装置開発者においては、デバイスのアドレスの標準化を行っている。すなわち、どのデバイスのアドレスがどういう意味のデータを保持するのかを予め装置開発者内で共通的に定義したデバイスマップを作成し、どの装置においてもこのデバイスマップに基づいた制御プログラムの開発を行うようにしている。
図25は、デバイスマップを用いた制御プログラムのプログラミングの一例を示す図である。まず、「標準化」の欄中の制御プログラムα,βのようにデバイスのアドレスを用いて作成した標準化された制御プログラムと、制御プログラムに使用されるデバイスのアドレスをその使用用途と関係付けたデバイスマップとが、開発ツールとして用意される。そして、この標準化開発ツールを用いて、PLCア用やPLCイ用に制御プログラムが作成される。このようなデバイスマップに基づいた制御プログラムの開発によって、標準化された制御プログラムがどの装置においても再利用可能なようにしている。
制御プログラムの開発に当たって、使用頻度の高い演算処理をファンクションまたはファンクションブロックとして関数化して再利用することが行われているが、このようなファンクションまたはファンクションブロックの再利用に比べ、デバイスマップの標準化に基づく制御プログラムの標準化による再利用は、再利用の規模が大きく、単なる演算処理の再利用という範囲を大きく超えて、機能単位の再利用を実現するための工夫であり、現実的に利便性の高いものとなっている。
また、制御プログラムをラベル名により記述しラベル名とデバイスのアドレスとの関連付けを別途行うような方式を用いている装置開発者においては、ラベル名の標準化を行っている。すなわち、どのラベルがどういう意味のデータを保持するのかを予め装置開発者内で共通的に定義したラベルマップを作成し、どの装置においてもこのラベルマップに基づいた制御プログラムの開発を行うようにしている。
図26は、ラベルマップを用いた制御プログラムのプログラミングの一例を示す図である。まず、「標準化」の欄中の制御プログラムγ,δのようにラベルを用いて作成した標準化された制御プログラムと、制御プログラムに使用されるラベルをその使用用途と関係付けたラベルマップとが、開発ツールとして用意される。そして、この標準化開発ツールを用いて、PLCヱ用やPLCヲ用に制御プログラムが作成される。そして、ラベルマップとそれぞれのPLCに対して実際のデバイスのアドレスとを割付ける処理が行われる。このようなラベルマップに基づいた制御プログラムの開発によって、標準化された制御プログラムがどの装置においても再利用可能なようにしている。
デバイスマップの標準化に基づく制御プログラムの標準化による再利用と同様に、ラベルマップの標準化に基づく制御プログラムの標準化による再利用は、使用頻度の高い演算処理をファンクションまたはファンクションブロックとして関数化して再利用するのに比べ、再利用の規模が大きく、単なる演算処理の再利用という範囲を大きく超えて、機能単位の再利用を実現するための工夫であり、現実的に利便性の高いものとなっている。
ラベルを用いたプログラミング(以下、ラベルプログラミングという)では、制御プログラムがデバイスのアドレスに対して、ラベル名を介して依存しない記述となっている。そのため、開発する装置に応じてラベル名とデバイスのアドレスとの関連付けを変更することで、制御プログラムが再利用可能になっているので、ラベルプログラミングはデバイスを用いたプログラミング(以下、デバイスプログラミングという)に比べ、再利用の柔軟性が高い。たとえば、ラベルプログラミングを示す図26の例では、センサAがX0に割り付いている場合にはLabelAをX0に関連付け、センサAがX10に割り付いている場合にはLabelAをX10に関連付ける、といったことにより、制御プログラムが再利用可能になっている。
すべての種類の装置を標準化するようなデバイスマップやラベルマップを定義することは困難であるので、実際の実用上としては、すべての種類の装置に共通する機能に関する部分のデバイスマップやラベルマップのみを定義して標準化したり、すべての種類の装置ではなく装置の種類別にそれぞれデバイスマップやラベルマップを定義したりして標準化される。
特開平6−311202号公報
国際公開第02/042853号パンフレット
Q対応MELSECNET/Hネットワークシステム 三菱汎用シーケンサMELSEC-Q、[online]、三菱電機株式会社、2005年10月、[2006年1月20日検索]、インターネット、<URL: http://wwwf3.mitsubishielectric.co.jp/members/o_manual/plc/sh080026/sh080026k.pdf>
以下に添付図面を参照して、この発明にかかるプログラム作成支援装置およびその方法の好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
最初に、この発明で使用されるプログラム作成支援装置(以下、開発ツールともいう)の構成と、このプログラム作成支援装置におけるプログラムの作成手順の概要について説明し、その後で、このプログラム作成支援装置を基本にしたこの発明にかかる実施の形態について説明する。
図1は、プログラム作成支援装置の機能構成を模式的に示すブロック図であり、図2は、このプログラム作成支援装置を実現する開発ツールの表示画面上の構成を模式的に示す図である。
このプログラム作成支援装置10は、情報をユーザに対して表示する表示部11と、ユーザによってプログラミングに必要な所定の情報が入力される入力部12と、入力部12から入力された情報に基づいてシステム構成を設定するシステム構成設定部13と、入力部12から入力された情報に基づいてラベルを設定するラベル設定部14と、入力部12から入力された情報に基づいてプログラムを設定するプログラム設定部15と、ラベル設定部14で設定されたラベルと実デバイスとを関連付けるラベル−デバイス関連付け処理部16と、作成されたプログラムをコンパイルするコンパイル処理部17と、システム構成の設定画面、ラベルの設定画面、プログラムの設定画面およびラベルと実デバイスの関連付け画面の表示部11への表示処理を行う表示処理部18と、これらの各処理部を制御する制御部19と、を備える。
開発ツール10Aは、プログラム作成支援装置10上に表示され、編集可能な構成要素を表示するツリービュー21と、ツリービュー21で選択された構成要素を編集する編集ツールと、を含む。ツリービュー21は、図2に示されるように、PLCやMCをプログラミングする際の構成要素を示すものであり、システム構成22、ラベル23およびプログラム24を含む。このツリービュー21は、表示処理部18によって表示部11上に表示され、入力部12でシステム構成22、ラベル23、プログラム24がダブルクリックなどの選択動作で選択されると、それぞれに対応したシステム構成設定部13、ラベル設定部14、プログラム設定部15が起動される。
システム構成設定部13は、ユーザによって入力された内容にしたがって、I/O(Input/Output)ユニットやネットワークなどPLCやMCのハードウェアシステムの構成を設定する。たとえば、図2のツリービュー21のシステム構成22が選択されると、システム構成設定部13は、システム構成を編集するウィンドウやダイアログやエディタやツール(以下、システム構成編集ツールという)22Aを起動し、これらに入力された内容を用いてシステム構成を設定する。
ラベル設定部14は、制御プログラムを記述する際に、デバイスアドレスの代わりに記述されるラベルを設定する。たとえば、図2のツリービュー21のラベル23が選択されると、ラベル設定部14は、ラベルを編集するウィンドウやダイアログやエディタやツール(以下、ラベル編集ツールという)23Aを起動し、これらに入力された内容を用いてラベルを設定し、その内容をラベルテーブルとして保存する。
プログラム設定部15は、PLCやMCに処理させる制御プログラム(たとえば、ラダープログラム)を設定する。たとえば、図2のツリービュー21のプログラム24が選択されると、プログラム設定部15は、プログラムを編集するウィンドウやダイアログやエディタやツール(以下、プログラム編集ツールという)24Aを起動し、これらに入力された内容を用いてプログラムを設定し、その内容を保存する。
ラベル−デバイス関連付け処理部16は、プログラム設定部15で設定されたプログラムを、実際のPLC上やMC上で動作させるために、そのプログラムで使用されるプログラム中の(すなわち、ラベル設定部14で設定された)ラベルと、実際のPLCやMCのデバイスとを関連付ける。
図3は、プログラミングの手順の一例を示すフローチャートである。PLCのプログラミングは、まずシステム構成を編集する(ステップS11)。図2の開発ツール10Aのツリービュー21からシステム構成22が選択されると、システム構成編集ツール22Aが起動される。ユーザは、このシステム構成編集ツール22A上で入力部12を用いて、I/OユニットやネットワークなどPLCやMCのハードウェアシステムの構成を入力すると、その入力内容に基づいてシステム構成が設定される。
ついで、ラベルを編集する(ステップS12)。図2の開発ツール10Aのツリービュー21からラベル23が選択されると、ラベル編集ツール23Aが起動される。ユーザは、このラベル編集ツール23Aで入力部12を用いて、プログラムで使用するラベルを入力すると、その入力内容に基づいてラベルが設定される。設定されたラベルは、ラベルテーブルとして図示しない記憶部に記憶される。^
ついで、プログラムを編集する(ステップS13)。図2の開発ツール10Aのツリービュー24からプログラムが選択されると、プログラム編集ツール24Aが起動される。ユーザは、このプログラム編集ツール24Aで入力部12を用いて、記述するプログラムが、システム構成のどのPLCまたはCPUで実行させるかを指定した後、プログラムを記述する。そして、その入力内容に基づいてプログラムが設定される。設定されたプログラムは、図示しない記憶部に記憶される。
ここで、ステップS13のプログラムを記述する際に、ステップS12で設定したラベルを使用することが可能である。また、ステップS13でのプログラムの編集中に、新しくラベルの設定が必要になった場合には、その都度ラベル編集を行ってもよい。すなわち、ステップS13のプログラムの編集を行っている最中に、ステップS12のラベルの編集を行ってもよい。
以上のPLCまたはCPUで処理させる制御プログラムのプログラミングが完了した後、ラベルを実デバイスへ関連付ける(ステップS14)。図4〜図5は、ラベルを実デバイスへ関連付ける場合の開発ツールの表示画面上の構成を模式的に示す図であり、図4は、ラベルを実デバイスへ関連付ける作業をラベル編集ツールで行う場合を示す図であり、図5は、ラベルを実デバイスへ関連付ける作業を別のツールを設けて行う場合を示す図である。このラベルを実デバイスへ関連付ける作業は、図4に示されるように、ツリービュー21のラベル23と関連付けられる編集ツールに、デバイス関連付け機能をもたせたラベル編集兼デバイス関連付けツール23Bで行う場合と、図5に示されるように、ラベル編集ツール23Aとは別にラベルを実デバイスへ関連付ける専用のウィンドウやダイアログやエディタやツール(以下、ラベル−デバイス関連付けツールという)26Aを設けて行う場合とがある。図5に場合には、ツリービュー21のシステム構成22の下位に、ハードウェア構成25とラベル関連付け26の構成要素が設けられる。このとき、ハードウェア構成25が選択されると、システム構成編集ツール22Aが起動され、ラベル関連付け26が選択されるとラベル−デバイス関連付けツール26Aが起動される。開発ツール10Aとしては、上記のどちらの形態でもよい。
そして、最後に、実機へダウンロードするために作成されたプログラムのコンパイル処理を行い(ステップS15)、PLCやMCに搭載するためのプログラムのプログラミング処理が終了する。
以上のようにしてPLCまたはCPUについてのプログラミングを行えばよいが、この開発ツール10Aにおいては、複数台のPLCがFAネットワークで接続されたリンク型の制御システムやマルチCPU構成のPLCやMCからなるマルチCPU型の制御システムを対象として、以下の実施の形態で説明するようにプログラムを開発することが可能である。
実施の形態1.
この実施の形態1では、3台のPLCがネットワークに接続された制御システムにおいて、全く同じ機能を有する2台のPLC1,PLC2を、これらを統括制御する1台のPLC1が制御する制御システムを開発する場合を例に挙げて、そのプログラムの作成を支援する方法について説明する。
まず、図3のステップS11に示されるように、システム構成の設定が行われる。図6−1は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図であり、図6−2は、リンク型のシステム構成が設定された場合の開発ツールの他の例を示す図である。ここでは、図6−1と図6−2に示されるように、システム構成編集ツールで、全く同じ機能を有する2台のPLC2,PLC3と、これらを統括制御する1台のPLC1がネットワークで接続された制御システムについてのシステム構成が設定される。なお、開発ツールの図において、構成要素とツールとの間または構成要素とシステム構成編集ツール内の制御装置との間を結ぶ線は相互に関連付けられていることを示している。以下の開発ツールの図においても同様である。
つぎのステップS12では、ラベルの編集が行われる。図6−1に示されるような開発ツールでは、ラベルは、システム構成編集ツールで作成されたシステム構成のPLCごとにラベル編集ツールによって作成される。これにより、PLC1で使用されるラベルテーブル(以下、ラベルPLC1ともいう)と、PLC2で使用されるラベルテーブル(以下、ラベルPLC2ともいう)と、PLC3で使用されるラベルテーブル(以下、ラベルPLC3ともいう)が作成される。これらのラベルテーブルでは、どのPLCで用いられるラベルテーブルなのかを示す属性を保持する。具体的には、ユーザ(プログラム作成者)は、ラベルテーブルを作成する際に、作成するそのラベルテーブルがどのPLCで用いられるかを指定した後に、ラベルの編集を行う。
一方、図6−2に示されるような開発ツールでは、システム構成編集ツールで作成されたシステム構成のPLCごとに、ラベルとプログラムを分割して作成している。つまり、システム構成中のPLC1に関して、このPLC1に関連付けさせてラベルテーブルとプログラムを管理するようにし、PLC2,PLC3についても同様にラベルテーブルとプログラムを管理するようにしている。このような形態の管理ツール上では、ラベルテーブルに、どのPLCで用いられるかの属性を自動的に保持させることができる。
つぎのステップS13では、プログラムの編集が行われる。図6−1に示される開発ツールでは、プログラムも、ラベルと同様に、システム構成のPLCごとに作成される。ただし、プログラムは、システム構成のどのPLCで実行させるかを指定してから作成される。また、図6−2に示される開発ツールでは、ラベルと同様に、システム構成中のPLCごとに分割してプログラムが作成される。このステップS13で編集(作成)されたプログラムは図示しない記憶部に保持される。
このプログラム編集において、ラベルを用いてプログラム作成を行うには、既に作成したラベルテーブルの中から所望のラベルを選択してプログラムの記述に用いる。図7は、プログラムの記述の一例を示す図である。自PLCのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、プログラムの表示におけるラベルの表示は従来どおり、ラベルのみである。一方、他PLCのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、そのラベルを引用した元のラベルテーブル(PLC)を示す引用元ラベル識別情報を付したラベルを用いて記述する。たとえば、図7の例においては、引用元ラベル識別情報として、引用元のラベルテーブルを保持するPLCの名称に記号「−>(矢印、または、ハイフンと不等号の組み合わせ)」を付加したものを用いている。この記号「−>」は、他PLCの名称とラベル名との間を区別する記号である。記号「−>」以外の記号を用いてもよい。しかし、たとえば「 . (ドット)」は構造体の要素であるラベルを指定する際に使用する記号であり、構造体ラベルとして他PLC名称のラベルが自PLCのラベルテーブルに宣言されているかのように思われ一見しただけでは区別がつかず、また、「 _ (アンダースコア)」では他PLC名称とラベル名称を1つにしたようなラベル名が自PLCのラベルテーブルに宣言されているかのように思われ一見しただけでは区別が付かない。この種の混同を避けるため、他の記号を用いる際には「−>」などの従来のラベル名として用いられない表記方法を用いることが好ましい。
また、記述したプログラムの保持(保存)においては、自PLCのラベルテーブル中のラベルを用いて記述されたプログラムの場合には、ラベルの保持は従来どおりである。また、他PLCのラベルテーブル中のラベルを用いて記述されたプログラムの場合には、ラベルの保持は、他PLCのラベルであることを示す引用元ラベル識別情報を付加したラベルを保持する。これにより、編集後に保存したプログラムを、再度読み出して表示処理部18で表示部11に表示する際も、自PLCのラベルテーブル中のラベルを用いて記述したプログラムの表示におけるラベルの表示は従来どおりにラベルのみを表示し、他PLCのラベルテーブル中のラベルを用いて記述したプログラムの表示におけるラベルの表示は、引用元ラベル識別情報を付したラベル(図7の場合には、「他PLCの名称を表示したPLCの名称 −> ラベル」)を表示する。
その後のステップS14でのラベルを実デバイスへ関連付ける処理が行われる。図8−1は、ラベル−デバイス関連付け処理部のさらに詳細な機能構成を示すブロック図であり、図8−2は、ラベルの実デバイスへの関連付けを行う処理手順の一例を示すフローチャートである。
ラベル−デバイス関連付け処理部16は、他装置用ラベル一覧情報生成部161、他装置用ラベル−デバイス関連付け設定処理部162、関連付け反映部163およびラベル−デバイス関連付け設定処理部164を有する。
他装置用ラベル一覧情報生成部161は、自制御装置(自PLC)のプログラム中に、他制御装置(他PLC)のラベルテーブルから引用したラベルが存在する場合に、引用元の他制御装置(他PLC)ごとに引用したラベルをまとめた他装置用ラベル一覧情報を生成する。
他装置用ラベル−デバイス関連付け設定処理部162は、他装置用ラベル一覧情報生成部161で作成された他装置用ラベル一覧情報中のラベルを、制御装置間で共有するメモリに対応するデバイスに関連付けを行うための設定画面を生成するとともに、その設定画面に設定された内容に基づいてデバイスとラベルとの関連付けを行う機能を有する。
関連付け反映部163は、他装置用ラベル−デバイス関連付け設定処理部162で設定されたラベルとデバイスとの関連付けの内容を、制御システムを構成する他の制御装置にも反映させる機能を有する。
ラベル−デバイス関連付け設定処理部164は、他装置用ラベル−デバイス関連付け設定処理部162で設定されたラベル以外の自制御装置のラベルテーブル中のラベルを、自制御装置のデバイスに関連付けを行うための設定画面を生成するとともに、その設定画面に設定された内容に基づいてデバイスとラベルとの関連付けを行う機能を有する。
つぎに、ラベルの実デバイスへの関連付けを行う処理手順の一例について説明する。まず、ラベル−デバイス関連付け処理部16の他装置用ラベル一覧情報生成部161は、統括制御用のPLC1の制御プログラムで使用されるラベルが、他PLCのラベルテーブル中のラベルである場合には、そのラベルテーブルが関連付けられるPLCの名称ごとにラベルを分類した他装置用ラベル一覧情報を生成する(ステップS110)。ついで、他装置用ラベル−デバイス関連付け設定処理部162は、ステップS111で生成された他装置用ラベル一覧情報中の他PLCのラベルを、どのデバイスに関連付けるかを設定するための設定画面を表示部11に表示し、その設定画面にユーザによって入力された内容(入力結果)に基づいて、他PLCのラベルとデバイスとを関連付ける(ステップS120)。その後、関連付け反映部163は、ステップS120での他PLCのラベルとデバイスとの関連付けの内容を、制御システムを構成する他のPLC2,PLC3のデバイスにも反映させる(ステップS130)。そして、自制御装置のラベル、すなわちステップS120で関連付けされたラベル以外のラベルを自制御装置のどのデバイスに関連付けるかを設定するための設定画面を表示部11に表示し、その設定画面へのユーザによる入力結果に基づいて、ラベルとデバイスとを関連付け、必要に応じて他PLCも同様に設定して(ステップS140)、処理を終了する。
以下に、図8−2中の各処理について詳細に説明する。図9は、他装置用ラベル一覧情報生成処理の手順の一例を示すフローチャートであり、図10は、他装置用ラベル一覧情報生成処理の手順を説明するための図である。まず、プログラム設定部15によって保持された制御プログラム中に使用されている1つのラベルを抽出し(ステップS111)、抽出したラベルに、引用元ラベル識別情報が付加されているか否かを判定する(ステップS112)。
ラベルに引用元ラベル識別情報が付加されている場合(ステップS112でYesの場合)には、その引用元のPLCに対応付けられたラベルテーブル中に、ステップS111で抽出したラベルが存在するか否かを判定する(ステップS113)。抽出したラベルが引用元のPLCのラベルテーブル中にない場合(ステップS113でNoの場合)には、制御プログラムのユーザがラベルテーブルにないものを入力した構文エラーと判定し(ステップS114)、その旨を表示部11に表示させて処理を終了する。一方、抽出したラベルが引用元のPLCのラベルテーブル中に存在する場合(ステップS113でYesの場合)には、当該PLCで使用されている他PLCのラベル一覧である他PLCラベル一覧情報に、そのラベルを登録する(ステップS115)。なお、この他PLCラベル一覧情報は、他装置用ラベル一覧情報に対応している。
その後またはステップS112で抽出したラベルに引用元ラベル識別情報が付加されていない場合(ステップS112でNoの場合)に、制御プログラム中のすべてのラベルについて判定を行ったかを判定し(ステップS116)、すべてのラベルの判定が終わっていない場合(ステップS116でNoの場合)には、ステップS111へと戻り、すべてのラベルについて上述した処理が繰り返し実行される。また、すべてのラベルの判定が終わった場合(ステップS116でYesの場合)には、他装置用ラベル一覧情報生成処理が終了し、図8−2の処理に戻る。
たとえば、他装置用ラベル一覧情報生成部161は、図10のプログラムPLC1からラベル「LabelP」を抽出すると、このLabelPには、引用元ラベル識別情報が付加されていないので、PLC1でのみ使用されるラベルであると判定する。つぎに、プログラムPLC1中からラベル「PLC2−>LabelA」を抽出すると、このラベルには引用元ラベル識別情報「PLC2−>」が付加されているので、PLC2のラベルテーブル中に「LabelA」が存在するか確認する。ここでは、図7に示されるようにPLC2のラベルテーブルであるラベルPLC2中にLabelAが存在するので、他装置用ラベル一覧情報生成部161は、このLabelAを、PLC2ラベル一覧情報に登録する。以下、プログラムPLC1中の他のラベルについても同様の処理を行う。その結果、PLC2ラベル一覧情報とPLC3ラベル一覧情報が作成される。
図11は、制御装置用ラベル−デバイス関連付け設定処理の手順の一例を示すフローチャートである。まず、他装置用ラベル−デバイス関連付け設定処理部162は、ステップS11で設定したシステム構成から自制御装置(自PLC)と他制御装置(他PLC)とがネットワーク構成か否かを判定する(ステップS121)。自PLCと他PLCとがネットワーク構成である場合(ステップS121でYesの場合)には、図9の他装置用ラベル一覧情報生成処理で生成した他PLCラベル一覧情報に含まれるラベルを、リンク型の制御システムでの共有メモリに対応するリンクデバイスに関連付ける設定画面を生成し、表示処理部18を介して表示部11に表示させる(ステップS122)。その後、ユーザによって、この設定画面に入力された内容に基づいて、他装置用ラベル−デバイス関連付け設定処理部162は、他PLCラベル一覧情報に含まれるラベルとリンクデバイスとを関連付けて(ステップS123)、ラベルとデバイスの関連付け処理が終了し、図8−2の処理に戻る。
一方、ステップS121で自PLCと他PLCとがネットワーク構成でない場合(ステップS121でNoの場合)には、ステップS11で設定したシステム構成から自制御装置(自CPU)と他制御装置(他CPU)とがマルチCPU構成であるか否かを判定する(ステップS124)。マルチCPU構成でない場合(ステップS124でNoの場合)には、エラーであるか、制御システム中のCPUユニットに特性が異なる(たとえば他社の)CPUユニットが存在しているか、システム構成情報が設定されていないか、またはリンクデバイスでないネットワークによるシステム構成の場合であるとして、エラーメッセージを表示し(ステップS125)、処理を終了する。
また、マルチCPU構成である場合(ステップS124でYesの場合)には、図9の他装置用ラベル一覧情報生成処理で生成した他PLCラベル一覧情報に含まれるラベルを、マルチCPU型の制御システムでの共有メモリに対応する共有リフレッシュデバイスに関連付ける設定画面を生成し、表示処理部18を介して表示部11に表示させる(ステップS126)。その後、ユーザによって、設定画面に入力された内容に基づいて、他装置用ラベル−デバイス関連付け設定処理部162は、他PLCラベル一覧情報に含まれるラベルと共有リフレッシュデバイスとを関連付けて(ステップS127)、ラベルとデバイスの関連付け処理が終了し、図8−2の処理に戻る。
図12は、ステップS22で表示されるラベルをリンクデバイスに関連付ける設定画面の一例を示す図である。この設定画面には、他PLCラベル一覧情報に含まれるラベルが、図中の「ラベル」項目に格納される。そして、この項目「ラベル」に入力されたラベルに関して、項目「デバイス/定数値」や項目「デバイス種別」、項目「コメント」がユーザによる入力部12からの設定が可能になっている。この設定画面によって、ラベルをどのデバイスに関連付けるかが設定される。なお、この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。
この実施の形態1の例では、PLC2とPLC3は全く同一の機能を有するモジュール化されたものであり、PLC1がそれらを統括制御する構成であるので、PLC2とPLC3との間でのデータのやりとりがない。そのため、プログラムPLC1にて用いられているラベルPLC2やラベルPLC3が、リンクデバイスとなるデータ数のすべてとなる。したがって、プログラムPLC1で使用されているPLC2ラベル一覧情報中のラベルとPLC3ラベル一覧情報中のラベルの一覧を呈示することで、ユーザは、そのラベルの数を確認してからリンクデバイスの割付の設定を行うことができるとともに、リンクデバイスの割付を簡単に設定することができる。
なお、付加的な機能として、システム設定から、自PLCと他PLCとがネットワーク構成であれば、リンクデバイスに関連付けるような制約を付加し、自PLCと他PLCとがマルチCPU構成であれば、共有リフレッシュデバイスに関連付けるような制約を付加してもよい。
また、その他の付加的な機能として、リンクデバイスの割付や共有リフレッシュデバイスの割付が未だなされていない場合には、ここで先ずリンクデバイスの割付や共有リフレッシュデバイスの割付を行ってから、他PLCのラベルをリンクデバイスや共有リフレッシュデバイスに関連付ける手順となる旨のメッセージを表示するようにしてもよい。以上で、他装置用ラベル一覧情報生成処理が終了する。
ステップS130の関連付け反映処理では、ステップS120の他制御装置ラベル−デバイス関連付け設定処理で設定した、ラベルとデバイスとの関連付け結果を他PLCに対しても反映させる。図6−1や図6−2のように、他PLCであるPLC2とPLC3のデータもPLC1と同じ開発ツール上に存在し、PLC2もPLC3も同じ開発ツール上でコンパイルするのであれば、同じ開発ツール上での反映なので、PLC2やPLC3のそれぞれの設定データに対して反映すればよい。
しかし、他PLCであるPLC2とPLC3のデータが、PLC1とは別の開発ツール上に存在し、PLC2もPLC3も別の開発ツール上でコンパイルするのであれば、他装置用ラベル−デバイス関連付け設定処理にて設定した関連付け結果を、別の開発ツールへ反映する必要がある。この方法としては、たとえば、上記特許文献2では、各PLCのプログラムを作成するツール間で、ラベル名を共有する方法を利用することが可能である。また、他装置用ラベル−デバイス関連付け設定処理にて設定した関連付け結果をファイル出力して(エクスポートして)、別のツールでそのファイルを読み込む(インポートする)方法でもよい。
ステップS140の自制御装置のラベルと自制御装置のデバイスの関連付け処理では、ラベル−デバイス関連付け設定処理部164は、背景技術で説明したラベル名とデバイスのアドレスとの関連付けを行い、上記したステップS110〜130の処理の対象となっているラベル以外のラベルに対して、従来と同様の方法でラベル名とデバイスのアドレスとの関連付けを行う。この場合にも、自PLCのラベルを自PLCのどのデバイスに関連付けるかを設定する図12と同様の設定画面を呈示し、その設定内容に応じて、ラベルとデバイスとの関連付けを行う。また、必要に応じて他PLCも同様に従来の設定画面を呈示して設定する。
特に、PLC2とPLC3は機能が全く同じでモジュール化されている場合には、PLC間でデータのやりとりを行うためのラベル以外のラベルを予めすべてPLC2とPLC3内のリンクデバイス以外のデバイスに関連付けておけば、PLC2とPLC3に関して、ステップS140の処理は不要となる。すなわち、モジュール化されているPLCの場合には、そのPLC内の制御を記述するプログラムやラベルを一切編集する必要がないので、PLC単位での再利用が可能となる。
以上により、すべてのラベルを実デバイスへ関連付ける作業が完了したので、プログラムPLC1、プログラムPLC2およびプログラムPLC3と実機へダウンロードするための図3のステップS15のコンパイル処理を行うことが可能となる。
なお、上述した説明では、PLC1,PLC2,PLC3がリンク型の制御システムを構成する場合を例に挙げたが、複数のCPUユニットがベースユニット上に接続され、1台のPLCユニットが機能の全く同じ他の複数のCPUユニットを統括制御するマルチCPU型の制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチCPU構成が混在している場合でも、処理の手順は同様に行うことができる。
この実施の形態1によれば、全く同じ機能を有する複数台の制御装置を統括的な役割を果たす1台の制御装置が制御するような制御システムの開発時に、複数台の制御装置のラベルが重複していても、統括の制御装置の制御プログラムを作成する際に制御装置間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能となる。その結果、プログラムの可読性が向上するとともに、全く同じ機能を有する複数台の制御装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなり、ラベル名の置き換えの手間がなくなるという効果を有する。
また、全く同じ機能を有する複数台の制御装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなることで、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることなく、モジュール化した制御装置の再利用による装置開発の効率化を実現することができるという効果も有する。
実施の形態2.
この実施の形態2では、機能が同じ2台のPLCであるPLC2,PLC3と、それらを統括制御する1台のPLCであるPLC1を用いて1つの制御システムを構築する場合の、3台のPLCの制御プログラムを開発する場合について説明する。システム構成は実施の形態1と同じであるが、この実施の形態2では、PLC2とPLC3のラベルにおいて、PLC1でも使用してよいラベルと使用すべきでないラベルとを区別している点が異なる。
まず、図3のステップS11に示されるように、システム構成の設定が行われる。図13は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、機能が同じ2台のPLC2,PLC3と、これらを統括制御する1台のPLC1がネットワークで接続された制御システムについてのシステム構成が設定される。
つぎのステップS12では、ラベルの編集が行われ、PLCごとにラベルテーブルが作成される。それぞれのラベルテーブルでは、どのPLCで用いられるかの属性を保持する。図13に示される開発ツールでは、システム構成編集ツールで作成されたシステム構成のPLCごとに、ラベルとプログラムを分割して作成している。つまり、システム構成のPLC1に関して、このPLC1に関連付けさせてラベルテーブルとプログラムを管理するようにし、PLC2,PLC3についても同様にラベルテーブルとプログラムを管理するようにしている。このような形態の管理ツール上では、ラベルテーブルに、どのPLCで用いられるかの属性を自動的に保持させることができる。さらに、この実施の形態2においては、ラベルテーブルは、図中のラベルPLC2、ラベルPLC3と示したようにそのPLC内に閉じて用いられるラベルであるのか、PLC2公開ラベルとPLC3公開ラベルと示したように他PLCと共有して用いられるか(すなわち、ラベルを他PLCに対して公開するか)を指定した2種類のラベルテーブルが作成される。このように公開するラベルと非公開のラベルを分けることによって、モジュール化されているPLC2とPLC3において、PLC1が参照するラベルと、PLC1が参照しないラベルとを予め分類しておくことになる。
つぎのステップS13では、プログラムの編集が行われる。図13に示される開発ツールでは、ラベルと同様に、システム構成のPLCごとに分割してプログラムが作成される。ただし、プログラムは、システム構成のどのPLCで実行させるかを指定してから作成される。
このプログラム編集において、他PLCのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、他PLCが公開しているラベルテーブル(PLC2公開ラベルとPLC3公開ラベル)のラベルのみ、使用が可能であり、他PLCが公開していないラベルテーブル(PLC2ラベルとPLC3ラベル)のラベルを使用することはできない。また、他PLCが公開しているラベルテーブルのラベルを使用する場合のラベルの表記方法は、実施の形態1の場合と同様に、ラベルに引用元ラベル識別情報を付して表記することになる。図14は、プログラムの作成方の一例を示す図である。図13には、ラベルテーブルは、PLC1のラベルPLC1と、PLC2のPLC2公開ラベルとラベルPLC2と、PLC3のPLC3公開ラベルとラベルPLC3との5つである。プログラムPLC1のプログラミングには、ラベルPLC1とPLC2公開ラベルとPLC3公開ラベル中のラベルを使用することができるが、公開されていないラベルPLC2とラベルPLC3中のラベルを使用することはできない。
以上のように、他PLCに対して公開する公開ラベルとそうでない非公開ラベルのラベルテーブルを分けて管理した場合のPLCのプログラミングが完了すると、ラベルを実デバイスへ関連付ける処理が行われる。このように、公開ラベルと非公開ラベルとを分けて予め作成しておく場合には、実施の形態1の図8−2のステップS110または図9の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態1では、ステップS110において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他PLCが保持されているラベルであるか否かを判定し、プログラムで使用されている他PLCのラベルの一覧を、他PLCの名称ごとに作成していたが、この実施の形態2では、PLC2公開ラベルとPLC3公開ラベルが、そのままPLC1のプログラムで使用されている他PLCのラベルの一覧になるので、ステップS110を省略することが可能なる。
なお、このとき、PLC1のプログラムにおいて、PLC2公開ラベルとPLC3公開ラベルをすべて使用していない場合でも、PLC2公開ラベルとPLC3公開ラベルをすべてデバイスに関連付けても、動作としては問題ない。また、PLC1のプログラムにおいて、PLC2公開ラベルとPLC3公開ラベルをわずかしか使用していない場合には、実施の形態1でのステップS110の処理を、PLC2公開ラベルとPLC3公開ラベルに対して実施すれば、PLC2公開ラベルとPLC3公開ラベル中の他の使用していないラベルをデバイスに割付ける無駄を省くことができる。
この後のステップS120で、他装置用ラベル−デバイス関連付け設定処理部162は、PLC2公開ラベルとPLC3公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。その後の処理は、実施の形態1と同様であるので、その説明を省略する。
なお、上述した説明では、PLC1,PLC2,PLC3がリンク型の制御システムを構成する場合を例に挙げたが、複数のCPUユニットがベースユニット上に接続され、1台のPLCユニットが機能の全く同じ他の複数のCPUユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチCPU構成が混在している場合でも、処理の手順は同様に行うことができる。
この実施の形態2によれば、実施の形態1の効果に加え、統括PLCの制御プログラムを作成するにあたり他PLC間でのデータのやり取りに対して同じラベル名を用いたプログラムを作成する際に、他PLCが公開していないラベル名を使用することができないので、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。
すなわち、モジュール化したPLCに対して動作指示などのデータのやりとりを行うべきラベルのみを公開し、他PLCとの間でやりとりを行うべきデータではないラベルは非公開とするようにしたので、そのモジュール化したPLCを用いた装置の開発時に、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。そして、このようなPLCの機能モジュール化が可能となるという効果を有する。よって、モジュール化したPLCの再利用による装置開発の効率化と、ミスの軽減による装置開発の効率化とが、同時に実現可能となる。
実施の形態3.
この実施の形態3では、定められた機能を実現する1台の装置を複数台のPLCによって制御し、さらにこれらを1台のPLCで統括制御する1つの大規模装置を構築する場合におけるPLCの制御プログラムを開発する場合について説明する。この場合、実施の形態1,2とは異なり、装置ごとにラベルを管理することになる。なお、以下では、2台のPLC2とPLC3が1台の装置を制御し、これらの2台のPLC2とPLC3をPLC1が統括制御する場合を例に挙げて説明する。
まず、図3のステップS11に示されるように、システム構成の設定が行われる。図15は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、まず装置名が「MACHINE」という装置が作成される。この装置は、PLC2とPLC3によって構成される。ついで、装置を構成する2台のPLC2,PLC3と、これらを統括制御する1台のPLC1がネットワークで接続された制御システムが作成される。なお、この開発ツールのツリービューにおける構成要素は、システム構成と、装置と、この装置中のPLCを統括制御するPLCとから構成される。
つぎのステップS12では、ラベルの編集が行われる。このとき、装置(装置を構成するPLC2,PLC3を含む)で使用されるラベルと、装置を制御するPLC1で使用されるラベルの編集が行われる。PLC1では、上述した実施の形態1,2と同様にラベルテーブルが形成される。装置では、装置として外部に公開するラベルテーブル(以下、装置公開ラベルという)が指定される。これにより、装置を統括制御するPLC1の制御プログラムは、この装置公開ラベルを用いてプログラムが作成されることになる。また、装置を構成するPLC2,PLC3のラベルは、PLC別に分割してラベルテーブルとしてそれぞれPLC2ラベル、PLC3ラベルが作成される。これらのPLC2ラベルとPLC3ラベルは、他PLCに対して公開されないラベルテーブルである。それぞれのラベルテーブルでは、どのPLCで用いられるかの属性を保持する。そのため、ユーザは、ラベルテーブルを作成する際に、そのラベルテーブルがどのPLCで用いられるかを指定する必要がある。
ついで、ステップS13では、プログラムの編集が行われる。図15に示される開発ツールでは、ラベルと同様に、システム構成のPLCごとに分割してプログラムが作成される。ただし、プログラムは、システム構成のどのPLCで実行させるかを指定してから作成される。
このプログラム編集において、PLC1のプログラムを作成する際には、ラベルPLC1と装置公開ラベルを用いる。これにより、装置を統括制御するPLC1は、この装置公開ラベルを用いて装置を制御するプログラムを作成することになるため、PLC2やPLC3に対して動作指示を行うようなプログラムを作成するというよりは、むしろ装置に対して動作指示を行うようなプログラムを作成することになる。そのため、PLC1のプログラムを作成する際には、PLC2やPLC3のラベルテーブルであるラベルPLC2やラベルPLC3を用いることはできない。
一方、装置を構成するPLC2のプログラムを作成する際には、ラベルPLC2と装置公開ラベルテーブルを用いる。これにより、装置の機能を実現するPLC2は、この装置として公開されているラベルテーブルを用いて装置を制御するプログラムを作成することになる。そのため、PLC2プログラムとしては、装置外部のPLC1からの動作指示を受けて実施する機能のうち、PLC2が実施を担当する機能の部分のプログラムが作成されることになる。なお、他PLCが公開しているラベルテーブルのラベルを使用する場合のラベルの表記方法は、実施の形態1の場合と同様に、ラベルに引用元ラベル識別情報を付して表記することになる。また、PLC3のプログラムを作成する際も、PLC2の場合と同様である。
図16は、プログラムの作成方法の一例を示す図である。図16には、ラベルテーブルは、PLC1のラベルテーブルであるラベルPLC1と、装置のラベルテーブルである装置公開ラベルと、装置を構成するPLC2とPLC3のラベルテーブルであるラベルPLC2とラベルPLC3との4つである。プログラムPLC1のプログラミングには、ラベルPLC1と装置公開ラベル中のラベルを使用することができるが、ラベルPLC2とラベルPLC3中のラベルを使用することはできない。また、プログラムPLC2のプログラミングには、ラベルPLC2と装置公開ラベル中のラベルを使用することができるが、ラベルPLC1とラベルPLC3中のラベルを使用することはできない。同様に、プログラムPLC3のプログラミングには、ラベルPLC3と装置公開ラベル中のラベルを使用することができるが、ラベルPLC1とラベルPLC2中のラベルを使用することはできない。装置公開ラベル中のラベルを使用する場合に、引用元ラベル識別情報として「MACHINE−>」が用いられている。
以上のように、装置として外部に公開するラベル(装置公開ラベル)とは、装置が外部に対して提供する機能に相当するものである。装置を外部から制御する側の制御装置(PLC1)では、この装置公開ラベルを用いて制御プログラムが作成され、装置の内部で機能を実現する側の制御装置(PLC2,PLC3)では、この装置公開ラベルを用いて装置の機能を実施するプログラムが作成されることになる。
このように、装置のラベルとして他PLCに公開している装置公開ラベルと、それぞれのPLC1,PLC2,PLC3でのみ使用するラベルのラベルテーブルを分けて管理した場合のPLCのプログラミングが完了すると、図3のステップS14と図8−2のラベルを実デバイスへ関連付ける処理が行われる。この実施の形態3のように、装置公開ラベルと、各PLCでのみ使用する非公開のラベルテーブルとを分けて予め作成しておく場合には、実施の形態1の図8−2のステップS110または図9の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態1では、ステップS110において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他PLCが保持されているラベルであるか否かを判定し、プログラムで使用されている他PLCのラベルの一覧を、他PLCの名称ごとに作成していたが、この実施の形態3では、装置公開ラベルが、そのままPLC1のプログラムで使用されている他PLCのラベルの一覧になるので、ステップS110を省略することが可能なる。
なお、このとき、プログラムPLC1において、装置公開ラベルをすべて使用していない場合に、装置公開ラベルをすべてデバイスに関連付けても、動作としては問題ない。また、プログラムPLC1において、装置公開ラベル中のラベルをわずかしか使用していない場合には、実施の形態1でのステップS110の処理を、その装置公開ラベルに対して実施すれば、装置公開ラベル中の他の使用していないラベルをデバイスに割付ける無駄を省くことができる。
この後の図8−2のステップS120で、他装置用ラベル−デバイス関連付け設定処理部162は、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。その後の、処理は、実施の形態1と同様であるので、その説明を省略する。
上述した説明では、PLC2とPLC3の2台のPLCから構成される、定められた機能を実施する装置を1つ用いて、それらを統括制御する1台のPLCであるPLC1を用いて1つの大規模装置を構築していた。しかし、装置側を改善することによって、具体的には、装置側を構成する2台のPLC2とPLC3を、同じ機能をより高速で安価に実施することができる1台の新しいPLC4によって置き換えることによって、この実施の形態3による大規模装置のプログラム開発の効果をさらに有効にすることができる。
図17は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。このシステム構成では、先に構築した装置名が「MACHINE」という装置の中で、装置公開ラベルはそのままにして、装置が1つのPLC4のみから構成されるように改善している。ここで、PLC1プログラムと装置公開ラベルは、改善前と全く同じであり、変更する必要はない。
PLC4のプログラムを作成する際には、ラベルPLC4と装置公開ラベルを用いる。これにより、装置の機能を実現するPLC4では、この装置公開ラベルを用いて装置を制御するプログラムが作成されることになる。そのため、プログラムPLC4としては、装置外部のPLC1からの動作指示を受けて実施する機能の部分のプログラムが作成される。なお、その他の処理は、改善前の場合と同様にして行われるので、その説明を省略する。
なお、上述した説明では、PLC1,PLC2,PLC3またはPLC1,PLC4がリンク型の制御システムを構成する場合を例に挙げたが、複数のCPUユニットがベースユニット上に接続され、1台のPLCユニットが機能の全く同じ他の複数のCPUユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチCPU構成が混在している場合でも、処理の手順は同様に行うことができる。
この実施の形態3によれば、実施の形態1,2の効果に加えて、定められた機能を実施する装置を統括的な役割を果たす1台の制御装置が制御するような大規模装置を開発する場合に、統括制御する制御装置の制御プログラムの再利用による装置開発の効率化を実現することができるという効果を有する。
また、制御装置単位で機能をモジュール化する場合に加え、1台以上の制御装置をまとめた装置単位で機能をモジュール化する場合には、そのモジュール化した装置に対して動作指示などのデータのやりとりを行うべきラベルのみを公開し、他の制御装置や他装置との間でやりとりを行うべきデータではないラベルを他の制御装置に対して非公開とするようにしたので、モジュール化した装置を用いた装置の開発時に、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。そして、このような装置の機能モジュール化が可能になるという効果も有する。したがって、装置のモジュール化による再利用による装置開発の効率化と、ミスの軽減による装置開発の効率化とが、同時に実現可能となる。さらに、全く同じ機能を有する複数台の装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなるので、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることがない。
実施の形態4.
この実施の形態4では、定められた機能を実施する1つの装置を用いて、この装置を統括制御する1台のPLCであるPLC1を用いて1つの大規模装置が構成されている場合において、装置を改善してプログラムの開発をさらに効率化する場合を説明する。なお、以下では、定められた機能を実施する装置を、モジュール化された2台のPLC5とPLC6で構成する場合について説明する。
まず、図3のステップS11に示されるように、システム構成の設定が行われる。図18は、大規模装置のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、まず装置名が「MACHINE」という装置が作成される。この装置は、モジュール化されているPLC5とPLC6によって構成される。したがって、PLC5とPLC6は外部に公開するラベルテーブルを有している。ついで、装置を構成する2台のPLC5,PLC6をネットワークを介して統括制御する1台のPLC1が作成される。なお、この開発ツールのツリービューにおける構成要素は、システム構成と、装置と、この装置中のPLCを統括制御するPLCとから構成される。
つぎのステップS12では、ラベルの編集が行われる。このとき、装置が公開するラベルと、装置を構成するPLC5とPLC6で使用されるラベルと、装置を制御するPLC1で使用されるラベルと、の編集が行われる。PLC1では、上述した実施の形態1,2と同様にラベルテーブルが形成される。装置では、装置公開ラベルが指定される。また、装置を構成するPLC5,PLC6のラベルは、PLC別に分割して、また他PLCに対して公開するラベルテーブルであるPLC5公開ラベル、PLC6公開ラベルと、そうでない非公開のラベルテーブルであるラベルPLC5、ラベルPLC6が形成される。それぞれのラベルテーブルでは、どのPLCで用いられるかの属性を保持する。そのため、ユーザは、ラベルテーブルを作成する際に、そのラベルテーブルがどのPLCで用いられるかを指定する必要がある。
ラベルテーブルを作成した後、装置公開ラベル中のラベルと、PLC5公開ラベルおよびPLC6公開ラベル中のラベルとを関連付ける。これは、ラベルをラベルに関連付けるものであるので、従来のラベルをデバイスへ関連付ける設定画面とは異なり、装置公開ラベル中のラベルと、PLC5公開ラベルとPLC6公開ラベル中のラベルとを関連付ける専用の設定画面をユーザに呈示する。そして、この設定画面に入力された内容に基づいて、装置公開ラベル中のラベルと、各PLC5公開ラベル、PLC6公開ラベル中のラベルとの関連付け設定が行われる。なお、この装置公開ラベルと装置を構成する各PLCの公開ラベルとを関連付けたものを装置公開ラベル関連付け情報という。
図19は、装置公開ラベル関連付け情報の一例を示す図である。この装置公開ラベル関連付け情報は、装置公開ラベルのラベルに対して関連付けられるラベルテーブルとそのラベルとを関連付けるものであり、ここでは、装置公開ラベル中のラベルを示す「装置公開ラベル」と、装置公開ラベルに対して関連付けを行うラベルテーブルを示す「外部公開ラベルテーブル名称」と、この外部公開ラベルテーブル名称中のラベル名を示す「外部公開ラベル」と、を含む。この装置公開ラベル関連付け情報で、「装置公開ラベル」中のラベルが、「外部公開ラベルテーブル名称」中の「外部公開ラベル」と関連付けされる。
ついで、ステップS13では、プログラムの編集が行われる。図15に示される開発ツールでは、PLC1のプログラムの作成が行われる。このPLC1のプログラミングについては、実施の形態1〜3と同様であるので、その説明を省略する。一方、PLC5とPLC6はモジュール化されており、外部に公開するラベルを装置公開ラベルと関連付けていることによって、装置の機能を実現することができ、PLC5とPLC6のプログラミングは不要となる。
以上のように、装置のラベルとして公開している装置公開ラベルと、装置を構成するPLC5,PLC6の公開ラベルと非公開ラベルと、装置公開ラベルとPLC5,PLC6の公開ラベルとを対応付けた装置公開ラベル関連付け情報とで、装置のラベルを管理した場合のPLCのプログラミングが完了すると、図3のステップS14と図8−2のラベルを実デバイスへ関連付ける処理が行われる。このように、装置公開ラベルを予め作成し、装置を構成する各PLCでのみ使用される非公開ラベルを作成しておく場合には、実施の形態1の図8−2のステップS110または図9の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態1では、ステップS110において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他PLCが保持されているラベルであるか否かを判定し、プログラムで使用されている他PLCのラベルの一覧を、他PLCの名称ごとに作成していたが、この実施の形態4では、装置公開ラベルが、そのままPLC1のプログラムで使用されている他PLCのラベルの一覧になるので、ステップS110を省略することが可能なる。
この後の図8−2のステップS120で、他装置用ラベル−デバイス関連付け設定処理部162は、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。なお、実施の形態3では、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して設定するが、この実施の形態4では、装置公開ラベルはすべてPLC5公開ラベルとPLC6公開ラベルに関連付けられているため、PLC5公開ラベルとPLC6公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによる設定が行われれば、装置公開ラベルをデバイスに関連付けたことになる。その後の、処理は、実施の形態1と同様であるので、その説明を省略する。
なお、上述した説明では、PLC1,PLC5,PLC6がリンク型の制御システムを構成する場合を例に挙げたが、複数のCPUユニットがベースユニット上に接続され、1台のPLCユニットが機能の全く同じ他の複数のCPUユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチCPU構成が混在している場合でも、処理の手順は同様に行うことができる。
この実施の形態4によれば、実施の形態3の効果に加えて、定められた機能を実施する装置を統括的な役割を果たす1台の制御装置が制御するような大規模装置を開発する場合において、装置公開ラベルを用意するとともに、装置を構成する制御装置の公開ラベルを装置公開ラベルと関連付けできるようにしたので、統括制御を行う制御装置の制御プログラムの再利用による大規模装置開発の効率化が実現可能であり、かつ、装置側の開発においてモジュール化した制御装置を用いることが可能であり、統括側の開発における再利用による効率化と、装置側の開発における再利用による効率化を同時に実現することができるという効果を有する。
また、複数台の装置の公開するラベルが重複していても、統括制御を行う制御装置の制御プログラムを作成する際に、各装置との間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能となるので、プログラムの可読性が向上するとともに、全く同じ機能を有する複数台の装置の公開するラベルを、それぞれ異なるラベル名に置き換える必要がなくなり、ラベル名の置き換えの手間がなくなるという効果が、統括制御側の制御装置と装置側の制御装置とで同時に実現される。
さらに、他装置との間でのデータのやり取りに対して同じラベル名を用いたプログラムを作成する際に、他装置が公開していないラベル名を使用することができないので、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減されるという効果も、統括側の制御装置と装置側の制御装置とで同時に実現される。
なお、上述したプログラム作成支援方法は、その処理手順を書込んだプログラムを、CPU(中央演算処理装置)を有するパーソナルコンピュータやワークステーションなどのコンピュータ(情報処理装置)で実行することにより実現することができる。この場合、コンピュータのCPU(制御手段)が、プログラムにしたがって、上述したプログラム作成支援方法の各処理工程を実行することになる。これらのプログラムは、ハードディスク、フロッピー(登録商標)ディスク、CD(Compact Disk)−ROM(Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile DiskまたはDigital Video Disk)などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、これらのプログラムは、インタネットなどのネットワーク(通信回線)を介して配布することもできる。