(57)【要約】【課題】送信側からデータを受け取ったことを示す受信確認情報の送信により装置間の通信効率が低下してしまうことを抑制し、データ転送の高速化を図ることが可能な通信システム及び通信方法を提供する。【解決手段】第１の通信装置と第２の通信装置との間でヘッダとデータ本体とを含むパケットを相互に送信する通信システム及び通信方法において、第２の通信装置は、所定の条件を満たすとき、第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と第１の通信装置に送信するデータ本体とを単一のパケットで送信する。【選択図】図２
2020010079.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と第２の通信装置との間でヘッダとデータ本体とを含むパケットを相互に送信する通信システムであって、
前記第２の通信装置は、所定の条件を満たすとき、前記第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と前記第１の通信装置に送信するデータ本体とを単一のパケットで送信する、
通信システム。
【請求項２】
前記所定の条件は、前記第１の通信装置から送信されたパケットの受信確認情報のデータ長と前記第２の通信装置から送信するデータ本体のデータ長との和が、前記第２の通信装置から前記第１の通信装置に送信可能な最大サイズのパケットにおけるペイロード長以下であることを含む、
請求項１に記載の通信システム。
【請求項３】
前記第２の通信装置は、前記第１の通信装置に送信するデータ本体が前記第１の通信装置からデータを読み出す読み出しコマンドであるとき、前記第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と前記第１の通信装置に送信するデータ本体とを単一のパケットで送信する、
請求項１又は２に記載の通信システム。
【請求項４】
前記第１の通信装置は、設備の動作手順を示す動作プログラムに従って当該設備を制御するプログラマブルコントローラのマスターモジュールであり、
前記第２の通信装置は、前記第１の通信装置とデータ交換バスを介してデータ交換を行う前記プログラマブルコントローラのスレーブモジュールである、
請求項１乃至３の何れか１項に記載の通信システム。
【請求項５】
第１の通信装置と第２の通信装置との間でヘッダとデータ本体とを含むパケットを相互に送信する通信方法であって、
前記第２の通信装置は、所定の条件を満たすとき、前記第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と前記第１の通信装置に送信するデータ本体とを単一のパケットで送信する、
通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム及び通信方法に関する。
【背景技術】
【０００２】
従来、例えばシーケンスプログラムに従って設備を制御するプログラマブルコントローラのモジュール間の通信は、受信側が送信側から一纏まりのデータを受け取ったとき、受信確認の信号（アクノリッジ信号）を送信側に送ることでハンドシェイクがなされている。特許文献１に記載のプログラマブルコントローラでは、マスターモジュールと複数のスレーブモジュールとが、リクエスト信号伝送線、アクノリッジ信号伝送線、データバス、ゲート信号伝送線で接続されており、データバスによってデータ転送がなされると共に、アクノリッジ信号伝送線を介してアクノリッジ信号が送信側に送られるように構成されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２０６２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年の通信技術及び半導体技術の高度化により、例えばプログラマブルコントローラにおいても、モジュール間の通信が例えば１００Ｍｂｐｓの高速シリアル通信により行われるようになってきている。この場合、受信確認のためのパケットが通信トラフィックを増大させて通信の高速化の妨げとなるおそれがある。
【０００５】
そこで、本発明は、送信側からデータを受け取ったことを示す受信確認情報の送信により装置間の通信効率が低下してしまうことを抑制し、データ転送の高速化を図ることが可能な通信システム及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の目的を達成するため、第１の通信装置と第２の通信装置との間でヘッダとデータ本体とを含むパケットを相互に送信する通信システムであって、前記第２の通信装置は、所定の条件を満たすとき、前記第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と前記第１の通信装置に送信するデータ本体とを単一のパケットで送信する、通信システムを提供する。
【０００７】
また、本発明は、上記の目的を達成するため、第１の通信装置と第２の通信装置との間でヘッダとデータ本体とを含むパケットを相互に送信する通信方法であって、前記第２の通信装置は、所定の条件を満たすとき、前記第１の通信装置から送信されたパケットを受信したことを示す受信確認情報と前記第１の通信装置に送信するデータ本体とを単一のパケットで送信する、通信方法を提供する。
【発明の効果】
【０００８】
本発明に係る通信システム及び通信方法によれば、送信側からデータを受け取ったことを示す受信確認情報の送信により装置間の通信効率が低下してしまうことを抑制し、データ転送の高速化を図ることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るプログラマブルコントローラ及びその周辺の接続構成例を示す概略構成図である。
【図２】（ａ）は、本実施の形態に係る通信方法により、モジュール間でコマンド・レスポンス方式の通信を行う場合のタイムチャートの一例である。（ｂ）は、比較例として示すタイムチャートである。
【図３】（ａ）は、本実施の形態に係る受信確認及びコマンドパケットの一例を示す説明図である。（ｂ）は、比較例に係る受信確認パケット及びコマンドパケットを示す説明図である。
【図４】（ａ）は、本実施の形態に係る通信方法により、モジュール間でサイクリック伝送を行う場合のタイムチャートの一例である。（ｂ）は、比較例として示すタイムチャートである。
【図５】（ａ）は、本実施の形態に係る受信確認及び書き込みデータパケットの一例を示す説明図である。（ｂ）は、比較例に係る受信確認パケット及び書き込みデータパケットを示す説明図である。
【発明を実施するための形態】
【００１０】
［実施の形態］
本発明の実施の形態について、図１乃至図５を参照して説明する。なお、以下に説明する実施の形態は、本発明を実施する上での好適な具体例として示すものであり、技術的に好ましい種々の技術的事項を具体的に例示している部分もあるが、本発明の技術的範囲は、この具体的態様に限定されるものではない。
【００１１】
図１は、本発明の実施の形態に係るプログラマブルコントローラ及びその周辺の接続構成例を示す概略構成図である。
【００１２】
プログラマブルコントローラ１は、電源モジュール１１、ＣＰＵモジュール１２、通信モジュール１３、出力モジュール１４、入力モジュール１５、及びこれら各モジュール１１〜１５が装着されたベース１０を有して構成されている。電源モジュール１１は、ベース１０に設けられたプリント基板の配線パターンを介して、各モジュール１２〜１５に電源を供給する。
【００１３】
プログラマブルコントローラ１は、設備２の動作手順を示す動作プログラムに従って設備２を制御する。動作プログラムは、例えば国際規格ＩＥＣ６１１３１−３に規定されたラダー言語によって記述されたシーケンスプログラムであり、予めユーザによって作成されてＣＰＵモジュール１２に記憶されている。また、ＣＰＵモジュール１２は、動作プログラムで用いられる各種のレジスタデータを記憶している。設備２は、例えば工作物（ワーク）の機械加工や組み立てを行う工作機械である。
【００１４】
出力モジュール１４は、設備２に設けられた複数のアクチュエータ２１に接続された複数の出力接点を有している。複数のアクチュエータ２１は、例えばソレノイドやモータ、あるいは油圧を制御する電磁切換弁等である。入力モジュール１５は、設備２に設けられた複数のセンサ２２からの入力信号によってオン／オフする複数の入力接点を有している。複数のセンサ２２は、例えば近接センサや光電センサ、あるいはリミットスイッチ等である。ＣＰＵモジュール１２は、入力モジュール１５から各入力接点の状態を示す信号を受信し、動作プログラムにしたがって各出力接点をオン／オフさせる信号を出力モジュール１４に送信することで、設備２を制御する。
【００１５】
通信モジュール１３には、設備２を操作及びモニタすることが可能な操作盤３のタッチパネルコンピュータ３１が通信ケーブル３０によって接続されている。本実施の形態では、タッチパネルコンピュータ３１がイーサネット（登録商標）によって通信モジュール１３との通信を行うものとする。通信ケーブル３０は、一方の端部の送信端子と他方の端部の受信端子とが接続されたクロスケーブルである。
【００１６】
操作盤３には、タッチパネルコンピュータ３１の他、設備２の自動運転モードと各個操作モードとを切り替えるセレクトスイッチ３２や、運転準備スイッチ３３、自動運転の起動を指示するための起動スイッチ３４、各個操作モードにおいてアクチュエータ２１を動作させる実行スイッチ３５、ならびに設備２の動作を即時停止させる非常停止スイッチ３６が設けられている。
【００１７】
タッチパネルコンピュータ３１は、通信ケーブル３０を介してプログラマブルコントローラ１から動作プログラムを読み出し、自動運転モードにおける動作プログラムの実行状況を画面に表示することが可能である。また、タッチパネルコンピュータ３１は、レジスタデータの数値情報をプログラマブルコントローラ１から読み出し、画面に表示してユーザに提示することが可能である。
【００１８】
またさらに、タッチパネルコンピュータ３１は、ユーザが画面に触れるタッチ操作によって動作プログラムやレジスタデータの書き換え指示を受け付け、その書き換え内容をプログラマブルコントローラ１に送信することで、動作プログラムやレジスタデータの書き換えを行わせることも可能である。
【００１９】
通信モジュール１３は、タッチパネルコンピュータ３１からの読み出し又は書き込み指令を受け付け、その指示内容をコマンドとしてＣＰＵモジュール１２に送る。ＣＰＵモジュール１２は、通信モジュール１３からのコマンドを受け付け、通信モジュール１３にレスポンスを返す。通信モジュール１３は、通信ケーブル３０を介してＣＰＵモジュール１２からのレスポンスをタッチパネルコンピュータ３１に送信する。
【００２０】
ＣＰＵモジュール１２と通信モジュール１３との通信は、本発明の通信システムによって行われる。この通信システムにおいて、ＣＰＵモジュール１２は、本発明の第１の通信装置に相当するマスターモジュールである。また、通信モジュール１３は、本発明の第２の通信装置に相当するスレーブモジュールである。ＣＰＵモジュール１２と通信モジュール１３とは、ベース１０に設けられたデータ交換バスを介するシリアル通信によってデータ交換を行う。
【００２１】
本実施の形態では、このデータ交換が、産業用オープンネットワークとして広く普及しつつあるEtherCAT（イーサキャット：登録商標）に部分的に準拠したプロトコルにより行われ、ＣＰＵモジュール１２と通信モジュール１３との間で送受信されるパケットの最小サイズ及び最大サイズが規定されている。最小サイズは、例えば８０バイトであり、下位の通信階層における通信の制御のために必要なヘッダ等のデータのバイト数（ヘッダ長）と、相手モジュールに送信すべき正味のデータのバイト数（ペイロード長）との和が最小サイズに満たない場合には、意味のない空データを付加したパケットを送信することとなる。パケットの最大サイズは、例えば１１５２バイトである。
【００２２】
また、本実施の形態では、相手モジュールから送信されたパケットの受信確認情報のデータ長（バイト数）と、自モジュールから相手モジュールに送信するデータ本体のデータ長（バイト数）との和（合計バイト数）が、相手モジュールに送信可能な最大サイズのパケットにおけるペイロード長以下であることを条件として、相手モジュールから送信されたパケットの受信確認情報と、相手モジュールに送信するデータ本体とを、単一のパケットで組み合わせて送信する。なお、上記の和が上記のペイロード長を超える場合には、データ本体を複数のパケットに分割して送信する。
【００２３】
ここで、最大サイズのパケットにおけるペイロード長とは、相手モジュールに送信可能な最大サイズのパケットのバイト数からヘッダ等の通信制御用のデータのバイト数を差し引いた正味のデータのバイト数をいう。換言すれば、ＣＰＵモジュール１２や通信モジュール１３がコマンドあるいはレスポンスなどのデータ本体の領域として任意に用いることができるデータの最大バイト数である。
【００２４】
また、本実施の形態では、通信モジュール１３からＣＰＵモジュール１２に送信するデータ本体の内容が、ＣＰＵモジュール１２からデータを読み出す読み出しコマンドであるとき、ＣＰＵモジュール１２から送信されたパケットを受信したことを示す受信確認情報と、ＣＰＵモジュール１２に送信するデータ本体（コマンドデータ）とを単一のパケットで送信する。このような読み出しコマンドは、その中身が読み出し開始アドレス及び読み出しデータサイズであることから、データ本体のデータ長が短く、ＣＰＵモジュール１２から送信されたパケットの受信確認情報と合わせて単一のパケットを構成することにより、モジュール間通信の効率を大きく改善することができる。
【００２５】
なお、ＣＰＵモジュール１２から送信されたパケットの受信確認情報のデータ長と、通信モジュール１３から送信するデータ本体のデータ長との和が、通信モジュール１３からＣＰＵモジュール１２に送信可能な最小サイズのパケットにおけるデータのペイロード長以下であることを、ＣＰＵモジュール１２から送信されたパケットの受信確認情報とＣＰＵモジュール１２に送信するデータ本体とを単一のパケットで送信するための条件としてもよい。パケットの最小サイズが規定されている場合において、この最小サイズのパケットで送信可能なデータ長の最大値よりも小さいデータを送る場合には、意味のない空データを付加してパケットを構成する必要があるが、上記の条件を満たすときに受信確認情報とデータ本体とを単一のパケットで送信すれば、空データを小さくしてモジュール間通信の効率改善に寄与することができる。
【００２６】
図２（ａ）は、本実施の形態に係る通信方法でＣＰＵモジュール１２と通信モジュール１３とがコマンド・レスポンス方式の通信を行う場合のタイムチャートの一例である。図２（ｂ）は、比較例として示す、本実施の形態に係る通信方法ではない従来の通信方法でＣＰＵモジュール１２と通信モジュール１３とがコマンド・レスポンス方式の通信を行う場合のタイムチャートの一例である。
【００２７】
図２（ａ）及び（ｂ）に示す例では、通信モジュール１３がＣＰＵモジュール１２に読み出しコマンドを送信し、ＣＰＵモジュール１２が記憶しているレジスタデータを読み出す場合のタイムチャートを示している。図２（ａ）及び（ｂ）に示す白抜きの矢印が一つのパケットであり、矢印の方向は送信の方向を示し、矢印の幅はパケット長を模式的に示している。図２（ａ）及び（ｂ）の横軸は時間軸である。
【００２８】
図２（ａ）及び（ｂ）において、Ｐ＿ｃｏｍは、通信モジュール１３がＣＰＵモジュール１２に発行する読み出しコマンドのパケットである。Ｐ＿ａｃｋは、読み出しコマンドに対してＣＰＵモジュール１２が通信モジュール１３にコマンドを受け付けたことを通知する受信確認のパケットである。Ｐ＿ｒｅｓは、読み出しコマンドに対してＣＰＵモジュール１２が通信モジュール１３に返すレスポンスのパケットであり、読み出しコマンドにおいて指定されたアドレス及びデータサイズのレジスタデータが含まれる。
【００２９】
また、図２（ａ）におけるＰ＿ａｃｋ＋ｃｏｍは、通信モジュール１３がＣＰＵモジュール１２に対してレスポンスを受け取ったことを通知する受信確認の情報と、通信モジュール１３がＣＰＵモジュール１２に発行する読み出しコマンドとを組み合わせたパケットである。図２（ｂ）において通信モジュール１３が送信するＰ＿ａｃｋは、ＣＰＵモジュール１２に対してレスポンス（Ｐ＿ｒｅｓ）を受け取ったことを通知する受信確認のパケットである。
【００３０】
図２（ａ）と図２（ｂ）との比較から明らかなように、本実施の形態に係る通信方法でモジュール間通信を行った場合には、Ｐ＿ａｃｋ及びＰ＿ｃｏｍの二つのパケットをＰ＿ａｃｋ＋ｃｏｍの単一のパケットにまとめることができるので、通信モジュール１３からのパケット送信回数を減らすことができる。これにより、パケットの送信に要する送信時間ならびに二つのパケットを連続して送る場合に不可避的に発生するパケット間の空白時間を削減することができ、通信を高速化することが可能となる。
【００３１】
図３（ａ）は、図２（ａ）にＰ＿ａｃｋ＋ｃｏｍで示す受信確認及びコマンドパケットの一例を示す説明図である。このパケットは、１６バイトのヘッダ、２バイトの受信確認情報、２９バイトのコマンドデータ、及び３３バイトの空きデータからなる。コマンドデータデータは、当該パケットのデータ本体である。
【００３２】
図３（ｂ）は、図２（ｂ）にＰ＿ａｃｋで示す受信確認パケット、及び図２（ｂ）にＰ＿ｃｏｍで示すコマンドパケットの一例を示す説明図である。受信確認パケットは、１６バイトのヘッダ、２バイトの受信確認情報、及び６２バイトの空きデータからなる。コマンドパケットは、１６バイトのヘッダ、２９バイトのコマンドデータ、及び３５バイトの空きデータからなる。
【００３３】
図３（ｂ）に示すように、受信確認パケットとコマンドパケットとを別個に送る場合には、通信モジュール１３が送信する空きデータが多くなり、通信効率が低下してしまうが、図３（ａ）に示すように受信確認情報とコマンドデータとを単一のパケットで送ることにより、通信モジュール１３が送信する空きデータを減らして通信効率を高めることができる。
【００３４】
図４（ａ）は、本実施の形態に係る通信方法でＣＰＵモジュール１２と通信モジュール１３とが、定期的にデータ交換を行うサイクリック伝送を行う場合のタイムチャートの一例である。図４（ｂ）は、比較例として示す、本実施の形態に係る通信方法ではない従来の通信方法でＣＰＵモジュール１２と通信モジュール１３とがサイクリック伝送を行う場合のタイムチャートの一例である。サイクリック伝送では、ＣＰＵモジュール１２と通信モジュール１３とが相互に書き込みデータを送信するが、ここでは、ＣＰＵモジュール１２が通信モジュール１３に送信するデータのサイズが、通信モジュール１３がＣＰＵモジュール１２に送信するデータのサイズよりも大きい場合について説明する。
【００３５】
図４（ａ）及び（ｂ）において、Ｐ＿ｄａｔＬは、ＣＰＵモジュール１２が通信モジュール１３に書き込みデータを送るサイクリック伝送のパケットである。Ｐ＿ａｃｋ＋ｄａｔＳは、Ｐ＿ｄａｔＬに対する受信確認、及び通信モジュール１３がＣＰＵモジュール１２に書き込みデータを送るサイクリック伝送のパケットである。Ｐ＿ａｃｋは、サイクリック伝送のパケットを受け取ったことを通知する受信確認のパケットである。Ｐ＿ｄａｔＳは、通信モジュール１３がＣＰＵモジュール１２に書き込みデータを送るサイクリック伝送のパケットである。
【００３６】
図４（ａ）と図４（ｂ）との比較から明らかなように、本実施の形態に係る通信方法でモジュール間のサイクリック伝送を行った場合には、Ｐ＿ａｃｋ及びＰ＿ｄａｔＳの二つのパケットをＰ＿ａｃｋ＋ｄａｔＳの単一のパケットにまとめることができるので、通信モジュール１３からのパケット送信回数を減らすことができる。これにより、パケットの送信に要する送信時間ならびに二つのパケットを連続して送る場合に不可避的に発生するパケット間の空白時間を削減することができ、サイクリック伝送を高速化することが可能となる。
【００３７】
図５（ａ）は、図４（ａ）にＰ＿ａｃｋ＋ｄａｔＳで示す受信確認及び書き込みデータパケットの一例を示す説明図である。このパケットは、１６バイトのヘッダ、２バイトの受信確認情報、２９バイトの書き込みデータ、及び３３バイトの空きデータからなる。書き込みデータは、当該パケットのデータ本体である。
【００３８】
図５（ｂ）は、図４（ｂ）にＰ＿ａｃｋで示す通信モジュール１３が送信する受信確認パケット、及び図４（ｂ）にＰ＿ｄａｔＳで示す書き込みデータパケットの一例を示す説明図である。受信確認パケットは、１６バイトのヘッダ、２バイトの受信確認情報、及び６２バイトの空きデータからなる。書き込みデータパケットは、１６バイトのヘッダ、２９バイトの書き込みデータ、及び３５バイトの空きデータからなる。
【００３９】
図５（ｂ）に示すように、受信確認パケットと書き込みデータパケットとを別個に送る場合には、コマンド・レスポンス方式の通信を行う場合と同様に、通信モジュール１３が送信する空きデータが多くなって通信効率が低下してしまうが、図５（ａ）に示すように受信確認情報と書き込みデータとを単一のパケットで送ることにより、通信モジュール１３が送信する空きデータを減らして通信効率を高めることができる。
【００４０】
（実施の形態の作用及び効果）
以上説明した本発明の実施の形態によれば、受信確認情報の送信によりモジュール間の通信効率が低下してしまうことを抑制し、データ転送の高速化を図ることが可能となる。
【００４１】
（付記）
以上、本発明を実施の形態に基づいて説明したが、これらの実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明した特徴の組合せの全てが発明の課題を解決するための手段に必須であるとは限らない点に留意すべきである。
【００４２】
また、本発明は、その趣旨を逸脱しない範囲で適宜変形して実施することが可能である。例えば、上記の実施の形態では、本発明の通信システム及び通信方式をプログラマブルコントローラのモジュール間通信に適用した場合について説明したが、これに限らず、様々な装置間の通信に本発明を適用することが可能である。
【符号の説明】
【００４３】
１…プログラマブルコントローラ
１２…ＣＰＵモジュール（第１の通信装置、マスターモジュール）
１３…通信モジュール（第２の通信装置、スレーブモジュール）
２…設備
【図１】
2020010079.tif 000003
【図２】
2020010079.tif 000004
【図３】
2020010079.tif 000005
【図４】
2020010079.tif 000006
【図５】
2020010079.tif 000007