色狠狠一区二区三区香蕉_成人午夜爽爽爽免费视频_JIZZJIZZ少妇亚洲水多_精品无码久久久久久久久久

云南變頻網
      
首頁 關于我們 產品展示 行業方案 維修服務 配件供應 資訊中心 在線反饋 聯系我們
     技術資料
     行業資訊
     公司動態

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

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


說明

PPI幀頭

PPI數據載荷區

PPI幀尾

數據頭

參數1

參數2

變量1

起始

長度(重復)

起始

目的地址

源地址

功能碼

PPI協議ID

遠程操作

冗余識別

16位

默認0

數據參

考碼

16位

參數個數

16位

數據長度

錯誤

標(biao)志

錯誤碼

服務ID

變量個數

訪問結果

數據類型

數據位數(bit個數)

數據區

校驗+結束符

字節序(xu)

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返(fan)回(hui)

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返(fan)回

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通信協議

PPI通信(xin)協(xie)議是一種主(zhu)從(cong)式的通信(xin)協(xie)議,上位機(ji)(ji)即PC機(ji)(ji)為主(zhu),PLC為從(cong)。通信(xin)開始由計算(suan)機(ji)(ji)發起,PLC予(yu)以響應。

 

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

 

2)、PLC收到命令后,進行命令校驗,如(ru)無誤,則向計算機發送數(shu)據E5H或F9H,作出初(chu)步應(ying)答。

 

3)、計(ji)算機收到初步應答(da)后(hou),再(zai)向(xiang)PLC發送(song)SD DA SA FCFCS ED確(que)認命令(ling)。

 

這里,SD為(wei)起始(shi)字符(fu),為(wei)10H;DA為(wei)目的,即(ji)PLC地址(zhi)02H;SA為(wei)數據(ju)源,即(ji)計算機(ji)地址(zhi)00H;FC為(wei)功能碼,取5CH;FCS為(wei)SA、DA、FC和的256余(yu)數,為(wei)5EH;末(mo)字節ED為(wei)結束(shu)符(fu),也(ye)是16H。如按以(yi)上設定的計算機(ji)及(ji)PLC地址(zhi),則(ze)發送10、02、00、5C、5E、及(ji)16,6個字節的十六進(jin)制數據(ju),以(yi)確認所發命(ming)令。

 

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

 

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

 

SD:(Start Delimiter)開始定界(jie)符,占1字(zi)節,為68H

 

LE:(Length)報(bao)文數(shu)據長度(du)(du),占1字節(jie),標明報(bao)文以字節(jie)計,從(cong)DA到DU的長度(du)(du);

 

LER:(Repeated Length)重復數據長(chang)度(du),同LE

 

SD: (Start Delimiter)開(kai)始(shi)定(ding)界符(68H)

 

DA:(DestinationAddress)目標地(di)址(zhi),占1字節,指PLC在PPI上地(di)址(zhi),一臺PLC時(shi)(shi),一般為02,多臺PLC時(shi)(shi),則(ze)各(ge)有(you)各(ge)的地(di)址(zhi);

 

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

 

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

 

DSAP:(Destination Service Access Point)目的服務存取點,占多個字節

 

SSAP:(Source Service Access Point)源(yuan)服務(wu)存取點,占多(duo)個字(zi)節

 

DU:(Data Unit)數(shu)據單元,占(zhan)多個(ge)字節(jie)

 

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

 

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

 

命令類型

 

1讀(du)命(ming)令 讀(du)命令長度(du)都是33個字節。字節021,都(dou)是相同的,為:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10”。而從(cong)字節22開始,將根據(ju)讀取數據(ju)的軟器件類型及地址(zhi)的不(bu)(bu)同(tong)而不(bu)(bu)同(tong)。

 

字(zi)(zi)節22,表示讀取(qu)數據的(de)單位。為(wei)(wei)01時(shi),1bit;為(wei)(wei)02時(shi),1字(zi)(zi)節;為(wei)(wei)04時(shi),1字(zi)(zi);為(wei)(wei)06時(shi),雙字(zi)(zi)。

 

