通信エラー対処方法

<< Click to Display Table of Contents >>

マニュアル > Appendix >

通信エラー対処方法

概要

PLCとの通信を行う際、通信エラーが発生する場合があります。

 

通信エラーはネットワーク環境やPLC側の設定など、様々な要因により発生します。

通信エラーが発生した場合は、以下の内容を確認してください。

 

エラーの種類

PLCエラー


Winsockエラー


タイムアウトエラー

 

 

PLCエラー

“[plc error code]”(Modbus通信の場合、”Modbus exception code”)というエラー文字が返ってくる場合

 

例)

Exclamation,Driver,yyyy/mm/dd HH:MM:SS,[U01.F01] 通信エラー。[Read for update] Msg : [plc error code] xxx

 

上例のエラーは、接続先のPLCからエラーコードが返ってきているケースです。表示されているエラーコードはPLCに依存します。エラーコードの意味を知りたい場合は、[plc error code]以降に記述されるエラーコードをもとに、各社PLCメーカーのマニュアルにて調査してください。

 

尚、このケースはIPアドレスやポート番号等の通信設定は正しく行われており、PLCとの通信は確立されています。

よくある事例として、以下の設定が正しく行われていることを確認してください。

 

対象のPLCが通信可能なアドレス領域の範囲外のアドレスに対して通信しようとしている(PLC上にデバイスが作成されていない、等)

フォルダのネットワーク設定で、PLCに対して通信できないネットワーク番号が設定されている

 

 

Winsockエラー

Ethernet接続にて”Winsock:xxx”というエラーが返ってくる場合

 

例)

Exclamation,Tag,yyyy/mm/dd HH:MM:SS,[U01] 接続に失敗しました。30秒後にリトライします。 Msg : [connect] Winsock:xxx

 

上例エラーは、Ethernet接続にて主に通信設定に不整合がある場合に発生します。”Winsock:xxx”に記されるエラー番号ごとに対処してください。

 

主なエラーとしては以下のようなものがあります。

 

エラー番号

内容

対応

10048

IPアドレスおよびポート番号が既に使用されています。

パソコンIPアドレスおよびパソコンポート番号がすでに他のユニットや、他のアプリケーション等で使用されていないかどうかを確認してください。

10049

要求されたアドレスを割り当てられません。

ユニットのパソコンIPアドレスやユニットIPアドレスに無効なIPアドレスを設定していないか確認してください。

10050

ネットワークがダウンしています。

ネットワークの停止が検出されています。ネットワーク全体をご確認下さい。

10051

ICMP ネットワークに到達できません。

ユニットIPアドレスにパケットが到達できないIPアドレスを設定しています。まずは、ユニット側設定タブのユニットIPアドレスのピングテストを試してみてください。

10054

ピアによって接続がリセットされました。

既存の接続が、接続先のPLCによって強制的に切断された場合発生します。PLCが停止したあるいは、再起動などがなかったか確認してください。

10060

接続がタイムアウトになりました。

接続に失敗しています。「機器接続ガイド」を参照して設定を再度見直してください。

10061

接続が拒否されました。

接続に失敗しています。「機器接続ガイド」を参照して設定を再度見直してください。

 

その他の番号のエラーについては、Webサイトの任意の検索エンジンから「Winsock エラー番号」等のキーワードで検索し、Winsockのエラーを調査して下さい。

 

尚、TCP/IP通信でパソコン側ポート番号に固定値を設定した場合、再コネクション時に即座に同一ポート番号を利用することができないため、通信自体が復帰しても、Winsock:10048が発生し接続に失敗します。そのため、TCP/IPで通信を行う場合は、パソコン側ポート番号を「自動」に指定し、再コネクションごとに新たなポート番号を発行するようにします。

 

 

タイムアウトエラー

“[timeout]”もしくは”irregular length”というエラーが返ってくる場合

 

例)

Exclamation,Driver,yyyy/mm/dd HH:MM:SS,[U01.F01] 通信エラー。[Read for update] Msg : [timeout] Timeout:3000 Actual:3000

 

Exclamation,Driver,yyyy/mm/dd HH:MM:SS,[U01.F01] 通信エラー。[Read for update] Msg : irregular length

 

上例のエラーは、1日に数回程度の発生頻度であれば、平常時でも発生しうる想定内のエラーです。

 

一方で、上例のエラーが頻発する場合は、通信環境に何らかの問題が生じている可能性があります(高通信負荷、ノイズ、通信機器の不具合、etc)。通信環境を改善しない限り根本的な解決にはなりませんが、以下の設定を行うことによりある程度改善できる可能性があります。

 

PLCとの通信にてUDPで通信している場合でかつPLCでTCP通信をサポートしている場合、通信方式をTCPに変えてみる。
 

「通信詳細」タブの「待ち時間」の設定を長くする。
Ethernetのネットワーク環境にて通信パケットの遅延が発生している場合に効果があります。特に、timeoutエラーとともに、irregular lengthエラーが併発している場合は通信パケットの遅延が発生している可能性があります。
 

「リトライ回数」を1(デフォルトは0)にすることにより、エラー発生率を減らすことができます。
特にRS232Cで一時的なノイズにより障害が発生している場合等に有効です。一方で、完全にネットワークが遮断されるなどの障害発生に対するリトライ処理は意味がなく、リトライ回数を増やすことにより各処理の待ち時間が長くなります。
例えば、「待ち時間」が3000msで、リトライ回数が1回のとき、WriteValメソッド実行時に通信障害が発生した場合、エラーが返ってくるまで合計6000ms(6秒)待たされます。
※ただし、デバイスダウン処理を有効にしている場合、エラーが一定回数(デフォルトは3回)連続的に発生し、デバイスダウンと認識した後は、待たされることはなく即座にエラーが返ってきます。