logo资料库

西门子以太网S7comm协议.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
网络天地·Network World 西门子$7-200以太网通讯协议研究 键词】$7-2O0 s7协议以太网通讯TCP/ q磊 在使用西门子S7—200 PLC的中,因为其 【协议不公开,经常导致客户自己开发监控 :同PLC通讯连接出现困难。本文尝试研 i过以太网读取西门子S200 PLC数据块及 !器功能。 由于西门子的S7协议是不公开的协议, l本文的研究方式是通过监听通讯帧,抓取 ;包,然后推测协议的格式、定义及意义 本文的目的,是能让用户自己编写程序, 『己的程序读取西门子s.7 200PLC的I、O、 DB区数据。 由于本人主要使用以太网与PLC通讯, 【重点介绍ISO on TCP的通讯方式。但从 的资料看出,$200的PPI协议、MPI协 ∈核心都是S7协议。相信本文对想通过 或PPI连接的用户也有一定的帮助。 SO on TCP的模型 ISO(International Organization for dardization)国际标准化组织制定了 [Open System Interconnection)7层模型,包 物理层、数据链路层、网络层、传输层、 层、表示层、应用层。 西门子S7—200网络通讯使用的是:TCP/ SOTP+S7协议。如图1。 通讯过程是: (1)TCP三次握手建立通讯TCP连接。 (2)ISO TP连接建立。 (3)S7协议连接请求、应答建立连接。 (4)实现s7协议读取数据。其过程如图2。 FC1006 由于s7.200网络通讯,是使用的ISO ,先简要介绍一下ISO TP。如要更清晰了 文/贾涛 S 2oo PLC 客户 应用程序 S 200 PLC 以太网络 图1:$7-200网络通讯模型 客户 应用程序 图2:$7-200网络通讯过程 解ISO TP内容,请参考RFCIO06及RFC983 文档。 3.1帧格式 ISO TP帧分为两部分,一部分为帧头, )·电子技术与软件工程Electronic Technology&Software Engineering 一部分为TPDU ISOTP的帧分为4中帧分别是: (1)CR:connect request(连接请求); (2)CC:connect confirm(连接应答帧); (3)DR:disconnect request(断开请求帧
表1 Network World●网络天地 header leng~ code credit destination reference source reference ctass l options l a -e加l uscr IByte 1Byte 2Byte 2Byte 1Byte I NByte (4)DT:data(数据帧) (5)ED:expediteddata(扩展数据帧)。 对这5种类型帧,帧头格式一样,TPDU 格式不同。 3.2帧头格式 Vrsn reserved packet length IByte 1Byte 2Byte Vrsn版本:03:Reserved:保留;packet leIIgⅡl从vrsn到数据结尾长度,包括Vrsn。 3.3 TPDU格式 3.3.1 CR(连接请求)、CC(连接应答帧)的 11PDU格式 如表1所示。 (I)header l~ngth:TPDU到帧尾长度, 不包括header length这个字节。 (2)code:TPDU类型,4个b 位。 0xe(1l101为连接请求cR;0xd(1101)为连接 确认CC;oxs(tooo)为断开连接请求DR 0xF(1ll1)为数据帧DT;0xl(0001)为扩展数 据帧ED。 (3)Credit:保留,总是0。 (4)destJilafiotl reference:目的reference, 在$200通讯中总是0。 (5)source reference:目的reference, 在$200的通讯中,为连续次数(在RFC983 中定义该部分为0)。 (6)class:4bits发送端总是0,接受端 忽略。 表2 header length code credit TPDU.NR and E0T user data XByte lByte 1Byte (7)options: 端忽略。 4b 发送端总是0,接受 在s7协议层,客户端读取s7—200数据 (8)variable data:该部分可传输多个参 数,每个参数部分为:参数码(1Byte)+参 数长度(1Byte)+参数值(NByte)。 在S7.200以太网通讯中,variabledata共 有三组参数。参数l(C1)为PLC端的连接 通道号、PLC机架号、PLC槽号;参数2(c2) 为远端连接通道号、机架号、槽 参数3(C3) 为0x0A。 3I3。2ED(扩充)的TPDU格式 如表2所示。 header length部分、code部分、credit部分, 内容同表2。 PDU-NRandEOT:0xS0(1000 0000)表 示该帧包括帧尾,即该帧独立,没有后续数据. 其他数据忽略。 4 s7协议 西门子的S7通讯协议,是一组复杂的 多功能协议,可下载程序,上次程序,操作 PLC,读取数据等。本篇只针对s7—200数据 读取功能部分进行解读。由于S7协议为没有 公开资料,所以解读可能与实际存在差异。 4.1 S7协议连接 表3 前,需要先建立连接 以下是客户端连接请求 及PLC的连接应答帧。 (1)连接请求帧为:32 Ol 0O O0 CC cl O0 08 0OOOfo OOO0 01 OO01 O3 c0 (2)连接应答帧为:32 O3 O0 00 cc c1 00 O8 oooooooof0ooooOl ooOl 0o固 该部分尚未知确切的含义 4.2 s7读命令 4.2.1命令 如表3所示。 标示符[o1:0x32为帧开始标示符。 请求应答标识【1】:OxO1为发送命令帧; 0x03为应答帧。 保留【2~3】:保留或未知,填充OxO0。 事务处理标识【4~5】:请求、应答事务 标识,应答帧直接复制返回该部分。 命令长度【 7】:填充从命令符开始, 到帧结束的字节长度,包括命令本身的1个字 节。 保留【8~9l:保留,填充OxO0~ 命令符【lol:命令符,0x04为读命令, Ox05为写命令。 读取数据段数【n】:该部分为”读取数 标示 请求 保留 事务处理 长度 保留 命令 读取 读取数据段命令域 数据 子段标 子段 数据 数据块编 寄存器 符 应答 标识 符 未知 读取字节 偏移地址 段数 示头 长度 类型 号 类型 序号(byte) 0 l 2 3 4 5 6 7 8 9 10 1l 12 13 14 l5 16 17 18 19 20 21 22 23 10byte 32 O1 O0 O0 O0 O1 O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 Ol O0 O0 8l O0 O0 O0 Q1 byte 32 O1 O0 O0 O0 O1 O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 O1 O0 O0 82 O0 O0 08 MObyte 32 Ol O0 O0 O0 O1 O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 O1 O0 O0 83 O0 O0 O0 M2 short 32 Ol O0 O0 O0 O1 O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 02 O0 O0 83 O0 O0 10 MOfloat 32 Ol O0 O0 O0 0l O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 04 O0 O0 83 O0 O0 O0 db7.0byte 32 Ol O0 O0 O0 Ol O0 Oe O0 O0 04 O1 12 Oa 10 02 O0 01 O0 07 84 O0 O0 O0 Electr0nic rechnology&Software Engineering电子技术与软件工程·3 1
分享到:
收藏