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