(57)【要約】【課題】手続き型Ｉ／Ｏデータ処理において、全てのデータを平等に扱って定周期処理でＩ／Ｏモジュールに送信していたが、重要なデータを高速で送信するために定周期処理の周期を短くすると、制御ステーションの負荷を増大させてしまうという課題を解決する。【解決手段】Ｉ／Ｏドライバが送信データを一時保管するデータ格納領域を、優先度の高いデータを保管する高速用とその他のデータを保管する標準速用の２つに分けて、高速用データ格納領域のデータ送信周期を短くするようにした。制御ステーションの負荷を増大させることなく、重要なデータを高速で送信できる。【選択図】            図１
2004318315.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションおよびＩ／Ｏドライバを備えた制御ステーションと、この制御ステーションと通信バスで接続されるＩ／Ｏモジュールとを有し、前記アプリケーションは前記Ｉ／Ｏモジュールに送信すべきデータを前記Ｉ／Ｏドライバに出力し、前記Ｉ／Ｏドライバは入力した前記送信すべきデータを分割して、所定の周期で前記分割したデータを順次前記Ｉ／Ｏモジュールに送信するデータ通信装置において、
前記Ｉ／Ｏドライバは前記送信すべきデータを前記Ｉ／Ｏモジュールに送信する際に、優先度の高いデータの送信周期を短くし、優先度の低いデータの送信周期を長くするようにしたことを特徴とするデータ通信装置。
【請求項２】
前記制御ステーションは前記アプリケーションが出力する送信すべきデータを格納する少なくとも２つのデータ格納領域を有し、前記Ｉ／Ｏドライバは前記送信すべきデータの優先度によって前記少なくとも２つのデータ格納領域のうちどのデータ格納領域に格納するかを選択して格納し、優先度が高いデータが格納された前記データ格納領域のデータの送信周期を短くし、優先度が低いデータが格納された前記データ格納領域のデータの送信周期を長くして、前記Ｉ／Ｏモジュールに送信するようにしたことを特徴とする請求項１記載のデータ通信装置。
【請求項３】
前記アプリケーションは、前記送信すべきデータを前記少なくとも２つのデータ格納領域のうち、どのデータ格納領域に格納するかを指定するようにしたことを特徴とする請求項２記載のデータ通信装置。
【請求項４】
前記データ格納領域の数を２としたことを特徴とする請求項２または請求項３記載のデータ通信装置。
【請求項５】
アプリケーションおよびＩ／Ｏドライバを備えた制御ステーションと、この制御ステーションと通信バスで接続される複数のＩ／Ｏモジュールとを有し、前記Ｉ／Ｏドライバは所定の周期で前記Ｉ／Ｏモジュール内部レジスタを順次参照し、このＩ／Ｏモジュールのデータが更新されていればそのデータを読み出す構成のデータ通信装置において、
前記複数のＩ／Ｏモジュールに優先度を設定し、優先度の高いＩ／Ｏモジュールの前記内部レジスタの参照周期を短くし、優先度の低いＩ／Ｏモジュールの前記内部レジスタの参照周期を長くするようにしたことを特徴とするデータ通信装置。
【発明の詳細な説明】
【発明の属する技術分野】
この発明は、Ｉ／Ｏバスを介して通信を行う制御ステーションとＩ／Ｏモジュール間のデータ通信装置において、大量のデータをやりとりするために使用される手続き型データ処理の高速化に関するものである。
【０００１】
【従来の技術】
制御ステーションからＩ／Ｏモジュールにデータを送信する手法には、ウエイト型Ｉ／Ｏデータ処理と手続き型Ｉ／Ｏデータ処理の２種類がある。ウエイト型Ｉ／Ｏデータ処理は上位タスクがＩ／Ｏドライバにデータの出力を要求し、レスポンスがあるまで処理を中断するものである。上位アプリケーションと同期したデータが取得できる反面、データ量を増やすとそれだけ上位アプリケーションが動作できない時間が増え、システム全体の負荷が増大する欠点がある。従って、大量のデータやりとりには手続き型Ｉ／Ｏデータ処理が用いられる。
【０００２】
図３に、手続き型Ｉ／Ｏ要求によるデータ送信の構成とデータの流れを示す。
制御ステーション３内の上位ＡＰ（アプリケーション）タスク３１はカーネル３２にドライバコールを発して、Ｉ／Ｏドライバ３３に対してデータ送信を行う。
Ｉ／Ｏドライバ３３は自らが管理しているデータ格納領域３４に空き領域を探して、送られてきたデータを格納する。
【０００３】
この格納されたデータは、Ｉ／Ｏドライバ３３が起動する定周期のタイミングでＩ／Ｏモジュール４に送信される。また、Ｉ／Ｏドライバ３３は一定の周期でＩ／Ｏモジュール４からデータを受信する。このデータはカーネル３２を経由して、Ｉ／Ｏメールによって上位ＡＰタスク３１に送信される。
【０００４】
図４に、手続き型Ｉ／Ｏ要求における、上位ＡＰタスクからの送信データに対する受付処理と定周期処理の流れのシーケンスを示す。なお、図３と同じ要素には同一符号を付し、説明を省略する。また、Ｉ／ＯモジュールはＩＯＭと略記されている。
【０００５】
上位ＡＰタスク３１はカーネル３２を経由してＩ／Ｏドライバ３３にデータを送信し、Ｉ／Ｏドライバ３３は送信されたデータをバッファに格納するとドライバ受付完了通知を上位ＡＰタスク３１に送信する。従って、上位ＡＰタスク３１はデータを送信するとすぐに次の処理を行うことができるので、大きなデータを送信することが可能になる。そのため、ＩＯＭ４のコンフィギュレーション情報や、フィールドバスではＩＯＭ４の先に繋がるフィールド機器に対するデータ送信に利用されている。
【０００６】
それに対して、ＩＯＭ４は処理できるデータ量に限界があるので、上流側にあるＩ／Ｏドライバ３３は一定の周期でＩＯＭ４の状態を監視し、送信可能であればデータを分割して、処理できるだけのデータ量を送信する。そのため、カーネル３２は一定の周期でＩ／Ｏドライバ３３を呼び出し、Ｉ／Ｏドライバ３３はこの呼び出しに応じてＩＯＭ４にデータを分割して送信する。全てのデータがＩＯＭ４に送信されると、データ送信完了通知が上位ＡＰタスク３１に送られる。
【０００７】
図５に、Ｉ／Ｏドライバ３３におけるデータ送信の定周期処理のフローを示す。Ｉ／Ｏドライバ３３は複数のデータバッファを管理している。定周期処理ではこれら複数のバッファを順番にチェックし、未送信のデータをＩＯＭ４に送信する。
【０００８】
最初にｓｔｅｐ１でバッファの番号ｍを１に初期設定する。そして、ｓｔｅｐ２でデータバッファｍに要求されたデータがあるかどうかを調べて、なければｓｔｅｐ８に進む。要求されたデータがあればｓｔｅｐ３に進んで送信先ＩＯＭの情報を取得し、ｓｔｅｐ４で送信先ＩＯＭへ送信可能かどうかを調べる。
【０００９】
送信可能でなければｓｔｅｐ８に進み、送信可能であればｓｔｅｐ５でデータバッファｍからデータを切り出して通信フレームを作成する。そして、ｓｔｅｐ６で全てのデータの送信が完了したかを調べる。完了していなければｓｔｅｐ８に進み、完了していれば送信完了通知を上位ＡＰタスク３１に送信してｓｔｅｐ８に進む。
【００１０】
ｓｔｅｐ８で全てのデータバッファの処理が完了しているかを調べて、完了していれば次の定周期処理を開始する。完了していなければｍをインクリメントしてｓｔｅｐ２に戻り、次のデータバッファの処理を行う。
【００１１】
手続き型Ｉ／Ｏ要求では大量のデータを扱うので、これらのデータを効率的に処理しなければならない。特許文献１には、機能ブロックの内部パラメータを１つの構造体データとしてまとめて返信することにより、効率的にデータを送信する発明が記載されている。また、特許文献２には、Ｉ／Ｏドライバが複数のアプリケーションからの接続情報要求と、回線の使用状態情報を管理する手段を有したデータ通信装置の発明が記載されている。
【特許文献１】
特開２００１−３１３６５９号公報
【特許文献２】
特開２００２−２３２４３９号公報
【００１２】
【発明が解決しようとする課題】
しかしながら、このようなデータ通信装置には次のような課題があった。
【００１３】
近年、Ｉ／Ｏモジュールのインテリジェンスが向上し、また複数の機器と接続されることが多くなったために、制御ステーションとＩ／Ｏモジュールとの間で大量のデータを高速で送信しなければならないことが増えてきている。データの送信速度を高速化するためには定周期処理の周期を短くしなければならないが、短くすると制御ステーションの負荷が増大してしまうという課題があった。
【００１４】
また、制御ステーションと接続されるＩ／Ｏモジュールの枚数が増加したり、高速にデータのやりとりをしなければならないＩ／Ｏモジュールがあると定周期処理の周期を短くしなければならず、やはり制御ステーションの負荷増大を招いてしまうという課題もあった。
【００１５】
さらに、将来高速でデータのやりとりができる手法が確立されても、バッファに格納されたデータを機械的に送信する現行の方式ではその能力を有効に活用することができないという課題もあった。
【００１６】
従って本発明の目的は、送信するデータに優先度を設け、高速で送信しなければならないデータのみ短い周期で送信することにより、制御ステーションの負荷を増大させることなく必要なデータを高速で送信することができるデータ通信装置を提供することにある。
【００１７】
【課題を解決するための手段】
このような課題を解決するために、本発明のうち請求項１記載の発明は、アプリケーションおよびＩ／Ｏドライバを備えた制御ステーションと、この制御ステーションと通信バスで接続されるＩ／Ｏモジュールとを有し、前記アプリケーションは前記Ｉ／Ｏモジュールに送信すべきデータを前記Ｉ／Ｏドライバに出力し、前記Ｉ／Ｏドライバは入力した前記送信すべきデータを分割して、所定の周期で前記分割したデータを順次前記Ｉ／Ｏモジュールに送信するデータ通信装置において、前記Ｉ／Ｏドライバは前記送信すべきデータを前記Ｉ／Ｏモジュールに送信する際に、優先度の高いデータの送信周期を短くし、優先度の低いデータの送信周期を長くするようにしたものである。優先度の高いデータを高速で送信できる。
【００１８】
請求項２記載の発明は、請求項１記載の発明において、前記制御ステーションは前記アプリケーションが出力する送信すべきデータを格納する少なくとも２つのデータ格納領域を有し、前記Ｉ／Ｏドライバは前記送信すべきデータの優先度によって前記少なくとも２つのデータ格納領域のうちどのデータ格納領域に格納するかを選択して格納し、優先度が高いデータが格納された前記データ格納領域のデータの送信周期を短くし、優先度が低いデータが格納された前記データ格納領域のデータの送信周期を長くして、前記Ｉ／Ｏモジュールに送信するようにしたものである。優先度の高いデータを高速で送信できる。
【００１９】
請求項３記載の発明は、請求項２記載の発明において、前記アプリケーションは、前記送信すべきデータを前記少なくとも２つのデータ格納領域のうち、どのデータ格納領域に格納するかを指定するようにしたものである。効率的な処理ができる。
【００２０】
請求項４記載の発明は、請求項２または請求項３記載の発明において、前記データ格納領域の数を２とするようにしたものである。構成が簡単になる。
【００２１】
請求項５記載の発明は、アプリケーションおよびＩ／Ｏドライバを備えた制御ステーションと、この制御ステーションと通信バスで接続される複数のＩ／Ｏモジュールとを有し、前記Ｉ／Ｏドライバは所定の周期で前記Ｉ／Ｏモジュール内部のレジスタを順次参照し、このＩ／Ｏモジュールのデータが更新されていればそのデータを読み出す構成のデータ通信装置において、前記複数のＩ／Ｏモジュールに優先度を設定し、優先度の高いＩ／Ｏモジュールの内部レジスタの参照周期を短くし、優先度の低いＩ／Ｏモジュールの内部レジスタの参照周期を長くするようにしたものである。更新周期に応じて読み出せるため、効率がよくなる。
【発明の実施の形態】
以下に、図に基づいて本発明を詳細に説明する。
図１は本発明に係るデータ通信装置の一実施例を示す構成図である。図１において、１は制御ステーション、２はＩ／Ｏモジュールである。制御ステーション１は上位ＡＰタスク１１，カーネル１２，Ｉ／Ｏドライバ１３，高速データ格納領域１４および標準速データ格納領域１５で構成される。
【００２２】
上位ＡＰタスク１１はカーネル１２にドライバコールを発して、Ｉ／Ｏドライバ１３に対してデータ送信を行う。この際、高速データ格納領域１４に格納するか、標準速データ格納領域１５に格納するかを指定する。Ｉ／Ｏドライバ１３は自らが管理している高速データ格納領域１４と標準速データ格納領域１５のうち、指定されたデータ格納領域に空き領域を探して、送られてきたデータを格納する。
【００２３】
この格納されたデータは、Ｉ／Ｏドライバ１３が起動する定周期のタイミングでＩ／Ｏモジュール２に送信される。また、Ｉ／Ｏドライバ１３は一定の周期でＩ／Ｏモジュール２からデータを受信する。このデータはカーネル１２を経由して、Ｉ／Ｏメールによって上位ＡＰタスク１１に送信される。
【００２４】
このときに、Ｉ／Ｏドライバ１３が起動する定周期のタイミングを高速と標準速の２種類とする。例えば、高速の定周期を１００ｍＳ、標準速の定周期を５００ｍＳとする。高速の定周期が起動されたときは、Ｉ／Ｏドライバ１３は高速データ格納領域１４に格納されているデータのみを送信し、標準速の定周期が起動されたときは標準速データ格納領域１５に格納されたデータのみを送信するようにする。このようにすることにより、高速データ格納領域１４に格納されたデータは、標準速データ格納領域１５に格納されたデータの５倍の早さで送信できる。
【００２５】
図２に上位ＡＰタスクからの送信データに対する受付処理と定周期処理の流れのシーケンスを示す。なお、図１と同じ要素には同一符号を付し、説明を省略する。また、図４と同様にＩ／ＯモジュールはＩＯＭと略記されている。
【００２６】
上位ＡＰタスク１１はカーネル１２を経由してＩ／Ｏドライバ１３にデータを送信する。前述したように、このときに送信データをどのデータ格納領域に格納するかを指定する。Ｉ／Ｏドライバ１３は送信されたデータを指定されたデータ格納領域に格納するとドライバ受付完了通知を上位ＡＰタスク１１に送信する。
従って、上位ＡＰタスク３１はデータを送信するとすぐに次の処理を行うことができる。
【００２７】
カーネル１２は一定の周期でＩ／Ｏドライバ１３に定周期呼び出しを行う。このとき、高速定周期呼び出しと標準速定周期呼び出しの２種類の呼び出しを行う。例えば、高速定周期呼び出しは１００ｍＳ周期で、標準速定周期呼び出しは５００ｍＳ周期で行う。
【００２８】
Ｉ／Ｏドライバ１３は、カーネル１２から高速定周期呼び出しを受け取ったときは高速データ格納領域１４に格納されているデータを分割してＩＯＭ２に送信し、標準速定周期呼び出しを受け取ったときは標準速データ格納領域１５に格納されたデータを分割してＩＯＭ２に送信する。これにより、高速データ格納領域１４に格納されたデータは、標準速データ格納領域１５に格納されたデータの５倍の早さで送信することができる。
【００２９】
Ｉ／Ｏドライバ１３におけるデータ送信の定周期処理のフローは図５とほぼ同じなので説明を書略する。ただ、ｓｔｅｐ５で高速定周期呼び出しか標準速定周期呼び出しかによって、高速データ格納領域１４か標準速データ格納領域１５のいずれかを選択するようにすればよい。
【００３０】
Ｉ／Ｏドライバ１３がＩ／Ｏモジュール２からデータを読み出す際には、Ｉ／Ｏドライバ１３はＩ／Ｏモジュール２内のレジスタを順番に参照して、データが更新されていればそのデータを読み出す処理を定周期で繰り返す。すなわち、全てのＩ／Ｏモジュール２に対して優先度をつけないで、平等に読み出している。
【００３１】
近年、Ｉ／Ｏモジュール２の性能が向上し、多種類のデータを扱うようになっている。これらのデータの中にはデータ処理に時間がかかるために更新周期が長いデータも存在する。すなわち、Ｉ／Ｏモジュール２の中にはデータの更新周期が比較的短いものもあるが、データ処理に時間がかかるために更新周期が長くなってしまうＩ／Ｏモジュールも存在する。
【００３２】
これらのＩ／Ｏモジュール２内のデータを平等に読み出すと、更新周期が長いＩ／Ｏモジュール２では無駄にその内部レジスタを参照することになる。そのため、複数あるＩ／Ｏモジュール２に優先度を設け、データの更新周期が短いＩ／Ｏモジュール２のデータ読み出し頻度を高くするようにすればよい。
【００３３】
【発明の効果】
以上説明したことから明らかなように、本発明によれば次の効果が期待できる。
請求項１記載の発明によれば、アプリケーションがＩ／Ｏモジュールに送信すべきデータを前記Ｉ／Ｏドライバに出力し、前記Ｉ／Ｏドライバは入力した前記送信すべきデータを分割して所定の周期で前記分割したデータを順次前記Ｉ／Ｏモジュールに送信する、いわゆる手続き型のデータ通信装置において、前記Ｉ／Ｏドライバは前記送信すべきデータを前記Ｉ／Ｏモジュールに送信する際に、優先度の高いデータの送信周期を短くし、優先度の低いデータの送信周期を長くするようにした。また、請求項２記載の発明によれば、２つ以上のデータ格納領域を具備して、データの優先度によって格納領域を選択して格納し、優先度の高いデータが格納されたデータ格納領域のデータを短い周期で送信するようにした。
さらに、請求項３記載の発明では、どのデータ格納領域に格納するかをアプリケーションが指定するようにし、請求項４記載の発明ではデータ格納領域の数を２とした。
【００３４】
制御ステーションの負荷を増大させることなく、優先度の高いデータを高速でＩ／Ｏモジュールに送信することができるという効果がある。特に、フィールド機器へのデータ設定など定常的に送信しなければならないデータでは、制御ステーションとフィールド機器間の更新遅れを小さくできるという効果もある。
【００３５】
また、データの優先度によってデータ格納領域を分けることにより、簡単な構成で優先度によって送信周期を変えることができるという効果もある。通常は高速と標準速の２つに分ければ十分なので、データ格納領域の数を２とすることにより、構成を簡単にできる。さらに、データの優先度はアプリケーションが一番よく知っているので、アプリケーションが格納するデータ領域を選択することにより、効率的な処理ができるという効果もある。
【００３６】
請求項５記載の発明によれば、アプリケーションおよびＩ／Ｏドライバを備えた制御ステーションと、この制御ステーションと通信バスで接続される複数のＩ／Ｏモジュールとを有し、前記Ｉ／Ｏドライバは所定の周期で前記Ｉ／Ｏモジュール内部のレジスタを順次参照し、このＩ／Ｏモジュールのデータが更新されていればそのデータを読み出す構成のデータ通信装置において、前記複数のＩ／Ｏモジュールに優先度を設定し、優先度の高いＩ／Ｏモジュールの内部レジスタの参照周期を短くし、優先度の低いＩ／Ｏモジュールの内部レジスタの参照周期を長くするようにした。
【００３７】
Ｉ／Ｏモジュールのデータ更新周期に応じた周期でデータを読み出すことができるので、高速かつ効率的にデータを読み出すことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の一実施例の処理の流れを示すシーケンス図である。
【図３】従来のデータ通信装置の構成図である。
【図４】従来のデータ通信装置の処理の流れを示すシーケンス図である。
【図５】定周期の書き込み処理のフローチャートである。
【符号の説明】
１  制御ステーション
１１  上位ＡＰタスク
１２  カーネル
１３  Ｉ／Ｏドライバ
１４  高速データ格納領域
１５  標準速データ格納領域
２  Ｉ／Ｏモジュール
【図１】
2004318315.tif 000003
【図２】
2004318315.tif 000004
【図３】
2004318315.tif 000005
【図４】
2004318315.tif 000006
【図５】
2004318315.tif 000007