Profinet周期帧实例解析
更新时间:2024-03-26 01:54: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周期帧实例解析03-26
2018年完整版大学生闲置物回收再利用公益事业创业项目可行性方案10-17
争做雷锋小标兵作文600字07-09
书-高中化学 专题3 第一单元 应用广泛的金属材料教学设计 苏教版03-08
2012届高三语文总复习计划05-13
2019年湖南省初中地理结业会考试卷03-20
潜水曝气机项目可行性研究报告评审方案设计(2013年发改委标准案例范文)06-04
维纳滤波可直接执行matlab代码11-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 周期
- 实例
- Profinet
- 解析
- 2007-2008学年度五四表彰先进单位与个人名单
- 2018-2023年洛索洛芬钠行业市场行情动态及发展趋势预测报告(目
- 第二讲 - - 现代汉语语法研究层次分析法
- 《德育故事》四集 2悌
- 自卑自信自负 - 关于赏识教育的再思考
- 2016-2017学年度北师大版二年级数学第二学期期末测试卷(2套) -
- 个人外汇业务试题-单选必考题50题
- 110个数字密码 文档
- 扶风北乡丧葬风俗
- 电信防洪防汛应急预案
- 常见污水流量测定方法
- 2015年锦程网职前教育答案
- 多样性指数介绍
- 河南省扶沟县高级中学2018 - 2019学年高二地理下学期第一次月考
- 小学儿童诗教学中创新思维培养的指导策略
- 精编完整版年产1万玉米胚芽油项目可研报告 - 图文
- (目录)2018-2023年中国医药生物技术行业市场深度调研研究及投
- “营改增”税务会计说税务风险,需要注意的10大违规核算
- 刑事证人的反思与重构
- 超全面英汉翻译笔记超赞