当前位置:文档之家› 西门子通信协议S7COMM

西门子通信协议S7COMM

西门子通信协议S7COMM

首先,这里所说的S7Comm 协议只是西门子S7通讯协议簇里的一种,以0x32开始的报文结构。

1、S7Comm协议结构:

借助WireShark抓包,可以看到,S7Comm 以太网协议基于OSI模型:

OSI layer Protocol

7 Application Layer S7 communication

6 Presentation Layer S

7 communication(COTP)

5 Session Layer S7 communication(TPKT)

4 Transport Layer ISO-on-TCP (RFC 1006)

3 Network Layer IP

2 Data Link Layer Ethernet

1 Physical Layer Ethernet

其中,第1~4层会由计算机自己完成(底层驱动程序);关于这些神马的定义,大家可以上网查一下;

第5层TPKT,应用程数据传输协议,介于TCP和COTP协议之间;这是一个传输服务协议,主要用来在COTP 和TCP之间建立桥梁;

"TPKT is an"encapsulation" protocol. It carries the OSI packet in its ownpacket's data payload and then passes the resulting structure to TCP, from thenon, the packet is processed as a TCP/IP packet. The OSI programs passing datato TPKT are unaware that their data will be carried over TCP/IP because TPKTemulates the OSI protocol Transport Service Access Point (TSAP)."

第6层COTP,按照维基百科的解释,COTP 是OSI 7层协议定义的位于TCP之上的协议。COTP 以“Packet”为基本单位来传输数据,这样接收方会得到与发送方具有相同边界的数据;

第7层,S7 communication,这一层和用户数据相关,对PLC数据的读取报文在这里完成;

刚看到TPKT和COPT也许会很迷惑,其实在具体的报文中,TPKT的作用是包含用户协议(5~7层)的数据长度(字节数);COTP的作用是定义了数据传输的基本单位(在S7Comm中PDU TYPE:DT data);

S7Comm与标准TCP/IP比较:S7Comm是一个7层协议;TCP/IP是四层协议,用户数据在第四层TCP层完成;

计算机与PLC进行通讯,可以连接102端口,这是西门子开放的一个通讯端口;

2、第七层S7 communication协议

S7 communication包含三部分:1-Header;2-Parameter;3 - Data。

根据实现的功能不同,S7 communication协议的结构会有所不同;例如,请求数据报文只包含前两部分;

<1>Header

*01(1 byte): protocol Id: 0x32;

*02a(1 byte): ROSCTR: Job (01);

*02b(2 byte): redundancy identification (reserved): 0x0000;

*2c(2 byte): protocol data unit reference; it’s increased by request event;

*2d(2 byte): parameter length - the total length (bytes) of parameter part;

*2e(2 byte): data length; 读取PLC内部数据,此处为00 00;对于其他功能,例如:读取CPU的型号,此处为Data部分的数据长度;

<2>Parameter(读取数据)

*3(1 byte): function code: Read Var (0x04);writeVar (0x05);

*4(1 byte): item count;

*5(1 byte): variable specification: 0x12;

*6(1 byte): length of following address specification – is 7~12length in byte;

*7(1 byte): syntax Id: S7ANY (0x10);

*8(1 byte):transport size: BYTE(2);

*9(2 byte): requested data length;

*10(2 byte): DB number; 如果访问的不是DB区域,此处为00 00;

*11(1 byte): Area: 0x84= data block(DB); 0X82= outputs(Q); 0x81=inputs(I); 0x83= Flags(M); 0x1d= S7 timers(T); 0x1c= S7counters(C);

*12(3 byte):address- start address from zero bit

*5~*12构成了一个基本的数据请求单元[Item],对多个不同地址区域的数据请求,就是有多个[Item]构成的。

Parameter部分的数据结构可以总结为:

[Function code ]+ [Item count] + Item[1] + Item[2] . . . Item[n]

<3>Data

这一部分与功能有关,例如:读取CPU型号、向CPU存储区写数据;在请求数据报文中此部分不包含任何数据。

3、S7Comm以太网通讯过程(以1500PLC为例)

计算机与1500PLC进行S7Comm以太网通讯,需经过三个过程:

<1>“握手”

当PC与PLC通过Socket建立链接时,会进行“三次握手”,这是标准的TCP连接方式;这个过程会有Socket自动完成;

<2> 通讯请求

在“握手”之后,并不能马上进行数据交换,还需要"通讯请求"过程。这个过程包含两次报文交换:

1> PC 发送COTP报文给PLC;在COTP报文中包含“连接请求”和“destination TSAP” - 明确CPU 的机架号和槽号;

PLC反馈COTP报文,包含“连接确认”;

这样PLC就清楚了需要和那个CPU来进行数据通讯;

2> PC 发送S7Comm报文给PLC;在S7 communicaton报文中包含“通讯请求”;

PLC反馈S7Comm报文。

<3> 交换数据

数据读写就在这个过程内完成。我们可以组织报文来实现我们需要的功能。这个过程内的报文是

S7Comm格式;

具体实现时,需要对S7Comm中的第5、6、7层进行编程。

*需要注意的是,如果不进行“第2步-通讯请求”而直接发送交换数据报文,则PLC会将连接断开。

