SMB2例子程序求解释

MAIN:OB1
LD          SM0.1
MOVB      0,  VB10
MOVB      9,  SMB30
MOVD      &VB10,  VD80
ATCH      INT_0:INT0,  8
ENI


INT_0:INT0
Network  1

LD          SM0.0
INCB      MB10
MOVB      SMB2,  *VD80
INCD      VD80

Network  2
LDB=      MB10,  4
MOVB      0,  MB10
-D          +4,  VD80

这是我在论坛里的置顶贴里看到的程序,是用SMB2接收主站发来的4个字节数据。其中有2句话的作用不是很理解:
 在中断程序中,网络1的 INCD      VD80
和网络2的  -D          +4,  VD80
麻烦哪位前辈给解释一下,我是新手,谢谢了

最佳答案

VD80是地址指针,指向VB10
第一次接收中断,执行MOVB      SMB2,  *VD80,则将接收到的数据送到VB10,执行INCD VD80后地址指针加1,第二次接收中断,执行MOVB      SMB2,  *VD80,则将接收到的数据送到VB11
当接收数据4个时,执行-D          +4,  VD80,地址指针减4,也就重新指向VB10,为下一次接收准备

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc313513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