Profinet周期帧实例解析_第1页
Profinet周期帧实例解析_第2页
Profinet周期帧实例解析_第3页
Profinet周期帧实例解析_第4页
Profinet周期帧实例解析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PROFINET过程数据报结构F图展示了一个 PROFINET周期性过程数据报的一般结构:DestiryillcnSclfcg vacsodr&sfiFrancIdtTSDU * Padding L&mft 酗-I MO2UU Status此结构基于使用 VLAN标签的第二层以太网帧。当每个 PROFINETIO设备和 PROFINETIO 控制器发送 VLAN域的时候,有可能被中间的网络交换机移除掉。分析报文的时候这个需 要考虑到。C_SDU域包含需要传输的数据。带VLAN的以太网帧的最小长度是64字节,如果C_SDU域的长度小于40字节会自动填补。APDU状态域包含周期计数

2、和额外的状 态字节。C_SDU由两种类型的数据组成:IO数据对象IOCS对象每个数据项与一个特定的子模块相连。IO数据对象包括过程数据和子模块的相关IOPSIOCS对象仅仅包含子模块的IOCS个 C_SDU常常包含多个对象。在C_SDU中的过程数据的实际位置已经在连接开始的时候的RPC Connect Service中被参数化。在两个相邻的项目中可能被插入额外的填充值。数据项的结构由下图展示。通常IOPS和IOCS的长度为一字节。Process DataIOPS解析示例下面通过一个例子描述整个过程数据报的解析过程。解析的帧是一个输入IOCR提取结构信息第一步要从 RPC Connect Ser

3、vice中分析出需要的结构信息。通过 WireShark很简单就能完 成。下图展示了 RPC Connect Request和需要被用来解析一个 In put IOCR报文的部分。红 色框住的是In put IOCR的描述,包含了帧ID和在C_SDU里面的数据项的偏移值。 相关的 过程数据能从黄色框中的 Submodule Requests提取。+ f Thr n#T it |时屿 fl 母 *.2 i *X« 2 (00 a? k? :? j :40! 4a> psi!?4 ?« 昭 如:聊丙2:24:井:码打+ Internci Pratocal Grsinri

