微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stc12单片机通过串口采集modbus协议的智能仪表

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

时间:10-02 整理:3721RD 点击:
各位大神,小弟最近在做的项目是关于“stc12单片机通过串口采集modbus协议的智能仪表”;单片机使用的是STC12c5a60s2,智能仪表是带有modbus协议的智能电阻表,请问通过rs232如何采集仪表的电阻值数据,此外想两个串口采集两个智能电阻表

小弟刚入论坛,没有积分,若能解决问题,小弟必有感谢!

自顶一下

那你需要这个电表的MODBUS协议文档。
单片机根据协议文档,通过rs232串口向电表发送modbus指令,然后电表回复你要的数据(比如电阻值)。
两个串口也是一样的原理。
PS:其实1个串口也能采集2个MODBUS设备,因为MODBUS协议中自带地址,1个串口最大支持254个设备。

用一个就可以了,可以设置地址的

大神,这个是协议,能举个例子么


大神可否帮看下5楼的协议

自顶一下

这个没什么难度,首先 你在STC12 上配置好两个串口,然后按照你那个仪表的 MODBUS协议发命令就可以了,MODBUS只是一种通讯协议,无论你使用RS232 还是  RS485 和协议是没有关系的 ,可以看一下我的帖子,有相关MODBUS的资料,你可以先了解一下:http://bbs.elecfans.com/forum.ph ... =1322486&extra=

你上面的那张纸 写的已经很明白了,串口设置为  96 N 8 1 ,十六进制发送:01 03 00 62 00 02 65 D5 ,然后,传感器器就会回复的

好的,我先试一下

这张图片举的例子就很好:
向仪表发送: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.modbus协议文档
2.智能表的数据表
根据modbus文档来写通讯程序,根据智能表的数据表来读取数据、写入数据等操作。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top