S7200_PPI通信协议

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)数据单元,占多个字节

FCS:(Frame Check Sequence)占1字节,从DA到DU之间的校验和的256余数;

ED:(End Delimiter)结束分界符,占1字节,为16H

命令类型

1)读命令读命令长度都是33个字节。字节0~21,都是相同的,为:“68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10”。而从字节22开始,将根据读取数据的软器件类型及地址的不同而不同。

字节22,表示读取数据的单位。为01时,1bit;为02时,1字节;为04时,1字;为06时,双字。

字节23,恒0。

字节24,表示数据个数。01,表示一次读一个数据。如为读字节,最多可读208个字节,即可设为DEH。

字节25,恒0.

字节26,表示软器件类型。为01时,V存储器;为00时,其它。

字节27,也表示软器件类型。为04时,S;为05时,SM;为06时,AI;为07时AQ;为1E时,C;为81时,I;为82时,Q;为83时,M;为84时,V;为1F时,T。

字节28、29及30,软器件偏移量指针(存储器地址乘8),如:VB100,存储器地址为100,偏移量为800,转换成十六进制就是320H,则字节28到30这三个字节就是00、03、及20.

字节31、32为FCS和ED。

返回数据与发送命令格式数据相同,但包含一条数据。具体是:

SD LE LER SD DA SA FC DASP SSAP DU FCS ED

这里的SD、LE、Ler、SD、SA及FC与命令含义相同。但SD为PLC地址,DA为计算机地址。此外:

字节16:数据块占用的字节数,即从字节21到校验和前的字节数。一条数据时:字,为06;双字,为08;其它为05.

字节22:数据类型,读字节为04.

字节23、24:读字节时,为数据个数,单位以位计,1个字节为08;2个字节为10(16进制计),余类推。

字节25及其后至校验和之前,为返回所读值。

如读VB100开始3个字节,其命令码为:

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 03 00 01 84 00 03 20 8D 16(红色02为字节为单位,03为读3个字节)

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 04 00 01 00 01 84 00 0D 08 84 16

返回码:

68 18 18 68 00 02 08 32 03 00 00 00 00 00 02 00 07 00 00 04 01 FF 04 00 18 99 34 56 8B 16

(这里红色99、34、56分别为VB100、VB101、VB102的值)

2)写命令写一个字节,命令长为38个字节,字节0~字节21为:

68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10

写一个字,命令长为39个字节,字节0~字节21为:

68 21 21 68 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10

写一个双字数据,命令长为41个字节,字节0~21为:

68 23 23 68 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10

字节22~字节30,为写入数据的长、存储器类型、存储器类型、存储器偏移量。这些与读数据的命令相同。字节32如果是写入的是位数据,这一字节为03,,其它则为04.

字节34写入数据的位数:01:1位,08:1字节,10H:1字,20H:1双字。

字节35~字节40为校验码、结束符。

如果写入的是位、字节数据,字节35就是写入的值,字节36为00,字节37为校验码,字节38为16H、结束码。如果写入的是字数据(双字节),字节35、字节36就是写入的值,字节37为校验码,字节38为16H、结束码.如果写入的是双字数据(4字节),字节35~字节38就是写入的值,字节39为校验码,字节40为16H、结束码。

相关文档
最新文档