麻豆AV一区二区三区,国产激情综合,秋霞午夜国产一区二区三区,欧美性三级片在线观看

云南變頻網(wǎng)
      
首頁(yè) 關(guān)于我們 產(chǎn)品展示 行業(yè)方案 維修服務(wù) 配件供應 資訊中心 在線(xiàn)反饋 聯(lián)系我們
     技術(shù)資料
     行業(yè)資訊
     公司動(dòng)態(tài)

郵 箱:tjzdh@126.com
電 話(huà):0871-67322190
傳 真:0871-67328055
地 址:云南省昆明市官渡區國貿路
       725號宏興大廈A1402
       
郵 編:650200
PPI協(xié)議詳解

我們提供 PPI協(xié)議的官方文檔,協(xié)議更新時(shí)間為2005年,下面是我們根據文檔解析的PPI讀取變量返回數據,網(wǎng)上的文獻大部分都是講解如何發(fā)送的,對于接收提的很少,其中接收有很多控制位,下面的表格都一一列出,如果想做可靠的工控必須對這些位進(jìn)行解析,對照官方文檔才能做出可靠的工控產(chǎn)品。


說(shuō)明

PPI幀頭

PPI數據載荷區

PPI幀尾

數據頭

參數1

參數2

變量1

起始

長(cháng)度(重復)

起始

目的地址

源地址

功能碼

PPI協(xié)議ID

遠程操作

冗余識別

16位

默認0

數據參

考碼

16位

參數個(gè)數

16位

數據長(cháng)度

錯誤

標志

錯誤碼

服務(wù)ID

變量個(gè)數

訪(fǎng)問(wèn)結果

數據類(lèi)型

數據位數(bit個(gè)數)

數據區

校驗+結束符

字節序

0

1

2

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

VB0返回

68

16

16

68

00

02

08

32

03

00

00

00

00

00

02

00

05

00

00

04

01

ff

04

00

08

7f

d5

16

 

 

 

VW0返回

68

17

17

68

00

02

08

32

03

00

00

00

00

00

02

00

06

00

00

04

01

ff

04

00

10

7f

ff

dd

16

 

 

VW1返回

68

17

17

68

00

02

08

32

03

00

00

00

00

00

02

00

06

00

00

04

01

ff

04

00

10

ff

ff

5d

16

 

 

VD0返回

68

19

19

68

00

02

08

32

03

00

00

00

00

00

02

00

08

00

00

04

01

ff

04

00

20

7f

ff

ff

ff

ed

16

M0返回

68

16

16

68

00

02

08

32

03

00

00

00

00

00

02

00

05

00

00

04

01

ff

04

00

08

08

5e

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S7-200PPI通信協(xié)議

PPI通信協(xié)議是一種主從式的通信協(xié)議,上位機即PC機為主,PLC為從。通信開(kāi)始由計算機發(fā)起,PLC予以響應。

 

1)、計算機按通信任務(wù),用一定格式,向PLC發(fā)送通信命令。

 

2)、PLC收到命令后,進(jìn)行命令校驗,如無(wú)誤,則向計算機發(fā)送數據E5H或F9H,作出初步應答。

 

3)、計算機收到初步應答后,再向PLC發(fā)送SD DA SA FCFCS ED確認命令。

 

這里,SD為起始字符,為10H;DA為目的,即PLC地址02H;SA為數據源,即計算機地址00H;FC為功能碼,取5CH;FCS為SA、DA、FC和的256余數,為5EH;末字節ED為結束符,也是16H。如按以上設定的計算機及PLC地址,則發(fā)送10、02、00、5C、5E、及16,6個(gè)字節的十六進(jìn)制數據,以確認所發(fā)命令。

 

4)、PLC收到此確認后,執行計算機所發(fā)送的通信命令,并向計算機返回相應數據。它的通信過(guò)程要往復兩次才完成一次的通信,比較麻煩,但較嚴謹,不易出錯。

 

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

 