字節23,恒0。

 

字(zi)(zi)節24,表示數(shu)據個(ge)數(shu)。01,表示一(yi)次讀(du)一(yi)個(ge)數(shu)據。如(ru)為讀(du)字(zi)(zi)節,最多可(ke)讀(du)208個(ge)字(zi)(zi)節,即可(ke)設為DEH。

 

字節25,恒0.

 

字節(jie)26,表(biao)示(shi)軟器件(jian)類型。為01時,V存儲器;為00時,其它。

 

字節27,也表示軟(ruan)器(qi)件類型。為(wei)(wei)(wei)(wei)04時(shi),S;為(wei)(wei)(wei)(wei)05時(shi),SM;為(wei)(wei)(wei)(wei)06時(shi),AI;為(wei)(wei)(wei)(wei)07時(shi)AQ;為(wei)(wei)(wei)(wei)1E時(shi),C;為(wei)(wei)(wei)(wei)81時(shi),I;為(wei)(wei)(wei)(wei)82時(shi),Q;為(wei)(wei)(wei)(wei)83時(shi),M;為(wei)(wei)(wei)(wei)84時(shi),V;為(wei)(wei)(wei)(wei)1F時(shi),T。

 

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

 

字節31、32為(wei)FCS和ED。

 

 

 

返回數據(ju)  與發(fa)送命令格(ge)式(shi)數據(ju)相同,但包含一(yi)條數據(ju)。具(ju)體是:

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與命令含(han)義相(xiang)同(tong)。但SD為PLC地址,DA為計(ji)算(suan)機地址。此外(wai):

 

字(zi)節16:數(shu)據塊占用的(de)字(zi)節數(shu),即從字(zi)節21到校驗(yan)和(he)前(qian)的(de)字(zi)節數(shu)。一條數(shu)據時(shi):字(zi),為06;雙字(zi),為08;其它為05.

 

字節22:數據類型,讀(du)字節為04.

 

字節(jie)23、24:讀字節(jie)時(shi),為數據個(ge)數,單位以(yi)位計,1個(ge)字節(jie)為08;2個(ge)字節(jie)為10(16進(jin)制(zhi)計),余類推。

 

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

 

如(ru)讀VB100開始3個(ge)字(zi)節(jie),其命(ming)令碼為:

 

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為字(zi)節(jie)為單位(wei),03為讀3個字(zi)節(jie))

 

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

 

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

 

2)寫命令 寫一個字節(jie),命令長為38個字節(jie),字節(jie)0~字(zi)節21為:

 

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

 

寫一個字,命令長為(wei)39個字節,字節0~字節21為(wei):

 

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

 

寫一(yi)個雙字(zi)數據,命(ming)令(ling)長(chang)為41個字(zi)節,字(zi)節0~21為:

 

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

 

 

字(zi)節22~字(zi)節30,為寫入數據的(de)長、存儲器(qi)類型、存儲器(qi)類型、存儲器(qi)偏移量。這(zhe)些(xie)與讀數據的(de)命令相同。字(zi)節32如果是寫入的(de)是位數據,這(zhe)一字(zi)節為03,,其它(ta)則為04.

 

字(zi)(zi)節34寫入(ru)數(shu)據的(de)位數(shu):01:1位,08:1字(zi)(zi)節,10H:1字(zi)(zi),20H:1雙字(zi)(zi)。

 

字節(jie)35~字節(jie)40為校驗(yan)碼、結束符。

 

