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ù)類型呢?本菜鳥水平有限,希望能講解的越詳細越好。謝謝~
weisongyuan
永遠年輕
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 581 個
工控威望: 10117 點
下載積分: 1351 分
在線時間: 479(小時)
注冊時間: 2013-08-13
最后登錄: 2024-11-07
查看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)進行算術(shù)計算時數(shù)據(jù)類型必須相同,這樣就要進行數(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(我心飛翔) 熱心助人!
  • 永遠年輕
    weisongyuan
    永遠年輕
    級別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 581 個
    工控威望: 10117 點
    下載積分: 1351 分
    在線時間: 479(小時)
    注冊時間: 2013-08-13
    最后登錄: 2024-11-07
    查看weisongyuan的 主題 / 回貼
    2樓  發(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ò)都注釋了指令的用途。你點擊最下面的程序截圖使其放大,就看的仔細了。第1、2張截圖是一樣的,顯示200所有的功能,3、4是一樣的就是用于存儲器類型所有的轉(zhuǎn)換指令的展開圖,我想問你的是:你說的“PLC是如何把不同長度的數(shù)據(jù)相互轉(zhuǎn)換的。比如字轉(zhuǎn)換成雙字,雙字轉(zhuǎn)換成字,具體的轉(zhuǎn)換過程是什么樣的。并不是問轉(zhuǎn)換的指令。”我是真的不能理解,編程軟件中的轉(zhuǎn)換指令你不用,非要另外找一個途徑解決。我可以負責(zé)任的告訴你:在西門子200中如果不使用轉(zhuǎn)換指令 就想完成 字節(jié)、字、雙字、實數(shù)及字符串之間的轉(zhuǎn)換,除非你自己創(chuàng)建出200編程軟件
    永遠年輕
    weisongyuan
    永遠年輕
    級別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 581 個
    工控威望: 10117 點
    下載積分: 1351 分
    在線時間: 479(小時)
    注冊時間: 2013-08-13
    最后登錄: 2024-11-07
    查看weisongyuan的 主題 / 回貼
    3樓  發(fā)表于: 2015-01-29 10:24
    謝謝您的執(zhí)著,我原來也沒注意這個事情,想給你回答這個問題的時候才又找到教材查閱的。現(xiàn)在回答你的例子:如果是將字節(jié)轉(zhuǎn)換為字,數(shù)據(jù)的保存是由轉(zhuǎn)換后字的最低位依次向高位排列,未使用的位用0補充,如果是雙字轉(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ù)字會顯示進位錯誤))如果超出轉(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) 真誠感謝!
  • 永遠年輕