超声波热量表CJ128通讯协议 第一章通讯协议 1、通讯协议: z M_BUS通讯采用欧洲EN13757 M-BUS总线标准; z协议采用建设部CJ/T 188-2004《户用计量仪表数据传输技术条件》标准; 2、按抄表方式分为以下三种形式 2.1红外抄表功能 红外抄表-采用红外接收发送管,进行近距离通讯 介绍: z USB红外读表器-自制 z需要安装驱动 z USB红外读表器上有发射管(白),接收管(黑) z热量表上有接收管(黑),发射管(白) z两者发射对应接收在2厘米距离内抄表 z采用专用软件 2.2 485抄表功能 RS485抄表-利用RS485通讯硬件进行的4线制较远距离的串行通讯; 介绍: z232转485接口-可以买到 z总线4根电线-A、B、地、电源7-12V z热量表上有4根电线-A、B、地、电源7-12V z两者对应接好(分极性,接错可能烧毁) z在800米以内通讯 z最多64个终端 z采用专用软件 2.3 M_BUS抄表功能 M-BUS:Meter(仪表),BUS(总线) 是一种欧洲的2线制总线标准,是专门为消耗测量仪器和记数器传送信息而设计的数据总线标准,一种通讯线路,专门用于远程抄表的高可靠性、高速的远程抄表系统总线。 介绍: z M_BUS主机 z总线2根电线-A、B z热量表上有2根电线-A、B z两者对应接好(不分极性) z在4000米以内通讯 z最多200个终端 z采用专用抄表软件 第二章 热表上传数据格式 一、串口设置 波特率:2400bps 校验方式:偶校验 数据位:8位停止位:1位 数据发送方式:以16进制发送 二、热量表LCD显示表号 68 20 AA AA AA AA AA AA AA 1A 03 9A 4F 00 34 16 发送指令后表的液晶屏显示的号码为表号,一般和条形码号码一致,表号加上固定码001111就是表的地址。 在“瞬时”界面按住按钮8秒进入“A2”测试界面。点击按钮(在“A2”测试界面的“瞬时”后面一个界面,显示的8位数字就是表号)。 三、修改热量表表号 68 20 11 11 11 11 00 11 11 15 0A A0 18 AA 12 34 56 78 00 11 11 A5 16 修改前表号表号固定码修改后的表号表号固定码校验和 注:校验和(CS):在16进制下,从第一个字节累加至校验和字节前一位,然后取累加和低字节为校验和。 举例:在16进制下,68(H)+20(H)+11(H)+11(H)+11(H)+11(H)+00(H)+11(H)+11(H)+15(H)+0A(H)+A0(H)+18(H)+AA(H)+12(H)

关于西门子PLC的PPI通信协议的研究 摘要:本文结合西门子PLC的PPI通信协议的相关理论,主要研究了PPI协议的 通信过程、通信协议模型,并对PLC网络通信模式的构建进行了实例分析。 关键词:西门子PLC;PPI通信协议;通信程序 前言 PPI通信协议是一种特殊的通信协议,其协议本身是不公开的,只有西门子 S7-200的设备支持它。但掌握它也很重要,有时s7-200系列的设备之间只能通过PPI协议通信,例如上位机STEP7-Micro/WIN与S7-200PLC之间的基本通信;有 时只要通过一根电缆就可以实现S7-200PLC之间的简单通信,非常适用。但由于PPI通信协议不是公开的协议,因此一般现场设备是不支持的,限制了其作为标 准现场总线的应用,由此还需对协议内容、功能实现进行研究和分析。 1西门子PLC的PPI通信协议概述 1.1通信过程 在PPI网上,计算机与PLC通信,是采用主从方式,通信总是由计算机发起,PLC予以响应。具体过程如下: 1)计算机按通信任务,用一定格式,向PLC发送通信命令。 2)PLC收到命令后,进行命令校验,如校验后正确无误,则向计算机返回数 据E5H或F9H,作出初步应答。 3)计算机收到初步应答后,再向PLC发送SD(开始定界字符,为10H)、 DA(目标地址,即PLC地址02H)、SA(源地址,即计算机地址00H)、FC(功 能码,取5CH)、FCS(SA、DA、FC和的256余数,为5EH)、ED(结束分界符)确认命令。 如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E及16,6个字节的十六进制数据,以确认所发命令。 4)PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应 数据。 需要注意的是:如为读命令,情况将如上所述。但如为写或控制命令,PLC 收到后,经校验,如无误,一方面向计算机发送数据E5H,作出初步应答;另一 方面不需计算机确认,也将执行所发命令。但当收到计算机确认信息命令后,会 返回有关执行情况的信息代码[1]。 1.2 PPI协议模型 PPI通信协议的模型以OSI模型为基础,将其中的物理层、数据链路层和应用 层构成现场总线通信的三层模型,如表1所示。 其中PPI的应用层是通信模型的最高层,负责进行应用数据的读写操作。应用层是在数 据链路层之上的,接收数据链路层上传的数据,用来更新本站点的相关数据。当应用层需要 发送数据时,它只要将发送数据的目的站点、数据类型和数据本身等信息下载给数据链路层,由数据链路层去实现数据的发送。 PPI的数据链路层是位于通信模型的第2层,它介于物理层与应用层之间。一方面,它要 执行应用层的数据发送任务,生成数据和控制帧,并将这些帧下载给物理层,通过物理层实 现帧的发送;另一方面,数据链路层还要接收物理层的帧,根据帧进行校验等操作,若是数 据帧,则将其中的数据从帧中读出,上传给应用层。 一次数据写出操作的步骤包括:首先由本站(主站)向从站发出写入请求,从站作出正确接

