PPI通信協(xié)議是一種主從式的通信協(xié)議,上位機(jī)即PC機(jī)為主,PLC為從。通信開(kāi)始由計(jì)算機(jī)發(fā)起,PLC予以響應(yīng)。
1)、計(jì)算機(jī)按通信任務(wù),用一定格式,向PLC發(fā)送通信命令。
2)、PLC收到命令后,進(jìn)行命令校驗(yàn),如無(wú)誤,則向計(jì)算機(jī)發(fā)送數(shù)據(jù)E5H或F9H,作出初步應(yīng)答。
3)、計(jì)算機(jī)收到初步應(yīng)答后,再向PLC發(fā)送SD DA SA FCFCS ED確認(rèn)命令。
這里,SD為起始字符,為10H;DA為目的,即PLC地址02H;SA為數(shù)據(jù)源,即計(jì)算機(jī)地址00H;FC為功能碼,取5CH;FCS為SA、DA、FC和的256余數(shù),為5EH;末字節(jié)ED為結(jié)束符,也是16H。如按以上設(shè)定的計(jì)算機(jī)及PLC地址,則發(fā)送10、02、00、5C、5E、及16,6個(gè)字節(jié)的十六進(jìn)制數(shù)據(jù),以確認(rèn)所發(fā)命令。
4)、PLC收到此確認(rèn)后,執(zhí)行計(jì)算機(jī)所發(fā)送的通信命令,并向計(jì)算機(jī)返回相應(yīng)數(shù)據(jù)。它的通信過(guò)程要往復(fù)兩次才完成一次的通信,比較麻煩,但較嚴(yán)謹(jǐn),不易出錯(cuò)。
SD LELER SD DASA FC DASPSSAP DU FCS ED
SD:(Start Delimiter)開(kāi)始定界符,占1字節(jié),為68H
LE:(Length)報(bào)文數(shù)據(jù)長(zhǎng)度,占1字節(jié),標(biāo)明報(bào)文以字節(jié)計(jì),從DA到DU的長(zhǎng)度;
LER:(Repeated Length)重復(fù)數(shù)據(jù)長(zhǎng)度,同LE
SD: (Start Delimiter)開(kāi)始定界符(68H)
DA:(DestinationAddress)目標(biāo)地址,占1字節(jié),指PLC在PPI上地址,一臺(tái)PLC時(shí),一般為02,多臺(tái)PLC時(shí),則各有各的地址;
SA:(Source Address)源地址,占1字節(jié),指計(jì)算機(jī)在PPI上地址,一般為00;
FC:(Function Code)功能碼,占1字節(jié),6CH一般為讀數(shù)據(jù),7CH一般為寫數(shù)據(jù)
DSAP:(Destination Service Access Point)目的服務(wù)存取點(diǎn),占多個(gè)字節(jié)
SSAP:(Source Service Access Point)源服務(wù)存取點(diǎn),占多個(gè)字節(jié)
DU:(Data Unit)數(shù)據(jù)單元,占多個(gè)字節(jié)
FCS:(Frame CheckSequence)占1字節(jié),從DA到DU之間的校驗(yàn)和的256余數(shù);
ED:(End Delimiter)結(jié)束分界符,占1字節(jié),為16H
命令類型
1)讀命令讀命令長(zhǎng)度都是33個(gè)字節(jié)。字節(jié)0~21,都是相同的,為:“68 1B 1B 68 02 00 6C 3201 00 00 00 00 00 0E 00 00 04 01 12 0A 10”。而從字節(jié)22開(kāi)始,將根據(jù)讀取數(shù)據(jù)的軟器件類型及地址的不同而不同。
字節(jié)22,表示讀取數(shù)據(jù)的單位。為01時(shí),1bit;為02時(shí),1字節(jié);為04時(shí),1字;為06時(shí),雙字。
字節(jié)23,恒0。
字節(jié)24,表示數(shù)據(jù)個(gè)數(shù)。01,表示一次讀一個(gè)數(shù)據(jù)。如為讀字節(jié),最多可讀208個(gè)字節(jié),即可設(shè)為DEH。
字節(jié)25,恒0.
字節(jié)26,表示軟器件類型。為01時(shí),V存儲(chǔ)器;為00時(shí),其它。
字節(jié)27,也表示軟器件類型。為04時(shí),S;為05時(shí),SM;為06時(shí),AI;為07時(shí)AQ;為1E時(shí),C;為81時(shí),I;為82時(shí),Q;為83時(shí),M;為84時(shí),V;為1F時(shí),T。
字節(jié)28、29及30,軟器件偏移量指針(存儲(chǔ)器地址乘8),如:VB100,存儲(chǔ)器地址為100,偏移量為800,轉(zhuǎn)換成十六進(jìn)制就是320H,則字節(jié)28到30這三個(gè)字節(jié)就是00、03、及20.
字節(jié)31、32為FCS和ED。
返回?cái)?shù)據(jù)與發(fā)送命令格式數(shù)據(jù)相同,但包含一條數(shù)據(jù)。具體是:
SD LELER SD DASA FC DASPSSAP DU FCS ED
這里的SD、LE、Ler、SD、SA及FC與命令含義相同。但SD為PLC地址,DA為計(jì)算機(jī)地址。此外:
字節(jié)16:數(shù)據(jù)塊占用的字節(jié)數(shù),即從字節(jié)21到校驗(yàn)和前的字節(jié)數(shù)。一條數(shù)據(jù)時(shí):字,為06;雙字,為08;其它為05.
字節(jié)22:數(shù)據(jù)類型,讀字節(jié)為04.
字節(jié)23、24:讀字節(jié)時(shí),為數(shù)據(jù)個(gè)數(shù),單位以位計(jì),1個(gè)字節(jié)為08;2個(gè)字節(jié)為10(16進(jìn)制計(jì)),余類推。
字節(jié)25及其后至校驗(yàn)和之前,為返回所讀值。
如讀VB100開(kāi)始3個(gè)字節(jié),其命令碼為:
68 1B 1B 68 02 00 6C 32 01 00 0000 00 00 0E 00 00 04 01 12 0A 1002000300 01 84 00 03 20 8D 16(紅色02為字節(jié)為單位,03為讀3個(gè)字節(jié))
68 1B 1B 68 02 00 6C 3201 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 0000 00 00 02 00 07 00 00 04 01 FF 04 00 1899 34 568B 16
(這里紅色99、34、56分別為VB100、VB101、VB102的值)
2)寫命令寫一個(gè)字節(jié),命令長(zhǎng)為38個(gè)字節(jié),字節(jié)0~字節(jié)21為:
6820 2068 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10
寫一個(gè)字,命令長(zhǎng)為39個(gè)字節(jié),字節(jié)0~字節(jié)21為:
6821 2168 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10
寫一個(gè)雙字?jǐn)?shù)據(jù),命令長(zhǎng)為41個(gè)字節(jié),字節(jié)0~21為:
68 23 23 68 02 00 7C 32 01 00 0000 00 00 0E 00 00 04 01 12 0A 10
字節(jié)22~字節(jié)30,為寫入數(shù)據(jù)的長(zhǎng)、存儲(chǔ)器類型、存儲(chǔ)器類型、存儲(chǔ)器偏移量。這些與讀數(shù)據(jù)的命令相同。字節(jié)32如果是寫入的是位數(shù)據(jù),這一字節(jié)為03,,其它則為04.
字節(jié)34寫入數(shù)據(jù)的位數(shù):01:1位,08:1字節(jié),10H:1字,20H:1雙字。
字節(jié)35~字節(jié)40為校驗(yàn)碼、結(jié)束符。
如果寫入的是位、字節(jié)數(shù)據(jù),字節(jié)35就是寫入的值,字節(jié)36為00,字節(jié)37為校驗(yàn)碼,字節(jié)38為16H、結(jié)束碼。如果寫入的是字?jǐn)?shù)據(jù)(雙字節(jié)),字節(jié)35、字節(jié)36就是寫入的值,字節(jié)37為校驗(yàn)碼,字節(jié)38為16H、結(jié)束碼.如果寫入的是雙字?jǐn)?shù)據(jù)(4字節(jié)),字節(jié)35~字節(jié)38就是寫入的值,字節(jié)39為校驗(yàn)碼,字節(jié)40為16H、結(jié)束碼。
需要注意顏色字體的功能
如寫入QB0=FF,其命令為:
68 20 20 68 02 00 7C 32 01 00 0000 00 00 0E 000505 01 12 0A 100200 01 00 008200 00 0000 04 0008FF86 16
如協(xié)議QD0=FF,其命令是:
68 23 23 68 02 00 7C 32 01 00 0000 00 00 0E 000805 01 12 0A 100600 01 00 00820000 00 00 04 0020FF FF FF FF A2 16
如寫入VB100=12,其命令如下:
68 20 20 68 02 00 7C 32 01 00 0000 00 00 0E 000505 01 12 0A 100200 01 00 018400 03 2000 04 000812BF16
PLC返回?cái)?shù)據(jù)E5后,確認(rèn)寫入命令,發(fā)送以下數(shù)據(jù):
10 02 00 5C 5E 16
PLC返回?cái)?shù)據(jù)E5后,寫入成功。
如寫入VW0=4660,其命令如下:
68 21 21 68 02 00 7C 32 01 00 0000 00 00 0E 00 06 05 01 12 0A 10 04 00 01 00 01 84 00 00 00 00 04 00 10 12 34DB 16
如寫入VW100=1234H,其命令如下:
68 21 21 68 02 00 7C 32 01 00 0000 00 00 0E 000605 01 12 0A 100400 01 00 018400 032000 04 001012 34FE 16
寫入VD0=FFFFFFFFH
68 23 23 68 02 00 7C 32 01 0000 00 00 00 0E 00 08 05 01 12 0A 10 06 00 01 00 01 84 00 00 00 00 04 00 20 FFFF FF FF A5 16
PLC返回?cái)?shù)據(jù)E5后,確認(rèn)寫入命令,發(fā)送以下數(shù)據(jù):
10 02 00 5C 5E 16
PLC返回?cái)?shù)據(jù)E5后,寫入成功。
請(qǐng)注意以上紅體字的含義。
以上命令如執(zhí)行成功,則返回
68 12 12 68 00 02 08 32 03 00 0000 00 00 02 00 01 00 00 05 01 FF 47 16
否則返回:
68 0F 0F 68 00 02 08 32 02 00 0000 00 00 00 00 00 85 00 C3 16
3)STOP命令 stop命令使得S7-200CPU從run狀態(tài)轉(zhuǎn)換到stop狀態(tài)(此時(shí)cpu模塊上的模式開(kāi)關(guān)應(yīng)處于run或term位置)。計(jì)算機(jī)發(fā)出如下命令:
68 1D 1D 68 02 00 6C 32 01 00 0000 00 00 10 00 00 29 00 00 00 00 00 09 50 5F 50 52 4F 47 52 41 4D AA 16
PLC返回:E5,同時(shí)PLC即轉(zhuǎn)為stop狀態(tài)。
但計(jì)算機(jī)再發(fā)確認(rèn)報(bào)文(10 02 00 5C 5E 16)
PLC將返回:68 10 10 68 00 02 08 32 03 00 00 00 00 00 01 00 00 00 00 29 69 16
到此,才算完成這個(gè)通信過(guò)程。
4)RUN命令 run命令使得S7-200 cpu從stop狀態(tài)轉(zhuǎn)換到run狀態(tài)(此時(shí)cpu模塊上的模式開(kāi)關(guān)應(yīng)處于run或term位置)。PC機(jī)發(fā)出如下命令:
68 21 21 68 02 00 6C 32 01 00 0000 00 00 14 00 00 28 00 00 00 00 00 00 FD 00 00 09 50 5F 50 52 4F 47 52 41 4DAA 16
PLC返回:E5,同時(shí)PLC即轉(zhuǎn)為RUN狀態(tài)。
但計(jì)算機(jī)再發(fā)確認(rèn)報(bào)文(10 02 00 5C 5E 16)
PLC將返回:68 10 10 68 00 02 08 32 03 00 00 00 00 00 01 00 00 00 00 29 69 16
至此,才算完成這個(gè)通信過(guò)程。
注:以上介紹的不是西門子發(fā)布的正式通信協(xié)議,還有其它內(nèi)容。
建議結(jié)合些通信的例子來(lái)進(jìn)行測(cè)試。
-
西門子
+關(guān)注
關(guān)注
93文章
2996瀏覽量
115493 -
S7-200
+關(guān)注
關(guān)注
13文章
407瀏覽量
50280
原文標(biāo)題:西門子S7-200PPI通信協(xié)議
文章出處:【微信號(hào):GKYXT1508,微信公眾號(hào):工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論