SD:(Start Delimiter)開(kāi)始定界符,占1字節,為68H

 

LE:(Length)報文數據長(cháng)度,占1字節,標明報文以字節計,從DA到DU的長(cháng)度;

 

LER:(Repeated Length)重復數據長(cháng)度,同LE

 

SD: (Start Delimiter)開(kāi)始定界符(68H)

 

DA:(DestinationAddress)目標地址,占1字節,指PLC在PPI上地址,一臺PLC時(shí),一般為02,多臺PLC時(shí),則各有各的地址;

 

SA:(Source Address)源地址,占1字節,指計算機在PPI上地址,一般為00;

 

FC:(Function Code)功能碼,占1字節,6CH一般為讀數據,7CH一般為寫(xiě)數據

 

DSAP:(Destination Service Access Point)目的服務(wù)存取點(diǎn),占多個(gè)字節

 

SSAP:(Source Service Access Point)源服務(wù)存取點(diǎn),占多個(gè)字節

 

DU:(Data Unit)數據單元,占多個(gè)字節

 

FCS:(Frame CheckSequence)占1字節,從DA到DU之間的校驗和的256余數;

 

ED:(End Delimiter)結束分界符,占1字節,為16H

 

命令類(lèi)型

 

1讀命令 讀命令長(cháng)度都是33個(gè)字節。字節021,都是相同的,為:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10”。而從字節22開(kāi)始,將根據讀取數據的軟器件類(lèi)型及地址的不同而不同。

 

字節22,表示讀取數據的單位。為01時(shí),1bit;為02時(shí),1字節;為04時(shí),1字;為06時(shí),雙字。

 

字節23,恒0。

 

字節24,表示數據個(gè)數。01,表示一次讀一個(gè)數據。如為讀字節,最多可讀208個(gè)字節,即可設為DEH。

 

字節25,恒0.

 

字節26,表示軟器件類(lèi)型。為01時(shí),V存儲器;為00時(shí),其它。

 

字節27,也表示軟器件類(lèi)型。為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。

 

字節28、29及30,軟器件偏移量指針(存儲器地址乘8),如:VB100,存儲器地址為100,偏移量為800,轉換成十六進(jìn)制就是320H,則字節28到30這三個(gè)字節就是00、03、及20.

 

字節31、32為FCS和ED。

 

 

 

返回數據  與發(fā)送命令格式數據相同,但包含一條數據。具體是:

SD  LE LER  SD  DA SA  FC  DASP SSAP  DU  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到校驗和前的字節數。一條數據時(shí):字,為06;雙字,為08;其它為05.

 

字節22:數據類(lèi)型,讀字節為04.

 

字節23、24:讀字節時(shí),為數據個(gè)數,單位以位計,1個(gè)字節為08;2個(gè)字節為10(16進(jìn)制計),余類(lèi)推。

 

字節25及其后至校驗和之前,為返回所讀值。

 

如讀VB100開(kāi)始3個(gè)字節,其命令碼為:

 

68 1B 1B 68 02 00 6C 32 01 00 0000 00 00 0E 00 00 04 01 12 0A 10 02 00 03 00 01 84 00 03 20 8D 16(紅色02為字節為單位,03為讀3個(gè)字節)

 

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 18 99 34 568B 16

 

(這里紅色99、34、56分別為VB100、VB101、VB102的值)

 

2)寫(xiě)命令 寫(xiě)一個(gè)字節,命令長(cháng)為38個(gè)字節,字節0~字節21為:

 

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

 

寫(xiě)一個(gè)字,命令長(cháng)為39個(gè)字節,字節0~字節21為:

 

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

 

寫(xiě)一個(gè)雙字數據,命令長(cháng)為41個(gè)字節,字節0~21為:

 

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

 

 

字節22~字節30,為寫(xiě)入數據的長(cháng)、存儲器類(lèi)型、存儲器類(lèi)型、存儲器偏移量。這些與讀數據的命令相同。字節32如果是寫(xiě)入的是位數據,這一字節為03,,其它則為04.

 