超声波热量表通信协议 编号:RD-H10-00201 版本:01 一、通信设置 波特率:1200bps。 数据格式:1个起始位、8个数据位、1个校验位、1个停止位。 校验:偶校验。 二、帧格式 唤醒符:0~4个FE 表地址:低位在前,高位在后;全AA为广播地址。 数据长度:从数据标识开始到校验码之前的字节数(数据不超过44字节)。 校验码:从起始符开始到校验码之前所有数据十六进制累加和模100h 三、命令帧示例 ******************************************************************************* 1、读表:68 20 b6 b5 b4 b3 b2 b1 b0 01 03 90 1f 00 cs 16 应答:

度出水温度使用时间秒分时日月年表状态 ******************************************************************************* 例: 命令:6820267215111020000103901F002916 应答:FE FE FE FE 68 20 26 72 15 11 10 20 00 81 2E 90 1F 00 00 00 00 00 05 21 03 00 00 05 49 16 76 09 91 00 00 00 00 35 93 24 00 00 2C 48 16 B7 63 15 24 03 00 00 07 30 15 27 12 10 2000 00 F2 16 冷量:00000000 热量:00000321.1649 水量:00002493.910976 流速:0000.0000 进口温度:16.48 出口温度:15.63 使用时间:000003 日期:2010-12-27 15:30:07 状态:0000(BIT1表示欠压,BIT2标识日期出错,BIT9表示测量超时,BIT11温度传感器断路,BIT12温度传感器短路,其它位保留)。 其它位保留。 2、读地址:厂商代码是00H、20H 6820AAAAAAAAAAAAAA0103901F00E116

MODBUS_RTU 通讯协议 1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。 2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数 3、仪表通讯帧格式: 读寄存器命令格式: 1 2 3 4 5 6 7~8 DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 注1:寄存器的起始地址从40000开始 应答: 1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC DE: 设备地址 (1~200)单字节 CRC: 校验字节 采用CRC-16循环冗余错误校验 注2:寄存器数据为双字节,高位在前。 举例说明:(以LCD热量表为例) 1、MODBUS_RTU 通讯协议(十进制格式)以实际通讯数据内容为准 发送:1, 3, 156, 64, 0, 16, 107, 130, 回收:1, 3, 32, 10, 212, 128, 0, 10, 212, 128, 0, 136, 249, 240, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 221, 仪表动态数据格式(MODBUS_RTU协议) 编号参数名称数据格式地址备注 1 第一路采样四字节浮点数 0000 2 第二路采样四字节浮点数 0002 3 第三路采样四字节浮点数 0004 4 瞬时值四字节浮点数 0006 5 瞬热值四字节浮点数 0008 因通讯是以秒为单位,故: 仪表实际值(单位:小时)=通讯采集值×3600 6 累计流量八字节浮点数 000A 7 累计热量八字节浮点数 000E 通讯将八字节分为前四字节和后四字节,故:仪表实际值=前四字节×100+后四字节 8 停电次数双字节定点数 0012 9 停电时间四字节浮点数 0013 10 报警状态双字节定点数 0015

S7-200 PPI通信协议 PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。通信开始由计算机发起,PLC予以响应。 1)、计算机按通信任务,用一定格式,向PLC发送通信命令。 2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。 3)、计算机收到初步应答后,再向PLC发送SD DA SA FC FCS ED确认命令。 这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。 4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。 SD LE LER SD DA SA FC DASP SSAP DU FCS ED SD:(Start Delimiter)开始定界符,占1字节,为68H LE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度; LER:(Repeated Length)重复数据长度,同LE SD: (Start Delimiter)开始定界符(68H) DA:(Destination Address)目标地址,占1字节,指PLC在PPI上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址; SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00; FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据 DSAP:(Destination Service Access Point)目的服务存取点,占多个字节 SSAP:(Source Service Access Point)源服务存取点,占多个字节 DU:(Data Unit)数据单元,占多个字节

光电直读仪表CJ-T188通讯规约 2016年2月

目录 第1章概述 (3) 第2章表计地址及数据编码格式 (4) 第3章数据传输协议 (6) 3.1读表计数据 (6) 3.2读表计地址 (7) 3.3设置表计地址 (9) 3.4写阀门控制 (11) 附录1测试报文 (14) 附录2M-bus接口 (15)

第1章概述 本规范是抄表系统下行接口的通讯协议(除少部分自定义部分外,均参照CJ/T 188-2004中华人民共和国城镇建设行业标准)。协议内容分为两层:控制帧、文件传输协议。网络拓扑图如下: 本协议为主-从模式的半双工通讯方式。集中器为主叫方,水、燃气等表计均为被叫方。每个水、燃气表计均有各自的地址编码。通讯链路的建立与解除均由主叫方来完成。 字节格式符合CJ/T188-2004标准字节格式,即每字节含8位二进制码,传输时加上 1 数据服务器WEB 方式数据管理系统 前端管理机 内部局域网 Internet 或内部局 域网 集团公司服务器 现场集中器 集团公司内网或Internet 收费票据打印 工作站 本通讯协议适用范围

