打印
[AVR单片机]

推荐一个免费的提供源码的modbus协议栈

[复制链接]
5589|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
robinsun|  楼主 | 2008-3-7 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Freemodbus是一个奥地利人写的modbus协议栈。我把它的网站下载下来,并且翻译成了中文,可以在附件一中找到,目录为  freemodbusfreemodbuswww.freemodbus.orgindex.htm。 
对于该协议栈的简单介绍见第二个附件。 

在一个项目中,我使用了这个协议栈(针对mega168的移植),感觉非常好用。 
该协议栈具有如下的功能: 
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。 
如果用到了Modbus TCP协议,那么当准备处理一个新数据帧的时候,移植层就必须首先向协议栈发送一个事件标志。然后,协议栈调用一个返回值为接收到的Modbus TCP数据帧的函数,并且开始处理这个数据帧。如果数据有效,则相应的Modbus反馈帧将提供给移植层生成反馈帧。最后,该反馈被发送到客户端。  

网址是 www.freemodbus.org

相关帖子

沙发
munababy| | 2008-3-9 10:08 | 只看该作者

附件在哪呢?LZ

使用特权

评论回复
板凳
robinsun|  楼主 | 2008-3-11 13:28 | 只看该作者

翻译的已经放在网站上

翻译的已经放在网站上了,去www.freemodbus.org,上面有个中文的链接。

使用特权

评论回复
地板
mcusir| | 2008-3-11 14:14 | 只看该作者

详见如下:

译稿和下载文件如下:
相关链接:http://blog.**/bpesun/17709/category.aspx

使用特权

评论回复
5
zlei| | 2008-3-12 09:21 | 只看该作者

lz辛苦了

使用特权

评论回复
6
zook0k| | 2008-3-25 10:59 | 只看该作者

谢谢

谢谢

使用特权

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

本版积分规则

3

主题

6

帖子

0

粉丝