追梦工控论坛|工控论坛-专业的Intouch论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 3237|回复: 2

[求助-西门子PLC300/400] SAVE 的应用

[复制链接]

升级  20.5%

该用户从未签到

发表于 2014-8-4 17:17:52 | 显示全部楼层 |阅读模式

上传分享工控资料得追梦点,下载积分获取办法点击进入 ☆追梦点充值入口
发帖回帖赚金币兑换下载积分。上传附件须知点击进入

×

马上注册,结交更多工控达人,分享经验,让你轻松玩转追梦工控论坛。

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
已解决问题: SAVE 的应用
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
3239°C
2
  • cexgshg
  • vgocaxg
过: 他们

升级  22%

该用户从未签到

发表于 2014-8-4 17:52:32 | 显示全部楼层
转帖:一个典型的问题:
A(   
      L     "MT510".Powder1
      BTI   
      T     #temp1
      SET   
      SAVE                                    
      CLR   
      A     BR                          
      )     
      JNB   _005
      L     9
      T     #temp10
_005: NOP   0
上面的那段代码是由梯形图转换而来的,首先将"MT510".Powder1
做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。
现有如下问题向各位请教:
1、BTI指令执行完成后BR位自动置位吗?还是需要SAVE?
2、上段中的SET、SAVE及CLR用途何在?
3、在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
回答:
首先弄清BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
1. 因为上面的那段代码是由梯形图转换而来的。出现了“SET、SAVE及CLR”。就此而论,在做BCD-I转换并存于temp1后,SET与SAVE两指令。SET即将状态字RLO置位;SAVE将RLO保存到状态字的BR位。此时表示功能被正确执行,即BR位为1.
2. CLR    /  将状态字RLO复位,以免影响下面的指令。
    A     BR  /  此时BR位为1,RLO=0
    )     
    JNB   _005 / 若BR=1且RLO=0,则跳转到005。
L     9   /   此时BR=1且RLO=1
    T     #temp10
  _005: NOP   0
3. 在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
一般不要顾及用SAVE指令保存RLO。在下面的情况可用:
在一个逻辑块中需检另一查逻辑块的BR位。
例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
                                                                                                                                                                                                                                                              
                                                        

升级  35%

该用户从未签到

发表于 2014-8-4 18:04:56 | 显示全部楼层
光就这条指令的含义是SAVE:将RLO状态保存到BR中,当BR为1,表示指令正确执行,为0表示指令执行错误。
为什么需要这样写,其中一个目的是程序中需要将函数(函数块)运行结果作为条件,触发后面一些变量的状态。
                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                            save是保存rlo到br,保证eno有输出。
一般用法都是:
set//置位rlo
save//保存rlo到br
beu//无条件结束程序
如果你能保证rlo结果为1,可以不用set直接用后面的两个语句。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

请珍惜自己的ID,严禁发布垃圾水贴,诸如adsf......顶......纯表情......多次重复回帖刷积分......轻则删帖警告,重则封禁!★请分享资料、经验或者赞助论坛,贡献一份力量★

关闭

最新活动上一条 /1 下一条

小黑屋|手机版|追梦工控论坛|工控论坛-专业的Intouch论坛 ( 皖ICP备10012005号 )|网站地图

GMT+8, 2025-5-9 07:45 , Processed in 0.113554 second(s), 21 queries , Gzip On, APCu On.

Powered by Dreamyiyi

© 2009-2025 工控论坛

快速回复 返回顶部 返回列表