回复:间接寻址

火麒麟

西门子1847工业学习平台

  • 帖子

    571
  • 精华

    18
  • 被关注

    20

论坛等级:侠圣

注册时间:2006-09-21

普通 普通 如何晋级?

发布于 2010-08-11 08:53:17

20楼

quote:以下是引用Johnson.Guo在2010-08-10 20:26:06的发言:
您所说的两个数据块就是指:当前功能块的背景数据块与我打开的另一个数据块吧?!
我目前就是没利用背景数据块的,就直接将一固定数据块里的数据传送到另一数据块(变址),而且中间需要增加字符串处理指令的(截取其中几个)。

不是的,DI寄存器虽然主要应用于FB引用背景数据块,但也常用于程序中同时打开两个数据块。

所以,如果程序需要同时打开2个数据块,最后在FC中编程。如果在FB中编程,只能用DB块的完整引用方式了。

比如要把一个DB_NO1中的数据传到DB_NO2中,可以这样
在FC中定义2个输入变量DB_NO1和DB_NO2,两个临时变量DB_TEMP1和DB_TEMP2

那么可以这样
L DB_NO1
T DB_TEMP1
OPN DB[DB_TEMP1]
L P#DBX0.0
LAR1
L DB_NO2
T DB_TEMP2
OPN DI[DB_TEMP2]
L P#DIX0.0
LAR2

然后就可以在程序中对AR1,AR2的加操作来转移数据了。
这是我的理解,你可以试下。

业精于勤,行成于思
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54756条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。