如果(guo)寫入的(de)(de)(de)是(shi)(shi)位、字(zi)(zi)(zi)(zi)節(jie)數(shu)(shu)據(ju)(ju),字(zi)(zi)(zi)(zi)節(jie)35就是(shi)(shi)寫入的(de)(de)(de)值(zhi),字(zi)(zi)(zi)(zi)節(jie)36為(wei)00,字(zi)(zi)(zi)(zi)節(jie)37為(wei)校驗(yan)碼(ma),字(zi)(zi)(zi)(zi)節(jie)38為(wei)16H、結束(shu)碼(ma)。如果(guo)寫入的(de)(de)(de)是(shi)(shi)字(zi)(zi)(zi)(zi)數(shu)(shu)據(ju)(ju)(雙字(zi)(zi)(zi)(zi)節(jie)),字(zi)(zi)(zi)(zi)節(jie)35、字(zi)(zi)(zi)(zi)節(jie)36就是(shi)(shi)寫入的(de)(de)(de)值(zhi),字(zi)(zi)(zi)(zi)節(jie)37為(wei)校驗(yan)碼(ma),字(zi)(zi)(zi)(zi)節(jie)38為(wei)16H、結束(shu)碼(ma).如果(guo)寫入的(de)(de)(de)是(shi)(shi)雙字(zi)(zi)(zi)(zi)數(shu)(shu)據(ju)(ju)(4字(zi)(zi)(zi)(zi)節(jie)),字(zi)(zi)(zi)(zi)節(jie)35~字(zi)(zi)(zi)(zi)節(jie)38就是(shi)(shi)寫入的(de)(de)(de)值(zhi),字(zi)(zi)(zi)(zi)節(jie)39為(wei)校驗(yan)碼(ma),字(zi)(zi)(zi)(zi)節(jie)40為(wei)16H、結束(shu)碼(ma)。

 

如寫(xie)入(ru)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

 

如寫入VB100=12,其命令(ling)如下(xia):

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返回(hui)數據 E5 后(hou),確(que)認寫入命(ming)令,發送(song)以(yi)下數據:

10 02 00 5C 5E 16

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

 

如(ru)寫(xie)入VW100=1234,其(qi)命令如(ru)下:

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返回(hui)數據 E5 后(hou),確認寫(xie)入命(ming)令,發送(song)以(yi)下數據:

10 02 00 5C 5E 16

PLC返回數據 E5 后,寫入成功。

 

請注意以上紅體字(zi)的含義(yi)。

 

以上命令(ling)如(ru)執行(xing)成功,則返回

 

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命(ming)令 stop命令使得(de)S7-200CPUrun狀態轉(zhuan)換到stop狀態(此(ci)時cpu模塊上(shang)的(de)模式開關應處(chu)于runterm位置)。計算機發出(chu)如下命令:

 

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返(fan)回:E5,同時PLC即(ji)轉為stop狀態。

 

但計算(suan)機再發確認報文(10 02 00 5C 5E 16)

 

PLC將返(fan)回:68 10 10 68 00 02 08 32 03 00 00 00 00 00 01 00 00 00 00 29 69 16

 

到此,才算完成這個通信過程(cheng)。

 

4RUN命令 run命令使得S7-200 cpustop狀態轉換到run狀態(此時cpu模塊上的模式開(kai)關(guan)應處(chu)于runterm位置)。PC機發(fa)出如(ru)下命令:

 

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,同時PLC即轉為RUN狀態。

 

但(dan)計算機(ji)再發確認(ren)報文(10 02 00 5C 5E 16)

 

PLC將返(fan)回(hui):68 10 10 68 00 02 08 32 03 00 00 00 00 00 01 00 00 00 00 29 69 16

 

至(zhi)此,才(cai)算完(wan)成這個(ge)通信過程。

 

注(zhu):以上介紹的(de)不是西門(men)子發布的(de)正式(shi)通(tong)信協議(yi),還有其它內(nei)容。

 

