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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 2306|回复: 2

[求助-西门子PLC300/400]大师傅来了

[复制链接]

升级  20%

该用户从未签到

发表于 2014-2-8 17:10:29 | 显示全部楼层 |阅读模式

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

×

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

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
大师傅寂寞,所以来问几个AR问题
1.在一个FC内,能不能多次在不同的地方使用AR1/AR2,比如说多个不同的DB同时使用。有没有什么讲究?(仿真了下,好像可以的样子)</P>2看到说在FC的头和尾加
TAR1 #AR1_SAVE //DW
TAR2 #AR2_SAVE //DW
L DBNO
T #DB_SAVE //INT
L DINO
T #DI_SAVE //INT

LAR1 #AR1_SAVE
LAR2 #AR2_SAVE
OPN DB [#DB_SAVE]
OPN DI [#DI_SAVE]
这个通俗说是不是如在一个地方用了然后又要在别的地方用,加以上来释放AR1/AR2,以及OPN?如果是这样的话我在同一个FC内在要用AR1/AR2的程序段前后都加上这个,应该和在不同的FC内加上是一个道理?
3,DBNO和DINO是不要在变量表定义的吧,直接写?

大师傅有些不清楚,所以来问问大家

        问题补充:
2、是否保存与释放AR1/AR2要根据实际应用而定。楼主所述倒是编程中值得一个要要注意的地方。
阿哥,这个回答我怎么觉得和(1)问有冲突呢?既然可以多次使用又如何要释放?是不是在一个FC内在要用AR1/AR2的程序段前后都加上这个更可靠?或这样做行吗?
3、DBNO和DINO要在变量表定义的,不能直接写
也是在TEMP内定义成INT吗,我看到的都是这个没定义
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
2308°C
2
  • qoevdav
  • gaibar_dd
过: 他们

升级  33%

该用户从未签到

发表于 2014-2-8 17:45:20 | 显示全部楼层
1、在一个FC内,可以多次在不同的地方使用AR1/AR2。你可以把你理解为就是中间变量。
2、这样写的好处是可以把在进入FC时的AR1/AR2先保存起来,在FC块结束时再把AR1/AR2保存的内容重新装载进来。这样在FC中使用AR1/AR2的数据就不会覆盖掉AR1/AR2原来进入时的数据了。但这不是必须的,要根据你的程序来判断是否需要这样的做法。
3、这两个不必定义,当你的块中同时打开了两个DB块时就可以用L  DBNO 和 L  DINO 来取出DB号了。
                                                                                                                                                                                                                                                              
                                                        

升级  19%

该用户从未签到

发表于 2014-2-8 18:26:44 | 显示全部楼层
1、能不能多次在不同的地方使用AR1/AR2?
当然可以。AR1/AR2就是地址寄存器,应用它们可以实现寄存器间接寻址。AR1/AR2中的内容可以通过不断地变化来实现寻址的功能,例如在循环语句中应用AR1/AR2,实质上就是多次应用。
2、是否保存与释放AR1/AR2要根据实际应用而定。楼主所述倒是编程中值得一个要要注意的地方。
3、DBNO和DINO要在变量表定义的,不能直接写。
                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                            AR1/AR2就是地址寄存器,应用它们可以实现寄存器间接寻址。AR1/AR2中的内容可以通过不断地变化来实现寻址的功能,例如在循环语句中应用AR1/AR2,实质上就是多次应用。
是否保存与释放AR1/AR2要根据实际应用而定。楼主所述倒是编程中值得一个要要注意的地方。
DBNO和DINO要在变量表定义的,不能直接写。
                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                            第1条,在一个FC内,是可以多次在不同的地方使用AR1/AR2,如果是在FB里,可以任意使用AR1,但是使用AR2是很危险,特别是给AR2赋值,因为AR2是作为FB背景数据块的背景首地址指针,如果改变AR2,FB访问接口变量和STAT变量就会不能正确寻址,因此,尽量不要在FB中使用AR2。
第2条,是否保存与释放AR1/AR2要根据实际应用而定。如果你不是很清楚是否需要保存,那你就最好是这个工作,这可以避免不必要的麻烦.
第3条, L  DBNO 和 L  DINO 这是两条独立指令,DBNO和DINO请不要把前面的L给拆开,他并不是变量,L  DBNO 是获取当前共享数据块编号,L  DINO是获取背景数据块的编号
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

关闭

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

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

GMT+8, 2025-5-6 06:51 , Processed in 0.278368 second(s), 20 queries , Gzip On, APCu On.

Powered by Dreamyiyi

© 2009-2025 工控论坛

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