字節34寫(xiě)入數據的位數:01:1位,08:1字節,10H:1字,20H:1雙字。

 

字節35~字節40為校驗碼、結束符。

 

如果寫(xiě)入的是位、字節數據,字節35就是寫(xiě)入的值,字節36為00,字節37為校驗碼,字節38為16H、結束碼。如果寫(xiě)入的是字數據(雙字節),字節35、字節36就是寫(xiě)入的值,字節37為校驗碼,字節38為16H、結束碼.如果寫(xiě)入的是雙字數據(4字節),字節35~字節38就是寫(xiě)入的值,字節39為校驗碼,字節40為16H、結束碼。

 

如寫(xiě)入QB0=FF,其命令為:

 

68 20 20 68 02 00 7C 32 01 00 0000 00 00 0E 00 05 05 01 12 0A 1002 00 01 00 00 82 00 00 0000 04 00 08 FF 86 16

 

如寫(xiě)入VB100=12,其命令如下:

68 20 20 68 02 00 7C 32 01 00 0000 00 00 0E 00 05 05 01 12 0A 1002 00 01 00 01 84 00 03 200004 00 08 12 BF16

PLC返回數據 E5 后,確認寫(xiě)入命令,發(fā)送以下數據:

10 02 00 5C 5E 16

PLC返回數據 E5 后,寫(xiě)入成功。

 

如寫(xiě)入VW100=1234,其命令如下:

68 21 21 68 02 00 7C 32 01 00 0000 00 00 0E 00 06 05 01 12 0A 1004 00 01 00 01 84 00 03 20 00 040010 12 34 FE 16

PLC返回數據 E5 后,確認寫(xiě)入命令,發(fā)送以下數據:

10 02 00 5C 5E 16

PLC返回數據 E5 后,寫(xiě)入成功。

 

請注意以上紅體字的含義。

 

以上命令如執行成功,則返回

 

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

 