建議結合些通信的例子來進行測試


 

   PC與PLC采用主從方(fang)式通(tong)(tong)訊,PC按如下(xia)(xia)文的(de)(de)(de)(de)(de)格式發(fa)(fa)讀寫(xie)指(zhi)(zhi)令(ling)(ling)(ling),PLC作(zuo)出(chu)(chu)接(jie)收正(zheng)確(que)(que)的(de)(de)(de)(de)(de)響應(ying)(返回(hui)應(ying)答數(shu)據(ju)E5H或F9H見下(xia)(xia)文分析),上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)接(jie)到(dao)(dao)此響應(ying)則(ze)發(fa)(fa)出(chu)(chu)確(que)(que)認(ren)命令(ling)(ling)(ling)(1002 5C 5E 16),PLC再(zai)返回(hui)給(gei)上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)相應(ying)數(shu)據(ju)。一(yi)般上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)要(yao)(yao)連(lian)接(jie)PLC就(jiu)(jiu)(jiu)要(yao)(yao)先(xian)發(fa)(fa)送如下(xia)(xia)尋呼(hu)數(shu)據(ju)10 02 00 49 4B 16 同(tong)志們(men)吶!我們(men)可(ke)(ke)(ke)都是(shi)(shi)有(you)(you)(you)血、有(you)(you)(you)肉、有(you)(you)(you)思(si)想、有(you)(you)(you)靈感的(de)(de)(de)(de)(de)高級動物啊(a),面對這(zhe)(zhe)么(me)(me)(me)多枯燥、無味、復雜(za)、混亂的(de)(de)(de)(de)(de)機(ji)(ji)(ji)器(qi)數(shu)字你(ni)(ni)怎么(me)(me)(me)記(ji)呢(ni)?反正(zheng)我是(shi)(shi)記(ji)不(bu)住啊(a)!(^_^開(kai)始洗(xi)腦)這(zhe)(zhe)時(shi)(shi)你(ni)(ni)可(ke)(ke)(ke)以閉上(shang)(shang)眼睛,安靜、靜、再(zai)靜。。。。。。想一(yi)想戰(zhan)爭(zheng)時(shi)(shi)期(qi)的(de)(de)(de)(de)(de)戰(zhan)地(di)對講機(ji)(ji)(ji)通(tong)(tong)話模(mo)式,那么(me)(me)(me)這(zhe)(zhe)個指(zhi)(zhi)令(ling)(ling)(ling)(1002 00 49 4B 16)就(jiu)(jiu)(jiu)可(ke)(ke)(ke)以理解為(wei)(wei):00呼(hu)叫(jiao)02,聽(ting)到(dao)(dao)請(qing)回(hui)答。 10起(qi)始符 02是(shi)(shi)上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)要(yao)(yao)聯系的(de)(de)(de)(de)(de)下(xia)(xia)位(wei)(wei)(wei)(wei)級的(de)(de)(de)(de)(de)地(di)址站(zhan)號(hao),就(jiu)(jiu)(jiu)是(shi)(shi)要(yao)(yao)找的(de)(de)(de)(de)(de)人 00就(jiu)(jiu)(jiu)是(shi)(shi)上(shang)(shang)位(wei)(wei)(wei)(wei)級本本身自己的(de)(de)(de)(de)(de)站(zhan)號(hao)49尋呼(hu)指(zhi)(zhi)令(ling)(ling)(ling) 16終(zhong)止符 其中4B為(wei)(wei)校(xiao)(xiao)驗(yan)碼(ma),是(shi)(shi)這(zhe)(zhe)樣得來的(de)(de)(de)(de)(de):02+00+49的(de)(de)(de)(de)(de)最后(hou)(hou)兩位(wei)(wei)(wei)(wei)就(jiu)(jiu)(jiu)是(shi)(shi)校(xiao)(xiao)驗(yan)碼(ma),這(zhe)(zhe)就(jiu)(jiu)(jiu)是(shi)(shi)所(suo)說(shuo)的(de)(de)(de)(de)(de)偶校(xiao)(xiao)驗(yan)或稱(cheng)和校(xiao)(xiao)驗(yan)也稱(cheng)余校(xiao)(xiao)驗(yan),因為(wei)(wei)取的(de)(de)(de)(de)(de)是(shi)(shi)余數(shu)。計算器(qi)在16進制計算時(shi)(shi)公式(02+00+49)mod100得出(chu)(chu)的(de)(de)(de)(de)(de)數(shu)就(jiu)(jiu)(jiu)是(shi)(shi)校(xiao)(xiao)驗(yan)碼(ma),你(ni)(ni)計算一(yi)下(xia)(xia)是(shi)(shi)不(bu)是(shi)(shi)等于4B啊(a)!其他(ta)的(de)(de)(de)(de)(de)所(suo)有(you)(you)(you)PPI協議校(xiao)(xiao)驗(yan)都是(shi)(shi)如此。假(jia)如02站(zhan)號(hao)的(de)(de)(de)(de)(de)PLC收到(dao)(dao)尋呼(hu)信號(hao)那么(me)(me)(me)會(hui)回(hui)答: 10 00 02 0002 16  意(yi)思(si)是(shi)(shi):報告00 ,02收到(dao)(dao),請(qing)指(zhi)(zhi)示  這(zhe)(zhe)樣的(de)(de)(de)(de)(de)解釋(shi)是(shi)(shi)不(bu)是(shi)(shi)有(you)(you)(you)意(yi)思(si)啊(a)!你(ni)(ni)有(you)(you)(you)更(geng)好的(de)(de)(de)(de)(de)解釋(shi)嗎?接(jie)下(xia)(xia)來呢(ni),找到(dao)(dao)了要(yao)(yao)尋呼(hu)的(de)(de)(de)(de)(de)人PC就(jiu)(jiu)(jiu)是(shi)(shi)司令(ling)(ling)(ling)啦就(jiu)(jiu)(jiu)可(ke)(ke)(ke)以發(fa)(fa)號(hao)施令(ling)(ling)(ling)了,發(fa)(fa)號(hao)施令(ling)(ling)(ling)后(hou)(hou)PLC正(zheng)確(que)(que)接(jie)收后(hou)(hou)就(jiu)(jiu)(jiu)會(hui)發(fa)(fa)送E5 字符,意(yi)思(si)是(shi)(shi):“02洞兩明(ming)白”。其實啊(a),說(shuo)到(dao)(dao)這(zhe)(zhe)里PLC只說(shuo)他(ta)明(ming)白,他(ta)已經明(ming)白了上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)PC的(de)(de)(de)(de)(de)指(zhi)(zhi)示,但(dan)并沒有(you)(you)(you)執(zhi)(zhi)行(xing)命令(ling)(ling)(ling),那么(me)(me)(me)要(yao)(yao)怎么(me)(me)(me)他(ta)才(cai)執(zhi)(zhi)行(xing)命令(ling)(ling)(ling)呢(ni)?就(jiu)(jiu)(jiu)是(shi)(shi)上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)PC發(fa)(fa)出(chu)(chu)確(que)(que)認(ren)命令(ling)(ling)(ling)后(hou)(hou)才(cai)執(zhi)(zhi)行(xing)。這(zhe)(zhe)時(shi)(shi)上(shang)(shang)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)會(hui)發(fa)(fa)出(chu)(chu)(1002 5C 5E 16),意(yi)思(si)是(shi)(shi):“請(qing)立(li)即執(zhi)(zhi)行(xing)”。然后(hou)(hou)PLC就(jiu)(jiu)(jiu)干(gan)(gan)他(ta)應(ying)當干(gan)(gan)的(de)(de)(de)(de)(de)工作(zuo)了啊(a)!原來PLC也不(bu)容易啊(a),怪不(bu)得叫(jiao)下(xia)(xia)位(wei)(wei)(wei)(wei)機(ji)(ji)(ji)呢(ni)!

  說了這么(me)多亂(luan)不亂(luan)吶!目的就是要理(li)清上(shang)下級關(guan)(guan)系、主從關(guan)(guan)系,指令的順序(xu),用一個好的記憶方法記住枯(ku)燥無味的機器碼。

