现场调试总有可能会遇到一些奇奇怪怪的问题,有时候当问题原因找到后,又会觉得怎么能犯这么低级的错误呢?我就一次这样尴尬的经历。
我的设备CPU是1511-1PN,他有一个Profinet子网,可以连接一些PN通讯模块。当时和供应商的测试设备通讯,他们使用的是CPU1513-1PN,两台西门子PLC通讯,S7协议当然是首选。
经过我们协商,我方的CPU作为服务器,对方的设备CPU作为客户端,并分配给我一个IP地址(192.168.10.20)。这样对我来说就简单了,我只需要打开PUT/GET,配置下CPU的IP地址,然后把准备好的数据地址告诉对方就可以了,一切仿佛是那么的平常且顺利。
可是,当双方的CPU网线连起来后,对方的小伙子跟我说他使用GET指令一直报错,显示通讯无法建立,我当时检查了我这边的配置,没发现问题,检查网线和交换机,交换机指示灯闪烁正常。PING一下网络,也没有问题。
我重新检查了他项目的组态:显示连接双方的设备,在伙伴方“站点”栏选择“未知”,在“地址”栏填写伙伴的IP地址192.168.10.20,组态没有问题。
在本地ID中:显示通讯连接的ID 号,这里ID=W#16#100。GET指令使用的连接ID正确,参数正确,编程也没问题。
在线查看程序,GET指令的ERROR输出为TRUE,STATUS为1,连接未建立。这是什么情况呢?
难道交换机或网线有问题?可是PING也是正常的啊。调试至此陷入僵局,问西门子技术,我们做的步骤都正确,可是却一直通讯不上。
眼看就要下班了,我就对小伙说明天再调吧。
第二天,突然想到有没有可能对方给我的IP地址不唯一呢?于是把他的PLC拔掉网线再ping一下,居然还是通的!啥也别说了,换个IP地址试试吧。果然,重新分配了IP后就连上了。
这次尴尬的通讯问题就这样解决了。。。