(実施の形態1)
以下、本発明の一実施の形態に係る通信制御システムについて、図面を参照しながら説明する。
本実施の形態に係る通信制御システムは、シリアル通信インタフェース(以下、「I/F」と称する。)を搭載したシリアル機器と、ネットワークに接続され、複数のシリアル機器を制御するための制御情報を生成する制御サーバと、を備えるものである。制御サーバは、2つ存在し、一方が稼働系(メイン)の制御サーバとして動作し、他方が待機系(サブ)の制御サーバとして動作する。また、通信制御システムは、シリアル機器毎に、シリアル機器と制御サーバとの通信を中継するデバイスサーバを備える。そして、複数のデバイスサーバのうちのいずれか1つの監視デバイスサーバが、メインの制御サーバからのフレームの受信状況、フレームの内容、又は制御情報の応答情報を監視し、適宜デバイスサーバの接続先をメインの制御サーバからサブの制御サーバへ切り替える。
図1に示すように、本実施の形態に係る通信制御システム1000は、例えば半導体工場で使用される搬送台車51、52を制御するとともに、防火扉を駆動したり、警告灯を点灯させたりする駆動装置10を制御するものである。通信制御システム1000は、2つの制御サーバ31、32と、デバイスサーバ1、2と、搬送台車51、52を制御する搬送台車制御装置4と、PLC(Programmable Logic Controller)6と、を備える。制御サーバ31、32とデバイスサーバ1、2とは、ネットワーク7に接続されている。ネットワーク7は、例えばイーサネット(登録商標)ケーブルで接続された有線LAN(Local Area Network)から構成される。ネットワーク7は、例えばIEEE802.3規格に準拠したものである。PLC6は、シリアル通信I/Fを搭載したシリアル機器であり、デバイスサーバ1は、例えばRS−422規格に準拠したシリアル伝送路9を介して、PLC6に接続されている。また、搬送台車制御装置4も、シリアル通信I/Fを搭載したシリアル機器であり、デバイスサーバ2は、例えばRS−232C規格に準拠したシリアル伝送路8を介して、搬送台車制御装置4に接続されている。
搬送台車制御装置4は、搬送台車51、52と通信を行う通信ユニット42A、42Bと、通信ユニット42A、42Bを制御する制御ユニット41と、を有する。制御ユニット41と通信ユニット42A、42Bとは、例えばRS−485規格に準拠したシリアル伝送路を介して接続されている。
PLC6は、デバイスサーバ1と半二重方式又は全二重方式で通信を実行し、デバイスサーバ1から取得したフレームに含まれるコマンド情報に応じて、駆動装置10を制御する。PLC6と駆動装置10とは、シリアル伝送路を介して接続されている。
制御サーバ31、32は、搬送台車制御装置4を制御するための第1制御フレーム(制御情報)と、PLC6を制御するための第1PLCフレームと、を生成する。制御サーバ31、32のいずれか一方が稼働系の制御サーバとして動作し、他方が待機系の制御サーバとして動作する。
制御サーバ31、32は、搬送台車制御装置4から第1制御フレーム(制御情報)に対する第1制御応答フレーム(応答情報)と、PLC6を制御するための第1PLCフレーム(制御情報)に対する第1PLC応答フレーム(応答情報)と、を受信する。
制御サーバ31、32は、冗長化されたシステムにおける予備装置への切替方式であるウォームスタンバイ方式、ホットスタンバイ方式またはコールドスタンバイ方式を採用している。好適には、ホットスタンバイ方式を採用することが望ましく、これにより、通信制御システム1000において、サブとして動作する制御サーバは、メインとして動作する制御サーバと同期を取りながら同じ処理を実行しており、メインとして動作する制御サーバに障害が発生した場合に切り替わって処理を受け持つことができる。
制御サーバ31、32は、パーソナルコンピュータ等から構成され、図2に示すように、CPU(Central Processing Unit)301と主記憶部302と補助記憶部303とネットワーク通信I/F304とバス305とを有する。主記憶部302は、揮発性メモリから構成され、CPU301の作業領域として使用される。補助記憶部303は、不揮発性のメモリから構成され、搬送台車制御装置4を制御するための制御プログラムを記憶する。ネットワーク通信I/F304は、イーサネットコントローラおよびLANポートを含んで構成される。
制御サーバ31、32では、CPU301が、補助記憶部303が記憶する制御プログラムを主記憶部302に読み込んで実行することにより、図3に示す各部として機能する。制御サーバ31、32は、搬送台車制御部311、321と、PLC制御部312、322と、デバイスドライバ313、323と、カウンタ更新部314、324と、接続先設定部315、325と、第1変換部316、326と、して機能する。搬送台車制御部311、321は、搬送台車制御装置4を制御するための制御情報を生成してデバイスドライバ313、323へ出力する。
PLC制御部312、322は、PLC6を制御するための制御情報を生成してデバイスドライバ313、323へ出力する。この制御情報には、後述のコマンド情報、メイン制御サーバ識別情報(接続先識別情報)、遅延時間情報、PLC制御情報およびライフカウンタ情報(カウンタ情報)が含まれる。メイン制御サーバ識別情報は、デバイスサーバ1、2の接続先となるメインの制御サーバ31(32)を識別する情報である。また、ライフカウンタ情報は、制御サーバ31、32における障害発生の有無を検知するための情報である。
カウンタ更新部314、324は、第2PLCフレームをデバイスサーバ1へ送信する毎に、当該第2PLCフレームに含まれるライフカウンタ情報が示すカウンタ値を、「1」だけインクリメントさせる形でライフカウンタ情報を更新する。そして、カウンタ更新部314、324は、ライフカウンタ情報が示すカウント値が予め設定された値に到達すると、ライフカウンタ情報が示すカウント値を初期値にリセットする。
接続先設定部315、325は、ユーザによる設定操作に応じて、メインの制御サーバとして動作する制御サーバ31(32)の制御サーバ識別情報を生成してPLC制御部312、322へ出力することにより、メイン制御サーバ識別情報を設定する。PLC制御部312、322は、接続先設定部315、325から制御サーバ識別情報が入力されると、入力された制御サーバ識別情報をメイン制御サーバ識別情報として制御情報に含ませる。
デバイスドライバ313、323は、搬送台車制御部311、321から入力される制御情報を含む第1制御フレームを生成する。また、デバイスドライバ313、323は、PLC制御部312、322から入力される制御情報を含む第1PLCフレームを生成する。第1制御フレームは、デバイスサーバ2と搬送台車制御装置4との間でのシリアル通信のプロトコルに対応している。また、第1PLCフレームは、デバイスサーバ1とPLC6との間でのシリアル通信のプロトコルに対応している。
第1PLCフレームは、例えば図4に示すように、第1コントロールコードと、PLC識別情報と、コマンド情報と、メイン制御サーバ識別情報と、遅延時間情報と、PLC制御情報と、ライフカウンタ情報と、誤り検出情報と、第2コントロールコードを含む。ライフカウンタ情報は、制御サーバ31、32からPLC6宛てに送信される第1PLCフレームのみに含まれる。また、第1PLCフレームの先頭には、プリアンブルとヘッダ情報が付加されている。第1コントロールコードおよび第2コントロールコードは、例えばASCII制御コードから構成される。第1コントロールコードは、例えば「ENQ」や「ACK」、「NAK」、「STX」に設定される。第2コントロールコードは、例えば「CR」および「LF」に設定される。メインの制御サーバ31のPLC制御部312は、例えばPLC6の制御に関する情報であるPLC制御情報をPLC6から読み出す要求、或いは、PLC6へPLC制御情報の書き込む要求を行う場合、第1コントロールコードを「ENQ」に設定する。そして、PLC6は、PLC制御情報の読み出し要求を正常に受信した場合、或いは、PLC制御情報の書き込み要求を正常に受信した場合、メインの制御サーバ31宛に送信する第1PLCフレームの第1コントロールコードを「ACK」に設定する。一方、PLC6は、PLC制御情報の読み出し要求を正常に受信できなかった場合、或いは、PLC制御情報の書き込み要求を正常に受信できなかった場合、メインの制御サーバ31宛に送信する第1PLCフレームの第1コントロールコードを「NAK」に設定する。また、PLC6は、PLC制御情報の読み出し要求を受信した後、メインの制御サーバ31宛てにPLC制御情報に対する応答内容を含む第1PLC応答フレームを送信する。この場合、PLC6は、第1PLC応答フレームを第1コントロールコード「STX」で開始されるフレームを作成して送信する。一方、PLC6は、第1PLCフレームの送信異常が発生した場合、第1コントロールコードを「NAK」に設定する。
PLC識別情報は、制御サーバ31、32がアクセスするPLC6を識別する情報である。コマンド情報は、制御サーバ31、32がPLC6に対して行う要求の内容を示す情報である。制御サーバ識別情報は、メインの制御サーバ31およびサブの制御サーバ32それぞれを識別する情報である。遅延時間情報は、PLC6が制御サーバ31、32から第1PLCフレームを受信した後、PLC6がその第1PLCフレームに含まれるコマンド情報に応じたPLC制御情報を制御サーバ31、32宛てに送信を開始するまでの時間を示す情報である。誤り検出情報は、例えばチェックサムコードから構成される。
図3に戻って、第1変換部316、326は、デバイスドライバ313、323で生成される第1制御フレームをカプセル化してTCP/IPプロトコル、又はUDP/IPプロトコルに対応する第2制御フレームに変換する。また、第1変換部316、326は、デバイスドライバ313、323で生成される第1PLCフレームをカプセル化してTCP/IPプロトコル、又はUDP/IPプロトコルに対応する第2PLCフレームに変換する。そして、第1変換部316、326は、第2制御フレームをデバイスサーバ2へ予め設定された基準時間以内の時間間隔で送信する。また、第1変換部316、326は、第2PLCフレームをデバイスサーバ1へ予め設定された基準時間以内の時間間隔で送信する。
デバイスサーバ1は、制御サーバ31、32のうちの1つのメインの制御サーバ(第1制御サーバ)31(32)にネットワーク7を介して接続することによりメインの制御サーバ31(32)から第2PLCフレームを受信する。そして、デバイスサーバ1は、受信した第2PLCフレームを第1PLCフレームに変換してからデバイスサーバ1に接続されたPLC6へ送信する。また、デバイスサーバ1は、PLC6から第1PLCフレームに対する第1PLC応答フレームを受信すると、受信した第1PLC応答フレームを第2PLC応答フレームに変換してからメインの制御サーバ31(32)へ送信する。デバイスサーバ1は、プロトコルを変換する機能のみならず、第2PLCフレームの受信状況または第1PLCフレームの内容を監視したり、PLC6からの第1PLCフレーム形式の応答フレーム(第1PLC応答フレーム)の内容を監視する機能を備えた監視デバイスサーバである。
デバイスサーバ2は、メインの制御サーバ(第1制御サーバ)31(32)にネットワーク7を介して接続することによりメインの制御サーバ31(32)から第2制御フレームを受信する。そして、デバイスサーバ2は、受信した第2制御フレームを第1制御フレームに変換してからデバイスサーバ2に接続された搬送台車制御装置4へ送信する。また、デバイスサーバ2は、搬送台車制御装置4から第1制御フレームに対する第1制御応答フレームを受信すると、受信した第1制御応答フレームを第2制御応答フレームに変換してからメインの制御サーバ31(32)へ送信する。
デバイスサーバ1、2は、図2に示すように、CPU101と主記憶部102と補助記憶部103とネットワーク通信I/F104とシリアル通信I/F105とバス106とを備える。主記憶部102は、揮発性メモリから構成され、CPU101の作業領域として使用される。補助記憶部103は、不揮発性のメモリから構成され、制御パケットの送信元となる制御サーバ31、32の識別情報や後述の通信制御処理を実行するためのプログラム等を記憶する。CPU101は、補助記憶部103が記憶するプログラムを主記憶部102に読み込んで実行することにより、後述の通信制御処理を実行する。ネットワーク通信I/F104は、イーサネットコントローラおよびLANポートを含んで構成される。ネットワーク通信I/F104は、ネットワーク7に接続された制御サーバ31、32との間でデータの送受信を行う。シリアル通信I/F105は、例えばRS−232C、RS−422等のシリアル通信規格に準拠したコネクタを有する。シリアル通信I/F105は、搬送台車制御装置4やPLC6との間でシリアル通信規格に従ってシリアル経路8、9を介してデータの送受信を行う。
デバイスサーバ1では、CPU101が、補助記憶部103が記憶する制御プログラムを主記憶部102に読み込んで実行することにより、図3に示すように、第2変換部111、判定部113、切替通知部114、として機能する。一方、デバイスサーバ2では、CPU101が、補助記憶部103が記憶する制御プログラムを主記憶部102に読み込んで実行することにより、図3に示すように、第2変換部211として機能する。デバイスサーバ1の第2変換部111は、2つの制御サーバ31、32のうちメインの制御サーバから送信される第2PLCフレームを、ネットワーク通信I/F104を介して取得する。そして、第2変換部211は、取得した第2PLCフレームを、PLC6と通信するためのプロトコルに対応する第1PLCフレームに変換してからシリアル通信I/F105を介してPLC6へ出力する。また、デバイスサーバ2の第2変換部211は、2つの制御サーバ31、32のうちメインの制御サーバから送信される第2PLCフレームを、ネットワーク通信I/F104を介して取得する。そして、第2変換部211は、取得した第2制御フレームを、搬送台車制御装置4と通信するためのプロトコルに対応する第1制御フレームに変換してからシリアル通信I/F105を介して搬送台車制御装置4へ出力する。また、補助記憶部103は、第1PLCフレームに含まれるライフカウンタ情報と制御サーバ識別情報とを記憶するカウンタ情報・識別情報記憶部121として機能する。
計時部115は、第2PLCフレームを受信した後の経過時間を計時する。計時部115は、第2PLCフレームを受信する毎に経過時間を初期値にリセットする。
判定部113は、デバイスサーバ1、2について接続先をメインの制御サーバ31(32)からサブの制御サーバ(第2制御サーバ)32(31)へ切り替えるか否かを判定する。判定部113は、メインの制御サーバ31(32)から受信した複数の第1PLCフレームそれぞれに含まれるライフカウンタ情報の履歴に基づいて、デバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する。具体的には、判定部113は、第1PLCフレームに含まれるライフカウンタ情報の示すカウント値が経時的に変化せず一定である場合、デバイスサーバ1、2の接続先を切り替えると判定する。判定部113は、第2変換部111により第1PLCフレームが変換・生成される毎に、第1PLCフレームからライフカウンタ情報を抽出してカウンタ情報・識別情報記憶部121に記憶させる。そして、判定部113は、カウンタ情報・識別情報記憶部121が記憶するライフカウンタ情報が示すカウント値の履歴に基づいて、カウント値が経時的に変化しているか否かを判定する。
また、判定部113は、メインの制御サーバ31(32)から受信する第2PLCフレームに含まれるメイン制御サーバ識別情報に基づいて、デバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する。判定部113は、第2変換部111により変換された第1PLCフレームからメイン制御サーバ識別情報を抽出してカウンタ情報・識別情報記憶部121に記憶させる。ここで、判定部113が第1PLCフレームから抽出されたメイン制御サーバ識別情報が、カウンタ情報・識別情報記憶部121が既に記憶するメイン制御サーバ識別情報と異なるとする。この場合、判定部113は、デバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えると判定する。
また、判定部113は、PLC6からの応答フレーム内容である第1PLCフレームに含まれるメイン制御サーバ識別情報に基づいて、デバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する。
更に、判定部113は、メインの制御サーバ31(32)から第2PLCフレームを受信した後、予め設定された基準時間以内に新たな第2PLCフレームを受信するか否かに応じて、デバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する。具体的には、判定部113は、メインの制御サーバ31(32)から第2PLCフレームを受信した後、新たに第2PLCフレームを受信せずに基準時間を経過すると、デバイスサーバ1、2の接続先を切り替えると判定する。
切替通知部114は、デバイスサーバ2に対して、接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるよう通知する切替通知フレームを、ネットワーク7を介して送信する。具体的には、切替通知部114は、判定部113によりデバイスサーバ1、2の接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えると判定されると、切替通知フレームを送信する。
次に、本実施の形態に係る通信制御システム1000の動作を図5乃至図7を参照しながら説明する。ここでは、通信制御システム1000の初期状態において、制御サーバ31がメインの制御サーバ、制御サーバ32がサブの制御サーバとして動作しているものとして説明する。なお、図5乃至図7では、搬送台車制御装置4からデバイスサーバ2へ送信される第1制御応答フレーム、PLC6からデバイスサーバ1へ送信される第1PLC応答フレームの授受については図示を省略している。また、デバイスサーバ1から制御サーバ31、32へ送信される第2制御応答フレーム、デバイスサーバ2から制御サーバ31、32へ送信される第2PLC応答フレームの授受についても図示を省略している。図5において、まず、第2制御フレームが、メインの制御サーバ31からデバイスサーバ2へ送信されると(ステップS1)、デバイスサーバ2は、第2制御フレームを第1制御フレームに変換して、搬送台車制御装置4へ出力する(ステップS2)。また、第2PLCフレームが、メインの制御サーバ31からデバイスサーバ1へ送信されると(ステップS3)、デバイスサーバ1は、第2PLCフレームを第1PLCフレームに変換して、PLC6へ出力する(ステップS4)。そして、デバイスサーバ1が、第1PLCフレームに含まれるライフカウンタ情報の示すカウント値が経時的に変化していると判定する限り、ステップS1乃至S4の処理が繰り返し実行される。ここにおいて、図6(A)の破線で示すように、メインの制御サーバ31において、デバイスドライバ313から出力される第1制御フレームは、第1変換部316により第2制御フレームに変換されてデバイスサーバ2の第2変換部211へ送信される。そして、第2変換部211は、制御サーバ31から受信した第2制御フレームを第1制御フレームに変換して搬送台車制御装置4へ出力する。また、図6(A)の一点鎖線で示すように、メインの制御サーバ31において、デバイスドライバ313から出力される第1PLCフレームは、第1変換部316により第2PLCフレームに変換されてデバイスサーバ1の第2変換部111へ送信される。そして、第2変換部111は、制御サーバ31から受信した第2PLCフレームを第1PLCフレームに変換してPLC6へ出力する。
図5に戻って、その後、第2PLCフレームが、制御サーバ31からデバイスサーバ1へ送信され(ステップS5)、デバイスサーバ1が、第2PLCフレームを第1PLCフレームに変換したとする(ステップS6)。このとき、デバイスサーバ1が、第1PLCフレームに含まれるライフカウンタ情報のカウント値が一定であると判定したとする(ステップS7)。この場合、メインの制御サーバを制御サーバ31から制御サーバ32へ切り替えるよう指令するための切替通知フレームが、デバイスサーバ1からデバイスサーバ2へ送信される(ステップS8)。その後、デバイスサーバ1は、その接続先をメインの制御サーバ31をサブの制御サーバ32へ切り替える切替処理を実行する(ステップS9)。また、デバイスサーバ2も、デバイスサーバ1から切替通知フレームを受信すると、その接続先をメインの制御サーバ31からサブの制御サーバ32へ切り替える切替処理を実行する(ステップS10)。以後、制御サーバ32がメインの制御サーバとなり、制御サーバ31がサブの制御サーバとなる。
そして、第2制御フレームが、制御サーバ32からデバイスサーバ2へ送信されると(ステップS11)、デバイスサーバ2は、第2制御フレームを第1制御フレームに変換して搬送台車制御装置4へ出力する(ステップS12)。また、第2PLCフレームが、制御サーバ32からデバイスサーバ1へ送信されると(ステップS13)、デバイスサーバ1は、第2PLCフレームを第1PLCフレームに変換してPLC6へ出力する(ステップS14)。ここにおいて、図6(B)の破線で示すように、メインの制御サーバ32において、デバイスドライバ323から出力される第1制御フレームは、第1変換部326により第2制御フレームに変換されてデバイスサーバ2の第2変換部211へ送信される。そして、第2変換部211は、制御サーバ32から受信した第2制御フレームを第1制御フレームに変換して搬送台車制御装置4へ出力する。また、図6(B)の一点鎖線で示すように、メインの制御サーバ32において、デバイスドライバ323から出力される第1PLCフレームは、第1変換部326により第2PLCフレームに変換されてデバイスサーバ1の第2変換部111へ送信される。そして、第2変換部111は、制御サーバ32から受信した第2PLCフレームを第1PLCフレームに変換してPLC6へ出力する。
再び図5に戻って、第2PLCフレームが、制御サーバ32からデバイスサーバ1へ送信され(ステップS15)、デバイスサーバ1が、第2PLCフレームを第1PLCフレームに変換したとする(ステップS16)。このとき、デバイスサーバ1が、当該第1PLCフレームに含まれるメイン制御サーバ識別情報が変更されたと判定したとする(ステップS17)。この場合、メインの制御サーバ32をサブの制御サーバ31へ切り替えるよう指令する切替通知フレームが、デバイスサーバ1からデバイスサーバ2へ送信される(ステップS18)。その後、デバイスサーバ1は、その接続先をメインの制御サーバ32をサブの制御サーバ31へ切り替える切替処理を実行する(ステップS19)。また、デバイスサーバ2も、その接続先をデバイスサーバ1から切替通知フレームを受信すると、メインの制御サーバ32をサブの制御サーバ31へ切り替える切替処理を実行する(ステップS20)。
通信制御システム1000のその後の動作は図7に記載される。第2制御フレームが、制御サーバ31からデバイスサーバ2へ送信されると(ステップS21)、デバイスサーバ2は、第2制御フレームを第1制御フレームに変換して搬送台車制御装置4へ出力する(ステップS22)。また、第2PLCフレームが、制御サーバ31からデバイスサーバ1へ送信されると(ステップS23)、デバイスサーバ1は、第2PLCフレームを第1PLCフレームに変換してPLC6へ出力する(ステップS24)。
また、第2PLCフレームが、制御サーバ31からデバイスサーバ1へ送信された後(ステップS25)、デバイスサーバ1が、基準時間△Tだけ経過したと判定したとする(ステップS26)。この場合、メインの制御サーバを制御サーバ31から制御サーバ32へ切り替えるよう指令するための切替通知フレームが、デバイスサーバ1からデバイスサーバ2へ送信される(ステップS27)。その後、デバイスサーバ1は、その接続先をメインの制御サーバ31からサブの制御サーバ32へ切り替える切替処理を実行する(ステップS28)。また、デバイスサーバ2も、デバイスサーバ1から切替通知フレームを受信すると、その接続先をメインの制御サーバ31からサブの制御サーバ32へ切り替える切替処理を実行する(ステップS29)。
そして、第2制御フレームが、制御サーバ32からデバイスサーバ2へ送信されると(ステップS30)、デバイスサーバ2は、第2制御フレームを第1制御フレームに変換して搬送台車制御装置4へ出力する(ステップS31)。また、第2PLCフレームが、制御サーバ32からデバイスサーバ1へ送信されると(ステップS32)、デバイスサーバ1は、第2PLCフレームを第1PLCフレームに変換してPLC6へ出力する(ステップS33)。
このように、本実施の形態に係る通信制御システム1000では、デバイスサーバ1が、第1PLCフレームに含まれるライフカウンタ情報の示すカウント値が時間に関わらず一定であると判定すると、メインの制御サーバが2つの制御サーバ31、32のうちのいずれか一方から他方へ切り替わる。また、デバイスサーバ1が、メインの制御サーバにおいて制御サーバ切替指令がなされたと判定すると、メインの制御サーバが2つの制御サーバ31、32のうちのいずれか一方から他方へ切り替わる。更に、デバイスサーバ1が、第2PLCフレーム受信後の経過時間が基準時間に到達したと判定すると、メインの制御サーバが2つの制御サーバ31、32のうちのいずれか一方から他方へ切り替わる。
次に、本実施の形態に係るデバイスサーバ1が実行する第1通信制御処理について図8を参照しながら説明する。この第1通信制御処理は、デバイスサーバ1に電源が投入されたことを契機として開始される。まず、第2変換部111がメインの制御サーバから第2PLCフレームを受信すると(ステップS101)、計時部115は、第2PLCフレーム受信後の経過時間の計時を開始する(ステップS102)。次に、第2変換部111は、第2PLCフレームを第1PLCフレームへ変換してPLC6へ出力する(ステップS103)。
続いて、判定部113は、第1PLCフレームからライフカウンタ情報とメイン制御サーバ識別情報とを抽出して(ステップS104)、カウンタ情報・識別情報記憶部121に記憶させる(ステップS105)。その後、判定部113は、カウンタ情報・識別情報記憶部121が記憶するライフカウンタ情報の履歴に基づいて、ライフカウンタ情報のカウント値が時間に依らず一定であるか否かを判定する(ステップS106)。判定部113によりライフカウンタ情報のカウント値が時間に依らず一定であると判定されると(ステップS106:Yes)、後述のステップS110の処理が実行される。
一方、判定部113が、ライフカウンタ情報のカウント値が経時的に変化していると判定したとする(ステップS106:No)。この場合、判定部113は、カウンタ情報・識別情報記憶部121が記憶するメインの制御サーバの制御サーバ識別情報が変更されたか否かに基づいて、メインの制御サーバの設定が変更されたか否かを判定する(ステップS107)。判定部113によりメインの制御サーバの設定が変更されたと判定されると(ステップS107:Yes)、後述のステップS110の処理が実行される。
一方、判定部113が、メインの制御サーバの設定が変更されていないと判定すると(ステップS107:No)、第2変換部111は、新たに第2PLCフレームを受信したか否かを判定する(ステップS108)。第2変換部111が、第2PLCフレームを受信したと判定すると(ステップS108:Yes)、再びステップS102の処理が実行される。このとき、計時部115は、第2PLCフレーム受信後の経過時間を初期値にリセットする。
一方、第2変換部111が、第2PLCフレームを受信していないと判定すると(ステップS108:No)、判定部113は、計時部115が計時する第2PLCフレーム受信後の経過時間が予め設定された基準時間に到達したか否かを判定する(ステップS109)。判定部113により第2PLCフレーム受信後の経過時間が予め設定された基準時間に到達していないと判定されると(ステップS109:No)、再びステップS108の処理が実行される。
一方、判定部113により第2PLCフレーム受信後の経過時間が予め設定された基準時間に到達したと判定されると(ステップS109:Yes)、切替通知部114は、デバイスサーバ2宛てに切替通知フレームを送信する(ステップS110)。その後、第2変換部111は、受信する第2制御フレームおよび第2PLCフレームの送信元を、2つの制御サーバ31、32のうちサブの制御サーバとして動作している方へ切り替える切替処理を実行する(ステップS111)。このとき、デバイスサーバ2の第2変換部211も、切替通知フレームを受信すると、受信する第2制御フレームおよび第2PLCフレームの送信元を、2つの制御サーバ31、32のうちサブの制御サーバとして動作している方へ切り替える切替処理を実行する。その後、再びステップS101の処理が実行される。
以上説明したように、本実施の形態に係る通信制御システム1000によれば、2つの制御サーバ31、32がネットワーク7に接続されている。また、搬送台車制御装置4に接続されたデバイスサーバ2とPLC6に接続されたデバイスサーバ1とが、ネットワーク7を介してメインの制御サーバ31(32)に接続されている。そして、判定部113が、第2PLCフレームの受信状況または第1PLCフレームの内容を監視し、デバイスサーバ1、2の接続先を制御サーバ31(32)から制御サーバ32(31)へ切り替えるか否かを判定する。また、切替通知部114は、デバイスサーバ1、2の接続先を制御サーバ31(32)から制御サーバ32(31)へ切り替えると判定されると、切替通知を、ネットワークを介してデバイスサーバ2へ送信する。このようにして、デバイスサーバ1、2に接続された搬送台車制御装置4およびPLC6と通信する制御サーバ31、32の切替が、ネットワーク7を介して実行される。従って、制御サーバ31、32の設置場所は、デバイスサーバ1、2とネットワーク7を介して接続可能であれば制限されないので、通信制御システム1000の設置場所の自由度が広がるという利点がある。また、搬送台車制御装置4およびPLC6の接続先となる制御サーバ31、32を切り替えるための切替器が不要となるので、その分、通信制御システム1000の小規模化を図ることができる。
また、本実施の形態では、第1PLCフレームが、ライフカウンタ情報を含んでいる。そして、カウンタ更新部314、324は、第1PLCフレームをデバイスサーバ1、2へ送信する毎に、送信する第1PLCフレームに含まれるライフカウンタ情報が示すカウント値を、「1」だけインクリメントさせる形で更新する。判定部113は、メインの制御サーバ31(32)から受信した第2PLCフレームのライフカウンタ情報の履歴に基づいて、メインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する。これにより、メインの制御サーバ31(32)における障害発生の有無を比較的早期に検知できるので、搬送台車制御装置4およびPLC6の動作不良の発生が抑制される。
更に、本実施の形態に係る制御サーバ31、32は、第2PLCフレームをデバイスサーバ1,2へ予め設定された基準時間以内の時間間隔で送信する。判定部113は、メインの制御サーバ31(32)から第2PLCフレームを受信した後、基準時間以内に新たな第2PLCフレームを受信するか否かに応じて、メインの制御サーバ31(32)をサブの制御サーバ32(31)へ切り替えるか否かを判定する。これにより、メインの制御サーバ31(32)とデバイスサーバ1、2との間での通信経路で障害が発生したことに起因して搬送台車制御装置4およびPLC6が停止した状態で長時間放置されることを抑制できる。
また、本実施の形態では、第1PLCフレームが、デバイスサーバ1、2の接続先となる制御サーバ31(32)を識別するメイン制御サーバ識別情報を含んでいる。また、制御サーバ31、32は、それぞれ、メイン制御サーバ識別情報を設定する接続先設定部325を有する。判定部113は、第1PLCフレームに含まれるメイン制御サーバ識別情報に基づいて、デバイスサーバ1、2の接続先をメインの制御サーバ31からサブの制御サーバ32へ切り替えるか否かを判定する。これにより、ユーザがメインの制御サーバ31、32を自由に変更することができるので、通信制御システム1000の運用方法のバリエーションが広がるという利点がある。
(実施の形態2)
本実施の形態に係る通信制御システム2000は、2つのデバイスサーバ2001、2002が、それぞれ監視デバイスサーバとして動作可能である点で実施の形態1に係る通信制御システム1000と相違する。本実施の形態に係る通信制御システム2000では、図9に示すように、制御サーバ2031、2032が、監視デバイスサーバ選定部2317、2327を備える。また、デバイスサーバ2001、2002の両方が、いずれも判定部2113、2213と切替通知部114、214と監視デバイスサーバ通知部2115、2215とを備える。なお、図9において、実施の形態1と同様の構成については、図3と同一の符号を付している。本実施の形態に係る第1制御フレームは、少なくとも、制御サーバ識別情報とライフカウンタ情報とを含む。ライフカウンタ情報は、制御サーバ2031、2032から搬送台車制御装置4へ送信される第1制御フレームのみに含まれる。
監視デバイスサーバ選定部2317、2327は、デバイスサーバ2001、2002の中から監視デバイスサーバとして動作するデバイスサーバを1つ選定する。そして、監視デバイスサーバ選定部2317、2327は、選定したデバイスサーバ2001(2002)のデバイスサーバ識別情報(第1デバイスサーバ識別情報)を生成してPLC制御部312、322へ出力する。監視デバイスサーバ選定部2317、2327は、監視デバイスサーバの選定および選定したデバイスサーバ2001(2002)のデバイスサーバ識別情報の生成を行う。PLC制御部312、322は、監視デバイスサーバ選定部2317、2327からデバイスサーバ識別情報が入力されると、制御情報にデバイスサーバ識別情報を含ませる。
判定部2113は、実施の形態1で説明した判定部113が有する機能の他に、第1PLCフレームに含まれるデバイスサーバ識別情報とデバイスサーバ2001に付与されたデバイスサーバ識別情報(第2デバイスサーバ識別情報)とが一致しているか否かを判定する機能を有する。
判定部2213は、判定部2113の有する機能と同様である。すなわち判定部2213は、第1制御フレームに含まれるライフカウンタ情報の示すカウント値が経時的に変化しているか否かを判定する。また、判定部2213は、第1制御フレームに含まれるメイン制御サーバ識別情報が変更されたか否かを判定する。更に、判定部2213は、計時部215により計時される経過時間が予め設定された基準時間に到達したか否かを判定する。また、判定部2213は、第1制御フレームに含まれるデバイスサーバ識別情報とデバイスサーバ2002のデバイスサーバ識別情報とが一致しているか否かを判定する機能を有する。
切替通知部214は、実施の形態1で説明した切替通知部114が有する機能と同様であり、デバイスサーバ2001へメインの制御サーバを切り替えるよう通知する切替通知フレームを送信する。
監視デバイスサーバ通知部2115、2215は、デバイスサーバ2001(2002)が監視デバイスサーバとして動作する場合、監視デバイスサーバとして動作する旨を通知する監視デバイスサーバ通知フレームを他のデバイスサーバ2002(2001)へ送信する。具体的には、デバイスサーバ2001の監視デバイスサーバ通知部2115は、判定部2113により第1PLCフレームに含まれるデバイスサーバ識別情報とデバイスサーバ2001のデバイスサーバ識別情報とが一致していると判定されると、デバイスサーバ2002へ監視デバイスサーバ通知フレームを送信する。また、デバイスサーバ2002の監視デバイスサーバ通知部2215は、判定部2213により第1制御フレームに含まれるデバイスサーバ識別情報とデバイスサーバ2002のデバイスサーバ識別情報とが一致していると判定されると、デバイスサーバ2001へ監視デバイスサーバ通知フレームを送信する。デバイスサーバ2002(2001)は、監視デバイスサーバ通知を受信すると、判定部2213(2113)、切替通知部214(114)および監視デバイスサーバ通知部2215(2115)の動作を停止させる。
また、デバイスサーバ2001の監視デバイスサーバ通知部2115は、判定部2113により第1PLCフレームに含まれるデバイスサーバ識別情報とデバイスサーバ2001のデバイスサーバ識別情報とが不一致と判定されると、第1PLCフレームに含まれるデバイスサーバ識別情報が付与されたデバイスサーバ(すなわち今の例ではデバイスサーバ2002)へ監視デバイスサーバを変更する旨を通知する監視デバイスサーバ変更通知フレームを送信する。更に、デバイスサーバ2002の監視デバイスサーバ通知部2215は、判定部2213により第1制御フレームに含まれるデバイスサーバ識別情報とデバイスサーバ2002のデバイスサーバ識別情報とが不一致と判定されると、第1制御フレームに含まれるデバイスサーバ識別情報が付与されたデバイスサーバ(すなわち今の例ではデバイスサーバ2001)へ監視デバイスサーバ変更通知フレームを送信する。そして、デバイスサーバ2002(2001)は、監視デバイスサーバ変更通知フレームを受信すると、判定部2213(2113)、切替通知部214(114)、監視デバイスサーバ通知部2215(2115)および計時部215(115)を起動する。
次に、本実施の形態に係る通信制御システム2000の動作について図10を参照しながら説明する。ここでは、通信制御システム2000の初期状態において、制御サーバ2031がメインの制御サーバ、制御サーバ2032がサブの制御サーバとして動作しているものとして説明する。また、初期状態において、デバイスサーバ2001、2002の両方において、判定部2113、2213と切替通知部114、214と監視デバイスサーバ通知部2115、2215と計時部115、215とが動作しているものとする。なお、図10では、搬送台車制御装置4からデバイスサーバ2002へ送信される第1制御応答フレーム、PLC6からデバイスサーバ2001へ送信される第1PLC応答フレームの授受については図示を省略している。また、デバイスサーバ2001から制御サーバ2031、2032へ送信される第2制御応答フレーム、デバイスサーバ2002から制御サーバ2031、2032へ送信される第2PLC応答フレームの授受についても図示を省略している。
まず、第2制御フレームが、メインの制御サーバ2031からデバイスサーバ2002へ送信されると(ステップS51)、デバイスサーバ2002は、第2制御フレームを第1制御フレームに変換して、搬送台車制御装置4へ出力する(ステップS52)。また、第2PLCフレームが、メインの制御サーバ2031からデバイスサーバ2001へ送信されると(ステップS53)、デバイスサーバ2001は、第2PLCフレームを第1PLCフレームに変換して、PLC6へ出力する(ステップS54)。
図10の前半では、デバイスサーバ2002が監視デバイスサーバとして指定されるとして説明を行う。デバイスサーバ2002が、第1制御フレームに含まれるデバイスサーバ識別情報が自装置のデバイスサーバ識別情報と一致すると判定したとする(ステップS55)。この場合、デバイスサーバ2002が監視デバイスサーバとして動作する旨を通知する監視デバイスサーバ通知フレームが、デバイスサーバ2002からデバイスサーバ2001へ送信される(ステップS56)。一方、デバイスサーバ2001は、デバイスサーバ2002から監視デバイスサーバ通知フレームを受信すると、判定部2113、切替通知部114、監視デバイスサーバ通知部2115および計時部115を停止する(ステップS57)。
図10の後半は、監視デバイスサーバがデバイスサーバ2002から2001に切り替わる際の通信制御システム2000の動作である。デバイスサーバ2001のデバイスサーバ識別情報を含む第2制御フレームが、メインの制御サーバ2031からデバイスサーバ2002へ送信されたとする(ステップS58)。この場合、デバイスサーバ2002は、第2制御フレームを第1制御フレームに変換して、搬送台車制御装置4へ出力する(ステップS59)。また、デバイスサーバ2001のデバイスサーバ識別情報を含む第2PLCフレームが、メインの制御サーバ2031からデバイスサーバ2001へ送信されたとする(ステップS60)。この場合、デバイスサーバ2001は、第2PLCフレームを第1PLCフレームに変換して、PLC6へ出力する(ステップS61)。ここにおいて、デバイスサーバ2001は、判定部2113が停止しているので、第1PLCフレームに含まれるデバイスサーバ識別情報とデバイスサーバ2001のデバイスサーバ識別情報とが一致しているか否かの判定を実行しない。
一方、デバイスサーバ2002では、判定部2213が、第1制御フレームに含まれるデバイスサーバ識別情報が自装置のデバイスサーバ識別情報と不一致であると判定する(ステップS62)。そうすると、監視デバイスサーバが変更される旨を通知する監視デバイスサーバ変更通知フレームが、デバイスサーバ2002から第1制御フレームに含まれるデバイスサーバ識別情報に対応するデバイスサーバ2001へ送信される(ステップS63)。
デバイスサーバ2001は、監視デバイスサーバ変更通知フレームをデバイスサーバ2002から受信すると、判定部2113、切替通知部114、監視デバイスサーバ通知部2115および計時部115を起動する(ステップS64)。次に、監視デバイスサーバ通知フレームが、デバイスサーバ2001からデバイスサーバ2002へ送信される(ステップS65)。
デバイスサーバ2002は、監視デバイスサーバ通知フレームを受信すると、判定部2213、切替通知部214、監視デバイスサーバ通知部2215および計時部215を停止させる(ステップS66)。
このように、本実施の形態に係る通信制御システム2000では、第1制御フレームおよび第1PLCフレームに含まれるデバイスサーバ識別情報に対応するデバイスサーバが、監視デバイスサーバとして動作する。そして、第1制御フレームおよび第1PLCフレームに含まれるデバイスサーバ識別情報が変更される毎に、監視デバイスサーバとして動作するデバイスサーバが変更される。
次に、本実施の形態に係るデバイスサーバ2001、2002が実行する通信制御処理について図11および図12を参照しながら説明する。この通信制御処理は、デバイスサーバ2001に電源が投入されたことを契機として開始される。まず、第2変換部211(111)がメインの制御サーバから第2制御フレーム(第2PLCフレーム)を受信したとする(ステップS201)。この場合、計時部215(115)は、第2制御フレーム(第2PLCフレーム)受信後の経過時間の計時を開始する(ステップS202)。次に、第2変換部211(111)は、第2制御フレーム(第2PLCフレーム)を第1制御フレーム(第1PLCフレーム)へ変換して搬送台車制御装置4(PLC6)へ出力する(ステップS203)。
続いて、判定部2213(2113)は、第1制御フレーム(第1PLCフレーム)からデバイスサーバ識別情報を抽出する(ステップS204)。その後、判定部2213(2113)は、第1制御フレーム(第1PLCフレーム)から抽出したデバイスサーバ識別情報と、デバイスサーバ2002(2001)のデバイスサーバ識別情報とが一致するか否かを判定する(ステップS205)。ここで、判定部2213(2113)が、第1制御フレーム(第1PLCフレーム)から抽出したデバイスサーバ識別情報と、デバイスサーバ2002(2001)のデバイスサーバ識別情報とが不一致と判定したとする(ステップS205:No)。この場合、図12に示すように、後述のステップS215の処理が実行される。
図11に戻って、一方、判定部2213(2113)が、第1制御フレーム(第1PLCフレーム)から抽出したデバイスサーバ識別情報と、デバイスサーバ2002(2001)のデバイスサーバ識別情報とが一致すると判定したとする(ステップS205:Yes)。この場合、監視デバイスサーバ通知部2215(2115)は、他方のデバイスサーバ2001(2002)へ監視デバイスサーバ通知フレームを送信する(ステップS206)。
次に、判定部2213(2113)は、第1制御フレーム(第1PLCフレーム)からライフカウンタ情報とメイン制御サーバ識別情報とを抽出して(ステップS207)、カウンタ情報・識別情報記憶部221(121)に記憶させる(ステップS208)。続いて、判定部2213(2113)は、ライフカウンタ情報のカウント値が時間に依らず一定であるか否かを判定する(ステップS209)。判定部2213(2113)によりライフカウンタ情報のカウント値が時間に依らず一定であると判定されると(ステップS209:Yes)、後述のステップS213の処理が実行される。
一方、判定部2213(2113)は、ライフカウンタ情報のカウント値が経時的に変化していると判定すると(ステップS209:No)、メインの制御サーバの設定が変更されたか否かを判定する(ステップS210)。判定部2213(2113)によりメインの制御サーバの設定が変更されたと判定されると(ステップS210:Yes)、後述のステップS213の処理が実行される。
一方、判定部2213(2113)が、メインの制御サーバの設定が変更されていないと判定すると(ステップS210:No)、第2変換部211(111)は、新たに第2制御フレーム(第2PLCフレーム)を受信したか否かを判定する(ステップS211)。第2変換部211(111)が、第2制御フレーム(第2PLCフレーム)を受信したと判定すると(ステップS211:Yes)、再びステップS202の処理が実行される。
一方、第2変換部211(111)が、第2制御フレーム(第2PLCフレーム)を受信していないと判定したとする(ステップS211:No)。この場合、判定部2213(2113)は、計時部215(115)が計時する第2制御フレーム(第2PLCフレーム)受信後の経過時間が予め設定された基準時間に到達したか否かを判定する(ステップS212)。判定部2213(2113)により第2制御フレーム(第2PLCフレーム)受信後の経過時間が予め設定された基準時間に到達していないと判定されると(ステップS212:No)、再びステップS211の処理が実行される。
一方、判定部2213(2113)により第2制御フレーム(第2PLCフレーム)受信後の経過時間が基準時間に到達したと判定されると(ステップS212:Yes)、切替通知部214(114)は、デバイスサーバ2001(2002)宛てに切替通知フレームを送信する(ステップS213)。その後、第2変換部211(111)は、受信する第2制御フレームおよび第2PLCフレームの送信元を、2つの制御サーバ2031、2032のうちサブの制御サーバとして動作している方へ切り替える切替処理を実行する(ステップS214)。このとき、デバイスサーバ2001(2002)の第2変換部111(211)も、切替通知フレームを受信すると、受信する第2制御フレームおよび第2PLCフレームの送信元を、2つの制御サーバ2031、2032のうちサブの制御サーバとして動作している方へ切り替える切替処理を実行する。
また、ステップS205において、判定部2213(2113)が、第1制御フレーム(第1PLCフレーム)から抽出したデバイスサーバ識別情報と、デバイスサーバ2002(2001)のデバイスサーバ識別情報とが不一致と判定したとする(ステップS205:No)。この場合、図12に示すように、監視デバイスサーバ通知部2215(2115)は、第1制御フレーム(第1PLCフレーム)に含まれるデバイスサーバ識別情報に対応するデバイスサーバ2001(2002)宛てに監視デバイスサーバ変更通知フレームを送信する(ステップS215)。その後、判定部2213(2113)、切替通知部214(114)、監視デバイスサーバ通知部2215(2115)および計時部215(115)は、停止する(ステップS216)。
次に、第2変換部211(111)は、第2制御フレーム(第2PLCフレーム)を受信したか否かを判定する(ステップS217)。第2変換部211(111)が、第2制御フレーム(第2PLCフレーム)を受信していないと判定すると(ステップS217:No)、後述のステップS219の処理が実行される。
一方、第2変換部211(111)は、第2制御フレーム(第2PLCフレーム)を受信したと判定すると(ステップS217:Yes)、第2制御フレーム(第2PLCフレーム)を第1制御フレーム(第1PLCフレーム)へ変換して搬送台車制御装置4(PLC6)へ出力する(ステップS218)。
続いて、第2変換部211(111)は、監視デバイスサーバ変更通知フレームを受信したか否かを判定する(ステップS219)。第2変換部211(111)により、監視デバイスサーバ変更通知フレームを受信していないと判定されると(ステップS219:No)、再びステップS217の処理が実行される。一方、第2変換部211(111)により、監視デバイスサーバ変更通知フレームを受信したと判定されると(ステップS219:Yes)、判定部2213(2113)、切替通知部214(114)、監視デバイスサーバ通知部2215(2115)および計時部215(115)が、起動する(ステップS220)。その後、再びステップS211の処理が実行される。
以上説明したように、本実施の形態に係る通信制御システム2000では、デバイスサーバ2001、2002が、それぞれ監視デバイスサーバとして動作可能である。そして、デバイスサーバ2001、2002の両方が、判定部2113、2213と、切替通知部114、214と、監視デバイスサーバ通知部2115、2215と、を有する。ここで、デバイスサーバ2001(2002)が監視デバイスサーバとして動作するとする。この場合、デバイスサーバ2002(2001)は、監視デバイスサーバ通知フレームを受信すると、判定部2213(2113)、切替通知部214(114)、監視デバイスサーバ通知部2215(2115)および計時部215(115)の動作を停止させる。これにより、2つのデバイスサーバ2001、2002のうち任意に選択したいずれか一方を監視デバイスサーバとして動作させることができるので、通信制御システム2000の運用方法のバリエーションが広がるという利点がある。
また、本実施の形態に係る通信制御システム2000では、監視デバイスサーバ選定部2317、2327が、デバイスサーバ2001、2002の中から監視デバイスサーバとして動作するデバイスサーバ2001(2002)を1つ選定する。そして、監視デバイスサーバ選定部2317、2327が、選定したデバイスサーバ2001(2002)のデバイスサーバ識別情報である監視デバイスサーバ識別情報を生成してデバイスサーバ2001、2002へ送信する。そして、デバイスサーバ2001(2002)の判定部2113(2213)は、監視デバイスサーバ識別情報と自装置に付与されたデバイスサーバ識別情報とが一致するか否かを判定する。また、監視デバイスサーバ通知部2115(2215)は、不一致と判定すると監視デバイスサーバ識別情報が付与されたデバイスサーバ2002へ監視デバイスサーバ変更通知フレームを送信する。そうすると、デバイスサーバ2002は、監視デバイスサーバ変更通知フレームを受信すると、判定部2213、切替通知部214、監視デバイスサーバ通知部2215および計時部215を起動する。これにより、1つのデバイスサーバ2001を監視デバイスサーバとして運用を開始した後、他のデバイスサーバ2002を監視デバイスサーバに変更することができるので、通信制御システム2000の運用方法のバリエーションを広げることができる。
(変形例)
以上、本発明の各実施の形態について説明したが、本発明は前述の各実施の形態の構成に限定されるものではない。例えば、3つ以上のデバイスサーバを備える通信制御システムであってもよい。例えば図13に示すように、2つ以上の搬送台車制御装置4それぞれに接続されたデバイスサーバ2(N台)と、1つのPLC6に接続されたデバイスサーバ1と、を備える通信制御システム3000であってもよい。なお、図13において、実施の形態1と同様の構成については、図3と同一の符号を付している。この場合、PLC6に接続されたデバイスサーバ1が、監視デバイスサーバとして動作し、搬送台車制御装置4に接続された複数のデバイスサーバ2が受信する第2制御フレームの送信元となる制御サーバ31(32)へ適宜切替通知フレームを送信するようにしてもよい。
或いは、図14に示すように、2つ以上の搬送台車制御装置4それぞれに接続されたデバイスサーバ2002(N台)と、1つのPLC6に接続されたデバイスサーバ2001と、を備える通信制御システム4000であってもよい。なお、図14において、実施の形態2と同様の構成については、図9と同一の符号を付している。この場合、制御サーバ2031、2032のうちメインの制御サーバとして動作する一方により第1制御フレームまたは第1PLCフレームに設定されるデバイスサーバ識別情報に応じて、複数のデバイスサーバ2001、2002のうちのいずれか1つが監視デバイスサーバとして動作するようにしてもよい。この場合、監視デバイスサーバ通知部2115、2215は、デバイスサーバ2001(2002)が監視デバイスサーバとして動作する場合、監視デバイスサーバ通知フレームを他のデバイスサーバ2001、2002へブロードキャスト送信する。
各実施の形態では、監視デバイスサーバが、第1制御フレームまたは第1PLCフレームに含まれるメイン制御サーバ識別情報またはライフカウンタ情報に基づいて、メインの制御サーバを切り替える切替処理を実行する例について説明した。但し、これに限らず、例えば、監視デバイスサーバとして動作するデバイスサーバ1が、PLC6から受信する、第1PLCフレームに対する第1PLC応答フレーム(応答情報)に含まれる制御情報に基づいて、各デバイスサーバの接続先をメインの制御サーバ31(32)からサブの制御サーバ32(31)へ切り替えるか否かを判定する構成であってもよい。この場合、PLC6から送信される第1PLC応答フレームが、デバイスサーバ1、2の接続先となる制御サーバ31(32)を識別するメイン制御サーバ識別情報を含む。そして、判定部113は、PLC6から受信する第1PLC応答フレームに含まれるメイン制御サーバ識別情報に基づいて、デバイスサーバ1、2の接続先を制御サーバ31(32)から制御サーバ32(31)へ切り替えるか否かを判定する構成とすればよい。
或いは、監視デバイスサーバとして動作するデバイスサーバ2002が、搬送台車制御装置4から受信する、第1制御フレームに対する第1制御応答フレーム(応答情報)に含まれる制御情報に基づいて、各デバイスサーバの接続先をメインの制御サーバ2031(2032)からサブの制御サーバ2032(2031)へ切り替えるか否かを判定する構成であってもよい。この場合、搬送台車制御装置4から送信される第1制御応答フレームは、デバイスサーバ2001、2002の接続先となる制御サーバ2031(2032)を識別するメイン制御サーバ識別情報を含む。そして、判定部2213は、搬送台車制御装置4から受信する第1制御応答フレームに含まれるメイン制御サーバ識別情報に基づいて、デバイスサーバ2001、2002の接続先を制御サーバ2031(2032)から制御サーバ2032(2031)へ切り替えるか否かを判定する構成とすればよい。
各実施の形態に係る通信制御システム1000、2000では、2つの制御サーバ31、32(2031、2032)を備える構成について説明したが、これに限定されず、例えば3つ以上の制御サーバを備える構成であってもよい。この場合、複数のデバイスサーバは、それぞれ3つ以上の制御サーバの中から選択された1つの制御サーバに接続されるようにすればよい。
各実施の形態では、カウンタ更新部314、324が、第2PLCフレーム(第2制御フレーム)をデバイスサーバへ送信する毎に、ライフカウンタ情報が示すカウンタ値を、「1」だけインクリメントさせる形でライフカウンタ情報を更新する例について説明した。但し、これに限らず、例えば、カウンタ更新部314、324が、ライフカウンタ情報が示すカウント値を、「1」よりも大きい予め設定された値だけインクリメントさせる形でライフカウンタ情報を更新する構成であってもよい。或いは、カウンタ更新部314、324が、ライフカウンタ情報が示すカウント値を、デクリメントさせる形でライフカウンタ情報を更新する構成であってもよい。
各実施の形態では、ネットワーク7がイーサネットによる有線LANである例について説明したが、ネットワーク7はこれに限定されるものではなく、例えばIEEE802.11シリーズの規格に従った無線LAN部分を含む構成であってもよい。
各実施の形態において、制御サーバとデバイスサーバとは、TCP/IP、又はUDP/IPに準拠した上で両者間で取り決めた独自プロトコルに従って第2制御フレームおよび第2PLCフレームの送受信を実行するものであってもよい。
各実施の形態において、搬送台車制御装置4およびPLC6が、例えばUSB(Universal Serial Bus)通信I/Fを搭載した機器であってもよい。この場合、デバイスサーバは、第2制御フレームおよび第2PLCフレームをUSB規格に準拠したフレームに変換する機能を有するものであればよい。
なお、本発明に係るデバイスサーバの各種機能は、専用のシステムによらず、コンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な非一時的な記録媒体(CD−ROM等)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、前述の通信制御処理を実行するデバイスサーバ1、2を構成してもよい。
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線のサーバにアップロードされ、通信回線を介してコンピュータに配信されてもよい。そして、コンピュータは、このプログラムを起動して、OSの制御の下、他のアプリケーションと同様に実行する。これにより、コンピュータは、前述の通信制御処理を実行するデバイスサーバ1、2として機能する。
以上、本発明の実施の形態および変形例(なお書きに記載したものを含む。以下、同様。)について説明したが、本発明はこれらに限定されるものではない。本発明は、実施の形態および変形例が適宜組み合わされたもの、それに適宜変更が加えられたものを含む。