讀命令(ling)分析一次讀一條數據
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)目標地址,指該地址的值,就是PLC的地址
DA:(Destination Address)本地地址,指該地址的指針,就是上位機自己的地址
FC:(Function Code)功能碼,5CH為交替周期觸發,6CH為首次信息周期觸發,7CH為交替周期觸發。
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。
對(dui)于一次讀(du)取一個(ge)數(shu)據,讀(du)命令(ling)都(dou)是(shi)33個(ge)字節。前面(mian)的0—21字節是(shi)相同的,為

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

開始符

長度

長度

開始符

站號

源地址

功能碼

協議識別

遠程控制

冗余識別

冗余識別

協議數據

單元參考

參數長度

參數長度

數據長度

數據長度

04讀05寫

變量地址數

 

 

默認ID

68

1B

1B

68

02

00

6C

32

01

00

00

00

00

00

0E

00

00

04

01

12

0A

10

下(xia)面我們列表(biao)分析讀(du)取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

讀取長度

數據個數

存儲器類型

偏移量

校驗碼

結束符

02

00

08

00

00

03

00

05

E0

D2

16

因(yin)為是(shi)PC上(shang)(shang)發(fa)的(de)(de)(de)讀(du)PLC數據(ju)的(de)(de)(de)命(ming)令(ling),SA=00,DA=02,如果(guo)有多(duo)個站(zhan),DA要改成相(xiang)應(ying)的(de)(de)(de)站(zhan)號。讀(du)命(ming)令(ling)中從(cong)DA到DU的(de)(de)(de)長度為1B即(ji)27個字節(jie)。從(cong)22字節(jie)開(kai)始根據(ju)讀(du)取數據(ju)的(de)(de)(de)類型、位置不同(tong)而不同(tong)。上(shang)(shang)表是(shi)讀(du)不同(tong)存(cun)儲器命(ming)令(ling)的(de)(de)(de)Byte22—32。