4、4 ire: 1401 XSJ-OlI C1M-15B.Q. 1> B Dsi: 197. IfiE. a. 2 (LW. IBS-0.2啊 已町 MTflfrriin f<XC0CQ1 Mt *0fl CUP. MtjT &l5tributrd ConL'ting Fwirwiiift ftefra-e Freicedure CS-11 rDTIF RPCj Rcjeiit, 肆卑;G. Serial: D, Frag: 0. FragLe-n: JL-ld -PTOFIMET IO, Connectop«ri.t1on; ccifri4c.i (0Ar

5、q-5F*ax"i njH-: 4176*rgsLenii: AUk MHFlf : rPAH : 1170 fc &ffG«K : 04 £i J: 4J4(-An-clcKkr-eq iociH5irgl#B 亍曲即百门hac '00:02 :a?21 彌 站 沪诃飞 山低醃02. ls“i:1ori:tonr£i'ner更 Al"aCIMMeieldRB:畠1 tR”. "皿社口:1 ” Hffie上3 ltErf:lOjc© LjerKgMTjttltCHzX'lXl” LixmIjI

6、Kg10Jrel50LiTLEZtsLriftxJisdh Jijrfh=1*huTisbi.o. i1C9.0'. JNIO Chfb«4 C«m*rr rflsqilSr b Alfli'lGCeq A.lAr<bM124192. ICS. 0.2193.1M. 0.1IU-CR1212 匚HfrCt fKpee, or , iPBlCKZnei. ICC144.CBIMM<D5O1OJ. L«ft.仇 1lfl2. IM. 0. 22W writii roiMsE p IMurltoltHfididfir,154 钳:>r

7、杓 nwijl? J?19?.a.1WNIO-CI*?CI6 hr 1t*#$>)诋童 z, Towrqt电p1百4.fiM12553Ci132-160-3.1192.16aG-2Fwra-cwtarite- request, 10-nwriteRe匚一丄上出厂.誇pi17i2a«. >.2193-10,1呻如廿茁建叩1认脚利“卄.11“卿网珂1知応飢人】1弧1钩N刑HCF3<i kritcn iflWriitiBRcawc40er . Api19e 14B.4. 2192,163,0,1刑IQT:产K乐町 1t色 r?5p"ns*= . <:<

8、;,:QUi-TeFH'Fflder4.4»«15M肌丄丄 91.1U.0.2Ria-cj*JIA nr He l Efiu-iiiit s ivwrjoker. Apl工工4.4391il9>9Q2O1口1.若區k P. fM7 , IM, 9UiWYlt704 wr it a- rsspens-a L li-k. , lODwr i t af «-&H£-asr23i 962*B6?C192 16*. 0.2=»miO-CK211 isr It* r«|i#5C . IdWF -iT'ti., 叩 1

9、J31.1虬血eriio *Ci*Z0* hr 1 E p tipdfiae. <XS 1ODWT 1TizRriHcadcT2J«!<!U 価'1. 1坤 16S 0.?EHOYPr211 wril'E:# r«4MSC t- «MrIt» Apt2?4 fiW9-14)84JCi191-160. X2192.1U.0.1=MIO-Cir20<p Mir ite reapanse. 0<B OMr iteKEsHeader23取泗2同册1純邸 9,1J92 - lW+Cf+刑 ICI"OZJ'

10、hrit* rMiHJSC , Jci, *pi294. O19-25<11知応氛儿2192.1. 0 1=WIQ-<F昶麻轴Li t m I =S j>-ri£t C<200*- i:CF.P Flln: Laiiax* Eqpwov?. dawIi± F-jtw 4: MMJ tiytci. cli vlra (4I2B bits), cn byt tLJjtuEd (.iVJB bleJF""5eftETackBe: e-utpii* SR. Hi=t:CJxbB LenziU, FraireZD:'J>i.f

11、fffI : _3cL:331 Ratio: It, bne:l Pli :1b 1 邛电CTiSflS<Jb«4L I eft ICKkfi:Subnsdk les ;4I- E网电矶的纯IXkA电竿 4P1§ ;14觇吸札1鮭江-匚xpa匚irigE&ubnxflL'ImElxkllEiq: APIs :1SubnadLlas :14<>5M0WB-yM-J-Tiil-WOc-<OJ25OiF.i'i. <untrN4i: 0;4: : 21 rM:M. COhcrAlR«f IOndt MvHUK:M;4

12、2sl2:24:2e:Hii2 Dfi档 1血 博E im开始解析需要创建一个包含所有数据项偏移值的列表。这些信息从IOCR Block Request中提取。在本例中我们主要关注In put IOCR 帧中帧ID是0x8000。Output IOCR帧ID必须从RPC Connect Response帧中提取出来,Output IOCR帧ID由设备分配。下图展示了期望 的 In put IOCR 的 IOCR Block RequestFilter: | dcerpcExpression.* Cl tarNo,|PcxtiTime| Source|Oestination84*67735440

13、0192.168,0.1192.168.L24.684605070192.168. 0. 2192.168.144.6868663O192.168,0,1192.168,fl Ld厂 ncfiim 厂 c-n m-厂ntryiai rwh厂 nki Array: Max: 4176t offset: 0, size: 4240 AR01ockReq: IOCARS1ngle, session:2, mac:00:02:a2:21:90:5a5 Port:l+l Al ar ncRE 1 ockRq: Al arm cr , lt :1 TFacxor: 15 rex ri e$: J, Ref

14、:A IOCRB1ockReq: input CRt Ref :0x5, Ln:0f FrameiD:0x8000, clock:审S Bio匚kH电3用电: TypeiocRelockReq t Length=86 C+4)5 ver si on=l.0 lOCRType: input CR (0x0001) IOCRReference: 0x0005LT: 0x8892S iOCRPropertles: 0x0000000232Reducti onRati o: 16Phase: 1Sequence: 0FrameSendCffset; O?cffffffffvatchdogFa匚tor:

15、 3DataHoldFacior: 3iocRTagneader; OxcOOONumberofAPis: 1l-l API: 0x0, NumberOf IODat aob jcts ; 5 Numberof IOCS ; 1 API: 0x00000000NumberofiCDaxaobj ecxs: 5+1iODataob j ect:51Ot:0x0,subslot:0x1 Frameoffset: 17ElIcDat aob j eel:slot:0x0,5 u b S 1 OT :0x8000Frameoffset:IB1+1lODax aob j ect:51 OT :0X0,s

16、ubslox :0X3001Frameoffset:19+iooax AOb j ect:sl ot:0x0,subslOT:0x8002Frameoffsex:20+iODataob j ect:51Ot:0XlTsubslot:0x1 Frameoffset: 0NumberofIOCS:1田IOCS : 51 OT :0x2 subs lot:0x1 Frameoffser;210 iocrbIocKReq: output cr, Reriuxo, Len:40, FrameiD:uxTTTT, clock: 根据上面的信息,我们创建了下表。C SDU OffsetKi nd Api S

17、lot Subslot Len gth of Data Len gth of Item0IO Data00x00010x000117IO Data00x00000x000118IO Data00x00000x800019IO Data00x00000x800120IO Data00x00000x800221IOCS00x00020x0001-现在所有的偏移值都知道了。下一步就是提取各项的大小。这些长度能从ExpectedSubmodule Blocks描述的子模块中提取出来。第一个 Expected Submodule Blocks由下图展 示:dcrfpc创TKFt53iDn- . Cbsr

18、 A' ' ly Sff¥t帕Ipvt kntISomcbbmrUQhIfD&CQLTP 由 Ikifv2d151S: 56© bytes on wire U5285G6 bytes cupturec (,-538 bits,>Ftl Ethernet IIB Stc: Hi lscfier_21:90:9a (.00:02 :a2:21:90:9aJ . Dst: Hi 1 scberJ4:2e:4Z Q00:02:a2:24 :2e:42 U incarnGL ptolocq! version 4. src: 192.16S 0l. (19

19、2.168 0 1) r dst: 192 丄呑密0工(192 丄 E0O .2) 3 User Datagrajiii Protocal, Srt Part: cap (1026J B Ost Port: profi net-cm (14M4)0 Distributed ewipurlng Errvlreminent / Remote Procedure call Cdle RPt) Request.石Eq; 0 serial: cP Fr El propinet xo. conncciLap#rat"io>n: fcyinpct (0Argsaxi huhti: 417&#

20、174;Ar qsLength: 424ffl Array:; Mass 41?6b OFtet: 0, 512e:S 424ill AA&lGckFLq:事岀舌恤“:釘 MAC 00:02 : a2;21:9O:9d( Purl :0m S892 p 5 tat ion: control 1 erH AlarirCRBliockiReqi Al firm CRj LT-OxSBJj TFactor :1 p Retries 3T Ref :0x0k Len:200 Tag zOcOOO/OxaAOO ffl KKRBl&ckficq: input CR. Ref :cx5i

21、iLeni:4QP Framei0;ox6OQDt GudcTE車 Raviq; Phase: 1 Apissl 田 l0CRBlpckReq£ Output CR, Ref: 0x6 R l 质FrcIDzOnf FFF , clk:32 RaXpQ;®. Ph«e ;1 apis :1IH Expecteri5ubinociu ieB lockReq: APT5:1 , 5nbmodu les :4f-i el ocLheader : Type-£xpeccedsubmodulesl ockReq, LengLti-74 f+码).vrsl on-J

22、L. 0MuirberOf APIs: 1*PI: ori slot:oxo. idemuirtser-oxi201 PiropertiessMO submdulesM 4PI: OKDOOOOOOOSi t H ufflbr : 0x00 DC潭Qdu1eidentNumber: oxCWOT1ZQLKodu 1 eProperti es: OkO-ODOunt9 e rCT Sub modu 1e5 : 4Ed utHiuaule: Subi.lot:OkI p idtiriL :Om1200 Proper t0x0Subilothu*mb«r s 0x0001sybffodul

23、eidcntMinber s QxaowiZQOg 5ubmQ4ulfiPrw«rti«5 ; OxOOQOffi DatsDescript-ion: inpurt, 5utxnodn 1 eDataLength: 0P LengthT0C5: 1. uflLengthlOPS: 1El sutnDGule: subs 1 oi :OxSD«J. icenL:O)LL20|l prope匸 1 es: 0x0Sui bs 1 ot rHuinbe : OxAO-OhCsubmoduleiderttMjmhcr: oxo0001201H submodultiPro0

24、«iri1«s : 0x00QOS nmtar>scription: Input, 5ufcmejdn 1 FBaitaLngth: 0p i i?rigthr<X5: 1 > uBL#-ngthJOP: 1H Subm&dui'e: subs!crc;0x8001. ident ; 0x1203 ProperrieszoxoSubsilotfHumber : 0x6001Sui b modu 1 e Tdent humbe r: 0x0 0001202LH ubuuclule Proper ties: 0x0000IB D4ir>D

25、#ser<ption: Tripurt5ubnodu 1 #DataL#ngth: 0? L#ngthT<3CS:uiflL#ngthlOPS: 1Sutslotumber; Cx#002hi &utrt&duie: subslocoxBDO?, icem s0x1203 propeni«:oxoSuhrodul TdentMimher: ()x: 0i:0120 3i* subt'OdulfPr operiMa: oxoOoc| 田 PataDes匸i pti un : Triput 1 Subtnodu I eDataLehgth: 0, Le

26、nt hIOC£ 1 , ufiLeht hTOP£: 1TTlxpecr«hudkxjuich>ocKK«q:3!L, bumoauies:iid Lxpec»dsubfnodul«BlackR«q:ub<iiudul«i :1从这些信息中我们能得到API 0和Slot 0数据项的长度。这边导入指针是为了检查正确的数据描述元素。每个子模块都能分配一个输入数据描述Input-Data Description和一个输出数据描述 Output-Data Description。对于 In put IOCR

27、来说 In put Data Description 和 10 Data 有关, Output Data Description 和IOCS项 有关。Output IOCR反之亦然。在示例中所有的 第一个 Expected Submodule Block的子模块有 0个输入数据,1字节IOPS和1字节 IOCS(IOPS/IOCS长度通常为1字节。)C SDU OffsetKi nd Api SlotSubslotLen gth of Data Len gth of Item0IO Data00x00010x000117IO Data00x00000x000100 +118IO Data00x

28、00000x800000 +119IO Data00x00000x800100 +120IO Data00x00000x800200 +121 IOCS0 0x00020x0001-我们用剩下的 Expected Submodule Blocks信息完善表格:Fi tea : dcepc勺 BsresMcn. Ctear Mi-i .Sajf&glart ilueliBLraE| 口|Fh3cal|lrnq 帕阳"1w Frave B- 566 Isyres on ».1re C528 t>1cs)P 5-66 byres cap(yr«l C452

29、S btis)ft Ethernet II. Src: Hl lsdter_21:90:9a (0HDjO2:a2:21:90;. tot: Hl lscher_24;2e:42 (00:02:a2:24:2B:4ZJiP I nt «r net Protocol Version X Src: 192.16B. 0.10.1. Ot: 102.1«£l.O.2 (102.16. 0.2)也 則尊*1厂 D宙rsiqrai價 Pror&rcl j. Src P口厂t1 : rap flDJC , Dsf port: piro'Fir.pt-cni (

30、TH号&*)bt Dlsrri buTzed catnpurlnq Etwiromenr / Resoce procedur e 匚al 1 fDCE/upcrRequesz r set;: 0, ser 1 al i Opi Frag : On Fraie mtofiimlt i-o, connectopadLt i筒:CQFf-iet CO)ArgrsMaxfuum:: 4176 ArgsLemjrhi: 424jj Array : max: 4176r offser : 0 ( size: 424jj AftB-iackHeq: T©CA«£lngn

31、釘 S«1om:2, MAC:00:&2:a2:2i:90:aB Ptri :Ok8«52» StatlGnlCdrurol ler n AlirnCWlotkR«q; ilarm CR* L1N0耳8曲2申 TTittorsli 恥ticd.恥仁仙 LfiiR;200 TAg;OxtOGQyOx«0(Kl' togk Block Req: input CR. Ref : 0x5 Len:40ri FraraelDiiGxaOOO- Clock; 32 i Ratio:lB phase:! APlsrl ±j IGCi

32、RElDckfteq: output CK . Ref zascb, LenD., FramelDtzOxffff B Clock: 32 , Raticzlg, Phase:1 APIs: 1 jj 左屛p»e 匚tEdfaubiKiMLiTEisTtJtlcitqt 更PJisti ” 雷 ufeiulun es 旦 E K|>«utnodu I1 OCkR«q: 如 1$: 11 &s: 1elockHeaer : Typt-ExpcctediiibBQctuil cBlockiREg4 Length-32(M>i VErsion-liO

33、 MunberpfAPI?: 1-i API: O. slor :Oxl. I dent Number iDxl Fr ope rt 1 es: OxO 5u bmodlu 1 e s: 1 OjcOOOOOOOO51 at Im umibf r; OkOOQIModuli el dentNumber: OxOOODOOdlMc-dul eP roperti es: OxOOM rofsijbjMdul 电兮!1sutiiwcltile? subsloc ;0xl,protwrxiessOxlSubslothumber; OxMGISub nodu 1 el:iEritAijnit: er:

34、DxGsjOCOO-LIl|± iiubnodulePropertl e5 i DxOU 321± DaTaDfiscrlprlant inputs ubMadulalengrh! 16, LwigThKKS! 1 p ufiLcingrhlCiS! 1日 E-l ackHiad?r : Type-EMpCted5ub«Ddul eBlockREqB Ir V?rsi onI 0iMuiberOfAPIs: 1d AFiz oB slot:0x2s iderthumberiOmXI properties:&x<jAPIE DXOOOOOOOOSlGT

35、hun-Der : DkOOO?Modu 1 eTdert Number; CxOOOCKJOllMcdu 1 eP r ope11 es:. OaOO-JOHumbe rofsubiTDClul es s 1S SiufcniBriijle! Sublcrr :0xl+ Idfmt :oxii Prflip&rTiesrOKJ5ob51orhurt)cr: OkOOOISubmcdu1eldertNumber; 0000OOGllE SubnoduIPrupeli暑凸住 OmOOOIis actacrlptioH: ourpiurc , sinbduli toil: u.: 14 &

36、#187; LTigthixsi 1, yaLtnrhioPS: 1完成的表格:C SDU OffsetKi nd Api SlotSubslotLen gth of Data Len gth of Item0IO Data00x00010x00011616 + 117IO Data00x00000x000100 + 118IO Data00x00000x800000 + 119IO Data00x00000x800100 + 120IO Data00x00000x800200 + 121IOCS00x00020x0001-1这表格包含了一些零数据长度的 IO Data。这些IO Data对象

37、表明了在 PROFINET中,一个 没有任何过程数据的子模块都被认为是一个有0字节长度过程数据的输入子模块In putSubmodule。解析过程数据报最后一步是用上文创建的表格解析过程数据报。下图展示了一个In put IOCR的特定数据报。为了正确的选择解析不仅 Frame ID需要加入计算,而且数据报的 Mac地址也要加入计算, 因为在RT Mode下同样的Frame ID可能被不同的设备用到。 下图中,帧# 106被选择用 来分析。彳 Dtpressi妁冲冇孑 Sa'ENOrJort |Tji>ISOuCijDMUneUcrIPFaioal|Lg |- faJL JJL

38、r XVU-rUT-r XU r L10i4. 7746&54JOHilscher_21:90:9aHilscher_2432C:42PN10MRTCZiID:106<.77775®3BCKllitfHJr_24:2ftr42HflSdKf_21J9Q;FNIO64HTC2 .1073 B 7B379Z®0192,161.0.2192,160.0.1PNXO-GW174 Ccntirol 108192>X6B<0,2192+16B.0.1PNIO-G*174Control109却一 7BSSaS5i5Oigj.itB-O.i0. 2PNia一匚警1

39、74Control r110.-li rrlHi 1 Scher21:so:yaHllSCher24:2e:nzPH丄064RTC2 .ID:1114. ;9i7 5aS10n11 sdier24!2e:42vllsdwr2L:90:JlPN1DMRTC2.ID:1124.80SS4 9100Hfltcbftr21:90 IftaHfUcharZ4!2«2PNIO64WTC2 .HI:113Hllsch-fi-r24z2a:42Hilschar21:9kPNIO64RTC2 ,ua勻.S?5d68tnnil scherHl Is匚11目厂PNia64RTF?,ID:11 sH-i 1

40、 sciher24i2e:42HiIschEr21: 90: 9 aPNia64RTC2,IB:I Frflir *4 byres txi *1rr fsi? bits), 3 byre? capTurcd (51 ? hir$J Ethernet u. sri; h1 lscher_?4 :2e;2 WQ:Q2;d2 ;24 门缶佗)】osr; Hllsther_21 ;9C;9a (00:0221 ;90:9a) Z 0U2.1-Q V1 riual LAN, PFU;独 CFl; Q. IO: 0t prc FINE- uyili 匚 Real -Ttie , RncZ , ID: 0x

41、8000 . Len : 4 口* Cyc le z 11264 ; Vai i d H Fr imary. O. R.ur : 壬 DatdTaTuS.: 0x3 & (Fra'B&i '. a t i d and Primary, Prtj jl dsr: Olc Arid ftuPiJPROFTNET TO tytlit SbEtm D航3 Writ: M byt昨oooo001000200030蓝色标记的部分是包含实际过程数据的 到如下数据:C_SDU部分(包括填充)。基于我们的表格可以提取user M-ia 口ncliurg gap and RTCPa

42、ddlng)s J9 byres 屮 undecocliGd Midi 40 bytesC SDU Offset Kind Api Slot Subslot Length of Data Length of Item Data Status(IOPS/IOCS)0IO Data00x00010x00011616 + 10x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000x10 0x01 0x00 0x00 0x00 0x00 0x8f 0xff0x8017IO Data00x00000x000100 + 1-0x8018IO Data00x00000x800000

43、+ 1-0x8019IO Data00x00000x800100 + 1-0x8020IO Data00x00000x800200 + 1-0x8021IOCS00x00020x0001-1-0x80状态值0x80表示相关的过程数据对于IO Data对象是有效的。对于IOCS对象,它表明相关过程数据的“消费者”在使用这个数据。(这个相关的过程数据发送方向相反,因此不 是IOCR的一部分。换句话说,这个例子中Slot 0x1 Subslot 0x1是一个输入子模块In putSubmodule, Slot 0x2 Subslot 0x1 是一个输出子模块 Output Submodule。)备注PROFINET过程数据交换包括了一些额外的限制,设备必须遵守这些限制来确保适当的数据 交换:一些现有的 IO 控制器(例如 S7-300,S7-400)从 RPC Application Ready

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论