|
累加器ACCU是是常用語句表關鍵指令,應用非常廣泛,通常都是用裝載指令L把數據裝載進累加器,在累加器中進行運算或處理之后,再用傳送指令T把結果送至目的地址。特別備注:1、累加器ACCU用于語句表STL編程,梯形圖LAD編程不使用ACCU;2、S7-300有兩個累加器,即ACCU1和ACCU2。S7-400有四個累加器,即ACCU1~ACCU4。 裝載指令L:把ACCU1的數據裝載到ACCU2,然后清零ACCU1,再把目標地址數據裝載到ACCU1。例如“L MW1”。 傳送指令T:把ACCU1的數據傳送至目標地址,此時ACCU1的數據保持不變。例如“T MW6”。 綜上,在程序中,各地址數據之間的數據交換只能通過累加器進行,即累加器作用相當于數據中轉站。 在STEP7輸入下圖中的語句表指令STL,打開仿真器并下載運行,點擊程序監(jiān)視(眼鏡按鈕),在仿真器中打開變量監(jiān)控器觀察MW1、MW3、MW5,為便于觀察,所有數據類型設定為十進制Decimal:(見圖1) ![]() 圖1 新建STL程序并下載至仿真器運行 在仿真器中輸入MW1數據為10,(見圖2): ![]() 圖2 觀察程序運行后各累加器數據變化情況(見圖3) ![]() 圖3 繼續(xù),然后在仿真器中把MW3數據改為20(見圖4) ![]() 圖4 繼續(xù)觀察各累加器數據變化情況(見圖5) ![]() 圖5 仿真器(圖6) ![]() 圖6 總結一下: 1、第一行程序“L MW2”運行后,MW2的數據“10”裝載至ACCU1; 2、第二行程序“L MW3”運行后,ACCU1中的數據“10”中轉至ACCU2,然后MW3的數據“20”裝載至ACCU1; 3、第三行程序“+I”運行后,ACCU1和ACCU2中的數據相加,計算結果數據“30”放在ACCU1,同時ACCU2清零; 4、第四行程序“T MW6”運行后,ACCU1中的數據“30”傳送至MW6,此時ACCU1數據不變。 |
|
|