即便是经验丰富的工程师,现场调试也可能遇到一些奇奇怪怪的问题。有时候当问题原因找到后,又会觉得怎么能犯这么低级的错误呢?我就有一次这样尴尬的经历,不妨讲来给你听听。
(图片由Free-Photos在Pixabay上发布,经适当编辑用作本文封面)
我的设备CPU使用的是CPU1512SP F 1-PN,它有一个PROFINET子网,连接一些分布式IO。为了与工厂的另外一个系统通信,设备配置了通信模块——CP1542SP-1。对方使用的是CPU1513-1PN,两台西门子PLC之间的通信,S7协议当然是首选。
经协商,我方设备的CPU作为S7通信的服务器,对方设备的CPU做客户端,并分配给我一个属于他的网段的IP地址(192.168.11.60)。这样对我来说就太简单,我只需要设置下CP1542SP-1的IP地址,然后准备好通信需要的数据就可以了,一切似乎都很美好。
没过多久,对方调试的小伙子跟我说它使用GET指令一直在报错,显示通信无法建立。
怎么会呢?我过来看下。
Ping一下网络通不通呢?没有问题。
我重新检查下他项目的组态:配置了S7连接,通信伙伴为"unknown",IP地址设置正确,组态没有问题。
GET指令使用的连接ID正确,参数设置正确,编程没有问题。
重新编译下载。
在线查看,GET指令的ERROR输出为TRUE,STATUS输出为1,表示连接没有建立。
这是什么情况呢?
难道CP1542SP-1不支持S7通信协议?
查看硬件描述,明确写着支持S7通信啊。
难道我的通信模块坏了?可是模块全是绿灯,没有任何报错啊。
调试至此陷入僵局,在我看来有关S7通信的组态和编程都是正确的,可是却一直在报错。
要知道我还是自诩挺擅长S7通信的。当时的我就跟下面这哥们是一样一样的。
僵局持续了一段时间,偶然想到,有没有可能对方给我的IP地址不是唯一的呢?于是我把CP1542SP-1的网线拔掉了,重新ping一下IP:192.168.11.60,居然是通的!!
啥也别说了,兄弟,你再重新给分配个IP地址吧。
重新分配并设置IP地址,问题烟消云散,你好,我好,大家好。
好了,这次尴尬的S7通信调试,就当故事讲给你听了。下次你要是遇到类似问题,别忘了我曾经踩过的坑。
我的微信视频号开通了,有空看看吧:
发表评论
除了IP地址重复,还有不支持环网的交换机被组成环网了,一样,也通讯不了……