(58)【調査した分野】(Int.Cl.,DB名)
前記コンバータ制御部は、最後に前記第1カウンタの値を変更してから所定時間以上経過した場合に、前記第1カウンタの値を変更する、請求項1に記載のプロトコルコンバータ。
【発明を実施するための形態】
【0014】
(比較例)
図1に示されるように、比較例に係るデータ伝送システム9は、プロトコルコンバータ910と機器制御装置920とを備える。プロトコルコンバータ910は、複数のフィールド機器30それぞれに、I/Oデバイス32を介して通信可能に接続される。複数の構成が通信可能に接続されている状態は、複数の構成それぞれの間においてデータ又は情報等の送受信が可能である状態に対応する。機器制御装置920は、操作監視端末52及び機器管理部54に、データバス50を介して通信可能に接続される。操作監視端末52は、フィールド機器30のデータと状態とを監視し、機器制御装置920に操作指令を出す。機器管理部54は、フィールド機器30の計装情報を管理し、機器制御装置20に計装情報を通知する。
【0015】
機器制御装置920は、第1通信プロトコルに基づく通信によってデータを出力したり取得したりする。一方で、各フィールド機器30は、第1通信プロトコルと異なる第2通信プロトコルに基づく通信によってデータを出力したり取得したりする。この場合、機器制御装置920が取得可能なデータ形式は、フィールド機器30が出力するデータ形式と異なることがある。また、機器制御装置920が出力するデータ形式は、フィールド機器30が取得可能なデータ形式と異なることがある。
【0016】
プロトコルコンバータ910は、データ形式を変換することによって、異なる通信プロトコルで通信する機器同士でデータ伝送を可能にする。プロトコルコンバータ910は、フィールド機器30が出力するデータを、機器制御装置920に対して伝送可能なデータに変換し、機器制御装置920が取得可能な状態にする。データが伝送可能である状態は、そのデータの形式が伝送先の構成で受け取り可能なデータ形式である状態に対応する。
【0017】
例えば、機器制御装置920に対して伝送可能なデータのサイズは、機器制御装置920の通信インタフェースによって限定される。機器制御装置920に対して伝送可能なデータサイズがフィールドデータのサイズより小さい場合、プロトコルコンバータ910は、フィールドデータを分割し、機器制御装置920が取得可能な状態にする。1つのフィールドデータを分割することによって複数のデータが生成される。機器制御装置920は、分割された複数のデータを結合することによって、1つのフィールドデータを復元できる。機器制御装置920は、復元した1つのフィールドデータを操作監視端末52に出力してもよいし、分割された複数のデータの少なくとも一部を操作監視端末52に出力してもよい。プロトコルコンバータ910は、複数のデータを1つずつ機器制御装置920が取得可能な状態にする。機器制御装置920が取得可能な状態にされているデータを機器制御装置920が取得することによって、データは、プロトコルコンバータ910から機器制御装置920に伝送される。つまり、複数のデータは、時分割でプロトコルコンバータ910から機器制御装置920に伝送される。
【0018】
データが逐次更新される場合において、更新前のデータと更新後のデータとは異なるバージョンのデータとして区別される。つまり、互いに異なるバージョンのデータが存在する。したがって、分割によって生成された各データのバージョン管理が必要とされる。復元に用いられる複数のデータの一部が異なるバージョンのデータになっている場合、それらのデータから復元されるデータは、異常なデータであるおそれがある。分割したデータから正常なデータを復元するために、復元に用いられる各データのバージョンが一致することが求められる。データのバージョンは、例えば、分割される前のデータの取得時刻、設定時刻、又は作成時刻等によって特定されてよい。
【0019】
プロトコルコンバータ910は、データを格納する記憶領域を備える。プロトコルコンバータ910が記憶領域に書き込んだデータは、記憶領域に格納される。プロトコルコンバータ910は、フィールド機器30から取得したデータを複数のデータに分割して記憶領域に書き込む。機器制御装置920は、分割された複数のデータを、記憶領域から読み出し、結合することによって、フィールド機器30が出力したデータを復元できる。一方で、プロトコルコンバータ910は、機器制御装置920がデータを読み出すタイミングにかかわらず、フィールド機器30から取得したデータを分割し、記憶領域に書き込む。
【0020】
機器制御装置920は、上述したとおり、データを1つずつ取得できる。機器制御装置920が所定のバージョンのデータから分割された複数のデータを記憶領域から1つずつ取得する。機器制御装置920が分割されたデータを1つずつ取得している間に、プロトコルコンバータ910は、異なるバージョンのデータから分割された複数のデータを記憶領域に上書きすることが起こり得る。例えば
図2に示されるように、記憶領域が1番から4番までで表されるアドレスによってデータの格納場所を特定できるとする。期間P1において、記憶領域の1番から4番までのアドレスに、Ver.1と表されるバージョンのデータから分割された4つのデータが格納されているとする。期間P2において、記憶領域の1番から4番までのアドレスに、Ver.2と表されるバージョンのデータから分割された4つのデータが格納されているとする。ここで、機器制御装置920が1番から4番までのアドレスに格納されているデータの読み出しを期間P1に開始したものの、順次読み出している途中で、期間P2に変わったとする。そして、機器制御装置920は、期間P1において1番及び2番のアドレスに格納されていたデータを読み出し、期間P2に変わってから3番及び4番のアドレスに格納されていたデータを読み出したとする。この場合、機器制御装置920が1番及び2番のアドレスから読み出したデータのバージョンは、Ver.1であるものの、3番及び4番のアドレスから読み出したデータのバージョンは、Ver.2である。つまり、機器制御装置920が取得する複数のデータの一部は、異なるバージョンのデータになる。これらのデータに基づいて復元されるデータは、異常なデータとなり得る。
【0021】
以上述べてきたように、比較例に係るデータ伝送システム9において、分割した複数のデータが伝送される場合、複数のデータのうちの一部が異なるバージョンのデータとなり得る。伝送される各データのバージョンを一致させることが求められる。複数のデータのバージョンを一致させることによって、複数のデータを同期させることができる。
【0022】
そこで、本開示は、伝送されるデータを同期させることができる、プロトコルコンバータ10(
図3参照)、データ伝送方法、データ伝送プログラム、及び、データ伝送システム1(
図3参照)について説明する。
【0023】
(実施形態)
図3に示されるように、本開示の一実施形態に係るデータ伝送システム1は、プロトコルコンバータ10と、機器制御装置20とを備える。
【0024】
機器制御装置20は、プロトコルコンバータ10を介して、フィールド機器30に通信可能に接続されている。言い換えれば、プロトコルコンバータ10は、フィールド機器30と機器制御装置20との間に接続可能に構成される。複数の構成が通信可能に接続されている状態は、複数の構成それぞれの間においてデータ又は情報等の送受信が可能である状態に対応する。機器制御装置20は、プロトコルコンバータ10を介してフィールド機器30からデータを取得する。プロトコルコンバータ10は、フィールド機器30から取得するデータを、機器制御装置20に伝送可能なデータに変換する。データが伝送可能である状態は、そのデータの形式が伝送先の構成で受け取り可能なデータ形式である状態に対応する。このようにすることで、フィールド機器30の仕様にかかわらず、機器制御装置20は、フィールド機器30からデータを取得できる。
【0025】
機器制御装置20は、フィールド機器30から取得したデータに基づいて演算し、フィールド機器30に出力するデータを生成し、プロトコルコンバータ10を介してフィールド機器30に出力する。プロトコルコンバータ10は、機器制御装置20が出力するデータをフィールド機器30に伝送可能なデータに変換する。このようにすることで、フィールド機器30の仕様にかかわらず、機器制御装置20は、フィールド機器30にデータを出力できる。
【0026】
機器制御装置20がフィールド機器30に出力するデータは、例えばフィールド機器30にフィードバックする情報を含んでもよいし、フィールド機器30を制御する情報を含んでよい。機器制御装置20は、データバス50を介して、操作監視端末52及び機器管理部54に通信可能に接続される。データバス50は、例えば、イーサネット(登録商標)を含んでもよいし、制御バスを含んでもよい。データバス50は、オープンプロセスオートメーションシステムを構成する機器と接続可能に構成されてもよい。操作監視端末52は、フィールド機器30のデータと状態とを監視し、機器制御装置20に操作指令を出す。機器管理部54は、フィールド機器30の計装情報を管理し、機器制御装置20に計装情報を出力する。機器制御装置20は、操作監視端末52が出した操作指令と機器管理部54から取得した計装情報とに基づいて、フィールド機器30に出力するデータを生成してもよい。
【0027】
機器制御装置20は、第1通信プロトコルに基づいてデータ通信を実行すると仮定する。一方で、各フィールド機器30は、第1通信プロトコルと異なる第2通信プロトコルに基づいてデータ通信を実行すると仮定する。この場合、機器制御装置20と第2インタフェース14との間で伝送可能なデータ形式は、フィールド機器30が出力するデータ形式及びフィールド機器30が取得するデータ形式と異なることがある。フィールド機器30が出力するデータは、フィールドデータとも称される。機器制御装置20がフィールド機器30に出力するデータは、制御データとも称される。
【0028】
プロトコルコンバータ10は、通信プロトコルに合わせてデータ形式を変換することによって、異なる通信プロトコルで通信する機器同士のデータ伝送を可能にする。プロトコルコンバータ10は、フィールド機器30から取得したフィールドデータを、機器制御装置20に対して伝送可能なデータに変換し、機器制御装置20が取得可能な状態にする。また、機器制御装置20は、制御データを、プロトコルコンバータ10に対して伝送可能なデータとして出力する。プロトコルコンバータ10は、機器制御装置20から取得したデータを、フィールド機器30に出力する制御データに変換し、フィールド機器30に出力する。このようにすることで、プロトコルコンバータ10は、フィールド機器30のデータ形式にかかわらず、フィールド機器30と機器制御装置20との間でデータを伝送できる。
【0029】
プロトコルコンバータ10は、コンバータ記憶部11と、コンバータ制御部12と、第1インタフェース13と、第2インタフェース14とを備える。プロトコルコンバータ10は、第1インタフェース13において、I/Oデバイス32及びフィールド機器30に通信可能に接続される。I/Oデバイス32は、入出力デバイスとも称される。第1インタフェース13は、機器側インタフェースとも称される。機器側インタフェースは、I/Oデバイス32と接続する通信線を含んでよい。プロトコルコンバータ10は、フィールド機器30が出力するデータをI/Oデバイス32を介して取得する。プロトコルコンバータ10は、第2インタフェース14において、機器制御装置20に通信可能に接続される。第2インタフェース14は、制御側インタフェースとも称される。制御側インタフェースは、機器制御装置20と接続する通信線を含んでよい。第2インタフェース14は、データバス50に接続され、データバス50を介して機器制御装置20に接続されてもよい。このようにすることで、プロトコルコンバータ10は、オープンネットワークに接続できる。その結果、プロトコルコンバータ10の利便性が向上する。
【0030】
プロトコルコンバータ10は、第1インタフェース13によって、I/Oデバイス32を介してフィールド機器30からデータを取得するとともに、フィールド機器30にデータを出力する。プロトコルコンバータ10は、機器制御装置20が第2インタフェース14を介してデータを取得できるようにデータを変換するとともに、機器制御装置20からデータを取得する。
【0031】
コンバータ記憶部11は、指定された位置にデータを書き込んだり読み出したりできる記憶領域を有する。プロトコルコンバータ10は、フィールド機器30から取得したデータを、機器制御装置20が取得可能な状態となるようにコンバータ記憶部11に書き込むことによって格納する。機器制御装置20は、第2インタフェース14を介してコンバータ記憶部11と通信可能に接続されている。機器制御装置20は、コンバータ記憶部11からデータを読み出し可能、且つ、コンバータ記憶部11にデータを書き込み可能に構成されている。つまり、機器制御装置20は、コンバータ記憶部11にアクセス可能に構成されている。したがって、機器制御装置20は、コンバータ記憶部11に格納されているデータを取得できる。
【0032】
コンバータ記憶部11は、例えば半導体メモリ等で構成されてよいし、磁気ディスク等の記憶媒体で構成されてもよい。コンバータ記憶部11は、半導体メモリで構成される場合、データを書き込んだり読み出したりする位置をアドレスによって指定してよい。コンバータ記憶部11は、磁気ディスクで構成される場合、データを書き込んだり読み出したりする位置をセクタ番号等によって指定してよい。コンバータ記憶部11は、プロトコルコンバータ10に含まれず、プロトコルコンバータ10と別体に構成されてもよい。コンバータ記憶部11は、プロトコルコンバータ10と別体に構成される場合、記憶装置とも称される。つまり、データ伝送システム1は、プロトコルコンバータ10と、記憶装置とを別々の構成として備えてもよい。
【0033】
コンバータ制御部12は、第1インタフェース13で取得したフィールドデータを、機器制御装置20に伝送可能なデータに変換し、機器制御装置20が取得可能な状態となるようにコンバータ記憶部11に書き込むことによって格納する。コンバータ制御部12は、1つ以上のプロセッサで構成されてよい。プロセッサは、CPU(Central Processing Unit)等の汎用的な集積回路によって構成されてよい。プロセッサは、所定のプログラムを実行することによって、種々の機能を実現してよい。プロセッサは、プロセッサ記憶部を有してよい。プロセッサ記憶部は、プロセッサの動作に用いられる各種情報、又は、プロセッサがプロトコルコンバータ10の機能を実現するためのプログラム等を格納してよい。プロセッサ記憶部は、プロセッサのワークメモリとして機能してよい。プロセッサ記憶部は、例えば半導体メモリ等で構成されてよい。
【0034】
第1インタフェース13は、I/Oデバイス32に通信可能に接続される。第1インタフェース13は、I/Oデバイス32から入力される電気信号に基づいてデータを生成し、フィールド機器30から機器制御装置20に伝送するデータとしてプロトコルコンバータ10に出力する。第1インタフェース13は、機器制御装置20からフィールド機器30に伝送するデータをプロトコルコンバータ10から取得し、電気信号に変換してI/Oデバイス32に対して出力してよい。電気信号は、電流信号を含んでよいし、電圧信号を含んでもよい。電流信号は、4mA以上且つ20mA以下に制御されている計装用標準信号であってもよい。
【0035】
第2インタフェース14は、機器制御装置20に通信可能に接続される。第2インタフェース14は、機器制御装置20との間でデジタル信号を送受信してもよい。プロトコルコンバータ10と機器制御装置20との間で伝送可能なデータの形式は、第2インタフェース14の仕様に基づいて定まり得る。第2インタフェース14の仕様は、機器制御装置20と接続する通信線の仕様を含んでよい。プロトコルコンバータ10は、フィールドデータを機器制御装置20に伝送可能なデータに変換するとともに、機器制御装置20から伝送されたデータをフィールド機器30に出力するデータに変換する。
【0036】
プロトコルコンバータ10は、複数のデータを1つのデータセットとして取り扱うことがある。例えば、1つのデータから分割された複数のデータが伝送され、伝送された先において元のデータに復元される場合、分割された複数のデータは、1つのデータセットとして取り扱われてよい。他の例として、フィールド機器30が所定時刻における複数の測定データを出力する場合、複数の測定データは、1つのデータセットとして取り扱われてよい。
【0037】
通信線の仕様は、通信容量を含んでよい。通信容量は、第2インタフェース14と機器制御装置20との間で単位時間当たりに送受信できるデータ量に対応する。プロトコルコンバータ10と機器制御装置20との間で伝送可能なデータのサイズは、通信線の通信容量に基づいて定まり得る。プロトコルコンバータ10と機器制御装置20との間で伝送可能なデータのサイズは、伝送許容サイズとも称される。
【0038】
フィールドデータのサイズが伝送許容サイズより大きい場合、コンバータ制御部12は、フィールドデータを、伝送許容サイズ以下のデータに分割し、機器制御装置20が取得可能な状態となるようにコンバータ記憶部11に書き込むことによって格納する。機器制御装置20は、コンバータ記憶部11にアクセスし、分割されて格納されているデータを読み出して取得し、フィールドデータを復元する。1つのフィールドデータを分割して生成された複数のデータは、1つのフィールドデータを復元するための復元データセットを構成する。
【0039】
機器制御装置20がフィールドデータに基づいて生成した制御データのサイズが伝送許容サイズより大きい場合、機器制御装置20は、制御データを伝送許容サイズ以下のデータに分割し、分割したデータをコンバータ記憶部11に書き込むことによって格納する。プロトコルコンバータ10は、コンバータ記憶部11に格納された複数のデータから1つの制御データを復元し、復元した制御データを、I/Oデバイス32を介してフィールド機器30に出力する。1つの制御データを分割した複数のデータの集合は、1つの制御データを復元するための復元データセットを構成する。
【0040】
プロトコルコンバータ10と機器制御装置20との間で分割して伝送されるデータは、フラグメントデータとも称される。
【0041】
フィールド機器30が出力する複数のデータは、機器制御装置20で互いに関連づけて処理されてよい。機器制御装置20で互いに関連づけられるデータの集合は、関連データセットとも称される。関連データセットは、フィールド機器30が所定時刻に測定した測定データの集合として構成されてよい。関連データセットを構成する測定データは、例えば、所定時刻における、気体の温度若しくは流量、又は、液体の温度若しくは流量等のプロセスデータを含んでよい。測定データは、例えば、所定時刻における、3次元座標若しくは回転角等の位置データ、又は、速度、加速度若しくは角速度等のモーションデータを含んでもよい。機器制御装置20は、関連データセットを構成する測定データを互いに関連づけて処理することによって、所定時刻における測定データをフィールド機器30の制御にフィードバックする制御データを生成できる。
【0042】
機器制御装置20は、フィールド機器30に対する制御データとして複数のデータを出力してもよい。フィールド機器30は、複数のデータに基づいて1つの制御を実行してよい。フィールド機器30に対して1つの制御を指示するデータの集合は、制御データセットとも称される。制御データセットを構成する制御データは、例えば、温度を制御するヒータの出力又は流量を制御するバルブの開度等を含んでよい。制御データセットを構成する制御データは、例えば、モータの出力又はアクチュエータの変位等を含んでよい。
【0043】
復元データセット、並びに、関連データセット及び制御データセットは、単にデータセットとも総称される。プロトコルコンバータ10と機器制御装置20との間に接続されている第2インタフェース14は、データセットを構成する複数のデータを1つずつ伝送する。つまり、第2インタフェース14は、プロトコルコンバータ10と機器制御装置20との間で、複数のデータを時分割で伝送する。
【0044】
フィールドデータが逐次更新される場合において、更新前後のフィールドデータは、異なるバージョンのデータとして区別される。したがって、フィールドデータに対応するデータセットを構成する各データのバージョンを管理することが必要とされる。例えば、復元データセットを構成するフラグメントデータの一部が異なるバージョンである場合、そのデータセットから復元されるフィールドデータは、異常なデータとなるおそれがある。その結果、復元されたフィールドデータに基づいて生成される制御データは、異常なデータとなるおそれがある。したがって、復元データセットを構成する各データのバージョンが一致することが求められる。データのバージョンは、例えば、フィールドデータの取得時刻、設定時刻、又は作成時刻等によって特定されてよい。
【0045】
また、フィールドデータが関連データセットとして構成される場合においても、関連データセットを構成する複数のデータのバージョンを管理することが必要とされる。関連データセットを構成するデータの一部が異なるバージョンである場合、関連データセットに基づいて生成される制御データは、異常なデータとなるおそれがある。したがって、関連データセットを構成する各データのバージョンが一致することが求められる。
【0046】
データセットを構成する各データのバージョンが一致している状態は、データセットが同期している状態に対応する。つまり、プロトコルコンバータ10と機器制御装置20との間のデータ伝送において、データセットが同期することが求められる。プロトコルコンバータ10は、例えば以下のような構成を有することによって、データセットを同期させることができる。
【0047】
図4に例示されるように、コンバータ記憶部11の記憶領域は、フィールド機器30と機器制御装置20との間で互いに伝送されるデータセットを格納する伝送データ領域11aを含む。また、コンバータ記憶部11の記憶領域は、データセットを同期させるためのカウンタA及びカウンタBを格納するカウンタ領域11bを含む。伝送データ領域11aは、フィールド機器30から機器制御装置20に伝送されるフィールドデータに対応するデータセットを格納する領域と、機器制御装置20からフィールド機器30に伝送される制御データに対応するデータセットを格納する領域とを含む。プロトコルコンバータ10が複数のフィールド機器30に接続されている場合、コンバータ記憶部11は、各フィールド機器30に対応する記憶領域を有する。つまり、コンバータ記憶部11は、各フィールド機器30に対応する伝送データ領域11aとカウンタ領域11bとを有する。
【0048】
フィールドデータを格納する領域は、データセットを構成する各データを格納する領域に分けられる。データセットを構成するデータは、フィールドデータを伝送許容サイズ以下のサイズに分割したデータであってよいし、関連データセットを構成する測定データ等であってよい。
図4の例において、フィールドデータは、1/XからX/Xまでの番号が付されたX個のデータで構成されているデータセットとして格納されている。つまり、フィールドデータは、X個のデータに分けて格納されている。
【0049】
制御データを格納する領域は、データセットを構成する各データを格納する領域に分けられる。データセットを構成するデータは、制御データを伝送許容サイズ以下のサイズに分割したデータであってよいし、制御データセットを構成するデータであってよい。
図4の例において、制御データは、1/YからY/Yまでの番号が付されたY個のデータで構成されているデータセットとして格納されている。つまり、制御データは、Y個のデータに分けて格納されている。
【0050】
フィールドデータに対応するデータセットを構成するデータの数(X)と、制御データに対応するデータセットを構成するデータの数(Y)とは、同じであってもよいし、異なっていてもよい。
【0051】
カウンタ領域11bに格納されるカウンタA及びカウンタBはそれぞれ、第1カウンタ及び第2カウンタとも称される。カウンタAの値は、プロトコルコンバータ10のコンバータ制御部12によって制御される。カウンタBの値は、機器制御装置20によって制御される。カウンタAの値は、単にAと表されるとする。カウンタBの値は、単にBと表されるとする。
【0052】
データ伝送システム1は、カウンタA及びBそれぞれの値に基づいて動作する。データ伝送システム1は、
図5に示されるように、カウンタA及びBそれぞれの値に基づく複数の状態に遷移して動作すると仮定する。コンバータ制御部12は、カウンタAの値とカウンタBの値とが一致するか異なるかにかかわらず、I/Oデバイス32を介してフィールド機器30からフィールドデータを取得する。
【0053】
A=Bが成立している状態は、第1状態と称されるとする。コンバータ制御部12は、第1状態において、コンバータ記憶部11の伝送データ領域11aにフィールドデータを書き込む。コンバータ制御部12は、フィールドデータのサイズが伝送許容サイズより大きい場合、フィールドデータを分割したデータを、復元データセットを構成するデータとしてコンバータ記憶部11に書き込む。コンバータ制御部12は、フィールドデータとして複数の測定データを取得した場合、各測定データを、関連データセットを構成するデータとしてコンバータ記憶部11に書き込む。
【0054】
機器制御装置20は、第1状態において、コンバータ記憶部11からデータを読み出した場合、読み出したフィールドデータを復元せず、破棄する。このようにすることで、プロトコルコンバータ10が伝送データ領域11aへフィールドデータを書き込んでいる間に機器制御装置20が伝送データ領域11aから読み出したフィールドデータに基づいて、制御データが生成されることが避けられる。その結果、機器制御装置20が読み出すデータセットを構成する各データのうち、一部のデータのバージョンが異なる状況が避けられる。
【0055】
また、機器制御装置20は、コンバータ記憶部11にデータを書き込まない。このようにすることで、プロトコルコンバータ10が伝送データ領域11aから制御データを読み出している間に、機器制御装置20が伝送データ領域11aに制御データを書き込むことが避けられる。その結果、プロトコルコンバータ10がフィールド機器30に出力するデータセットを構成する各データのうち、一部のデータのバージョンが異なる状況が避けられる。
【0056】
コンバータ制御部12は、データセットを構成するすべてのデータをコンバータ記憶部11に書き込んだことを条件として、カウンタAの値として、現在の値と異なる値に変更し、カウンタ領域11bに書き込むことによって、カウンタAの値を変更する。
【0057】
コンバータ制御部12は、カウンタAの値をインクリメントしてよい。この場合、カウンタAは、カウントアップで動作する。コンバータ制御部12は、カウンタAの値をデクリメントしてもよい。この場合、カウンタAは、カウントダウンで動作する。つまり、コンバータ制御部12は、カウンタAの値を増やす方向又は減らす方向に変更してよい。コンバータ制御部12は、他の種々のルールに基づいてカウンタAの値を変更してよい。
【0058】
A=Bが成立している第1状態においてカウンタAの値が変更されることによって、A≠Bが成立する状態に遷移する。A≠Bが成立している状態は、第2状態と称されるとする。第1状態から第2状態に遷移するための条件は、第1条件とも称される。第1条件は、フィールドデータに対応するデータセットを構成するすべてのデータがコンバータ記憶部11に書き込まれることによって満たされる。
【0059】
機器制御装置20は、第1状態であるか第2状態であるかにかかわらず、コンバータ記憶部11の伝送データ領域11aのうちフィールドデータを格納する領域からデータを読み出す。機器制御装置20は、第2状態において復元データセットを読み出した場合、復元データセットの各データに基づいてフィールドデータを復元する。機器制御装置20は、復元したフィールドデータに基づいて、制御データを生成する。機器制御装置20は、関連データセットを読み出した場合、関連データセットを構成する各データに基づいて、制御データを生成する。
【0060】
機器制御装置20は、生成した制御データをコンバータ記憶部11の伝送データ領域11aのうち制御データを格納する領域に書き込む。制御データのサイズが伝送許容サイズより大きい場合、機器制御装置20は、制御データを分割して伝送データ領域11aに書き込む。分割した制御データは、制御データセットを構成する。機器制御装置20は、制御データセットを構成する複数の制御データを生成する場合、各制御データを伝送データ領域11aに書き込む。
【0061】
コンバータ制御部12は、第2状態において、伝送データ領域11aにデータを書き込まない。言い換えれば、コンバータ記憶部11は、第2状態において、コンバータ記憶部11の伝送データ領域11aにデータを書き込む動作を停止する。このようにすることで、機器制御装置20が第2状態において伝送データ領域11aからフィールドデータを読み出している間に、プロトコルコンバータ10が伝送データ領域11aへフィールドデータを書き込むことが避けられる。その結果、機器制御装置20が読み出すデータセットを構成する各データのうち、一部のデータのバージョンが異なる状況が避けられる。また、コンバータ制御部12は、第2状態において、コンバータ記憶部11に格納されたデータをフィールド機器30に出力しない。このようにすることで、機器制御装置20が第2状態において伝送データ領域11aに制御データを書き込んでいる間に、プロトコルコンバータ10が伝送データ領域11aから制御データを読み出すことが避けられる。その結果、フィールド機器30に出力する制御データセットを構成する各データのうち、一部のデータのバージョンが異なる状況が避けられる。
【0062】
機器制御装置20は、コンバータ記憶部11からフィールドデータに対応するデータセットを構成するすべてのデータを読み出したことを条件として、カウンタBの値を変更する。機器制御装置20は、カウンタBの値として、カウンタAの値をカウンタ領域11bに書き込むことによってカウンタBの値を変更する。つまり、機器制御装置20は、カウンタAの値をカウンタBの値としてコピーすることによってカウンタBの値を変更する。機器制御装置20は、更に、読み出したデータに基づいて生成した制御データに対応するデータセットを構成するすべてのデータをコンバータ記憶部11に書き込んだことを条件として、カウンタBの値を変更してもよい。
【0063】
A≠Bが成立している第2状態においてカウンタBの値が変更されることによって、A=Bが成立する状態、すなわち第1状態に遷移する。第2状態から第1状態に遷移するための条件は、第2条件とも称される。第2条件は、フィールドデータに対応するデータセットを構成するすべてのデータがコンバータ記憶部11から読み出されることによって満たされる。第2条件は、更に、制御データに対応するデータセットを構成するすべてのデータがコンバータ記憶部11に書き込まれることによって満たされてもよい。
【0064】
第2状態において、機器制御装置20がカウンタBの値を変更する際に、カウンタBの値をコンバータ記憶部11のカウンタ領域11bに書き込む動作が失敗することがある。カウンタBの書き込みの失敗は、例えば、機器制御装置20と第2インタフェース14との間での通信異常によって起こり得る。通信異常は、通信線で生じるノイズ等に起因し得る。
【0065】
機器制御装置20は、機器制御記憶部を備え、機器制御記憶部にカウンタBの値を格納しているとする。機器制御装置20は、機器制御記憶部にカウンタBの値を書き込んで格納しておくことによって、カウンタBをコンバータ記憶部11から読み出す必要がなくなる。その結果、機器制御装置20の負荷が低減される。
【0066】
機器制御装置20は、カウンタBの値を変更する際に、機器制御記憶部に格納しているカウンタBの値としてカウンタAの値を書き込むとともに、コンバータ記憶部11のカウンタ領域11bに格納しているカウンタBの値としてカウンタAの値を書き込む。機器制御装置20は、カウンタBの値をカウンタ領域11bに書き込むことに成功したか失敗したかにかかわらず、機器制御記憶部に格納しているカウンタBの値を変更していることによって、第1状態に遷移していると認識している。この場合、機器制御装置20は、データの書き込み及び読み出しを実行しない。
【0067】
一方で、プロトコルコンバータ10は、カウンタ領域11bへのカウンタBの値の書き込みが失敗した場合、第2状態のままであると認識している。この場合、プロトコルコンバータ10は、データの書き込み及び読み出しを実行しない。
【0068】
プロトコルコンバータ10及び機器制御装置20が両方とも動作しないことによって、データ伝送システム1は、動作しないデッドロック状態に陥ってしまう。デッドロック状態は、第3状態とも称される。第2状態から第3状態に遷移する条件は、第3条件とも称される。第3条件は、機器制御装置20によるカウンタ領域11bへのカウンタBの値の書き込みが失敗した場合に満たされる。
【0069】
データ伝送システム1は、第3状態に遷移した場合、プロトコルコンバータ10及び機器制御装置20が両方とも動作しないことによって、そのままでは第1状態にも第2状態にも遷移できない。第3状態において、データ伝送システム1は、コンバータ制御部12にカウンタAの値を変更させる。カウンタAの値が変更されることによって、データ伝送システム1は、第3状態から第2状態に遷移できる。つまり、カウンタAの値が変更されることによって、データ伝送システム1は、第3状態から復帰することができる。このようにすることで、データ伝送システム1は、簡便な構成で、デッドロック状態からの復帰を実現できる。その結果、データ伝送システム1におけるデータ伝送動作の信頼性が高まる。
【0070】
コンバータ制御部12は、最後にカウンタAの値が変更されてから所定時間が経過した場合に、カウンタAの値を変更してよい。この場合、所定時間は、例えば、4秒に設定されてよい。コンバータ制御部12は、第2状態に遷移したと認識してから所定時間が経過しても第2状態のままであると認識している場合に、カウンタAの値を変更してよい。第3状態から第2状態に遷移する条件は、第4条件とも称される。第4条件は、コンバータ制御部12がカウンタAの値を変更した場合に満たされる。第4条件は、コンバータ制御部12が最後にカウンタAの値を変更してから所定時間が経過した場合に満たされるともいえる。第4条件は、コンバータ制御部12が第2状態に遷移したと認識してから所定時間が経過した場合に満たされるともいえる。
【0071】
一実施形態に係るデータ伝送システム1及びプロトコルコンバータ10は、機器制御装置20によって読み出されるデータセットを構成する各データのバージョンを容易に一致させることができる。また、一実施形態に係るデータ伝送システム1及びプロトコルコンバータ10は、プロトコルコンバータ10がフィールド機器30に出力するデータセットを構成する各データのバージョンを容易に一致させることができる。その結果、データセットが同期して伝送される。
【0072】
プロトコルコンバータ10は、データ伝送方法として、
図6のフローチャートに例示される手順を実行してよい。
図6のフローチャートに例示される手順は、データ伝送プログラムとして実現されてもよい。
【0073】
コンバータ制御部12は、フィールド機器30からフィールドデータを取得する(ステップS1)。コンバータ制御部12は、A=Bが成立するか否かにかかわらず、フィールドデータを取得してよい。
【0074】
コンバータ制御部12は、コンバータ記憶部11のカウンタ領域11bに格納されているカウンタA及びBの値を読み出し、A=Bが成立しているか判定する(ステップS2)。コンバータ制御部12は、コンバータ記憶部11のカウンタ領域11bに格納されているカウンタA及びBの値を読み出すことによって、判定してよい。コンバータ制御部12は、A=Bが成立していない場合(ステップS2:NO)、ステップS6の手順に進む。この場合、コンバータ制御部12は、ステップS1で取得したフィールドデータを破棄してもよい。
【0075】
コンバータ制御部12は、A=Bが成立している場合(ステップS2:YES)、フィールドデータをコンバータ記憶部11の伝送データ領域11aに書き込む(ステップS3)。これによって、フィールドデータが伝送データ領域11aに格納される。コンバータ制御部12は、フィールドデータのサイズが伝送許容サイズより大きい場合、フィールドデータを分割し、データセットを構成するデータとしてコンバータ記憶部11の伝送データ領域11aに書き込んでよい。コンバータ制御部12は、フィールドデータに対応するデータセットを取得した場合、データセットを構成する各データをコンバータ記憶部11の伝送データ領域11aに書き込んでよい。
【0076】
コンバータ制御部12は、機器制御装置20がコンバータ記憶部11に書き込んだ制御データを読み出し、フィールド機器30に出力する(ステップS4)。コンバータ制御部12は、ステップS4の手順を、ステップS3の手順と同時に実行してもよいし、ステップS3の手順より前に実行してもよい。
【0077】
コンバータ制御部12は、カウンタAの値を変更する(ステップS5)。コンバータ制御部12は、ステップS5の後、ステップS1の手順に戻る。コンバータ制御部12は、ステップS5の後、ステップS2に手順に戻ってもよい。
【0078】
コンバータ制御部12は、A=Bが成立していない場合(ステップS2:NO)、つまり、A≠Bが成立している場合、データ伝送システム1がデッドロック状態に陥っているか判定する(ステップS6)。コンバータ制御部12は、最後にカウンタAの値を変更してから所定時間が経過した場合に、データ伝送システム1がデッドロック状態に陥っていると判定してよい。この場合、所定時間は、4秒に設定されてよい。コンバータ制御部12は、A≠Bが成立する第2状態に遷移したと認識してから所定時間が経過しても第2状態のままであると認識した場合に、データ伝送システム1がデッドロック状態に陥っていると判定してもよい。
【0079】
コンバータ制御部12は、データ伝送システム1がデッドロック状態に陥っている場合(ステップS6:YES)、ステップS5の手順に進み、カウンタAの値を変更する。コンバータ制御部12は、データ伝送システム1がデッドロック状態に陥っていない場合(ステップS6:NO)、ステップS1の手順に戻る。
【0080】
機器制御装置20は、データ伝送方法として、
図7のフローチャートに例示される手順を実行してよい。
図7のフローチャートに例示される手順は、データ伝送プログラムとして実現されてもよい。
【0081】
機器制御装置20は、コンバータ記憶部11の伝送データ領域11aからフィールドデータを読み出すとともに、コンバータ記憶部11のカウンタ領域11bからカウンタAの値を読み出す(ステップS11)。機器制御装置20は、フィールドデータとカウンタAの値とを同時に読み出してもよいし、時分割で読み出してもよい。
【0082】
機器制御装置20は、A=Bが成立しているか判定する(ステップS12)。機器制御装置20は、機器制御記憶部を備え、機器制御記憶部にカウンタBの値を格納しているとする。機器制御装置20は、機器制御記憶部に格納しているカウンタBの値と、コンバータ記憶部11から読み出したカウンタAの値とを比較する。
【0083】
機器制御装置20は、A=Bが成立している場合(ステップS12:YES)、ステップS11の手順に戻る。機器制御装置20は、A=Bが成立していない場合(ステップS12:NO)、つまり、A≠Bが成立している場合、ステップS11で読み出したフィールドデータに基づいて制御データを生成して出力する(ステップS13)。機器制御装置20は、制御データをコンバータ記憶部11に書き込むことによって出力する。制御データのサイズが伝送許容サイズより大きい場合、機器制御装置20は、制御データを分割したデータで構成されるデータセットをコンバータ記憶部11に書き込む。機器制御装置20は、制御データセットを構成する複数のデータを生成する場合、各データをコンバータ記憶部11に書き込む。
【0084】
機器制御装置20は、カウンタBの値を変更する(ステップS14)。機器制御装置20は、機器制御記憶部に格納されているカウンタBの値として、カウンタAの値を書き込む。さらに、機器制御装置20は、機器制御記憶部に格納されているカウンタBの値をカウンタ領域11bに書き込むことによってコンバータ記憶部11に格納されているカウンタBの値を変更する。つまり、機器制御装置20は、カウンタAの値をカウンタBの値としてコピーすることによってコンバータ記憶部11に格納されているカウンタBの値を変更する。機器制御装置20は、ステップS15の手順の後、ステップS11の手順に戻る。
【0085】
一実施形態に係るデータ伝送方法及びデータ伝送プログラムによれば、機器制御装置20によって読み出されるデータセットを構成する各データのバージョンを容易に一致させることができる。また、プロトコルコンバータ10がフィールド機器30に出力するデータセットを構成する各データのバージョンを容易に一致させることができる。その結果、データセットが同期して伝送される。
【0086】
本実施形態に係るデータ伝送システム1は、カウンタA及びカウンタBを制御することによってデータセットを同期できる。比較例として、データセットを同期するためにフラグが用いられる場合、伝送するデータにフラグを表すビットが含まれる。この場合、データ形式が制限されるとともに、伝送するデータの実質的なデータ容量がフラグによって減少する。また、データの内容を解釈する処理が必要となる。本実施形態に係るデータ伝送システム1によれば、データセットが同期されながらも、比較例に対してデータ形式が制限されにくく、且つ、データ容量が減少しにくい。また、データの内容を解釈する処理が必要とされず、プロセッサの負荷が低減する。
【0087】
以上、本開示に係る実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲においての種々の変更も含まれる。