lcwlaile
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 39 個
工控威望: 174 點
下載積分: 618 分
在線時間: 29(小時)
注冊時間: 2013-01-12
最后登錄: 2016-06-28
查看lcwlaile的 主題 / 回貼
樓主  發(fā)表于: 2015-01-25 22:38
請問高手們,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
永遠(yuǎn)年輕
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 586 個
工控威望: 10122 點
下載積分: 3121 分
在線時間: 484(小時)
注冊時間: 2013-08-13
最后登錄: 2024-12-22
查看weisongyuan的 主題 / 回貼
1樓  發(fā)表于: 2015-01-26 00:11
  西門子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重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+1(我心飛翔) 熱心助人!
  • 永遠(yuǎn)年輕
    lcwlaile
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 39 個
    工控威望: 174 點
    下載積分: 618 分
    在線時間: 29(小時)
    注冊時間: 2013-01-12
    最后登錄: 2016-06-28
    查看lcwlaile的 主題 / 回貼
    2樓  發(fā)表于: 2015-01-26 20:33
    謝謝你的回答,但是不是我要的答案,我主要是想問,PLC是如何把不同長度的數(shù)據(jù)相互轉(zhuǎn)換的。比如字轉(zhuǎn)換成雙字,雙字轉(zhuǎn)換成字,具體的轉(zhuǎn)換過程是什么樣的。并不是問轉(zhuǎn)換的指令。
    新手駕駛f22
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 60 個
    工控威望: 194 點
    下載積分: 737 分
    在線時間: 19(小時)
    注冊時間: 2014-02-06
    最后登錄: 2020-02-20
    查看新手駕駛f22的 主題 / 回貼
    3樓  發(fā)表于: 2015-01-26 20:45
    指令一給,自動進(jìn)行,怎么變,你要仔細(xì)研究一下八進(jìn)制,十進(jìn)制,十六進(jìn)制,BCD碼什么的
    liuqiang1986
    相互交流,相互學(xué)習(xí),共同探討。
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 429 個
    工控威望: 747 點
    下載積分: 2562 分
    在線時間: 604(小時)
    注冊時間: 2012-02-14
    最后登錄: 2024-04-01
    查看liuqiang1986的 主題 / 回貼
    4樓  發(fā)表于: 2015-01-26 21:05
    這看你要16位還是32位的數(shù)據(jù)了,
    技術(shù)在于積累,學(xué)習(xí)在于堅持。
    weisongyuan
    永遠(yuǎn)年輕
    級別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 586 個
    工控威望: 10122 點
    下載積分: 3121 分
    在線時間: 484(小時)
    注冊時間: 2013-08-13
    最后登錄: 2024-12-22
    查看weisongyuan的 主題 / 回貼
    5樓  發(fā)表于: 2015-01-27 07:25
    呵呵呵 我給你的就是你想要的,數(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編程軟件
    永遠(yuǎn)年輕
    liuhuaxing
    LIUHUAXING
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 965 個
    工控威望: 1172 點
    下載積分: 3446 分
    在線時間: 624(小時)
    注冊時間: 2011-03-26
    最后登錄: 2024-06-26
    查看liuhuaxing的 主題 / 回貼
    6樓  發(fā)表于: 2015-01-27 18:57
    引用
    引用第5樓weisongyuan于2015-01-27 07:25發(fā)表的  :
    呵呵呵 我給你的就是你想要的,數(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)換的指令!蔽沂钦娴牟荒芾斫猓幊誊浖械霓D(zhuǎn)換指令你不用,非要另外找一個途徑解決。我可以負(fù)責(zé)任的告訴你:在西門子200中如果不使用轉(zhuǎn)換指令 就想完成 字節(jié)、字、雙字、實數(shù)及字符串之間的轉(zhuǎn)換,除非你自己創(chuàng)建出200編程軟件

    樓主的意思是問你:當(dāng)你從甲站坐到乙站,公交車上的發(fā)動機(jī)是怎么運(yùn)行的?而不是問你是從哪里坐來的
    lcwlaile
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 39 個
    工控威望: 174 點
    下載積分: 618 分
    在線時間: 29(小時)
    注冊時間: 2013-01-12
    最后登錄: 2016-06-28
    查看lcwlaile的 主題 / 回貼
    7樓  發(fā)表于: 2015-01-28 22:04
    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
    永遠(yuǎn)年輕
    級別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 586 個
    工控威望: 10122 點
    下載積分: 3121 分
    在線時間: 484(小時)
    注冊時間: 2013-08-13
    最后登錄: 2024-12-22
    查看weisongyuan的 主題 / 回貼
    8樓  發(fā)表于: 2015-01-29 10:24
    謝謝您的執(zhí)著,我原來也沒注意這個事情,想給你回答這個問題的時候才又找到教材查閱的,F(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重新編輯 ]
    本帖最近評分記錄:
  • 下載積分:+1(lcwlaile) 真誠感謝!
  • 永遠(yuǎn)年輕
    lcwlaile
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 39 個
    工控威望: 174 點
    下載積分: 618 分
    在線時間: 29(小時)
    注冊時間: 2013-01-12
    最后登錄: 2016-06-28
    查看lcwlaile的 主題 / 回貼
    9樓  發(fā)表于: 2015-01-29 19:39
    謝謝八樓的細(xì)致解答,這就是我要的答案,非常感謝。想請問你,你查閱的是什么教材,可否分享一下。