字節

22

23

24

25

26

27

28

29

30

31

32

功能

讀取長度16位小端

數據個數16位小端

存儲器類型

偏移量

校驗碼

結束符

讀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 讀取數據的長度
01:1 Bit 02:1 Byte 
04:1 Word 06:Double Word
Byte 24數據個數,這里是01 ,一次讀多個數據時見下面的說明。
Byte 26 存儲器類型,01:V存儲器 00:其它
Byte 27 存儲器類型
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進制就是320H,則Byte 28—29這三個字節就是:00 03 20。
Byte 31 校驗和,前面已說到這是從(DA+SA+DSAP+SSAP+DU) Mod 256 。
一次讀多條數據
對于一次讀多個數據的情況,前21Byte與上面相似只是長度LD,LDr及Byte 14不同:
Byte 14 數據塊占位字節,它指明數據塊占用的字節數。與數據塊數量有關,長度=4+數據塊數*10,如:一條數據時為4+10=0E(H);同時讀M,V,Q三個不同的數據塊時為4+3*10=22(H)。
Byte 22 總是02 即以Byte為單位。
Byte 24 以字節為單位,連續讀取的字節數。如讀2個VD則Byte24=8
Byte 19---30 按上述一次讀一個數據的格式依次列出,
Byte 31---42 另一類型的數據,也是按上述格式給出。
以此(ci)類推,一次(ci)最多讀取222個字(zi)節的數據。


寫命(ming)令分析(xi):一次寫(xie)一個Double Word類型的(de)數(shu)(shu)據,寫(xie)命令是40個字節,其余為38個字節。寫(xie)一個Double Word類型的(de)數(shu)(shu)據,前面的(de)0—21字節為 :

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

開始符

長度

長度

開始符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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
寫一個其它類型的數據,前面的0—21字節為 :(與上面比較,只是長度字節發生變化)
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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

數據長度

數據個數

存儲類型

偏移量

數據形式

數據位數

寫入值

校驗碼

終止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

從22字節開始根據寫入數據的值和位置不同而變化。上表是幾個寫命令的Byte22—40。
字 節 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3839 40
寫入位置及值長度 個數 類型 偏移量 位數 值、校驗碼、 結束符
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

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


看完上面的(de)指令分析(xi)我們現在就舉例幾個常用(yong)的(de)PPI協議來分析一下:
PC尋呼:10 02 00 49 4B 16 
PLC返回:10 00 02 02 04 16
PC發送:10 02 00 5C5E 16 
PLC返回: E5
我們先來看看西門子S7-200PLC的讀取密碼指令:
請用串口軟件以16進制發送,端口設置9600;e;8;1 
發送: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位開始的8個字符(這就是8個密碼數值)。
如果通訊無誤,PLC會返回 E5,意思:已經收到
那么這時上位機再次發送指令 10 02 00 5C 5E 16 意思:請執行命令。(說到這里打住一下,PLC返回E5指令后上位機PC要在很短的時間內發送確認指令,晚了剛才的指令就無效了具體多長時間我也沒測準,反正1、2秒時間是沒有問題的。)那么這時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