位起始位(0)、一个偶校验位、一个停止位(1),共11位。 通讯波特率为2400bps。校验码(CS)符合CJ/T188-2004,即从起始符(0x68)开始到校验码之前的所有字节的和对256取模。 第2章表计数据编码格式说明 以下数据均为16进制表示,表计地址广播码为AA,主叫方在发送命令帧之前先发送3字节0xFE;在主叫方发出命令帧到表计应答时间<1秒,其它符合CJ/T188-2004。 2.1表类型T代码说明 冷水表为:10 热水表为:11 直饮水表为:12 热量表为:20 燃气表为:30 电表为:40 2.2表计地址ADDR编码格式(采用BCD码) A0:生产流水号最低字节; A1:生产流水号次高字节; A2:生产流水号最高字节; A3:表计生产月份; A4:表计生产年份; A5:生产厂商代码低字节; A6:生产厂商代码高字节; (以上的表计地址编码用户可自行定义,发送时低字节在前高字节在后) 2.3控制码CTR代码说明(表计回复CTR|+0x80) 主站(主叫方)发送从站(表计)回复 读表计数据01H81H 读表计地址03H83H 设置表计地址15H95H 控制阀门04H84H

Siemens PPI协议分析 大家好:我是山东临沂的郝金红,由于前段时间的疯狂的研究西门子PPI协议解密之故,所以无心插柳的研究出了较实用的西门子S7-200 PPI协议,今天奉献大家。我们经常要用于上位机、现场设备与S7-200CPU之间的通讯,但是西门子公司没有公布PPI协议的格式,用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。大家要知道国内的组态王、紫金桥、力控等等组态公司是花了多少钱才得到的PPI的深层协议吗?其实西门子工控产品的超高价垄断掠夺行为已经引起了我们国家及业内人士的抵制和抗议,他们的什么软件都需要授权且对于系统的霸道性是有目共睹的。 这样给用户自主开发就带来了一定的困难,特别是想用VB、VC等语言自行开发,根本没办法接入PLC,要么你大把掏钱给他们。洋为中用,最近在国外网站得到一个串口监视软件,带协议分析的相当不错,你吧!我就是通过此软件的数据监视、分析方法,找出了PPI协议的关键报文格式所在。 其实西门子S7-200 PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC 中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。这也是我们之所以要研究、找出PPI协议的源动力! 下面我们就要说说分析的方法了! 西门子的STEP 7 MicroWIN 是用于S7-200系列PLC的开发工具,它使用PC机上的COM口通过一条PC/PPI编程电缆连到PLC的编程口上。这说明,PC实际上是可以通过串口同S7-200 CPU通讯。只是我们不知道通讯协议而已。通过截获PC机串口上的收发数据,对照Step 7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过串口向PLC发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。

表计通信协议 一、字符格式 1个停止位,8位数据,无校验,1位停止位 二、桢格式 2、 0X10-0X19水表,分别为: 0X10→冷水水表 0X11→生活热水水表 0X12→直饮水水表 0X13→中水水表 0X20-0X29热量表,分别为: 0X20→热量表,计热类 0X21→热量表,计冷类 0X30-0X39燃气表,分别为: 0X30→燃气表 0X40-0X49其它仪表,分别为: 0X40电度表。 3、地址域 4字节,十六进制码格式,00000000-FFFFFFFF共4G个地址,其中FFFFFFFF为广播设置地址,用于设置表计地址或者读表计地址,其他地址用于表计地址编码。 4、命令码 D7=方向控制,D7=0表示主站发出的数据,D7=1表示表计发出的数据。 D6-D0构成命令码 三、通信交互过程 1、问答式规约 任何一次通信必须有主站发起,表计应答结束。 2、表计的正确应答,ACK 当表计接收到主站发出的设置类、控制类命令并且能够正确执行时回复ACK

3、表计的错误应答,ERR 当表计接收到正确的数据桢但是执行错误时发错误应答桢ERR 1=数据保存出错,当接收到设置类命令时,表计把设置数据写入非易失存储器,并且读出数据进行校验,如果写非易失存储器失败,则返回错误代码=1的ERR桢 2=执行开阀门失败,如果表计收到开阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=2的ERR桢 3=执行关阀门失败,如果表计收到关阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=3的ERR桢 4、超时处理 如果表计收到错误的数据桢,则不作任何处理和应答,主站通过超时来判断数据通信失败。 四、命令桢 1、读数据命令READ,CMD = 0X01

竭诚为您提供优质文档/双击可除MPI协议和PPI协议有什么不同 篇一:通讯不同点 请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那 我可以说:“它走can协议吗?”而常见的串口通信modbus,mpi, 据校验和。 在波特率一致、各站地址不同的情况下,ppi,mpi和pRoFibus可以同时在一个网络上运行,并且互不干扰。 这就是说如果一个网络上有s7-300、s7-200,s7-300 之间可以通过mpi或pRoFibus通信,而在同时在同一个网 络上的tp170如果在一个通信网络上存在其他主站(如td200,或者上位计算机等),同时需要进行micro/win的编程、监控,这就是多主站网络编程。 使用西门子的下列设备可以实现micro/win的多主站编程: micro触摸屏可以与一个s7-200cpu通信。 使用智能多主站电缆和micro/winV3.2sp4以上版本。

