Profinet周期帧实例解析
更新时间:2024-01-09 06:07:01 阅读量: 教育文库 文档下载
- profinet刷新周期推荐度:
- 相关推荐
PROFINET 过程数据报结构
下图展示了一个 PROFINET 周期性过程数据报的一般结构:
此结构基于使用 VLAN 标签的第二层以太网帧。当每个 PROFINET IO 设备和 PROFINET IO 控制器发送 VLAN 域的时候,有可能被中间的网络交换机移除掉。分析报文的时候这个需要考虑到。C_SDU 域包含需要传输的数据。带 VLAN 的以太网帧的最小长度是 64 字节,如果 C_SDU 域 的长度小于 40 字节会自动填补。APDU 状态域 包含周期计数和额外的状态字节。
C_SDU 由两种类型的数据组成:
IO 数据对象 IOCS 对象
每个数据项与一个特定的子模块相连。IO 数据对象包括过程数据和子模块的相关 IOPS。IOCS 对象仅仅包含子模块的 IOCS。一个 C_SDU 常常包含多个对象。在 C_SDU 中的过程数据的实际位置已经在连接开始的时候的 RPC Connect Service 中被参数化。在两个相邻的项目中可能被插入额外的填充值。数据项的结构由下图展示。通常 IOPS 和 IOCS 的长度为一字节。
解析示例
下面通过一个例子描述整个过程数据报的解析过程。解析的帧是一个输入 IOCR。
提取结构信息
第一步要从 RPC Connect Service 中分析出需要的结构信息。通过 WireShark 很简单就能完成。下图展示了 RPC Connect Request 和需要被用来解析一个 Input IOCR 报文的部分。红色框住的是 Input IOCR 的描述,包含了帧 ID 和在 C_SDU 里面的数据项的偏移值。相关的过程数据能从黄色框中的 Submodule Requests 提取。
开始解析需要创建一个包含所有数据项偏移值的列表。这些信息从 IOCR Block Request 中提取。在本例中我们主要关注 Input IOCR。帧中帧 ID 是 0x8000。 Output IOCR 帧 ID 必须从 RPC Connect Response 帧中提取出来,Output IOCR 帧 ID 由设备分配。下图展示了期望的 Input IOCR 的 IOCR Block Request。
根据上面的信息,我们创建了下表。
C SDU Offset Kind Api Slot Subslot Length of Data Length of Item 0 IO Data 0 0x0001 0x0001 17 IO Data 0 0x0000 0x0001 18 IO Data 0 0x0000 0x8000 19 IO Data 0 0x0000 0x8001 20 IO Data 0 0x0000 0x8002 21 IOCS 0 0x0002 0x0001 -
现在所有的偏移值都知道了。下一步就是提取各项的大小。这些长度能从 Expected Submodule Blocks 描述的子模块中提取出来。第一个 Expected Submodule Blocks 由下图展示:
从这些信息中我们能得到 API 0 和 Slot 0 数据项的长度。这边导入指针是为了检查正确的数据描述元素。每个子模块都能分配一个输入数据描述 Input-Data Description 和一个输出数据描述 Output-Data Description。对于 Input IOCR 来说 Input Data Description 和 IO Data 有关, Output Data Description 和 IOCS 项 有关。Output IOCR 反之亦然。在示例中所有的第一个 Expected Submodule Block 的子模块有 0 个输入数据,1 字节 IOPS 和 1 字节 IOCS。(IOPS/IOCS 长度通常为 1 字节。)
C SDU Offset Kind Api Slot Subslot Length of Data Length of Item 0 IO Data 0 0x0001 0x0001 17 IO Data 0 0x0000 0x0001 0 0 + 1 18 IO Data 0 0x0000 0x8000 0 0 + 1 19 IO Data 0 0x0000 0x8001 0 0 + 1 20 IO Data 0 0x0000 0x8002 0 0 + 1 21 IOCS 0 0x0002 0x0001 -
我们用剩下的 Expected Submodule Blocks 信息完善表格:
完成的表格:
C SDU Offset 0 IO Data 17 IO Data 18 IO Data 19 IO Data 20 IO Data 21 IOCS 0
Kind Api Slot Subslot 0 0x0001 0x0001 0 0x0000 0x0001 0 0x0000 0x8000 0 0x0000 0x8001 0 0x0000 0x8002 0x0002 0x0001 - Length of Data Length of Item 16 16 + 1 0 0 + 1 0 0 + 1 0 0 + 1 0 0 + 1 1
这表格包含了一些零数据长度的 IO Data。这些 IO Data 对象表明了在 PROFINET 中,一个没有任何过程数据的子模块都被认为是一个有 0 字节长度过程数据的输入子模块 Input Submodule。
解析过程数据报
最后一步是用上文创建的表格解析过程数据报。下图展示了一个 Input IOCR 的特定数据报。为了正确的选择解析不仅 Frame ID 需要加入计算,而且数据报的 Mac 地址 也要加入计算,因为在 RT Mode 下同样的 Frame ID 可能被不同的设备用到。下图中,帧 #106 被选择用来分析。
正在阅读:
Profinet周期帧实例解析01-09
10年山东及济南地方地产调控政策收集03-25
(重点答案)五年级上册测验04-15
110kv电力迁改施工组织设计107-03
〖七下数学期末〗2018人教版七年级数学下《二元一次方程组》期末04-28
语文教研组活计划02-28
外研版英语七年级上册单元测试题(Modules - 6)09-10
高职微课项目管理办法05-25
如何对学生进行多元化评价05-27
光电传感器系列实验01-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 周期
- 实例
- Profinet
- 解析
- 第二讲 - - 现代汉语语法研究层次分析法
- 2010年度工作总结及2011年工作计划
- 2019年4月广东省广州市高2019届高2016级高三第二次模拟理综化学试题及参考答案
- 扶风北乡丧葬风俗
- 七年制医学遗传学试题
- 学案导学模式在高中数学教学中的有效应用-2019年精选文档
- 学困生转化个案分析
- 最新 苏教版小学科学六年级上册:《铁钉生锈了》教案 - 第2课时
- 最新-2018届江苏省扬州中学高三4月双周练历史试题及答案 精品
- 会计基础:会计循环
- 个人外汇业务试题-单选必考题50题
- 学生会办公室下半年工作计划
- 110个数字密码 文档
- 论紫砂壶造型设计中的主题定位
- 事业单位;分类改革;参照公务员法管理;机构改革
- 2016-2022年中国水力发电产业专项调研及十三五投资规划研究报告(目录)
- 最新部编版八年级语文下册《马说》说课稿
- 河南省扶沟县高级中学2018 - 2019学年高二地理下学期第一次月考试题
- 巧借多媒体优化数学教学
- 人为何要遵守五伦关系(共一集)