modbus通讯问题,急求解! 点击:2153 | 回复:14



cifu2011

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2011-09-27 16:19:58
楼主

大家好,我现在调试modbus程序。接线是用的RS485,连了2台从机,在485的通讯线上跑modbus协议。只用了03,06两个功能。轮流给从机发写指令06,发现会丢指令,关掉一台,还是会丢。到底是程序哪里有问题呢?想不明白,请高手指教。cpu是dsp2808。

附c程序:

FIFO_num = ScibRegs.SCIFFRX.bit.RXFFST; //读取FIFO 内部数据量

if(FIFO_num>=8)
{
for(i=0;i<16;i++)
{
rdataB【i】=ScibRegs.SCIRXBUF.all; // Read data
}

if((sta_num!=rdataB【0】)&&(rdataB【0】!=0x0))
{
clear_uart_buf();
SCIFIFO_FLAG=0;
//ScibRegs.SCIFFRX.bit.RXFFST=0;
EALLOW;
ScibRegs.SCIFFRX.bit.RXFIFORESET = 0;
ScibRegs.SCIFFRX.bit.RXFIFORESET = 1;
EDIS;
}
if(rdataB【0】==0x0) modbus_scib();
else if(rdataB【0】==sta_num)
{
temp=rdataB【7】<<8;
temp= temp|rdataB【6】;
//Recdata=&rdataB【0】;
Rec_num=6;
CRC_code= CRC16(rdataB,Rec_num);
if(temp!=CRC_code) SendError(0x02); //0x02:CRC错误
else modbus_scib();
//SendData(rdataB,FIFO_num);
}

}
for(i=0;i<16;i++)
{
rdataB【i】=ScibRegs.SCIRXBUF.all; // Read data
}
clear_uart_buf();
SCIFIFO_FLAG=0;
EALLOW;
ScibRegs.SCIFFRX.bit.RXFFOVRCLR = 1; // 清楚溢出标志位
ScibRegs.SCIFFRX.bit.RXFIFORESET = 0;
ScibRegs.SCIFFRX.bit.RXFIFORESET = 1;
EDIS;




bt001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 167回
  • 年度积分:0
  • 历史总积分:540
  • 注册:2009年5月21日
发表于:2011-09-27 18:50:52
1楼

你需要首先使用标准商用软件(例如MODSCAN32等)来验证整个系统硬件的可靠性。如果用它不丢失指令,则就是你主机软件的问题了。

 

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-09-27 21:56:21
2楼
丢指令?是发出去的报文次数不对还是返回的报文数量不对?

dianqisu

  • 精华:5帖
  • 求助:0帖
  • 帖子:23帖 | 804回
  • 年度积分:1
  • 历史总积分:9138
  • 注册:2008年12月19日
发表于:2011-09-28 08:29:09
3楼
在返回的字符串种,有错误代码么?有的话,对照看下.

cifu2011

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2011-10-10 16:58:10
4楼
是返回的报文数量不对。最终确定是软件的问题。现在我的数据不丢了,但是发送间隔必须大于等于300ms,否则就会丢。如果要求客户发送间隔不少于300ms,这个要求过分吗?

bt001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 167回
  • 年度积分:0
  • 历史总积分:540
  • 注册:2009年5月21日
发表于:2011-10-15 21:13:53
5楼

对于PC上位机来说,300毫秒的延迟算不了什么,可以接受;

如果采用PLC做MODBUS主站,你这个从站响应速度略低了些。

最终判断这个延迟问题,应该从具体应用着手。如果参与比较快速的闭环反馈系统,则要求从站响应速度快些;如果仅是用于监测系统,要求就比较低了。

cifu2011

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2011-10-18 12:09:10
6楼
我们的系统,PC机是主机,变频器是从机。300ms指令间隔是指主机每隔300ms发一条指令给从机,少于这个间隔,从机回复的数据会有丢失。这样的要求对于客户来说,合适吗?

bt001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 167回
  • 年度积分:0
  • 历史总积分:540
  • 注册:2009年5月21日
发表于:2011-10-19 18:19:56
7楼

速度略微慢了些。以9600BPS为例,从站响应时间大约在10~50毫秒左右为宜。

bt001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 167回
  • 年度积分:0
  • 历史总积分:540
  • 注册:2009年5月21日
发表于:2011-10-19 18:28:05
8楼

太快也不行,MODBUS规定2个通信帧之间至少有3.5个字符时间的间隔

 

封锁一生

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 103回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2010年11月12日
发表于:2011-10-19 19:34:49
9楼
嗯嗯,多看看书的说明把,www.hncgq.com

zl0801

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年10月20日
发表于:2011-10-20 12:37:09
10楼
可以用一个在接一个485模块进行监听,从电脑端监听你的数据是否发送出去,从机是否有对应的响应

cifu2011

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2011-11-16 14:37:27
11楼
大家好,很久没有回复你们了,调程序真的很累人,越急越不出成果。头脑冷静真的很重要,有些重要的信息被忽略了,时间就白白的浪费了。我之前说的300ms,确切的意思是主站(上位机)每间隔300ms发一条指令,不是从机的响应时间。

1099023321ren

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 52回
  • 年度积分:0
  • 历史总积分:366
  • 注册:2010年11月24日
发表于:2011-11-19 21:32:09
12楼


公司名称:北京市龙兴联控制工程研究所

产品型号:DP-MODBUS

产品简介:

DP-MODBUS协议转换器可把具有MODBUS通信协议的现场设备与PROFIBUS主站进行互连 。例如:变频器、电机保护器、称重仪表、编码器、LED显示屏等。



详细说明

一、产品概述
DP-MODBUS协议转换器可把具有MODBUS(RTU,ASCLL)通信协议的现场设备与PROFIBUS主站互连通信。例如:变频器、电机保护器、称重仪表、编码器、LED显示屏等。

二、主要功能及性能指标:
●使用简单:用户无需编程即可实现MODBUS设备与PROFIBUS主站的通讯。
●DP-MODBUS协议转换器可方便、快捷的将具有MODBUS协议接口的设备连接到PROFIBUS 总线上。
●PROFIBUS -DP接口的波特率具有自适应功能,支持的波特率为:9.6Kbps 、19.2Kbps 、45.45Kbps 93.75Kbps 、 187.5Kbps 、 500Kbps 、 1.5Mbps 、 3Mbps 、 6Mbps 、12Mbps。
● 交换的输入/ 输出字节长度可自由设定,最大交换输入 / 输出为:224字节输出、224 字节输入。
●MODBUS接口字符格式直接在PROFIBUS主站配置:7 位/8 位可选、校验位 ( 偶、奇、无 ) 可选。波特率 :1.2Kbps 、 2.4Kbps 、 4.8Kbps 、 9.6Kbps 、 19.2Kbps 、38.4Kbps 、57.6Kbps可选。

●组网:转换器的MODBUS接口作为MODBUS主站可以组网下挂31个以内的MODBUS从站。
●供电: 24Vdc±25 %,最大功率4W 。
●工作环境温度: -25-55℃ 、相对湿度 ≤95%(40℃
●外形尺寸:(高)112mm× (宽)70mm×39.5mm (厚)
●防护等级:IP20
●安装: 35mm 标准导轨。

1099023321ren

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 52回
  • 年度积分:0
  • 历史总积分:366
  • 注册:2010年11月24日
发表于:2011-11-19 21:34:00
13楼
北京市龙兴联控制工程研究所

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-11-19 22:30:03
14楼

硬件平台是仕么?

 

 


热门招聘
相关主题

官方公众号

智造工程师