STL编写的比较程序中赋值指令=的位置如何确定?

有一段程序如下:
CLR   
 =     #parameter_fault
 L     #Process_Nr
 L     1
 < I  
 L     #Process_Nr
 L     100
 =     L     30.0
 >I    
 O     L     30.0

这段程序我理解的大体意思是#Process_Nr分别与1和100作比较,将两个比较的结果
再做或运算。
但是在这段程序中不理解的是:赋值指令=在程序中的位置。
我理解应该是这样的:
CLR   
 =     #parameter_fault
 L     #Process_Nr
 L     1
 < I  
 =     L     30.0
 L     #Process_Nr
 L     100
 >I    
 O     L     30.0
不知我理解的是否正确?
希望哪位大侠能给指点一下,原程序为什么那样写?或者那样写有什么优点?
最好能够说明一下,STL编程时,赋值指令=放在那些位置才合适。
说明一下,原程序在实际应用中没有发现问题。

最佳答案

CLR                                    //RLO清零
 =     #parameter_fault   //将RLO写入寻址位,即RLO写入#parameter_fault 
 L     #Process_Nr         //#Process_Nr装载到累加器1
 L     1                          //1装载到累加器1,#Process_Nr复制到累加器2
 < I                             //比较累加器2与累加器1数值大小,如果累加器 2数值小于累加器1,即 #Process_Nr小于1,
                                    则逻辑运算为真,RLO=1
 L     #Process_Nr      //  #Process_Nr 装载到累加器1

 L     100                      //  100 装载到累加器1  #Process_Nr 复制到累加器2


 =     L     30.0              //将RLO写入寻址位,即RLO写入L30.0 
 >I                                //如果#Process_Nr 大于100,则RLO=1
 O     L     30.0             //或逻辑运算
这段程序可以看出如果#Process_Nr小于1,则L30.0=1,如果#Process_Nr大于或等于于1,L30.0=0 。
其实是一样的=位置放在你说的地方。因为后面L装载指令对RLO状态不产生影响。你的程序应该不完整,或逻辑运算后没有指令了。

提问者对于答案的评价:
谢谢你的回答!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc131573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月31日
下一篇 2017年5月31日

相关推荐