1. 前言
这也是24年春节之前的事了,我一同学在国产一知名DCS品牌工作,接了个改造项目,其中有一个是DCS作主站和另一个台S7-300PLC通讯,技术协议签的是用ProfiBus-DP通讯,于是我找了找S7-300 PLC的样本,就找到了一个CP342-5模块,之后也专门从西门子官方论坛里面搜索了相关资料,也使用搜索引擎找了一些文档,文档中的处理过程都挺简单的,于是信心满满的推荐了这个模块,下面就是做这次通讯的详细过程了。
由于工厂管理比较严格,进厂调试的时候不准带手机,笔记本也需要开出入证,所以现场的图片就没有了,只有部分截图。
另外也吐槽一下,由于化工厂生产特点吧,污水处理厂不能长时间停机,下面的处理过程基本上就是协调工厂生产,临时停车几分钟处理,如果事情不顺利,那就得赶紧恢复原来的状态,赶紧生产。
2. 系统简介
改造项目是一个化工厂的污水处理系统。该系统有两套为一套污水和二套污水,分别使用了一套S7-300 PLC控制的,上位机是WinCC画面,一套污水就在控制室里面,使用的CP5611板走的MPI通讯,二套污水距离比较远,使用的其中一套污水本次要换成DCS控制,使用的光纤转以太网通讯到控制室。此次改造是一套污水的PLC整体换成DCS控制,但还要把二套污水的所有远程数据都传到DCS系统呢,后面就不再使用WinCC系统了。
3. 硬件组态
CP342-5模块到了之后,我先在PLC里面把模块最好,详细的组态就如文档里面那样,插入模块,插入新的DP网络

设置DP地址和波特率,这个波特率根据DCS工程师的要求,选的9.6K

操作模式选择DP 从站,下面的Test,commissioning,routing这个复选框是勾选的

其他的都是默认设置,然后就是程序的编写,这个程序是后来截图的,程序编写是正确的。

4. 连接硬件
本来以为这是个比较简单的事情,以前300PLC硬件组态也做过,没想到又学到了。现场控制室和PLC距离有100多米吧,当时也没有开证明,我自己的电脑没有带进去,而且也没有编程电缆,所以就用现场的上位机做的硬件组态,组态完成后想着先安装硬件,再下载程序,因为在我印象中,新的以太网模块在PLC STOP模式,没有组态的时候,也是能下载程序的。
于是就到现场准备,一能停机就断电安装模块,安装完成后,上电,没有看模块状态,直接跑着到控制室下载程序,下载的时候一扫网络,咦,怎么找不到,检查通讯接口设置、CPU插槽设置是正确的,再扫还是没有,一头冷汗接着就出来了,感觉不对啊,就赶紧有跑到PLC柜的地方,一看CPU在STOP模式,手动把运行开关播到STOP再拨到RUN,还是不行,而且以太网模块直接处于罢工状态,插着网线,但是接口指示灯直接不亮,怪不得找不到CPU,再断电重新上电还是不行。没办法只好先断电把模块先拆下来,然后上电PLC运行正常后,再跑回去下载硬件组态,这次比较顺利能够扫到下载,下载之后再跑过去,断电把模块安装上,上电运行正常了。
5. 难点出现
DP网络的连接,也是使用的原来以太网光纤里面备用的光纤,然后两端增加的DP光电转换模块,光纤已经测试好是通的,转换模块他们也用过好多次。
硬件连接好就已经到了11点左右了,于是赶紧测试一下网络,DCS那边组态好之后,一试不妙,BUSF灯一直是闪烁的,网络不通,我这边检查硬件组态和程序,没有发现明显问题,又检查了光纤和转换器到两侧PLC的接线,看着光电转换模块的发送指示灯在闪,分析硬件网络是通的。由于设备恢复了运行,不能马上再次停止,也到了饭点了,就出去吃饭。
吃饭的时候,打电话问了问模块代理商的工程师,然后也用风驰卡给西门子工程师打了电话问了问,发的文档也是西门子论坛里面的文档,饭后下午开始折腾,由于不能停机,先从DCS这边检查,调整网络波特率、调整组态的IO顺序,几番检查光纤、接线和光电模块的拨码设置,始终不行。

如上图,在调整发送接受字节大小的时候,使用模块的诊断工具发现一个现象,下载程序之后,如果两端组态的数据大小不一致的时候,诊断记录里面能够判断出来主站和从站组态的字节数量,图上是DCS组态的8个字节,PLC我改成10个字节,这样分析,PLC和DCS之间的DP通讯应该是通的,但是不知道为啥就是不能建立数据交换,从下面的诊断内容看,感觉像是模块有哪里设置不正确,但都是根据文档配置的,也没有找到问题所在,折腾到了天黑,最终也没有弄好,只能先作罢改天再弄。
6. 柳暗花明
回到家继续查文档的同时也在想别的办法,由于现场不能随时停机,不好下载硬件测试,想着不行借套PLC,把模块拆下来放到DCS旁边进行通讯测试,找到问题测试通讯正常之后,再进行安装,打电话问了一下,还好朋友那有,在等快递的同事,继续搜索相关的文档查看。

搜索文档的时候发现了一篇论文,上图的内容至少CP 342-5的现象是和现场情况一直,就是说的数据通讯能够建立起来,不清楚是有数据交换还是没有数据交换,但是这也总算找到一个疑点,到时候现场可以进行测试,再看其他的文档,再也找不到可疑的地方。

