《TIA博途S7-1200中实现高低字节或高低字调换的4种方法介绍.docx》由会员分享,可在线阅读,更多相关《TIA博途S7-1200中实现高低字节或高低字调换的4种方法介绍.docx(10页珍藏版)》请在第壹文秘上搜索。
1、TlA博途S7-1200中实现高低字节或高低字调换的几种方法介绍例如S7-1200与某些上位机进行通信时,读写的浮点数的存储方式与上位机不同,即高低字或字节是相反的,此时读取的数据是不对的,需要将高低字进行调换之后,才可以正常显示。下面就总结几种高低字或字节调换的方法,供大家参考。在TIA博途中,一个浮点型数据REAL占用4个字节,BPDWORDo一、通过间接寻址,片段访问的方式以DWORD的高低字调换为例进行说明(WORD的高低字节同理):如下图所示,新建一个FC块,块的接口变量如下图所示,SCL程序如下图所示,将输入变量的高字赋值给输出变量的低字,输入变量的低字赋值给输出变量的高字-:*2
2、G”“9a-T苹%、卜Sd咛”“*Sm新0&Btn磔BUlu-anc_AteOWdHvn:3HMw*IC1r1一一-._IllAlIIAffHUflKiI*限字曲Data和OUtPIl.tJJ4尸rGg八1,/:,f,CffeTnW1;45END.REGION6tData,数据类型为Real浮点型,如下图所示,回口名和效羯臭盟起始侑保持1DPSUtc3motor1BJmotor?BoolfaeDmotsBOOlfauOimrxvmaoedBOOl6(9valueIMr0v1m040vr2m0Dvar3DfMUtmtQ.Irtf2OMlPULDJgRejlM90l MI肛oW3nI,AnII9(
3、WMjMfM0,AnjtoQCorwM-OJTF501| We.tMwt7W0J.5IH.TO5(FKH|*111vuto9.*.Vfl.WaJAfOtH,布博伊 6加新BMQMeAKTWHruMeeiAlNjA04Mrs;Ki|配方处W,Ul 3他NeV2“200】MgJXJ.V2m”-M*f* ek)gCwe 5t ir=5l M! / 5,: 不 AV*R 116*1111 2222 ,lftiiH.r. j npuQta在OBl中调用该FC块,如下图所示,并给块的管脚连接数据块中的变量,*4.rfitllfi田倭和冈崎RCeIICWWIKDOCrwtffi博加品WIWI鹿fl*,S1急
4、僵了?,Jl *MirnttPC1nttirca aJLrvoo*-vr.v:fwomAM09CgnKIMSOOlwo)$B2M) 靠N*新FBUArFlNVgM300OVLVLDD21XMKf2a7字的调换摄目3w.a设色1。再珞,Ji叱CMJWK0000(X1ITf8;SHfIItIi幅停中 ,初M承 3Ml 梅依人(R0tl*) Kntt4IFQI M蚓 AiMie.(X11.V2)FVOI*,wh Mk9c0fwLcuKnlMMaxmetox SlMLNKFJOQRMiOQL(112.0Wl0-J一一一Je4Aw*t三、通过AT访问变量覆盖的方式如下图所示,新建一个FC块,块的接口变量
5、如下图所示,SCL程序如下图所示,通过AT变量覆盖的方式,将DWORD变量的高低字分别存放在数组中,利用数组实现高低字的调换,最后再给输出变量赋值,*4hOdtputD怪 WtEp2;ENo.REGION。目3fnn皿(Mrgabu*IBklQ穆扉,1加HRMnMM AMXtIBKBIXU3H AM4mr&KN兴电费S QHioriN SM,IXr?# *(c4e0 ma*W 一irM(K) ch.VipgHARBbUoUtMJ3。 K*91b,W Utmoi.3VLSI8M .”.mw*MLX3n CERaIDI.OuMUMDtt92FMIM)1REoQN合期字府3*tf11p1AnpvID
6、aUi:三Tmp2|0:Tnp1(1);WTemp_2|1);Tmp1(0)j在OBl中调用该FC块,如下图所示,并给块的管脚连接数据块中的变量,女口3PLJJCPUDQDqDcl占后堪Main。口”7号巾帧议AfiftIOHMVAHkTA包J-3.11U.ncnmuDOOOOdhus、Uiiiour-eff*加断堵Mkx01*Mtrc)MTn*iHkrctl*MlWibfHCM方K1-3叽MVJFUOOl Ak-0l.V2lB?OM 3CevEZ(r500 M*BCvrVoUrFM01a-rM.o4tCEJMU:%FC5eAftiNAIaENOOutputDaU)故擢块1.OUtputDet
7、aAreOUr-VZ-PBjDe2如下图所示rfr(3Wata赋值为1S#11112222时,输出值为16#22221111,实现了高低字的调换健自3ar4A3&*,和冈络JeujKtvuncoouocqTrtWi*HWtoMQeXATiaitIKiie*AYarc4XftTUIIt)r11l-IKii2QLrW”203uqEOIlM6rdsooAn*PCwrt,OUTZXJMKltFoHWA.TOIFWHjnnm11t MatogL-qmi Afasoa-OUeViJMDlDl AMkgCcrwrvLM71 fUto9C0rV0UT.D611MIYGill1MIMll11.2222,iSMUk.r.inputDatainputDatarF5sUVSq,,rG8Wlrft.*PFee,)%FC5低,3慢3KfM/ENOutputDdU1622221111ftJk.1,OutputData四、循环左移16位,实现高低字调换(高低字节的话,就是循环左移8位)如下图所示新建一个Fd块,块的接口变量如下图所示,SCL程序如下图所示,叫目J力心斯中 41(CXI U1SCDJtXCJff tStt* IHIOir*济30wcMIe MT 4 FOI e1.Y2|K4| A 快窜 UB