以下に、本開示の実施の形態にかかるプログラマブルコントローラおよび製造システムを図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1にかかる第1のPLCを備えた第1の製造システムの構成を示す図である。第1の製造システムである製造システム101は、第1の製造装置である製造装置1と、PLC用のエンジニアリングツール5とを備えている。
製造装置1は、第1のPLCであるPLC10Aと、センサ31,32と、他機器21と、アクチュエータ41とを有している。エンジニアリングツール5は、コンピュータに格納されており、このコンピュータがPLC10Aに接続されている。
PLC10Aは、メインユニット11と、入力ユニット12と、出力ユニット13と、アナログ入力ユニット14と、通信ユニット15とを具備している。入力ユニット12、出力ユニット13、アナログ入力ユニット14、および通信ユニット15は、何れも拡張ユニットである。拡張ユニットは、必要に応じてメインユニット11に取り付けまたは取り外しが可能な製造装置1への機能拡張のためのユニットである。
メインユニット11に対しては、複数の拡張ユニットが接続可能となっている。製造装置1では、入力ユニット12、出力ユニット13、アナログ入力ユニット14、および通信ユニット15は、それぞれメインユニット11に接続されている。
メインユニット11に対してエンジニアリングツール5で接続構成が設定された拡張ユニットのうち、実際にはメインユニット11に接続されていない拡張ユニットのユニット番号が、欠番と判定されるユニット番号である。すなわち、接続構成が設定されているにもかかわらず、実際にはメインユニット11に接続されていない拡張ユニットのユニット番号が、欠番と判定されるユニット番号である。ユニット番号は、拡張ユニットのメインユニット11に対する接続位置を識別するための情報である。メインユニット11に接続可能な拡張ユニットがN(Nは自然数)台である場合に、メインユニット11にM(Mは、N以下の自然数)台の拡張ユニットが接続されている場合、(N-M)台分の拡張ユニットのユニット番号が欠番となる。
PLC10Aでは、メインユニット11がエンジニアリングツール5を格納したコンピュータに接続されている。また、入力ユニット12が、センサ31に接続されており、アナログ入力ユニット14がセンサ32に接続されている。また、通信ユニット15が他機器21に接続されており、出力ユニット13がアクチュエータ41に接続されている。
エンジニアリングツール5は、エンジニアリングツール5を格納するコンピュータによって実行される。エンジニアリングツール5は、使用者からの指示に従って、メインユニット11への種々の設定を行う。また、エンジニアリングツール5は、使用者からの指示に従って、製造装置1に適用される制御プログラムを作成する。この制御プログラムは、後述する製造装置2にも適用されるプログラムである。すなわち、エンジニアリングツール5が作成する制御プログラムは、種類が異なる複数の製造装置(実施の形態1では製造装置1,2)間で共通して使用されるプログラムである。製造装置1,2で共通して使用される制御プログラムは、製造装置1で使用可能な制御プログラムと、製造装置2で使用可能な制御プログラムとを統合した制御プログラムである。制御プログラムは、製造装置1,2を制御するためのプログラムであり、メインユニット11によって実行される。
エンジニアリングツール5が作成する制御プログラムには、何れの拡張ユニットがメインユニット11に対して何台目に接続されているかの接続位置情報を有したシステム構成設定が含まれている。すなわち、システム構成設定は、拡張ユニットのメインユニット11に対する接続構成を定義した情報である。
エンジニアリングツール5は、作成した制御プログラムをメインユニット11に書き込む。また、エンジニアリングツール5は、欠番となっている拡張ユニットのユニット番号をメインユニット11から読み出して、表示装置等に表示させる。
メインユニット11には、制御プログラムが書き込まれており、メインユニット11は、制御プログラムを用いてPLC10Aを制御する。メインユニット11は、電源がオンになると起動し、起動処理の際に制御プログラムを解析する。
センサ31は、第1の測定対象から情報を収集し、収集した情報に対応するデジタル信号を入力ユニット12に送る。センサ32は、第2の測定対象から情報を収集し、収集した情報に対応するアナログ信号をアナログ入力ユニット14に送る。センサ31,32が収集する情報は、温度、電圧などである。
入力ユニット12は、センサ31からデジタル信号を受け付けてメインユニット11に入力する。アナログ入力ユニット14は、センサ32からアナログ信号を受け付けてメインユニット11に入力する。
通信ユニット15は、他機器21との間で通信を実行する。通信ユニット15は、メインユニット11から送られてくるデータを他機器21に送信し、他機器21から送られてくるデータを受信してメインユニット11に送る。他機器21は、PLC10A以外の装置である。
メインユニット11は、入力ユニット12から送られてくるデジタル信号、アナログ入力ユニット14から送られてくるアナログ信号、通信ユニット15から送られてくるデータ、および制御プログラムを用いて、アクチュエータ41を制御するためのデータを生成する。メインユニット11は、生成したデータを出力ユニット13に送る。出力ユニット13は、メインユニット11から送られてくるデータをアクチュエータ41に出力する。
図2は、実施の形態1にかかる第2のPLCを備えた第2の製造システムの構成を示す図である。図2の各構成要素のうち図1の製造システム101と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。第2の製造システムである製造システム102は、第2の製造装置である製造装置2と、エンジニアリングツール5とを備えている。
製造装置2は、第2のPLCであるPLC10Bと、センサ31と、他機器21と、アクチュエータ41とを有している。エンジニアリングツール5は、コンピュータに格納されており、このコンピュータがPLC10Bに接続されている。
PLC10Bは、メインユニット11と、入力ユニット12と、出力ユニット13と、通信ユニット15とを具備している。すなわち、PLC10Bは、PLC10Aと比較して、アナログ入力ユニット14を有しておらず、アナログ入力ユニット14のユニット番号は欠番である。PLC10Bでは、入力ユニット12、出力ユニット13、および通信ユニット15の全てが拡張ユニットである。
PLC10Bが備えるメインユニット11は、PLC10Aが備えるメインユニット11と同様の機能を有している。PLC10Bが備えるメインユニット11と、PLC10Aが備えるメインユニット11とは、種類が異なるメインユニットであってもよい。
製造現場では、製品のカスタマイズ対応などで同じ製品を複数種類製造する場合がある。例えば、製造装置1は、製品に対して第1のカスタマイズが実行された第1の製品を製造し、製造装置2は、製品に対して第2のカスタマイズが実行された第2の製品を製造する。第1のカスタマイズおよび第2のカスタマイズは、どのようなカスタマイズであってもよい。
製造装置1が製造する第1の製品は、アナログ信号を用いてアクチュエータ41が制御されることで製造される製品である。製造装置2が製造する第2の製品は、アナログ信号を用いることなくアクチュエータ41が制御されることで製造される製品である。
このように、製造装置1,2は、同じ機能を有したメインユニット11を用いて構成されているが、メインユニット11に接続される拡張ユニットの構成が異なっている。複数種類の製造装置1,2が用いられることで、製造装置1,2は、カスタマイズされた複数種類の製品を製造する。
実施の形態1では、制御プログラム内のシステム構成設定に予め使用者が欠番を設定しておく必要がない。製造装置1,2のメインユニット11は、メインユニット11が起動する際にシステム構成設定に含まれている接続構成と、実機の接続構成(以下、実機構成という場合がある)とをメインユニット11に近い側の接続位置(メインユニット11から見て前段側の接続位置)から順番に比較する。
メインユニット11は、拡張ユニットが、システム構成設定内には存在し、且つ実機の接続構成には存在しない場合は、この拡張ユニットのユニット番号を自動的に欠番に設定する。また、メインユニット11は、欠番に設定したユニット番号の拡張ユニットに関連する制御プログラムを自動で無効化する。これにより、メインユニット11は、制御プログラムを変更することなく、制御プログラムを用いてそのまま動作する。
ここで、システム構成設定および制御プログラムの例について説明する。図3は、実施の形態1にかかる第1および第2のPLCに適用されるシステム構成設定の例を示す図である。図3では、制御プログラムに含まれるシステム構成設定50を示している。
なお、ここではPLC10Bのシステム構成設定50について説明する。システム構成設定50は、製造システム101または製造システム102のエンジニアリングツール5を用いて作成される。
システム構成設定50には、拡張ユニットの接続構成(拡張ユニット接続構成51)と、割り当てられたユニット番号(割り当てユニット番号52)とが含まれている。
拡張ユニット接続構成51は、PLC10B内での拡張ユニットの接続構成を示す情報である。割り当てユニット番号52は、各拡張ユニットに対し、接続位置を識別するために割り振られたユニット番号である。
図3の拡張ユニット接続構成51では、メインユニット(図2のメインユニット11)に最も近い接続位置に入力ユニット(図2の入力ユニット12)が接続され、2番目に近い接続位置に出力ユニット(図2の出力ユニット13)が接続されている場合を示している。また、図3の拡張ユニット接続構成51では、メインユニットに3番目に近い接続位置にアナログ入力ユニット(図2では配置されていないアナログ入力ユニット14)が接続され、4番目に近い接続位置に通信ユニット(図2の通信ユニット15)が接続されている場合を示している。拡張ユニット接続構成51でのメインユニット、入力ユニット、出力ユニット、アナログ入力ユニット、通信ユニットは、それぞれ図1で説明したメインユニット11、入力ユニット12、出力ユニット13、アナログ入力ユニット14、通信ユニット15に対応している。なお、以下の説明では、拡張ユニット接続構成51を単に接続構成という場合がある。
図3の割り当てユニット番号52では、入力ユニットにユニット番号U1が割り当てられ、出力ユニットにユニット番号U2が割り当てられる場合を示している。また、図3の割り当てユニット番号52では、アナログ入力ユニットにユニット番号U3が割り当てられ、通信ユニットにユニット番号U4が割り当てられる場合を示している。
図2に示したように、PLC10Bは、実際にはアナログ入力ユニット14が接続されていない。実施の形態1では、PLC10Bのシステム構成設定50には、アナログ入力ユニット14に対応するユニット番号U3が欠番であることを示す情報が格納されていない。実施の形態1では、PLC10Bのメインユニット11が、システム構成設定50と実機構成とを比較することで欠番を検出し、欠番の情報をエンジニアリングツール5が読み出してモニタ画面(システム構成設定モニタ画面)に表示させる。図3では、欠番であるユニット番号U3にハッチングを付して図示している。
図4は、実施の形態1にかかる第1および第2のPLCに適用される制御プログラムの例を示す図である。なお、ここではPLC10Bに適用された制御プログラム60について説明する。制御プログラム60は、製造システム101または製造システム102のエンジニアリングツール5を用いて製造装置1,2用に作成される。
図4の制御プログラム60は、拡張ユニットに対するプログラムである。図4では、制御プログラム60がラダープログラムである場合を示している。図4では、制御プログラム60に含まれる命令として、各拡張ユニットに対して入出力の指令を行うための命令例を示している。
制御プログラム60には、拡張ユニット読み出し命令と、拡張ユニット書き込み命令とがある。拡張ユニット読み出し命令は、拡張ユニットからデータを読み出す命令であり、拡張ユニット書き込み命令は、拡張ユニットにデータを書き込む命令である。
図4では、制御プログラム60内の各命令に、4つずつのパラメータが設定されている場合を示している。すなわち、拡張ユニット読み出し命令および拡張ユニット書き込み命令には、それぞれ第1パラメータ、第2パラメータ、第3パラメータ、および第4パラメータが設定されている。
第1パラメータは、拡張ユニットのユニット番号である。すなわち、各命令では、第1パラメータにシステム構成設定50で割り付けられたユニット番号を設定できるようになっており、これにより、何れの拡張ユニットに対して入出力の指令を行うかを決定することができる。第2~第4パラメータについては後述する。
例えば、制御プログラム60内の拡張ユニット読み出し命令の一例である命令61,62には、アナログ入力ユニットに割り付けられたユニット番号の「U3」が設定されている。したがって、命令61,62は、製造装置1のシステム構成において、3台目に接続されているアナログ入力ユニット14(ユニット番号U3のユニット)からアナログ値を読み出すための命令である。図4では、欠番であるユニット番号U3にハッチングを付して図示している。
図5は、実施の形態1にかかる第1および第2のPLCに適用される制御プログラムの第1~第4パラメータを説明するための図である。拡張ユニット読み出し命令の第1パラメータは、拡張ユニットのユニット番号を指定するためのパラメータ(番号設定パラメータ)である。拡張ユニット読み出し命令の第2パラメータは、拡張ユニットから読み出すデータが格納されたメモリアドレスを指定するためのパラメータである。拡張ユニット読み出し命令の第3パラメータは、読み出したデータを格納するメインユニット11のデータレジスタを指定するためのパラメータである。拡張ユニット読み出し命令の第4パラメータは、読み出し点数を指定するためのパラメータである。
拡張ユニット書き込み命令の第1パラメータは、拡張ユニットのユニット番号を指定するためのパラメータである。拡張ユニット書き込み命令の第2パラメータは、拡張ユニットに書き込むデータを指定するためのパラメータである。拡張ユニット書き込み命令の第3パラメータは、拡張ユニットの書き込み先メモリアドレスを指定するためのパラメータである。拡張ユニット書き込み命令の第4パラメータは、書き込み点数を指定するためのパラメータである。
つぎに、PLC10A,10Bの動作処理手順について説明する。なお、PLC10A,10Bの動作処理手順は同様なので、ここでは、PLC10Bの動作処理手順について説明する。
図6は、実施の形態1にかかる第2のPLCの動作処理手順を示すフローチャートである。ここでは、第2のPLCであるPLC10Bによる、制御プログラム60の解析処理手順について説明する。PLC10Bは、例えば、図3および図4で説明したシステム構成設定50および制御プログラム60を用いる。
製造装置2のメインユニット11には、システム構成設定50および制御プログラム60が書き込まれている。メインユニット11は、電源オンの際の起動処理で制御プログラム60を解析する。
まず、メインユニット11は、自身に接続されている拡張ユニットの台数および機種を読み出し、実機の接続構成(実機構成)を作成する。具体的には、メインユニット11は、メインユニット11に接続されている拡張ユニットの機種名を、接続位置がメインユニット11に近い順に拡張ユニットから読み出し、実機の接続構成を作成する(ステップS10)。また、メインユニット11は、機種名を読み出すことができた拡張ユニットの台数を計算しておく。
つぎに、メインユニット11は、制御プログラム60に含まれるシステム構成設定50から、システム構成設定50に設定されている接続構成(拡張ユニット接続構成51)を読み出す。メインユニット11は、作成した実機の接続構成と、システム構成設定50に設定されている接続構成とを比較する。具体的には、メインユニット11は、作成した実機の接続構成をメインユニット11に接続位置が近い(前の)拡張ユニットから順番に、機種が一致するか否かを判定する。
メインユニット11は、システム構成設定50に含まれる拡張ユニットのうち、判定対象となっている現在の接続位置(比較する接続位置)に、何れかの拡張ユニットが設定されているか否かを判定する(ステップS20)。
判定対象となっている現在の接続位置に、拡張ユニットが設定されている場合(ステップS20、Yes)、メインユニット11は、判定対象となっている現在の接続位置の拡張ユニットの機種と、実際に接続されている拡張ユニットの機種とを比較する。すなわち、メインユニット11は、現在の接続位置におけるシステム構成設定50の拡張ユニットの機種と、実機の拡張ユニットの機種とを比較する(ステップS30)。そして、メインユニット11は、システム構成設定50の拡張ユニットの機種と、実機の拡張ユニットの機種とが一致するか否かを判定する(ステップS40)。
機種が一致しない場合(ステップS40、No)、メインユニット11は、システム構成設定50において、機種が不一致となった接続位置の拡張ユニットに割り当てられたユニット番号を欠番に設定する(ステップS50)。すなわち、メインユニット11は、システム構成設定50と実機との機種の比較の結果、システム構成設定50の接続構成には存在するが、実機の接続構成には存在しない拡張ユニット(機種)があった場合は、その拡張ユニットのユニット番号を欠番に設定する。
欠番があった場合、メインユニット11は、システム構成設定50のみ比較する接続位置(判定対象とする接続位置)を1つ進める(ステップS60)。すなわち、欠番があった場合、メインユニット11は、次の比較の際に、システム構成設定50のみ次の(後ろの)接続位置に進め、実機構成については、比較する接続位置を進めずに拡張ユニットの機種を比較する。この後、メインユニット11は、ステップS20の処理に戻る。
システム構成設定50の拡張ユニットの機種と、実機の拡張ユニットの機種とが一致する場合(ステップS40、Yes)、メインユニット11は、システム構成設定50、実機構成ともに比較する接続位置を1つ進める(ステップS70)。この後、メインユニット11は、ステップS20の処理に戻る。
メインユニット11は、この比較処理をシステム構成設定50の拡張ユニットの台数分繰り返す。すなわち、メインユニット11は、ステップS20~S70の処理を、システム構成設定50に設定されている拡張ユニットの台数分繰り返す。
ここで、機種の比較処理の具体例について説明する。図7は、実施の形態1にかかる第2のPLCが機種を比較する処理を説明するための図である。図7では、システム構成設定50と、実機構成54と、機種の比較結果と、比較位置(接続位置)の進め方とを図示している。
第2のPLCであるPLC10Bのメインユニット11は、システム構成設定50の機種と、実機構成54の機種とを比較する。メインユニット11は、1台目の拡張ユニット(ユニット番号U1の入力ユニット12)に対して、システム構成設定50の機種と、実機構成54の機種とを比較する。ここでは、システム構成設定50に設定されている拡張ユニットの機種が入力ユニット12であり、実機構成54の拡張ユニットの機種が入力ユニット12であるので、機種の比較結果は一致している。この場合、メインユニット11は、拡張ユニットの比較位置を、システム構成設定50、実機構成54ともに次の比較位置に進める。
つぎに、メインユニット11は、2台目の拡張ユニット(ユニット番号U2の出力ユニット13)に対して、システム構成設定50の機種と、実機構成54の機種とを比較する。ここでは、システム構成設定50に設定されている拡張ユニットの機種が出力ユニット13であり、実機構成54の拡張ユニットの機種が出力ユニット13であるので、機種の比較結果は一致している。この場合、メインユニット11は、拡張ユニットの比較位置を、システム構成設定50、実機構成54ともに次の比較位置に進める。
つぎに、メインユニット11は、3台目の拡張ユニット(ユニット番号U3のアナログ入力ユニット14)に対して、システム構成設定50の機種と、実機構成54の機種とを比較する。ここでは、システム構成設定50に設定されている拡張ユニットの機種がアナログ入力ユニット14であり、実機構成54の拡張ユニットの機種が通信ユニット15であるので、機種の比較結果は不一致である。この場合、メインユニット11は、システム構成設定50におけるアナログ入力ユニット14のユニット番号U3を欠番に設定する。また、機種の比較結果は不一致であるので、メインユニット11は、拡張ユニットの比較位置を、システム構成設定50のみ次の比較位置に進める。
つぎに、メインユニット11は、4台目の拡張ユニット(ユニット番号U4の通信ユニット15)に対して、システム構成設定50の機種と、実機構成54の機種とを比較する。ここでは、システム構成設定50に設定されている拡張ユニットの機種が通信ユニット15であり、実機構成54の拡張ユニットの機種が通信ユニット15であるので、機種の比較結果は一致している。この場合、メインユニット11は、拡張ユニットの比較位置を、システム構成設定50、実機構成54ともに次の比較位置に進める。
つぎに、メインユニット11は、5台目の拡張ユニットに対して、システム構成設定50の機種と、実機構成54の機種とを比較する。ここでは、システム構成設定50および実機構成54の両方に拡張ユニットが設定されていないので、メインユニット11は、機種の比較処理を終了する。
ステップS20の処理において、システム構成設定50の判定対象となっている現在の接続位置に、拡張ユニットが設定されていない場合(ステップS20、No)、メインユニット11は、機種の比較処理を終了する。そして、メインユニット11は、制御プログラム60の中から欠番となったユニット番号を第1パラメータに持つ命令を抽出し、抽出した命令を無効にする(ステップS80)。すなわち、メインユニット11は、制御プログラム60に含まれる各拡張ユニットに対し、入出力を指令する命令群の中から、欠番となったユニット番号が第1パラメータに設定されている命令を抽出し、抽出した命令を全て無効化する。このように、メインユニット11は、欠番に設定されたユニット番号が設定されている命令を無効化することで、欠番に設定されたユニット番号の拡張ユニットが動作しないようにする。
このように、メインユニット11は、第1パラメータに欠番となったユニット番号が設定されている命令を、無効な命令に設定する。例えば、図4に示した制御プログラム60の場合、メインユニット11は、命令61,62を無効な命令に設定する。
なお、製造装置1の場合、システム構成設定50における接続構成と実機構成54における接続構成とが一致するので、メインユニット11は、欠番の設定および命令の無効化は行わない。
パラメータに欠番のユニット番号が設定された命令を無効化する方法は、上記の方法に限らず、他の方法で実行されてもよい。例えば、ラダープログラム上で命令を駆動する実行条件に、該当のユニット番号が欠番であるか否かを判定する判定プログラムを追加しておいてもよい。この場合、メインユニット11は、この判定プログラムがユニット番号を欠番と判定すると、この命令の実行条件をOFFにするという方法で、欠番のユニット番号が設定された命令を無効化してもよい。
以上の解析処理により、製造装置2のPLC10Bで動作する制御プログラム60では、実機にはないアナログ入力ユニット14に対する命令が自動で動作しなくなる。これにより、アナログ入力ユニット14が存在する製造装置1と、アナログ入力ユニット14が存在しない製造装置2とで制御プログラム60の統合が可能になる。すなわち、製造装置1,2は、共通の制御プログラム60を用いることができる。
なお、製造装置2の例では、アナログ入力ユニット14が実機に接続されていない場合について説明したが、その他の任意のユニットが接続されていない場合であっても、メインユニット11は、起動時の解析処理によって自動で欠番を設定するので、製造装置1,2は、統合された制御プログラム60を用いることができる。これにより、製造現場で任意のユニットが故障した場合など、想定外の実機の接続構成の変更が発生した場合でも、製造装置1,2は、制御プログラム60を変更することなく動作を継続することが可能になる。
つぎに、比較例の製造装置について説明する。比較例の製造装置では、予め欠番とする拡張ユニットのユニット番号が、制御プログラムのシステム構成設定50に設定される。そして、比較例の製造装置は、欠番に設定されたユニット番号の拡張ユニットを実機上で実際に接続した際には、欠番の状態を解除する。
この比較例の製造装置の場合、使用者が予め欠番を設定しなければならず、手間がかかる。また、この比較例の製造装置の場合、製造装置が稼働している時の拡張ユニットの故障などで、任意の拡張ユニットが取り外される場合は、制御プログラムの変更が必要となる。
このように、比較例の製造装置では、システム構成設定50の想定外の変更が必要になった場合は、制御プログラムの変更が必要になる。すなわち、比較例の製造装置では、システム構成設定50の想定外の変更が必要になった場合は、複数の製造装置間で統合された制御プログラムから派生した新たな制御プログラムの作成が必要になる。
一方、実施の形態1の製造装置1,2は、システム構成設定50の想定外の変更が必要になった場合(想定外の拡張ユニットの取り外しなどが発生した場合)であっても、新たな制御プログラムの作成は不要であり、元々の制御プログラム60をそのまま使用できる。
このように、実施の形態1のメインユニット11は、起動時に、システム構成設定50で定義された拡張ユニットの接続構成と、実機上の拡張ユニットの接続構成とを比較している。そして、メインユニット11は、システム構成設定50では存在し且つ実機では存在しない拡張ユニットのユニット番号を欠番に設定するとともに、欠番に設定したユニット番号が設定された命令を無効にする。これにより、製造装置1,2は、拡張ユニットの想定外の変更が必要になった場合であっても、種類が異なる複数の製造装置1,2間で共通して使用される制御プログラム60を修正することなく使用することができる。
実施の形態2.
つぎに、図8および図9を用いて実施の形態2について説明する。実施の形態2では、システム構成設定50には設定されていない拡張ユニットが、実機の拡張ユニットとしてメインユニット11に接続されると、メインユニット11が、接続された拡張ユニットに新しいユニット番号を割り当てる。
図8は、実施の形態2にかかる第3のPLCを備えた第3の製造システムの構成を示す図である。図8の各構成要素のうち図1の製造システム101と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。第3の製造システムである製造システム103は、第3の製造装置である製造装置3と、エンジニアリングツール5と、生産状況モニタ用ツール6とを備えている。
製造装置3は、第3のPLCであるPLC10Cと、センサ31,32と、他機器21と、アクチュエータ41とを有している。エンジニアリングツール5は、コンピュータに格納されており、このコンピュータがPLC10Cに接続されている。生産状況モニタ用ツール6は、コンピュータに格納されており、このコンピュータがPLC10Cに接続されている。以下、生産状況モニタ用ツール6を格納するコンピュータを生産状況モニタ用コンピュータという場合がある。
エンジニアリングツール5が格納されているコンピュータと、PLC10Cとは、USB(Universal Serial Bus)通信によってデータが送受信される。生産状況モニタ用ツール6が格納されているコンピュータと、PLC10Cとは、ネットワーク通信によってデータが送受信される。ここでのネットワーク通信は、例えば、イーサネット(登録商標)通信である。
PLC10Cは、メインユニット11と、入力ユニット12と、出力ユニット13と、アナログ入力ユニット14と、通信ユニット15と、ネットワーク通信ユニット16とを具備している。すなわち、PLC10Cは、PLC10Aが備えるユニットに加えて、ネットワーク通信ユニット16を備えている。
ネットワーク通信ユニット16も、入力ユニット12などと同様に拡張ユニットである。実施の形態2では、ネットワーク通信ユニット16が、5台目の拡張ユニットであり、メインユニット11から最も遠い接続位置に接続される場合について説明する。
PLC10Cが備えるメインユニット11は、PLC10Aが備えるメインユニット11と同様の機能と、システム構成設定50には設定されていない新たな拡張ユニットが実機として接続された場合に、この拡張ユニットにユニット番号を割り当てる機能とを有している。PLC10Cが備えるメインユニット11と、PLC10Aが備えるメインユニット11とは、種類が異なるメインユニットであってもよい。
生産状況モニタ用コンピュータは、製造装置3で製造される製品の生産状況や加工時の異常内容などをモニタおよびデータ収集するコンピュータである。生産状況モニタ用コンピュータは、ネットワーク通信ユニット16から製品の生産状況や加工時の異常内容などを示すデータを取得する。
ネットワーク通信ユニット16は、製造装置3で製造される製品の生産状況や加工時の異常内容などを、生産状況モニタ用コンピュータに提供するために後付けされたユニットである。
つぎに、PLC10Cの動作処理手順について説明する。図9は、実施の形態2にかかる第3のPLCの動作処理手順を示すフローチャートである。ここでは、第3のPLCであるPLC10Cによる、制御プログラム60の解析処理手順について説明する。PLC10Cは、例えば、図3および図4で説明したシステム構成設定50および制御プログラム60を用いる。なお、PLC10Cが用いるシステム構成設定50は、欠番の設定がされていない状態のシステム構成設定50であり、PLC10Cが用いる制御プログラム60は命令への無効化処理が行われていない状態の制御プログラム60である。
製造装置3のメインユニット11は、電源オンの際の起動処理で制御プログラム60を解析する。すなわち、メインユニット11は、図6で説明したステップS10~S80の処理を実行する。メインユニット11は、ステップS80の処理を実行した後、実機に追加の拡張ユニットがあるか否かを判定する(ステップS110)。すなわち、メインユニット11は、ステップS20の処理において、システム構成設定50の判定対象となっている現在の接続位置に拡張ユニットが接続されていないと判定した場合において、実機に追加の拡張ユニットがあるか否かを判定する。
メインユニット11は、システム構成設定50と実機との機種の比較の結果、システム構成設定50の接続構成には存在しないが、実機の接続構成には存在する拡張ユニット(機種)があった場合は、この拡張ユニットに対して新しいユニット番号を自動で割り当てる。すなわち、メインユニット11は、システム構成設定50の接続構成の最後段のユニットよりも後ろの接続位置に対応する箇所に、実機の任意の拡張ユニットが接続されていた場合、この拡張ユニットに対して新しいユニット番号を割り当てる。
この場合において、メインユニット11は、前段のユニットに割り当てられているユニット番号とは重複しない新たなユニット番号を割り当てる。このように、メインユニット11は、実機に追加の拡張ユニットがある場合(ステップS110、Yes)、追加の拡張ユニットに他のユニットと重複しないユニット番号を割り当てる(ステップS120)。
実施の形態2では、システム構成設定50に5台目の拡張ユニットが設定されておらず、且つ実機のネットワーク通信ユニット16が5台目の拡張ユニットとしてメインユニット11に接続されている。したがって、メインユニット11は、このネットワーク通信ユニット16に新たなユニット番号(例えば、ユニット番号U5)を割り当てる。
メインユニット11は、ユニット番号を割り当てた後、システム構成設定50と実機構成54との機種の比較位置を1つ進める。すなわち、メインユニット11は、システム構成設定50、実機構成54ともに比較する接続位置(判定対象とする接続位置)を1つ進める(ステップS130)。この後、メインユニット11は、ステップS110の処理に戻る。
メインユニット11は、この比較処理とユニット番号を割り当てる処理とを実機として新たに接続された拡張ユニットの台数分繰り返す。すなわち、メインユニット11は、ステップS110~S130の処理を、実機として追加された拡張ユニットの台数分繰り返す。
メインユニット11は、実機に追加の拡張ユニットが残っていないと判定すると(ステップS110、No)、制御プログラム60の解析処理を終了する。すなわち、メインユニット11は、実機に追加された拡張ユニットであって、ユニット番号が割り当てられていない拡張ユニットが無くなると、制御プログラム60の解析処理を終了する。
これにより、メインユニット11は、制御プログラム60には依存せずに動作しているシステム処理によって、ネットワーク通信ユニット16からの通信要求の受信と応答とが可能になる。例えば、生産状況モニタ用コンピュータが、メインユニット11の制御プログラム60の実行状態を読み出すための通信要求をネットワーク通信ユニット16に送信すると、ネットワーク通信ユニット16は、この通信要求をメインユニット11へ送る。また、ネットワーク通信ユニット16は、メインユニット11から送られてくる応答を生産状況モニタ用コンピュータに送る。これにより、生産状況モニタ用ツール6は、制御プログラム60の実行状態をモニタすることが可能となる。
このように、製造システム103では、制御プログラム60には依存しないシステム処理で動作するモニタ等の機能については、追加された拡張ユニットに対してユニット番号が割り当てられることで動作可能となり、制御プログラム60を変更することなく機能を追加することが可能となる。
前述した比較例の製造装置は、制御プログラムの作成時には接続を想定していなかった拡張ユニット、例えば、メインユニットの制御状態を外部のコンピュータ等からモニタするための通信ユニットを後から追加する場合には、システム構成設定の変更が必要となる。
このように、実施の形態2では、システム構成設定50の接続構成には存在せず、実機の接続構成には存在する拡張ユニットに対して、メインユニット11が新しいユニット番号を割り当てている。これにより、メインユニット11は、制御プログラム60の作成時には接続予定がなかった想定外の拡張ユニットを、制御プログラム60を変更することなく追加することが可能となる。
また、実機のネットワーク通信ユニット16が拡張ユニットとして追加されることで、生産状況モニタ用ツール6は、メインユニット11の制御プログラム60を用いた制御とは直接関係しないモニタやデータ収集が可能となる。
実施の形態3.
つぎに、図10~図12を用いて実施の形態3について説明する。実施の形態3では、エンジニアリングツール5が、欠番となっている拡張ユニット、欠番によって命令が無効化されている状態などを表示装置に表示させる。
図10は、実施の形態3にかかるエンジニアリングツールが表示装置に表示させる第1の画面の例を示す図である。図10では、エンジニアリングツール5が表示装置に表示させる第1の画面の一例であるシステム構成設定モニタ画面55を図示している。
システム構成設定モニタ画面55は、図3に示したシステム構成設定50の内容を示す画面である。すなわち、システム構成設定モニタ画面55は、拡張ユニットのユニット番号の欠番状態をモニタするための画面である。
実施の形態1で説明した図3に示すシステム構成設定50の接続構成にはアナログ入力ユニットが存在するが、図2に示す製造装置2では実機の接続構成にアナログ入力ユニット14が存在しない。このため、システム構成設定50では、アナログ入力ユニットのユニット番号U3が欠番に設定される。エンジニアリングツール5は、この欠番となっている状態をメインユニット11から読み出し、図10に示すように、システム構成設定モニタ画面55として表示する。
システム構成設定モニタ画面55を表示する表示装置は、エンジニアリングツール5によって制御される。システム構成設定モニタ画面55では、欠番に設定されたユニット番号が何れのユニット番号であるかが分かるように割り当てユニット番号52が表示される。また、システム構成設定モニタ画面55では、欠番状態となっている拡張ユニットが何れの拡張ユニットであるかが分かるように拡張ユニット接続構成51が表示される。図10では、欠番に設定されたユニット番号がユニット番号U3であり、ユニット番号が欠番状態となっている拡張ユニットがアナログ入力ユニットである場合を示している。
図11は、実施の形態3にかかるエンジニアリングツールが表示装置に表示させる第2の画面の例を示す図である。図11では、エンジニアリングツール5が表示装置に表示させる第2の画面の一例である制御プログラムモニタ画面56を図示している。
制御プログラムモニタ画面56は、図4に示した制御プログラム60の実行状態を示す画面である。すなわち、制御プログラムモニタ画面56は、制御プログラム60の実行状態をモニタするための画面である。制御プログラムモニタ画面56では、ユニット番号の欠番によって命令が無効化されている状態を表示する。
エンジニアリングツール5は、この命令が無効化されている状態をメインユニット11から読み出し、図11に示すように、制御プログラムモニタ画面56として表示する。制御プログラムモニタ画面56を表示する表示装置は、エンジニアリングツール5によって制御される。
制御プログラムモニタ画面56では、無効化されている命令が何れの命令であるかが分かるように制御プログラム60が表示される。図11では、命令61,62が無効化されている場合を示している。
このように、エンジニアリングツール5は、システム構成設定モニタ画面55や制御プログラムモニタ画面56を表示させる。製造現場において、例えば、製造装置2がメンテナンスされる際に、システム構成設定モニタ画面55が表示されることで、メンテナンス者は、制御プログラム60に含まれる拡張ユニットのうち、何れの拡張ユニットのユニット番号が欠番になっているかを確認できる。また、製造装置2がメンテナンスされる際に、制御プログラムモニタ画面56が表示されることで、メンテナンス者は、制御プログラム60に含まれる命令のうち何れの命令が無効化されているかを確認することができる。これにより、メンテナンス者は、メンテナンス作業を効率良く実施できる。
また、エンジニアリングツール5は、実機として新規に接続された拡張ユニットを表示装置に表示させてもよい。図12は、実施の形態3にかかるエンジニアリングツールが表示装置に表示させる第3の画面の例を示す図である。図12では、エンジニアリングツール5が表示装置に表示させる第3の画面の一例であるシステム構成設定モニタ画面57を図示している。
システム構成設定モニタ画面57は、図8に示した製造装置3のシステム構成設定50の内容を示す画面である。すなわち、システム構成設定モニタ画面57は、新規に実機の拡張ユニットが接続されて新しいユニット番号が割り当てられた状態をモニタするための画面である。
図8で説明したように、メインユニット11は、システム構成設定50の接続構成の最後段のユニットよりも後ろの接続位置に対応する箇所に、実機の任意の拡張ユニットが接続されていた場合、この拡張ユニットに対して新しいユニット番号を割り当てる。
実施の形態3では、実機の拡張ユニットとしてネットワーク通信ユニット16が、5台目の拡張ユニットとして製造装置3に追加される。この場合、メインユニット11は、システム構成設定50の接続構成の最後段にネットワーク通信ユニット16を追加する。また、メインユニット11は、ネットワーク通信ユニット16にユニット番号を割り当てる。図12では、メインユニット11が、ネットワーク通信ユニット16にユニット番号U5を割り当てた場合を示している。
メインユニット11は、新しいユニット番号を割り当てたシステム構成設定50をエンジニアリングツール5に送る。これにより、エンジニアリングツール5は、実機の追加によってユニット番号が割り当てられた拡張ユニットに対してメインユニット11が指令可能な状態であることを、システム構成設定モニタ画面57として表示装置に表示させる。
ここでのエンジニアリングツール5は、メインユニット11が、ネットワーク通信ユニット16との間で通信が可能な状態(通信要求の受信と応答とが可能な状態)であることを、システム構成設定モニタ画面57として表示装置に表示させる。
システム構成設定モニタ画面57では、ユニット番号が自動割り当てされて動作している拡張ユニットが何れの拡張ユニットであるかが分かるように拡張ユニット接続構成51が表示される。また、システム構成設定モニタ画面57では、自動割り当てされたユニット番号が分かるように割り当てユニット番号52が表示される。図12では、ユニット番号が自動割り当てされて動作している拡張ユニットがネットワーク通信ユニットであり、自動割り当てされたユニット番号がユニット番号U5である場合を示している。
このように実施の形態3によれば、エンジニアリングツール5が、システム構成設定モニタ画面55を表示させるので、メンテナンス者は、制御プログラム60の何れの拡張ユニットが欠番になっているかを確認することができる。また、エンジニアリングツール5が、制御プログラムモニタ画面56を表示させるので、メンテナンス者は、制御プログラム60の何れの命令が無効化されているかを確認することができる。これにより、メンテナンス者は、メンテナンス作業を効率良く実施できる。
また、エンジニアリングツール5が、システム構成設定モニタ画面57を表示させるので、使用者は、新たに接続された拡張ユニットの種類と、この拡張ユニットに設定された新しい割り当て番号とを確認することができる。
実施の形態4.
つぎに、実施の形態4について説明する。実施の形態4では、制御プログラム60のシステム構成設定50の接続構成と、実機の接続構成とが一致していない場合に、メインユニット11でエラーを発生させるか否かを選択するためのパラメータ(以下、エラー選択パラメータという)を、エンジニアリングツール5がユーザ指示に基づいて設定しておく。
メインユニット11は、起動時の制御プログラム60の解析処理で、制御プログラム60に含まれるエラー選択パラメータを確認し、エラーを発生させるか否かを判定する。例えば、エラー選択パラメータでエラーを検出しないことが選択されていた場合には、メインユニット11は、PLC10A~10Cの内部で保持している、ユニットの構成情報を修正して動作を実行する。すなわち、エラー選択パラメータでエラーを検出しないことが選択されている時に、機種の比較結果が不一致である場合、メインユニット11は、PLC10A~10Cの内部で保持している、ユニットの構成情報を修正し、存在している実機を用いて動作を実行する。これにより、実施の形態1,2で説明した通り、メインユニット11は、予定していなかったシステム構成の変更が発生しても制御プログラム60の変更なしで動作を継続させることが可能となる。
一方、エラー選択パラメータでエラーを検出することが選択される場合がある。この場合、メインユニット11は、制御プログラム60の作成者がシステム構成設定50において定義した制御プログラム60の接続構成と実機の接続構成とが一致していないことをユーザにエラーとして通知する。なお、このエラーを解消するには、ユーザは、システム構成設定50を含む制御プログラム60を、エンジニアリングツール5で読み出して、元の制御プログラム60を復元した上で、システム構成設定50を修正する必要がある。
このように、実施の形態4では、メインユニット11が、エラーを発生させる第1のモードまたはエラーを発生させない第2のモードを選択可能な選択パラメータ(エラー選択パラメータ)を有している。そして、メインユニット11は、第1のモードが選択されている時は、システム構成設定50で定義された拡張ユニットの接続構成と、実機上の拡張ユニットの接続構成とが一致している場合は正常動作を実行し、不一致の場合は動作を実行せず、エラーを発生させる。また、メインユニット11は、第2のモードが選択されている時は、システム構成設定50で定義された拡張ユニットの接続構成と、実機上の拡張ユニットの接続構成とが一致している場合は正常動作を実行し、不一致の場合であってもエラーを検出することなく動作を実行する。なお、実施の形態4では、メインユニット11が、第1のモードが選択されている時に不一致の場合は動作を実行せず、エラーを発生させる場合について説明したが、メインユニット11は、第1のモードが選択されている時に不一致の場合、エラーは通知するが、動作は実行するようにしてもよい。この場合、ユーザは、エラーの発生を承知しつつ、動作を実行させてもよいし、エラーが解消されるように、システム構成設定50を修正してから動作を実行させてもよい。
メインユニット11が、メインユニット11に搭載している発光ダイオード(LED、Light-Emitting Diode)などの照明装置(図示せず)を点灯させてエラーを通知してもよいし、エンジニアリングツール5が表示装置にエラーを表示させてもよい。なお、これらのエラー通知方法は一例であり、これら以外の方法でエラーが通知されてもよい。
このように、実施の形態4によれば、エラー選択パラメータでエラーを検出しないことが選択されている場合、システム構成設定50と実機構成54とが一致していなくても、メインユニット11は、制御プログラム60の変更なしで動作を継続させることが可能となる。
また、エラー選択パラメータでエラーを検出することが選択されている場合、システム構成設定50と実機構成54とが一致していなければ、エンジニアリングツール5またはメインユニット11は、ユーザにエラーを通知できる。
ここで、メインユニット11のハードウェア構成について説明する。図13は、実施の形態1~4にかかるメインユニットが備える制御回路を実現するハードウェア構成例を示す図である。メインユニット11は、入力装置300、プロセッサ100、メモリ200、および出力装置400により実現することができる。プロセッサ100の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ200の例は、RAM(Random Access Memory)、ROM(Read Only Memory)である。
メインユニット11は、プロセッサ100が、メモリ200で記憶されているメインユニット11の動作を実行するための、コンピュータで実行可能な処理プログラム70を読み出して実行することにより実現される。メインユニット11の動作を実行するための処理プログラム70は、メインユニット11の手順または方法をコンピュータに実行させるものであるともいえる。
メインユニット11で実行される処理プログラム70は、モジュール構成となっており、各モジュールが主記憶装置上にロードされ、各モジュールが主記憶装置上に生成される。メインユニット11で実行される処理プログラム70には、起動処理の際に制御プログラム60を解析する解析プログラムなどが含まれている。
入力装置300は、エンジニアリングツール5を格納するコンピュータから種々の指示を受付けてプロセッサ100に送る。また、入力装置300は、エンジニアリングツール5を格納するコンピュータからシステム構成設定50および制御プログラム60を受付けてメモリ200に送る。また、入力装置300は、入力ユニット12、アナログ入力ユニット14、通信ユニット15、ネットワーク通信ユニット16などから種々のデータを受付けてプロセッサ100に送る。
メモリ200は、システム構成設定50、制御プログラム60などを記憶する。システム構成設定50および制御プログラム60は、プロセッサ100によってメモリ200から読み出される。また、メモリ200は、プロセッサ100が各種処理を実行する際の一時メモリに使用される。出力装置400は、出力ユニット13、通信ユニット15、ネットワーク通信ユニット16などに種々のデータを送る。
処理プログラム70および制御プログラム60の少なくとも一方は、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、処理プログラム70および制御プログラム60は、インターネットなどのネットワーク経由でメインユニット11に提供されてもよい。なお、メインユニット11の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。