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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 4158|回复: 2

[求助-西门子PLC300/400]寻址TAR1 #Ar1s

[复制链接]

升级  46%

该用户从未签到

发表于 2014-6-18 17:20:38 | 显示全部楼层 |阅读模式

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

×

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

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
TAR1 #Ar1s
TAR2 #Ar2s</P>// ----------Standard signal
L P##StandardSignalPointer
LAR2
LAR1 P##StaSigPoint
L D [AR2,P#0.0]
T LD [AR1,P#0.0]
L D [AR2,P#4.0]
T LD [AR1,P#4.0]
L W [AR2,P#8.0]
T LW [AR1,P#8.0]
// Load Standard signal
// Copio i dati Standard Signal
CALL "BLKMOV"
SRCBLK :=#StaSigPoint
RET_VAL:=#Error
DSTBLK :=#StandardSignal

// ----------Device signal
L P##DevicePointer
LAR2
LAR1 P##DevSigPoint
L D [AR2,P#0.0]
T LD [AR1,P#0.0]
L D [AR2,P#4.0]
T LD [AR1,P#4.0]
L W [AR2,P#8.0]
T LW [AR1,P#8.0]
// Copio i dati Device Signal
CALL "BLKMOV"
SRCBLK :=#DevSigPoint
RET_VAL:=#Error
DSTBLK :=#Signal
LAR1 #Ar1s
LAR2 #Ar2s
大家好,我刚换了一个新公司,这段程序实在看不明白,有师兄能帮忙解释下吗?最好能一条一条的说说,谢谢,师兄

        问题补充:
请问,我的理解是否正确
将P##StandardSignalPointer所指的地址拷贝到P##StaSigPoint,再从P##StaSigPoint拷贝到#StandardSignal。同样,P##DevicePointer-----P##DevSigPoint----#Signal
我这样理解对吗?这样做的目的只是为了使用StandardSignal来替代StandardSignalPointer,请问,我这样理解,对吗?
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
4160°C
2
  • 凯文
  • cexgshg
过: 他们

升级  33.5%

该用户从未签到

发表于 2014-6-18 17:51:31 | 显示全部楼层
1、程序解释:
TAR1  #Ar1s//将指针AR1保存到 #Ar1s中
      TAR2  #Ar2s//将指针AR2保存到 #Ar2s中
// ----------Standard signal注释,标准信号。
      L     P##StandardSignalPointer
      LAR2  //将#StandardSignalPointer存入指针AR2中
      LAR1  P##StaSigPoint //将#S#StaSigPoin存入指针AR1中
      L     D [AR2,P#0.0]
      T     LD [AR1,P#0.0]//取以AR2为地址的数据存入以取以AR1为地址的LD中。
      L     D [AR2,P#4.0]
      T     LD [AR1,P#4.0]//取以AR2加偏移量#4.0为地址的数据存入以取以AR1加偏移量#4.0为地址的LD中。
      L     W [AR2,P#8.0]
      T     LW [AR1,P#8.0]//取以AR2加偏移量#8.0为地址的数据存入以取以AR1加偏移量#8.0为地址的LD中。
// Load Standard signal
// Copio i dati Standard Signal
      CALL  &quot;BLKMOV&quot;//调用系统功能块SFC20复制存储区数据,详细说明见下述资料。
       SRCBLK :=#StaSigPoint
       RET_VAL:=#Error
       DSTBLK :=#StandardSignal
// ----------Device signal
      L     P##DevicePointer
      LAR2   //将##DevicePointer存入指针AR2中
      LAR1  P##DevSigPoint//将##DevSigPoint存入指针AR1中
      L     D [AR2,P#0.0]
      T     LD [AR1,P#0.0]//取以AR2为地址的数据存入以取以AR1为地址的LD中。
      L     D [AR2,P#4.0]
      T     LD [AR1,P#4.0]//取以AR2加偏移量#4.0为地址的数据存入以取以AR1加偏移量#4.0为地址的LD中。
      L     W [AR2,P#8.0]
      T     LW [AR1,P#8.0]//取以AR2加偏移量#8.0为地址的数据存入以取以AR1加偏移量#8.0为地址的LD中。
// Copio i dati Device Signal
      CALL  &quot;BLKMOV&quot;//调用系统功能块SFC20复制存储区数据,详细说明见下述资料。
       SRCBLK :=#DevSigPoint
       RET_VAL:=#Error
       DSTBLK :=#Signal
      LAR1  #Ar1s//将指针AR1恢复为 #Ar1s。
      LAR2  #Ar2s//将指针AR2恢复为 #Ar2s。
2、上述程序中调用系统功能块SFC20的详细资料见:
<S7-300400的系统软件和标准功能>下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023
3、建议看看下述资料,:
、见《关于S7-300和S7-400指针寻址的说明与例程 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
4、问题补充:是数据区传送。字数有限制,请另起问题。
                                                                                                                                                                                                                                                              
                                                        

升级  22%

该用户从未签到

发表于 2014-6-18 18:48:00 | 显示全部楼层
你的理解是正确的,这应该是FC中的程序吧,在FC中块参数是复杂数据类型时,不能直接传送,而需要你这样的程序来中转传递。
这是间接寻址,直接讲你可能理解不了,建议学习文档资料。
参见:S7-300和S7-400寻址
http://www.ad.siemens.com.cn/download/OnlineReading.aspx?DocId=1597
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

关闭

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

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

GMT+8, 2025-5-11 07:35 , Processed in 0.195087 second(s), 21 queries , Gzip On, APCu On.

Powered by Dreamyiyi

© 2009-2025 工控论坛

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