android 串口通信 读取不到数据_上位机开发之单片机通信实践(一)

本文通过一个具体的案例,介绍了如何进行上位机与单片机的串口通信,特别是使用ModbusRTU协议进行485总线通信的过程。内容涵盖单片机硬件介绍、通信测试步骤,以及使用ModbusPoll软件进行初步测试的方法,旨在帮助开发者理解并实现上位机与单片机的通信。
摘要由CSDN通过智能技术生成
f782669267b43539f6f526fbd18e4367.gif微信号 :thinger_swj微博:@新阁程序园扫码关注 25959367709896656943cd704c808ab5.png

经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了PLC控制器。今天在这里给大家分享一个上位机与单片机通信的实例,希望对大家开发上位机有所启发。

1. 单片机硬件介绍

只要做上位机开发,就离不开通信协议。一般来说,单片机可以与上位机之间以串口通信为主,当然也不排除现在有的单片机也集成了以太网口。就串口通信而言,常用的几种通信方式,包括串口自定义协议、Modbus协议、CAN总线,接下来介绍的这个单片机是某个锂电池的核心板,它主要是支持Modbus协议和CAN总线的方式。

c8af8d67503f98dc32f95f63de13d76e.png

图表 1单片机硬件

2. 通信测试

(1)这里我们选择的是基于485总线的ModbusRTU通信协议,如果要实现上位机开发,需要单片机开发人员提供一份通信变量表,如果读取变量较多或者不连续,需要进行分组读取。

(2)通信变量表一般包含参数名称、Modbus地址、存储区、数据类型、换算公式等内容,能够将通信变量表看明白并完成通信测试,是能够完成上位机开发的前提。

(3)这里,我截取部分变量表跟大家做一个分析:

808b3973f59354b3d5fd032edd4ad2c3.png

图表 2 Modbus寄存器表

上表中,以电芯总电压为例,Modbus地址为0x1003,对应十进制即为4099,寄存器地址即为44100,读取类型为ushort类型,换算公式为读取之后乘以0.01,比如读取值为5630,即为5.63V。

分析明白之后,我们就可以先用ModbusPoll软件来一波初步测试,如果需要Modbus软件资料的,可以关注一下喜科堂官方关注:dotNet工控上位机,然后像聊天一样发送关键词:Modbus软件套装即可。这里我们需要通过485转USB连接到电脑中,然后通过设备管理器,看到端口号为COM4。

5eb893413552184b12450d77002672e7.png

图表 3通信端口

打开ModbusPoll软件,通信参数选择COM4、9600、N、8、1,读取寄存器起始地址为4099,读取长度为10,具体配置如下图所示:

35e1d2ae5b712ea454c0d10b11cf433f.png

图表 4通信参数配置

0abc4c3b2e9c0442c0dac8a076ffc65e.png

图表 5通信读取配置

配置完成后,即可读取到单片机的数据,具体如下图所示:

1dc61e8ee2b751cc86c19c0ac1824cdd.png

图表 6 ModbusPoll读取

(4)实现读取之后,我们分析一下结果,4099读取到的值为4206,说明当前电池的电压为42.06V。我们可以用实际开发完成的上位机软件做下对比,验证一下数据是否正确:

40fa88f360b863e5366683374b409f52.png

图表 7上位机软件

(5)我们也可以用喜科堂通信测试平台来做下测试,测试结果如下:

fc3e33070e1530267e26179c8992c57b.png3. 整体总结

本文主要针对单片机的Modbus通信实例做了较为详尽的描述,由于篇幅有限,仅仅介绍了通信测试部分,对于后续的项目实战部分,会通过后续的文章进行进一步的阐述。

feb7288d9510832b17469d8c25fc5c26.png

欢迎关注“新阁上位机编程”抖音号

不定期发布上位机实用小技巧哦

快来学习互粉呀~ef2b46b8658f4b5961b96f1796ac30c8.png

(长按下方图片?保存到手机相册,打开抖音扫码关注哦!相信你肯定会c50a8303d033e25bdc5dd55caab2fd3b.png)

3885f06db707a9ac737dfa6db85f20d6.png

大家都在看

┣ C#实现上位机与PLC通信

┣ 上位机下位机串口通信设计详解

┣ 上位机C#通过TCP/IP和库卡机器人通讯

┣ OPC协议解析-OPC客户端与服务器通讯解析

┣ C#做一个简单的进行串口通信的上位机

4cc60606b193e755304a6b1409aa7d4c.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值