新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。 如果使用cp卡,如cp5511/cp5512(笔记本电脑pcmcia 卡)、cp5611(台式机pci卡),能够支持多主站编程通信。 如果通过cp卡编程时,选择了mpi协议,注意mpi主站不能访问作为ppi主站的cpu。如果有第三方的产品要连接到多主站网络上,用户需要咨询第三方产品提供商以了解是否支持西门子的s7-200多主站网络。要进行多主站编程,不但编程计算机要支持,网上的其他设备也要有多主站通信能力。 早期的多主站连接依赖于计算机硬件和windows操作系统。随着计算机技术的发展,多数情况下已经不能做到多主站编程通信。建议用户使用西门子的多主站编程电缆或者cp 卡配合micro/win实现多主站编程通信。 4.mpi(multipointinterface)是simatics7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量plc之间近距离通信。 通过pRoFibus电缆和接头,将控制器s7-300或s7-400的cpu自带的mpi编程口及s7-200cpu自带的ppi通信口相互连接,以及与上位机网卡的编程口(mpi/dp口)通过pRoFibus或mpi电缆连接即可实现。网络中当然也可以不包括pc机而只包括plc。

捷先数码光电直读仪表 CJ-T188通讯规约V1.1 深圳捷先数码科技有限公司 2013年10月 U n R e g i s t e r e d

目 录 第1章 概述………………………………………………………………………… 3 第2章 表计地址及数据编码格式………………………………………………… 4 第3章 数据传输协议……………………………………………………………… 5 3.1 读表计数据 (5) 3.2 读表计地址........................................................................... 6 3.3 设置表计地址 (8) 3.4 写阀门控制 (10) 附录 测试报文 (13) U n R e g i s t e r e d

第1章 概述 本规范是捷先数码专线抄表系统下行接口的通讯协议(除少部分自定义部分外,均参照CJ/T 188-2004 中华人民共和国城镇建设行业标准)。协议内容分为两层:控制帧、文件传输协议。网络拓扑图如下: 本协议为主-从模式的半双工通讯方式。集中器为主叫方,水、燃气等表计均为被叫方。 每个水、燃气表计均有各自的地址编码。通讯链路的建立与解除均由主叫方来完成。 现场集中器 e d

字节格式符合CJ/T188-2004标准字节格式,即每字节含8位二进制码,传输时加上1位起始位(0)、一个偶校验位、一个停止位(1),共11位。 通讯波特率为2400bps。校验码(CS)符合CJ/T188-2004,即从起始符(0x68)开始到校验码之前的所有字节的和对256取模。 第2章 表计数据编码格式说明 以下数据均为16进制表示,表计地址广播码为AA,主叫方在发送命令帧之前先发送3字节0xFE;在主叫方发出命令帧到表计应答时间<1秒,其它符合CJ/T188-2004。 2.1表类型T 代码说明 冷水表为: 10 热水表为: 11 直饮水表为:12 热量表为: 20 燃气表为: 30 电表为: 40 2.2表计地址ADDR 编码格式(采用BCD 码) A0:生产流水号最低字节; A1:生产流水号次高字节; A2:生产流水号最高字节; A3:表计生产月份; A4:表计生产年份; A5:生产厂商代码低字节; A6:生产厂商代码高字节; (以上的表计地址编码用户可自行定义,发送时低字节在前高字节在后) 2.3制码CTR 代码说明(表计回复 CTR|0x80) 主叫方读表计数据:01 表计回复:81 主叫方读表计地址:03 表计回复:83 主叫方设置表计地址: 15 表计回复:95 主叫方控制阀门:2A 表计回复:AA U n R e g i s t e r e d

