STL300

如图,SET  和 SAVE 主要是这两个求大侠讲解清楚,还有就是STL中的累加器到底是什么?

最佳答案

1、转帖:
A(    
      L     "MT510".Powder1
      BTI   
      T     #temp1
      SET   
      SAVE                                    
      CLR   
      A     BR                          
      )     
      JNB   _005
      L     9
      T     #temp10
_005: NOP   0
上面的那段代码是由梯形图转换而来的,现有如下问题向各位请教:
上段中的SET、SAVE及CLR用途何在?
回答:
首先弄清BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
a、. 因为上面的那段代码是由梯形图转换而来的。出现了“SET、SAVE及CLR”。就此而论,在做BCD-I转换并存于temp1后,SET与SAVE两指令。SET即将状态字RLO置位;SAVE将RLO保存到状态字的BR位。此时表示功能被正确执行,即BR位为1.
c、. 在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理? 
 一般不要顾及用SAVE指令保存RLO。在下面的情况可用:
 在一个逻辑块中需检另一查逻辑块的BR位。
例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
2、累加器到底是什么?转帖一个典型的问题:
问:西门子PLC累加器的具体含义和作用是什么? 织梦好,好织梦
答:在西门子S7-300/400PLC的存储区中,除了3个基本存储区(系统存储区、装载存储区和工作存储区)外,在PLC中还有外设I/O存储区、累加器等。所以累加器(32位)为PLC的存储区之一。
累加器(32位)用于处理字节、字或双字的寄存器。S7-300有两个累加器(ACCU1和ACCU2),S7-400有四个累加器(ACCU1–ACCU4)。可以把操作数送入累加器,并在累加器中进行运算和处理,保存在ACCU1中的运算可以传送到存储区。处理8位或16位数据时,数据放在累加器的低端(右对齐)。举例如下:
OPNDB1//打开数据块DB1,作为共享数据块
LDBW2//将DB1中的数据字DBW2(16位)装入累加器1(ACCU1)
TW0//将累加器1低字中的内容传送到存储字MW0
TDBW4//将累加器1中低字中的内容传送到DB1的数据字DBW4(16位)
又如:
LMB10//将位存储区字节MB1O装载到累加器1中;
LMB11//将MB11装载到累加器1中,MB10自动进入累加器2中;
TDBB100//将累加器1值的值(MB11)传送到DBB100

提问者对于答案的评价:
谢谢啊鸣老师!一个人自学感觉挺艰难的

专家置评

各位网友回答得都不错,STL手册:
SIMATIC 用于S7-300 和S7-400 编程的语句表 (STL) 参考手册 
http://support.automation.siemens.com/CN/view/zh/45523446

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午3:38
下一篇 2018年12月1日

相关推荐