请教西门子PLC-300的寄存器间接寻址问题

求西门子PLC300的高手帮忙解决间接寻址的问题 我现在要做这样一个程序,但是怎么调试都不对。 在我的数据块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中。 但问题是调试的时候始终不对,还请高手指点,小弟不胜感激。

第1个回答  2019-10-24
我晕倒了,你到底要怎样,一会工控网上发帖,一会这里发帖,害得我两头回帖,至于为什么两头回帖,是因为你曾经问过我,没想到你那么菜啊。
你的程序写错了,至于为什么写错,自己去你工控网的发帖中看看。
L
a
//
a代表一个程序计算得到的数据
T
MD0
//
将数a放到MD0中
L
MD0
SLD
3
//
左移三位
T
MD0
OPN
DB1
//
打开数据块1
L
DBW[MD0]
//
间接寻址
T
MW10
//
将数据块中对应地址的数据取出,放到MW10中。
多看看STL基础手册吧。
相似回答