当前位置: 主页 > PLC控制

这段程序怎么理解?

那位帮忙看一下,这段程序意思是不是:假如DB20.DBW2=1,则把DB302.DBD32的值赋给MD500,前面两段相当于DB20.DBW2乘以32等于MD1004?
可是实际的测试结果是把DB302.DBD4的值赋给MD500,我是哪一步理解错了?

图片说明:

ed71024efbc5cDA734ad437f699f1b81这段程序怎么理解?

最佳答案

L"RUN.sp1"DB20.DBW2//这个时候为1
L4
*I
TMD1000//此时MD1000为4

LMD1000//
SLD3//执行左移动3个位,相当于乘以8了,此时为32;运用指针时要注意不要漏了。
TMD1004//值为32

OPN"V2"DB302
LDBD[MD1004]这里用到了指针,所以之间有两个左移的指令,MD1004为32,根据指针的定义,0位~第2位作为寻址操作的位地址,第3位~第18位作为寻址操作的字节地址;所以字节的地址为4所以就是DB302.DBD4
TMD500
假如DB20.DBW2=1,则把DB302.DBD32的值赋给MD500:那就就要这么改了
L"run.sp1"DB20.DBW2
L32
*I
TMD1000

提问者对于答案的评价:
非常感谢,问题的关键在于我对于指针的应用不理解,得好好学学~

  • 关注微信

猜你喜欢

微信公众号