?西门子PPI通讯协议!看看吧! S7-200?PLC之PPI协议? ????通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB 编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源 S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point?to?Point)协议,可以用来传输、调试PLC程序。在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。SIEMENS?S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI 协议来读写PLC,就可以省略编写PLC的通讯代码。如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。 软件设计 ?系统中测控任务由SIEMENS?S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。 ?PPI协议 西门子的PPI(Point?to?Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。这样收发两次数据,完成一次数据的读写[5]。 其通讯数据报文格式大致有以下几类: 1、读写申请的数据格式如下: ? SD?LE?LER?SD?DA?SA?FC?DASP?SSAP?DU?FCS?ED?? SD:(Start?Delimiter)开始定界符(68H) LE:(Length)报文数据长度 LER:(Repeated?Length)重复数据长度 SD:?(Start?Delimiter)开始定界符(68H) SA:(Source?Address)源地址,指该地址的指针,为地址值乘以8 DA:(Destination?Address)目标地址,指该地址的指针,为地址值乘以8 FC:(Function?Code)功能码 DSAP:(Destination?Service?Access?Point)目的服务存取点 SSAP:(Source?Service?Access?Point)源服务存取点 DU:(Data?Unit)数据单元 FCS:(Frame?Check?Sequence)校验码 ED:(End?Delimiter)结束分界符(16H) 报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。 在读写PLC的变量数据中,读数据的功能码为?6CH,写数据的功能码为?7CH。

本公司热能表通讯协议符合CJ-T188-2004户用计量仪表数据传输技术条件 传输时波特率为2400bps、偶校验、数据位为8位、停止位为1位。同一字节先传低位再传高位,同一帧先传低字节再传高字节。 举例如下(十六进制显示): 表号为17312151的热能表读表指令: FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 01 03 1F 90 12 29 16 68 为帧起始符 68H 20 为仪表类型 T 51 为地址A0 21 为地址A1 31 为地址A2 17 为地址A3(A0、A1、A2、A3为要读取的热量表的表号,从低位到高位) 00 为地址A4 11 为地址A5 11 为地址A6 01 为控制码 C 03 为数据长度域 L 1F 为数据标识DI0 90 为数据标识DI1 12 为序列号SER 29 为校验码CS(68 20 51 21 31 17 00 11 11 01 03 1F 90 12进行二进制算术累加,不 计超过FFH的溢出值) 16 为结束符 16H 其中除A0、A1、A2、A3、CS根据不同的表号变化,其它固定不变。 热能表正常应答返回数据为: FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 81 2E 1F 90 12 00 00 00 00 05 00 00 00 00 05 00 00 00 00 14 00 00 00 00 35 19 00 00 00 2C 76 30 00 68 30 00 73 02 00 32 41 11 12 09 07 20 04 00 E9 16 68 为帧起始符 68H 20 为仪表类型 T 51 为地址A0 21 为地址A1 31 为地址A2 17 为地址A3(A0、A1、A2、A3为读到的热量表的表号,从低位到高位) 00 为地址A4 11 为地址A5 11 为地址A6 81 为控制码 C 2E 为数据长度域 L(1F 90 12 00 00 00 00 05 00 00 00 00 05 00 00 00 00 14 00 00

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 SiemensPPI协议分析 甲方:___________________ 乙方:___________________ 日期:___________________

大家好:我是山东临沂的郝金红,由丁前段时间的疯狂的研究西门子PPI协议解密之故,所以无心插柳的研究出了较实用的西门子S7-200 PPI协议,今天奉献大家。我们经常要用丁上位机、现场设备与S7-200CP比问的通讯,但是西门子公司没有公布PPI协议的格式,用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。大家要知道国内的组态王、紫金桥、力控等等组态公司是花了多少钱才得到的PPI的深层协议吗?其实西门子工控产品的超高价垄断掠夺行为已经引起了我们国家及业内人士的抵制和抗议,他们的什么软件都 需要授权且对丁系统的霸道性是有目共睹的。 这样给用户自主开发就带来了一定的困难,特别是想用VB VCC?语言自行开发,根本没办法接入PLC要么你大把掏钱给他们。洋为中用,最近在国外网站得到一个申口监视软件,带协议分析的相当不错,你'下裁吧!我就是通过此软件的数据监视、分析方法,找出了PPI协议的关键报文格式所在。 其实西门子S7-200 PLC之间或者PL必P&问通信有很多种方式:自由口, PPI方式,MP方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC 中都要编写数据通信程序。使用PPI协议进行通信时,PLW以不用编程,而且可读写所有数据区,快捷方便。这也是我们之所以要研究、找出PPI协议的源动力! 卜面我们就要说说分析的方法了! 西门子的STEP 7 MicroWIN是用丁S7-200系列PLC勺开发工具,它使用PCL上的COI^通过一条PC/PPI编程电缆连到PLC勺编程口上。这说明,PCS际上是可以通过申口同S7-200 CPIffl讯。只是我们不知道通讯协议而已。通过截获PO申口上的收发数据,对照Step 7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过申口向PLCCc送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。 你首先下载上面那个英文的申口监控软件,英文不好的网友可以使用我们为你汉化的汉化包,替换原文件即可,你必须使用这个软件,因为我先前使用过很多的监控软件,在收发数据很多的情况下都有死机现象,造成数据丢失,容易给

通讯口类型 RS485通讯 波特率数据位停止位校验位2400bps、4800bps、9600bps可选, 默认:2400bps 81无 通用代码注释:XXH:仪表当前通讯号码。数值范围:41H~A5H。YYH:仪表新的通讯号码。数值范围:41H~A5H。 ZZH:数据校验字节。所有数据内容(不包括控制及命令字节)按字节进行累加,不计超出FFH的 数值。 命令格式: 1、读取热量表数据(4A命令): 主机命令:2AH XXH4AH仪表响应:26H XXH4AH LL(BCD码)ZZH 其中:LL(BCD码)的内容为: 位置意义字节数说明1~4保留位4内容忽略 5~8正累计热量4当管径<50mm,缩小10倍为实际数值。单位:kWh 9~12瞬时流量4缩小1000倍为实际数值,单位:m3/h 13~16累计流量4当管径<50mm,缩小1000倍为实际数值,当管径≥ 50mm,缩小10倍为实际数值。单位:m3 17~20供水温度4缩小100倍为实际数值,单位:℃ 21~24回水温度4缩小100倍为实际数值,单位:℃ 25~28瞬时热量4缩小10倍为实际数值,单位:kW 29~32累计运行时间4单位:小时 33诊断信息代码1 2、读取定时记忆数据(49命令): 主机命令:2AH XXH49H仪表响应:26H XXH49H LL(BCD码)ZZH 其中:LL(BCD码)数据同4A命令,只是数据内容为定时记忆的数据,其它参数相同。 3、更改通讯号码: 主机命令:2AH XXH4BH YYH仪表响应:26H XXH4BH YYH 4、设定记忆数据时间: 主机命令:2AH XXH4CH DDhh(2字节BCD码) 仪表响应:26H XXH4CH DDhhmm(3字节BCD码)ZZH 其中:DD表示某天,hh表示小时,mm常数值。 DD取值为某月的一天,表示当月的DD天记录数据。如果取值为0时,表示每天记录数据。 hh表示记录数据时间的小时。 5、广播校时:ss秒;mm分;hh时;DD天;MM月;YY年。 主机命令:2AH AAH4DH ssmmhhDDMMYY(BCD码)仪表不响应。

1、MPI是Multi-Point Interface,适用于PLC 200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,MPI网络的通信速率为网络才支持12Mbit/s的通信速率。MPI网络最多可以连接32个接节点,最大通信距离为50m,但是可以通过中继器来扩展长度。PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。PPI是一种主从协议,主站、从站在一个令牌网。在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。 MPI是主站之间的通信;PPI可以是多台主站与从站之间通信。 2、MPI协议:西门子内部协议,不公开; PROFIBUS-DP协议:标准协议,公开。 3、MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。 常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。 一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。 在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。 3. PPI,MPI和PROFIBUS都是基于OSI(开放系统互联)的七层网络结构模型,符合欧洲标准EN50170所定义的PROFIBUS标准,基于令牌的的网络通信协议。这些协议是非同步的(串行的)基于字符的通信协议,字符格式包括一个起始位、8个数据位、一个偶校验位和一个停止位。其通信帧包括特定的起始和结束字符、源和目的站的地址、帧长度和数据校验和。 在波特率一致、各站地址不同的情况下,PPI,MPI和PROFIBUS可以同时在一个网络上运行,并且互不干扰。 这就是说如果一个网络上有S7-300、S7-200,S7-300之间可以通过MPI或PROFIBUS 通信,而在同时在同一个网络上的TP170 如果在一个通信网络上存在其他主站(如TD 200,或者上位计算机等),同时需要进行Micro/WIN的编程、监控,这就是多主站网络编程。 使用西门子的下列设备可以实现Micro/WIN的多主站编程: micro触摸屏可以与一个S7-200 CPU通信。 使用智能多主站电缆和Micro/WIN V3.2 SP4以上版本。新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。 如果使用CP卡,如CP5511/CP5512(笔记本电脑PCMCIA卡)、CP5611(台式机PCI

总线制直读水表 通讯协议和通讯规约 参照JC/T188改编水表接口协议(V1.0) 第1章概述 本规范是专线集中抄表系统下行接口通讯协议(除少部分自定义部分外,均参照CJ/T 188-2004 中华人民共和国城镇建设行业标准)。协议内容分为两层:控制帧、文件传输协议。网络拓扑图如下:

本协议为主-从模式的半双工通讯方式。采集器为主叫方,水表为被叫方。每个水表均有各自的地址编码。通讯链路的建立与解除均由采集器来完成。 字节格式符合CJ/T188-2004标准字节格式,即每字节含8位二进制码,传输时加上1位起始位(0)、一个偶校验位、一个停止位(1),共11位。 通讯波特率为2400bps 。校验码(CS )符合CJ/T188-2004,即从起始符(0x68)开始到校验码之前的所有字节和的模256。 本通讯协议适用范围

第2章控制帧 由主叫发往被叫的控制帧以SND_为前缀,由被叫发往主叫的控制帧以RSP_为前缀。采集器与表计之间的通讯包含以下几个命令帧,如下: 1、读表计数据:SND_SU 2、读表计地址:SND_UD_RAD 3、设置表计地址:SND_UD_AD 4、读表计状态:SND_UD_CK 第3章表计地址及数据编码格式 1、表计地址编码格式(采用BCD码): A0—生产流水号最低字节; A1—生产流水号次高字节; A2—生产流水号最高字节; A3—表计生产月份; A4—表计生产年份; A5—生产厂商代码低字节; A6—生产厂商代码高字节; 2、表计数据编码格式(采用BCD码): 如表计数据是123456.78,则数据编码如下: D0—0x78; D1—0x56; D2—0x34; D3—0x12; 3、表类型代码说明: 水表为: 10 热水表: 20 燃气表为:30 热量表: 40 (注:热水表、燃气表为、热量表代码预留为以后系统扩展应用)

重庆市伟岸测器制造股份有限公司 冷热量表数据传输协议 本公司冷热量表数据传输协议符合CJ-T188-2004 户用计量仪表数据传输技术条件。 一、通信设置 波特率:2400bps。 数据格式:1 个起始位、8 个数据位、1 个校验位、1 个停止位。 校验:偶校验。 通信硬件接口:RS485,电源供电DC5V。 二、帧格式 表地址:低位在前,高位在后;全AAH 为广播地址。 传输次序:每字节先传送低位,后传送高位。所有多字节数据域均先传送低位字节,后传送高位字节。 数据长度:从数据标识开始到校验码之前的字节数。校验码:从起始符开始到校验码之前所有各字节进行二进制算术累加,不计超过FFH 的溢出值。

重庆市伟岸测器制造股份有限公司 三、读表指令示例 表号为12345678 的冷热量表读表指令: FE FE FE FE 68 20 78 56 34 12 00 29 62 01 03 1F 90 00 DA 16 68 为帧起始符 68H 20 为仪表类型 T 78 为地址A0 56 为地址A1 34 为地址A2 12 为地址A3(A0、A1、A2、A3 为要读取的冷热量表的表号,从低位到高位) 00 为地址A4 29 为地址A5 62 为地址A6 01 为控制码 C 03 为数据长度域 L 1F 为数据标识DI0 90 为数据标识DI1 00 为序列号SER DA 为校验码CS(68 20 78 56 34 12 00 29 62 01 03 1F 90 00 进行二进制算术累加,不计超过FFH 的溢出值) 16 为结束符 16H 其中除A0、A1、A2、A3、CS 根据不同的表号变化,其它固定不变。 冷热量表正常应答返回数据为: FE FE FE FE 68 20 78 56 34 12 00 29 62 81 2E 1F 90 00 78 56 34 12 05 78 56 34 12 05 78 56 34 1214 78 56 34 12 35 78 56 34 122C 67 45 0056 34 0034 02 0051 48 13 08 06 12 20 00 00 11 16 68 为帧起始符 68H 20 为仪表类型 T 78 为地址A0 56 为地址A1 34 为地址A2 12 为地址A3(A0、A1、A2、A3 为读到的冷热量表的表号,从低位到高位) 00 为地址A4 29 为地址A5 62 为地址A6 81 为控制码 C 2E 为数据长度域 L(1F 90 00 78 56 34 12 05 78 56 34 12 05 78 56 34 12 14 78 56 34 12 35 78 56 34 12 2C 67 45 00 56 34 00 34 02 00 51 48 13 08 06 12 20 00 00 共计2E 个字符) 1F 为数据标识DI0 90 为数据标识DI1 00 为序列号SER 78 56 34 12 为当前冷量123456.78,05 为当前冷量单位代号表示kWh 78 56 34 12 为当前热量123456.78,05 为当前热量单位代号表示kWh

德鲁公司热能表数据传输协议 波特率:2400;校验位:偶(EVEN);数据位:8;停止位:1; 通讯格式: 主站发送帧格式: FEH FEH 68H 20H Addr(7bytes)CTL_0 Len DI0DI1 SER CS 16H 前导字节起始符仪表类型地址控制码数据长度数据标识序列号校验码结束符 从站返回帧格式: FEH FEH 68H 20H Addr(7bytes)CTL_0 Len DI0DI1 SER DATA CS 16H 前导字节起始符仪表类型地址控制码数据长度数据标识序列号数据域校验码结束符 前导字节: 在发送帧信息之前,应先发送2 -4 个字节F E H。 地址域:由七个字节组成,每个字节为2 位B C D码格式。地址长度为1 4位十进制数,低地址在前,高 地址在后。 超声波热能表地址的低8位为表上显示的数字,高6位固定为“111100”。 机械式热能表地址的低8位为表上显示的数字,高6位固定为“000000”。 当地址为AAAAAAA AAA AAAAH时,为广播地址。广播地址只能应用于点对点的通讯中。 数据长度:为数据域的字节数,用十六进制表示。读数据时L小于或等于6 4 H,写数据时L小于或等于 32H, L等于零表示无数据域。 数据域:包括数据标识、序列号和数据,其结构随控制码的功能改变。主站发送的序号S E R,在每次 通讯前,按模2 5 6 加1 运算后产生。 校验码:为一个字节,从帧起始符开始到校验码之前的所有各字节进行二进制算术累加,不计超过F F H 的溢出值。 1)读超声波热能表数据指令 命令:FEH FEH 68H 20H Addr(7bytes)01H 03H 1FH 90H 00H CS 16H 前导字节起始符仪表类型地址控制码数据长度数据标识序列号校验码结束符 响应:FEH FEH 68H 25H Addr(7bytes)81H 2EH 1FH 90H 00H 前导字节起始符仪表类型地址控制码数据长度数据标识序列号 DATA(47 bytes)CS 16H 数据域校验码结束符 数据域格式:数据标识D I ,序列号S E R,当前冷量,当前热量,热功率,流量,累积流量,供水温度,回水温度,累积工作时间,实时时间,状态ST 例:读表号为11111111的数据的命令是: FEH FEH FEH FEH 68H 20H 11H 11H 11H 11H 00H 11H 11H 01H 03H 1FH90H 01H A2H 16H 响应数据是: FEH FEH FEH FEH 68H 25H 11H11H11H11H00H11H11H 81H 2EH 1FH90H 01H 00H00H00H00H05H 60H26H03H00H05H 00H00H00H00H17H 00H00H00H00H35H 68H46H00H00H2CH 07H22H00H 00H22H00H 58H88H00H 17H51H12H13H10H10H20H 00H00H 03H 16H 当前冷量:0kwh;当前热量:326.60kwh;热功率:0kw;流速:0m3/h;累计流量:46.68m3;供水温度:22.7;回水温度22。0;累计工作时间:8858小时;当前时间:2010年10月13日12点51分17秒;

相关主题