版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PROFINET过程数据报结构下图展示了一个PROFINET周期性过程数据报的一般结构:DestinationSource
VacsddressIT/P&JkB8U2DestinationSource
VacsddressIT/P&JkB8U2Frame
id文PadBing
Langtn40-加0APDUStatus此结构基于使用VLAN标签的第二层以太网帧。当每个PROFINETIO设备和PROFINETIO控制器发送VLAN域的时候,有可能被中间的网络交换机移除掉。分析报文的时候这个需要考虑到。C_SDU域包含需要传输的数据。带VLAN的以太网帧的最小长度是64字节,如果C_SDU域的长度小于40字节会自动填补。APDU状态域包含周期计数和额外的状态字节。C_SDU由两种类型的数据组成:IO数据对象IOCS对象每个数据项与一个特定的子模块相连。IO数据对象包括过程数据和子模块的相关IOPS。IOCS对象仅仅包含子模块的IOCS。一个C_SDU常常包含多个对象。在C_SDU中的过程数据的实际位置已经在连接开始的时候的RPCConnectService中被参数化。在两个相邻的项目中可能被插入额外的填充值。数据项的结构由下图展示。通常IOPS和IOCS的长度为一字节。ProcessDataIOFS解析示例下面通过一个例子描述整个过程数据报的解析过程。解析的帧是一个输入IOCR。提取结构信息第一步要从RPCConnectService中分析出需要的结构信息。通过WireShark很简单就能完成。下图展示了RPCConnectRequest和需要被用来解析一个InputIOCR报文的部分。红色框住的是InputIOCR的描述,包含了帧ID和在C_SDU里面的数据项的偏移值。相关的过程数据能从黄色框中的SubmoduleRequests提取。HIB-:二JE^Hnvm...Omi,F^JCtrine tuT£ XOieJiai忻口匕山|白>»|[n砧-1^4.E773M4O01风16E.CL1PNIO-4:NSjGGCombctrfqua2tnARalodcftc-q,Al^rmCFl^H1;4«84^05070192.168.0.219J.1C8b0.1PNIO-CR212corwcxFKponsfiiOK, IOC144.C£&BCDGSOIfl2-LG&-O.1l-Q2.16a.O.工PhIO-<N[口9writsrgquasc,lOCwriicfiflqHa£dar,Api_1!4flSM53MO152.168.0.2153.168.0.1PNIO-CH206hrirtrespanae^ok..iodw^--icep.K.HC'iLder1«192.16B.a.1192.16B.0.2PNIO-CN209writerequea.t,19IDWr"i±EfljeqHe±derB^pi1:4.€91M34Q0m.ICB.O.2I^.ICB.0.1PNIO-CM206hrirere5p3H3«,«)K,iQDwr-SceR&sneacier:U1<4.ti«14D35OIffiTEfiflLDPNIO-CH209writer*qu-E3-t,MDH「"itdlE0H>eede「EApi1W4-fi93fl96610rgsTiMjsraT927I5B^nPNIO-£N2姓hritfi「窃pans%ok,WEM'mz5P.tsHeiLder2C4.094176590isQ.ieB.a.iZL92R乱0-2PHIO-CH211「£白睡5匚iI0DUPnAp12;1^2.lGB.O.21PhIO-<N20Qwritaraspnnsa1UK.IOOaticaimHG-adcr2:4698268家。192.16S,0.119?.168„0.2PNIO-CH211KTIT塾requ^sc,icjwrlT印第qh史』ci«r卜ip12:-4.CSB15Dn40isz.itiB.a.z192.1SB.O.1PNID-CNZQQwriterespanse.OK,lOCwriceRE-iHe-nder2<4^9Si5O63O152.168.0.1193.168.0.2PNIO-CR211mtIn电requ^sc,ioc*rlTeR^qH€aiC^rhapl274.£99«0840132.168.0.2192.168.0.1PNID-CN20EWriterespanse.OK.IODW1-1teReiHE-ader露4,7002^350!9271«^72「NIUYNZUhritcrcqiresc।lOQwritefleqHe^i>erP.*pi,一4.70m7250192.lCguO^192.166u0ulPNin-€H20€wrluerMEH££.ok.ioday1ctRESHeaderIH土PraoaE-:3-&GbyTQEonwirg(4!2Bbirs).byrescaptured(4526bits)Ethe^nei:n।srcsn1lscher_2i制8<0002逋2:21:皿内33dst:nilscher_24:2e凹2100:02诵22山:2白:&23fflInterneePratDealVersHon4,Sre:lU2.lfia.O.l<132.1(5£.0.1>.Cat:152.ICE.D.2(LD2.IM.D.2^®userDatagraripr-oroc<il,sreporitap(1026),dsiFt;口「061呻工■点m(?d?5d)囤DistributedCmputingEmirnnnefit/ftefrateFracEndureCal1CDCE/RPCDRequest,E«q:口.Serial:0,Frag:口.FragLen:山&4日PWFINETW,Connect ^ "optradon!connecT(03ArgsMaxinura:41"6ArgsLengtlisi24QArmy:Mase二417G,Offs<jt:a,Eizo:424eaR.ElockH.eq:工oc蜗mMgl%sessioniSj,wjk:00:CJ2:aS:21:9Ci:Sa,pori:0xflS92,57凯1口0:8时/。11取ESAlarnCRBlackficq:AlarnCH,LT:0xafi92,TFactar:1.Retries:J,Ref:0xi),Len:20DTaqiOscOtK/OxaDOOFZDCRElatkReci:OutpLtCR.,R.*+;<Jx6iLaizlu.Frin=:D:■3:■■."H-"BClcicl::_2BF.aMG:iLBFra3^i:l.^PI^:1*Exp^CTPrh-1."I-:rk-!?c:APIs:1.9.ibnodl.IflS:4IbE}qp«CC£dEubllQdUl£BlackR£q:HF工S:」.Eubmdules:1|ELMp'ai:cad£4jbnDdulgE-lackfiaq:APIs:lafubrndulaE:1eI^UUIDG>5bC*6-?69-3J0d-B7d0-9i0C-<0d29037a571SQH"片较:口口;02;耳2;21:9。;9日3rlm】印€『第工口DSvH4£:00:03:32:24:2e:Ji2Dfi野61比—Qg工值开始解析需要创建一个包含所有数据项偏移值的列表。这些信息从IOCRBlockRequest中提取。在本例中我们主要关注InputIOCR。帧中帧ID是0x8000。OutputIOCR帧ID必须从RPCConnectResponse帧中提取出来,OutputIOCR帧ID由设备分配。下图展示了期望的InputIOCR的IOCRBlockRequest。ClearDestination「nrnil门尸门+++++lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:Numberofiocs:5lOT:ClearDestination「nrnil门尸门+++++lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:lODaTaobjecT:Numberofiocs:5lOT:SiOT:SiOT:SiOT:SiOT:10x0,0x0,0x0,0x0,0x1,5□bs1ot:s□b51ot:s□b51ot:S□b51OT:S□b51OT:0x1Frameoff5ET:17OxSOOOFrameoffseT:OxSOOlFrameoffseT:0xS002FrameoffseT:0x1Frameoffset:0LB19204.677354400 192.168.□.14.684605070 192.168.□.24.6B6B66630 L92.168.0.1ARB1ockReq:iocar.51ngle,session:2,Alarn>CRElockReq:AlarmCR,LT:0x8892,TFactor:1,ReTr1es:3,Ref:IOCRBlockReq:inputCR,Ref:0x5,Len:40,FrameiD:0x8000,clock:3+BlockHeader:Type=i0CRElockReq,Length=86(+4),version=l.0lOCRType:inputCR(0x0001)lOCRReference:0x0005LT:0X8B92+lOCRProperfies:0x00000002DataLenoth:40ReductionRatio:16Phase:1Sequence:0FrameSendcffset:0xffffffffwatchdogFactor:3oatanoldFactor:3lOCRTagheader:OxcOOOIOCRMuIticastMACAdd:00:00:0000:00:00(00:00:00:00:00:00)NumberofAPIs:1-API:0x0,NumberofioDataobject5:5NunnberofIOC5:1API:0x00000000NumberofioDataobject5:5工。ce:写lot:0x2,subGlcm:0x1Framccffsci::21+IOCRBIOCKReq:OUTPUTCR,ReT:UXt),LGn:4U,FTameiD:UXTTTT?Clock:根据上面的信息,我们创建了下表。CSDUOffsetKindApiSlotSubslotLengthofDataLengthofItem0IOData00x00010x000117IOData00x00000x000118IOData00x00000x800019IOData00x00000x800120IOData00x00000x800221IOCS00x00020x0001-现在所有的偏移值都知道了。下一步就是提取各项的大小。这些长度能从ExpectedSubmoduleBlocks描述的子模块中提取出来。第一个ExpectedSubmoduleBlocks由下图展示:
Fltrr:dcerpc ■EKprcsion...CfecrA卬lySaveNo.IPcrtiTne ISource iDEFtinaliDn |PmtasliLenqth|lnft>I I। ।3Frame8:~566b^esoniwire^452®bitsj,~566bytescaptured(,d528bits)FtlEthernetIIaSrc:Hllscher_21:90:9a(00:OZ:a2:Zl:90:9aJBDst:Hll3crier_24:2e:42C00:02:a2:24:2e:42ainterneLppolocqIversion胃,src:1^2.168.0.1 ,dsl:152.158.0.2(192.163.0.2)田UserDatagramPrDtacoJaSrcPort:cap(1026)aDstPort:profinet-cm(14964)aDistributedconputingEnvlranment/FtemoieProcedurecall(dce/rpc^jRequest,seq:Qtserials0.Frmprofinet二口.connecuOperafion:Connect(D)ArgsMaximum:4176iArqsLength:42413Array:Max:4176,Offset:0aSize:424EARElQckKwq:locARsingle,session:2, :00:02:a2:21:90:9a,PDrL:Ox3S92sslac1on:comroiler田*1m「n)CRBl口匚kReq二AlarmCRaLT:flxS892aTFactor:1sRetries:3,Ref:0x0aLen:200Tag:0xcOOO/1Dxa00Cl0iocrbIockReq:inputcr,Ref30x5.Len^Q,千「311111史工[):。K30口口“clDckisZiRat1o;:i6pPhase:1apissiSlOCRBlockReqjOutput匚 LerrJO.FramelD:Oxffff।Clockz32jR.atio;16,Phase:1APIs;1HExpectedsubmoduleBlockReq:API3:1,5ubmodules:^EiBlockHeader:Type-ExpseccedsiubmoduleBlockReq,L@ngtli^74(+^)Bvers1om-l.0NumberofAPIs:1-api:oBslot:oxorIdentNumber:0X12G1Properties:oxosubmo-dule5:4API:0M00000000SlotNumber:0x00DOModu1eidemNumb也「;:0x000012QlNodu1ePropertiesz0x0000Numberafsubmodu1es:4曰siibinQdiile:subs!or:0x1,id«nr:0x12DOproperties:0x0SubslotNumber:0x00QlSubmoduleIdentNumber:0x00001200HSubmoduleProperfies;0x00QOIBE)ataDe3€ript"ion:input,5ubmdu1eDataLength:0rLengthrocs:1BuflLengtliroPS:1I曰subinDdule:subs!or:0x8oooPidem:qkizoiproperries:oxoSubslatNumber:OxBOOOsubmoduleIdentNumber:oxoo0012G1E5ubnioduleproperl1ies:0x0000BDataDescript~ion:Inpurt,SubmoduleDataLength:0?LengthlOCS:1auflLengtIrlOPS:1I□subniadule:subsloi:ox8001,ident:D)cl20-2Properties:oxoSubslDtNumber二OxSOQlSubmoduleldentNumber:0x00001202Esubniodulgprop€n.11es:oxooooBDataDescripfionzInpLirt,SubmoduleDataLength:0?LengthlOCS:1auSLengthilOPS:11 5ubslia1LrMLjnib£■■:。曲口。2日5ub口口dlllE:5ubu1iDT:0式5002.工deiflt::口)€120311 5ubslia1LrMLjnib£■■:。曲口。2SubmoduleTdemtwymber:0x00001203ssubmoduleprQpemi=:0x0000ffiDataDescription:Input,SubmoduleDataLength:03LengthlOCS:1auSLengthlOPS:1ititxpecTeabUDmoouieulocKKeq:afis:i,buomoauaExpected5ubinodu1eB1ockReq:apis:11submodules:!从这些信息中我们能得到API0和Slot0数据项的长度。这边导入指针是为了检查正确的数据描述元素。每个子模块都能分配一个输入数据描述Input-DataDescription和一个输出数据描述Output-DataDescription。对于InputIOCR来说InputDataDescription和IOData有关,OutputDataDescription和IOCS项有关。OutputIOCR反之亦然。在示例中所有的第一个ExpectedSubmoduleBlock的子模块有0个输入数据,1字节IOPS和1字节IOCS。(IOPS/IOCS长度通常为1字节。)CSDUOffsetKindApiSlotSubslotLengthofDataLengthofItem0IOData0 0x00010x000117IOData0 0x00000x00010 0+118IOData0 0x00000x80000 0+119IOData0 0x00000x80010 0+120IOData21IOCS00 0x00000x80020x00020x0001-0 0+1我们用剩下的ExpectedSubmoduleBlocks信息完善表格:fflFrairefflFraire8:566byicsonwire(-452Bb1rs)P5^byrescApiuredC^52Sbits)EthernetIIRSrc;Hi1schEr_21;90:!?a(0-0;Q2»a2:21;90;9a)RDst:Hi1scher_24;2e;42(O0-;02;;a2:2e;42)InternetPrDtDcalVersion*5「口192.1tQB0-l<132-16S.0.1)HDstz192.1€BuQ.2 0.2)UserDatagramPrarocol,SrcPort:cap(1026),OstPort:profinet-cm笆4g64)fflDiscribiuredcornpuringEiwirorimenr/r:电力已二色p^cKeduirecall(dce/kpc)Reqiuesr7seqi:D-,ser1a"ltO7Fraq!0)Frae日pwfinetrorcomecr(Operatian;Connect(0)ArgsM<Lx.imum:41?6ArgsLengrh:424田段「ray:Max:4176,affseriD(s1ze:424国鸟RBiluckR:电q;[盯匚昌usdngl%session:2i :00:02:a2:21j90:9a3 5ta(1oncontroller0AlarnCRBlDckReq;AlaraCR.,LT;aTFactw;1.,Retries Ref;0m0.,Ler:200Tag;OxcOOO/OKaOQOIOCRB1ackReq:InpwtCR.,ReflOxS.,Len^D.FramelDzOxBOOO^ClocksJ2.Rafio^lG,Phase^lAPIssifflIOCRB1nekReq:outputCft,Ref:Ox6,Len:40,FramelD:axffff?Clack:32,ftariD:16,Phase:1APIssiBlEMpg匚i:Ed亏Libnodulq巳IcickR^q::向aubaadul电e:4ExpecredsubiKidiJie&lockReq:apis:ipsubroduiesilEBlDckHeader;Type-EKpected5ubnQdijleBlocklReq,Length-32(4-45■Version-1.0NunberOfAPIs:1SAPI:0,Slot:Oxi,Identkumber:OxiProperties:OxOSubmadules:1AFI:OXO0OOOOOQ51utNumber;QxOOOlModis1eldentNumbsr:0x00000001ModuleProperties:OxOOOONiiaiberofsubmodules:1bgubmoduleisubslauGxl,ident:0x1nroperties:0x15ubs<lotNumber;&xOOGISubnodtileldentNumb^r:QxOOOOOGOlB5ubBodtileProperties2OxOQ01田弓urlptlcimInput,£ubirraduleOaraLength!16?LengthlflCfi:1?uSLengthlOPE!1困61otkH电Re「二Type-ExpectedSubnodwleBlackReqaLength-32(4-^Ji.Version-1r0NunberOfAPls:1□API:Q.(Slot:0x24identNumber:OxllProperties^DxdSubmodulAPI!DxDOQOODOO51atNumberso^aoozModuleldcntNumber:OscOOOOOOllModuleProperties:0x0000Numbercfsubmodules:1日Gubm口而IkSubsist!Qxl?Ident:O)(llProperties.!0x2subslorNumber:DxoooiSubnoduleldentNumber;0x000000-11ESubnoduleProperties:0x0002目&ai:自匕弓亡Output15ubmcido1弓口mtaLwngch:Ld।i_Engch工OC5:11uHLwngthMPS:1完成的表格:CSDUOffsetKindApiSlotSubslotLengthofDataLengthofItem0IOData00x00010x00011616+117IOData00x00000x000100+118IOData00x00000x800000+119IOData00x00000x800100+120IOData00x00000x800200+121IOCS00x00020x0001-1这表格包含了一些零数据长度的IOData。这些IOData对象表明了在PROFINET中,一个没有任何过程数据的子模块都被认为是一个有0字节长度过程数据的输入子模块InputSubmodule。解析过程数据报最后一步是用上文创建的表格解析过程数据报。下图展示了一个InputIOCR的特定数据报。为了正确的选择解析不仅FrameID需要加入计算,而且数据报的Mac地址也要加入计算,因为在RTMode下同样的FrameID可能被不同的设备用到。下图中,帧#106被选择用来分析。
Filta: Exp-gssion...口escApd/SaveNa iRort|Tiie氏uce|舟题口前onIPratoDol|La-iqthfcn,foyi.■XUUiUK.产1054.77465.5430Hnscher_zi:90:9aHilzchcr24:ze:42PNIO64RTCZ.ID:1064.7?77563«0Hllscher_24:2e;42Hllscher_21:90:9aPNIO3RTC2,ID:107d.783779290192.16^.0.2192.160-0.1PNIO-CM17dControlr108d.7S5290S60192.16^.0.2192.16SuG.lPNIO-CM174Contro1r1094.795S8SSSO192-16B-0-1192.16a.0.2PNIO-CM174Contro-lr1104.790661750HiH5cher_2i:90:i9anil-cher_24:?e:4ZPNIOMRTC2.IQ:1114.79375.S51OHill5cher_24:2e:42Hll5cher_21:90:9aPNIO64RTSID:112^.506549100h115cher_21:9。;:9aHllscher_24s2eM2PNIO3RTSID:113-4.609759190Hi1scheir_24:2e:42Hi11scher_21:90:9aPNIO64RTC2,IE>:1144.£22546810H"ilscheir_21:90:9aHillschEr_24:2e:42PNIO64RTC2,ID:11SHi1seher_24;2e:42Hi1scher_21:90:9aPNIO64RT€2,ID:♦1rr尸壬田Frame106:节4byresonwireC512bits).64bytescaptured(512bits)®ethernetnBsrc;HlKch@r_24:2e:42£:Q0;02:a2:24:2ei42i,lec:Hnscher_21:90:9a(0Q:Q2;:a2:21:9Q:HHQ2,1QvirtualLANfPRU:6,CFI:0,工口:0aPROFIMETcyclicReal-Time,RTC2,ID;0x8000,Len;Cycle:11264(Vaiid3Primarysok,Run)HDataStatus:Dx35(Frarme:VaiidandPrimary,ProuiderzokardRun)PRflFINETto 口artaUnit:4。bytesuserData(IncluidlnggapandRTCPaddlng)^39byres®undecod^duacas4Qbyres000000100020000000100020Q030蓝色标记的部分是包含实际过程数据的C_SDU部分(包括填充)。基于我们的表格可以提取到如下数据:CSDUOffsetKindApiSlotSubslotLengthofDataLengthofItemDataStatus(IOPS/IOCS)0IOData00x00010x00011616+10x000x000x000x000x000x000x000x000x100x010x000x000x000x000x8f0xff0x8017IOData00x00000x000100+1-0x8018IOData00x00000x800000+1-0x8019IOData00x00000x800100+1-0x8020IOData00x00000x800200+1-0x8021IOCS00x00020x0001-1- 0x80状态值0x80表示相关的过程数据对于IOData对象是有效的。对于IOCS对象,它表明相关过程数据的“消费者”在使用这个数据。(这个相关的过程数据发送方向相反,因此不是IOCR的一部分。换句话说,这个例子中Slot0x1Subslot0x1是一个输入子模块InputSubmodule,Slot0x2Subslot0x1是一个输出子模块OutputSubmodule。)备注PROFINET过程数据交换包括了一些额外的限制,设备必须遵守这些限制来确保适当的数据交换:一些现有的IO控制器(例如S7-300,S7-400)从RPCApplicationReadyRequest之后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南司法警官职业学院《材料化学基础》2024-2025学年第二学期期末试卷
- 云南新兴职业学院《小学课件制作》2024-2025学年第二学期期末试卷
- 机关内部制度职责流程
- 机关单位内部治安制度
- 机电队内部管理制度
- 林业技术员内部管理制度
- 检察官内部审批制度
- 重庆医药高等专科学校《影视编剧学》2024-2025学年第二学期期末试卷
- 遵义医科大学医学与科技学院《WTO概论》2024-2025学年第二学期期末试卷
- 首都师范大学《物流技术与装备》2024-2025学年第二学期期末试卷
- 中枢神经系统和外周神经系统的比较
- 《国际货运代理概述》课件
- 真人cs枪战策划方案
- 《心脏猝死的急救》课件
- 火龙罐综合灸疗法
- 混凝土切缝机安全操作规程
- 船体基本结构2
- 榆林市德隆环保科技有限公司危险废物综合处置中心一期技改项目环境影响报告书
- LY/T 2496-2015防护林经营技术规程
- GB/T 4025-2010人机界面标志标识的基本和安全规则指示器和操作器件的编码规则
- GB/T 30775-2014聚乙烯(PE)保护膜压敏胶粘带
评论
0/150
提交评论