西门子通信协议S7COMM_第1页
西门子通信协议S7COMM_第2页
西门子通信协议S7COMM_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西门子通信协议S7C0MM首先,这里所说的S7Comm协议只是西门子S7通讯协议簇里的一种,以0 x32开始的报文结构。1、S7Comm协议结构:借助WireShark抓包,可以看到,S7Comm以太网协议基于OSI模型:OSIlayerProtocol7ApplicationLayerS7communication6PresentationLayerS7communication(COTP)5SessionLayerS7communication(TPKT)4TransportLayerISO-on-TCP(RFC1006)3NetworkLayerIP2DataLinkLayerEther

2、net1PhysicalLayerEthernet其中,第14层会由计算机自己完成(底层驱动程序);关于这些神马的定义,大家可以上网查一下;第5层TPKT,应用程数据传输协议,介于TCP和COTP协议之间;这是一个传输服务协议,主要用来在COTP和TCP之间建立桥梁;TPKTisanencapsulationprotocol.ItcarriestheOSIpacketinitsownpacketsdatapayloadandthenpassestheresultingstructuretoTCP,fromthenon,thepacketisprocessedasaTCP/IPpacket.Th

3、eOSIprogramspassingdatatoTPKTareunawarethattheirdatawillbecarriedoverTCP/IPbecauseTPKTemulatestheOSIprotocolTransportServiceAccessPoint(TSAP).第6层COTP,按照维基百科的解释,COTP是OSI7层协议定义的位于TCP之上的协议。COTP以“Packet为基本单位来传输数据,这样接收方会得到与发送方具有相同边界的数据;第7层,S7communication,这一层和用户数据相关,对PLC数据的读取报文在这里完成;刚看到TPKT和COPT也许会很迷惑,其实

4、在具体的报文中,TPKT的作用是包含用户协议(57层)的数据长度(字节数);COTP的作用是定义了数据传输的基本单位(在S7Comm中PDUTYPE:DTdata);S7Comm与标准TCP/IP比较:S7Comm是一个7层协议;TCP/IP是四层协议,用户数据在第四层TCP层完成;计算机与PLC进行通讯,可以连接102端口,这是西门子开放的一个通讯端口;2、第七层S7communication协议S7communication包含三部分:1-Header;2-Parameter;3-Data。根据实现的功能不同,S7communication协议的结构会有所不同;例如,请求数据报文只包含前两

5、部分;Header*01(1byte):protocolId:0 x32;*02a(1byte):ROSCTR:Job(01);*02b(2byte):redundancyidentification(reserved):0 x0000;*2c(2byte):protocoldataunitreference;itsincreasedbyrequestevent;*2d(2byte):parameterlength-thetotallength(bytes)ofparameterpart;*2e(2byte):datalength;读取PLC内部数据,此处为0000;对于其他功能,例如:读取C

6、PU的型号,此处为Data部分的数据长度;Parameter(读取数据)*3(1byte):functioncode:ReadVar(0 x04);writeVar(0 x05);*4(1byte):itemcount;*5(1byte):variablespecification:0 x12;*6(1byte):lengthoffollowingaddressspecification-is712lengthinbyte;*7(1byte):syntaxId:S7ANY(0 x10);*8(1byte):transportsize:BYTE(2);*9(2byte):requesteddat

7、alength;*10(2byte):DBnumber;如果访问的不是DB区域,此处为0000;*11(1byte):Area:0 x84=datablock(DB);0X82=outputs(Q);0 x81=inputs(I);0 x83=Flags(M);0 x1d=S7timers(T);0 x1c=S7counters(C);*12(3byte):address-startaddressfromzerobit*5*12构成了一个基本的数据请求单元Item,对多个不同地址区域的数据请求,就是有多个Item构成的Parameter部分的数据结构可以总结为:Functioncode+Ite

8、mcount+Item1+Item2.ItemnData任何数据。3、S7Comm以太网通讯过程(以1500PLC为例)计算机与1500PLC进行S7Comm以太网通讯,需经过三个过程:握手”当PC与PLC通过Socket建立链接时,会进行三次握手”,这是标准的TCP连接方式;这个过程会有Socket自动完成;通讯请求在握手”之后,并不能马上进行数据交换,还需要通讯请求”过程。这个过程包含两次报文交换:1PC发送COTP报文给PLC;在COTP报文中包含连接请求和“destinationTSAP-”明确CPU的机架号和槽号;PLC反馈COTP报文,包含连接确认”;这样PLC就清楚了需要和那个CPU来进行数据通讯;2PC发送S7Comm报文给P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论