2021-09-14 08:43:29 索炜达电子 992
项目编号:E1193
文件大小:3.2M
源码说明:带中文注释
开发环境:C编译器
简要概述:
Modbus 通信,用的是原子的阿波罗 STM32F429 开发板
通信协议:
1. MODBUS TCP/IP 主站 可以预定义采集从站的报文,报文有优先级.优先级的数量在MB.H中定义
2. MODBUS TCP/IP 从站(TCP服务端)可以支持4个主站(连接数量可以在MB.H中定义)连接本站
3. MODBUS RTU 主站 可以预定义采集从站的报文,报文有优先级.优先级的数量在MB.H中定义
4. MODBUS RTU 从站
由于网口占用了串口2和串口3的端口,所以主站和从站我都定义为串口1,通过宏定义只使用主站或从站。
MODBUS TCP/IP的主站和从站与RTU可以同时使用,如果通过跳线将RTU主站或从站进行端口映射不与网口冲突,4个功能可以同时开启。
屏的驱动我这里只有7寸电容屏,所以驱动只保留了7寸屏的驱动,如果有屏的话,有一些调试信息打印在屏上。
OS操作系统就不要抱怨了,这个是我自己编的,自己要什么功能自己加的,如果要改其他OS的话应该UCOSII比较接近,MODBUS任务的话根据UCOSII改就可以了。我的MODBUS任务用了信号量,MODBUS TCP/IP 主站和MODBUS RTU 主站各一个信号量。屏幕打印用了一个互斥量。
功能码我没有全部做全,01,02,03,04,05,06做了,15,16还没来得及做。
MODBUS_BIN.rar这个是bin文件,可以在阿波罗429的综合例程里,用运行器运行。
配置:
作为modbus TCP/IP从站:可以有4个MODBUS TCP/IP主站来采集数据。本机的IP地址为:192.168.3.30 modbus地址 1.
作为modbus TCP/IP主站:连接的Modbus TCP/IP从站IP地址为192.168.3.131 modbus地址为2.程序里使用了03功能码读数据和06功能码写数据。
modbus RTU从站:串口冲突,没有配置,如果通过跳线和串口端口映射到其他串口,可以开启。
Modbus RTU主站:使用串口1 波特率19200,8,N,1 读取的modbus地址为2,使用03功能码读数据和06功能码写数据。
目录│文件列表:
│ MODBUS.rar
│ MODBUS_BIN.rar