LANの通信エラー


 最近、ある工場ラインで稼働するハードのアプリケーションソフトの作成をしていたのだが、半端ではない障害に出会ってしまった。

 それは LANの通信エラー。
 今回は、2つのPCを使ってデータのやりとりを行うのに、Ethernetを使ったのだが、開発用PCとその環境では起こらない通信エラーが多発した。
 開発ツールは C#で、.NET Frameworkの Socketクラスを使っていた。
 初めの読みでは、多少の通信エラーが起こっても TCP/IPのエラー訂正・再送で何とかなるだろうと考えたのだが、Socketの Sendがエラーを返してきたり、アプリケーション上でのタイムアウトになってしまったり。
 アプリケーションのタイムアウトチェックを外してしまえば、時間がかかっても、もしかすると、TCP/IPのエラー再送に時間がかかっているだけで、何とかなったかもしれないが、1分も2分もかかられても困るので、タイムアウトチェックを追加していた。

 開発環境では再現しないので、最後に、その開発環境ごと工場に持って行き差し替えてみたところ、PCの差し替えだけでは通信エラーが発生。ケーブルの差し替えでほぼ正常に動作した。ハブを差し替えたところ、問題が無くなった。
 一応、通信環境も疑っていたので、替えのケーブルとハブも持って行っていたのだが、それに取り替えてみると、今までが嘘のように通信エラーが発生しなくなった。
 ただ、別の用途で使っていた古いマシンを使っている環境は若干の通信エラーが残ったままだったが、普通に新規購入したマシン同士での通信はほとんど問題が無くなった。
 「ほとんど」というのは、まだ通信エラーが発生していたということで、結局は、そのPCの電源をノイズフィルター付きの UPSからきちんととることで、通信エラーはなくなり、大変だった日々の終わりを感じた。(^_^;

 同じ CAT5eのケーブルだったのだが、メーカーや作りによって大きく変わるのだと思う。
 とりあえず、真っ先にケーブルを交換してみるのも手の1つではないかと思った。
 今までは、そこまでひどいことはなかったのだが。

 しっかし、最初からネットワークモニタを持ってたら、原因究明がもっと早くできてたんだけどねえ。
 昔やったときは、借りる相手に困らなかったんだけど、これからは自分で用意しておかなければいけないんだろうな。ダムハブと一緒に。

 このごろでもまだ、ハードによる対処が必要なんだなあと思った出来事だった。
 もっと修行せねば。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック