OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5594|回复: 6

求助大神MODBUS TCP 407作为服务器,应答的时候多了个ACK包

[复制链接]

1

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2016-1-5
在线时间
50 小时
发表于 2016-10-20 09:17:33 | 显示全部楼层 |阅读模式
10金钱
用的原子的例程,TCP接收及发送程序段如下
while(1)
        {
                taskcun=0;
    while ((err=netconn_recv(conn, &recvbuf))==ERR_OK)    //½óêÕμ½êy¾Y
                        {                     
        if(1) //¿éòÔ·¢Ëíêy¾Y
                           {                               
            send_data_len=modbus_tcp(recvbuf,tcp_server_sendbuf); //μ÷óÃmodbus_tcp()oˉêy£¬Ëã3öòa»Øμı¨ÎÄòÔ¼°                                                                 
                                                err=netconn_write(conn,tcp_server_sendbuf,send_data_len+9,NETCONN_COPY); //·¢Ëítcp_server_sendbufÖDμÄêy¾Y       
                                                netbuf_delete(recvbuf);  //êí·Årecvbuf
                                         if(err != ERR_OK)         //·¢Ëítcp_server_sendbufê§°ü
                                                {                        //Ö′DDÏàó|μĶˉ×÷
                                                }                                                                                                                                                               
                                 }               
//        OSTimeDlyHMSM(0,0,0,(50-(prio-8)*5));  //Ñóê±50ms                                 
      }          
                        netconn_close(conn);               //1رոÃTCPᬽó
                        netconn_delete(conn);       //é¾3y¸ÃTCPᬽó
                        printf("Del task prio=[%d],err=[%d]\r\n", prio, err); //′òó¡òaé¾3yμÄÏß3ìμÄóÅÏè¼¶oí′íÎó′úÂë
                        for(t=0; t< MAX_CONN_TASK;t++)
                        {
                                if(task[t].prio!=OS_ERR_PRIO_INVALID) taskcun++;         
                        }
                        if(taskcun==1&&err==ERR_TIMEOUT) //&#203;ùóDμ&#196;&#207;&#223;3ì&#182;&#188;ò&#209;&#190;-±&#187;êí·&#197;
                        {
                          TCP_RUN=0XFF;
                                printf("TCP_RUN=%d\r\n",TCP_RUN);
                        }
                        conn_task_del(prio);                                  //ê&#213;&#187;&#216;&#184;&#195;&#207;&#223;3ì
  }

MODBUS TCP 问询和应答包之间多了一个

MODBUS TCP 问询和应答包之间多了一个
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-10-20 21:39:16 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-10-20 21:39:16 | 显示全部楼层
仿真跟踪下
回复

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2016-1-24
在线时间
11 小时
发表于 2016-10-21 13:04:31 | 显示全部楼层
楼主用的什么抓包软件啊?
回复

使用道具 举报

1

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2016-1-5
在线时间
50 小时
 楼主| 发表于 2016-10-22 09:35:09 | 显示全部楼层

我试试
回复

使用道具 举报

1

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2016-1-5
在线时间
50 小时
 楼主| 发表于 2016-10-22 09:35:35 | 显示全部楼层
talent568 发表于 2016-10-21 13:04
楼主用的什么抓包软件啊?

wireshark
回复

使用道具 举报

15

主题

32

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-1-19
在线时间
23 小时
发表于 2017-7-6 11:24:48 | 显示全部楼层
楼主,请问你解决了吗?可以分享一份modbustcp的项目工程吗?我最近也在弄这个,我出钱也可以的~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 15:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表