登录
首页 电工技术 电工技术
回帖 发帖
正文

主题:请教西门子PLC-300间接寻址进行查表的问题

点击:1961 回复:4

我现在要做这样一个程序,但是怎么调试都不对。
在我的数据块DB1中依次存放着若干数:DBW0:10  DBW2:12   DBW4:7  DBW6:17 ........
根据一个数a(存放在MD0中),a代表数据块的地址,  现在我需要根据a,也就是MD0中的这个数,取出对应数据块中的数据并存放在MW10中。
举个例子,假设我通过上面的程序计算a=4,那么应该把 7 这个数存放到 MW10 中。
我自己编的程序是这样:
L    a     // a代表一个程序计算得到的数据
T    MD0   // 将数a放到MD0中
SLD  3     // 左移三位
OPN  DB1   // 打开数据块1
L    DBW[MD0]    // 间接寻址
T    MW10        // 将数据块中对应地址的数据取出,放到MW10中。
但问题是调试的时候始终不对,还请高手指点,小弟不胜感激。
09-06-04 08:22

引用 yinhaijiao 在 2009-6-4 8:22:28 发言【内容省略】

你大概就是在百度提问的那个小子。
虽然经过提点却一点都没有长进,太菜了。表情
你的程序写错啦~~
L    a     // a代表一个程序计算得到的数据
T    MD0   // 将数a放到MD0中
【大哥,这里要重新将MD0的数据读入ACCU1,否则只是对你的常数做移位操作】
【所以要加上 L MD0】
SLD  3     // 左移三位
【对MD0做移位后要保存到MD0中去,否则ACCU中的移位数据与保存区有什么关系?不好好看STL手册就开始玩间接寻址,寻到哪里去都不晓得了。】
【所以这里要加上 T MD0】
OPN  DB1   // 打开数据块1
L    DBW[MD0]    // 间接寻址
T    MW10        // 将数据块中对应地址的数据取出,放到MW10中。
Best Regards表情
09-06-04 09:02
我还就是那个小子,昨天给在百度上离线留言了,是因为按照您说的方法没有调试出来,刚才我又试了一下,成功,谢谢你,你真是个热心人
如果您不介意的话能留下您的QQ吗,有问题我想直接与您交流,省的咱在网上绕来绕去的,从百度绕到工控,又从工控绕到百度的。
谢谢!
09-06-04 10:30
对了,本人QQ:121920473
09-06-04 10:32

引用 yinhaijiao 在 2009-6-4 10:32:05 发言【内容省略】

不使用QQ,没意思~~
最好还是在百度,因为这样我可以混点积分~~当然也可以在这里,不过版主的加分太少,如果长篇大段我也懒的去搭理。
呵呵~
09-06-04 10:42

工控新闻

更多新闻资讯