libmodbus发送指令正常,但是接收不到回传的指令

发表在 Modbus7 天前 [复制链接] 18 118

发送的指令在串口工具里面都是正常的,所以打开和关闭都是可以的,但是返回的值是 -1。通过排查,在接收返回的数据这里出现了错误,有大佬遇到过吗?希望能够得到指导。这张图是写的查询线程3 _) ]* L& k2 f0 g
批注 2019-12-03 170319.png
# y4 X- U6 P1 V% m/ F: b这个是出现问题的地方2 e: Q8 S* ]! J. i6 @
批注 2019-12-03 170422.png
. o2 X+ `  l/ Z
! l5 M* J) j/ O- g" Z4 N" ?
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 7 天前 | 显示全部楼层
D:\批注 2019-12-03 210038.png
( ]0 f9 c4 F# {( N6 W附上一张开启了debug的调试信息
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
Xproplus 发表于 2019-12-3 21:02
; p9 v% v2 o( p  j6 u附上一张开启了debug的调试信息

5 d: ]1 ?' H# v9 N 批注 2019-12-03 210038.png
+ M* H  T9 U0 _) T
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
6 y5 T( v0 {' |, g1 U( T
这个值为2,很奇怪 批注 2019-12-03 213343.png & I/ w$ b) R  {+ M
$ y: e- t9 V0 A( n
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
Xproplus 发表于 2019-12-3 21:38& h0 ]* k( j, R8 C7 A2 {$ l# z
这个值为2,很奇怪

! u4 W  D1 n) j0 t3 t; Y 批注 2019-12-03 220917.png , y5 J! V" j: f4 f
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
既然是读取为何调试信息里的功能吗是5?
1575386948(1).jpg
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
RTU模式吗? 线圈数读少点,间隔慢一点。有试过吗?
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
yaomo718 发表于 2019-12-3 23:30
2 `2 E( J4 f4 ?! N( x6 R/ ?既然是读取为何调试信息里的功能吗是5?

% T9 V2 q) A  J7 D5 ?. _你好,后面的我改成写线圈了,但是返回的值 都是 -1,大佬有什么见解吗 批注 2019-12-04 085006.png " W- k* J, \8 |& ^

  K/ |5 O0 X0 a7 g; x
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
whj467467222 发表于 2019-12-4 08:43
1 v. y% \3 j* r/ M. b7 [RTU模式吗? 线圈数读少点,间隔慢一点。有试过吗?
" _( x1 R+ r2 f5 Q
rtu模式。在写线圈的时候,间隔10s来循环打开和关闭,返回的值仍是 -1,还是不行。
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
Xproplus 发表于 2019-12-4 08:58
! H$ G: T; E& @" i8 r# {9 prtu模式。在写线圈的时候,间隔10s来循环打开和关闭,返回的值仍是 -1,还是不行。 ...
2 D$ X$ s2 K0 S- E8 H* K) Q  v
我用过软件包自带的RTU例程,我这测试正常
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
whj467467222 发表于 2019-12-4 09:19' N7 H9 X3 E/ v* I" V/ y$ T
我用过软件包自带的RTU例程,我这测试正常

/ i9 F' t: R% g& ~1 ?% V请问串口部分有需要哪些配置吗?
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
Xproplus 发表于 2019-12-4 08:51
* d2 _( \* [2 C0 p( b  b6 q你好,后面的我改成写线圈了,但是返回的值 都是 -1,大佬有什么见解吗: h, i3 n) {* ?) f$ \* X
0 {6 D8 S+ o' `- E2 J9 ^* m/ m4 n9 L
...
0 Z" s  n* ^" y! t. F
你的输出是打印的消息,有实际用串口工具读一下数据吗?确实实际输出的数据跟打印数据一致吗?
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
yaomo718 发表于 2019-12-4 10:54! Y. x2 H$ N" y
你的输出是打印的消息,有实际用串口工具读一下数据吗?确实实际输出的数据跟打印数据一致吗? ...
+ y3 U" e( @9 `9 M1 d
实际输出的数据是一致的,主要是接收不了回传的数据
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
本帖最后由 yaomo718 于 2019-12-4 11:22 编辑 7 R  p5 V4 [+ G0 O! i+ z/ s
Xproplus 发表于 2019-12-4 11:07
# B1 w6 ?0 ]- u$ b7 F! b1 z: k实际输出的数据是一致的,主要是接收不了回传的数据
- y7 b/ z% k# Z/ C
你用串口工具也能读到回传的数据吗?数据是否正确呢?我有使用 libmodbus 没有遇到问题,还挺正常的。7 U+ s* t% W- L' s
485收发切换的引脚你设置了吗?& e# b9 M" ^3 L

+ m" Y) m+ Y5 i! d- l  Q' J" L# K. S
  1. rt_pin_mode(RS485_RE, PIN_MODE_OUTPUT);' Q8 ~, _4 Y0 w- g5 t/ s
  2. modbus_rtu_set_rts(ctx, RS485_RE, MODBUS_RTU_RTS_UP);
复制代码

% G% s- k) }" p) F1 D* B9 T* `: x9 c
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
yaomo718 发表于 2019-12-4 11:15
" e6 z$ R) j, w. f& K9 A你用串口工具也能读到回传的数据吗?数据是否正确呢?我有使用 libmodbus 没有遇到问题,还挺正常的。
5 F7 u/ J" h2 B) \
" ^( P/ Z! g# x% N48 ...

/ C6 ^& L) ^# C! e- f( s上面的过程是使用232收发的。在使用485的时候,接收的数据时序好像错了,总是接收不全 批注 2019-12-04 112213.png
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
Xproplus 发表于 2019-12-4 11:233 v/ C, `# \2 @* v
上面的过程是使用232收发的。在使用485的时候,接收的数据时序好像错了,总是接收不全 ...

0 f7 ?  |3 X; s: {! R可能和你的485电路有关。你的电路如何?去掉485上的120Ω的电阻试试?
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
还有你的slave端的电路如何?用的什么芯片?怀疑485两端的电平不匹配造成的。
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
yaomo718 发表于 2019-12-4 11:32, ?3 y8 N/ I" |( Y3 D8 k
还有你的slave端的电路如何?用的什么芯片?怀疑485两端的电平不匹配造成的。 ...
- v1 i/ O3 f6 I
这个是板子上的电路,re和de没有连在一起。不是很懂电路。应该是这个的原因,程序里面只操作了RE 批注 2019-12-04 113856.png
$ m( T3 N/ X# O4 b/ w
: \4 i9 \# |1 a3 B" j2 T3 P
使用道具 举报 回复
发表于 5 天前 | 显示全部楼层
Xproplus 发表于 2019-12-4 11:42
! G/ N% o  g# s/ P! h* ]+ X; z1 t- E' G这个是板子上的电路,re和de没有连在一起。不是很懂电路。应该是这个的原因,程序里面只操作了RE7 u5 k$ J0 c+ u3 u- u

# U1 g% ]2 n, h/ G: \: O ...
: [: Q: C) W2 I
找到问题就好
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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