TCP/IP 経由で 36 GE PLC と通信する C++ でサード パーティによって記述された産業用 HMI があります。HMI は、同じスイッチに接続された同じ部屋の 2 つの異なるマシンで実行されています。1 つの HMI が Windows Server 2003 32 ビットで実行されています。もう1つはWindows 7 64ビットで実行されています。Windows 7 HMI が接続できない PLC がいくつかあります。すべての PLC は Windows Server 2003 HMI で正常に通信します。Wireshark を実行して、何が起こっているかを確認しました。
PLC のイーサネット カードがリセットされると、Win7 HMI と障害のあるベースの 1 つが SYN/ACK シーケンスを送信します。HMI がデータ (PSH) を送信すると、PLC は RST パケットで応答します。その時点から、Win7 HMI からの SYN パケットはすべて RST 応答を受信します。昨日、この新しい HMI を設定したばかりで、その時点からこのようになっています。この HMI は、他の Win7 コンピュータで問題なく動作しています。私の知る限り、すべての PLC は同じハードウェア/ファームウェア リビジョン レベルです。私は、36 の PLC のそれぞれのソフトウェアが同一であることを知っています。
これをさらにトラブルシューティングするために何をすべきかについて、私は完全に途方に暮れています。私が昨日セットアップしたこの新しいマシンは、週の初めに故障したマシンに置き換わっているため、PLC への接続数は増加していません。さらに、他のほとんどの PLC はすべて正常に通信しているため、PLC ハードウェアの負荷の問題ではないようです。C++ コードは、まったく同じ方法ですべてのベースと通信しています。このコードは、36 個の PLC オブジェクトの配列を保持し、情報を更新するときにそれらをループします。これをさらにトラブルシューティングするために私ができることについて誰か考えがありますか?