(57)【要約】【課題】パケットデータの送信周期の精度を高める。【解決手段】データ送信装置１００は、計時手段１ａによるタイマイベントの発生によって送信対象のパケットデータを送信させるための所定の処理を行い、パケットデータの送信待ち行列を構成する出力用送信キューに格納する制御部１と、制御部１により処理されたパケットデータを、通信ネットワークを介して外部機器に対して送信する通信部３と、を備える。制御部１は、送信対象のパケットデータを解析することにより、当該パケットデータが周期的に送信される周期データであるか否かを判別し、周期データであると判別されたパケットデータを、当該パケットデータの送信待ち行列を構成する周期データ用送信キューに格納する。そして、計時手段１ａによりタイマイベントが発生すると、周期データ用送信キューに格納されたパケットデータを出力用送信キューの先頭に配置し、通信部３に転送する。【選択図】図１
2008199092.tif 000002
【特許請求の範囲】
【請求項１】
プログラム制御によって実現され、所定のパケットデータの送信処理を周期的に実行させるタイミングを計時する計時手段を有し、前記計時手段による計時された送信処理のタイミングに従って、前記パケットデータを送信させるための所定の処理を実行し、当該所定の処理が施されたパケットデータを、パケットデータの送信待ち行列を構成する出力用送信キューに格納する制御部と、
前記出力用送信キューに格納されたパケットデータを、通信ネットワークを介して外部機器に対して送信する通信部と、を備え、
前記制御部は、
送信対象の前記パケットデータを解析することにより、当該パケットデータが周期的に送信される周期データであるか否かを判別する判別手段と、
前記判別手段により周期データであると判別されたパケットデータを、当該パケットデータの送信待ち行列を構成する周期データ用送信キューに格納し、前記計時手段により計時された送信開始のタイミングで、前記周期データ用送信キューに格納されたパケットデータを前記出力用送信キューに転送する処理を行う周期データ処理手段と、
を備えることを特徴とするデータ送信装置。
【請求項２】
前記周期データ処理手段は、前記周期データ用送信キューに格納されたパケットデータを前記出力用送信キューの先頭に配置する処理を行うことを特徴とする請求項１に記載のデータ送信装置。
【請求項３】
前記判別手段により、送信対象の前記パケットデータが周期データではないと判別された場合、前記通信部は、当該パケットデータが前記出力用送信キューの最後尾に配置されたデータを送信することを特徴とする請求項１又は２に記載のデータ送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットデータを周期的に送信するデータ送信装置に関する。
【背景技術】
【０００２】
プラントの運転状況を監視・制御するシステムでは、プラントに設置された各種の計測装置（温度、圧力、流量等を計測する装置）や監視装置等（以下、データ送信装置と呼ぶ。）が予め決められたスケジュールに従って、通信ネットワークを介して周期的に観測データ、監視データ等のパケットデータをホストコンピュータに送信している（例えば、特許文献１参照）。
【０００３】
図３に、従来のデータ送信装置におけるパケット送信処理の一例を示す。例えば、FOUNDATION Fieldbus HSEでは、図３に示すように、周期的にパケットデータを送信するアプリケーションが、アプリケーション層において、ＯＳ（Operating System）に搭載されたソフトタイマである計測手段によるタイマイベントの発生によって周期的に起動し、パケット送信命令が実行される。
【０００４】
アプリケーション層において、パケット送信命令が実行されると、当該パケットデータは下位の層へと転送され、トランスポート層でのＴＣＰ／ＵＤＰ（Transmission Control Protocol／User Datagram Protocol）ヘッダ付加処理、ネットワーク層でのＩＰ（Internet Protocol）ヘッダ付加処理、データリンク層でのEthernet（登録商標）ヘッダ付加処理を経て送信キューに格納され、直ちに物理デバイス（物理層）から送信される。
【０００５】
図４に、従来のデータ送信装置におけるパケット送信処理の他の例として、EtherNet／IPにおいて周期的にパケットデータを送信する処理を示す。この場合、周期的にパケットデータを送信するアプリケーションが外部機器と通信するためには、当該アプリケーションが、EtherNet／IPで使用されるアプリケーションプロトコルであるＣＩＰ（Common Industrial Protocol）を解する必要がある（例えば、非特許文献１参照）。また、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１５８８に対応し、計時手段が搭載された専用のハードウェア資源を使用する。
【０００６】
図４に示した例では、計時手段によるタイマイベントの発生がアプリケーション層及び物理デバイスに通知され、パケット送信処理のアプリケーションが起動する。アプリケーション層では、ＣＩＰ用の処理としてエンキャップシュレーションヘッダ付加処理が行われる。また、周期データパケット（EtherNet／IPにおけるImplicitメッセージ）と非周期データパケット（EtherNet／IPにおけるExplicitメッセージ）の判別処理が行われる。以後、下位の層において、送信対象のパケットデータは、図３と同様のヘッダ付加処理が施され、物理デバイスから送信される。
【特許文献１】特開昭６１−２３４３９号公報
【非特許文献１】“The CIP Advantage: Technology Overview Series, EtherNet/IP-CIP on Ethernet Technology”、[online]、ODVA、[平成１９年１月３１日検索]、インターネット〈URL : http://www.odva.org/Portals/0/Library/Publications_Numbered/PUB00138R2_CIP_Adv_Tech_Series_EtherNetIP.pdf〉
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、周期的にパケットデータを送信する従来のデータ送信装置では、計時手段によるタイマイベントが発生してから、パケットデータが物理デバイスに到達するまでに、多くのジッタ発生要素が存在するため、パケットデータの送信周期を一定に保つことができないという問題がある。特に、アプリケーションに提供される計時手段は、ＯＳに提供される計時手段に比べて多くの遅延とジッタが発生する。また、図４に示したパケット送信処理では、ＩＥＥＥ１５８８に対応した専用のハードウェア資源を用いているため、図３に示した処理に比べると送信周期の精度は高いが、この専用ハードウェア資源のサポートが必要になる上に、専用のプロトコル（ＣＩＰ）に対応するために、既存のアプリケーションを変更する必要がある。
【０００８】
本発明の課題は、アプリケーションに依存せずにパケットデータの送信周期の精度を高めることである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１に記載の発明は、プログラム制御によって実現され、所定のパケットデータの送信処理を周期的に実行させるタイミングを計時する計時手段を有し、前記計時手段による計時された送信処理のタイミングに従って、前記パケットデータを送信させるための所定の処理を実行し、当該所定の処理が施されたパケットデータを、パケットデータの送信待ち行列を構成する出力用送信キューに格納する制御部と、
前記出力用送信キューに格納されたパケットデータを、通信ネットワークを介して外部機器に対して送信する通信部と、を備え、前記制御部は、送信対象の前記パケットデータを解析することにより、当該パケットデータが周期的に送信される周期データであるか否かを判別する判別手段と、前記判別手段により周期データであると判別されたパケットデータを、当該パケットデータの送信待ち行列を構成する周期データ用送信キューに格納し、前記計時手段により計時された送信開始のタイミングで、前記周期データ用送信キューに格納されたパケットデータを前記出力用送信キューに転送する処理を行う周期データ処理手段と、を備えることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のデータ送信装置において、前記周期データ処理手段は、前記周期データ用送信キューに格納されたパケットデータを前記出力用送信キューの先頭に配置する処理を行うことを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載のデータ送信装置において、前記判別手段により、送信対象の前記パケットデータが周期データではないと判別された場合、前記通信部は、当該パケットデータが前記出力用送信キューの最後尾に配置されたデータを送信することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、周期的に送信されるパケットデータを周期データ用送信キューに格納し、計時手段により計時された送信開始のタイミングで周期データ用送信キュー内のパケットデータを出力用送信キューに転送して外部機器に送信するようにしたことにより、パケットデータの送信周期の精度を高めることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明の実施形態を説明する。
まず、本実施形態における構成について説明する。
【００１４】
図１に、本発明の実施形態に係るデータ送信装置１００の主要部構成を示す。データ送信装置１００は、プラント等に設置され、温度等の観測データ、画像等の監視データを、通信ネットワークを介してホストコンピュータ（図示略）に一定周期で送信する装置である。このデータ送信装置１００は、図１に示すように、制御部１、記憶部２、通信部３により構成され、各部はバス４を介して相互に接続される。
【００１５】
制御部１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＦＩＦＯ（First-In First-Out）メモリ等を有して構成され、ＲＯＭに格納された各種の制御プログラムに従ってデータ送信装置１００の各部を統括的に制御する。
【００１６】
また、制御部１は、データ送信装置１００のＯＳ（Operating System）に搭載されたソフトタイマ（プログラム制御により実現されるタイマ）である計時手段１ａを有する。計時手段１ａは、パケットデータの送信処理を周期的に実行させるタイミングを計時する。制御部１は、計時手段１ａによってパケット送信処理のためのタイマイベントが発生すると、観測データ、監視データ等のパケットデータを送信するパケット送信処理を実行する（詳細は後述）。このタイマイベントは、予め設定された時刻にパケット送信処理を実行するために、制御部１によって設定されたものである。本実施形態において、パケット送信処理のためのタイマイベントは一定時間毎（周期的）に発生するものとする。
【００１７】
記憶部２は、不揮発性メモリやハードディスク等から構成され、制御部１によって実行される各種プログラムで用いられるデータや、当該プログラムで処理されたデータ等を記憶する。
【００１８】
通信部３は、通信ネットワークを介して外部機器とデータ通信するための機能部であり、ネットワークインターフェース等により構成される。具体的に通信部３は、制御部１により処理されたパケットデータを、通信ネットワークを介して外部機器に対して送信する処理を行う。
【００１９】
図２は、制御部１による処理機能を階層的に示したものである。制御部１において実行される処理機能は、図２に示すように、計時手段１ａ、アプリケーション層１０、トランスポート層１１、ネットワーク層１２、データリンク層１３、パケット判別手段１４、周期データ処理手段１５、出力用送信キュー１７によって実現される。このうち、アプリケーション層１０以外で実現される各機能は、データ送信装置１００のＯＳ２０に搭載された機能である。
【００２０】
アプリケーション層１０では、計時手段１ａによるタイマイベントの発生により、パケット送信処理を行うアプリケーションが起動される。パケット送信処理のアプリケーションが起動すると、送信対象のパケットデータは下位層へ転送され、トランスポート層１１、ネットワーク層１２、データリンク層１３の各々においてヘッダ付加処理が行われる。具体的には、トランスポート層１１において、アプリケーション層１０から転送されたパケットデータの圧縮や誤り訂正、再送制御などが行われる。ネットワーク層１２では、トランスポート層１１から転送されたパケットデータに通信先のアドレスが付加され、データリンク層１３に転送される。データリンク層１３では、通信先との物理的な通信経路が確保され、通信経路を流れるデータのエラー検出等が行われる。
【００２１】
パケット判別手段１４は、データリンク層１３から転送されたパケットデータを解析することにより、当該パケットデータが周期的に送信される周期データ（周期データパケットＰ１）であるか否かを判別する。この判別処理は、例えばＩＰ（Internet Protocol）の場合、パケットデータの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号、ＩＣＭＰ（Internet Control Message Protocol）タイプ、ＩＣＭＰコード、ＤＳＣＰ（Differentiated Services Code Print）値等の情報を用いて行われる。例えば、周期データを送信する場合に、これらの情報の何れかにおいて特定のビットを立てるなどの規則を予め設定しておくと、容易にパケット判別処理を行うことができる。
【００２２】
出力用送信キュー１７は、物理デバイス１８（物理層）に転送するパケットデータの送信待ち行列を構成するＦＩＦＯメモリである。パケット判別手段１４により、送信対象のパケットデータが周期データではない（非周期データパケットＰ２）と判定された場合、この非周期データパケットＰ２は、出力用送信キュー１７の最後尾に追加され、物理デバイス１８に転送される。
【００２３】
周期データ処理手段１５は、ＦＩＦＯメモリとして構成される周期データ用送信キュー１６を有する。パケット判別手段１４により、送信対象のパケットデータが周期データ（周期データパケットＰ１）であると判別された場合、その周期データパケットＰ１は周期データ用送信キュー１６に格納される。
【００２４】
計時手段１ａによるタイマイベントが発生すると、周期データ処理手段１５は、周期データ用送信キュー１６に周期データパケットＰ１が存在する場合、直ちにその周期データパケットＰ１を周期データ用送信キュー１６から出力用送信キュー１７へ送る処理を実行する。一方、周期データ用送信キュー１６に周期データパケットＰ１が存在しない場合、周期データ処理手段１５は、次のタイマイベントの発生まで待機状態となる。
【００２５】
本実施形態では、パケット送信処理におけるジッタ削減のため、周期データパケットＰ１は非周期データパケットＰ２よりも高い優先度で送信するものとする。具体的に周期データ処理手段１５は、計時手段１ａによるタイマイベントが発生すると、周期データ用送信キュー１６内の周期データパケットＰ１を順番通りに出力用送信キュー１７の先頭に配置し、物理デバイス１８に転送する。よって、出力用送信キュー１７に周期データパケットＰ１と非周期データパケットＰ２の双方が存在する場合、周期データパケットＰ１が優先的に送信されることとなる。
【００２６】
物理デバイス１８は、通信部３を構成するデバイスであり、出力用送信キュー１７の先頭のパケットデータから外部機器に向けて直ちに送信する。
【００２７】
以上のように、本実施形態のデータ送信装置１００によれば、計時手段１ａによるタイマイベントが発生したタイミングで、周期データ用送信キュー１６に格納された周期データパケットＰ１を出力用送信キュー１７に転送し、物理デバイス１８から直ちに送信するようにしたことにより、タイマイベントが発生してから周期データパケットＰ１が通信部３の物理デバイス１８へ到達するまでのジッタを削減し、パケットデータの送信周期の精度を高めることが可能となる。
【００２８】
特に、周期データ用送信キュー１６に格納された周期データパケットＰ１を出力用送信キュー１７の先頭に配置することにより、非周期データパケットＰ２よりも周期データパケットＰ１を優先的に送信することとなり、パケットデータの送信周期の精度を一層高めることが可能となる。
【００２９】
また、このようなパケット送信処理機能を、データ送信装置１００のＯＳ２０に搭載することにより、リアルタイム性が重要なシステムにおいても、図４に示すような専用のハードウェア資源を用いる必要がない上に、専用のプロトコルに対応するために既存のアプリケーションを変更することなく、遅延の少ない周期通信システムを構築することが可能となる。
【００３０】
なお、本実施形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
例えば、パケット判別手段１４及び周期データ処理手段１５をそれぞれハードウェア資源として実現してもよい。これにより、制御部１のＣＰＵによる処理負荷が軽減されるとともに、タイマイベント発生からの遅延を更に削減し、リアルタイム性を保証することが可能となる。
【００３１】
また、計時手段１ａの分解能を高めることにより、より短い周期でのパケット送信処理を実現することができる。更に、計時手段１ａの精度を高めることにより、よりジッタの低いパケット処理を実現することができる。また、送信対象のパケットデータの数と長さを保持し、送信周期を調節することにより、送信帯域制御に転用することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るデータ送信装置の主要部構成を示すブロック図。
【図２】データ送信装置の制御部における処理機能を示す図。
【図３】従来のデータ送信装置におけるパケット送信処理の一例を示す図。
【図４】従来のデータ送信装置におけるパケット送信処理の他の例を示す図。
【符号の説明】
【００３３】
１  制御部
１ａ  計時手段
２  記憶部
３  通信部
１０  アプリケーション層
１１  トランスポート層
１２  ネットワーク層
１３  データリンク層
１４  パケット判別手段
１５  周期データ処理手段
１６  周期データ用送信キュー
１７  出力用送信キュー
１８  物理デバイス
２０  ＯＳ
１００  データ送信装置
Ｐ１  周期データパケット
Ｐ２  非周期データパケット
【図１】
2008199092.tif 000003
【図２】
2008199092.tif 000004
【図３】
2008199092.tif 000005
【図４】
2008199092.tif 000006