上位机开发之单片机通信实践
经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了PLC控制器。今天在这里给大家分享一个上位机与单片机通信的实例,希望对大家开发上位机有所启发。
1. 单片机硬件介绍
只要做上位机开发,就离不开通信协议。一般来说,单片机可以与上位机之间以串口通信为主,当然也不排除现在有的单片机也集成了以太网口。就串口通信而言,常用的几种通信方式,包括串口自定义协议、Modbus协议、CAN总线,接下来介绍的这个单片机是某个锂电池的核心板,它主要是支持Modbus协议和CAN总线的方式。
2. 通信分析
(1)这里我们选择的是基于485总线的ModbusRTU通信协议,如果要实现上位机开发,需要单片机开发人员提供一份通信变量表,如果读取变量较多或者不连续,需要进行分组读取。
(2)通信变量表一般包含参数名称、Modbus地址、存储区、数据类型、换算公式等内容,能够将通信变量表看明白并完成通信测试,是能够完成上位机开发的前提。
(3)这里,我截取部分变量表跟大家做一个分析:
上表中,以电芯总电压为例,Modbus地址为0x1003,对应十进制即为4099,寄存器地址即为44100,读取类型为ushort类型,换算公式为读取之后乘以0.01,比如读取值为5630,即为5.63V。
分析明白之后,我们就可以先用ModbusPoll软件来一波初步测试,如果需要Modbus软件资料的,可以私信我留下微信号,我让助教老师给到你。
这里我们需要通过485转USB连接到电脑中,然后通过设备管理器,看到端口号为COM4。
3. 通信测试
(1)打开ModbusPoll软件,通信参数选择COM4、9600、N、8、1,具体配置如下图所示:
(2)读取寄存器起始地址为4099,读取长度为10,具体配置如下图所示:
(3)配置完成后,即可读取到单片机的数据,具体如下图所示:
(4)实现读取之后,我们分析一下结果,4099读取到的值为4206,说明当前电池的电压为42.06V。我们可以用实际开发完成的上位机软件做下对比,验证一下数据是否正确:
4. 整体总结
本文主要针对单片机的Modbus通信实例做了较为详尽的描述,由于篇幅有限,仅仅介绍了通信测试部分,对于后续的项目实战部分,会通过后续的文章进行进一步的阐述。
我是新阁上位机付老师,用我的专业,成就你的梦想!
上位机开发之单片机通信实践(一)
经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了PLC控制器。今天在这里给大家分享一个上位机与单片机通信的实例,希望对大家开发上位机有所启发。
1. 单片机硬件介绍
只要做上位机开发,就离不开通信协议。一般来说,单片机可以与上位机之间以串口通信为主,当然也不排除现在有的单片机也集成了以太网口。就串口通信而言,常用的几种通信方式,包括串口自定义协议、Modbus协议、CAN总线,接下来介绍的这个单片机是某个锂电池的核心板,它主要是支持Modbus协议和CAN总线的方式。
图表 1单片机硬件
2. 通信测试
(1)这里我们选择的是基于485总线的ModbusRTU通信协议,如果要实现上位机开发,需要单片机开发人员提供一份通信变量表,如果读取变量较多或者不连续,需要进行分组读取。
(2)通信变量表一般包含参数名称、Modbus地址、存储区、数据类型、换算公式等内容,能够将通信变量表看明白并完成通信测试,是能够完成上位机开发的前提。
(3)这里,我截取部分变量表跟大家做一个分析:
图表 2 Modbus寄存器表
上表中,以电芯总电压为例,Modbus地址为0x1003,对应十进制即为4099,寄存器地址即为44100,读取类型为ushort类型,换算公式为读取之后乘以0.01,比如读取值为5630,即为5.63V。
分析明白之后,我们就可以先用ModbusPoll软件来一波初步测试,如果需要Modbus软件资料的,可以关注一下喜科堂官方关注:dotNet工控上位机,然后像聊天一样发送关键词:Modbus软件套装即可。这里我们需要通过485转USB连接到电脑中,然后通过设备管理器,看到端口号为COM4。
图表 3通信端口
打开ModbusPoll软件,通信参数选择COM4、9600、N、8、1,读取寄存器起始地址为4099,读取长度为10,具体配置如下图所示:
图表 4通信参数配置
图表 5通信读取配置
配置完成后,即可读取到单片机的数据,具体如下图所示:
图表 6 ModbusPoll读取
(4)实现读取之后,我们分析一下结果,4099读取到的值为4206,说明当前电池的电压为42.06V。我们可以用实际开发完成的上位机软件做下对比,验证一下数据是否正确:
图表 7上位机软件
(5)我们也可以用喜科堂通信测试平台来做下测试,测试结果如下:
3. 整体总结
本文主要针对单片机的Modbus通信实例做了较为详尽的描述,由于篇幅有限,仅仅介绍了通信测试部分,对于后续的项目实战部分,会通过后续的文章进行进一步的阐述。
相关问答
什么是 单片机 什么是 上位机 哪个更好一点?单片机是指将CPU\存储器\输入输出接口\定时\中断\时钟集成在一块芯片上的控制器,所以叫单片(一块芯片),上位机一般情况下是由普通的个人计算机承担,而...单片...
请回答一下, 单片机 软件 程序 开发好还是 上位机 器 程序 开发好?[回答]可以用串口,单片机接收串口数据,懂事电子设计Vgz最近了解了,做的很全面,还挺好的强烈推荐下单片机是指一个集成在一块芯片上的完整计算机系统。尽...
程序 是怎么写入 单片机 的?程序写入单片机的过程一般被叫做烧录,烧录的实际过程是:1.通过编译器编译生成单片机能够识别的执行程序2.通过上位机按照某种通讯协议,把二进制可执行文件...
求助关于labview做 上位机与 wifi小车通信控制问题?你好,1.Lv安装于上位机,单片机是下位机2.你的问题就变成上位机如何与下位机通讯。3.上位机是电脑,下位机是单片机,他们直接要通讯首先要有硬件支持,Wifi...
上位机 怎样实时检测 单片机 所测数据?这个很简单,花个几十块钱买个蓝牙收发模块就行。单片机有串口就行,接串口蓝牙小电路板,上位机手机进行搜索连接。不过你需要进行二次开发,手机端需要开发蓝牙...
怎么用PC代替 单片机 进行工控?-ZOL问答如果想用PC机直接做下位机取代PLC,那么需要一块数据采集卡,多各种模拟量和开关量进行采集;如果还需要做控制,那么还需要能够输出诸如PWM信号的部件。单片机是一...
上位机 给 单片机 发数据发不过去?串口通信通讯有问题一般是通讯波特率不对,测试时可以先短路上位机通讯口的输入输出口然后发送数据观察收到的数据是否正确,判断上位机硬件是否正常。如果正常...
单片机 调试的方法和步骤?单片机调试是指通过逐步检查和验证硬件和软件的运行情况,以确保单片机系统的正常工作。下面是一般的单片机调试方法和步骤:1.准备调试环境:确保您拥有适当...
上位机 (VB)与下位机( 单片机 ))如何实现通信?能实现:通过虚拟机来测试,这时需要虚拟串口软件,需要虚拟出串口来实现互连。仿真方面:实现按键发音,并发送相应信息给上位机,通知上位机哪个键子按了。其...
c语言 上位机 是什么?C语言上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一...C...