Profinet。基于RS-485总线的Profibus。但是这些协议都是不开放的,拿不到协议文本。但是Modbus协议不一样,首先协议是不收任何费用的,其实协议是公开的,这就意味着网上会有大把的源码可以让你借鉴。
自从1979年Modican公司发表工业串行链路的事实标准(Modbus协议)以来,
Modbus协议可以使成千上万的自动化设备组建体系庞大的Modbus通讯网络架构。
Modbus网络体系结构 图1.1
最上面的Modbus应用层是面向报文的协议,这就意味着Modbus可以支持多种电气接口,比如RS232/422/485,EthernetII/802.3。
Modbus通信栈 图1.1
串行总线上的Modbus协议概述
图1.1和1.2大致描述了Modbus网络通讯的各个层次,这里主要讲运行在串行总线上的Modbus协议,Mosbus协议由于在串行总线上有两种协议,一个是面向于数据链路层的Modbus串行链路协议,可以在Modbus串行链路协议上定义设备的主从角色和传输模式,Modbus串行链路协议位于图2.1OSI/ISO模型的第二层,另外一个是处于应用层面向报文的Modbus应用协议,Modbus应用协议为为总线或网络上的通讯设备提供客户机/服务器通讯。
Modbus协议与OSI/ISO模型 图2.1
数据链路之串行链路协议概述[1]
Modbus主从协议原理解析:
Modbus串行链路协议位于OSI/ISO模型的通信数据链路层,Modbus串行链路协议本子上是一种主-从协议。
在串行链路总线上,有且只有一个主站,主站下面可以挂多个从站,设备之间的通讯一般是主站发起,从站没有收到来自主站请求时,不会发数据,并且从站之间是不能互相通讯的。
主站向从站发送Modbus请求一般有两种方式:
单播模式
单播模式: 主站寻址单个从站,从站接受并处理请求后,从站向主站返回一个应答。 在这种模式下一个Modbus事务处理包含两个报文:主站请求报文,从站应答报 文, 每个从站都有唯一的地址,
广播模式
广播模式:
主站向所有从站发送请求,对于主站主站发送的广播报文从站是没有应答的,广
播请求必须是写命令,所有设备必须接受写功能的广播,地址0被保留用来识别
广播通信。
==============================================================================================================
Mobus协议报文
Modbus 协议定义了一个与基础通讯层无关的PDU[2],特定总线或者网络上的Modbus协议映射能够在ADU[3]上引入一些附加的字段[4],我没查到这些附加的字段是在OSI/ISO的那一层添加的,既然讲的是面向于报文的应用层,那么我猜想ADU是在应用层被添加的。
Modbus应用数据单元由启动Modbus事务处理的客户机创建。功能码向服务器指示将执行那些操作,Modbus协议建立了客户机请求格式。
功能码(function code)是客户机让伺服器提供服务的的标识,
客户机向服务器发送的报文数据段包含附加信息,服务器使用这些信息执行功能码定义的操作字段。。。。。。。
未完待续。。。
参考
- ^从Modbus 到透明就绪-华榕著 http://modbus.org/
- ^简单协议数据单元
- ^应用数据单元
- ^翻译的好像有问题