网络通讯疑难解答

时间:2011-08-04 18:54:09

标签: windows tcp plc

我有一个由C ++第三方编写的工业HMI,它通过TCP / IP与36 GE PLC通信。 HMI在同一房间中连接到同一交换机的两台不同机器上运行。一台HMI在Windows Server 2003 32位上运行。另一个是在Windows 7 64位上运行。有一些PLC,Windows 7 HMI无法连接。所有PLC在Windows Server 2003 HMI上正常通信。我运行Wireshark看看发生了什么。

复位PLC的以太网卡后,Win7 HMI和其中一个故障基站将发送SYN / ACK序列。一旦HMI发送数据(PSH),PLC就会响应RST数据包。从那时起,来自Win7 HMI的任何SYN数据包都会收到RST响应。我昨天刚刚设置了这个新的HMI,从那时起它就像这样。该HMI在其他Win7计算机上运行时没有问题。据我所知,所有的PLC都处于相同的硬件/固件版本级别。我确实知道36个PLC中每个PLC上的软件是相同的。

我完全失去了如何进一步解决这个问题。由于我昨天设置的新机器正在取代本周早些时候死亡的机器,因此与PLC的连接数没有增加。此外,大多数其他PLC都正常通信,因此PLC硬件上的负载似乎不是问题。 C ++代码以完全相同的方式与所有基础进行通信。代码只保留36个PLC对象的数组,并在更新信息时循环遍历它们。有没有人对我能做些什么来进一步解决这个问题有任何想法?

2 个答案:

答案 0 :(得分:4)

与正常运行的系统通信时运行Wireshark。将其与您在不工作时所做的捕获进行比较。

您的配置工作正常。我们的想法是从不起作用的那个中找出它的不同之处。显然会有差异,这些差异可能会有一些问题的线索。

答案 1 :(得分:1)

事实证明,我的假设是错误的。在Win7上没有运行其他HMI。我用一台XP PC取代了Win7 PC,现在一切都很顺利。一旦我们被迫离开XP,就必须在某些时候对此进行故障排除,但现在情况正常。我希望这是PLC固件中的一个问题,因为来自HMI的所有通信都是相同的。