收藏 分销(赏)

MODBUSTCP-IP协议.doc

上传人:xrp****65 文档编号:5765926 上传时间:2024-11-19 格式:DOC 页数:10 大小:1.01MB
下载 相关 举报
MODBUSTCP-IP协议.doc_第1页
第1页 / 共10页
MODBUSTCP-IP协议.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述
MODBUS TCP ip协议 【网络架构】 以太网帧格式   历史上以太网帧格式有五种:   1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/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格式跟正式的IEEE 802.3标准互不兼容.   4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段.   5.802.3/802.2 SNAP:这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的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]http://standards.ieee.org/regauth/oui/oui.txt[/url] 网页查询地址: [url]http://standards.ieee.org/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』 数据 说明 00 18 23 10 00 05 目标MAC地址,网卡的硬件地址。00:18:23表示台达 6字节 Ethernet II 00 1A A0 39 7E 4E 源MAC地址,网卡的硬件地址。00:1A:A0表示DELL 6字节 08 00 协议类型:IP协议 2字节 45 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Internet Protocol(IP) 4位首部长度,普通IP数据包字段的值是5 4位版本 00 服务类型(TOS) 00 34 Totol Length(IP数据包的长度) 07 C6 Identification 40 00 Fragment offset 80 Time to Live(一个封包在网络上可以存活的时间) 06 协议类型:TCP 6E E0 CRC校验码 C0 192 Source ID:192.168.1.105 Transmission Control Protocol (TCP) A8 168 01 1 69 105 C0 192 Destination ID:192.168.1.100 A8 168 01 1 64 100 04 4D Source port:pt2-discover(1101) 01 F6 Destination port:asa-ppl-proto(502) 37 05 D6 C0 00 53 F3 CB 50 18 FD D6 window size AA CF 校验码 71CC 00 00 Transaction Idenfifier。 2字节 Modbus/TCP协议 00 00 Protocol Idenfifier。用来确定应用层协议是否为Modbus协议 2字节 00 06 数据长度,从【Slave的通讯地址】开始计算。 2字节 02 Unit Idenfifier ,Slave的通讯地址。 1字节 01 功能码。 1字节 Modbus协议 05 00 欲读取的位装置起始地址。 最大字节数为148 00 06 欲读取的位装置的个数(bits)。 Slave→Master的数据『0000 0000 0004 06 01 01 35』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0004 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 01 功能码。 01 欲读取的位装置的数目(bytes),8bits为1byte。当读取位装置的数目不足1byte时,以1byte计算。 35 数据内容(Y5…Y0的状态)。 功能码 02 功能码02用于读取输入装置的状态。 例:Modbus TCP通讯模式下,读取站号为2的从站X2~X34的状态。 Master→Slave的数据『0000 0000 0006 02 02 0400 001B』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 02 功能码。 0400 欲读取的位装置起始地址。 001B 欲读取的位装置的个数(bits)。 Slave→Master的数据『0000 0000 0007 02 02 04 CD65 7D04』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0007 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 02 功能码。 04 欲读取的位装置的数目(bytes),8bits为1byte。当读取位装置的数目不足1byte时,以1byte计算。 CD65 7D04 数据内容(X34…X2的状态)。 功能码 03 功能码03用于读取保持寄存器(字装置)内容。 PLC D0的MODBUS位址 H1000 例:Modbus TCP通讯模式下,读取站号为2的从站地址H’0000~H’0005的内容。 Master→Slave的数据『0000 0000 0006 02 03 0000 0006』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 03 功能码。 0000 欲读取的字装置起始地址。 0006 欲读取的字装置的个数(words)。 Slave→Master的数据『0000 00 00 000F 02 03 0C 0031 0006 0808 0002 0300 0000』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 000F 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 03 功能码。 0C 欲读取的字装置的数目(bytes),1word为2bytes。 0031 H’0000的数据内容。 0006 H’0001的数据内容。 0808 H’0002的数据内容。 0002 H’0003的数据内容。 0300 H’0004的数据内容。 0000 H’0005的数据内容。 功能码 05 功能码05用于对位装置进行写单笔操作。 例1:Modbus TCP通讯模式下,设置站号为2的从站Y2=ON。 Master→Slave的数据『0000 0000 0006 02 05 0502 FF00』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 05 功能码。 0502 欲写入的地址。 FF00 写入的控制数据为H’FF00。 Slave→Master的数据『0000 0000 0006 02 05 0502 FF00』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 05 功能码。 0502 欲写入的地址。 FF00 写入的控制数据为H’FF00。 例2:Modbus TCP通讯模式下,设置站号为2的从站Y2=OFF。 Master→Slave的数据『0000 0000 0006 02 05 0502 0000』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 00 06 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 05 功能码。 05 02 欲写入的地址。 0000 写入的控制数据为H’0000。 Slave→Master的数据『0000 0000 0006 02 05 0502 0000』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 05 功能码。 0502 欲写入的地址。 0000 写入的控制数据为H’FF00。 功能码 06 功能码06用于对寄存器(字装置)进行写单笔操作。 例1:Modbus TCP通讯模式下,设置站号为2的从站地址H’1601的内容为K4。 Master→Slave的数据『0000 0000 0006 02 06 1601 0004』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 06 功能码。 1601 欲写入的地址。 0004 写入的控制数据为H’0004。 Slave→Master的数据『0000 0000 0006 02 06 1601 0004』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 06 功能码。 1601 欲写入的地址。 0004 写入的控制数据为H’0004。 功能码 15 功能码15用于对位装置进行写多笔操作。 例1:Modbus TCP通讯模式下,设置站号为2的从站Y0~Y17的状态如下表所示。 Master→Slave的数据『0000 0000 0009 02 0F 000A 02 CD01』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0009 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 0F 功能码。 0500 欲写入的位装置的起始地址。 000A 欲写入的位装置个数(bits)。 02 欲写入位装置的数目(bytes),8bits为1byte。当写入位装置的数目不足1byte时,以1byte计算。 CD01 欲写入的数据内容(Y11…Y0的状态)。 Slave→Master的数据『0000 0000 0006 02 0F 0500 000A』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 0F 功能码。 0500 欲写入的位装置的起始地址。 000A 欲写入的位装置个数(bits)。 功能码 16 功能码16用于对字装置进行写多笔操作。 例1:Modbus TCP通讯模式下,设置站号为2的从站地址H’1618=K500(01F4H);H’1619=K1000(03E8H);H’161A=K2000(07D0H)。 Master→Slave的数据『0000 0000 000B 02 10 1618 0003 06 01F4 03E8 07D0』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 000B 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 10 功能码。 1618 欲写入的字装置起始地址。 0003 欲写入的字装置个数(words)。 06 欲写入字装置的数目(bytes),1word为2bytes。 01F4 写入的第一笔控制数据为H’01F4。 03E8 写入的第二笔控制数据为H’03E8。 07D0 写入的第二笔控制数据为H’07D0。 Slave→Master的数据『0000 0000 0006 02 0F 0500 000A』 数据 说明 0000 Transaction Idenfifier。 0000 Protocol Idenfifier。 0006 数据长度,从【Slave的通讯地址】开始计算。 02 Slave的通讯地址。 10 功能码。 1618 欲写入的字装置起始地址。 0003 欲写入的字装置个数(words)。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 网络/通信

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服