JP7453061B2 - 通信制御システム及び通信制御方法 - Google Patents
通信制御システム及び通信制御方法 Download PDFInfo
- Publication number
- JP7453061B2 JP7453061B2 JP2020092873A JP2020092873A JP7453061B2 JP 7453061 B2 JP7453061 B2 JP 7453061B2 JP 2020092873 A JP2020092873 A JP 2020092873A JP 2020092873 A JP2020092873 A JP 2020092873A JP 7453061 B2 JP7453061 B2 JP 7453061B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- message
- slave
- packet
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims description 600
- 238000000034 method Methods 0.000 title claims description 23
- 238000005259 measurement Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 description 71
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 125000004122 cyclic group Chemical group 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012508 change request Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
- Small-Scale Networks (AREA)
Description
例えば、特許文献1に記載されているように、数値制御装置がDO信号(具体的にはDOデータ)をI/Oユニットに送信し、I/OユニットがDO信号を受信すると、DI信号(具体的にはDIデータ)を返信することで、DI信号及びDO信号(以下「I/O信号」ともいう)の入出力を行っている。ここで、上記DO信号及びDI信号のやり取りを「I/O通信」又は「DI/DO通信」ともいう。DIデータは、例えばスタートコード、ヘッダ、DIデータ、フッタ、CRC、ストップコードの集合体(以下「DIパケット」ともいう)として送信される。DOデータは、例えばスタートコード、ヘッダ、DOデータ、フッタ、CRC、ストップコードの集合体(以下「DOパケット」ともいう)として送信される。
図1に示すように、数値制御装置は、CPU(以下、「制御部」ともいう)、I/Oメモリ、及び通信マスタを備え、I/Oユニットは、CPU(制御部)、及び通信スレーブを備える。なお、I/Oユニットは、その種類によっては、CPU(制御部)を備えない場合もある。
なお、図2に記載されているように、マスタがスレーブに対してDO送信を行い、これに対して、スレーブがDI返信をする際に、スレーブは、マスタからDOパケットのヘッダを受信すると、DIパケットのヘッダ作成に移行するように構成される。
図3A及び図3Bは、それぞれ、数値制御装置(マスタ)と複数(N個:N≧3)のI/Oユニット(スレーブ)との間でメッセージ通信を行う場合の通信スケジュールの一例を示す図である。ここでは、予め設定された一定周期を2msとしている。図3Aを参照すると、2番目のI/Oユニットから数値制御装置に対して送信されるDIパケットにメッセージが組み込まれているが、N番目のI/Oユニット(スレーブ)とのDI/DO通信は予め設定された一定周期(例えば、2ms)以内に収まっているケースを例示している。
これに対して図3Bを参照すると、1番目と2番目のI/Oユニットから数値制御装置に対して送信されるDIパケットにメッセージが組み込まれている。このため、N番目のI/Oユニット(スレーブ)とのDI/DO通信が予め設定された一定周期(例えば、2ms)以内に収まらないケースを例示している。
このため、通常のサイクリック通信時に、数値制御装置(マスタ)と複数のI/Oユニット(スレーブ)との間で、メッセージ通信を行う場合であっても、予め設定された一定周期以内に、全てのI/Oユニット(スレーブ)との間で、少なくともDI信号及びDO信号のやり取り(DI/DO通信)を完了できるようにして、I/O信号の更新周期を担保することが望まれる。
前記通信マスタは、
前記複数の通信スレーブ毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される前記複数の通信スレーブ毎の通信予測時間と、前記一定周期毎に計測される最初の通信スレーブとの通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブとの通信開始前に当該通信スレーブに許容される通信帯域マージンデータ量を算出するマージンデータ量算出部と、
前記通信スレーブに対してDOデータを送信するときに前記通信帯域マージンデータ量を組み込んだDOパケットを作成し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DOメッセージを次回の通信周期に持ち越し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DOメッセージを前記DOパケットに組み込むDOパケット作成部と、
前記DOパケットを前記通信スレーブに送信するDO送信部と、を備え、
前記通信スレーブは、
前記通信マスタから送信されるDOパケットを受信するDO受信部と、
受信した前記DOパケットに含まれる前記通信帯域マージンデータ量を取得し、前記通信マスタに対してDIデータを送信するときにDIパケットを作成し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DIメッセージを次回の通信周期に持ち越し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DIメッセージを前記DIパケットに組み込むDIパケット作成部と、
前記DIパケットを前記通信マスタに送信するDI送信部と、を備える、
通信制御システムに関する。
Nを前記複数の通信スレーブの個数、kを前記通信マスタと接続される前記通信スレーブを識別するための順序番号、k番目の通信スレーブに許容される通信帯域マージンデータ量を通信帯域マージンデータ量_k、k番目の通信スレーブと通信されるDOメッセージをDOメッセージ_k、DIメッセージをDIメッセージ_k、と表したとき、
前記マージンデータ量算出部は、さらに、
k番目の通信スレーブにおいて、前記持ち越しDOメッセージ_k及び持ち越しDIメッセージ_kが存在しない場合、
k番目からN番目までの各通信スレーブにおける持ち越しDOメッセージ長及び持ち越しDIメッセージ長の最大値である持ち越しメッセージ長の合計値を算出し、
前記通信帯域マージンデータ量_kから、前記持ち越しメッセージ長の合計値を減算した値と、ゼロ値と、の内、大きい値を通信帯域マージンデータ量_kとして補正する、通信制御システムに関する。
前記通信マスタは、
前記複数の通信スレーブ毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される前記複数の通信スレーブ毎の通信予測時間と、前記一定周期毎に計測される最初の通信スレーブとの通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブとの通信開始前に当該通信スレーブに許容される通信帯域マージンデータ量を算出するマージンデータ量算出ステップと、
前記通信スレーブに対してDOデータを送信するときに前記通信帯域マージンデータ量を組み込んだDOパケットを作成し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DOメッセージを次回の通信周期に持ち越し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DOメッセージを前記DOパケットに組み込むDOパケット作成ステップと、
前記DOパケットを前記通信スレーブに送信するDO送信ステップと、を備え、
前記通信スレーブは、
前記通信マスタから送信されるDOパケットを受信するDO受信ステップと、
受信した前記DOパケットに含まれる前記通信帯域マージンデータ量を取得し、前記通信マスタに対してDIデータを送信するときにDIパケットを作成し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DIメッセージを次回の通信周期に持ち越し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DIメッセージを前記DIパケットに組み込むDIパケット作成ステップと、
前記DIパケットを前記通信マスタに送信するDI送信ステップと、を備える通信制御方法に関する。
前述したように、図1は、上記実施形態に係る、マスタとしての数値制御装置1と、スレーブとしての複数のI/Oユニット3と、を電気信号ケーブル6でデイジーチェーン接続して構成される通信制御システム1000の一例を示す概略図である。図1に示すように、マスタとしての数値制御装置1は、制御部10、I/Oメモリ12、及び通信マスタ15を備える。スレーブとしてのI/Oユニット3は、通信スレーブ35を含む。なお、I/Oユニットは、制御部30を備えてもよい。
そうすることで、各I/Oユニット3_kは、数値制御装置1との間で、入力信号(DI信号)/出力信号(DO信号)の入出力を行うことができる。
次に、通信制御システム1000の各構成要素について詳細に説明する。
図4は、マスタとしての数値制御装置1及びスレーブとしてのI/Oユニット3の機能ブロックを示す概略図である。数値制御装置1は、図4に示すように、例えば、制御部10、I/Oメモリ12、及び通信マスタ15と、を備える。
I/Oインタフェース部101は、通信マスタ15からI/Oユニット3_k(1≦k≦N)に対して送信するDOデータ及びメッセージを例えばI/Oメモリ部_k(1≦k≦N)に設定するとともに、通信マスタ15がI/Oユニット3_k(1≦k≦N)から受信したDIデータ及びメッセージを例えばI/Oメモリ部_k(1≦k≦N)から取得する。
通信マスタ15は、例えばI/Oメモリ部_k(1≦k≦N)から各I/Oユニット3_k(1≦k≦N)へ送信するDOデータ及び送信メッセージを入力し、通信スレーブ35_k(1≦k≦N)に対して送信する。後述するように、通信マスタ15は、各I/Oユニット3_k(1≦k≦N)に対して送信した送信メッセージ_kが送信完了となった場合、当該送信メッセージ_kの送信完了を制御部10(I/Oインタフェース部101)に対して例えばI/Oメモリ部_k(1≦k≦N)を介して、通知する。
また、後述するように、通信マスタ15は、各通信スレーブ35_k(1≦k≦N)からDIデータ及びメッセージ_kを受信し、I/Oユニット3_kからの送信メッセージ_kが受信完了となった場合、当該送信メッセージ_kの受信完了及び当該送信メッセージ_kを例えばI/Oメモリ部_k(1≦k≦N)に記録することで、制御部10(I/Oインタフェース部101)に対して通知することができる。そうすることで、制御装置1とI/Oユニット3_k(1≦k≦N)間でDI/DO通信及びメッセージの送受信を行うようにしてもよい。
図4に示すように、通信マスタ15は、現時点までの通信時間計測部151と、DI/DO通信時間計測部152Aと、DI/DO通信時間算出部152Bと、マージンデータ量算出部153と、DOパケット作成部155と、DO送信部158Aと、DI受信部158Bと、バッファメモリ159と、を有する。
バッファメモリ部_k(1≦k≦N)には、通信マスタ15と通信スレーブ35_k(1≦k≦N)との周期毎の通信に係る各種データが記憶されるようにしてもよい。具体的には、バッファメモリ部_kには、後述するスレーブ_k開始までの通信計測時間_k、DI/DO基本通信計測時間_k、DI/DO通信予測時間_k、帯域マージンデータ量_k、持ち越しDOメッセージ_kの有無、持ち越しDOメッセージ_k、持ち越しDOメッセージ_k長、持ち越しDIメッセージ_k長、及び持ち越しメッセージ_k長、を、通信マスタ15により記憶するようにしてもよい。なお、上記した各種データを制御パラメータともいう。
これらの制御パラメータに基づいて、通信マスタ15と各通信スレーブ35_k(1≦k≦N)との間でやりとりされる送信メッセージが通信されるように制御することができる。そうすることで、数値制御装置(マスタ)と複数のI/Oユニット(スレーブ)との間で、メッセージ通信を行う場合であっても、予め設定された一定周期以内に、全てのI/Oユニット(スレーブ)との間で、少なくともDI信号及びDO信号のやり取り(DI/DO通信)を完了できるようにして、I/O信号の更新周期を担保することができる。
現時点までの通信時間計測部151は、一定周期毎に、複数の通信スレーブ35_k(1≦k≦N)とDI/DO通信を行う際の通信開始(すなわち、一定周期の開始されたとき)から、現時点までの通信時間(以下、「Tnow」として表す)を計測し、前述したようにバッファメモリ159に記憶する。
具体的には、現時点までの通信時間計測部151は、一定周期の開始されたときから通信スレーブ35_k(1≦k≦N)とのDI/DO通信開始前(すなわち、通信スレーブ35_(k-1)とのDI/DO通信終了)までの通信時間を順番に計測する。簡単のために、当該計測時間をスレーブkまでの通信計測時間ともいい、Tnow(k)として表す。なお、k=1の場合は、通信計測時間_1は、通信スレーブ35_1との通信開始前であり、Tnow(1)=0とする。
すなわち、Tnow(k)は、一定周期の開始されたとき(通信スレーブ35_1との通信が開始されるとき)から通信スレーブ35_k(2≦k≦N)との通信開始前までを計測した時間を意味する。したがって、通信スレーブ35_1との通信開始から通信スレーブ35_kとの通信開始前までの間、通信スレーブ35_i(1≦i≦k-1)との間でメッセージ通信を行った場合、当該メッセージ送信中の時間を含むものとなる。
DI/DO通信時間計測部152Aは、一定周期毎に、通信マスタ15と各通信スレーブ35_k(1≦k≦N)との、送信メッセージを除くDIデータ及びDOデータのみの通信(I/O通信)に要した通信時間を計測し、前述したように例えばバッファメモリ部_kに記憶するようにしてもよい。すなわち、DI/DO通信時間計測部152Aは、通信マスタ15と通信スレーブ35_k(1≦k≦N)間において、DI/DO通信に加えてメッセージの送信中の時間を含む場合、当該メッセージの送信中の計測時間を除くDIデータ及びDOデータのみの通信(I/O通信)に要した通信時間を計測する。以下、当該計測時間を「DI/DO基本通信計測時間_k」ともいう。
DI/DO通信時間算出部152Bは、DI/DO通信時間計測部152Aにより、一定周期毎に通信スレーブ35_k(1≦k≦N)毎に計測されたDI/DO基本通信計測時間_kの集合に基づいて、所定の計算式により、各通信スレーブ35_kに係るDIデータ及びDOデータのみの通信(I/O通信)に要した通信時間に係る統計値を算出し、前述したようにバッファメモリ部_kに記憶する。以下、算出された通信時間に係る統計値を、「DI/DO通信予測時間_k」ともいう。具体的には、DI/DO通信時間算出部152Bは、予め設定された一定周期毎に、各通信スレーブ35_k(1≦k≦N)に対応して、それぞれDI/DO通信予測時間_kを算出する。
ここで、上記算出式は、各通信スレーブ35_k(1≦k≦N)の前記計測時間の集合に含まれる最大値を算出して、各通信スレーブ35_k(1≦k≦N)のDI/DO通信予測時間_kとしてもよい。また、前記計測集合に含まれる計測値の平均時間を各通信スレーブ35_k(1≦k≦N)のDI/DO通信予測時間_kとしてもよい。また、DI/DO基本通信計測時間_kの集合に基づいて算出できる任意の統計値としてもよい。
マージンデータ量算出部153Aは、一定周期毎に、複数の通信スレーブ35_i(1≦i≦N)とDI/DO通信を行う際の通信開始時から現時点までの通信時間、すなわち、一定周期の開始されたときから、通信スレーブ35_kとの通信開始前(=通信スレーブ35_(k-1)との通信終了後)までの通信計測時間(Tnow(k))及びまだ通信のなされていない通信スレーブ35_i(k≦i≦N)のDI/DO通信の予想通信時間との合計と、一定周期(以下、「Tcyc」として表す)と、の差分時間から、通信速度情報を用いて、当該差分時間に送信可能なデータ量(すなわち、あと何バイトデータが増えると帯域をあふれるか、すなわち、あと何バイト増えても帯域をあふれないかを示す目安)を算出し、前述したようにバッファメモリ部_kに記憶する。以下、この算出されたデータ量を「帯域マージンデータ量_k」という。
ここで、まだ通信のなされていない各通信スレーブ35_i(k≦i≦N)のDI/DO通信の予想通信時間として、それぞれDI/DO通信予測時間_i(k≦i≦N)を用いるようにしてもよい。
具体的には、データ転送レートをRATEとすると、帯域マージンデータ量_kは、以下の式1より算出される。
帯域マージンデータ量_k =
(Tcyc-(Tnow(k)+Σk≦i≦NDI/DO通信予測時間_i)/RATE
(式1)
図5は、n=3の場合の帯域マージンデータ量_3の算出の一例を示す図である。図5に示すように、DI/DO通信を行う際の通信開始時から現時点(通信スレーブ35_2)までの通信時間と、今後通信される通信スレーブ35_i(3≦i≦N)のDI/DO通信予測時間_iと、から残りの時間が算出され、通信速度情報を用いて、帯域マージンデータ量_3が算出される。
次に、DOパケット作成部155について詳細に説明する。DOパケット作成部155は、例えば前述したようにスタートコード、ヘッダ、DOデータ、メッセージ、フッタ、CRC、ストップコードの集合体であるDOパケットを作成する。ここで、DOデータは、予め設定された一定周期毎にI/Oユニット3_k(1≦k≦N)に送信されるDO信号である。メッセージは、I/Oユニット3_k(1≦k≦N)に送信するメッセージがある場合に、設定される。ヘッダには、通常のパケット通信に設定されるデータの外、例えば送信メッセージの有無と、送信メッセージ長と、帯域マージンデータ量_kの値と、が設定されるようにしてもよい。
DOパケット作成部155は、以下に述べる5つのケースに対応して、DOパケットを作成する。
今回の周期において、通信スレーブ35_k(1≦k≦N)に対して送信するDOメッセージ_kが無い場合(すなわち、新たに送信するDOメッセージ_k及び持ち越しDOメッセージ_kが無い場合)、DOパケット作成部155は、送信メッセージ無し、送信メッセージ_k長=0、及びマージンデータ量算出部153により算出された帯域マージンデータ量_kの値をヘッダ部に設定したDOパケット(「ケース1のDOパケット」という)を作成する。なお、バッファメモリ部_kに記憶された制御パラメータの値については更新しなくてもよい。
今回の周期において、通信スレーブ35_k(1≦k≦N)に対して新たに送信するDOメッセージ_kがあり、当該DOメッセージ_k長が帯域マージンデータ量_kの値を超えないと判定された場合、DOパケット作成部155は、DOパケットに当該DOメッセージ_kを組み込むとともに、送信メッセージ有り、送信メッセージ_k長、及び帯域マージンデータ量_kの値をヘッダ部に設定したDOパケット(「ケース2のDOパケット」という)を作成する。また、DOパケット作成部155は、持ち越しDOメッセージ_kの有無(=無し)、持ち越しDOメッセージ_k長=0をバッファメモリ部_kに記憶するようにしてもよい。
後述するDO送信部158Aにより、当該DOパケット(「ケース2のDOパケット」)を送信することで、制御部10から送信要求のあったメッセージは送信完了となる。この場合、後述するように、DO送信部158Aは、制御部10から送信要求された送信メッセージ_kの送信完了を制御部10(I/Oインタフェース部101)に対して例えばI/Oメモリ部_k(1≦k≦N)を介して、通知するようにしてもよい。なお、送信完了を契機として、DO送信部158Aは、持ち越しDOメッセージ_kの有無(=無し)、持ち越しDOメッセージ_k長=0をバッファメモリ部_kに記憶するようにしてもよい。
今回の周期において、通信スレーブ35_k(1≦k≦N)に対して新たに送信するDOメッセージ_kがあり、当該DOメッセージ_k長が帯域マージンデータ量_kの値を超えると判定された場合、DOパケット作成部155は、送信メッセージ無し、送信メッセージ_k長(=0)、及び帯域マージンデータ量_kの値をヘッダ部に設定したDOパケット(「ケース2のDOパケット」という)を作成する。
また、DOパケット作成部155は、当該DOメッセージ_kを持ち越しDOメッセージ_kとして、前述したように、持ち越しDOメッセージ_kの有無(有り)、持ち越しDOメッセージ_k、持ち越しDOメッセージ_k長をバッファメモリ部_kに記憶する。
なお、DOメッセージ_kを次回通信に持ち越すことから、後述するDO送信部158Aにより、当該DOパケットを送信しても、制御部10から送信要求のあったDOメッセージ_kは、送信完了とはならない。
今回の周期において、通信スレーブ35_k(1≦k≦N)に対して持ち越しDOメッセージ_kがあり、当該DOメッセージ_k長が帯域マージンデータ量_kの値を超えないと判定された場合、DOパケット作成部155は、DOパケットに当該DOメッセージ_kを組み込むとともに、送信メッセージ有り、送信メッセージ長_k長、及び帯域マージンデータ量_kの値をヘッダ部に設定したDOパケット(「ケース4のDOパケット」という)を作成する。また、DOパケット作成部155は、持ち越しDOメッセージ_kの有無(=無し)、持ち越しDOメッセージ_k長=0をバッファメモリ部_kに記憶するようにしてもよい。
後述するDO送信部158Aにより、当該DOパケット(「ケース4のDOパケット」)を送信することで、制御部10から送信要求のあったメッセージは送信完了となる。この場合、後述するように、DO送信部158Aは、制御部10から送信要求された送信メッセージ_kの送信完了を制御部10(I/Oインタフェース部101)に対して例えばI/Oメモリ部_k(1≦k≦N)を介して、通知するようにしてもよい。なお、送信完了を契機として、DO送信部158Aは、持ち越しDOメッセージ_kの有無(=無し)、持ち越しDOメッセージ_k長=0をバッファメモリ部_kに記憶するようにしてもよい。
今回の周期において、通信スレーブ35_k(1≦k≦N)に対して持ち越しDOメッセージ_kがあり、当該DOメッセージ_k長が帯域マージンデータ量_kの値を超えると判定された場合、DOパケット作成部155は、当該DOメッセージ_kを持ち越しDOメッセージ_kとして再度持ち越し、送信メッセージ無し、送信メッセージ_k長(=0)、及び帯域マージンデータ量_kの値をヘッダ部に設定したDOパケット(「ケース2のDOパケット」という)を作成する。
また、DOパケット作成部155は、バッファメモリ部_kに記憶されている、持ち越しDOメッセージ_kの有無(=有り)、持ち越しDOメッセージ_k、持ち越しDOメッセージ_k長については更新せず、そのままとする。
なお、持ち越しDOメッセージ_kを、さらに次回通信に持ち越すことから、後述するDO送信部158Aにより、当該DOパケットを送信しても、制御部10から送信要求のあったメッセージは、送信完了とはならない。
図6は、メッセージが帯域マージンデータ量_kに収まる場合と収まらない場合とに応じてメッセージを送信する周期の一例を示す図である。図6に示すように、メッセージ量が帯域マージンデータ量_k以下ならば、当該メッセージを送信し、メッセージ量が帯域マージンデータ量_kを超える場合、次回以降の通信で送信するように構成される。
DO送信部158Aは、周期毎にDOパケット作成部155により作成されたDOパケットを通信スレーブ35_k(1≦k≦N)に対して送信する。DO送信部158Aは、前述したように、ケース2のDOパケット及びケース4のDOパケットを送信完了すると、制御部10から送信要求された送信メッセージ_kの送信完了を制御部10(I/Oインタフェース部101)に対して例えばI/Oメモリ部_k(1≦k≦N)に記録することで、通知するようにしてもよい。また、DO送信部158Aは、前述したように、DOメッセージ_kの送信完了を契機として、持ち越しDOメッセージ_kの有無(=無し)、持ち越しDOメッセージ_k長(=0)をバッファメモリ部_kに記憶するようにしてもよい。
DI受信部158Bは、各通信スレーブ35_k(1≦k≦N)から送信されるDIデータ及び送信メッセージ_kを例えばバッファメモリ部_kを介して受信する。なお、各通信スレーブ35_k(1≦k≦N)から送信される送信メッセージ_kは、後述するように、次回以降の周期に持ち越すケースがある。後述するように、DIパケットのヘッダには、DIメッセージ_kが送信される場合は、DIメッセージの有無(=有り)、及びDIメッセージ_k長が設定され、DIメッセージ_kを次回以降の周期に持ち越す場合は、DIメッセージの有無(=無し)、及び持ち越しDIメッセージ_k長が設定されている。
DI受信部158Bは、各通信スレーブ35_k(1≦k≦N)から送信メッセージ_kを受信すると、I/Oユニット3_k(1≦k≦N)から受信した当該メッセージ_kを、制御部10(I/Oインタフェース部101)に対して例えばI/Oメモリ部_k(1≦k≦N)に記録することで、通知することができる。このとき、DI受信部158Bは、バッファメモリ部_kに、持ち越しDIメッセージ_k長(=0)を記憶するようにしてもよい。
また、DI受信部158Bは、受信したDIパケットのヘッダに設定された値(DIメッセージの有無(=無し)、及び持ち越しDIメッセージ_k長)から通信スレーブ35_k(1≦k≦N)がDIメッセージ_kを次回以降の周期に持ち越したと判定した場合、バッファメモリ部_kに、当該持ち越しDIメッセージ_k長を記憶するようにしてもよい。
以上、マスタとしての数値制御装置1について説明した。
次に、スレーブとしてのI/Oユニット3について説明する。
図4に、スレーブとしてのI/Oユニット3の機能ブロックを示す。
I/Oユニット3は、図4に示すように、例えば、制御部30、メモリ32、及び通信スレーブ35を備える。以降、特に断らない限り、I/Oユニット3_k(1≦k≦N)に共通の構成を説明する際に、I/Oユニット3と記載する。
制御部30は、当業者にとって公知のI/O信号制御機能部(図示せず)、及びI/Oインタフェース部301を有する。I/O信号制御機能部は、当業者にとって公知であり、説明は省略する。
I/Oインタフェース部301は、メモリ32を介して、数値制御装置1からのDO信号及びDOメッセージを通信スレーブ35から取得する。また、I/Oインタフェース部301は、マスタとしての数値制御装置1へのDI信号及びDIメッセージを、通信スレーブ35に対して送信するように、例えばメモリ32を介して設定するようにしてもよい。
具体的には、I/Oインタフェース部301は、数値制御装置1から送信されるDO信号及びDOメッセージを当該メモリ32から取得するとともに、数値制御装置1に対して送信するDI信号及びDIメッセージを当該メモリ32に設定する。
通信スレーブ35は、通信マスタ15から受信したDO信号及びDOメッセージを受信し、数値制御装置1からのDO送信メッセージが受信完了となった場合、当該DOメッセージの受信完了及び当該送信メッセージを例えばメモリ32に記録することで、制御部30(I/Oインタフェース部101)に対して通知することができる。
また、通信スレーブ35は、例えばメモリ32から数値制御装置1へのDIデータ及びDIメッセージを入力し、数値制御装置1に対してDI信号及びDIメッセージを送信する。後述するように、通信スレーブ35は、送信要求されたDIメッセージが送信完了となった場合、当該DIメッセージの送信完了を制御部30(I/Oインタフェース部301)に対して例えばメモリ32を介して、通知するようにしてもよい。
以下、特に断らない限り、通信スレーブ35_k(1≦k≦N)機能部の説明に際しては、通信スレーブ35と記載する。
今回の周期において、通信マスタ15に対して送信するDIメッセージが無い場合(すなわち、新たに送信するDIメッセージ及び持ち越しDIメッセージが無い場合)、DIパケット作成部355は、送信メッセージ無し、及び送信メッセージ長=0をヘッダ部に設定したDIパケット(「ケース1のDIパケット」という)を作成する。
今回の周期において、通信マスタ15に対して新たに送信するDIメッセージがあり、当該DIメッセージ長が、帯域マージンデータ量の値を超えないと判定された場合、DIパケット作成部355は、DIパケットに当該DIメッセージを組み込むとともに、送信メッセージ有り、及び送信メッセージ_k長をヘッダ部に設定したDIパケット(「ケース2のDIパケット」という)を作成する。また、DIパケット作成部155は、持ち越しDIメッセージの有無(=無し)、持ち越しDIメッセージ_k長=0を例えばバッファメモリ359に記憶するようにしてもよい。
後述するDI送信部358Aにより、当該DIパケット(「ケース2のDIパケット」)を送信することで、制御部30から送信要求のあったメッセージは送信完了となる。この場合、後述するように、DI送信部358Aは、送信要求された送信メッセージの送信完了を制御部30(I/Oインタフェース部301)に対して例えばメモリ32を介して、通知するようにしてもよい。
今回の周期において、通信マスタ15に対して新たに送信するDIメッセージがあり、当該DIメッセージ長が帯域マージンデータ量の値を超えると判定された場合、DIパケット作成部355は、当該DIメッセージを持ち越しDIメッセージとして、持ち越しDIメッセージの有無(=有り)、持ち越しDIメッセージ、持ち越しDIメッセージ長を例えばバッファメモリ359に記憶する。
DIパケット作成部355は、送信メッセージ無し、送信メッセージ長に持ち越しDIメッセージ長をヘッダ部に設定したDIパケット(「ケース3のDIパケット」という)を作成する。そうすることで、通信スレーブ35は、通信マスタ15に対して、DIメッセージの送信は行わず、(持ち越された)DIメッセージ長を返信する。それにより、前述したように、通信マスタ15は、受信したDIパケットから、DIメッセージが次回通信に持ち越されたことを検知することができる。
なお、DIメッセージを次回通信に持ち越すことから、後述するDI送信部358Aにより、当該DIパケットを送信しても、制御部30から送信要求のあったDIメッセージは、送信完了とはならない。
今回の周期において、通信マスタ15に対して持ち越しDIメッセージがあり、当該DIメッセージ長が帯域マージンデータ量の値を超えないと判定された場合、DIパケット作成部355は、DIパケットに当該DIメッセージを組み込むとともに、送信メッセージ有り、送信メッセージ長をヘッダ部に設定したDIパケット(「ケース4のDIパケット」という)を作成する。また、DIパケット作成部355は、持ち越しDIメッセージの有無(=無し)、持ち越しDIメッセージ長=0を例えばバッファメモリ359に記憶するようにしてもよい。
後述するDI送信部358Aにより、当該DIパケット(「ケース4のDIパケット」)を送信することで、制御部30から送信要求のあったメッセージは送信完了となる。この場合、後述するように、DI送信部358Aは、送信要求された送信メッセージの送信完了を制御部30(I/Oインタフェース部301)に対して例えばメモリ32を介して、通知するようにしてもよい。なお、送信完了を契機として、DI送信部358Aは、持ち越しDIメッセージの有無(=無し)、持ち越しDIメッセージ長=0を例えばバッファメモリ359に記憶するようにしてもよい。
今回の周期において、通信マスタ15に対して持ち越しDIメッセージがあり、当該DIメッセージ長が帯域マージンデータ量の値を超えると判定された場合、DIパケット作成部355は、当該DIメッセージを持ち越しDIメッセージとして再度持ち越し、送信メッセージ無し、送信メッセージ長に持ち越しDIメッセージ長をヘッダ部に設定したDIパケット(「ケース5のDIパケット」という)を作成する。そうすることで、通信スレーブ35は、通信マスタ15に対して、DIメッセージの送信は行わず、(持ち越された)DIメッセージ長を返信する。この場合、バッファメモリ359に記憶されている、持ち越しDIメッセージの有無(=有り)、持ち越しDIメッセージ、持ち越しDOメッセージ長については更新せず、そのままとする。
なお、DIメッセージを次回通信に持ち越すことから、後述するDI送信部358Aにより、当該DIパケットを送信しても、制御部30から送信要求のあったDIメッセージは、送信完了とはならない。
DI送信部358Aは、一定周期毎にDIパケット作成部355により作成されたDIパケットを通信マスタ15に対して送信する。DI送信部358Aは、前述したように、ケース2のDIパケット及びケース4のDIパケットを送信完了すると、制御部30から送信要求された送信メッセージの送信完了を制御部30(I/Oインタフェース部301)に対して例えばメモリ32に記録することで、通知するようにしてもよい。
DO受信部358Bは、通信マスタ15から送信されるDOデータ及び送信メッセージをバッファメモリ359を介して受信する。DO受信部358Bは、DOパケットのヘッダを受信すると、前述したとおり、DIパケットのヘッダ作成に移行するように構成される。
なお、DO受信部358Bは、通信マスタ15からDOメッセージが送信される場合は、当該DOメッセージを受信すると、制御部30(I/Oインタフェース部301)に対して例えばメモリ32に記録することで、通知することができる。
以上、スレーブとしてのI/Oユニット3について説明した。
ステップS11において、通信マスタ15は、一定周期毎の周期開始タイミングを検知する。
ステップS12において、通信マスタ15は、一定周期毎に全ての通信スレーブ35_k(1≦k≦N)との通信を1回ずつ、サイクリックに通信を行うことを制御するため、インデックスとしてのi及びTnowを初期設定し、Tnowの測定を開始する。なお、初期設定は、i=1、Tnow=0とする。
ステップS14において、通信マスタ15(DOパケット作成部155)は通信スレーブ35_iに対して送信するDOパケット_iを作成する。具体的には、前述したように、ケース1からケース5のいずれかに対応するDOパケット_iを作成する。
ステップS15において、通信マスタ15(DO送信部158A)は、通信スレーブ35_iに対してDOパケット_iを送信するとともに、通信マスタ15(DI受信部158B)は、通信スレーブ35_iから送信されるDIパケット_iを受信する。
ステップS17において、通信マスタ15(DO送信部158A)は、制御部10から送信要求のあったDOメッセージ_iを送信完了したと判定し、I/Oメモリ12(I/Oメモリ部_i)に、送信メッセージ_iの送信完了を記録する。
ステップS18において、通信マスタ15は、受信したDIパケット_iに係る処理をする。具体的には、スレーブ3_iからのDIメッセージ_iを受信した場合、例えばI/Oメモリ12(I/Oメモリ部_i)に、スレーブ3_iからのDIメッセージ_iを記録する。なお、スレーブ3_iからのDIメッセージ_iを受信しなかった場合であって、DIメッセージ_iを次回以降の周期に持ち越したと判定した場合、バッファメモリ部_iに、当該持ち越しDIメッセージ_i長を記憶するようにしてもよい。
ステップS19において、通信マスタ15(DI/DO通信時間算出部152B)は、DI/DO通信時間計測部152Aにより計測された、DI/DO基本通信計測時間_iを用いて、DI/DO通信予測時間_iを更新する。
ステップ21において、i=i+1として、ステップS13に移る。
以上、マスタとしての数値制御装置1が、予め設定された一定周期毎に、スレーブとしての全てのI/Oユニット3_i(1≦i≦N)との通信を1回ずつ、サイクリックにDI/DO通信を行うとともに、DI/DOメッセージを送受信する処理フローを示した。
図8を参照すると、ステップS30において、通信スレーブ35_k(DO受信部358B)は、通信マスタ15からのDO通信を検知する。
ステップS31において、通信スレーブ35_k(DO受信部358B)は、通信マスタ15から送信されるDOパケットを受信する。通信マスタ15から受信したDOパケットのヘッダにおいて、帯域マージンデータ量を検出する。(前述したように、DO受信部358BがDOのヘッダを受信すると、ステップS32に移行することができる)。
ステップS32において、通信スレーブ35_k(DO受信部358B)は、DOメッセージ_kの有無を検出する。DOメッセージ_kを受信した場合、ステップS33に移る。DOメッセージ_kを受信しなかった場合、ステップS34に移る。
ステップS33において、通信スレーブ35_k(DO受信部358B)は、数値制御装置1からの1つの送信メッセージを受信したと判定し、メモリ32に、通信マスタ15からのDOメッセージを記録する。
ステップS34において、通信スレーブ35_k(DIパケット作成部355)は、DIパケットを作成する。具体的には、前述したように、ケース1からケース5のいずれかに対応するDIパケットを作成する。
ステップS35において、通信スレーブ35_k(DI送信部358A)は、DIパケットを通信マスタ15に対して送信する。
ステップS36において、通信スレーブ35_k(DI送信部358A)は、通信マスタ15へDIメッセージを送信した場合、ステップS37に移る。それ以外の場合、ステップS30に移る。
ステップS37において、通信スレーブ35_k(DI送信部358A)は、スレーブ3_iからの1つの送信メッセージを送信完了したと判定し、メモリ32に、当該送信メッセージの送信完了を記録する。その後、ステップS30に移る。
以上、スレーブとしてのI/Oユニット3_k(1≦k≦N)が、予め設定された一定周期毎に、マスタとしての数値制御装置1との通信を1回ずつ、サイクリックにDI/DO通信を行うとともに、メッセージを送信する処理フローを示した。
第2実施形態では、マージンデータ量算出部153は、次回の周期の通信において、DO通信及び/又はDI通信において持ち越しメッセージ_iがある場合、当該持ち越しメッセージ_iの送信を優先することができるように、帯域マージンデータ量_kの値を補正する機能を備える。以下、当該機能を有するマージンデータ量算出部をマージンデータ量算出部153Aと表す。
図9は、第2実施形態に係るマスタとしての通信制御装置1の機能ブロックを示す概略図である。
すなわち、持ち越しDOメッセージ_k及び/又は持ち越しDIメッセージ_kが存在する場合、当該持ち越しDOメッセージ_k及び/又は持ち越しDIメッセージ_kの送信を優先させるため、マージンデータ量算出部153Aは、帯域マージンデータ量_kをそのまま適用する。そうすることで、当該持ち越しDOメッセージ_k及び/又は持ち越しDIメッセージ_kの送信を優先させることができる。
他方、持ち越しDOメッセージ_k及び持ち越しDIメッセージ_kが存在しない場合、(k+1)以降の持ち越しDOメッセージ_i及び/又は持ち越しDIメッセージ_iの送信を優先させるため、マージンデータ量算出部153Aは、帯域マージンデータ量_kを補正する。
まず、持ち越しメッセージ_i長を以下のように定義する。
持ち越しメッセージ_i長
= MAX(持ち越しDOメッセージ_i長,持ち越しDIメッセージ_i長)
(式2)
なお、持ち越しDOメッセージ_iが無い場合、持ち越しDOメッセージ_i長を0とする。同様に、持ち越しDIメッセージ_iが無い場合、持ち越しDIメッセージ_i長を0とする。
そして、帯域マージンデータ量_kの値から、(k+1)以降の持ち越しメッセージ_i長を予め確保する。具体的には、以下のように、帯域マージンデータ量_kから、(k+1)以降の持ち越しメッセージ_i長を差し引くように補正する。
補正後の帯域マージンデータ量_k =
帯域マージンデータ量_k - Σk≦i≦N持ち越しメッセージ_i長
(式3)
なお、(式3)において、持ち越しメッセージ_k長は0である。
以上のように、マージンデータ量算出部153Aは、現時点までの通信時間Tnow(i)、持ち越しメッセージ_n長(n≧i)、及びDI/DO通信予測時間_n(n≧i)を用いて、補正後の帯域マージンデータ量_iを算出する。
すなわち、マスタ1は複数のスレーブ3_k(1≦k≦N)と、同時にメッセージ通信を行う場合であっても、次回の周期の通信において、持ち越しメッセージ_iがある場合、持ち越しメッセージ_iの送信を優先することで、予め設定された一定周期以内に、全てのスレーブ3_kとの間で、少なくともDI信号及びDO信号のやり取り(DI/DO通信)を完了するとともに、メッセージ送信要求からの遅延を小さくすることができる。
なお、マージンデータ量算出部153A以外の機能部については、その機能の説明中の「マージンデータ量算出部153」を「マージンデータ量算出部153A」に読み換え、「帯域マージンデータ量_k」を「補正帯域マージンデータ量_k」に読み換えることで説明されるので、各機能部について重複した説明は省略する。
なお、通信スレーブ35の機能部についても、その機能の説明中の「帯域マージンデータ量_k」を「補正帯域マージンデータ量_k」に読み換えることで説明されるので、各機能部について重複した説明は省略する。以上、第2実施形態における通信マスタ15及び通信スレーブ35の機能部の構成について説明した。
次に、第2実施形態の動作について説明する。
まず、ステップ13においては、「マージンデータ量算出部153は、現時点までの通信時間Tnow(i)、DI/DO通信予測時間_n(n≧i)を用いて、帯域マージンデータ量_iを更新する」を「マージンデータ量算出部153Aは、現時点までの通信時間Tnow(i)、持ち越しメッセージ_n長(n≧i)、DI/DO通信予測時間_n(n≧i)を用いて、補正帯域マージンデータ量_iを更新する」と読み換えるものとする。
また、ステップS18においては、通信マスタ15(マージンデータ量算出部153)は、通信スレーブ35_iから受信したDIパケットのヘッダを参照して、持ち越しDIメッセージの有無を検出し、持ち越しメッセージ_i長を更新する機能を追加する。
また、各ステップにおいては、「マージンデータ量算出部153」を「マージンデータ量算出部153A」に読み換え、「帯域マージンデータ量_k」を「補正帯域マージンデータ量_k」に読み換える。
以上により、第2実施形態におけるマスタとしての数値制御装置1の動作を示すフローチャートは説明されるので、各ステップについて重複した説明は省略する。
また、第2実施形態におけるスレーブとしてのI/Oユニット3の動作についても、図8に記載の第1実施形態におけるI/Oユニット3の動作を示すフローチャートの各ステップにおいて、「帯域マージンデータ量_k」を「補正帯域マージンデータ量_k」に読み換えることで説明されるので、各ステップについて重複した説明は省略する。
以上説明した第2実施形態により、マスタ1は複数のスレーブ3_k(1≦k≦N)と、同時にメッセージ通信を行う場合であっても、次回の周期の通信において、持ち越しメッセージ_iがある場合、持ち越しメッセージ_iの送信を優先することで、予め設定された一定周期以内に、全てのスレーブ3_kとの間で、少なくともDI信号及びDO信号のやり取り(DI/DO通信)を完了するとともに、メッセージ送信要求からの遅延を小さくすることができる。
以上、本発明の第2実施形態について説明した。
また、本発明で使用する動作プログラムを初めとするプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上述した実施形態では、制御装置として数値制御装置1を例として説明したが、これに限られない。前述したように、ロボットコントローラ等、産業用機械の制御装置における高速シリアル通信にも適用してもよい。
通信マスタ15は、
複数の通信スレーブ35毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される複数の通信スレーブ35毎の通信予測時間と、一定周期毎に計測される最初の通信スレーブ35との通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブ35との通信開始前に当該通信スレーブ35に許容される通信帯域マージンデータ量を算出するマージンデータ量算出部153と、
通信スレーブ35に対してDOデータを送信するときに通信帯域マージンデータ量を組み込んだDOパケットを作成し、通信スレーブ35に対するDOメッセージの長さが通信帯域マージンデータ量を超える場合、DOメッセージを次回の通信周期に持ち越し、通信スレーブ35に対するDOメッセージの長さが通信帯域マージンデータ量を超えない場合、DOメッセージをDOパケットに組み込むDOパケット作成部155と、
DOパケットを通信スレーブ35に送信するDO送信部158Aと、を備え、
通信スレーブ35は、
通信マスタ15から送信されるDOパケットを受信するDO受信部358Bと、
受信したDOパケットに含まれる通信帯域マージンデータ量を取得し、通信マスタ15に対してDIデータを送信するときにDIパケットを作成し、通信マスタ15に対するDIメッセージの長さが通信帯域マージンデータ量を超える場合、DIメッセージを次回の通信周期に持ち越し、通信マスタ15に対するDIメッセージの長さが通信帯域マージンデータ量を超えない場合、DIメッセージをDIパケットに組み込むDIパケット作成部355と、
DIパケットを通信マスタ15に送信するDI送信部358Aと、を備える。
これにより、通常のサイクリック通信時に、制御装置1(マスタ)と複数のI/Oユニット(スレーブ)との間で、DI/DOメッセージ通信を行う場合であっても、予め設定された一定周期以内に、全てのI/Oユニット3(スレーブ)との間で、少なくともDI信号及びDO信号のやり取り(DI/DO通信)を完了できるようにして、I/O信号の更新周期を担保することができる。
Nを複数の通信スレーブ35の個数、kを通信マスタ15と接続される通信スレーブ35を識別するための順序番号、k番目の通信スレーブ35に許容される通信帯域マージンデータ量を通信帯域マージンデータ量_k、k番目の通信スレーブ35と通信されるDOメッセージをDOメッセージ_k、DIメッセージをDIメッセージ_k、と表したとき、
マージンデータ量算出部153Aは、さらに、
k番目の通信スレーブ35において、持ち越しDOメッセージ_k及び持ち越しDIメッセージ_kが存在しない場合、
k番目からN番目までの各通信スレーブ35における持ち越しDOメッセージ長及び持ち越しDIメッセージ長の最大値である持ち越しメッセージ長の合計値を算出し、
通信帯域マージンデータ量_kから持ち越しメッセージ長の合計値を減算した値と、ゼロ値と、の内、大きい値を通信帯域マージンデータ量_kとして補正するようにしてもよい。
これにより、次回の周期の通信において、持ち越しメッセージ_iがある場合、持ち越しメッセージ_iの送信を優先することで、メッセージ送信要求からの遅延を小さくすることができる。
これにより、通信予測時間をより安全な値とすることができる。
これにより、通信予測時間を特定のDI/DO通信時間に偏らないようにすることができる。
通信マスタ15を備える制御装置1と、制御装置1にデイジーチェーンにより通信可能に接続された通信スレーブ35をそれぞれ備える複数のI/Oユニット3との間で、予め設定された一定周期毎に、制御装置1が全てのI/Oユニット3とI/O信号を送受信する通信制御方法であって、
通信マスタ15は、
複数の通信スレーブ35毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される、複数の通信スレーブ35毎の通信予測時間と、一定周期毎に計測される最初の通信スレーブ35との通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブ35の通信開始前に、当該通信スレーブ35に許容される通信帯域マージンデータ量を算出するマージンデータ量算出ステップと、
通信スレーブ35に対して、DOデータを送信するときに、通信帯域マージンデータ量を組み込んだDOパケットを作成し、通信スレーブ35に対するDOメッセージの長さが通信帯域マージンデータ量を超える場合、DOメッセージを次回の通信周期に持ち越し、通信スレーブ35に対するDOメッセージの長さが通信帯域マージンデータ量を超えない場合、DOメッセージをDOパケットに組み込むDOパケット作成ステップと、
DOパケットを通信スレーブ35に送信するDO送信ステップと、を備え、
通信スレーブ35は、
通信マスタ15から送信されるDOパケットを受信するDO受信ステップと、
受信したDOパケットに含まれる通信帯域マージンデータ量を取得し、通信マスタ15に対して、DIデータを送信するときに、DIパケットを作成し、通信マスタに対するDIメッセージの長さが通信帯域マージンデータ量を超える場合、DIメッセージを次回の通信周期に持ち越し、通信マスタに対するDIメッセージの長さが通信帯域マージンデータ量を超えない場合、DIメッセージをDIパケットに組み込むDIパケット作成ステップと、
DIパケットを通信マスタ15に送信するDI送信ステップと、を備える。
これにより、(1)と同様の効果を奏することができる。
10 制御部
101 I/Oインタフェース部
12 I/Oメモリ
15 通信マスタ
151 現時点までの通信時間計測部
152A DI/DO通信時間計測部
152B DI/DO通信時間算出部
153,153A マージンデータ量算出部
155 DOパケット作成部
158A DO送信部
158B DI受信部
159 バッファメモリ
3 I/Oユニット
30 制御部
301 I/Oインタフェース部
32 メモリ
35 通信スレーブ
355 DIパケット作成部
358A DI送信部
358B DO受信部
359 バッファメモリ
6 電気信号ケーブル
1000 通信制御システム
Claims (5)
- 通信マスタを備える制御装置と、前記制御装置にデイジーチェーンにより通信可能に接続された通信スレーブをそれぞれ備える複数のI/Oユニットとの間で、予め設定された一定周期毎に、前記制御装置が全てのI/OユニットとI/O信号を送受信する通信制御システムにおいて、
前記通信マスタは、
前記複数の通信スレーブ毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される前記複数の通信スレーブ毎の通信予測時間と、前記一定周期毎に計測される最初の通信スレーブとの通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブの通信開始前に、当該通信スレーブに許容される通信帯域マージンデータ量を算出するマージンデータ量算出部と、
前記通信スレーブに対してDOデータを送信するときに前記通信帯域マージンデータ量を組み込んだDOパケットを作成し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DOメッセージを次回の通信周期に持ち越し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DOメッセージを前記DOパケットに組み込むDOパケット作成部と、
前記DOパケットを前記通信スレーブに送信するDO送信部と、を備え、
前記通信スレーブは、
前記通信マスタから送信されるDOパケットを受信するDO受信部と、
受信した前記DOパケットに含まれる前記通信帯域マージンデータ量を取得し、前記通信マスタに対してDIデータを送信するときにDIパケットを作成し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DIメッセージを次回の通信周期に持ち越し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DIメッセージを前記DIパケットに組み込むDIパケット作成部と、
前記DIパケットを前記通信マスタに送信するDI送信部と、を備える、
通信制御システム。 - Nを前記複数の通信スレーブの個数、kを前記通信マスタと接続される前記通信スレーブを識別するための順序番号、k番目の通信スレーブに許容される通信帯域マージンデータ量を通信帯域マージンデータ量_k、k番目の通信スレーブと通信されるDOメッセージをDOメッセージ_k、DIメッセージをDIメッセージ_k、と表したとき、
前記マージンデータ量算出部は、さらに、
k番目の通信スレーブにおいて、前記持ち越しDOメッセージ_k及び持ち越しDIメッセージ_kが存在しない場合、
k番目からN番目までの各通信スレーブにおける持ち越しDOメッセージ長及び持ち越しDIメッセージ長の最大値である持ち越しメッセージ長の合計値を算出し、
前記通信帯域マージンデータ量_kから、前記持ち越しメッセージ長の合計値を減算した値と、ゼロ値と、の内、大きい値を通信帯域マージンデータ量_kとして補正する、請求項1に記載の通信制御システム。 - 前記通信スレーブ毎に算出される通信予測時間は、現時点までに前記通信スレーブ毎に計測された通信計測時間のうちの最大値とする、請求項1又は請求項2に記載の通信制御システム。
- 前記通信スレーブ毎に算出される通信予測時間は、現時点までに前記通信スレーブ毎に計測された通信計測時間に基づく平均値とする、請求項1又は請求項2に記載の通信制御システム。
- 通信マスタを備える制御装置と、前記制御装置にデイジーチェーンにより通信可能に接続された通信スレーブをそれぞれ備える複数のI/Oユニットとの間で、予め設定された一定周期毎に、前記制御装置が全てのI/OユニットとI/O信号を送受信する通信制御方法であって、
前記通信マスタは、
前記複数の通信スレーブ毎に計測される送信メッセージを除くDIデータ及びDOデータのみの通信に要する通信時間に基づいて算出される前記複数の通信スレーブ毎の通信予測時間と、前記一定周期毎に計測される最初の通信スレーブとの通信開始から現時点までの通信時間と、通信速度情報と、から各通信スレーブとの通信開始前に、当該通信スレーブに許容される通信帯域マージンデータ量を算出するマージンデータ量算出ステップと、
前記通信スレーブに対してDOデータを送信するときに前記通信帯域マージンデータ量を組み込んだDOパケットを作成し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DOメッセージを次回の通信周期に持ち越し、前記通信スレーブに対するDOメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DOメッセージを前記DOパケットに組み込むDOパケット作成ステップと、
前記DOパケットを前記通信スレーブに送信するDO送信ステップと、を備え、
前記通信スレーブは、
前記通信マスタから送信されるDOパケットを受信するDO受信ステップと、
受信した前記DOパケットに含まれる前記通信帯域マージンデータ量を取得し、前記通信マスタに対してDIデータを送信するときにDIパケットを作成し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超える場合、前記DIメッセージを次回の通信周期に持ち越し、前記通信マスタに対するDIメッセージの長さが前記通信帯域マージンデータ量を超えない場合、前記DIメッセージを前記DIパケットに組み込むDIパケット作成ステップと、
前記DIパケットを前記通信マスタに送信するDI送信ステップと、を備える、
通信制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020092873A JP7453061B2 (ja) | 2020-05-28 | 2020-05-28 | 通信制御システム及び通信制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020092873A JP7453061B2 (ja) | 2020-05-28 | 2020-05-28 | 通信制御システム及び通信制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021190783A JP2021190783A (ja) | 2021-12-13 |
JP7453061B2 true JP7453061B2 (ja) | 2024-03-19 |
Family
ID=78847556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020092873A Active JP7453061B2 (ja) | 2020-05-28 | 2020-05-28 | 通信制御システム及び通信制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7453061B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018129708A (ja) | 2017-02-09 | 2018-08-16 | オムロン株式会社 | 通信システム、通信装置および通信方法 |
JP2018129707A (ja) | 2017-02-09 | 2018-08-16 | オムロン株式会社 | 通信システム、通信装置および通信方法 |
JP7312613B2 (ja) | 2019-06-07 | 2023-07-21 | 株式会社Lixil | 壁掛け便器用の梱包材、壁掛け便器の梱包構造、及び壁掛け便器の施工方法 |
-
2020
- 2020-05-28 JP JP2020092873A patent/JP7453061B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018129708A (ja) | 2017-02-09 | 2018-08-16 | オムロン株式会社 | 通信システム、通信装置および通信方法 |
JP2018129707A (ja) | 2017-02-09 | 2018-08-16 | オムロン株式会社 | 通信システム、通信装置および通信方法 |
US20200119975A1 (en) | 2017-02-09 | 2020-04-16 | Omron Corporation | Communication System, Communication Apparatus, and Communication Method |
JP7312613B2 (ja) | 2019-06-07 | 2023-07-21 | 株式会社Lixil | 壁掛け便器用の梱包材、壁掛け便器の梱包構造、及び壁掛け便器の施工方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021190783A (ja) | 2021-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106161165B (zh) | 用于在工业过程网络上传送数据的方法和现场设备 | |
US10277417B2 (en) | Control system, control apparatus and control method with input-only communication frame | |
CN106154985B (zh) | 工业过程网络上的数据传送 | |
JP6355863B1 (ja) | ネットワークシステムおよび通信方法 | |
WO2018051833A1 (ja) | 中継装置、通信システム、送信方法及びコンピュータプログラム | |
CN107809391B (zh) | 用于控制消息通信负载的设备和方法 | |
JP6798280B2 (ja) | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム | |
CN112887217B (zh) | 控制数据包发送方法、模型训练方法、装置及*** | |
CN113364638B (zh) | 用于epa组网的方法、电子设备和存储介质 | |
Plotnikov et al. | Modeling of inter-modular interaction based on the CANopen protocol in vibration monitoring systems | |
EP3073781B1 (en) | Communication device and wireless communication system | |
WO2021059561A1 (ja) | 制御システム、情報処理装置およびプログラム | |
US20160006648A1 (en) | Distributed Control System and Control Method Thereof | |
JP7453061B2 (ja) | 通信制御システム及び通信制御方法 | |
CN105210349B (zh) | 无线通信品质信息处理装置及通信*** | |
CN115941451B (zh) | 工业控制网络中冗余切换的方法、设备和存储介质 | |
CN112714081B (zh) | 一种数据处理方法及其装置 | |
KR20210044682A (ko) | 서비스 기능의 지연 시간 측정 시스템, 장치 및 방법 | |
JP7056395B2 (ja) | 制御装置およびその制御方法 | |
CN110603799B (zh) | 从设备到数据管理装置的数据传输的方法,交换单元,设备和*** | |
JP7469142B2 (ja) | 通信制御システム及び通信制御方法 | |
JP7513076B2 (ja) | サーバ装置、プロセス制御システム、及びプロセス制御方法 | |
WO2023119356A1 (ja) | 制御装置、制御方法およびプログラム | |
JP2004242031A (ja) | 通信システム | |
CN111490940B (zh) | 确定数据转发路径的方法、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230308 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7453061 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |