找回密码
 注册
关于网站域名变更的通知
查看: 713|回复: 6
打印 上一主题 下一主题

问个问题:stc12单片机通过串口采集modbus协议的智能仪表

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-15 09:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
stc12单片机通过串口采集modbus协议的智能仪表$ j& b+ M6 l3 @) |+ G6 k5 b
+ ^3 a2 Y; M5 F: G$ `) s

4 h/ G' S: j3 N! t  t8 k3 A- l3 _' M各位大神,小弟最近在做的项目是关于“stc12单片机通过串口采集modbus协议的智能仪表”;单片机使用的是STC12c5a60s2,智能仪表是带有modbus协议的智能电阻表,请问通过rs232如何采集仪表的电阻值数据,此外想两个串口采集两个智能电阻表
# M& F2 |2 T- s

该用户从未签到

2#
发表于 2019-3-15 09:51 | 只看该作者
那你需要这个电表的MODBUS协议文档。( \4 n, [7 h2 D  f1 r; h* g
单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表回复你要的数据(比如电阻值)。
# {- ^) K! C6 p3 p- b6 A+ U. Q/ r* r两个串口也是一样的原理。
! Q! j/ u  ^1 u3 N! Z4 MPS:其实1个串口也能采集2个MODBUS设备,因为MODBUS协议中自带地址,1个串口最大支持254个设备。

点评

这个是协议,能举个例子么 [attachimg]175829[/attachimg]  详情 回复 发表于 2019-3-15 11:21

该用户从未签到

3#
 楼主| 发表于 2019-3-15 11:21 | 只看该作者
helendcany 发表于 2019-3-15 09:51
- }- f3 k4 s6 j( D  m, ]- v8 c那你需要这个电表的MODBUS协议文档。- Y* T0 g* q$ I9 e- i6 ~
单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表 ...

4 E: Y4 ?8 q- h4 M& g这个是协议,能举个例子么
" c! @. K1 v, p$ z ' F& o. y0 q+ U8 M

点评

这张图片举的例子就很好: 向仪表发送:01 03 00 62 00 02 65 D5 01:设备地址(应该是默认为1) 03:读寄存器命令的功能码 00 62:PV1的寄存器地址(也就是说PV1测量值存在这个地址,命令读取的就是这个地址)  详情 回复 发表于 2019-3-15 13:11

该用户从未签到

4#
发表于 2019-3-15 13:11 | 只看该作者
罗斯 发表于 2019-3-15 11:210 p- ]) R% K- P$ f7 u& L' ^* S
这个是协议,能举个例子么

* |* n1 v# z/ ~# H$ Z; J2 y这张图片举的例子就很好:/ O; G% A! q9 c! F1 I$ p. h$ W0 d
向仪表发送:01 03 00 62 00 02 65 D57 j. h: n' i7 ^( V/ W) E3 M
01:设备地址(应该是默认为1), R5 o4 I1 M# [1 J4 U' h8 {6 P
03:读寄存器命令的功能码4 w& T6 f7 C0 `) h" r
00 62:PV1的寄存器地址(也就是说PV1测量值存在这个地址,命令读取的就是这个地址)
. v) U7 F& a" t00 02:从0x0062这个地址读取2个字的数据,也就是4个字节的数据(MODBUS一个字等于2字节)。
6 F9 b  ?  h6 q% V, y65 D5:CRC校验码
( P& w+ D' U6 j8 m3 Q
) N, W! j9 a, ^9 }) Z然后仪表返回:01 03 04 6D 96 49 F3 71 66
. p( P. N9 {0 X  R1 M# \; R01:设备地址(应该是默认为1)5 l- G* d$ \: A: |
03:读寄存器命令的功能码
2 O7 Q$ g4 r8 O7 Z8 f! `! p04:读命令返回了4个字节的数据
4 G# R  \% |1 r" N6D 96 49 F3:PV1数据值1 R. d: Q- g1 Z& U9 n  P
71 66:CRC校验码7 s1 p8 {# g* {4 v. W

该用户从未签到

5#
发表于 2019-3-15 13:14 | 只看该作者
你上面的那张纸 写的已经很明白了,串口设置为  96 N 8 1 ,十六进制发送:01 03 00 62 00 02 65 D5 ,然后,传感器器就会回复的

该用户从未签到

6#
 楼主| 发表于 2019-3-15 13:26 | 只看该作者
谢谢各位大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 13:47 , Processed in 0.140625 second(s), 31 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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