当前位置: 首页 > news >正文

西门子et200 分布式i/o_你真的了解西门子Profinet吗?从RT切换到IRT出问题

最近一段时间忙于给内部的同事做网络基础知识的培训,所以一直没有写故事给大家。但还是抽了点时间总结自己的现场经历分享给大家。

这次分享的内容是我在某制药设备生产公司进行的网络诊断时发现的问题。该公司正在计划研发新型制药机型。该机型自控系统采用的是S7-1500 CPU、ET 200 SP分布式I/O 和SINAMICS S120。通过调试S7-1500 CPU与SINAMICS S120驱动之间采用PROFINET RT的通信方式系统可以正常运行,同时也能满足现有工艺的要求。但为了未来与竞争对手差异化的产品性能竞争,用户希望在现有的基础上来测试S7-1500 CPU与SINAMICS S120驱动之间的PROFINET IRT的等时同步的应用。

d1bc162e5892eb0d572c5553f49ec0ce.png

现场的网络拓扑结构如下图1所示。红色的Switch 1为魏德米勒的交换机,S7-1500 CPU PN口的接口1连接到魏德米勒的交换机,S7-1500 CPU PN口的接口2连接到后续的SINAMICS S120。S7-1500 CPU与其它的分布式IO 如ET200SP、BPS、EX260经过了Switch 1实现PROFINET RT通信。S7-1500 CPU与SINAMICS S120实现PROFINET IRT通信。

当把S7-1500 CPU与SINAMICS S120的通信由RT模式换成IRT模式后,CPU刚开始可以正常工作,但过几分钟后就会出现如下图2的错误信息而通信中断。

d0d3fdf7e78e3be3089dbf0cfbc5e0d8.png

图2、CPU诊断缓存的诊断信息

现场查检查了项目的配置,发现IRT的配置是正确的。不存在同步域配置错误的问题。

查看是否是魏德米勒的交换机引起的问题。于是在魏德米勒的交换机与S7-1500 CPU的网线上抓取数据报文,看是否有不正常的报文。抓取到的报文如下图3所示。

73883057b260ba2e8d71100257646468.png

图3、Wireshark抓取到的数据帧

从上图的报文可以看到有经过魏德米勒的交换机既有RT的报文也有线延迟的测量报文。对时钟同步的报文进行过滤,可以分析到如下图4的结果。

3f9a0e8ad7d5bd3da141f793519a7fcd.png

图4、PROFINET的线延迟测量数据帧

从上图中可以看到网络中的线延迟测量报文非常多(几乎在1ms内会有多个报文出现),且这些线延迟测量报文来自不同的设备(源MAC地址不唯一)。把魏德米勒的交换机换成西门子的交换在同样的地方抓取报文过滤时钟同步报文如下图5所示。

ba13a32e06c973f201419b5abe55592b.png

图5、更换为西门子交换机的PROFINET线延迟测量数据帧

从图5中可以看到线延迟会每隔30ms发送一次,且发送的源MAC地址只有一个。这是西门子交换机与使用魏德米勒的交换机的不同之处,且换上西门子的交换机后运行将近2个小时不出现故障现象。

故障的原因是魏德米勒的交换机不能过滤时钟同步的组播报文导致的CPU不能正确计算IRT的线延迟,最终引起IRT的同步域的同步的不正常,最后导致系统出现中断的现象。

从此问题的处理得出的结论是对于PROFINET网络中最好使用PN的交换机避免一些不必要的麻烦。

相关文章:

  • python简述题_python考核试题及答案
  • python 项目示例_Python project.Project方法代码示例
  • python12_python12_异常处理
  • python从date目录导入数据集_python – 将数据集转换为HDF5数据集
  • python join_Python中的join()函数的用法
  • python文字识别算法_使用Python检测文章抄袭及去重算法原理解析
  • python代码图片头像_Python图片裁剪实例代码(如头像裁剪)
  • python视频转换字符动画_视频转字符动画
  • python的requests模块功能_Python中requests模块的核心使用(上)
  • python分块处理功能_在python3下对数据分块(8x8大小)使用OpenCV的离散余弦变换DCT
  • mlp神经网络_PyTorch可视化理解卷积神经网络
  • python word处理_用python处理MS Word的实例
  • python安装成功是什么样的图片_python 图像处理(从安装Pillow开始)
  • python求最大素数_Python实现求最大公约数及判断素数的方法
  • java assert使用场景_Java基础:详解equals
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • HTTP--网络协议分层,http历史(二)
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • PermissionScope Swift4 兼容问题
  • python_bomb----数据类型总结
  • react-native 安卓真机环境搭建
  • 电商搜索引擎的架构设计和性能优化
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 和 || 运算
  • 聊聊redis的数据结构的应用
  • 前端学习笔记之观察者模式
  • 数据结构java版之冒泡排序及优化
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 说说动画卡顿的解决方案
  • 跳前端坑前,先看看这个!!
  • 微信小程序填坑清单
  • 最简单的无缝轮播
  • mysql面试题分组并合并列
  • 进程与线程(三)——进程/线程间通信
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #if和#ifdef区别
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #预处理和函数的对比以及条件编译
  • $refs 、$nextTic、动态组件、name的使用
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ZT)出版业改革:该死的死,该生的生
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (一)Dubbo快速入门、介绍、使用
  • (一)RocketMQ初步认识
  • (转载)(官方)UE4--图像编程----着色器开发
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .Net7 环境安装配置
  • .NET开发人员必知的八个网站