lcwlaile
級別: 探索解密
|
請問高手們,S7200中的各種類型數(shù)據(jù)直接具體是如何相互轉(zhuǎn)換的。比如BTI指令,將一個8位數(shù)據(jù)轉(zhuǎn)換成一個16位的數(shù)據(jù)。這兩個數(shù)據(jù)類型的長度是不一樣的,PLC 是如何實現(xiàn)轉(zhuǎn)換的。還有DTI,DTR,BCDI,等等。在編程的時候又是如何確定使用哪一種數(shù)據(jù)類型呢?本菜鳥水平有限,希望能講解的越詳細(xì)越好。謝謝~ |
---|---|
|
weisongyuan
我在南極賣冰箱—獨家經(jīng)營
級別: 網(wǎng)絡(luò)英雄
|
西門子S7-200可以按:位、字節(jié)、字、雙字尋址,如V200.0 、VB200、 VW200、 VD200,還有4個累加器:AC0 AC1 AC2 AC3,AC0—AC3可以是字節(jié)、字、雙字。一定注意的是:西門子與三菱、歐姆龍等的雙字不同,三菱的一個雙字的四個字節(jié)高低位的順序是從右向左,即起始字節(jié)為低位,而西門子200的一個字、雙字的高低字節(jié)是從左向右如:VD20——VW20 VW22——VB20VB21VB22VB23,VB23是VD20的低位字節(jié)。當(dāng)進(jìn)行算術(shù)計算時數(shù)據(jù)類型必須相同,這樣就要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,200有轉(zhuǎn)換指令,打開編程軟件可以看見,西門子200編程軟件比較直觀,所有指令都在指令樹中: [attachment=131716] [attachment=131716] [attachment=131713] [attachment=131714] [attachment=131715] [ 此帖被weisongyuan在2015-01-26 09:11重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
lcwlaile
級別: 探索解密
|
謝謝你的回答,但是不是我要的答案,我主要是想問,PLC是如何把不同長度的數(shù)據(jù)相互轉(zhuǎn)換的。比如字轉(zhuǎn)換成雙字,雙字轉(zhuǎn)換成字,具體的轉(zhuǎn)換過程是什么樣的。并不是問轉(zhuǎn)換的指令。 |
---|---|
|
新手駕駛f22
級別: 探索解密
|
指令一給,自動進(jìn)行,怎么變,你要仔細(xì)研究一下八進(jìn)制,十進(jìn)制,十六進(jìn)制,BCD碼什么的 |
---|---|
|
liuqiang1986
相互交流,相互學(xué)習(xí),共同探討。
級別: 家園常客
|
這看你要16位還是32位的數(shù)據(jù)了, |
|
---|---|---|
|
weisongyuan
我在南極賣冰箱—獨家經(jīng)營
級別: 網(wǎng)絡(luò)英雄
|
呵呵呵 我給你的就是你想要的,數(shù)據(jù)長度的轉(zhuǎn)換就是要用轉(zhuǎn)換指令解決,各種類型的數(shù)據(jù)都可以根據(jù)你自己的需要轉(zhuǎn)換,字節(jié)轉(zhuǎn)換為字,字轉(zhuǎn)換為雙字,雙字轉(zhuǎn)換為實數(shù),反之亦然。我給你的截圖就是轉(zhuǎn)換用的指令,你根本沒看我給你的最后一個截圖,我在網(wǎng)絡(luò)都注釋了指令的用途。你點擊最下面的程序截圖使其放大,就看的仔細(xì)了。第1、2張截圖是一樣的,顯示200所有的功能,3、4是一樣的就是用于存儲器類型所有的轉(zhuǎn)換指令的展開圖,我想問你的是:你說的“PLC是如何把不同長度的數(shù)據(jù)相互轉(zhuǎn)換的。比如字轉(zhuǎn)換成雙字,雙字轉(zhuǎn)換成字,具體的轉(zhuǎn)換過程是什么樣的。并不是問轉(zhuǎn)換的指令。”我是真的不能理解,編程軟件中的轉(zhuǎn)換指令你不用,非要另外找一個途徑解決。我可以負(fù)責(zé)任的告訴你:在西門子200中如果不使用轉(zhuǎn)換指令 就想完成 字節(jié)、字、雙字、實數(shù)及字符串之間的轉(zhuǎn)換,除非你自己創(chuàng)建出200編程軟件 |
|
---|---|---|
|
liuhuaxing
LIUHUAXING
級別: 論壇先鋒
|
樓主的意思是問你:當(dāng)你從甲站坐到乙站,公交車上的發(fā)動機(jī)是怎么運(yùn)行的?而不是問你是從哪里坐來的 |
---|---|
|
lcwlaile
級別: 探索解密
|
6樓明白我的意思了。關(guān)于2進(jìn)制,16進(jìn)制,BCD碼我是了解的。比如一個常數(shù)十進(jìn)制的9,我可以用4位2進(jìn)制數(shù)表示它。一個字節(jié)有8位,表示一個4位2進(jìn)制數(shù)足夠用,但是如果我想把這個字節(jié)的數(shù)據(jù),轉(zhuǎn)換成字。那么一個字有16位,16位表示一個4位的2進(jìn)制數(shù)只用了4位,其它12位是空著的嗎?這就是我想問的問題。我只是舉個例子。 |
---|---|
|
weisongyuan
我在南極賣冰箱—獨家經(jīng)營
級別: 網(wǎng)絡(luò)英雄
|
謝謝您的執(zhí)著,我原來也沒注意這個事情,想給你回答這個問題的時候才又找到教材查閱的。現(xiàn)在回答你的例子:如果是將字節(jié)轉(zhuǎn)換為字,數(shù)據(jù)的保存是由轉(zhuǎn)換后字的最低位依次向高位排列,未使用的位用0補(bǔ)充,如果是雙字轉(zhuǎn)換為字或者是字轉(zhuǎn)換為字節(jié)也是這樣,應(yīng)該考慮的是轉(zhuǎn)換的數(shù)據(jù)長度,(字節(jié):-128—+127或0—255;字:-32768—+32767或者0—65535;雙字:-2147483648—+2147483647或者0—4294966295,注意:S7200PLC使用的浮點數(shù)格式最多支持7個有效數(shù)字。嘗試顯示7個以上有效數(shù)字會顯示進(jìn)位錯誤))如果超出轉(zhuǎn)換后的字或字節(jié)的最大數(shù)則超出的高位部分溢出,特殊輔助繼電器置位。如:西門子200,當(dāng)雙字VD100 轉(zhuǎn)換為字VW120 或者VW0 轉(zhuǎn)換為VB 10,當(dāng)轉(zhuǎn)換后的數(shù)據(jù)超出轉(zhuǎn)換后的VW120或者VB10的最大數(shù)值則只保留低位高位溢出,同時特殊繼電器SM1.1置位 [ 此帖被weisongyuan在2015-01-29 10:50重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|