3STOP命令 stop命令使得S7-200CPUrun狀態(tài)轉換到stop狀態(tài)(此時(shí)cpu模塊上的模式開(kāi)關(guān)應處于runterm位置)。計算機發(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即轉為stop狀態(tài)。

 

但計算機再發(fā)確認報文(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ò)程。

 

4RUN命令 run命令使得S7-200 cpustop狀態(tài)轉換到run狀態(tài)(此時(shí)cpu模塊上的模式開(kāi)關(guān)應處于runterm位置)。PC機發(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即轉為RUN狀態(tài)。

 

但計算機再發(fā)確認報文(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ò)程。

 

注:以上介紹的不是西門(mén)子發(fā)布的正式通信協(xié)議,還有其它內容。

 

建議結合些通信的例子來(lái)進(jìn)行測試。


 

   PC與PLC采用主從方式通訊,PC按如下文的格式發(fā)讀寫(xiě)指令,PLC作出接收正確的響應(返回應答數據E5H或F9H見(jiàn)下文分析),上位機接到此響應則發(fā)出確認命令(1002 5C 5E 16),PLC再返回給上位機相應數據。一般上位機要連接PLC就要先發(fā)送如下尋呼數據10 02 00 49 4B 16 同志們吶!我們可都是有血、有肉、有思想、有靈感的高級動(dòng)物啊,面對這么多枯燥、無(wú)味、復雜、混亂的機器數字你怎么記呢?反正我是記不住。。╚_^開(kāi)始洗腦)這時(shí)你可以閉上眼睛,安靜、靜、再靜。。。。。。想一想戰爭時(shí)期的戰地對講機通話(huà)模式,那么這個(gè)指令(1002 00 49 4B 16)就可以理解為:00呼叫02,聽(tīng)到請回答。 10起始符 02是上位機要聯(lián)系的下位級的地址站號,就是要找的人 00就是上位級本本身自己的站號49尋呼指令 16終止符 其中4B為校驗碼,是這樣得來(lái)的:02+00+49的最后兩位就是校驗碼,這就是所說(shuō)的偶校驗或稱(chēng)和校驗也稱(chēng)余校驗,因為取的是余數。計算器在16進(jìn)制計算時(shí)公式(02+00+49)mod100得出的數就是校驗碼,你計算一下是不是等于4B!其他的所有PPI協(xié)議校驗都是如此。假如02站號的PLC收到尋呼信號那么會(huì )回答: 10 00 02 0002 16  意思是:報告00 ,02收到,請指示  這樣的解釋是不是有意思!你有更好的解釋嗎?接下來(lái)呢,找到了要尋呼的人PC就是司令啦就可以發(fā)號施令了,發(fā)號施令后PLC正確接收后就會(huì )發(fā)送E5 字符,意思是:“02洞兩明白”。其實(shí)啊,說(shuō)到這里PLC只說(shuō)他明白,他已經(jīng)明白了上位機PC的指示,但并沒(méi)有執行命令,那么要怎么他才執行命令呢?就是上位機PC發(fā)出確認命令后才執行。這時(shí)上位機會(huì )發(fā)出(1002 5C 5E 16),意思是:“請立即執行”。然后PLC就干他應當干的工作了!原來(lái)PLC也不容易啊,怪不得叫下位機呢!

  說(shuō)了這么多亂不亂吶!目的就是要理清上下級關(guān)系、主從關(guān)系,指令的順序,用一個(gè)好的記憶方法記住枯燥無(wú)味的機器碼。

讀命令分析一次讀一條數據
SD LE LER SD DA SA FC DASP SSAP DU FCS ED 
SD:(Start Delimiter)開(kāi)始定界符(68H)
LE:(Length)報文數據長(cháng)度
LER:(Repeated Length)重復數據長(cháng)度
SD: (Start Delimiter)開(kāi)始定界符(68H)
SA:(Source Address)目標地址,指該地址的值,就是PLC的地址
DA:(Destination Address)本地地址,指該地址的指針,就是上位機自己的地址
FC:(Function Code)功能碼,5CH為交替周期觸發(fā),6CH為首次信息周期觸發(fā),7CH為交替周期觸發(fā)。
DSAP:(Destination Service Access Point)目的服務(wù)存取點(diǎn)
SSAP:(Source Service Access Point)源服務(wù)存取點(diǎn)
DU:(Data Unit)數據單元
FCS:(Frame Check Sequence)校驗碼
ED:(End Delimiter)結束分界符(16H)
報文數據長(cháng)度和重復數據長(cháng)度為自DA至DU的數據長(cháng)度,校驗碼為DA至DU數據的和校驗,只取其中的末字節值關(guān)于這個(gè)校驗碼的計算方法同上面說(shuō)明。
在讀寫(xiě)PLC的變量數據中,讀數據的功能碼為 6CH,寫(xiě)數據的功能碼為 7CH。
對于一次讀取一個(gè)數據,讀命令都是33個(gè)字節。前面的0—21字節是相同的,為

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

SD

LE

LER

SD

DA

SA

FC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

開(kāi)始符

長(cháng)度

長(cháng)度

開(kāi)始符

站號

源地址

功能碼

協(xié)議識別

遠程控制

冗余識別

冗余識別

協(xié)議數據

單元參考

參數長(cháng)度

參數長(cháng)度

數據長(cháng)度

數據長(cháng)度

04讀05寫(xiě)

變量地址數

 

 

默認ID

68

1B

1B

68

02

00

6C

32

01

00

00

00

00

00

0E

00

00

04

01

12

0A

10

下面我們列表分析讀取PLC密碼的指令:68 1B 1B 68 02 00 6C32 01 00 00 00 00 00 0E 00 00 04 01 12 0A10 02 00 08 00 00 03 00 05 E0 D2 16

22

23

24

25

26

27

28

29

30

31

32

 

 

 

 

 

 

 

 

DU

FCS

DE

讀取長(cháng)度

數據個(gè)數

存儲器類(lèi)型

偏移量

校驗碼

結束符

02

00

08

00

00

03

00

05

E0

D2

16

因為是PC上發(fā)的讀PLC數據的命令,SA=00,DA=02,如果有多個(gè)站,DA要改成相應的站號。讀命令中從DA到DU的長(cháng)度為1B即27個(gè)字節。從22字節開(kāi)始根據讀取數據的類(lèi)型、位置不同而不同。上表是讀不同存儲器命令的Byte22—32。

字節

22

23

24

25

26

27

28

29

30

31

32

功能

讀取長(cháng)度16位小端

數據個(gè)數16位小端

存儲器類(lèi)型

偏移量

校驗碼

結束符

讀Q0.1

01

00

01

00

00

82

00

00

00

64

16

讀M0.0

01

00

01

00

00

83

00

00

00

65

16

讀M0.1

01

00

01

00

00

83

00

00

01

66

16

讀SMB34

02

00

01

00

00

05

00

00

01

F9

16

讀VB100

02

00

01

00

01

84

00

03

20

8B

16

讀VW100

04

00

01

00

01

84

00

03

20

8D

16

讀VD100

06

00

01

00

01

84

00

03

20

8F

16

讀I0.5

01

00

01

00

00

81

00

00

05

68

16

讀I0.7

01

00

01

00

00

81

00

00

07

6A

16

上表讀命令的Byte22-32從表中我們可以得出以下結果:
Byte 22 讀取數據的長(cháng)度
01:1 Bit 02:1 Byte 
04:1 Word 06:Double Word
Byte 24數據個(gè)數,這里是01 ,一次讀多個(gè)數據時(shí)見(jiàn)下面的說(shuō)明。
Byte 26 存儲器類(lèi)型,01:V存儲器 00:其它
Byte 27 存儲器類(lèi)型
04:S 05:SM 06:AI 07:AQ 1E: C
81:I 82:Q 83:M 84:V 1F: T

Byte 28,29,30存儲器偏移量指針(存儲器地址*8),如:VB100,存儲器地址為100,偏移量指針為800,轉換成16進(jìn)制就是320H,則Byte 28—29這三個(gè)字節就是:00 03 20。
Byte 31 校驗和,前面已說(shuō)到這是從(DA+SA+DSAP+SSAP+DU) Mod 256 。
一次讀多條數據
對于一次讀多個(gè)數據的情況,前21Byte與上面相似只是長(cháng)度LD,LDr及Byte 14不同:
Byte 14 數據塊占位字節,它指明數據塊占用的字節數。與數據塊數量有關(guān),長(cháng)度=4+數據塊數*10,如:一條數據時(shí)為4+10=0E(H);同時(shí)讀M,V,Q三個(gè)不同的數據塊時(shí)為4+3*10=22(H)。
Byte 22 總是02 即以Byte為單位。
Byte 24 以字節為單位,連續讀取的字節數。如讀2個(gè)VD則Byte24=8
Byte 19---30 按上述一次讀一個(gè)數據的格式依次列出,
Byte 31---42 另一類(lèi)型的數據,也是按上述格式給出。
以此類(lèi)推,一次最多讀取222個(gè)字節的數據。


寫(xiě)命令分析:一次寫(xiě)一個(gè)Double Word類(lèi)型的數據,寫(xiě)命令是40個(gè)字節,其余為38個(gè)字節。寫(xiě)一個(gè)Double Word類(lèi)型的數據,前面的0—21字節為 :

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

開(kāi)始符

長(cháng)度

長(cháng)度

開(kāi)始符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

68

21

21

68

02

00

7C

32

01

00

00

00

00

00

0E

00

00

04

01

12

0A

10

68 23 23 68 02 00 6C 32 0100 00 00 00 00 0E 00 00 04 01 12 0A10
寫(xiě)一個(gè)其它類(lèi)型的數據,前面的0—21字節為 :(與上面比較,只是長(cháng)度字節發(fā)生變化)
68 21 21 68 02 00 6C 32 0100 00 00 00 00 0E 00 00 04 01 12 0A 10

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

數據長(cháng)度

數據個(gè)數

存儲類(lèi)型

偏移量

數據形式

數據位數

寫(xiě)入值

校驗碼

終止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

從22字節開(kāi)始根據寫(xiě)入數據的值和位置不同而變化。上表是幾個(gè)寫(xiě)命令的Byte22—40。
字 節 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3839 40
寫(xiě)入位置及值長(cháng)度 個(gè)數 類(lèi)型 偏移量 位數 值、校驗碼、 結束符
M0.0=1 01 00 01 00 00 83 00 00 00 00 03 00 01 01 00 71 16 
M0.0=0 01 00 01 00 00 83 00 00 00 00 03 00 01 00 00 70 16 
M0.1=1 01 00 01 00 00 83 00 00 01 00 03 00 01 01 00 72 16 
vb100=10 02 00 01 00 01 84 00 03 20 00 04 00 08 10 00 AE 16 
vb100=FF 02 00 01 00 01 84 00 03 20 00 04 00 08 FF 00 9D 16 
VW100=FFFF 04 00 01 00 01 84 00 03 20 00 04 00 10 FF FF A6 16 
VD100=FFFFFFFF 06 00 01 00 01 84 00 03 20 00 04 00 20 FF FF FF FF B8 16

寫(xiě)命令的Byte22—最后, 經(jīng)分析我們可以得出以下結果:
Byte 22-- Byte 30 寫(xiě)入數據的長(cháng)度、存儲器類(lèi)型、存儲器偏移量與讀命令相同。T,C等不能用寫(xiě)命令寫(xiě)入。 
Byte 32 如果寫(xiě)入的是位數據這一字節為03,其它則為04
Byte 34 寫(xiě)入數據的位數
01: 1 Bit 08: 1 Byte 10H: 1 Word 20H: 1 Double Word 
Byte 35--40值、校驗碼、結束符
如果寫(xiě)入的是位、字節數據,Byte35就是寫(xiě)入的值,Byte36=00,Byte37=檢驗碼,Byte38=16H,結束。如果寫(xiě)個(gè)的是字數據(雙字節),Byte35,Byte36就是寫(xiě)入的值, Byte37=檢驗碼,Byte38=16H,結束。如果寫(xiě)個(gè)的是雙字數據(四字節),Byte35—38就是寫(xiě)入的值, Byte39=檢驗碼,Byte40=16H,結束。


看完上面的指令分析我們現在就舉例幾個(gè)常用的PPI協(xié)議來(lái)分析一下:
PC尋呼:10 02 00 49 4B 16 
PLC返回:10 00 02 02 04 16
PC發(fā)送:10 02 00 5C5E 16 
PLC返回: E5
我們先來(lái)看看西門(mén)子S7-200PLC的讀取密碼指令:
請用串口軟件以16進(jìn)制發(fā)送,端口設置9600;e;8;1 
發(fā)送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 02 00 08 00 00 0300 05 E0 D2 16意思:要求傳送系統存儲區05E0位開(kāi)始的8個(gè)字符(這就是8個(gè)密碼數值)。
如果通訊無(wú)誤,PLC會(huì )返回 E5,意思:已經(jīng)收到
那么這時(shí)上位機再次發(fā)送指令 10 02 00 5C 5E 16 意思:請執行命令。(說(shuō)到這里打住一下,PLC返回E5指令后上位機PC要在很短的時(shí)間內發(fā)送確認指令,晚了剛才的指令就無(wú)效了具體多長(cháng)時(shí)間我也沒(méi)測準,反正1、2秒時(shí)間是沒(méi)有問(wèn)題的。)那么這時(shí)PLC就真的執行命令了返回如下字符:68 1D 1D 68 00 02 08 32 03 00 00 00 00 00 02 00 0C 00 00 04 01 FF 04 00 40 9B 98 02 06 9D9A 00 76 7D 16

寫(xiě)指令:先發(fā)10 02 00 5C 5E 16 后發(fā)寫(xiě)指令

 

1、寫(xiě)一位M區(例子M0.0)

先發(fā)10 02 00 5C 5E 16 收到E5后

發(fā)   68 20 20 68 02 00 7C32 01 00 00 00 00 00 0E 0005 05 01 12 0A 10 01 00 01 00 00 83 00 00 00 00 03 00 01 0180 16

收到E5 說(shuō)明寫(xiě)入完成(只要報文長(cháng)度,跟校驗碼對了,就會(huì )回復E5)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

開(kāi)始符

報文長(cháng)度

報文長(cháng)度

開(kāi)始符

目標

地址(PLC

源站地址(上位機)

功能碼

 

 

 

 

 

 

 

 

 

 

寫(xiě)

 

 

 

 

68

20

20

68

02

00

7C

32

01

00

00

00

00

00

0E

00

05

05

01

12

0A

10

報文長(cháng)度為: 目標地址 到 倒數第二位的校驗位前面 的字節長(cháng)度(根據寫(xiě)入值不通報文長(cháng)度不同)

功能碼:7C表示寫(xiě)入;6C表示讀取。

17位:05表示寫(xiě)入;04表示讀取。

16位: 16位的05表示寫(xiě)入的是 位或者字節(即用一個(gè)字節存儲)

       06 表示 字;  08表示雙字(4個(gè)字節); 0C表示8個(gè)字節

 

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

數據長(cháng)度

數據個(gè)數

存儲類(lèi)型

偏移量

數據形式

數據位數

寫(xiě)入值

校驗碼

終止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

數據長(cháng)度(22位):01位;02字節;04字;06雙字。

數據個(gè)數:0100表示一個(gè);0200表示連續的兩個(gè);0400連續的4個(gè)。

存儲類(lèi)型: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

偏移量: 0000 0000 0000 0000 0000 0XXX (XXX表示位)

例如:10.3=101 0.011 即00 00 53

數據形式:03表示位;04表示其他。

數據位數:即寫(xiě)入數據多少位。01一位;08八位;10十六位;20三十二位。

寫(xiě)入值:寫(xiě)入位,字節均用一個(gè)字節存儲;寫(xiě)入雙字得用四個(gè)字節。

校驗碼:即報文的偶校驗(所有之和Mod 100H)

終止符:16H

 

若M10.3=1寫(xiě)入,  00 00 53             01 D3 (校驗碼D3是從開(kāi)頭第五個(gè)02到倒數第三個(gè)01的所有數字的偶校驗(算術(shù)和))      

因為 0101 0.011(10.3)為00 00 53

即:68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 120A 10          01 00 01 00 00 8300 00 5300 03 00 01 01D3 16

 

M10.3=0

即:68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 120A 10          01 00 01 00 00 8300 00 5300 03 00 01 00D2 16

 

 

2、寫(xiě)V區一個(gè)字節(例子VB100=10H)

先發(fā)10 02 00 5C 5E 16 收到E5后

發(fā):68 20 20 68 02 00 7C 32 0100 00 00 00 00 0E 00 05 05 01 12 0A10           02 00 01 00 01 8400 03 2000 04 00 08 10 bd16

 

3、寫(xiě)V區一個(gè)字(雙字)

發(fā):68 21 21 68 02 00 7C32 01 00 00 00 00 00 0E 00 06 05 01 12 0A 10           04 00 01 00 01 84 00 03 20 00 04 0010ab cd 30 16

發(fā):68 23 23 68 02 00 7C32 01 00 00 00 00 00 0E 00 08 05 01 12 0A 10           06 00 01 00 01 84 00 03 20 00 04 0020ab cd ef fe 31 16

讀指令:先發(fā)讀指令,后發(fā)10 02 005C 5E 16

1、讀取數據(例子讀取VW10的值,值為FF FF)

先發(fā)讀取命令:

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10             02 00 02 0001 84 00 00 50 B9 16  (紅色或者改為04 00 01 00 校驗也得改)

回復 E5

然后發(fā)送 10 02 00 5C 5E 16

收到數據:

68 17 17 68 00 02 08 32 03 00 0000 00 00 02 00 0600 00 04 01 FF0400 10 FF FF 5D 16

 

22

23

24

25

26

27

28

29

30

31

32

 

 

 

 

 

 

 

 

DU

FCS

DE

讀取長(cháng)度

數據個(gè)數

存儲器類(lèi)型

偏移量

校驗碼

結束符

02

00

08

00

00

03

00

05

E0

D2

16

讀指令的前21位都是相同的。讀取長(cháng)度,數據個(gè)數,存儲類(lèi)型,偏移量都與寫(xiě)指令里面的定義一樣。

 

收到數據中的

16:05表示收到數據用一個(gè)字節存儲,可能是PLC位,也可能是一個(gè)字節;06表示用兩個(gè)字節存儲,即一個(gè)字;08雙字;0C表示8個(gè)字節。

22:數據形式,03表示位;04表示其他。(主要針對C,T可能是位也可能是計數值,計數時(shí)間)

24:表示讀取數值的位數。01表示一位;08八位;10十六位;20三十二位。

25位之后幾位:要讀取的數值。

若回復F9(會(huì )產(chǎn)生不同結果,但接受值不變)

然后發(fā)送 10 02 00 5C 5E 16

收到數據:(關(guān)閉串口再打開(kāi)的不同結果)

DA A1 21 1B 90 32 61 66 40 40 8000 00 00 02 00 06 00 00 04 01 FF 0400 10FF FF 5D 16

B4 A1 21 1B 10 30 61 66 40 80 80 00 00 00 02 00 06 00 00 04 01 FF 04 00 10FF FF 5D 16

68 17 17 68 00 02 08 32 03 00 0000 00 00 02 00 06 00 00 04 01 FF 0400 10 FF FF 5D 16

 

4、讀取VB10

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10             02 00 01 00 01 84 00 00 50 B8 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 0400 08FF 55 16

 

5、讀取VD10

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 06 00 01 00 01 84 00 00 50 BC 16

68 19 19 68 00 02 08 32 03 00 0000 00 00 02 00 08 00 00 04 01 FF 0400 20FF FF 00 00 6F 16

 

6、讀取VB10后面的8個(gè)字節

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 02 00 08 00 01 8400 00 50 Bf 16

68 1D 1D 68 00 02 08 32 03 00 0000 00 00 02 00 0C 00 00 04 01 FF 04 00 40FF FF 00 00 00 00 00 00 93 16

 

7、讀取V10.0

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 01 8400 00 50 B7 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF03 00 01 01 4F 16

 

4、讀取Q0.1

發(fā)送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8200 00 01 65 16

回復:E5

然后發(fā)送 10 02 00 5C 5E 16

收到數據:

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 004E 16                                              Q0.1為0時(shí)

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 0101 4F 16                                              Q0.1為1時(shí)

5、讀取Q1.3

發(fā)送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8200 00 0B 65 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 004E 16

6、讀取M0.0

發(fā)送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8300 00 00 65 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 00 4E 16

 

             ------摘錄自網(wǎng)絡(luò )

發(fā)布日期:2019-5-8
版權所有©:  昆明康海機械設備有限公司     QQ:951314959    技術(shù)群:23873503   

地址:云南省昆明市官渡區國貿路725號宏興大廈A1402 (滇ICP備11002993號)   電話(huà):0871-67322190  傳真:0871-67328055   手機:137 5915 9589
友情鏈接: 兆富科技  云南變頻網(wǎng) 兆富博客  昆明宏力達  富驅在線(xiàn)軟啟  富驅傳動(dòng)  二手變頻器  百度搜索  您是第: 位訪(fǎng)問(wèn)網(wǎng)站