您现在所在的是:

PLC论坛

回帖:4个,阅读:878 [上一页] [1] [下一页]
866
沙鲁
文章数:3
年度积分:50
历史总积分:866
注册时间:2008/11/30
发站内信
发表于:2008/11/30 10:48:00
#0楼
比如在超级终端发送abcd1234,vb100中显示10个字符,然后abcd1234分别在vb101到vb108中,后2位分别是od和oa了,这个一切正常。

当紧接着在接受中断中,把vb100再发出去的时候,发现每次都少前面一位:bcd1234也就是没有了a,但是在状态表中监控,vb101确实保存着a,每次只要把vb101给个空值就正常了,也就是“空格abcd1234",然后再发送就正常了。这是为什么那?

把代码贴出来,(最基础的,大家不要笑)

主程序:

LD     SM0.1

CALL   子程序:SBR0

子程序:

LD     SM0.0

MOVB   16#09, SMB30

MOVB   16#B0, SMB87

MOVB   16#0A, SMB89

MOVW   5, SMW90

MOVB   50, SMB94

RCV    VB100, 0

ATCH   接收中断:INT0, 23

ENI

接收中断:

LDB=   SMB86, 16#20

S      Q1.0, 1

XMT    VB100, 0

ATCH   发送中断:INT1, 9

CRETI

发送中断:

LD     SM0.0

S      Q0.0, 1

大家费心了!
3249
ye_w 版主
文章数:849
年度积分:50
历史总积分:3249
注册时间:2003/12/13
发站内信
发表于:2008/11/30 15:16:00
#1楼
建议在发送中断中禁止接收。然后在发送缓冲区的数据
-------------------------------------------------------------------------------------------------------------
***想交流ABB品牌AC31 90系列和AC 500系列 PLC,请加群1*9*8*4*1*2*7*2*9***
-------------------------------------------------------------------------------------------------------------
5436
dzfa 版主
文章数:2048
年度积分:50
历史总积分:5436
注册时间:2003/1/7
发站内信
发表于:2008/11/30 16:13:00
#2楼
编段程序直接发送abcd1234,看接收是否正常。
烟台东泽----西门子山东地区之代理商,系统集成商
里的打杂的
5436
dzfa 版主
文章数:2048
年度积分:50
历史总积分:5436
注册时间:2003/1/7
发站内信
发表于:2008/11/30 16:25:00
#3楼
程序没有问题,可能是超级终端接收问题,换一个串口调试软件看看。
烟台东泽----西门子山东地区之代理商,系统集成商
里的打杂的
866
沙鲁
文章数:3
年度积分:50
历史总积分:866
注册时间:2008/11/30
发站内信
发表于:2008/12/1 11:12:00
#4楼
回复2楼(ye_w):有个问题,发送中断是在发送完毕的情况下,才触发的过程,按道理来说是字符串已经发到超级终端去了,能够避免发送过程中丢失第一位字符的可能吗?

回复3、4楼(dzfa):单独的发送正常,能够发送abcd1234等数据,没有丢失现象,接收也没有问题,在状态表中,vb101确实保存着字母"a",奇怪吧。机器没有问题,试过2台了,都是一样的,串口软件也换过2个,现象依旧。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

46.8003