ashore07
级别: 略有小成
精华主题: 0
发帖数量: 112 个
工控威望: 294 点
下载积分: 845 分
在线时间: 21(小时)
注册时间: 2008-06-16
最后登录: 2023-03-28
查看ashore07的 主题 / 回贴
楼主  发表于: 2011-12-07 22:12
在变量表里面 看到 DB16.DBD667 =3
(DB16.DBX670.0=1 DB16.DBX670.1=1)
使用 如下几种 指令 后MD40=0, MD40得不到3
(1)OPN DB16
      L   P#83.3  
     T   MD40
(2)  OPN  DB16
       L         667
       SLD    3
       T    MD40
(3)  我想从DB16 中  DB16.DBD670 整个值 给DB16.DBD270
   OPN    DB16
L              DB16.DBD667
T             MD20  // MD20 用作指针
LAR1      MD20    //=3
L              DBD[AR1,P#0.0]  //我的理解 这就是 DB16。DBD667的值
T              MD40                        // 但是 这里面的值还是0


还望 大伙 不吝赐教。
其实 我 最终的目的是 从 DB块的 一段存储区读出数据给另一段存储区。
比如 : 从 DB16。DBD100  读出20(X)个双字 给 DB16。DBD300开始的存储区。

      
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158799 分
在线时间: 3161(小时)
注册时间: 2007-11-21
最后登录: 2024-11-22
查看sjm213的 主题 / 回贴
1楼  发表于: 2011-12-07 23:13
引用
从 DB块的 一段存储区读出数据给另一段存储区

告诉你个简便的法:
使用SFC20,直接将数据复制过去。

如果要联系STL,搜索“西门子间接寻址”一文读上个10遍再说。
ashore07
级别: 略有小成
精华主题: 0
发帖数量: 112 个
工控威望: 294 点
下载积分: 845 分
在线时间: 21(小时)
注册时间: 2008-06-16
最后登录: 2023-03-28
查看ashore07的 主题 / 回贴
2楼  发表于: 2011-12-08 19:46
引用
引用第1楼sjm213于2011-12-07 23:13发表的  :

告诉你个简便的法:
使用SFC20,直接将数据复制过去。

如果要联系STL,搜索“西门子间接寻址”一文读上个10遍再说。



使用SFC21的次数会 很多的
使用指针 灵活一些