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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
stc12单片机通过串口采集modbus协议的智能仪表! i% B9 @$ z9 F; f$ v
8 h# T: o. G/ D2 ?4 Z7 T

) l" j5 e9 ?, Z# `1 l1 L" g各位大神,小弟最近在做的项目是关于“stc12单片机通过串口采集modbus协议的智能仪表”;单片机使用的是STC12c5a60s2,智能仪表是带有modbus协议的智能电阻表,请问通过rs232如何采集仪表的电阻值数据,此外想两个串口采集两个智能电阻表( ^9 u; K2 x7 s: ?! R" Q

该用户从未签到

2#
发表于 2019-3-15 09:51 | 只看该作者
那你需要这个电表的MODBUS协议文档。
( f' e9 H" r" Y. B单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表回复你要的数据(比如电阻值)。
/ O( O8 l* I( L* g1 C2 k5 n0 n" H4 F两个串口也是一样的原理。" D- v& O' w+ q# N$ _! l
PS:其实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
, r: S: w# q% E. M  E那你需要这个电表的MODBUS协议文档。, s% i  C$ r$ \' j" B4 J' q! r
单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表 ...

$ o6 `& I% X3 L, |  t+ ^. F这个是协议,能举个例子么8 O7 M: o5 O+ w) g6 l

, N0 o4 I" s9 p- ?* }& b

点评

这张图片举的例子就很好: 向仪表发送: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:21
8 w% J9 T$ ^* W" v* C& E1 W这个是协议,能举个例子么

0 y  ?7 j4 M; h' v" C! u9 y' `3 e这张图片举的例子就很好:2 @1 _6 Y$ ?  l) l: f$ y1 V
向仪表发送:01 03 00 62 00 02 65 D5
, ^& E* e9 N2 u+ x' f3 j. t, |01:设备地址(应该是默认为1)) L7 \: o& _' S8 }( |' ~
03:读寄存器命令的功能码
( S; H6 A$ f" h% r00 62:PV1的寄存器地址(也就是说PV1测量值存在这个地址,命令读取的就是这个地址)
" C: b" B  D5 D1 D00 02:从0x0062这个地址读取2个字的数据,也就是4个字节的数据(MODBUS一个字等于2字节)。5 S% G7 s' s9 x3 S" w! o! `
65 D5:CRC校验码
3 H$ ~" f0 W! _2 N/ m- H+ }3 N0 T0 R, q! Y
然后仪表返回:01 03 04 6D 96 49 F3 71 661 P% G2 X/ ]# s1 ~) ]! a
01:设备地址(应该是默认为1)
1 N$ \; T3 H; z4 |! ]03:读寄存器命令的功能码
6 Y/ S: z( ]6 h8 J5 C3 p/ d04:读命令返回了4个字节的数据& o2 I9 Z" z4 x1 G" I: ?1 g8 e
6D 96 49 F3:PV1数据值' t9 T* s2 `1 o: Z
71 66:CRC校验码
. m$ L1 U( ?- n9 t8 j" |0 {

该用户从未签到

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-6-25 17:06 , Processed in 0.109375 second(s), 31 queries , Gzip On.

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

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

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