STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载

经过这几天的学习与调试,终于在STM32F103VCT6+W5500(SPI1)+Freemodbus 平台上,实现Modbus-TCP协议的功能。其实很简单,只要熟悉Modbus-RTU通讯,明白Modbus帧的结构等,Modbus-TCP只是在原来的帧结构上加个头,去个尾,然后用TCP传输即可。
关键的内容就是怎样获取W5500新接收的数据包,并发送给Modbus事件状态机驱动协议的执行,数据的处理。
主要参考Freemodbusdemo里的Modbus-TCP协议实现的思路,获取缓存区的读写与发送响应。


效果图如下:


STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


工程结构,工程下载见最下面的附件。


STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


使用Modbus poll测试


STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


设置Modbus TCP模式,IP及端口502


STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


这里是操作线圈


STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


这里是操作多个保持寄存器




STM32+W5500+Freemodbus Modbus-TCP协议功能实现,工程文件下载
文章图片


读多个保持寄存器




主要实现了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 测试以来,做的有点实用价值的事情。
后面将会不断完善,从而应用于实际的项目中。

    推荐阅读