累加器的瓶頸作用最大的弊病是導致大量使用l和t指令,顯著地增大了指令的條數(shù)。另一個問題是不能轉(zhuǎn)換為梯形圖的概率很大,別的plc一般是能相互轉(zhuǎn)換的。
舉兩個例子,下面是s7-300/400的循環(huán)異或運算程序,用mw50保存異或值,lw28是循環(huán)次數(shù)計數(shù)器,ld24中是地址指針。一共16條指令,其中13條是將數(shù)據(jù)裝載到累加器的l指令和將數(shù)據(jù)傳送出累加器的t指令。
l 0
t mw 50
l p#60.0
t ld 24
l 5
back: t lw 28
l mw [ld 24]
l mw 50
xow
t mw 50
l ld 24
l l#16
+d
t ld 24
l lw 28
loop back
下面是s7-200的循環(huán)異或運算子程序(可轉(zhuǎn)換為梯形圖),一共8條指令,使用了一條movb指令。
ld sm0.0
movb 0, #異或結(jié)果
bti #字節(jié)數(shù)b, #字節(jié)數(shù)i
for #循環(huán)計數(shù)器, 1, #字節(jié)數(shù)i
ld sm0.0
xorb *#地址指針, #異或結(jié)果
incd #地址指針
next
300/400的stl具有梯形圖沒有的某些功能,這并非它的優(yōu)點。1200的梯形圖可以實現(xiàn)所有的功能。
早期的cpu芯片的主頻只有數(shù)mhz,存儲空間也非常小。由于現(xiàn)在硬件的飛速發(fā)展,指令的指令速度和存儲空間完全不用考慮,stl在這些方面的優(yōu)點也毫無價值。廠家對編程語言應(yīng)該考慮的是用戶易于使用,簡單方便,編寫的程序簡短,編程的效率高。stl顯然不符合這些要求,因此被淘汰是必然趨勢。