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