MODBUS TCP ip协议
【网络架构】
以太网帧格式
历史上以太网帧格式有五种:
1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CS MA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准.
2.Ethernet V2(ARPA):由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。
3.RAW 802.3:这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,这使得Novell的RAW 802.3格式跟正式的I EEE 802.3标准互不兼容.
4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SS AP以及Crontrol字段.
5.802.3/802.2 SNAP:这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNA P也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3B ytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现.
802.3以太网帧格式备注:
前导码(7字节)、帧起始定界符(1字节)、目的MAC地址(6字节)、源MAC 地址(6字节)、类型/长度(2字节)、数据(46~1500字节)、帧校验序列(4字节)[MAC地址可以用2-6字节来表示,原则上是这样,实际都是6字节]
以太网帧格式总结
MAC地址厂商的查询的网址:
全部厂商列表:
[url]/regauth/oui/oui.txt[/url]
网页查询地址:
[url]/regauth/oui/index.shtml[/url]
在Search the public OUI listing . . .输入网卡MAC地址前三位即可,如00-0D-65
==>Start:
目前,有四种不同格式的以太网帧在使用,它们分别是:
●Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA。
●Ethernet 802.3 raw:Novell在1983年公布的专用以太网标准帧格式。Cisco名称为:Novell-Ether。
●Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太网帧格式。Cisco名称为:SAP。
●Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太网帧格式。Cisco名称为:SNAP。
在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图3所示。其中,前7个字节称为前同步码(Preamble),容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的
准备。
图一:
说明:所有例中Send & Receive的数据都是通过ModbusTCP.exe软件发送与接收。功能码01
功能码01用于读取线圈的状态。
例:Modbus TCP通讯模式下,读取站号为2的从站Y0~Y5的状态。
Master→Slave的数据『0000 0000 0006 02 01 0500 0006』
Slave→Master的数据『0000 0000 0004 06 01 01 35』
功能码02
功能码02用于读取输入装置的状态。
例:Modbus TCP通讯模式下,读取站号为2的从站X2~X34的状态。
Master→Slave的数据『0000 0000 0006 02 02 0400 001B』
Slave→Master的数据『0000 0000 0007 02 02 04 CD65 7D04』
功能码 03
功能码03用于读取保持寄存器(字装置)容。 PLC D0的MODBUS 位址 H1000
例:Modbus TCP 通讯模式下,读取站号为2的从站地址
H ’0000~H ’0005的容。
Master →Slave 的数据『0000 0000 0006 02 03 0000 0006』
Slave →Master 的数据『0000 00 00 000F 02 03 0C 0031 0006 0808 0002 0300 0000』
功能码05
功能码05用于对位装置进行写单笔操作。
例1:Modbus TCP通讯模式下,设置站号为2的从站Y2=ON。Master→Slave的数据『0000 0000 0006 02 05 0502 FF00』
Slave→Master的数据『0000 0000 0006 02 05 0502 FF00』
例2:Modbus TCP通讯模式下,设置站号为2的从站Y2=OFF。Master→Slave的数据『0000 0000 0006 02 05 0502 0000』