寫指令:先發10 02 00 5C 5E 16 后發寫指令

 

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

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

發   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

收(shou)到E5 說(shuo)明寫(xie)入完成(只要報文(wen)長(chang)度(du),跟校驗(yan)碼對了,就會回復E5)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

開始符

報文長度

報文長度

開始符

目標

地址(PLC

源站地址(上位機)

功能碼

 

 

 

 

 

 

 

 

 

 

 

 

 

 

68

20

20

68

02

00

7C

32

01

00

00

00

00

00

0E

00

05

05

01

12

0A

10

報文長度為: 目標地址 到(dao) 倒(dao)數第(di)二位的校驗位前(qian)面 的字(zi)節長度(根(gen)據寫入值不通報文長度不同)

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

17位:05表示寫入;04表示讀(du)取(qu)。

16位: 16位的05表示寫入的是 位或者字節(即用一(yi)個(ge)字節存儲(chu))

       06 表(biao)(biao)示(shi) 字(zi)(zi);  08表(biao)(biao)示(shi)雙字(zi)(zi)(4個(ge)字(zi)(zi)節); 0C表(biao)(biao)示(shi)8個(ge)字(zi)(zi)節

 

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

數據長度

數據個數

存儲類型

偏移量

數據形式

數據位數

寫入值

校驗碼

終止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

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

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

存儲類型:26位:01 V區(qu);00其(qi)他。

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表(biao)示(shi)位)

例如:10.3=101 0.011 即00 00 53

數(shu)據(ju)形式:03表示位;04表示其他。

數據位數:即寫入(ru)數據多少位。01一位;08八位;10十(shi)六(liu)位;20三(san)十(shi)二(er)位。

寫(xie)入值:寫(xie)入位(wei),字節均(jun)用(yong)一個字節存儲(chu);寫(xie)入雙字得用(yong)四個字節。

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

終止符:16H

 

若M10.3=1寫入,  00 00 53             01 D3 (校驗碼D3是從開頭(tou)第(di)五個02到倒數(shu)第(di)三(san)個01的所有數(shu)字的偶(ou)校驗(算術(shu)和(he)))      

因為 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、寫V區一個字節(jie)(例(li)子VB100=10H)

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

發: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、寫V區一個字(雙(shuang)字)

發: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

發: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

讀指令:先發讀指令,后發10 02 005C 5E 16

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

先發讀取命令:

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  (紅色(se)或(huo)者改為04 00 01 00 校驗(yan)也得(de)改)

回復 E5

然后發(fa)送(song) 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

讀取長度

數據個數

存儲器類型

偏移量

校驗碼

結束符

02

00

08

00

00

03

00

05

E0

D2

16

讀指令的前21位都是相(xiang)同(tong)的。讀取長(chang)度,數據(ju)個數,存儲類型,偏(pian)移量(liang)都與寫指令里(li)面的定義一(yi)樣。

 

收到數據中的

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

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

24:表(biao)(biao)示讀取數(shu)值的位(wei)(wei)(wei)數(shu)。01表(biao)(biao)示一位(wei)(wei)(wei);08八位(wei)(wei)(wei);10十六位(wei)(wei)(wei);20三(san)十二位(wei)(wei)(wei)。

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

若(ruo)回復F9(會產生不同結果,但接受值不變)

然后發送 10 02 00 5C 5E 16

收到數據:(關(guan)閉串口再打開的(de)不同結果)

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、讀(du)取VB10后面的8個(ge)字節

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

發送: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

然(ran)后發送 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時

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時

5、讀取Q1.3

發送: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

發送(song):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

 

             ------摘錄自網絡

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

地址:云南省昆明市官渡區國貿路725號宏興大廈A1402   電話:0871-67322190  傳真:0871-67328055   手機:137 5915 9589
友情鏈接: 您是第: 位訪問網站