打印
[STM32F1]

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

[复制链接]
8293|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jiaxinhui 于 2014-11-5 11:15 编辑

实验内容:在板子上移植FREEMODBUS从机协议,在PC上用MODBUS POLL调试软件,测试几种常用功能。
实验平台:基于MINI STM32 板子
源       码: MODBUS命令测试例程.zip (389.04 KB)
补充说明:只测试了02、03、04、05、06等几个常用功能,均无丢包现象。有兴趣的朋友可以在此基础上,测试其他命令。
输出效果:

关于:
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分享~~~~~~~~~

使用特权

评论回复
5
fanxsd| | 2014-11-5 22:33 | 只看该作者
不错不错,工控产品组网这个非常有用的。

使用特权

评论回复
6
jiaxinhui|  楼主 | 2014-11-6 09:57 | 只看该作者
通过测试,感觉还是很稳定的。               

使用特权

评论回复
7
jiaxinhui|  楼主 | 2014-11-15 15:50 | 只看该作者
                    

使用特权

评论回复
8
dong_abc| | 2014-11-16 15:57 | 只看该作者
3Q

使用特权

评论回复
9
jiaxinhui|  楼主 | 2014-11-18 09:13 | 只看该作者
不客气                                                            

使用特权

评论回复
10
huangfeng33| | 2014-11-26 10:31 | 只看该作者
FreeModbus 是一个可移植的Modbus软件协议,目前感觉结构还很不错,刚开始学习,顶楼主!

使用特权

评论回复
11
jiaxinhui|  楼主 | 2014-12-5 14:19 | 只看该作者
不客气。   

使用特权

评论回复
12
王力斯| | 2015-3-16 10:07 | 只看该作者
先收藏下  以备后用

使用特权

评论回复
13
jiaxinhui|  楼主 | 2015-4-9 09:29 | 只看该作者
呵呵

使用特权

评论回复
14
jiaxinhui|  楼主 | 2015-4-10 09:15 | 只看该作者
:)              

使用特权

评论回复
15
lei129210| | 2015-4-10 10:08 | 只看该作者
为什么自己不定义小协议呢?为什么要用这种协议?协议的稳定与否,与软件的解析有很大的关系,处理得好。都行啊。

使用特权

评论回复
16
peoplesen| | 2015-4-10 15:39 | 只看该作者
学习了

使用特权

评论回复
17
fanxsd| | 2015-5-6 17:11 | 只看该作者

modbus rtu 还是非常稳定的,modbus tcp 貌似是有BUg

使用特权

评论回复
18
yhy123456| | 2015-5-6 17:32 | 只看该作者
路过学习一下  

使用特权

评论回复
19
cady2014| | 2015-5-25 17:06 | 只看该作者
*币的幻想 发表于 2014-11-5 12:42
不错,以前也做成过,顶楼主

你好,最近在做一个单片机小项目,我是个新手,有一些问题想请教一下,请问  通过修改freeModbus源码之后,是不是需要在main的主循环里面写上用户自定义的功能测试代码?以及如何编写?谢谢!

使用特权

评论回复
20
周董| | 2015-5-25 20:24 | 只看该作者
没有用过,进来看看,学习了:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

71

主题

918

帖子

9

粉丝