完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大神,小弟最近在做的项目是关于“stc12单片机通过串口采集modbus协议的智能仪表”;单片机使用的是STC12c5a60s2,智能仪表是带有modbus协议的智能电阻表,请问通过rs232如何采集仪表的电阻值数据,此外想两个串口采集两个智能电阻表
小弟刚入论坛,没有积分,若能解决问题,小弟必有感谢!
|
|
相关推荐
11个回答
|
|
你上面的那张纸 写的已经很明白了,串口设置为 96 N 8 1 ,十六进制发送:01 03 00 62 00 02 65 D5 ,然后,传感器器就会回复的
最佳答案
|
|
|
|
自顶一下
|
|
|
|
那你需要这个电表的MODBUS协议文档。
单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表回复你要的数据(比如电阻值)。 两个串口也是一样的原理。 PS:其实1个串口也能采集2个MODBUS设备,因为MODBUS协议中自带地址,1个串口最大支持254个设备。 |
|
|
|
用一个就可以了,可以设置地址的
|
|
|
|
本帖最后由 memoryh 于 2017-9-16 22:09 编辑
Ansersion 发表于 2017-9-16 11:41 大神,这个是协议,能举个例子么 |
|
|
|
|
|
|
|
自顶一下
|
|
|
|
这个没什么难度,首先 你在STC12 上配置好两个串口,然后按照你那个仪表的 MODBUS协议发命令就可以了,MODBUS只是一种通讯协议,无论你使用RS232 还是 RS485 和协议是没有关系的 ,可以看一下我的帖子,有相关MODBUS的资料,你可以先了解一下:https://bbs.elecfans.com/forum.p ... =1322486&extra=
|
|
|
|
将军问鼎 发表于 2017-9-17 14:47 好的,我先试一下 |
|
|
|
这张图片举的例子就很好: 向仪表发送:01 03 00 62 00 02 65 D5 01:设备地址(应该是默认为1) 03:读寄存器命令的功能码 00 62:PV1的寄存器地址(也就是说PV1测量值存在这个地址,命令读取的就是这个地址) 00 02:从0x0062这个地址读取2个字的数据,也就是4个字节的数据(MODBUS一个字等于2字节)。 65 D5:CRC校验码 然后仪表返回:01 03 04 6D 96 49 F3 71 66 01:设备地址(应该是默认为1) 03:读寄存器命令的功能码 04:读命令返回了4个字节的数据 6D 96 49 F3:PV1数据值 71 66:CRC校验码 |
|
1 条评论
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12037 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 06:14 , Processed in 1.164157 second(s), Total 105, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号