帮忙分析下数据接受处理程序

以下为一段自由口通讯的数据接受处理程序,有些不明白的地方希望大家指点。下面为
 RCV  VB100以后,在进行奇偶检验前的数据处理,最后调用FCS为校验程序,&VB102应该是校验数据开始的地址, VB99应该是需要校验的字节数,VB90应该是输出的校验结果
 LDB<>  SMB86, 16#20
 JMP    1
 NOT
 MOVB   VB102, VB99
 R      V96.0, 24
 MOVD   &VB103, VD92
 +D     VD96, VD99
 MOVB   *VD92, VB91
 INCB   VB99
 CALL   FCS:SBR1, &VB102, VB99, VB90
 LDB=   VB90, VB91
 R      Q1.0, 1
 我不明白的是这个程序的数据缓冲区不是该从VB100开始吗?"+D     VD96, VD99"是什么意思,这样岂不是从VB99到VB102都当做一个数了??还有就是为什么后来VB99还自加1作为字节数呢??按照缓冲区分配,VB100不就该是计数吗???同样的问题也出现在VD92的间址寻址上难道说VB103的内容是校验结果,因为后面VB91和VB90比较显然是比对校验码,没有看见发送程序,所以我是不是可以分析说VB103储存的是上位机发送校验结果呢??还有我怀疑VB102发的是字节数。VB101是数据起始位,初始化有设置SMB88为0
 不知道我问的清楚不,谢谢大家

最佳答案

你的这个程序是廖常初书上的,如果没看到这个书,谁也不能为你解答,因为你给别人提供的信息太少!书上有个表,我怀疑你没看到,所以才有这么多的问题。

 1 我不明白的是这个程序的数据缓冲区不是该从VB100开始吗?
 是的,VB100是接收到的字节数,VB100=VB102+3,3为1个起始字符,1个结束字符,1个数据字符数(VB102)
 你没看到表吗????!!!!!!
 VB100  接收到的字节数
 VB101  起始字符
 VB102  数据字节数
 VB103  数据区

        校验码
        结束字符

 2 "+D     VD96, VD99"是什么意思,这样岂不是从VB99到VB102都当做一个数了??
 这句要结合上下文来看,VD92开始装入的地址是VB103,VD96=VB102 数据字节数,
 VD96+VD99后,VD92里面的地址就是校验码的地址了

 其他的你自己慢慢想吧。
 

提问者对于答案的评价:
我是在一片小论文上看的~~~没有表~~~我现在找到它的上位机程序了~~~看见它发的数据顺序了~~~~不过还是很感谢您~~~~~~

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:33
下一篇 2021年7月5日 上午1:33

相关推荐

发表回复

登录后才能评论