STL语言中累加器的瓶颈问题
详细内容
累加器的瓶颈作用最大的弊病是导致大量使用L和T指令,显著地增大了指令的条数。另一个问题是不能转换为梯形图的概率很大,别的plc一般是能相互转换的。
举两个例子,下面是S7-300/400的循环异或运算程序,用MW50保存异或值,LW28是循环次数计数器,LD24中是地址指针。一共16条指令,其中13条是将数据装载到累加器的L指令和将数据传送出累加器的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的循环异或运算子程序(可转换为梯形图),一共8条指令,使用了一条MOVB指令。
LD SM0.0
MOVB 0, #异或结果
BTI #字节数B, #字节数I
FOR #循环计数器, 1, #字节数I
LD SM0.0
XORB *#地址指针, #异或结果
INCD #地址指针
NEXT
300/400的STL具有梯形图没有的某些功能,这并非它的优点。1200的梯形图可以实现所有的功能。
早期的CPU芯片的主频只有数MHz,存储空间也非常小。由于现在硬件的飞速发展,指令的指令速度和存储空间完全不用考虑,STL在这些方面的优点也毫无价值。厂家对编程语言应该考虑的是用户易于使用,简单方便,编写的程序简短,编程的效率高。STL显然不符合这些要求,因此被淘汰是必然趋势。