在我找资料看的时候,DCS工程师也从他们公司的资料库里面找到了一篇文档,在模块设置的操作模式选项卡里面图片上这么说的,突然感觉可能就是这个原因,在我找到的其他资料里面,这个选项默认是勾选上的。
心里也有种感觉,可能就是这里的原因,有种柳暗花明的感觉了。
7. 大功告成
还是等借的PLC到了之后,把CPU带到现场,把CPU的电源线、DP线等都准备好,做好模块拆下来离线测试的准备工作之后。联系生产上进行协调停产,先把硬件配置里面的“The module is an active node on the PROFIBUS subnet”这个复选框给取消勾选,然后也把波特率改成了文档上建议的500K,先进行下载测试通讯是否能够成功,如果不行,再马上把模块拆下来离线测试好,再上线。
停了之后,马上下载硬件,等PLC启动的时候,观察着DP转换模块上的发送和接收指示灯快速的闪烁了起来,我和那个工程师真是和夺冠似的欢呼起来,终于行了,也不用拆模块再进行测试了。然后修改发送和接收的数据长度为项目上需要的长度,并分别对数据进行了校对,都是正确的,一直悬着的心终于能够放下来了。到了这里改造项目感觉算是完成了一半了。
这次下载硬件虽然改了两个地方,一个是波特率一个就是从站下面的那个复选框,分析起来应这个复选框勾选的可能性还是比较大的。
8. 分析总结
8.1. 关于操作模式
在官方的文档上有这么说的:
DP Master 方式下:CP342-5除了作为网络中的 PROFIBUS 主站之外,也可用于S7编程、FDL 连接和连接人机界面。DP delaytime 参数一般不需设定,除非您采用 FDL 连接时,要与 DP 的I、O 点刷新时间相一致,才根据PROFIBUS 网络性能进行调整;
DP Slave 方式下:CP342-5除了作为网络中的从站之外,如果选择了 The module is an active node on the PROFIBUS subnet 选择框,那么 CP 342-5 也可用于 S7 编程、FDL 连接和连接人机界面,否则CP342-5只能作为从站使用;
在STEP7 帮助里面关于这个复选项的介绍是这样的
DP 从站模式/选项"测试、调试、路由"(Test, Commissioning, Routing)(功能名称取决于 CP 类型)
-选项启用时: DP 从站主动
例如,如果想要经常通过此接口使用调试和测试期间所需的 PG 功能,则选中此复选框。 这也会选择"DP 从站主动"CP 模式。 (换言之,PROFIBUS 上的令牌传递中会涉及到该接口)。
然后便可实现以下功能(功能名称取决于 CP 类型):
- 编程(例如下载)
- 测试(状态/修改)
- S7 路由(I 从站作为网关)
- S5 兼容通信(SEND/RECEIVE 接口)
- S7 通信(仅适用于服务器模式并在没有通信块的一端组态连接;组态在伙伴设备上进行)
注意: 在此模式中,不能组态使用通信块进行数据交换的 S7 连接
这样会延长令牌循环时间。 在对时间要求严格的应用环境中,以及在不需要 S7 路由和客户端功能进行通信的情况下,请不要激活此选项。
- 选项禁用时: DP 从站被动
如果未选中"测试、调试、路由"(Test, Commissioning, Routing) 复选框,则会设置"DP 从站被动"CP 模式(换言之,PROFIBUS 上的令牌传递中会涉及到该接口)。
在从站模式,这个选项勾选上的区别就是DP从站是主动模式还是被动模式,如果是西门子的PLC之间通讯的话,不管主动还是被动模式都是可以的,和第三方通讯,可能还得看第三方主站的兼容性怎么样了
8.2. 其他选择
在使用这个模块通讯不上的时候,我也在想当时选这个模块是不是选错了,还有没有别的硬件可选,后来想到如果使用DP/DP COUPLE模块用起来可能会更简单一些,这个模块就是专门连接两个Profibus-DP 主站网络,以便在这两个主站网络之间进行数据通讯。模块本身就是做从站,组态感觉也更简单一些。由于CP 342-5通讯调用的是FC1 和 FC2,不是在硬件里面组态对应的IO字节,DCS工程师看了和他们以前做通讯组态方式不一样,一直在怀疑我组态的不对。
然后又搜了一下,DP/DP COUPLER模块还比CP342-5便宜不少,感觉这次真的有点选错了.....
8.3. 个人总结
综合的思考了一下,虽然从05年工作一开始就接触的300/400PLC,到了18年去新项目之后,再接触的都是1200/1500系列的PLC了,对300的反而有点生疏,而且现在都是Profinet,DP通讯很少了,再加上我主要是做维保工作,组态调试做的少,选型做的也少,在处理的过程中也出现了不少的失误。再加上现场条件限制,如果有停机时间,PLC可以随意的启停,也许一天的试错过程也能找到问题所在,不过最终总算弄好了,其中的失误也不算很大,毕竟有的问题西门子官方的客服也没想到是这种问题。
在使用CP342-5的时候发现这个模块的最大优点是通过FC1/FC2可以在线修改收发的数据量大小,而不用进行硬件组态,CP342-5的硬件组态参数好像看着也能通过 FC 4 “DP_CTRL”这个块进行修改,这个块在帮助上说的能实现的功能有:
可以使用下列作业类型:
周期/非周期全局控制;
删除较早的诊断数据;
设置当前DP模式;
设置PLC/CP STOP的DP模式;
周期性地读取输入/输出数据;
设置DP从站的操作模式。
还是由于不敢随便测试,怕测试的过程中再给搞的停产了,业主又会发牢骚。这个只是猜测能够实现