(57)【要約】      （修正有）【課題】制御システム用のアプリケーションプログラムのシステムデバッグの際に未接続のＩＯ機器があったとしても、システムデバッグを何ら問題なく遂行できるようにする。【解決手段】コントローラが接続される第１通信ＩＦ部１１０と、コントローラと通信するＩＯ機器が接続される第２通信ＩＦ部１２０と、第２通信ＩＦ部に接続されているＩＯ機器とコントローラとの間のデータ通信を中継する中継制御部１３０とを有するネットワーク装置１００に、以下の代替機器接続部１４０を設ける。代替機器接続部には、第２通信ＩＦ部に接続予定ではあるものの未接続のＩＯ機器の動作を模擬する代替機器が接続される。そして、中継制御部には、代替機器から受け取ったデータを接続予定のＩＯ機器からのデータとしてコントローラへ転送する一方、コントローラから接続予定のＩＯ機器宛てに送信されたデータを代替機器へ転送する処理を実行させる。【選択図】図２
2017142639.tif 000002
【特許請求の範囲】
【請求項１】
コントローラが接続される第１通信インタフェース部と、
前記コントローラの指令に基づき外部機器を制御する処理または前記コントローラに与えるデータを出力する処理を実行するＩＯ機器が接続される第２通信インタフェース部と、
前記第２通信インタフェース部に接続予定のＩＯ機器の動作を模擬する代替機器が接続される代替機器接続部と、
前記第１通信インタフェース部、前記第２通信インタフェース部、前記代替機器接続部に接続された中継制御部と、
を備え、
前記中継制御部は、
前記第２通信インタフェース部に接続されているＩＯ機器と前記第１通信インタフェース部に接続されているコントローラとの間のデータ通信を中継する第１中継処理と、
前記代替機器接続部に接続された代替機器から受け取ったデータを前記接続予定のＩＯ機器からのデータとして前記第１通信インタフェース部を介して前記コントローラへ転送する一方、前記第１通信インタフェース部に接続されたコントローラから前記接続予定のＩＯ機器宛てに送信されたデータを前記代替機器接続部を介して前記代替機器へ転送する第２中継処理と、を実行する
ことを特徴とするネットワーク装置。
【請求項２】
前記第２通信インタフェース部には、ネットワークを介してＩＯ機器が接続され、
前記中継制御部は、
前記ネットワークに接続される全てのＩＯ機器を示すネットワーク構成定義情報を参照して前記接続予定のＩＯ機器が前記第２通信インタフェース部に未接続であるか否かを判定し、未接続である場合に前記第２中継処理を実行する
ことを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
前記中継制御部は、
前記接続予定のＩＯ機器が前記ネットワークに未接続であっても、当該ＩＯ機器が接続されているものと見なして前記ネットワークへのＩＯ機器の接続状況を表すＲＡＳ情報を生成し前記第１通信インタフェース部に接続されたコントローラに与える
ことを特徴とする請求項２に記載のネットワーク装置。
【請求項４】
前記中継制御部は、
前記第１通信インタフェース部に接続されている前記コントローラが稼働系となっている場合には待機系となり、当該コントローラが待機系となる場合には稼働系となる他のコントローラとＩＯ機器とのデータ通信を中継する他のネットワーク装置に、ネットワーク装置間通信手段を介して接続され、
前記第２通信インタフェース部を介して受信したデータおよび前記代替機器接続部を介して受信したデータを、前記ネットワーク装置間通信手段を介した通信により等値化し、前記第１および第２中継処理では等値化済のデータを前記第１通信インタフェース部に接続されたコントローラへ転送する
ことを特徴とする請求項１〜３の何れか１項に記載のネットワーク装置。
【請求項５】
前記コントローラと前記他のコントローラは、コントローラ間通信手段を介して互いに接続され、
前記中継制御部は、
前記第１通信インタフェース部に接続されたコントローラからＩＯ機器へ宛てて送信されるデータの等値化を、前記コントローラ間通信手段を介した通信によりコントローラ側で行うのか、前記ネットワーク装置間通信手段を介した通信によりネットワーク装置側で行うのかを切り換える
ことを特徴とする請求項４に記載のネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工場や産業プラントなどの産業施設に敷設される制御システムに関する。
【背景技術】
【０００２】
制御システムとは、工作機器等の動力源として産業施設内に設置される電動機等の駆動制御など、産業施設における操業を支援するための通信システムである。制御システムには、電動機等に出力する電流等を調整してその駆動制御を行う駆動装置や電動機等の回転速度等を計測するセンサなどのＩＯ機器が多数含まれている。これらＩＯ機器はＩＯネットワークと呼ばれる通信ネットワークに接続されている。また、制御システムには、ＩＯ機器から収集したデータに基づいてＩＯ機器へ出力するデータの演算を行うコントローラと、当該コントローラとＩＯネットワークとに接続されたネットワーク装置と、が含まれている。ネットワーク装置とは、上記コントローラとＩＯ機器との間のデータ通信を中継する中継装置である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５９−２１６２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御システムに含まれるコントローラは例えばＰＬＣ（Pprogrammable Logic Controller）であり、予めインストールされたアプリケーションプログラムにしたがって上記演算する。コントローラがアプリケーションプログラムにしたがって実行する演算の一例としては、駆動装置等に与える指令値をセンサの計測データに基づいて算出する演算や、センサ等による計測データを当該計測データの監視を行う監視装置用に変換する演算等が挙げられる。このアプリケーションプログラムは、制御システムの用途、例えば制御システムの設置先の産業施設における操業の内容に応じて作成されることが一般的である。アプリケーションプログラムにバグがあると演算が正しく行われず、操業の停止等の不具合が発生する虞がある。このため、上記アプリケーションプログラムのデバッグを十分に行っておく必要がある。なお、バグとは、プログラムの誤りや欠陥のことであり、デバッグとは誤りや欠陥をテスト等により特定し修正することを言う。
【０００５】
プログラムのデバッグは、単体デバッグ→結合デバッグ→システムデバッグといった具合に段階的に行われることが一般的であり、コントローラ用のアプリケーションプログラムについても同様である。単体デバッグとは、プログラムを構成するサブルーチン等のソフトウェアモジュール単位でその論理構造を検証することであり、結合デバッグとは各ソフトウェアモジュールを結合した状態でのデバッグ、すなわち各ソフトウェアモジュールの連携に関するデバッグである。そして、システムデバッグとは、ＩＯ機器からの計測データの収集、ＩＯ機器への出力データの演算およびその出力データの出力先のＩＯ機器の動作といった一連の流れについてのデバッグである。
【０００６】
制御システムには一般に多種多様なＩＯ機器が多数含まれている。制御システムに含まれるＩＯ機器について納品の遅れが発生すると、アプリケーションプログラムのシステムデバッグの実行時点では当該納品の遅れたＩＯ機器は制御システムに接続されておらず、システムデバッグを限定的にしか行えないといった不具合が発生する。このような納品の遅れの発生要因としては、ＩＯ機器の製造の遅れや、新規開発されるＩＯ機器が制御システムの構成要素に含まれている場合にはその開発遅延が挙げられる。
【０００７】
本発明は上記課題に鑑みて為されたものであり、制御システム用のアプリケーションプログラムのシステムデバッグの際に未接続のＩＯ機器があったとしても、システムデバッグを何ら問題なく遂行できるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、以下の第１通信インタフェース部、第２通信インタフェース部、代替機器接続部および中継制御部を有するネットワーク装置を提供する。このネットワーク装置は、コントローラおよびＩＯ機器とともに制御システムを形成する中継装置である。第１通信インタフェース部にはコントローラが接続され、第２通信インタフェース部には当該コントローラの指令に基づき外部機器を制御する処理または当該コントローラに与えるデータを出力する処理を実行するＩＯ機器が接続される。代替機器接続部には、第２通信インタフェース部に接続予定のＩＯ機器、すなわち実際には未接続のＩＯ機器の動作を模擬する代替機器が接続される。そして、中継制御部は、以下の第１および第２中継処理を実行する。第１中継処理は、第２通信インタフェース部に実際に接続されているＩＯ機器と第１通信インタフェース部に接続されているコントローラとの間のデータ通信を中継する処理である。具体的には、第１中継処理では、中継制御部は、第２通信インタフェース部を介してＩＯ機器から受信したデータを第１通信インタフェース部を介してコントローラへ転送する一方、コントローラから何れかのＩＯ機器へ宛てて送信されたデータを第１通信インタフェース部を介して受信し、当該データを第２通信インタフェース部を介してその宛先のＩＯ機器へ転送する処理である。第２中継処理は、代替機器接続部を介して代替機器から受信したデータを上記接続予定のＩＯ機器からのデータとして第１通信インタフェース部に接続されたコントローラへ転送する一方、当該コントローラから上記接続予定のＩＯ機器へ宛てて送信されたデータを第１通信インタフェース部を介して受信し、当該データを代替機器接続部を介して上記代替機器へ転送する処理である。
【０００９】
このようなネットワーク装置を用いて制御システムを構築すれば、制御システムのコントローラ用のアプリケーションプログラムのシステムデバッグの際に、ネットワーク装置へ接続予定ではあるものの上記システムデバッグの実行時点では未接続のＩＯ機器があったとしても、当該未接続のＩＯ機器については代替機器を用い、実機のあるＩＯ機器についてはその実機を用いてシステムデバッグを行うことが可能になる。ネットワーク装置へ接続予定ではあるものの上記システムデバッグの実行時点では未接続のＩＯ機器の具体例としては、製造の遅れや開発遅延により納品遅延が発生したＩＯ機器が挙げられる。よって、本発明によれば、ＩＯ機器の納品遅延が発生したとしても、何ら問題なくシステムデバッグを遂行できる。
【００１０】
特許文献１には、プロセス入出力装置の入出力データの全てを模擬データテーブルを用いて模擬データに置き換える技術が開示されている。この特許文献１に開示の技術を応用し、コントローラの入出力データの全てを模擬データテーブルを用いて模擬データに置き換えてシステムデバッグを行うことで上記課題を解決できるかに見える。一般に、システムデバッグはシステムの実運用局面のシミュレーションといった性質を有しており、その性質上、できるだけ実機を用いてデバッグを行えることが好ましい。しかし、特許文献１に開示の技術ではコントローラの入出力データの一部だけを模擬データに置き換えること、換言すれば実機のあるＩＯ機器についてはその実機を用いてデバッグを行うことはできず、システムデバッグの意義を没却させる虞がある。つまり、特許文献１に開示の技術では上記課題を解決することはできず、本発明は特許文献１に開示の技術とは異なる技術である。
【００１１】
上記ネットワーク装置の第２通信インタフェース部へのＩＯ機器の接続態様としては、例えば通信線によりＩＯ機器を直接接続する態様や、ネットワークを介して間接的に接続する態様が考えられる。後者の具体例としては、ＩＯ機器をＩＯネットワークに接続しそのＩＯネットワークを第２通信インタフェース部に接続する態様が挙げられる。ＩＯ機器をネットワークを介して第２通信インタフェース部に接続する態様においては、ネットワークに接続予定のＩＯ機器が実際には未接続であっても、当該ＩＯ機器が接続されているものと見なしてＲＡＳ情報を生成しコントローラに与えるようにしても良い。ＲＡＳ情報とは、ネットワークへのＩＯ機器の接続状況を表す情報のことである。また、ＩＯ機器をネットワークを介して第２通信インタフェース部に接続する態様においては、ネットワークに接続される全てのＩＯ機器を示すネットワーク構成定義情報を参照して上記接続予定のＩＯ機器が未接続であるか否かを中継制御部に判定させ、未接続である場合に第２の中継処理を実行させるようにしても良い。
【００１２】
より好ましい態様においては、本発明のネットワーク装置の中継制御部は、第１通信インタフェース部に接続されているコントローラが稼働系となっている場合には待機系となり、当該コントローラが待機系となる場合には稼働系となる他のコントローラとＩＯ機器とのデータ通信を中継する他のネットワーク装置に、ネットワーク装置間通信手段を介して接続される。そして、中継制御部は、第２通信インタフェース部を介して受信したデータおよび代替機器接続部を介して受信したデータを、ネットワーク装置間通信手段を介した通信により等値化し、第１および第２の中継処理では等値化済のデータを第１通信インタフェース部を介してコントローラへ転送する。
【００１３】
このような態様のネットワーク装置によれば、制御システムに接続予定ではあるもののシステムデバッグの実行時点では未接続のＩＯ機器があったとしても、何ら問題なくシステムデバッグを遂行できるといった効果に加えて、以下の効果が奏される。コントローラを二重化し、一方を稼働系、他方を待機系として動作させる冗長化制御システムでは、稼働系の切り換え前後でコントローラからの出力データが突変することを避けるため、コントローラにおける演算の実行に先立って当該演算の入力データ、例えばＩＯ機器からコントローラへ送信されたデータの等値化が行われる。コントローラを二重化した従来の冗長化制御システムでは、このような等値化はコントローラにおいて行われることが一般的であった。しかし、制御システムに含まれるＩＯ機器の数が増加するにつれて等値化のための処理負荷が高くなり、稼働系と待機系の切り換えに遅延が発生するといった不具合が発生していた。これに対して、本態様のネットワーク装置によれば、ネットワーク装置を介してコントローラへ転送されるデータの等値化はネットワーク装置において行われるため、コントローラの処理負荷を軽減し、稼働系の切り換えを迅速に行うことが可能になる。
【００１４】
さらに好ましい態様においては、コントローラと上記他のコントローラはコントローラ間通信手段を介して互いに接続されており、中継制御部は、コントローラからＩＯ機器へ送信されるデータの等値化を、コントローラ間通信手段を介した通信によりコントローラ側で行うのか、ネットワーク装置間通信手段を介した通信によりネットワーク装置側で行うのかを切り換えることを特徴とする。このような態様によれば、コントローラからＩＯ機器へ送信されるデータの等値化については原則的にコントローラ側で行うものの、コントローラの処理負荷が予め定めた閾値を超えた場合には上記等値化をネットワーク装置側で行うように切り換えるといった具合に、コントローラの処理負荷をさらに軽減することができる。
【発明の効果】
【００１５】
以上説明したように本発明によれば、制御システム用のアプリケーションプログラムのシステムデバッグの際に未接続のＩＯ機器があったとしても、システムデバッグを何ら問題なく遂行できるようになる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるネットワーク装置１００Ａおよびネットワーク装置１００Ｂを含む通信システムの構成例を示す図である。
【図２】ネットワーク装置１００の構成例を示す図である。
【図３】ネットワーク装置１００に記憶されているシステム構成定義情報の一例を示す図である。
【図４】ネットワーク装置１００からコントローラ２００へ送信するＲＡＳ情報の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ本発明の実施形態について説明する。
図１は、本発明の一実施形態によるネットワーク装置１００Ａおよび１００Ｂを含む制御システムの構成例を示す図である。図１に示す制御システムは、コントローラが二重化された冗長化制御システムである。図１に示す制御システムは、コントローラ２００Ａおよび２００Ｂの２つのコントローラを有する。コントローラ２００Ａおよび２００Ｂの各々は例えばＰＬＣである。コントローラ２００Ａにはネットワーク装置１００Ａが接続されており、コントローラ２００Ｂにはネットワーク装置１００Ｂが接続されている。ネットワーク装置１００ＡにはＩＯネットワーク３００Ａが接続されており、ネットワーク装置１００ＢにはＩＯネットワーク３００Ｂが接続されている。ＩＯネットワーク３００Ａおよび３００Ｂには、ＩＯ機器（図１では、単に「ＩＯ」と表記）４００（ｎ：ｎ＝１〜Ｎ，Ｎは任意の自然数）が接続されている。なお、図１ではＮが３以上である場合について例示されている。
【００１８】
コントローラ２００Ａとコントローラ２００Ｂは等値化ケーブル５００（１）を介して互いに接続されており、ネットワーク装置１００Ａとネットワーク装置１００Ｂは等値化ケーブル５００（２）を介して互いに接続されている。等値化ケーブル５００（１）は、コントローラ２００Ａとコントローラ２００Ｂとの間のデータ通信を仲介するコントローラ間通信手段である。等値化ケーブル５００（２）は、ネットワーク装置１００Ａとネットワーク装置１００Ｂとの間のデータ通信を仲介するネットワーク装置間通信手段である。以下では、ネットワーク装置１００Ａとネットワーク装置１００Ｂの各々を区別する必要がない場合には、「ネットワーク装置１００」と表記する。同様に、コントローラ２００Ａとコントローラ２００Ｂを区別する必要がない場合には「コントローラ２００」と表記し、ＩＯネットワーク３００ＡとＩＯネットワーク３００Ｂを区別する必要がない場合には、「ＩＯネットワーク３００」と表記する。そして、ＩＯ機器４００（１）〜４００（Ｎ）の各々を区別する必要がない場合には「ＩＯ機器４００」と表記する。
【００１９】
図１に示す制御システムでは、コントローラ２００Ａが稼働系となり、コントローラ２００Ｂは待機系となって稼働系の停止に備える。具体的には、コントローラ２００Ｂは等値化ケーブル５００（１）を介した通信によりコントローラ２００Ａの稼働状況を監視し、コントローラ２００Ａが停止した場合或いは停止する場合には、以降、稼働系として振る舞う。なお、稼働系のコントローラの停止の具体例としては、何らかの故障や不具合の発生に起因する予期せぬ停止や、保守メンテナンス等による予め計画された停止などが考えられる。以下では、ネットワーク装置１００についても、稼働系として動作しているコントローラ２００に接続されている方を「稼働系のネットワーク装置」と呼び、他方を「待機系のネットワーク装置」と呼ぶ。
【００２０】
ＩＯ機器４００としては種々の機器が考えられる。例えば、産業施設内に設置された電動機の駆動制御を行う制御システムであれば、ＩＯ機器４００の具体例としては、電動機等の制御対象機器の駆動制御を行う駆動装置や、その駆動制御のための各種データを計測するセンサが挙げられる。コントローラ２００は、ＩＯ機器４００からの入力データを自身の接続先のネットワーク装置１００を介して収集し、他のＩＯ機器４００に与える出力データをアプリケーションプログラムにしたがって演算する。例えば、電動機等の駆動制御を行う制御システムであれば、コントローラ２００は、電動機の駆動制御を行う駆動装置に与える各種指令値を、電動機の回転速度を計測するセンサからの計測データに基づいて演算するといった具合である。
【００２１】
コントローラ２００は、上記の要領でＩＯ機器４００への出力データの演算を完了すると、当該出力データの等値化を行う。出力データの等値化とは、待機系にて算出された出力データを稼働系にて算出された出力データで上書きすることを言う。このような等値化を行うのは、稼働系の切り換えが発生したときにその切り換え前後で出力データの突変が発生することを避けるためである。出力データの等値化は、等値化ケーブル５００（１）を介した通信により実現される。
【００２２】
より詳細に説明すると、稼働系のコントローラは、自装置にて算出した出力データを等値化ケーブル５００（１）を介して待機系のコントローラへ送信する。一方、待機系のコントローラは自装置にて算出した出力データを、等値化ケーブルを介して受信した出力データで上書きし、上書きを完了すると等値化ケーブル５００（１）を介した通信により等値化完了を稼働系のコントローラへ通知する。稼働系のコントローラは、出力データの等値化完了を当該通知により検知すると、自装置にて算出した出力データ、すなわち等値化済の出力データを、自身の接続先のネットワーク装置を介して宛先となるＩＯ機器４００へ転送する。なお、本実施形態において稼働系のコントローラは、等値化完了の検知を契機としてＩＯ機器４００へのデータ転送を行うが、当該検知を待たずにＩＯ機器４００へのデータ転送を行っても勿論良い。
【００２３】
図１に示す制御システムでは、ＩＯ機器４００からコントローラ２００へ送信されるデータについても等値化が行われる。以下では、ＩＯ機器４００とコントローラ２００との間でネットワーク装置１００を介して送受信されるデータのことを「ＩＯデータ」と総称する場合がある。
【００２４】
本実施形態では、ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータの等値化はネットワーク装置１００で行われ、これは本実施形態の特徴の１つである。より詳細に説明すると、ネットワーク装置１００Ａとネットワーク装置１００Ｂのうち稼働系となっている方は、ＩＯ機器４００から受信したＩＯデータを等値化ケーブル５００（２）を介して他方へ送信し、他方のネットワーク装置は、ＩＯネットワーク経由で受信したＩＯデータを等値化ケーブル５００（２）経由で受信したＩＯデータで上書きする。そして、稼働系および待機系のネットワーク装置１００の各々は、上記の要領で等値化を完了すると、等値化済のＩＯデータを、接続先のコントローラ２００へ送信する。
【００２５】
ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータの等値化を行うのは、ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータに基づいて算出される出力データの突変を回避するためである。従来の冗長化制御システムでは、ＩＯ機器からコントローラへ送信されるＩＯデータの等値化もコントローラで行われていた。これに対して、本実施形態では、ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータの等値化はネットワーク装置１００で行われる。ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータの等値化をネットワーク装置１００で行うことで、従来の冗長化制御システムに比較してコントローラ２００の処理負荷が軽減され、稼働系の切り換え事象の発生時の切り換え時間を短縮することができる。
【００２６】
加えて、本実施形態では、ＩＯネットワーク３００に接続されるＩＯ機器４００（ｎ：ｎ＝１〜Ｎ）の何れかについての納品遅延が発生し、コントローラ２００のアプリケーションプログラムのシステムデバッグの実行時点でＩＯネットワーク３００に接続されていないといった事態が発生したとしても、当該システムデバックを何ら問題なく遂行できるようにネットワーク装置１００が構成されており、これも本実施形態の特徴の１つである。以下、本実施形態の特徴を顕著に示すネットワーク装置１００を中心に説明する。
【００２７】
図２は、ネットワーク装置１００の構成例を示すブロック図である。
図２に示すように、ネットワーク装置１００は、第１通信インタフェース部１１０、第２通信インタフェース部１２０、中継制御部１３０、および代替機器接続部１４０を有する。以下では、「インタフェース」を「ＩＦ」と略記する。以下、ネットワーク装置１００Ａとネットワーク装置１００Ｂの各々の構成要素を区別する必要がある場合には符号「Ａ」或いは「Ｂ」を付与して表記する。例えば、ネットワーク装置１００Ａの第１通信ＩＦ部１１０とネットワーク装置１００Ｂの第１通信ＩＦ部１１０とを区別する必要がある場合には、前者を「第１通信ＩＦ部１１０Ａ」と表記し、後者を「第１通信ＩＦ部１１０Ｂ」と表記する。第２通信ＩＦ部１２０、中継制御部１３０、および代替機器接続部１４０の各々についても同様である。
【００２８】
第１通信ＩＦ部１１０と第２通信ＩＦ部１２０は何れもＮＩＣ（Network Interface Card）であり、通信線を介して各々異なる接続先に接続されている。具体的には、第１通信ＩＦ部１１０はコントローラ２００に接続されており、第２通信ＩＦ部１２０はＩＯネットワーク３００に接続されている。より詳細に説明すると、第１通信ＩＦ部１１０Ａはコントローラ２００Ａに接続されており、第１通信ＩＦ部１１０Ｂはコントローラ２００Ｂに接続されている。同様に、第２通信ＩＦ部１２０ＡはＩＯネットワーク３００Ａに接続されており、第２通信ＩＦ部１２０ＢはＩＯネットワーク３００Ｂに接続されている。図２では詳細な図示を省略したが、第１通信ＩＦ部１１０と第２通信ＩＦ部１２０の各々は通信バッファを有している。以下では、これら２つの通信バッファを区別するため、前者を「コントローラ側ＩＯ領域」と表記し、後者を「ネットワーク側ＩＯ領域」と表記する。なお、本実施形態では、第１通信ＩＦ部１１０と第２通信ＩＦ部１２０の両者がＮＩＣである場合について説明するが、少なくとも前者或いは両者が中継制御部１３０と同一基板上に実装されるオンボードの通信用ＬＳＩであっても良い。
【００２９】
コントローラ側ＩＯ領域は、コントローラ２００から受信したデータの格納先となる入力領域と、コントローラ２００へ送信するデータの格納先となる出力領域とに区分けされる。以下では、前者を「コントローラ側ＩＯ領域（ＯＵＴ）」と表記し、後者を「コントローラ側ＩＯ領域（ＩＮ）」と表記する。コントローラ側ＩＯ領域（ＩＮ）とコントローラ側ＩＯ領域（ＯＵＴ）の各々はＩＯ機器毎に区分けされている。詳細については後述するが、コントローラ側ＩＯ領域（ＩＮ）とコントローラ側ＩＯ領域（ＯＵＴ）の各々のＩＯ機器毎の区分けはシステム構成定義情報にしたがって行われる。システム構成定義情報とは、ＩＯネットワーク３００に接続されるＩＯ機器の各々を一意に示すＩＯ機器識別子（例えば、ＩＯ機器の局番）に対応付けて、そのＩＯ機器の種別、そのＩＯ機器に割り当てられた記憶領域の位置および大きさを示す情報を格納したテーブルである（図３参照）。このシステム構成定義情報は、制御システムの運用管理を支援するための支援ツールによって生成され、ネットワーク装置１００に与えられる。なお、図３におけるＩＯ種別＝ＩＮは、センサのようにコントローラ２００へＩＯデータを送信するＩＯ機器であることを意味し、ＩＯ種別＝ＯＵＴは、駆動装置のようにコントローラ２００から送信されたＩＯデータを受信するＩＯ機器であることを意味する。また、図３では、ＩＯ機器４００（ｎ）のＩＯ機器識別子は「Ｓｎ」と表記されている。
【００３０】
コントローラ２００からＩＯ機器４００へ送信されたＩＯデータは、コントローラ側ＩＯ領域（ＯＵＴ）における当該ＩＯ機器４００に対応する記憶領域に格納される。同様に、ＩＯ機器４００からコントローラ２００へ送信されたＩＯデータは、コントローラ側ＩＯ領域（ＩＮ）における当該ＩＯ機器に対応する記憶領域に書き込まれる。第１通信ＩＦ部１１０は、コントローラ側ＩＯ領域（ＩＮ）或いはコントローラ側ＩＯ領域（ＯＵＴ）にデータが書き込まれる毎に、或いは予め定められた周期で周期的に、上記各領域に格納されたデータを読み出しその宛先へと送信する。より詳細には、第１通信ＩＦ部１１０は、コントローラ側ＩＯ領域（ＯＵＴ）に格納されたデータについては中継制御部１３０へ送信し、コントローラ側ＩＯ領域（ＩＮ）に格納されたデータについては通信線を介して接続先のコントローラ２００へ送信する。
【００３１】
ネットワーク側ＩＯ領域も、ＩＯ機器４００から受信したデータの格納先となる入力領域と、ＩＯ機器４００へ送信するデータの格納先となる出力領域とに区分けされる。以下では、前者を「ネットワーク側ＩＯ領域（ＩＮ）」と表記し、後者を「ネットワーク側ＩＯ領域（ＯＵＴ）」と表記する。ネットワーク側ＩＯ領域（ＩＮ）とネットワーク側ＩＯ領域（ＯＵＴ）の各々もＩＯ機器毎に区分けされている。この区分けもシステム構成定義情報（図３参照）にしたがって行われる。ＩＯ機器４００からコントローラ２００へ送信されたＩＯデータは、ネットワーク側ＩＯ領域（ＩＮ）における当該ＩＯ機器４００に対応する記憶領域に格納される。同様に、コントローラ２００からＩＯ機器４００へ送信されたＩＯデータは、ネットワーク側ＩＯ領域（ＯＵＴ）における当該ＩＯ機器に対応する記憶領域に書き込まれる。第２通信ＩＦ部１２０も、各領域にデータが書き込まれる毎に、或いは予め定められた周期で周期的に、上記各領域に格納されたデータを読み出しその宛先へと送信する。具体的には、第２通信ＩＦ部１２０は、ネットワーク側ＩＯ領域（ＩＮ）に格納されたデータについては中継制御部１３０へ送信し、ネットワーク側ＩＯ領域（ＯＵＴ）に格納されたデータについては接続先のＩＯネットワーク３００へ送信する。
【００３２】
代替機器接続部１４０は、例えばＵＳＢ（Universal Serial Bus）インタフェースやシリアルインタフェースなど、種々の外部機器を接続するためのインタフェースである。本実施形態では、ＩＯネットワーク３００に接続予定であるもののシステムデバッグの時点では未接続のＩＯ機器４００の動作を模擬するコンピュータ装置（例えば、パーソナルコンピュータ）、すなわち上記接続予定のＩＯ機器４００の代替機器が代替機器接続部１４０に接続される。ＩＯ機器がＩＯネットワークに未接続であるとは、ＩＯ機器が通信線等によりＩＯネットワークに物理的に接続されていないことの他に、物理的には接続されているもののＩＯ機器として稼働していないことを含む。代替機器接続部１４０は、接続先の代替機器から受け取ったデータを中継制御部１３０に与える一方、中継制御部１３０から与えられたデータを当該代替機器に与える。
【００３３】
上記代替機器は、当該代替機器による模擬対象を中継制御部１３０に通知するために、動作の模擬対象のＩＯ機器のＩＯ機器識別子を代替機器接続部１４０を介して中継制御部１３０に与える。また、ＩＯ機器の動作を模擬するとは、模擬対象のＩＯ機器がコントローラ２００へ送信するＩＯデータを、例えば、三角波などの定型パターン、または任意のデータパターンにしたがって、または所定の数学モデルにしたがって生成し送信することを言う。なお、コントローラ２００から送信されたＩＯデータを受信した場合、代替機器には、その受信データを記憶または表示させれば良く、単に破棄させても良い。本実施形態では、上記代替機器を用いることで、接続予定のＩＯ機器４００がＩＯネットワーク３００に実際に接続されているかのようにしてシステムデバッグを行うことができる。
【００３４】
中継制御部１３０は例えばＣＰＵ（Central Processing Unit）である。中継制御部１３０Ａと中継制御部１３０Ｂとは、等値化ケーブル５００（２）を介して互いに接続されている。中継制御部１３０は、フラッシュＲＯＭ（Read Only Memory）などの記憶部に記憶された中継制御プログラムにしたがって動作しネットワーク装置１００の制御中枢として機能する。具体的には、中継制御部１３０は、以下の第１中継処理を実行する。この第１中継処理は、ＩＯネットワーク３００に実際に接続されているＩＯ機器４００とコントローラ２００との間のデータ通信を中継する処理である。この第１中継処理では、中継制御部１３０は、第１通信ＩＦ部１１０から与えられたＩＯデータ、すなわち、コントローラ２００からＩＯ機器４００へ送信されたＩＯデータを、ネットワーク側ＩＯ領域（ＯＵＴ）のうち当該ＩＯデータの送信先に対応する記憶領域に書き込む。
【００３５】
第２通信ＩＦ部１２０から与えられたＩＯデータ、すなわちＩＯ機器４００からコントローラ２００へ送信されたＩＯデータについては、中継制御部１３０は、前述した等値化を行った後にコントローラ２００へ転送する。例えばネットワーク装置１００Ａが稼働系である場合、中継制御部１３０Ａは、第２通信ＩＦ部１２０から与えられたＩＯデータを、等値化ケーブル５００（２）を介して中継制御部１３０Ｂへ送信し、中継制御部１３０Ｂは等値化ケーブル５００（２）を介して受信したＩＯデータで、第２通信ＩＦ部１２０から与えられたＩＯデータのうちの該当するものを上書きする。これにより等値化が完了する。中継制御部１３０は、上記の要領で等値化済のＩＯデータをコントローラ側ＩＯ領域（ＩＮ）のうち当該ＩＯデータの送信元に対応する記憶領域に書き込む。
【００３６】
加えて、中継制御部１３０は、ＩＯネットワーク３００に接続されるＩＯ機器４００のうち、代替機器により動作が模擬されるＩＯ機器の接続の有無を判定する。より詳細に説明すると、中継制御部１３０は、代替機器と通信し、当該代替機器により動作が模擬されるＩＯ機器のＩＯ機器識別子を取得する。次いで、中継制御部１３０は、前述したシステム構成定義情報とＩＯ機器４００の実際の接続状況とから、上記代替機器により動作が模擬されるＩＯ機器が未接続であるか否かを判定する。上記代替機器により動作が模擬されるＩＯ機器が実際にＩＯネットワーク３００に接続されているのであれば、代替機器を利用する必要はないからである。
【００３７】
より詳細に説明すると、中継制御部１３０は、代替機器から取得したＩＯ機器識別子がシステム構成定義情報に含まれており、かつ、当該ＩＯ機器識別子の示すＩＯ機器４００のＩＯネットワーク３００への接続を検知できない場合に、当該ＩＯ機器４００は未接続と判定する。なお、ＩＯネットワーク３００へのＩＯ機器の接続の有無の検知についてはｐｉｎｇ等の既存技術を用いるようにすれば良い。そして、中継制御部１３０は、代替機器により動作が模擬されるＩＯ機器４００が未接続であると判定した場合には、上記第１中継処理に加えて、以下の第２中継処理を実行する。第２中継処理は、代替機器とコントローラ２００との間のデータ通信を中継する処理である。この第２中継処理では、中継制御部１３０は、まず、代替機器により動作が模擬されるＩＯ機器４００に関する情報（ＩＯ機器識別子、ＩＯ種別、および各種ＩＯ領域を示す情報）をシステム構成定義情報から抽出して不在機器情報を生成するとともに、当該ＩＯ機器４００に割り当てられた各記憶領域を不在機器情報にしたがって代替機器に対応付ける。なお、ＩＯネットワーク３００に接続予定ではあるものの実施には未接続のＩＯ機器４００が複数ある場合には、複数の代替機器を代替機器接続部１４０に接続し、上記対応付けを未接続のＩＯ機器４００毎に行うようにすれば良い。また、未接続と判定されたＩＯ機器のＩＯ種別が「ＩＮ」であった場合には、代替機器に対してＩＯデータの送信を要求する処理を定期的に中継制御部１３０に実行させても良い。
【００３８】
第２中継処理では、中継制御部１３０は、代替機器から受信したデータを、等値化ケーブル５００（２）を介した通信により等値化し、等値化済みのデータを当該代替機器により動作が模擬されるＩＯ機器４００からのＩＯデータとしてコントローラ２００へ転送する。例えば、代替機器により動作が模擬されるＩＯ機器がＩＯ機器４００（２）であり、システムデバッグの時点では当該ＩＯ機器が未接続であったとする。このシステムデバッグの実行過程では、中継制御部１３０は、代替機器から受信したデータを上記の要領で等値化し、当該代替機器に対応付けられた不在機器情報を参照して、等値化済のデータをコントローラ側ＩＯ領域（ＩＮ）のＩＯ機器４００（２）に対応する記憶領域に書き込む。また、中継制御部１３０は、コントローラ２００からＩＯ機器４００（２）宛てに送信され、コントローラ側ＩＯ領域（ＯＵＴ）のＩＯ機器４００（２）に対応する記憶領域に格納されたデータについても同様に代替機器へ転送する。これにより、コントローラ２００側から見れば、ＩＯ機器４００（２）が存在しているかのうように見える。
【００３９】
より好ましい態様においては、ＩＯネットワーク３００へのＩＯ機器４００（ｎ：ｎ＝１〜Ｎ）の各々の接続状況を示すＲＡＳ情報をネットワーク装置１００からコントローラ２００に与える態様が考えられ、この態様においては、中継制御部１３０は、代替機器により動作が模擬されるＩＯ機器４００が未接続であっても、接続されているものと見なしてＲＡＳ情報を生成しコントローラ２００に与える態様が考えられる。例えば、上記代替機器により動作が模擬されるＩＯ機器４００がＩＯ機器４００（２）であり、当該ＩＯ機器４００（２）が未接続である場合、実際の接続状況に即したＲＡＳ情報は図４（ａ）のようになるのであるが、図４（ｂ）に示すようにＲＡＳ情報を補正してコントローラ２００に与える処理を中継制御部１３０に実行させるのである。コントローラ２００のアプリケーションプログラムによっては、配下のＩＯ機器の全ての接続が確認されない場合に待機系への切り換えを発生させる場合があるが、本態様によれば、このようなアプリケーションプログラムのシステムデバッグを何ら問題なく実行することができる。
【００４０】
以上説明したように本実施形態によれば、ネットワーク装置１００を上記のような構成としたため、ＩＯネットワーク３００に接続されるＩＯ機器４００の中に納品遅延等によりコントローラ２００のアプリケーションプログラムのシステムデバッグの実行時点では未接続のものがあったとしても、代替機器接続部１４０に接続されるコンピュータ装置に当該未接続のＩＯ機器４００を代替させ、何ら問題なくシステムデバッグを遂行することが可能になる。つまり、本実施形態によれば、コントローラ２００用のアプリケーションプログラムのシステムデバッグの実行時点で未接続のＩＯ機器４００があったとしても、何ら問題なくシステムデバッグを遂行することが可能になる。
【００４１】
以上本発明の一実施形態について説明したが、この実施形態に以下の変形を加えて良い。
（１）上記実施形態では、ＩＯ機器４００からコントローラ２００へ送信されるＩＯデータの等値化についてはネットワーク装置１００が行い、コントローラ２００からＩＯ機器４００へ送信されるＩＯデータの等値化についてはコントローラ２００が行う場合について説明した。しかし、両方をコントローラ２００に行わせても良く、また、ネットワーク装置１００に行わせても良い。前者の態様であれば、等値化ケーブル５００（２）は不要である。また、コントローラ２００からＩＯ機器４００へ送信されるＩＯデータの等値化をコントローラ側で行うのか、それともネットワーク装置側で行うのかをネットワーク管理者やシステムデバッグの担当者の操作に応じて切り換えても良く、コントローラに掛かっている負荷に応じて切り換えても良い。
【００４２】
（２）上記実施形態におけるコントローラ２００はＰＬＣであったが、ＤＣＳ（Distributed
Control System：分散型制御システム或いは分散型制御装置）であっても良い。一般的なＦＡ（Factory Automation）システムでは制御装置としてＰＬＣが用いられることが多く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多い。ＤＣＳはＰＬＣに比較して信頼性が高いからである。また、上記実施形態では、コントローラを多重化した冗長化制御システムに含まれるネットワーク装置への本発明の適用例を説明した。しかし、コントローラを１つだけ有する制御システムに含まれるネットワーク装置に本発明を適用しても良い。具体的には、コントローラが接続される第１通信ＩＦ部と、コントローラの指令に基づき外部機器を制御する処理またはコントローラに与えるデータを出力する処理を実行するＩＯ機器が接続される第２通信ＩＦ部と、第２通信ＩＦ部に接続されているＩＯ機器と第１通信ＩＦ部に接続されているコントローラとの間のデータ通信を中継する中継制御部とを有するネットワーク装置に、以下の代替機器接続部を設ける。代替機器接続部には、第２通信ＩＦ部に接続予定のＩＯ機器の動作を模擬する代替機器が接続される。そして、中継制御部には、代替機器接続部を介して代替機器から受け取ったデータを接続予定のＩＯ機器からのデータとして第１通信ＩＦ部を介してコントローラへ転送する一方、コントローラから接続予定のＩＯ機器宛てに送信されたデータを第１通信ＩＦ部を介して受信し、当該データを代替機器接続部を介して代替機器へ転送する処理を実行させるようにすれば良い。
【００４３】
（３）上記実施形態では、本発明の特徴を顕著に示す処理をネットワーク装置１００の中継制御部（ＣＰＵ）に実行させる中継制御プログラムが当該ネットワーク装置１００に予めインストールされていた。しかし、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）やフラッシュメモリなどのコンピュータ装置読み取り可能な記録媒体に上記プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより上記プログラムを配布しても良い。外部機器インタフェース部など、上記代替機器接続部として機能する手段を有する既存のネットワーク装置のＣＰＵを上記のように配布されるプログラムにしたがって作動させることで、当該ネットワーク装置を本発明のネットワーク装置として機能させることが可能になるからである。
【符号の説明】
【００４４】
１…通信システム、１００，１００Ａ，１００Ｂ…ネットワーク装置、１１０，１１０Ａ，１１０Ｂ…第１通信ＩＦ部、１２０，１２０Ａ，１２０Ｂ…第２通信ＩＦ部、１３０，１３０Ａ，１３０Ｂ…中継制御部、１４０…代替機器接続部、２００，２００Ａ，２００Ｂ…コントローラ、３００，３００Ａ，３００Ｂ…ＩＯネットワーク、４００，４００（ｎ：ｎ＝１〜Ｎ）…ＩＯ機器、５００（１），５００（２）…等値化ケーブル。
【図１】
2017142639.tif 000003
【図２】
2017142639.tif 000004
【図３】
2017142639.tif 000005
【図４】
2017142639.tif 000006