1.应用的基本信息
基本应用信息描述(您所经历过的现场规模,例如硬件和网络配置、CPU的类型、版本以及个数等。您在项目的职责,例如项目负责人、主要或者辅助设计、编程调试者。)
项目中采用的是S7-1500 CPU、S7-1200、PN-PN Coupler、精智面板TP900,DeltaMotion RMC150控制器。
液压伺服控制主要通过RMC150来实现。通过Profinet 通信和RMC150进行通讯。
网络拓扑图如下图所示
2.问题描述
内容关联且不能分开的数据被称为一致性数据。在一些场合,数据的一致性非常重要。
比如和变频器或者是和其他CPU通讯时,有些数据必须保持一致,如果数据来自于两个不同的周期,此时的数据不具有一致性的特点,会造成运算错误。
3.问题的分解和解决
以前西门子官方给出的需要数据一致性的例子中,很多时候都是使用了SFC14 SFC15.
随着CPU的升级,过程映像分区的更新可以系统自动在OB连接中完成。
新的项目想取消SFC14 SFC15的方式,直接关联定时中断保证数据的一致性。
个人的看法SFC14 SFC15一致性的做法在新的CPU中已经没有再使用的价值,不知道这种想法对不对?
优点:
分配给时间中断OB,过程映像区的刷新时间更准确。默认情况下,运行OB1之前进行PIQ和PII的刷新,也就是说OB1时间的长短,决定了过程映像区的刷新。如果OB1的时间不稳定,Profinet过程映像区中的数据刷新也是不稳定的。
这对于一些要求高时间精度的项目场合,是不合适的。
相对于SFC14 15的方式,将输入输出地址放入PIP中,过程映像区的刷新是PLC OS完成,优先级别更高,时间更准确。
4.经验总结
4.1遗留的问题(问题排查后,是否对解决问题的方式仍然有些疑问或者不理解的地方)
1:在西门子官方文档中出现的资料中,PII和PIQ的刷新顺序在自动更新中和定时中断中更新的顺序是不同的,具体的原因未知。
自动更新中顺序PIPQ--PIPI--CP
定时中断中的顺序是PIPI---循环中断OB--PIPQ
2:
Profinet选择自动计算更新时间,更新时间是不是截图中的2ms,还是其他的值?
看门狗接收的更新周期最小就是3吗?为什么不能是1?
------------------------------------------更多案例集锦汇总在活动帖中-------------------
PROFINET 通信原理探秘活动汇总帖