図3は、本発明が適用されるシステム構成の一例を示している。同図に示すように、本実施の形態では、PLCユニット10と通信機能を備えたマスタユニット11を一体化するとともに、そのマスタユニット11をフィールドネットワーク(リモート回線)12に接続する。なお、このPLCユニット10とマスタユニット11はバス接続されている。また、このフィールドネットワーク12には、入力機器と出力機器を接続可能なMixスレーブ13が接続されている。
PLCユニット10は、CPUユニットとも称されるもので、I/Oリフレッシュ,プログラム実行,周辺処理をサイクリックに処理している。なお、図示省略するが、PLCユニット10以外にも、必要に応じて各種のユニットが連結され、PLCを構成するが、係るユニット自体は従来公知のものであるので説明を省略する。また、マスタユニット11は、Mixスレーブ13との間で、マスタ−スレーブ間通信を行い、マスタユニット11からの要求に応じてMixスレーブ13に接続された入力機器,出力機器のI/Oデータの送受を行う。そして、PLCユニット10とマスタユニット11との間のI/Oデータ交換は、PLCユニット10が行うサイクリックな処理におけるI/Oリフレッシュ処理として、バスを介したデータ通信により行われる。なお、上記したマスタ−スレーブ間通信は、PLCユニット10のサイクリック処理とは非同期に行われる。
このMixスレーブ13は、図2に示したOUTスレーブ4bとINスレーブ4aの機能が組み込まれた混在タイプのもので、OUT端子にアクチュエータ14が接続され、IN端子にはそのアクチュエータ14の移動体14aの位置を監視するセンサ15が接続されている。
Mixスレーブ13の内部構造の一例を示すと、図4のようになっている。すなわち、フィールドネットワーク12に接続され、データの送受をする送受信回路13aと、その送受信回路13aに接続されたMPU13bと、出力機器に接続される出力回路13cと、入力機器に接続される入力回路13dを備えている。更に、外部不揮発性メモリ13eやタイマ(内部時計)13f等を備えている。
そして、送受信回路13aは、フィールドネットワーク12上を流れるフレームを受信し、ヘッダ部を解析して自己宛のフレームか否かを判断し、自己宛のフレームのみを最終的に受信してMPU13bに渡す機能と、MPU13bから与えられた送信フレーム(例えば、マスタユニット11に向けたINデータを送信するためのフレーム)を、フィールドネットワーク12上に出力する機能を有している。
MPU13bは、送受信回路13aから与えられた受信したフレームのデータ部中に格納された情報に従って所定の処理を実行するもので、基本機能としては、データ部中のOUTデータに従って、出力回路13cに対し所定のOUT端子をON/OFFするための制御信号を発する。また、入力回路13dを介して、入力端子のON/OFF状態を取得し、その取得した情報をINデータとしてマスタユニット11に対して送信するフレームを生成し、送受信回路13aに渡す機能を有する。
上記したシステムにおけるアクチュエータ14の動作制御は、PLCユニット10に実装されたユーザプログラムをサイクリックに実行し、所定の条件に合致した場合に、Mixスレーブ13のOUT端子をONにすべくマスタユニット11に対して通知し、マスタユニット11は、通信サイクルに従って対応するMixスレーブ13に向けて所定のフレーム(OUTデータ)を送信する。
Mixスレーブ13は、受信したフレーム(OUTデータ)に従って、アクチュエータ14に接続されるOUT端子をONにする。これにより、図示省略するバルブがON(開く)となり、移動体14aが前進移動する。
一方、従来例でも説明したとおり、アクチュエータ14に併設してセンサ15が設置されているので、移動体14aが所定位置(本実施の形態では、移動完了位置)まで移動してくると、センサ15がON、つまり、センサ15が接続されたIN端子がONになる。そのようにIN端子がONになったことは、入力回路13dを介してMPU13bが取得できるので、自己のフレームの送信タイミングが来たときに、INデータとしてマスタユニット11に向けて送信する。すると、マスタユニット11は、取得したINデータを、PLCユニット10におけるリフレッシュ処理の際に渡す。
上記した各処理並びに係る処理を実行するための各処理部の機能・構成は、従来のものと同様であるので、その詳細な説明を省略する。ここで、本発明では、上記したアクチュエータの動作時間を計測する機能をMixスレーブ13に設けた。
すなわち、MPU13bは、自己が保有するOUT端子やIN端子の状態を認識できるので、例えば、図5に示すように所定のOUT端子がONになってからIN端子がONになるまでの時間tをタイマ(内部時計)13fを用いて計測し、その計測結果を内部揮発性メモリ13b′に格納する。なお、ここでは、OUT端子,IN端子がONになるとことと信号が立ち上がることは同じ状態のことを示している。
さらに、Mixスレーブ13は、正常な動作時間に関する情報も保持しており、上記計測結果が、正常な動作時間内か否かを判断し、アクチュエータ14の状態を判定する機能(判定結果はもちろん内部揮発性メモリ13b′に記憶保持する)を持たせている。そして、上記した正常動作時間は、例えば10ms以内というように1つのしきい値で設定されるものでも良いし、90msから100msのように2つのしきい値を用いて設定されるものでも良い。この正常動作時間を特定する設定値は、外部不揮発性メモリ13eに格納されており、電源投入の都度、内部揮発性メモリ13b′に展開される。
さらに、具体的な図示は省略するが、監視対象となるOUT端子とIN端子の番号の組み合わせと、上記した設定値が関連付けられたテーブル構造として外部不揮発性メモリ13eに格納されている。そして、係る情報が内部揮発性メモリ13b′に展開されるが、その内部揮発性メモリ13b′には、さらに、実際に計測結果や判定結果も関連付けて格納されるテーブル構造となっている。
そして、具体的には、MPU13bの処理部13b″が、図6に示すフローチャートを実行するようになっている。なお、演算対象,監視対象の動作時間tは、図5に示したようにOUT端子並びにIN端子のいずれもOFF(Low)からON(High)に変化したこと、つまり、信号の立ち上がり同士を紐付けし、そのOUT信号の立ち上がりからIN信号の立ち上がりまでの時間を動作時間tとするものを前提としている。
図6に示すように、まず、該当するOUT端子(図3の場合、アクチュエータ14が接続されているOUT端子)の立ち上がり(ON信号になったとき)の有無を判断する(ST1)。
そして、立ち上がりを検知したならば、タイマ13fからそのときのスタート時間(カウント値)を取得する(ST2)。なお、本実施の形態では、動作時間を計測するだけであるのでタイマ(カウンタ)を用いたが、動作時間を計測した日時データも関連付けて取得する場合には、内部時計を用いると良い。
次に、該当するIN端子の立ち上がり(ON信号になったとき)の有無を判断する(ST3)。そして、立ち上がりが検知される(ステップ3の分岐判断でYes)と、タイマ13fの値(ストップ時間)を取得し(ST4)、ステップ2で取得したスタート時間との差分を求め、動作時間を算出し、その結果を結果バッファに格納する。
一方、正常なアクチュエータの動作時間を規定する設定値を予め保有しており、ステップ5で算出した動作時間を設定値と比較し、範囲内(正常)か否かを判断し、その比較結果も合わせて結果バッファに格納する(ST6)。
そして、設定された監視対象に対して順次上記処理を繰り返し実行し、全ての点に対して処理を実行したならば(ST7でYes)、求めた動作時間と比較結果を各監視対象(アクチュエータ14等)のステータス情報として内部揮発性メモリ13b′に記憶保持する(ST8)。係る処理は割り込み命令に従って実行されるため、ステップ8までの処理が実行されたならば次の命令が来るのを待つ。
一方、上記記憶保持した動作時間や比較結果は、例えば、マスタユニット11が所定のタイミングでメッセージを出力し、そのメッセージを受けたMixスレーブ13が、メッセージで指定された対象機器(番地)の動作時間等をメッセージに対するレスポンスとして返すことによりマスタユニット11ひいてはPLCユニット10に伝えることができる。このように、マスタユニット11からのメッセージを利用すると、マスタユニット11側では、IOデータの送信とは独立した通信であり、必要な時に、必要な監視対象の情報のみを受け取ることができるので好ましい。
また、係る動作時間等の通知は、上記したメッセージに対するレスポンスに限ることは無く、例えば、マスタ−スレーブ間のpolling処理により伝達することもできる。つまり、各スレーブは、所定のタイミングでINデータをマスタユニット11に対し送信する。従って、図7に示すように、通常の入力端子の状態であるINデータに、そのスレーブが管理する演算結果(動作時間や比較結果等)を付加したものをデータ部に備えた送信フレームを生成し、送信することにより通知できる。この方法によれば、マスタユニット11は、動作時間の取得を要求するメッセージを生成し送信する必要が無くなるので好ましい。
さらに別の方式としては、スレーブ側が主体となって動作するChange of Stateを用いることもできる。すなわち、Mixスレーブ13は、自己が管理すべき対象の動作時間や、比較結果の変化があった場合にのみ、その結果をマスタユニット11に向けて送信する。この方式をとると、フィールドネットワーク12上に無駄なデータが流れず、かつ、必要なときだけマスタユニット11が動作時間等を受信できるので、トラフィックが軽減できる。
本実施の形態では、動作時間の算出、さらにはステータスの判定処理までスレーブ側で実行され、記憶保持されるので、PLCユニット10におけるサイクリックな処理はもちろんのこと、フィールドネットワーク12における通信サイクルの影響も無く必要な情報が得られる。しかも、動作時間の算出は、スレーブ内で処理するため、サイクリック処理における1サイクルに要する処理時間より短い動作時間であっても、求めることができる。
図8は、本発明の第2の実施の形態を示している。本実施の形態では、Mixスレーブに替えて、OUTスレーブ20とINスレーブ21をフィールドネットワーク12に接続している。そして、スレーブ同士でpeer to peer通信(スレーブ間通信)を行うことにより、OUTスレーブ20から所望のOUT端子のON/OFF情報を所定のINスレーブ21(通常は、センサ15が接続されたスレーブ)に与える。
そして、INスレーブ21内のMPUの処理部では、図6に示したフローチャートと同様の処理を実行し、OUTスレーブ20から受けたOUT端子のON/OFF情報に基づき、当該OUT端子がONになったときのスタート時間と、所定のIN端子がONになったときのストップ時間を取得し、その差から動作時間を求めるとともに、設定値と比較し、比較結果を保持する。
なお、OUTスレーブ20からINスレーブ21へのデータ送信は、例えばINスレーブ21側に予め対応するOUTスレーブのノード番号並びにOUT端子のビット番号などを記憶保持させておき、所定のタイミングでINスレーブ21が、記憶しているノード番号のOUTスレーブ20に対し、ビット番号の状態を問い合わせ、その問い合わせに対するレスポンスとして、OUTスレーブ20が当該ビット番号のON/OFF状態を通知することにより実現できる。
係る方法によれば、OUTスレーブ20は送信要求に応答すれば良いので、対応するINスレーブ21についての情報を記憶保持する必要がない。また、逆にOUTスレーブ20にも対応するINスレーブについての情報を記憶保持させておくと、例えば、所望のOUT端子がONになったときに、当該ON情報を対応するINスレーブ21に通知し、INスレーブ21では、係るON情報の通知を受けた際のスタート時間を取得するとともに、IN端子がONになったときのストップ時間を取得し、それら両時間から動作時間を算出するとともに設定値との比較結果を求めるようにしてもよい。
そして、INスレーブ21等に動作時間を計測するために必要な情報を記憶させるには、例えば、ツール装置を用いて図9に示すような関連付けデータ、つまり、割り付けNoとともに「INスレーブのノード番号(MACID)とビット番号」、「OUTスレーブのノード番号(MACID)とビット番号」並びに「OUT監視時間単位」を関連付けたテーブルを作成し、このテーブルに基づき、記憶保持させるスレーブに対し、関係する情報をデータ部に含むメッセージ(図10参照)を作成し、当該ツール装置或いはマスタユニット11を介してフィールドネットワーク12経由で該当スレーブに送信することにより行うことができる。
なお、OUT監視時間単位は、他のスレーブの状態を監視する時間の単位であり、係る監視時間間隔で該当ビットの状態の問い合わせを行う。よって、係るOUT監視時間単位が、動作時間計測機能の最小単位となる。
また、図9,図10では、OUTスレーブ(OUT端子)とINスレーブ(IN端子)の関連付けの設定についての説明であるが、スレーブ側に求めた動作時間と設定値とを比較する機能を付加する場合には、比較するための設定値も関連付けて送信すると良い。
本実施の形態では、監視対象のアクチュエータ14等の出力機器と、センサ15等の入力機器は異なるスレーブに接続されているため、少なくとも1回はフィールドネットワーク12を介した通信が行われるが、タイムラグはPLCユニット10におけるユーザプログラムのサイクリックタイムに関係無く、通信サイクルのみに起因し、しかも、サイクリックタイムに比べると通信サイクルは非常に短いので、ユーザプログラム側で動作時間を管理するものに比べると実際の動作時間に近い値が得られる。
また、上記した実施の形態では、入力機器であるセンサ15が接続されたINスレーブ21にて動作時間の算出を行うようにしたが、これとは逆にINスレーブ21から対応するOUTスレーブ20に対してIN端子のON/OFF情報を送ることにより、OUTスレーブ20側で動作時間の算出並びに設定値との比較を行うようにしても良い。
さらには、動作時間の算出等は、必ずしも動作時間を求める対象の出力機器や、その出力機器を監視するセンサなどの入力機器が接続されたスレーブに限ることは無く、別のスレーブでもよい。その場合には、OUTスレーブ20とINスレーブ21からそれぞれOUT端子のON/OFF情報とIN端子のON/OFF情報を取得し、算出することになる。
さらにまた、このように入出力機器が接続されていないスレーブでも動作時間等を算出することができるので、係る算出機能(図6に示すフローチャートを実施する機能)をマスタユニット11に組み込むことにより、マスタユニット11で求めるようにしてもよい。係る場合でも、PLCユニット10におけるユーザプログラムのサイクリックタイムの影響は受けないため、比較的精度良く求めることができる。
また、マスタユニット11で求める場合には、OUT端子やIN端子のON/OFF情報の取得は、別のスレーブで求める場合と同様に対応するスレーブに対して問い合わせをし、それに伴う応答により取得したり、対応するスレーブ側が、所定の端子がONになったときにマスタユニット11に向けて通知をするように構成することもできるが、マスタユニット11は、IO情報の送受を管理するので、それを利用することもできる。つまり、対応するOUTデータを送信した際にスタート時間を取得し、INデータを受信した際にストップ時間を取得することにより、動作時間を算出することができる。
ところで、上記した各実施の形態や変形例では、いずれも出力端子がON(立ち上がり)してから、入力端子がON(立ち上がり)するまでの期間を動作時間として求める例を示したが、本発明はこれに限ることはなく、出力端子が変化したときから入力端子が変化するまでの期間を動作時間として求めることができる。
すなわち、例えば図11に示すように、アクチュエータ(シリンダ)14が接続されたMixスレーブ13(OUTスレーブ20でも可)のOUT端子に対してON信号が与えられると、バルブが開いて移動体(シリンダヘッド)14aが前進する。そして、図5に示した例では、センサ15で移動体14aの移動完了位置を検出するようにしたが、図11に示した例では、移動体14aの移動経路の中間位置Xにセンサ15′を設け、このセンサ15′にて移動体14aが中間位置Xを通過したことを検知し、検知信号を出力(Mixスレーブ13のIN端子がON)するようなシステムを考える。なお、図ではMixスレーブ13に適用した例を示したが、第2の実施の形態などと同様にOUTスレーブ20とINスレーブ21に分かれた構成のシステムにも同様に適用できるのはもちろんである。
この場合に、センサ15′は、一定の検出領域があるため、センサ15′の出力信号(IN端子への入力信号)は、移動体14aが中間位置Xに到達した際(センサの検出領域に進入した際)にONとなる(立ち上がり)。そして、そのままさらに移動体14aが前進移動し、検出領域外に位置するとOFFとなる(立ち下がる)。
そこで、移動体14aが中間位置Xを通過した時の判断であるが、センサ15′の出力信号がONになった時(IN端子の立ち上がり)と、ONからOFFになった時(IN端子の立ち下がり)のいずれもとることができ、どちらにするかは求めた動作時間の用途などにより決定される。そして、前者の立ち上がりに伴う動作時間tを求める場合には、各信号の立ち上がり同士を関連付け(紐付け)することにより上記した各実施の形態を用いて動作時間tを求めることができる。
一方、後者の立ち下がりに伴う動作時間t′を求める場合には、図6に示すフローチャートを基本とし、ステップ3の分岐判断を「該当INがON→OFFか」と言う処理に変えることにより対応することができる。これが、OUT端子:ON(立ち上がり)→IN端子OFF(立ち下がり)に対応する実施の形態である。
さらに、上記した各実施の形態並びに変形例では、いずれも動作時間の開始時点は、OUT端子がON(立ち上がり)をトリガとしているが、本発明はこれに限ることはなく、OUT端子がOFFになること(立ち下がり)をトリガとすることもできる。
一例を示すと、上記した図11に示すように、Mixスレーブ13のOUT端子がONになり、バルブがONすると、それに伴い気体或いは流体が流れ込んで移動体14aが前進移動するが、OUT端子がOFFになりバルブもOFFになると、移動体14aが後退移動し、元の位置に自動復帰するタイプのシリンダがある。そこで、係るタイプのシリンダを、図12に示すように、Mixスレーブ13のOUT端子に接続されたアクチュエータ14として、係る出力を切ると戻るシリンダを装着するとともに、移動体14aを検知するセンサ15′を、復帰経路の中間位置Yに配置する。
そして、移動体14aが後退移動を開始してから、中間位置Yに至るまでの動作時間(t1,t1′)を求める場合を考える。この場合、OUT端子がOFFしたときのトリガとしてスタート時間を取得する。また、ストップ時間の取得のためのトリガは、IN端子がONになること(立ち上がり)にしたり、IN端子がOFFになること(立ち下がり)を利用することができる。IN端子のONと紐付けした場合には、動作時間t1を求めることができ、IN端子のOFFと紐付けした場合には動作時間t1′を求めることができる。
そして、係る処理を実行するための機能としては、前者の場合は図6に示すフローチャートを基本とし、ステップ1の分岐判断を「該当OUTがON→OFFか」に変更することにより対応できる。これが、OUT端子:OFF(立ち下がり)→IN端子ON(立ち上がり)に対応する実施の形態である。また、後者の場合は、さらにステップ3の分岐判断を「該当INがON→OFFか」と言う処理に変えることにより対応することができる。これが、OUT端子:OFF(立ち下がり)→IN端子OFF(立ち下がり)に対応する実施の形態である。
なお、上記した第2の実施の形態並びにその変形例において算出した動作時間は、第1の実施の形態に示したように、自発的或いは相手からの要求等の各種のタイミングで上位のマスタユニット11やPLCユニット10に与えることができる。
図13は、本発明の第3の実施の形態を示している。本実施の形態では、上記した各実施の形態並びに変形例と相違して、2つの入力機器(センサ)からの入力信号に基づいて装置(アクチュエータ14)の動作時間を求めるようになっている。
すなわち、第1の実施の形態と同様に、Mixスレーブ13のOUT端子にアクチュエータ14が接続され、IN端子にはそのアクチュエータ14の移動体14aの位置を監視するセンサが接続されている。但し、本実施の形態では、IN端子に接続するセンサとして第1,第2のセンサ16a,16bと言うように2つのセンサを用意している。そして、第1,第2のセンサ16a,16bは、それぞれ移動体14aの移動経路の途中(中間位置)X,Yに配置され、移動体14aが係る中間位置X,Yを通過したことを検知するようになっている。なお、Mixスレーブ13の内部構造は、図4に示すものと同様である。
このシステムによれば、OUTデータがONになりアクチュエータ14の移動体14aが原点位置から前進移動する。すると、図14に示すように、移動体14aが中間位置Xに至ると第1のセンサ16aの出力がONになり、中間位置Xを通り過ぎるとOFFになる。この出力が、そのままMixスレーブ13の第1のセンサ16a用のIN端子の入力信号となる。
さらに移動体14aが前進移動すると、中間位置Yに至るので、第2のセンサ16bの出力がONになり、中間位置Yを通り過ぎるとOFFになる。この出力が、そのままMixスレーブ13の第1のセンサ16a用のIN端子の入力信号となる。
係る場合において、移動体14aが中間位置Xから中間位置Yまで移動するまでに要する動作時間を求めるには、第1,第2のセンサ16a,16bの出力、つまり、対応する2つのIN端子の信号を関連付け(紐付け)することにより、Mixスレーブ13にて動作時間を求めることができる。なお、2つのIN端子の関連付けであるが、上記した各実施の形態並びにその変形例と同様に、動作時間のスタート時間の取得並びにストップ時間の取得は、IN端子の変化をトリガとして行われるので、係る変化はOFF→ON(立ち上がり)とON→OFF(立ち下がり)のいずれもとれる。
従って、図14(b)に示すように、第1のセンサ16aの出力信号(IN端子)の立ち上がりと、第2のセンサ16bの出力信号(IN端子)の立ち上がりを紐付けすると、時間T1が動作時間となる。また、第1のセンサ16aの出力信号(IN端子)の立ち上がりと、第2のセンサ16bの出力信号(IN端子)の立ち下がりを紐付けすると、時間T2が動作時間となる。
一方、図14(c)に示すように、スタート時間の取得のトリガを第1のセンサ16aの出力信号(IN端子)の立ち下がりにすることもできる。この場合に、その第1のセンサ16aの信号の立ち下りと、第2のセンサ16bの出力信号(IN端子)の立ち上がりを紐付けすることにより時間T3を動作時間として求めることになり、第2のセンサ16bの出力信号(IN端子)の立ち下がりを紐付けすることにより、時間T4を動作時間として求めることになる。
もちろん、移動体14aの後退移動時の動作時間を求めることもできる。この場合には、上記と逆に第2のセンサ16bの出力の変化と第1のセンサ16aの出力の変化を紐付けし、第2のセンサ16bに基づきスタート時間を取得し、第1のセンサ16aに基づきストップ時間を取得することになる。
さらにまた、上記した例では、2つのセンサがともに移動体の移動経路の中間位置を検出する(通過することにより信号がOFF→ON→OFFと変化する)例について説明したが、一方が移動完了位置を検出するものももちろん良い。さらに、2つのセンサの監視は、1つの装置の動作を監視するものに限ることは無く、異なる装置の動作状態を監視するものでも良い。一例としては、2つのロボットの動作をそれぞれ監視するセンサを設け、一方のロボットが動作開始(動作完了)してから、他方のロボットが動作開始(動作完了)するまでのタイムラグを求めることがある。このように、動作時間とは、単独の装置の動作時間(停止時間)に限られるものではなく、上記したように複数の装置を含むシステム(装置)全体における動作時間も含む概念である。
そして、上記した2つのIN端子の変化に基づいて動作時間を求めるためのMPU13b(処理部13b″)の機能であるが、基本的には図6に示すフローチャートと同様の処理機能により実現できる。そして、係る図6のフローチャートのうち、紐付けする2つのIN端子がON/OFFのいずれに基づいて各時間の取得をするかにより、ステップ1,3を適宜変更することになる。すなわち、スタート時間の取得が、OFFからONに変化(立ち上がり)に基づいて行う場合には、ステップ1の処理が、「該当INがOFF→ONか」というように変更し、ONからOFFに変化(立ち下がり)に基づいて行う場合には、ステップ1の処理が、「該当INがON→OFFか」というように変更することになる。さらに、ストップ時間の取得が、ONからOFFに変化(立ち下がり)に基づいて行う場合には、ステップ3の処理が、「該当INがON→OFFか」というように変更することになる。
なお、本実施の形態では、第1,第2のセンサ16a,16bを接続するスレーブをMixスレーブ13とし、アクチュエータ14の動作制御もこのMixスレーブ13から出力されるOUTデータ(OUT端子のON/OFF信号)に基づいて実行される例を示したが、アクチュエータ14に対する制御命令は、同一のスレーブから送られなくても良い。その場合に、第1,第2のセンサ16a,16bが接続されるスレーブは、例えば、Mixスレーブに替えてINスレーブにすることもできる。なお、その他の構成並びに作用効果は上記した各実施の形態並びにその変形例と同様であるので、その詳細な説明を省略する。
さらに、図15に示すように、IN端子同士の紐付けに基づく動作時間の算出においても、第1,第2のセンサ16a,16bがそれぞれ別のINスレーブ21′,21″に接続したシステム構成でも実現できる。この場合には、第2の実施の形態と同様に、一方のINスレーブ21′で取得したINの値(図の例ではスタート時間)を他方のINスレーブ21″に与える。そして、与えられたINの値と、他方のINスレーブ21″側で取得した時間情報(図の例ではストップ時間)に基づき動作時間を求め、演算結果をマスタユニット11側に送ることになる。
もちろん、送り側のINスレーブと受け側のINスレーブの関係は任意であり、図示するようにスタート時間を送るようにしても良いし、ストップ時間を取得したINスレーブからスタート時間を取得した別のINスレーブに送るようにしてもよい。さらに、第2の実施の形態の変形例でも説明したとおり、これら2つのセンサが接続されていない別のスレーブや、マスタユニット11などの各種のノードに対して、それぞれ取得した時間情報を送り、そこにおいて動作時間を求めることもできる。なお、その他の構成並びに作用効果は上記した各実施の形態並びにその変形例と同様であるので、その詳細な説明を省略する。
さらに、実際のスレーブやマスタなどの動作時間を演算処理する機能を組み込んだノードの場合、上記した各パターンのいずれにも対応できるようにしておきたいという要求がある。つまり、OUT端子の変化があってからIN端子の変化があるまでの動作時間の取得パターンとして、4種類のパターンがあり、IN端子の変化があってからIN端子の変化があるまでの動作時間の取得パターンとして、4種類のパターンがあり、合計8種類のパターンがある。
係る8種類のパターンのいずれにも対応するためのMPU13b(処理部13b″)の機能としては、例えば、図16に示すフローチャートを実現するようにすることにより対応できる。
まず、前提として各端子の紐付けの関係を設定データとして外部不揮発性メモリ13eなどに記憶しておく。この設定データは、第1の実施の形態などと同様に、ツール装置を用いて図17に示すような関連付けデータ、つまり、割り付けNoとともに「スタートトリガが発せられるスレーブのノード番号(MACID)とビット番号と変化の種別(立ち上がり/立ち下がり)並びにIN/OUT端子の区別」、「ストップトリガが発せられるINスレーブのノード番号(MACID)とビット番号並びに変化の種別(立ち上がり/立ち下がり)」並びに「監視時間単位」を関連付けたテーブルを作成し、このテーブルに基づき、記憶保持させるスレーブに対し、関係する情報をデータ部に含むメッセージ(図18参照)を作成し、当該ツール装置或いはマスタユニット11を介してフィールドネットワーク12経由で該当スレーブに送信することにより行うことができる。
なお、監視時間単位は、他のスレーブの状態を監視する時間の単位であり、係る監視時間間隔で該当ビットの状態の問い合わせを行う。よって、係る監視時間単位が、動作時間計測機能の最小単位となる。なおまた、スタートトリガのIN/OUT端子の種別であるが、Mixスレーブの場合には当然I/Oの両方がある。
係る前提にたち、図16に示すように、まず設定読み出しを行う(ST10)。この設定により、自己が監視すべき端子(IN端子/OUT端子)のビット番号と、時間取得のトリガとなるべき変化の種別を取得する。次いで、該当OUT/IN端子が変化したか否かを判断する(ST11)。つまり、ステップ10で取得した設定データに基づき、スタート時間取得のトリガとなる監視対象の端子が立ち上がり/立ち下がりがあったか否かを判断する。
そして、変化があった場合(ステップ11の分岐判断でYes)には、ステップ12に進みスタート時間を取得する。次いで、紐付けされた該当IN端子が変化(立ち上がり/立ち下がりは設定データにより決まる)するか否かを判断する(ST13)。そして、立ち上がりが検知される(ステップ13の分岐判断でYes)と、タイマ13fの値(ストップ時間)を取得し(ST14)、ステップ2で取得したスタート時間との差分を求め、動作時間を算出し、その結果を結果バッファに格納する。
一方、正常なアクチュエータの動作時間を規定する設定値を予め保有しており、ステップ15で算出した動作時間を設定値と比較し、範囲内(正常)か否かを判断し、その比較結果も合わせて結果バッファに格納する(ST16)。
そして、設定された監視対象に対して順次上記処理を繰り返し実行し、全ての点に対して処理を実行したならば(ST17でYes)、求めた動作時間と比較結果を各監視対象(アクチュエータ14等)のステータス情報として内部揮発性メモリ13b′に記憶保持する(ST18)。係る処理は割り込み命令に従って実行されるため、ステップ18までの処理が実行されたならば次の命令が来るのを待つ。
なお、上記した第3の実施の形態並びにその変形例において算出した動作時間は、第1,第2の実施の形態に示したように、自発的或いは相手からの要求等の各種のタイミングで上位のマスタユニット11やPLCユニット10に与えることができる。
以上詳細に説明したように、上記した各実施の形態によれば、出力機器が接続されたスレーブのOUT端子が変化した際の時間情報と、その出力機器を監視する入力機器が接続されたスレーブのIN端子が変化した際の時間情報を取得し、その差分から出力機器の動作時間を求めるようにしたり、あるIN端子が変化してから別のIN端子が変化するまでの時間間隔から所定の装置(システム)の動作時間を求めるようにすることができる。しかも、係る算出処理等は、ネットワークに接続されたスレーブやマスタなどのノード側で行うため、PLC側のサイクリックタイムの影響を受けず、出力機器の動作時間を精度良く測定することができる。
上記した各実施の形態では、スレーブで制御機器(入力機器及びまたは出力機器)に関する物理量の計測値である動作時間を求めるとともに、基準値と比較し、所定の条件に合致した場合に、基準値との比較結果及びまたは動作時間をフィールドネットワーク12へ出力し、そのフィールドネットワーク12に接続された所定の装置(ノード)へ与えるようにした。本発明では、これに限ることはなく、例えば基準値との比較をすることなく、所定のタイミングで求めた動作時間を出力し、判断はPLCユニット10などで行わせるようにしても良い。また、送信先は、マスタユニットやスレーブに限ることは無く、PLCその他のコントローラはもちろんのこと、コンフィグレータやモニタなどでも良い。
さらに、通知する情報も、判断結果及びまたは動作時間に加えて、制御機器の固有情報(非制御情報)を送るようにすると良い。すなわち、例えば動作時間が基準値よりも長くなった場合には交換時期に近づいているように設定していると、係る機器のIDを示す固有情報(機器名,製造者名,形式,製造番号)などを併せて出力することにより、ユーザは、故障した機器についての情報を予め知ることができる。従って、現場に行くに際し、係る機器用の交換部品や、交換する機器を携帯して行くことができ、メンテナンスを迅速に行うことができる。そして、各スレーブに、自己に接続されている制御機器についての固有情報を、予め記憶保持しておき、必要に応じて読み出して送信することにより対応できる。
また、本発明における計測対象の制御機器またはスレーブ自身に関する物理量は、上記した動作時間に限ることはなく、スレーブに供給される電源電圧その他各種のものがあるので、以下に説明する。
図19は、第4の実施の形態の全体構成を示すシステム構成図である。この実施の形態では、一台のマスタユニット30と複数箇所に分散配置された複数台のスレーブ33とがフィールドネットワーク32を経由して接続されたネットワークシステムである。スレーブ33には、入力機器や出力機器などの機器(入出力機器34)が接続され、マスタユニット30との間でその入出力機器34のI/Oデータの送受が行われる。この点は上記した各実施の形態並びにその変形例でも同様である。
なお、図示省略するが、このマスタユニット30には、上記した各実施の形態と同様にPLCユニットが連結され、PLCを構成する。また、PLCユニットとマスタユニット30は必ずしも直接接続してPLCを構成する必要は無く、マスタユニット30をPLCから独立させても良い。その場合に、フィールドネットワーク32或いは別のネットワークを介してI/Oデータの交換を行うことになる。
また、マスタユニット30の付近には、ネットワーク電源装置35が設置される。このネットワーク電源装置35は、フィールドネットワーク32に接続され、このフィールドネットワーク32を経由してマスタユニット30やスレーブ33に対して電源電圧が供給される。さらに、このスレーブ33を経由して入出力機器34にも電源が供給される。さらにまた、このフィールドネットワーク32には、ネットワークコンフィグレータ36が接続され、このネットワークコンフィグレータに対しても、ネットワーク電源装置35から電源供給される。
上記ネットワークコンフィグレータ36は、マスタユニット30,スレーブ33などのネットワークユニットの状態をモニタしたり、パラメータの読み出しや書き込みを行うものである。
また、スレーブ33は、このシステムを構成するリモートI/Oターミナル,耐環境ターミナル,リモートアダプタ,I/Oリンクユニット,センサターミナル,アナログ入力ターミナル,アナログ出力ターミナル,温度入力ターミナル,RS232Cユニット等から構成されるものである。
上記構成において、複数台のスレーブ33は、それぞれネットワーク電源装置35からフィールドネットワーク32を通じて供給されるネットワーク電源を用いて通信等の動作を行うが、このネットワーク電源は、ネットワーク電源装置35からの距離に応じてそれぞれ異なる電圧降下を受ける。この実施の形態では、さらに、ネットワーク電源を入出力機器34へも供給しているので、入出力機器34が電力を消費するときは、その分電圧降下が増大する。
そして、上記複数台のスレーブ33は、その動作保証電圧が、例えば、24V〜11Vのように決まっているので、上記ネットワーク電源のスレーブに供給される位置での電源電圧が、例えば、11V以下になると通信不能になる。
そこで、この実施の形態のシステムにおいては、各スレーブ33にそれぞれ加えられるネットワーク電源の状態を監視する電源監視手段を設けた。そして、電源監視手段で監視した各スレーブ33のネットワーク電源の状態を示す電源状態情報を、ネットワークコンフィグレータ36との通信により、フィールドネットワーク32を経由してネットワークコンフィグレータ36で収集し、各スレーブ33のネットワーク電源の状態をネットワークコンフィグレータ36で一元管理するように構成されている。
図20は、図19に示したPLCシステムにおける各スレーブ33の要部構成を示したブロック図である。図20において、スレーブ33は、電圧監視部33a,最大値・最小値保持部33b,現在値記憶部33c,監視電圧記憶部33d,比較部33e,警報ステータス記憶部33f,通信制御部33gを具備して構成される。
ここで、電圧監視部33aは、フィールドネットワーク32から供給されるネットワーク電源を監視し、その現在値および最大値,最小値を検出する。そして、電圧監視部33aで検出されたネットワーク電源の電圧の最大値及び最小値は、最大値・最小値保持部33bに保持される。また、電圧監視部33aで検出されたネットワーク電源の電圧の現在値は、現在値記憶部33cに記憶される。
このスレーブ33は、上記した最大値・最小値保持部33b並びに現在値記憶部33cに格納されたI/Oデータでない非制御系情報の1つである電圧情報をネットワークコンフィグレータ36に通信し、ネットワークコンフィグレータ36にて内容を確認できるようにしている。さらに、現在の供給電圧が正常であるか否かの判定を行い、その判定結果を記憶する機能も有している。なお、供給電圧が動作不能になる完全な異常状態の場合には、装置自体が動作しないために正常か否かの判定もできない。そこで、本実施の形態では、供給電圧が低下し、供給電圧が動作不能になる電圧に近い状態を異常、つまり、何かしらの警報が必要な状態とし、係る状態になったことを記録するようにしている。
そして、本実施の形態では、上記のような警報が必要な状態、つまり、動作しているものの動作不能になりそうな状態であるか否かの判断基準となる監視電圧を、監視電圧記憶部33dに格納している。なお、この監視電圧は、この実施の形態では、スレーブ33の図示しないディップスイッチにより設定している。
この監視電圧記憶部33dに記憶される監視電圧は、例えば、スレーブ33の動作保証電圧が24V〜11Vであると、その下限の電圧である11Vよりもわずかに高い値に設定する。一例としては、12Vに設定される。係る設定にすると、電圧降下に伴う供給電圧の低下に伴う通信不能になる前に、このスレーブ33に供給されるネットワーク電源の状態をネットワークコンフィグレータ36に通信することが可能になる。
比較部33eは、現在値記憶部33cに記憶されたネットワーク電源の電圧の現在値と、監視電圧記憶部33dに記憶された監視電圧とを比較し、ネットワーク電源の電圧の現在値が比較基準値である監視電圧を下回ると、警報ステータスを出力する。
この比較部33eから出力された警報ステータスは、警報ステータス記憶部33fに記憶される。ここで、警報ステータス記憶部33fにおける警報ステータスの記憶は、エラーフラグとして記憶することができる。
上記した監視電圧に基づく判断結果である警報ステータス(エラーフラグ)を含め、供給電圧に関する情報は、スレーブ33が保持している。このスレーブが保持している情報は、本実施の形態では、ネットワークコンフィグレータ36からの要求に対応して発信するレスポンスとしてネットワークコンフィグレータ36に渡すようにしている。すなわち、最大値・最小値保持部33bに保持されたスレーブ33に供給されるネットワーク電源の電圧の最大値並びに最小値と、現在値記憶部33cに記憶されたこのスレーブ33に供給されるネットワーク電源の電圧の現在値と、警報ステータス記憶部33fに記憶された警報ステータスは、図19に示したネットワークコンフィグレータ36からの読出しコマンドにより最大値・最小値保持部33b,現在値記憶部33c,警報ステータス記憶部33fから通信制御部33gに読み出され、この通信制御部33gからフィールドネットワーク32を経由して、ネットワークコンフィグレータ36にレスポンスとして送信される。
また、係る電圧に関する情報の通信するタイミングは、上記したようにネットワークコンフィグレータ36から発行されるコマンドの受信に伴い発信するレスポンスのように外部からのトリガに限ることはなく、内部トリガ、つまり判断結果に変化があったことを条件にスレーブ33が自発的に送信するように構成してもよい。すなわち、スレーブ33に対する供給電圧を監視し、一定のしきい値(監視電圧)以下になった場合に、警報ステータス(エラーフラグ)並びにその他の電圧情報をネットワークコンフィグレータ36に向けて送信するようにしても良い。
なお、上記した図20に示す電圧監視構成は、マスタユニット30内にも備えることができる。係る構成にすると、上記したスレーブ33と同様に、マスタユニット30に対するネットワーク電源装置35から供給される電圧の監視を行うことができる。
図21は、本実施の形態におけるネットワークコンフィグレータ36の要部構成を示したブロック図である。図21に示すように、ネットワークコンフィグレータ36は、入力部36aと、フィールドネットワーク32に接続される通信制御部36bと、表示部36cとを具備して構成される。各部の具体的な機能は、以下の通りである。
入力部36aは、キーボード,ポインティングデバイス,操作パネルなどのマンマシンインタフェースであり、ユーザの操作に伴い受け取ったこのシステムの電圧表示指示を通信制御部36bに渡す機能を持つ。
入力部36aから与えられた電圧表示指示に伴い、通信制御部36bは、各スレーブ33に対して現在値読出しコマンド,最大値読出しコマンド,最小値読出しコマンド,警報ステータス読出しコマンドを順次発行し、これらに対するスレーブ33からのレスポンス受信により各スレーブ33におけるネットワーク電源の電圧の現在値,最大値,最小値並びに警報ステータスをそれぞれ収集する。そして、収集した情報を表示部36cに渡す。
表示部36cは、ディスプレイなどの表示装置であり、通信制御部36bから受け取った各スレーブ33のネットワーク電源の状態を出力表示する。これにより、現在の電圧の状態をユーザに報知することができる。このように、PLCユニットのサイクリックな処理とは別系統の通信により、通常のI/Oデータの送受とは関係なくネットワークコンフィグレータ36にて各スレーブ33の状態を収集することができ、ユーザは集中管理することができる。
次に、上記した処理、つまり各スレーブ33が保持する供給電源の電圧の情報をネットワークコンフィグレータ36が収集する機能を実現するための具体的な処理手順について説明する。
図24は、ネットワークコンフィグレータ36の処理を示すフローチャートである。まず、入力部36aから各スレーブ33の電圧表示指示が入力されたか否かを判断する(ST21)。電圧表示指示が入力されていない(ステップ21の分岐判断でNO)ときは、再び電圧表示指示が入力されるのを待つが、電圧表示指示が入力されていると判断される(ステップ21の分岐判断でYES)と、スレーブ33のユニット番号nを「1」に設定する(ST22)。次いで、ユニット番号nは最後の番号であるか否かを判断する(ST23)。なお、ステップ22の次に実行される場合には、n=1であるので、最後の番号ではないので分岐判断はNOとなる。
そして、ユニット番号nが最後でない場合(ステップ43でNO)は、スレーブ33に供給されるネットワーク電源の電圧の現在値の読出しを指令するための現在値読出しコマンドを、ユニット番号nのスレーブに対して発行する(ST24)。
そして、ユニット番号nのスレーブ33からの現在値読出しコマンドに対するレスポンスを受信したかを判断し(ST25)、レスポンスを受信していないと(ステップ25でNO)、このレスポンスを待つ。レスポンスを受信すると(ステップ25でYES)、スレーブ33のネットワーク電源の電圧の最大値の読出しを指令する最大値読出しコマンドをユニット番号nのスレーブ33に対して発行する(ST26)。
そして、ユニット番号nのスレーブ33からこの最大値読出しコマンドに対するレスポンスを受信したかを判断し(ST27)、レスポンスを受信していないと(ステップ27でNO)、このレスポンスを待つ。レスポンスを受信すると(ステップ27でYES)、スレーブ33に供給されるネットワーク電源の電圧の最小値の読出しを指令する最小値読出しコマンドをユニット番号nのスレーブ33に対して発行する(ST28)
そして、ユニット番号nのスレーブ33からこの最小値読出しコマンドに対するレスポンスを受信したかを判断し(ST29)、レスポンスを受信していないと(ステップ29でNO)、このレスポンスを待つ。レスポンスを受信すると(ステップ29でYES)、スレーブ33に供給されるネットワーク電源の警報ステータスの読出しを指令する警報ステータス読出しコマンドをユニット番号nのスレーブに対して発行する(ST30)。
そして、ユニット番号nのスレーブ33からこの警報ステータス読出しコマンドに対するレスポンスを受信したかを判断し(ST31)、レスポンスを受信していないと(ステップ31でNO)、このレスポンスを待つ。レスポンスを受信すると(ステップ31でYES)、ユニット番号nをn+1にインクリメントした(ST32)後、ステップ23に戻る。なお、上記した各処理ステップでレスポンスを受信した場合には、そのレスポンスとして送られてきた内容を抽出し、記憶保持する。
上記処理を、ステップ23で、ユニット番号nが最後であると判断されるまで繰り返し実行される。なお、ユニット番号nの最後の値は、予め記憶保持しておく。そして、このステップ23の「最後か?」の判断は、厳密に言うと、「最後の番号を越えたか?」や「最後まで処理したか?」となる。そして、最後の番号まで処理を実行したならば(ステップ23でYES)、上記した各処理を実行して取得した現在値,最大値,最小値,警報ステータスに基づき各スレーブ33のネットワーク電源の状態を表示する(ST33)。これにより、今回の電圧表示指示の入力に伴うコマンド発行,レスポンス受信並びにレスポンスにより取得した情報の表示といった一連の処理を終了する。なお、上記した説明では、コマンドの発行はスレーブに対して行うようにしたが、ユニット番号にマスタユニットに割り当てられた番号を追加することにより、マスタユニットに供給されるネットワーク電圧の情報を取得することができる。
このステップ33の処理を実行した結果得られる表示部36cへの電源状態の表示の具体例としては、例えば、図23に示すようなものがある。なお、ここでは、マスタユニット30へ供給されるネットワーク電圧に関する情報も取得したものとする。図23に示す表示画面37の上段には、マスタユニット30(M)、各スレーブ33(S1〜S6)からなるこのFAシステムの接続構成が示されており、下段には、各ユニットに供給されるネットワーク電源の最大値L1,現在値L2,最小値L3が折れ線グラフで表示されている。
L4は、監視電圧記憶部33dに記憶された監視電圧で、最小値L3あるいは現在値L2が監視電圧L4よりも下回ったユニットがある場合は、異常であるため、警報ステータスに応じて、所定の警報画面が表示される。
なお、監視電圧L4と最小値L3との比較で警報を出すか、現在値L2との比較で警報を出すかは、FAシステムの構成やスレーブ33に接続された外部機器の電気特性等に応じて選択するのがよい。また、最小値L3、現在値L2のいずれの比較値が下回ったときにもその旨の警報を出すようにしてもよい。
このような構成によれば、各スレーブ33のネットワーク電源の状態を、最大値L1,最小値L3,現在値L2,監視電圧L4との関係においてユーザに視覚的に示すことができる。
また、電源状態の表示例は、上記したものに限られないのはもちろんであり、別の例を示すと、図24に示すようにすることができる。すなわち、図24に示す表示画面37の上段には、マスタユニット30(M)、スレーブ33(S1〜S6)からなるFAシステムの接続構成が示されている。この点では上記したものと同様である。そして、下段には、各ユニットに供給されるネットワーク電源の最大値L1′,現在値L2′,最小値L3′が棒グラフで表示されている。
L4は、監視電圧記憶部33dに記憶された監視電圧で、最小値L3あるいは現在値L2が監視電圧L4よりも下回ったユニットがある場合は、異常であるため、警報ステータスに応じて、所定の警報画面が表示される。
なお、監視電圧L4と最小値L3との比較で警報を出すか、現在値L2との比較で警報を出すかは、FAシステムの構成やスレーブ33に接続された外部機器の電気特性等に応じて選択するのがよい。また、最小値L3、現在値L2のいずれの比較値が下回ったときにもその旨の警報を出すようにしてもよい。
なお、図23,図24では、警報ステータスの表示はないが、この警報ステータスは、各図に示したFAシステムの接続構成に対応して表示するように構成することができ、また、各図の表示画面とは別の表示画面に表示するように構成してもよい。
ところで、ネットワーク電源電圧の現在値は、スレーブ33に接続されるモータ等の外部機器の作動状態やネットワーク電源装置35からスレーブ33に至るネットワークの電力ケーブルの途中に接続された他のスレーブ等の負荷状況により、常時変動する。そこで、極短時間の電圧低下がスレーブ33の機能停止や性能低下に至らないものである場合は、電圧検出手段(電圧監視部)が所定時間以上持続する電圧のみ異常と検出するようにすることが好ましい。
また、ネットワーク電源電圧の最大値,最小値は、電圧変動のレンジを把握するのに有効であり、現在値は、現状把握に有効である。ネットワーク電源電圧の現在値が監視電圧より低下したとき警報を出せば、より安全側で管理することができる。
一方、各スレーブ33における処理は、図25に示すフローチャートのようになっている。すなわち、まず、ネットワークコンフィグレータ36からコマンドを受信したかを判断する(ST51)。ここで、ネットワークコンフィグレータ36からコマンドを受信していないと(ステップ51でNO)、再びステップ51へ戻る。つまり、このステップ51の処理によりコマンド受信を待つことになる。
ステップ51で、ネットワークコンフィグレータ36からコマンドを受信していると判断すると(ステップ51でYES)、次に、この受信したコマンドは現在値読出しコマンドかを判断する(ST52)。ここで、受信したコマンドが現在値読出しコマンドの場合(ステップ52でYES)には、現在値記憶部33cに格納されたこのスレーブのネットワーク電源の現在値を読み出すとともに、その現在値を通信制御部33gが受信したコマンドに対するレスポンスとしてしてネットワークコンフィグレータ36に返す(ST53)。これにより、今回のコマンド受信に伴う処理を終了する。
また、受信したコマンドが現在値読出しコマンドでない場合(ステップ52でNO)には、ステップ54に飛び、受信したコマンドは最大値読出しコマンドかを判断する(ST54)。そして、この受信したコマンドが最大値読出しコマンドである(ステップ54でYES)場合には、最大値・最小値保持部33bに格納されたスレーブ33に供給されたネットワーク電源の最大値をレスポンスとしてネットワークコンフィグレータ36に返す(ST55)。これにより、今回のコマンド受信に伴う処理を終了する。
また、ステップ54の分岐判断にて、受信したコマンドが最大値読出しコマンドでないと判断すると、ステップ56に飛び、受信したコマンドは最小値読出しコマンドかを判断する(ST56)。そして、この受信したコマンドが最小値読出しコマンドである(ステップ56でYES)場合には、最大値・最小値保持部33bに格納されたスレーブ33に供給されたネットワーク電源の最小値をレスポンスとしてネットワークコンフィグレータ36に返す(ST57)。これにより、今回のコマンド受信に伴う処理を終了する。
また、ステップ56の分岐判断にて、受信したコマンドが最小値読出しコマンドでないと判断すると、ステップ58に飛び、受信したコマンドは警報ステータス読出しコマンドかを判断する(ST58)。そして、この受信したコマンドが警報ステータス読出しコマンドであると(ステップ58でYES)、警報ステータス記憶部33fに格納されたこのスレーブのネットワーク電源の警報ステータスをレスポンスとしてネットワークコンフィグレータ36に返す(ST59)。これにより、今回のコマンド受信に伴う処理を終了する。
さらに、ステップ58の分岐判断でNO、つまり、受信したコマンドが警報ステータス読出しコマンドでない場合には、今回受信したコマンドは、ネットワーク電圧に関する情報の読出し要求のコマンドではないので、その受信したコマンドに対応する他の処理を実行する(ST60)。その後、ステップ51へ戻り、次のコマンドの受信を待つ。
上述の実施の形態では、監視電圧の設定は、各スレーブ毎にスレーブ上の操作スイッチ(ディップスイッチやロータリスイッチなど)で手動で行っている。しかし、この監視電圧の設定は、フィールドネットワーク32を介してネットワークコンフィグレータ36からの操作で行ってもよい。そして、ネットワークコンフィグレータ36からの操作で監視電圧を設定する場合は、ネットワークに接続する個々のスレーブ毎に設定したり、或るいは、各スレーブの作動電圧が同一の場合は、一括して設定することもできる。
また、ネットワーク電源装置35から遠くに配置されたスレーブや、接続された外部機器の負荷電流が大きいスレーブ等にだけネットワーク電源監視機能を持たせ、このスレーブのネットワーク電源監視情報をネットワークコンフィグレータ36に送って表示するようにしてもよい。
また、全てのスレーブ33にネットワーク電源監視機能を持たせた場合にも、ネットワークコンフィグレータ36が特定のスレーブに、選択的に、ネットワーク電源監視情報収集コマンドを送って、これらの特定のスレーブのネットワーク電源監視情報を表示するようにしてもよい。
なお、上述の実施の形態では、スレーブ33が、全て、電源監視手段を持っている場合で説明した。ところで、ネットワークシステムの構成としては、電源監視手段を持っているスレーブと、電源監視手段を持っていない従来のスレーブとが混在している場合がある。係る場合に、ネットワークコンフィグレータ36からの現在値読出しコマンドに対して、従来のスレーブはエラー応答となるから、ネットワークコンフィグレータ36側では、当該スレーブが電源監視手段を持っていない従来のスレーブであることを判断することができる。また、ネットワークコンフィグレータ36は、フィールドネットワークを介して接続されているスレーブの機種判別ができるので、電源監視手段を持っているスレーブにのみ現在値読出しコマンド等を発行することも可能である。したがって、この発明は、電源監視手段を持っているスレーブと電源監視手段を持っていない従来のスレーブが混在するネットワークシステムにも適用できる。
さらにまた、この発明におけるマスタユニットはひとつに限られるものではなく、複数のマスタユニットを接続したPLCシステムにも適用することができる。
以上説明したように上記した実施の形態によれば、システム構築時に、ネットワーク電源の供給状態を一箇所で集中モニタすることができるので、システムの構築時間を短縮することができる。また、システム稼動中におけるネットワーク電源の供給状態を随時チェックできるので、システムの保守メンテナンスが容易になる等の効果を奏する。
なお、上記した実施の形態では、収集する装置をネットワークコンフィグレータとして説明したが、各スレーブに格納された情報をフィールドネットワークに接続されたモニタに送り、そのモニタに表示しても良い。また、マスタユニットとの間で係る非I/Oデータの送受を行うようにしてももちろん良い。
そして、本実施の形態でも、スレーブ等に供給される電圧に関する情報は、スレーブ側で検出するとともに記憶保持し、その情報の収集・表示は、コンフィグレータからの要求等に基づいて行うため、PLC側のサイクリック処理への影響を与えない。
図26以降は、本発明の第5の実施の形態を示している。本実施の形態では、計測対象の制御機器またはスレーブ自身に関する物理量として、スレーブに接続される入出力機器に対して供給されるI/O電源としたものである。
図26に示すように、このFAシステムは、上位局である一台のマスタユニット40と複数箇所に分散配置された複数台のスレーブ43とをフィールドネットワーク42に接続されて構成される。なお、上記した各実施の形態と同様に、マスタユニット40と、複数のスレーブ43の間の相互間のネットワークであるフィールドネットワーク42としては、フィールドバス(例えば、DeviceNet(登録商標)等)が用いられる。
ここで、マスタユニット40は、このFAシステムにおけるPLCマスタを構成するものである。さらに、図3などと同様に、PLCユニット連携されている。
また、スレーブ43は、センサ等の検出器からの信号を入力するとともに、バルブ等の制御器に信号を出力するものである。すなわち、このFAシステムによる制御を行うために、所定の入出力機器44が接続されている。この入出力機器44には、センサなどの入力機器44aと、バルブ・モータなどの出力機器44bがある。そして、各スレーブ43に入出力機器電源装置45の出力を接続し、その入出力機器電源装置45から各入出力機器44に対する電源供給を受けるようにしている。
さらに、図27に示すように、入出力機器電源装置45には、センサ等の入力機器44aに供給する入力用電源部45aとバルブ等の出力機器44bに供給する出力用電源部45bを備えている。そして、入力用電源部45a並びに出力用電源部45bからの供給電圧は、入出力機器電源監視部43aにも与えられる。これにより、入出力用電源監視部43aでは、電圧値を監視し、しきい値と比較することによりON/OFFを判断することができる。
なお、スレーブ43自体に対する電源供給は、図示省略するが、上記した第4の実施の形態と同様にフィールドネットワーク32に接続されたネットワーク電源装置35から供給を受けるようにすることができる。もちろん、ネットワークを介さずにスレーブの電源端子へ単独に別途電力供給を受けることもできる。この場合のスレーブは、入出力機器電源用の端子とスレーブ用の電源端子とを独立に別々に備えることになる。そして、この場合も、別途用意したスレーブ用電源が電源端子を介してスレーブに入力されるので、そのスレーブ用電源の端子電圧を計測するとともに、基準値と比較し、その比較判断結果をネットワークを介してマスタユニットやモニタやコンフィグレータなどに通知するようにしてもよい。
上記した構成において、複数台のスレーブ43には、それぞれ入力用電源部45aから供給される入力電源および出力用電源部45bから供給される出力電源が、それぞれONかOFFかを監視する入出力機器電源監視部43aを備えている(図27参照)。
各スレーブ43は、この入出力機器電源監視部43aで監視した入力電源および出力電源のON,OFF状態を示す入出力機器電源状態情報を保有する。そして、この入出力機器電源状態情報(I/O電源情報)は、マスタユニット40からの要求によりフィールドネットワーク42を経由してマスタユニット40に送信する。これにより、マスタユニット40では、複数台のスレーブ43の入出力機器電源(I/O電源)の状態をモニタすることができる。
上記構成により、マスタユニット40では、センサ等の入力機器44aから信号がこない場合に、その原因がスレーブ43の入力用電源がOFFのためか、実際にセンサ等の入力機器44aの故障等に伴い信号入力されないかを迅速に判別することができ、これによりシステムの信頼性を向上させることができる。
同様に、マスタユニット40では、スレーブ43にバルブ等の制御器(出力機器44b)を駆動するための信号を出力したのに、このバルブ等の出力機器44bの動作を確認できない場合に、その原因がスレーブ43の出力用電源がOFFのためなのか、実際にスレーブ43に信号が出力されなかったためなのかを判別することができる。これによってもシステムの信頼性を向上させることができる。
マスタユニット40と接続された図示しないPLCユニット(入力機器からの情報を取り込み、制御プログラムを実行し、実行結果を出力機器へ出力する)においては、スレーブ43に接続された機器の電源供給状態をマスタユニット40経由で知ることが可能となる。したがって、PLCユニット(CPUユニット)の制御プログラム(ラダー言語等によりプログラミングされる)でスレーブに接続された機器の電源OFF時の対応が可能となるため、システムの信頼性を向上させることができる。
図28は、図27に示したスレーブ43の具体的な構成例を示すブロック図である。なお、図28では、スレーブ43に、検出器であるセンサ44aが接続されている場合を示しているが、制御器であるバルブ等が接続されている場合および検出器であるセンサ等と制御器であるバルブ等の両者が接続されている場合も同様に構成することができる。ただし、バルブ等が接続されている場合は、入力用電源の監視ではなく、出力用電源の監視になる。
まず、センサ44aの検知信号は、入力部43bに与えられる。入力部43bが取得したセンサ44aからの検知信号、つまり、ON/OFF情報は、通信制御部43cを介してフィールドネットワーク42を経由してマスタユニット40に与えられる。このようにしてI/Oデータが送信されるが、係る処理機能は従来と同様である。そして、入力用電源は、スレーブ43を経由してセンサ44aに与えられるが、その入力用電源監視部43a′に与えられる。入力用電源監視部43a′は、上記与えられる入力用電源の電圧に基づき、外部から入力される入力用電源のON,OFFを常時監視する。
そして、マスタユニット40からフィールドネットワーク42を経由して送られてきた要求を通信制御部43cで受信すると、この要求に基づき入力用電源監視部43a′が監視した入力用電源のON,OFFを示す情報を通信制御部43cが取得し、この情報をフィールドネットワーク42を経由してマスタユニット40へ送信する。
もちろん、図28では、入力用電源についての監視機能を図示して説明したが、上記したように出力機器が接続されたスレーブの場合には、出力用電源監視部を設け、出力用電源のON,OFF情報を監視し、マスタユニット40からの要求に応じてそのON,OFF情報をレスポンスとして返信するようになる。そして、それら入力用電源と出力用電源の監視を総称して説明したのが、図27に示す入出力機器電源監視部43aである。つまり、この図27ではスレーブ43内には入出力機器電源監視部43aのみを設けた例を示しているが、実際には、図28と同様に通信制御部や、入出力機器のI/Oデータを管理するための入力部や出力部を備えている。そして、入出力電源のON,OFF情報の管理・送受を行うためのマスタユニット40とスレーブ43の処理アルゴリズムの一例を示すと、図29,図30に示すフローチャートのようになっている。
図29は、スレーブ43の動作を説明するためのフローチャートである。図29に示すように、まず、入出力機器電源監視部43aで入力用電源および出力用電源がONかを判断する(ST61)。この判断は、0Vに近いしきい値を設定し、それ以上の場合にはONと判断するようにしても良いし、後述するように入力用電源,出力用電源をトランジスタのベース電圧に印加するように構成し、トランジスタがONした場合に電源がONと判断するようにするなど、各種の手法が採れる。いずれの場合も、何かしらの判断基準値と比較し、判断基準値異常になった場合に電圧がONしていると判断するようになっている。
入力用電源や出力用電源がONであると(ステップ61でYES)、対応する入力用電源,出力用電源のエラーフラグをOFFに設定する(ST62)。また、入力用電源,出力用電源がOFFであると(ステップ61でNO)、OFFとなった入力用電源,出力用電源に対応するエラーフラグをONに設定する(ST63)。
次に、マスタユニット40からフィードネットワーク42経由で入出力機器電源状態情報の要求があるかを判断する(ST64)。ここで、入出力機器電源状態情報の要求がないと(ステップ64でNO)、ステップ61に戻り、次の処理に移行する。
一方、入出力機器電源状態情報の要求が受信した場合(ステップ64でYES)には、マスタユニット40に対するレスポンスとして、上記エラーフラグを入出力機器電源状態情報としてフィードネットワーク42経由で送信し、その後、ステップ61に戻り、次の処理に移行する。
図30は、マスタユニット40の動作を説明するためのフローチャートである。まず、入出力機器電源のチェック指示があるかを判断する(ST71)。この指示は、例えばPLCユニット側からの要求であったりする。また、マスタユニット40に入出力機器電源のチェック指示用の操作ボタンなどを設け、その操作ボタンの押下により、入出力機器電源のチェック指示が有ると判断することもできる。
入出力機器電源のチェック指示がない(ステップ71でNO)場合には、ステップ71へ戻り、入出力機器電源のチェック指示を待つ。そして、入出力機器電源のチェック指示があると判断されると(ステップ71でYES)、次に、スレーブ43のユニット番号nを「1」に設定する(ST72)。次いで、ユニット番号nは最後の番号であるか否かを判断する(ST73)。なお、ステップ72の次に実行される場合には、n=1であるので、最後の番号ではないので分岐判断はNOとなる。
そして、ユニット番号nが最後でない場合(ステップ73でNO)は、ユニット番号nのスレーブに対する入出力機器電源のエラーフラグの読み出し要求を発行し(ST74)、ユニット番号nのスレーブからの入出力機器電源のエラーフラグの読み出しを行う(ステップ75)。
そして、この読み出した入出力機器電源のエラーフラグに対応した処理を行い(ST76)、次に、ユニット番号nをn+1にインクリメントし(ST77)、ステップ73に戻る。
上記処理は、ステップ73で、ユニット番号nが最後であると判断されるまで繰り返し実行される。なお、ユニット番号nの最後の値は、予め記憶保持しておく。そして、このステップ73の「最後か?」の判断は、厳密に言うと、「最後の番号を越えたか?」や「最後まで処理したか?」となる。そして、最後の番号まで処理を実行したならば(ステップ73でYES)、今回の入出力機器電源のチェック指示に伴う一連の処理を終了する。
上記ステップ76おけるエラーフラグに応じた処理は、例えば、マスタユニット40にインストールされているラダープログラムに基づき行われ、エラーフラグの値に応じて、「入出力機器電源正常」,「No.3−スレーブ入力用電源OFF」等の報知を行い、さらに運転続行が不適当な場合には、運転を停止する等の処理を行ったりする。
なお、図30に示したフローチャートにおいては、このシステムのスレーブの入出力機器電源のチェックを全てのスレーブに対して順次行うように構成したが、必要に応じて特定のスレーブの入出力機器電源に対してのみ行うように構成してもよい。
上記した第5の実施の形態では、入出力機器に対する電源供給を入出力機器電源装置45から与えるタイプのシステムを前提としたが、第4の実施の形態で説明したように、ネットワーク電源装置からスレーブ経由で入出力機器へ電源供給するシステムにおいても、入出力機器への電源供給のON,OFF状態をスレーブ側で監視し、その結果をフィードネットワーク42を経由してマスタユニット40等へ通知するようにすることもできる。一例を示すと、スレーブ43の内部構成を図31のようにすることにより実現できる。
図31は、スレーブ43に、検出器であるセンサ44aが接続されている場合を示しているが、制御器であるバルブ等が接続されている場合および検出器であるセンサ等と制御器であるバルブ等の両者が接続されている場合も同様に構成することができる。ただし、バルブ等が接続されている場合は、入力用電源の監視ではなく、出力用電源の監視になる。
まず、センサ44aの検知信号は、入力部43bに与えられる。入力部43bが取得したセンサ44aからの検知信号、つまり、ON/OFF情報は、通信制御部43cを介してフィールドネットワーク42を経由してマスタユニット40に与えられる。このようにしてI/Oデータが送信されるが、係る処理機能は従来と同様である。そして、入力用電源は、フィードネットワーク42に接続されたネットワーク電源装置47から、係るフィールドネットワーク42を経由してスレーブ43に供給される。そして、スレーブ43をさらに経由してセンサ44aに与えられる。このスレーブ内のセンサ44aへの電源供給ラインの途中に短絡保護回路43dが設けられている。この短絡保護回路43dは、例えばセンサ44a側で短絡を生じたのを検知すると、回路を遮断する(スイッチを開く)制御が行われる。つまり、ネットワーク電源は、センサ44aさらにはそのセンサ44aが接続されたスレーブ43はもちろんのこと、フィールドネットワーク42に接続された他のスレーブなどへも電源供給がされている。従って、仮にセンサ44aで短絡が発生すると、その状態のままではネットワーク全体の電源供給系に影響が与えるので、短絡保護回路43dを設け、短絡を生じたセンサ44aを電源供給系から切り離すようにしている。なお、この短絡保護回路43d自体の構成は従来公知であるので、その内部構成の詳細な説明を省略する。
そして、短絡保護回路43dからセンサ44aへの供給ラインを分岐して入力用電源監視部43a′へ与えるようにしている。この入力用電源監視部43a′は、上記与えられる入力用電源の電圧に基づき、外部から入力される入力用電源のON,OFFを常時監視する。
このような構成によると、上記短絡保護回路43dの動作状態を含めた入力用電源のON,OFF状態を監視することができる。すなわち、入力用電源監視部43a′は、入力用電源のON,OFFを監視し、マスタユニット40等からの要求に応じてその監視結果である電圧の状態に関する情報をマスタユニット40等に返す。そこで、スレーブ43からセンサ44aへの供給電源がOFFであることを示す情報をフィールドネットワーク42経由で受信したマスタユニット40は、当該スレーブ43の短絡保護回路43dが動作し遮断状態になったと判断することができる。つまり、本実施の形態では、スレーブ43もネットワーク電源により動作するようにしている。従って、スレーブからの応答(情報の通知)があったと言うことは、少なくともスレーブ43にはネットワーク電源が供給されていると言えるので、その状態でセンサ44aへの供給電源がOFFということは、短絡保護回路43dが動作していると判断できる。
なお、マスタユニット40から要求に対するスレーブ43からの情報の送信処理は、図28におけるスレーブと同様に、通信制御部43cを介して行う。つまり、通信制御部43cがマスタユニット40からの要求を受信すると、入力用電源監視部43a′の監視結果を取得してフィールドネットワーク42を介してマスタユニット40に送るようになる。
なおまた、単純にON,OFFを判断するのではなく、第4の実施の形態における各スレーブのネットワーク電源の監視と同様に、入出力用電源の電圧値が、所定のしきい値以上か否かを判定し、入出力機器が動作可能であるが、下限に近い状態であるなどの判断をし、その判断結果を通知するようにしても良い。
ところで、上記した入力電源監視部43a′を実現するための具体的な回路構成としては、例えば図32に示すように構成することができる。この回路は、図28,図31のいずれの入力電源監視部43a′にも適用できる。また、この図32では入力用電源の監視回路を示しているが、出力用電源に対する監視回路も同様に構成することができる。
図32に示すように、この入力用電源の監視回路は、入力機器44aへの電源供給ラインから分岐された経路に対し、抵抗51とフォトカプラ52を構成する発光ダイオード52aを直列接続してアースに落としている。また、フォトカプラ52を構成する受光トランジスタ52bと電源電圧Vccの間にプルアップ抵抗53を直列接続している。そして、プルアップ抵抗53と受光トランジスタ52bの接続点をスレーブ43のCPU54の入力端子に接続している。
係る構成にすると、入力用電源がONの場合、入力用電源から抵抗51→フォトカプラ52の発光ダイオード52aを経由してアースへ電流が流れ、発光ダイオード52aが点灯する。これにより、フォトカプラ52の受光トランジスタ52bがONになり、CPU54の入力端子にはアースに落ちるので、ローレベルの信号が入力される。
また、入力用電源がOFFであると、入力用電源から抵抗51→フォトカプラ52の発光ダイオード52aを経由してアースへ流れる電流はなくなり、発光ダイオード52aは消灯する。これにより、受光トランジスタ52bはOFFになり、CPU54の入力端子はオープンとなるので、プルアップ抵抗53の作用により、CPU54の入力端子にはハイレベルの信号が入力される。
したがって、CPU54は、入力端子に入力される信号のレベルを監視し、これがローレベルであると入力用電源がON、ハイレベルであると入力用電源がOFFとして検出することができる。そして、受光トランジスタ52bの動作電圧(ONになる電圧)が、入力用電圧のON,OFFの基準値となる。
なお、スレーブに接続される入力機器が複数の場合、スレーブからの供給電源の監視は、入力機器ごとに個別に行ってもよいし、入力機器全部を一括して行ってもよい。同様に、スレーブに接続される出力機器が複数の場合も、スレーブからの供給電源の監視は、出力機器ごとに個別に行ってもよいし、出力機器全部を一括して行ってもよい。
さらにまた、第5の実施の形態の変形例のように、短絡の有無情報を送る場合には、入出力機器についての情報も併せて送るようにすると良い。すなわち、短絡を生じている場合には、その短絡している入出力機器の修理・交換などのメンテナンスが発生することが多い。従って、各スレーブに、予め自己に接続されている入出力機器についての情報、つまり、機器のIDを示す情報(機器名,製造者名,形式,製造番号)などを予め記憶保持しておき、短絡した機器についてのIDを示す情報を合わせた出力すると、ユーザは、故障した機器についての情報を予め知ることができる。従って、現場に行くに際し、係る機器用の交換部品や、交換する機器を携帯して行くことができ、メンテナンスを迅速に行うことができる。
以上説明したように、この第5の実施の形態並びにその変形例によれば、上位局が各スレーブに接続された入出力機器用の電源(I/O電源)の状態を取得できるので、スレーブから信号がこない場合の原因が、入力機器に電源が供給されていないためなのか、実際に信号が入力若しくは出力されていないためなのかを、上位局において迅速に判別することができる。よって、システムの信頼性を向上させることができるという効果を奏する。
また、第5の実施の形態では、I/O電源のON/OFFや、電圧値などの情報の通知を受ける上位局として、マスタユニットの例を示したが、本発明はこれに限ることはなく、その他のコントローラでも良い。さらに、上位局という概念とは関係なく、第4の実施の形態のようにコンフィグレータでも良いし、或いはモニタ46でも良い。さらには、他のスレーブなど、ネットワーク接続された各種ノードが送信先とすることができる。
このことは、第1から第4の実施の形態でも言える。つまり、各スレーブで取得した情報の送信先は、ネットワークに接続された各種のノードに送ることができる。
さらにまた、上記した各実施の形態で説明したスレーブは、マスタユニットとの間でI/O情報を送受し、そのマスタユニットを経由してコントローラ(PLC)と係るI/O情報の送受を行ってシステムの制御を行う例を示し、マスタユニットとスレーブとの間は、マスタからの要求に対して所望のスレーブがレスポンスを返すと行ったマスタースレーブ方式を説明したが、本発明で言うスレーブは、マスタ−スレーブ間通信を行うものに限られない。つまり、スレーブとは称するものの、通信方式は任意のものを利用できる。その点では、厳密に言うと一般的に定義されているスレーブとは異なる概念を含むものであると言える。つまり、本発明で言う所のスレーブは、制御に必要なI/O情報をコントローラと送受する機能が有れば、実際に送受信する際の通信プロトコルは任意である。特に本発明で送信対象とする非I/O情報の送信先は、マスタユニットやコントローラに限ることはなく、ネットワークに接続されたコンフィグレータやモニタや他のスレーブなど、各種のノードとすることができるので、通信方式も、送信相手に応じて適宜選択できる。もちろん、送信するためのトリガも、外部からの要求に応じて行うものに限ることはなく、内部トリガ(内部のタイマ,一定の条件に合致したときに発生するイベントなど)に基づいて送信してもよい。
線(ネットワーク)に出力し、所定の送信先に通知することができる。