本文作者:赵欣 西门子数字化集团 客户支持部 高级专家
专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html
连载之一: 【PLC通信原理探秘】大讲堂幕后彩蛋之序言
卷烟厂的制丝车间,熟悉的用户都知道使用的PLC、交换机非常多,最终还要和许多上位机之间交换生产和过程数据。
在当时,从去过的技术支持工程师的人次上看,那确实是一个复杂的案例,我也去过两次,第一次解决一些相对简单的问题,例如PLC同上位机通信,有两台会间断的连接和断开,发现它们的MAC地址相同,因为过去老款的CP卡是可以设置MAC地址的。
第二次,仅是,只有一个问题始终萦绕于心,迟迟不能发现问题的根源在哪里。PLC与上位机通信,上位机使用了第三方的SCADA软件,其中400PLC与其通信没有问题,而300PLC与其通信总是偶尔中断。这时,很正常就会想到300PLC和400PLC的差别,通信性能上的差别,自然而然就会翻到20%的那个CPU的属性页。
初次见到它,它让我有些迷茫,彷徨,即使浏览了在线帮助和手册,我仍然不知所措,我不知道修改后的结果能对问题的解决起到多大的作用。可想而知,修改后对问题的解决没有任何帮助。这时,我就思考这个参数的意义在哪里,留给我们去修改的目的又是什么。带着这个疑问,我回到了北京,回到了那个让我充满自信,斗志昂然的地方。
然而,初次的较量,我倍感沮丧无助。因为无论帮助还是手册,即使搜索网上技术论坛,有用的信息都很少,或者说一无所有,老工程师能给予的也仅是只言片语。看来要想弄清楚,那么可能一切要从零开始。
繁忙的日常工作并没有影响我对它的挂念,没有停止过给它的思考,手册中仅有几处提到的时间片和CCP的概念,在我的脑海中一直盘旋,思考它的工作机制,甚至做了天马行空的假设。
300PLC的系统手册我找到了历年的版本,在谈到CCP的地方,发现唯一变动的地方就是PUT/GET Server数据一致性的数据长度的变化,从最初的64Byte到目前的240Byte。这让我想到这是CPU版本在升级,性能的提高导致数据的变化。同时也给我一个突破口,我要看看测试的结果会是怎样,即使我当时并不真正理解数据一致性的作用。
初次的测试,我使用300PLC作为PUT/GET Server,400PLC作为客户端两者进行S7的以太网通信。建立通信的过程是很简单,然而想了解其中的奥妙,确实让我头痛不已。
测试开始的结果,就像呱呱坠地的孩子,看上去不是那么美,因为那时的我并不知道如何来分析这些数据,哪些是S7相关的数据,哪些不是,而且如何在众多的数据中看出哪些是S7-400PLC发送出来的S7数据等等,这一切都是未知的。
解开谜题的关键辅助就是Wireshark,这个软件我想熟悉以太网的广大工程师们至少都听说过,而且也有一部分人用过。它可以用来捕捉以太网上的数据,以此来分析和诊断相关的网络状况。这就像一束光射入,逐步照亮整个房间,让我看见它其实很美!
连载之三: 【PLC通信原理探秘】大讲堂幕后彩蛋之失败