西門子plc編程軟件中MOV_W、MOV_B、SHR_B的含義(yi) ,其管腳都的作用。
移動字節(MOVE)指令將輸入字節(IN)移至輸出字節(OUT),不改變原來的數值。
移動字(MOVW)指令將輸入字(IN)移至輸出字(OUT),不改變原來的數值。
右移字節(SRB)和左移字節(SLB)指令將輸入數值(IN)根據移位計數(N)向右或向左移動,並將結果載入輸出字節(OUT)。
移位指令對每個(ge) 移出位補0。如果移位數目(N)大於(yu) 或等於(yu) 8,則數值最多被移位8次。
編程手冊(ce) 中有詳盡的介紹,這裏摘抄下梯形圖的編製規則:
1)、所有輸出線圈Y不能與(yu) 左母線直接連接
2)、所有輸入繼電器觸點X不能與(yu) 右母線直接連接。
3)、常開觸點應在常閉觸點前麵
4)、輸出線圈的自鎖觸點應與(yu) 常開觸點並聯在一起。
5)、輸出線圈隻能使用一次,但觸點使用次數無限,
6)、輸入觸點在編程時,使用次數無限,
7)、內(nei) 部繼電器線圈R,T隻能使用一次,觸點使用次數無限
plc采用逐行梯級掃描式,每一個(ge) 周期接受一個(ge) 輸入信號.m是內(nei) 部繼電器,有一般用和特殊用繼電器之分。
T是計時器,也有一般用和停電保持等特殊類之分。
二、西門子PLC MOV_W BLKMOV_W指令的使用問題
問題:
第一個(ge) 圖,書(shu) 上說定時器的預設值為(wei) 16位的整數,故用字的傳(chuan) 送,我看不懂20從(cong) 十進製轉換成二進製就是10100,才5位怎麽(me) 就變成16位了?應該用MOV_B指令?
第二個(ge) 圖字塊傳(chuan) 送,書(shu) 上說是VW0對應VW100,VW2對應VW102,VW4對於(yu) VW104,為(wei) 什麽(me) 不是VW0對應VW100,VW1對應VW101,VW2對應VW102?
圖2
圖3
解答:
1、因為(wei) 定時器T的預設值為(wei) 16位字,所以采用MOV_W,雖然20的二進製為(wei) 10100,實際上就是:
0000 0000 0001 0100 ,當然,你采用MOV_B 將20傳(chuan) 輸給 VB5也是可以的,但是你需要確保VB4中的值為(wei) 0。
2、因為(wei) 西門子中,其地址序號是按字節來排列的,所以,VW100實際上是由VB100,VB101組成的,如果你直接使用了VW100,VW101,那麽(me) 就會(hui) 產(chan) 生地址重疊的問題,VW100由VB100,VB101組成,VW101由VB101,VB102組成,地址會(hui) 發生重疊,所以,為(wei) 了避免由於(yu) 地址重疊而造成一些邏輯錯誤,一般對於(yu) 字的應用,采用偶數地址序號。
附,其它網友的答案:
第一個(ge) 問題:vw4 包含vb4和vb5 如果你隻用movb指令給vb4賦值,那麽(me) vb5的值就是不確定的,最後你寫(xie) 到定時器T37的預設值就可能不是你期望的值。當然如果你確認vb4裏本來就是0,那麽(me) 直接給vb5賦值20也是沒問題的。
第二個(ge) 問題:你的塊傳(chuan) 送指令選的是按字傳(chuan) 送,所以傳(chuan) 送3次,要傳(chuan) 送的是3個(ge) 字。
要注意,一個(ge) 字飽含兩(liang) 個(ge) 字節的含義(yi) 。
第二個(ge) 問題,還是不懂,1字=2字節=16位,也就是1個(ge) VW等於(yu) =2VB=16B,VW0 VW1 VW2不是剛好對應VW100 VW101 VW102嗎?
解答:
vw0=vb0+vb1
vw1=vb1+vb2
vw2=vb2+vb3
3個(ge) word一共是4個(ge) byte,但是這裏麵有字節重合了。
而在這種word操作中,每次操作的是2個(ge) byte。總共應該是6個(ge) byte。
因此,應該是:
vw0、vw2、vw4。
小編總結:以上有關(guan) 西門子plc編程軟件中MOV_W、MOV_B、SHR_B的含義(yi) 與(yu) 用法,算是非常詳盡了,希望幫助大家掌握這幾個(ge) 指令的使用方法。