[STM32F1] 给大家分享 移植的FREE MODBUS例程

[复制链接]
10520|44
 楼主| jiaxinhui 发表于 2014-11-5 11:04 | 显示全部楼层 |阅读模式
本帖最后由 jiaxinhui 于 2014-11-5 11:15 编辑

实验内容:在板子上移植FREEMODBUS从机协议,在PC上用MODBUS POLL调试软件,测试几种常用功能。
实验平台:基于MINI STM32 板子
源       码: MODBUS命令测试例程.zip (389.04 KB, 下载次数: 956)
补充说明:只测试了02、03、04、05、06等几个常用功能,均无丢包现象。有兴趣的朋友可以在此基础上,测试其他命令。
输出效果:
MODBUS.jpg
关于:
FreeMODBUS 是针对通用的Modbus协议栈在嵌入式系统中应用的一个实现。Modbus协议是一个在工业制造领域中得到广泛应用的一个网络协议。一个Modbus通信协议栈包括两层:定义了数据结构和功能Modbus应用协议和网络层。在FreeMODBUS的当前版本中,提供了Modbus Application Protocol v1.1a 的实现并且支持在Modbus over serial line specification 1.0中定义的RTU/ASCII传输模式。从0.7版本开始,FreeModbus也支持在TCP defined in Modbus Messaging on TCP/IP Implementation Guide v1.0a中定义的TCP传输。Freemodbus遵循BSD[1] ,这意味着本协议栈的实现代码可以应用于商业用途。目前版本的FreeModbus支持如下的功能码:
  • 读输入寄存器 (0x04)
  • 读保持寄存器 (0x03)
  • 写单个寄存器 (0x06)
  • 写多个寄存器 (0x10)
  • 读/写多个寄存器 (0x17)
  • 读取线圈状态 (0x01)
  • 写单个线圈 (0x05)
  • 写多个线圈 (0x0F)
  • 读输入状态 (0x02)
  • 报告从机标识 (0x11)
本实现基于最新的标准并且与标准完全兼容。接收和传输Modbus RTU/ASCII数据帧是通过一个由硬件提取层的调用来驱动状态机来实现的。这就使得该协议非常容易移植到其他的平台之上。当收到一个完整的数据帧后,该数据帧被传入Modbus应用层,数据帧的内容在该层得到解析。为例方便增加新的Modbus功能,Freemodbus在应用层通提供了Hooks。

人民币的幻想 发表于 2014-11-5 12:42 来自手机 | 显示全部楼层
不错,以前也做成过,顶楼主
mmuuss586 发表于 2014-11-5 12:51 | 显示全部楼层

不错,谢谢楼主分享;
SLHSu37 发表于 2014-11-5 13:06 | 显示全部楼层
感谢LZ分享~~~~~~~~~
fanxsd 发表于 2014-11-5 22:33 | 显示全部楼层
不错不错,工控产品组网这个非常有用的。
 楼主| jiaxinhui 发表于 2014-11-6 09:57 | 显示全部楼层
通过测试,感觉还是很稳定的。               
 楼主| jiaxinhui 发表于 2014-11-15 15:50 | 显示全部楼层
                    
dong_abc 发表于 2014-11-16 15:57 | 显示全部楼层
 楼主| jiaxinhui 发表于 2014-11-18 09:13 | 显示全部楼层
不客气                                                            
huangfeng33 发表于 2014-11-26 10:31 | 显示全部楼层
FreeModbus 是一个可移植的Modbus软件协议,目前感觉结构还很不错,刚开始学习,顶楼主!
 楼主| jiaxinhui 发表于 2014-12-5 14:19 | 显示全部楼层
不客气。   
王力斯 发表于 2015-3-16 10:07 | 显示全部楼层
先收藏下  以备后用
 楼主| jiaxinhui 发表于 2015-4-9 09:29 | 显示全部楼层
 楼主| jiaxinhui 发表于 2015-4-10 09:15 | 显示全部楼层
:)              
lei129210 发表于 2015-4-10 10:08 | 显示全部楼层
为什么自己不定义小协议呢?为什么要用这种协议?协议的稳定与否,与软件的解析有很大的关系,处理得好。都行啊。
peoplesen 发表于 2015-4-10 15:39 | 显示全部楼层
学习了
fanxsd 发表于 2015-5-6 17:11 | 显示全部楼层

modbus rtu 还是非常稳定的,modbus tcp 貌似是有BUg
yhy123456 发表于 2015-5-6 17:32 | 显示全部楼层
路过学习一下  
cady2014 发表于 2015-5-25 17:06 | 显示全部楼层
*币的幻想 发表于 2014-11-5 12:42
不错,以前也做成过,顶楼主

你好,最近在做一个单片机小项目,我是个新手,有一些问题想请教一下,请问  通过修改freeModbus源码之后,是不是需要在main的主循环里面写上用户自定义的功能测试代码?以及如何编写?谢谢!
周董 发表于 2015-5-25 20:24 | 显示全部楼层
没有用过,进来看看,学习了:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:点击进入—》我的淘宝店 数据采集板 RS485 CAN 总线通讯评估套件

72

主题

922

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部