STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
经过这几天的学习与调试,终于在STM32F103VCT6+W5500(SPI1)+Freemodbus 平台上,实现Modbus-TCP协议的功能。其实很简单,只要熟悉Modbus-RTU通讯,明白Modbus帧的结构等,Modbus-TCP只是在原来的帧结构上加个头,去个尾,然后用TCP传输即可。
关键的内容就是怎样获取W5500新接收的数据包,并发送给Modbus事件状态机驱动协议的执行,数据的处理。
主要参考Freemodbusdemo里的Modbus-TCP协议实现的思路,获取缓存区的读写与发送响应。
效果图如下:
文章图片
工程结构,工程下载见最下面的附件。
文章图片
使用Modbus poll测试
文章图片
设置Modbus TCP模式,IP及端口502
文章图片
这里是操作线圈
文章图片
这里是操作多个保持寄存器
文章图片
读多个保持寄存器
主要实现了01 02 03 04 05 06 15 16 22 23功能码。
工程文件如下:使用的是Keil uVesion4。
工程文件下载
【STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载】Git下载:https://git.oschina.net/fsmd/stm32_w5500_freemodbus_v1.git
当然,这是STM32+W5500 测试以来,做的有点实用价值的事情。
后面将会不断完善,从而应用于实际的项目中。
推荐阅读
- modbus-tcp协议讲解
- Modbus-Python
- 【STM32】FreeModbus-RTU主机模式下数据接受函数传递
- 基于STM32_DM9000_UIP_FreeModbus的Modbus-TCP功能实现工程下载