發布日期:2022-04-26 點擊率:33 品牌:西門子_Siemens
1.西門子PLCS7300中DB和DI數據塊寄存器,使用DB寄存器打開數據塊后,使用DBX、DBB、DBW、DBD等來訪問數據塊里的變量
比如
OPN DB1
LDBW0//此時訪問的就是DB1.DBW 0
使用DI寄存器打開數據塊后,使用DIX、DIW、DID等來訪問數據塊里的變量
1.DIW0//此時訪問的也是DB1.DBW 0
因為調用FB時,系統自動使用DI寄存器來打開背景數據塊,所以通常DI寄存器又被稱為背景數據寄存器,如果在FB里不使用OPN DI打開數據塊,直接使用DIW訪問的就是背景數控塊里的一個字變量,所以在FB里最好不要使用DI寄存器打開其他的數據,否則造成參數訪問混亂。
總之,看到DIW并不一定是訪問的背景數據塊,要看是否在FB里使用,是否使用了OPNDI打開了其他數據塊,不在FB里DB寄存器和DI寄存器使用沒有區別。
2.PLC編程中功能塊FB與功能FC的區別
說的簡單點,FB是有背景數據塊的,而FC沒有。如果你有幾套一樣的或者相似的參數要處理的話,用FB會方便一點。
例如,計算機A同學和B同學的成績都有數學,語文,英語組成,那么在計算每個同學的數據時都是三個科目成績相加,算法是一樣的,那么我們就可以做一個功能塊,把這個算法寫進去,在塊里面定義變量數學,語文,英語,然后把算法寫好,再去為A,B同學分別創建一個數據塊,也就是FB的背景數據塊,你會發現,你打開背景數據塊后,里面的變量和FB里面的變量名稱,個數是一樣的,那么把數據塊1,2分配給A,B的話,就可以把AB同學的成績分別寫到數據塊里,然后由FB調用的數據塊就可以計算A,B的成績了,這樣每組數據都有自己的數據塊,不容易造成數據混亂。如果用功能FC來做的話,也可以,但是你要自己去每個模塊里面定義變量,比較麻煩,或者也可以直接把所有同學的成績的數據全寫到一個塊里面,但這樣容易數據混亂。
還有就是FB里面是有靜態變量的,而FC沒有,FC有reture,FB沒有至于這兩的用法。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航