基于PC和单片机实现MODBUS RTU通信

最近研究了一下modbus通信,在stc12c5a60s2单片机上实现了modbus协议的部分功能,方便上位机从单片机系统上获取数据,比如由单片机获取的温度、湿度、或者控制信号的状态等。有了modbus协议后,上位机的开发就很方便了,可以使用c#等高级语言通过串口通信,或者使用组态王直接通过串口通信而不需要写代码,这些都归功于modbus协议的开放性,很多的组态软件都能提供对他的支持。甚至通过plc直接可以和单片机通信,比如在plc系统上没有ad时,可以使用单片也来进行ad,然后通过modbus返回给plc进行相应的控制。
通过modbus协议可以实现主机和多个从机进行通谢,而每个从机有唯一的地址,主机就靠这个地址和从机进行通信。每一帧数据都要通过crc进行校验,保证通信的正确性。
在进行多机通信时只需要把每个从机的串口并到一起即可,见后面的图。
单片机中3号功能的核心代码如下:
本例中每个从机返回80个字节的数据,1号机返回i+1, 2号机返回2*i+1 ,当然在实际运用中只要自己定义所返回的数据的含义即可。比如1,2字节代表温度,3,4字节代表湿度,接下来的4个字节代表p0,p1,p2,p3端口的状态等。可以自由定义,很方便。
具体效果见下图:
把两块板的串口通过杜绑线连在一起。
在textbox中输入从机的地址,返回相应的数据
如果输入的地址从机不存在,那么通信将会超时,就会提示通信故障。这个是根据通信超时来判断的。

迎新 | 宏景智驾2023届新人进阶训练营启航
基于2018年的存储市场5大关键词的解析
华为Mate10什么时候上市最新消息汇总:华为Mate10信心满满对战三星Note8、iPhone8,能赢吗?
计算机通信与网络v2 实验课程(24)
智能魔镜在厨房的应用,提供一个智慧厨房的新环境
基于PC和单片机实现MODBUS RTU通信
电工知识—SIMATIC S7-1500 PLC监控表Watch Table
可插卡收音机,简约设计,细心品味 功能还多 贼高级
STC8A8K64S4A12系列单片机DAC数模转换器讲解
数据库数据恢复—断电导致Oracle数据库故障的数据恢复案例
元件放置中的PCB设计和风险收益分析
华为透露首款VR产品7月中旬上市 对开发者第一年免费分成
互联网技术全面布控、实时监测、排除隐患,实现校园安防零死角
oppo find x 潜望摄像头人气爆棚 科技再次被感知
转塔式贴片机
使用XR806联调控制四足马术机器人
MP3播放器自定义音效简介(别亏待耳朵)
CMET上海站开幕,移动医疗将成为本土厂商新机遇
“易航智能”宣布获得广汽资本旗下基金的1亿元人民币B+轮融资
奔驰已证实将推出纯电动版的G级越野车