女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過簡(jiǎn)單易行的操作解析出siemens MPI協(xié)議的報(bào)文格式

1bGT_GKYXT1508 ? 來源:未知 ? 作者:李倩 ? 2018-05-31 15:42 ? 次閱讀

摘要:在使用上位機(jī)西門子s7300系列PLC實(shí)現(xiàn)自動(dòng)化過程控制當(dāng)中,選擇MPI協(xié)議進(jìn)行通信時(shí),PLC可以不用編程,而且可讀寫所有數(shù)據(jù)區(qū),快捷方便。但是西門子公司沒有公布MPI協(xié)議的格式,用戶如果想使用MPI協(xié)議監(jiān)控,就必須購(gòu)買其監(jiān)控產(chǎn)品或第三方廠家的組態(tài)軟件。這樣給用戶自主開發(fā)帶來一定困難,特別是自行開發(fā)的現(xiàn)場(chǎng)設(shè)備就不能通過MPI協(xié)議接入PLC。而采用其它通訊方式也存在編程復(fù)雜,需要購(gòu)買軟件和授權(quán)等局限性。本文通過數(shù)據(jù)監(jiān)視、采集、分析的方法,解析出了MPI協(xié)議的關(guān)鍵報(bào)文格式,可用于實(shí)現(xiàn)上位機(jī)、現(xiàn)場(chǎng)設(shè)備與支持MPI協(xié)議的CPU之間通訊,從而提供了一種高效率低成本的通信方式。

前言

工業(yè)的現(xiàn)代化,很大程度體現(xiàn)在工業(yè)生產(chǎn)過程的自動(dòng)化,其中信息的傳輸,數(shù)據(jù)的交換也成為評(píng)價(jià)工業(yè)自動(dòng)化水平高低的標(biāo)準(zhǔn)。網(wǎng)絡(luò)通迅方式的多樣化和通迅速率的高速化,使信息交換領(lǐng)域從設(shè)備控制層延伸到企業(yè)管理層。信息技術(shù)的飛速發(fā)展,促進(jìn)了自動(dòng)化系統(tǒng)結(jié)構(gòu)的變革,以網(wǎng)絡(luò)為主干的分布式控制系統(tǒng)已成為當(dāng)今自動(dòng)化系統(tǒng)的主流趨勢(shì)。因此,網(wǎng)絡(luò)通迅的實(shí)時(shí)性和可靠性,以及網(wǎng)絡(luò)故障的診斷和排除都成為工業(yè)網(wǎng)絡(luò)通信關(guān)注的焦點(diǎn)。MPI網(wǎng)絡(luò)是西門子工業(yè)控制系統(tǒng)中經(jīng)常用到的一種通迅方式,使用RS485物理接口進(jìn)行數(shù)據(jù)傳輸。下面主要闡述西門子MPI協(xié)議的解析方法以及關(guān)鍵報(bào)文格式。

MPI協(xié)議概述

MPI協(xié)議,其英文全名為Multi-point-Interface。在PLC之間可組態(tài)為主/主協(xié)議或主/從協(xié)議.如何操作依賴于設(shè)備類型:如果控制站都是s7—300/400系列PLC,那么就建立主/主連接關(guān)系,因?yàn)镸PI協(xié)議支持多主站通訊,所有的s7—300CPU都可配置為網(wǎng)絡(luò)主站,通過主/主協(xié)議可以實(shí)現(xiàn)PLC之間的數(shù)據(jù)交換。如果某些控制站是s7—200系列PLC,則可以建立主/從連接關(guān)系,因?yàn)閟7—200 CPU是從站,用戶可以通過網(wǎng)絡(luò)指令實(shí)現(xiàn)s7—300 CPU對(duì)s7200 CPU的數(shù)據(jù)讀寫操作。

分析思路

西門子Step 7 V5.4軟件是S7-300系列PLC(包括ET200S)的開發(fā)工具,上位機(jī)通過其PCI插槽上的通訊卡(CP5613A2)接口以及通訊電纜連接到PLC的編程口上,并且通訊卡接口和PLC編程口都是RS485接口標(biāo)準(zhǔn)。這說明,PC機(jī)實(shí)際上是可以通過RS485串口同ET200 CPU(IM151-7)通訊,只是我們不知道通訊協(xié)議而已。因此,在上位機(jī)上運(yùn)用西門子提供的PRODAVE S7軟件讀寫PLC時(shí),通過監(jiān)視通訊口上的數(shù)據(jù),我們就有可能分析出通信報(bào)文格式。然后,撤掉西門子通訊卡,直接通過RS485串口向PLC發(fā)送報(bào)文來驗(yàn)證其正確性,并作進(jìn)一步的操作。本著這一思想,采用以下步驟獲得這些報(bào)文。

步驟

硬軟件需求

硬件:串口分支器及通訊電纜,西門子CP5613A2通訊卡,ADVANTECH公司PCI-1601A通訊卡,西門子ET200S(IM151-7CPU以及相關(guān)模塊)。

軟件:step7 v5.4 , simatic net 2006edition, prodave s7 , serial portmonitor,PCI1601A driver,visualc++

硬件連接如圖1-0

安裝完相關(guān)軟件及驅(qū)動(dòng)程序以后,進(jìn)行硬件測(cè)試以及軟件平臺(tái)搭建

(1)串口分支器制作及通訊電纜的連接(附錄A)

(2)運(yùn)用STEP 7 V5.4對(duì)ET200S組態(tài)以及相關(guān)初始化設(shè)置(附錄B)

(3)PCI1601A通訊卡的測(cè)試(附錄C)

(4)串口監(jiān)視軟件設(shè)置和測(cè)試(附錄D)

(5)PRODAVES7調(diào)試運(yùn)行(附錄E)

完成設(shè)置和調(diào)試后,打開串口監(jiān)視軟件,并將PLC上電,運(yùn)行PRODAVES7并在其中進(jìn)行各種操作(load、unload、read、write等)時(shí)啟動(dòng)數(shù)據(jù)監(jiān)視,通過比較分析發(fā)現(xiàn):

(1)與S7-200不同,ET200S不管出于何種狀態(tài)(run或stop),一經(jīng)上電,就不斷發(fā)出數(shù)據(jù)查找設(shè)備,在讀寫數(shù)據(jù)過程中也不間斷。

(2)連接、讀出、寫入和斷開時(shí)檢測(cè)到一系列有規(guī)律的數(shù)據(jù)。經(jīng)過多次監(jiān)測(cè)比較分析,可得到相關(guān)操作的數(shù)據(jù)幀格式,初始化設(shè)定PLC與上位機(jī)的地址分別為02和00;為描述方便,現(xiàn)在對(duì)數(shù)據(jù)幀格式做以下符號(hào)約定

SD:(Start Delimiter)開始定界符

LE:(Length)報(bào)文長(zhǎng)度

LER:(Repeated Length)重復(fù)數(shù)據(jù)長(zhǎng)度

SD: (StartDelimiter)開始定界符

DA:(DestinationAddress)目標(biāo)地址

SA:(Source Address)源地址

FC:(Function Code)功能碼

DSAP:(DestinationService Access Point)目的服務(wù)存取點(diǎn)

SSAP:(Source ServiceAccess Point)源服務(wù)存取點(diǎn)

FS:(Frame Sequence)幀序列號(hào)

UU:(unkown unit)未知操作單元,其數(shù)值通常為固定值

GU:(group unit)分組單元

DU:(Data Unit)數(shù)據(jù)單元

FCS:(Frame CheckSequence)校驗(yàn)碼

END:(End Delimiter)結(jié)束分界符

分析結(jié)果

連接(load)過程

(1)設(shè)備查找

在PLC(ET200S)上電啟動(dòng)進(jìn)入run狀態(tài)后,開始不斷發(fā)出數(shù)據(jù)查找設(shè)備,數(shù)據(jù)幀格式如下。DA從00到1F共32個(gè)站號(hào),令牌幀和總線訪問幀按照嚴(yán)格的幀時(shí)序(15幀/s),交替發(fā)出。

令牌幀:DC DA SA

DC DA 02

總線訪問幀: SD DA SA FC FCS END

10 DA 02 49 FCS 16

在prodave s7中運(yùn)行Load命令后,上位機(jī)也開始不斷發(fā)出數(shù)據(jù)查找設(shè)備,數(shù)據(jù)幀格式如下。DA從00到1F共32個(gè)站號(hào),令牌幀和總線訪問幀按照嚴(yán)格的幀時(shí)序(19幀/s),交替發(fā)出。

令牌幀: DC DA SA

DC DA 00

總線訪問幀: SD DA SA FC FCS END

10 DA 00 49FCS16

SD、DC、FC、END均占據(jù)一個(gè)字節(jié)長(zhǎng)度,為固定數(shù)值,分別等于10、DC 49、16,F(xiàn)CS采用求和校驗(yàn),等于DA+SA+FC。

(2)握手

上位機(jī)在收到et200s發(fā)出的令牌幀(dc 02 02)后以其令牌幀(dc 00 00)作為回復(fù),等待et200s應(yīng)答,如果收到dc 00 02,pc機(jī)立即回復(fù)dc 02 00,令牌握手成功。總線訪問握手方式與令牌握手一致。在讀寫操作過程中,應(yīng)答握手也不間斷。

讀取操作

一次讀操作的步驟包括上位機(jī)發(fā)出讀命令幀(pc_request_frame_read),PLC作出正確的響應(yīng),并將確認(rèn)信息幀(plc_ack_frame_read)返回給上位機(jī),接著反饋回正確的數(shù)據(jù)信息幀(plc_return_frame_read)給上位機(jī),上位機(jī)接到此幀數(shù)據(jù),校驗(yàn)確定后對(duì)PLC做出確認(rèn)信息幀(pc_ack_frame_read),這樣完成一個(gè)讀取數(shù)據(jù)的過程。在讀取操作過程中,上位機(jī)和PLC共進(jìn)行兩次應(yīng)答。

讀取命令

讀取數(shù)據(jù)時(shí)上位機(jī)的請(qǐng)求幀格式如下,該幀占據(jù)38字節(jié)長(zhǎng)度,記作pc_request_frame_read(38)。

SD LE LER SD占據(jù)4字節(jié)長(zhǎng)度,為固定值。

pc_request_frame_read(0)=68

pc_request_frame_read(1)= 1F,幀長(zhǎng)度校驗(yàn),為DA+SA+FC+DSAP+SSAP+FS+GU+DU的字節(jié)個(gè)數(shù)。

pc_request_frame_read(2)=1F重復(fù)幀長(zhǎng)度,與幀長(zhǎng)度校驗(yàn)記法相同。

pc_request_frame_read(3)=68

DA SA FC DSAPSSAPFS各占據(jù)7字節(jié)。

pc_request_frame_read(4)=82數(shù)值上等于目標(biāo)站地址加上80

pc_request_frame_read(5)=80數(shù)值上等于源站地址加上80

pc_request_frame_read(6)=5C、7C

pc_request_frame_read(7)=16、15

pc_request_frame_read(8)=02、01

pc_request_frame_read(9)=F1為分界符,其值不變。

pc_request_frame_read(10)=00~FF,幀序號(hào),對(duì)相同操作時(shí)自加計(jì)數(shù)。在應(yīng)答握手時(shí)用來判斷當(dāng)前應(yīng)答幀是否為本請(qǐng)求的應(yīng)答。

UU占據(jù)6字節(jié)長(zhǎng)度,均為固定值

pc_request_frame_read(11)=32

pc_request_frame_read(12)=01

pc_request_frame_read(13)=00

pc_request_frame_read(14)=00

pc_request_frame_read(15) =33

pc_request_frame_read(16)=02、01

GU占據(jù)6字節(jié)長(zhǎng)度,混合讀寫時(shí)可以進(jìn)行操作

pc_request_frame_read(17)=00

pc_request_frame_read(18)=0E

pc_request_frame_read(19)=00

pc_request_frame_read(20)=00

pc_request_frame_read(21)=04

pc_request_frame_read(22)

單一讀寫時(shí)pc_request_frame_read(22)=01,其他不變化;

混合讀寫時(shí)pc_request_frame_read(22)為其他值。

DU單元占據(jù)12字節(jié)長(zhǎng)度從pc_request_frame_read(23)到pc_request_frame_read(26)這4字節(jié)為固定數(shù)值

pc_request_frame_read(23)=12

pc_request_frame_read(24)=0A

pc_request_frame_read(25)=10

pc_request_frame_read(26)=02

pc_request_frame_read(27)和pc_request_frame_read(28)這2字節(jié)共同表示讀取的數(shù)據(jù)個(gè)數(shù),當(dāng)讀取的存儲(chǔ)區(qū)是I、Q、M、DB時(shí)表示字節(jié)個(gè)數(shù),當(dāng)存儲(chǔ)區(qū)是C、T時(shí)表示讀取的計(jì)數(shù)器或定時(shí)器的個(gè)數(shù)。

如果讀取兩個(gè)字節(jié),則為:

pc_request_frame_read(27)=00

pc_request_frame_read(28)=02

如果讀取一個(gè)計(jì)數(shù)器或者定時(shí)器,則為:

pc_request_frame_read(27)=00

pc_request_frame_read(28)=01

pc_request_frame_read(29)、pc_request_frame_read(30)共同表示要操作的DB號(hào),如果讀取其他區(qū),則二者分別為00 00。

pc_request_frame_read(31)表示存儲(chǔ)區(qū)類型,具體參考表1-1

pc_request_frame_read(32)

pc_request_frame_read(33)

pc_request_frame_read(34)共同表示操作的起始地址,對(duì)于I、Q、M、DB存儲(chǔ)區(qū)按照bit計(jì)算,對(duì)C、T存儲(chǔ)區(qū)按照其個(gè)數(shù)計(jì)算。

若讀取DB1B1時(shí)則依次為

pc_request_frame_read(32)=00

pc_request_frame_read(33)=00

pc_request_frame_read(34)=08

若讀取C1或T1時(shí)則為

pc_request_frame_read(32)=00

pc_request_frame_read(33)=00

pc_request_frame_read(34)=01

pc_request_frame_read(35)是幀校驗(yàn)碼,采用和取余算法

(DA+SA+FC+DSAP+SSAP+FC+UU+GU+DU)mod 16#100

pc_request_frame_read(36)、pc_request_frame_read(37)是結(jié)束符,為固定值,分別等于16 E5。

PLC接收到請(qǐng)求命令(pc_request_frame_read)時(shí),確認(rèn)后返回一個(gè)數(shù)據(jù)幀表示回應(yīng),占據(jù)15字節(jié)長(zhǎng)度,記作plc_ack_frame_read(15),格式如下:

SD LE LER SD

plc_ack_frame_read(0)=68

plc_ack_frame_read(1)=08

plc_ack_frame_read(2)=08

plc_ack_frame_read(3)=68

DA、SA

plc_ack_frame_read(4)=80

plc_ack_frame_read(5)=82

FC

plc_ack_frame_read(6)=7C 5C

DSAP、SSAP

plc_ack_frame_read(7)=02

plc_ack_frame_read(8)=16

UU

plc_ack_frame_read(9)=B0

plc_ack_frame_read(10)=01

FS

plc_ack_frame_read(11)

幀序號(hào),和pc_request_frame_read(10)保持一致。

FCS

plc_ack_frame_read(12)

幀校驗(yàn),等于(DA+SA+FC+DSSAP+SSAP+UU+FS+FCS)mod 16#100

END

plc_ack_frame_read(13)=16

plc_ack_frame_read(14)=E5

在發(fā)送完響應(yīng)數(shù)據(jù)幀(plc_ack_frame_read)后PLC接著給上位機(jī)反饋其所要讀取的數(shù)據(jù)信息幀(plc_return_frame_read),其長(zhǎng)度因讀取字節(jié)個(gè)數(shù)而長(zhǎng)短不定,格式如下:

SD LE LER SD

plc_return_frame_read(0)=68

plc_return_frame_read(1)

plc_return_frame_read(2)

plc_return_frame_read(3)=68

DA SA FC DSAPSSAP FS各占一個(gè)字節(jié)

plc_return_frame_read(4)=80

plc_return_frame_read(5)=82

plc_return_frame_read(6)=5C

plc_return_frame_read(7)=16

plc_return_frame_read(8)=02

plc_return_frame_read(9)分界符,為固定值F1

plc_return_frame_read(10),與plc_ack_frame(11)保持一致。

UU占據(jù)8個(gè)字節(jié)長(zhǎng)度,均為固定值

plc_return_frame_read(11)=32

plc_return_frame_read(12)=03

plc_return_frame_read(13)=00

plc_return_frame_read(14)=00

plc_return_frame_read(15)=33

plc_return_frame_read(16)=02

plc_return_frame_read(17)=00

plc_return_frame_read(18)=02

GU占據(jù)6字節(jié)長(zhǎng)度

plc_return_frame_read(19)=00

plc_return_frame_read(20)

等于讀取的自己個(gè)數(shù)加4,如果讀取一個(gè)字節(jié)時(shí)為05

plc_return_frame_read(21)=00

plc_return_frame_read(22)=00

plc_return_frame_read(23)=04

plc_return_frame_read(24)

單一讀取時(shí)為01,分組讀取時(shí)為其他值。

DU占據(jù)(4+pc_request_frame_read(27)+pc_request_frame_read(28))字節(jié)長(zhǎng)度

plc_return_frame_read(25)=FF

plc_return_frame_read(26)=04

plc_return_frame_read(27)、plc_return_frame_read(28)共同表示返回所讀取的數(shù)據(jù)位數(shù),按照bit計(jì)算;如果讀取了一個(gè)字節(jié),則他們分別為00、08。

PLC返回所要讀取的數(shù)據(jù),按照從低地址到高地址的順序依次存放。

plc_return_frame_read(29)

plc_return_frame_read(30)

.

.

plc_return_frame_read(n)

n=28+讀取的字節(jié)數(shù)

plc_return_frame_read(n+1)為FCS,采用和取余校驗(yàn)。

END

plc_return_frame_read(n+2)=16

plc_return_frame_read(n+3)=E5

上位機(jī)在接收到數(shù)據(jù)經(jīng)過確認(rèn)以后向PLC發(fā)送一個(gè)確認(rèn)幀(pc_ack_frame_read),一共15字節(jié)長(zhǎng)度,記作pc_ack_frame_read(15)。

格式如下:

SD LE LER SD

pc_ack_frame_read(0)=68

pc_ack_frame_read(1)=08

pc_ack_frame_read(2)=08

pc_ack_frame_read(3)=68

DA SA

pc_ack_frame_read(4)=82

pc_ack_frame_read(5)=80

FC

pc_ack_frame_read(6)=5C

DSAP SSAP

pc_ack_frame_read(7)=16

pc_ack_frame_read(8)=02

UU

pc_ack_frame_read(9)=B0

pc_ack_frame_read(10)=07

FS

pc_ack_frame_read(11)和plc_return_frame(10)保持一致

FCS

pc_ack_frame_read(12)

采用求和取余校驗(yàn)算法,等于(DA+SA+FC+DSSAP+SSAP+UU+FS)mod 16#100

END

pc_ack_frame_read(13)=16

pc_ack_frame_read(14)=E5

讀數(shù)據(jù)過程完成。

寫入操作

一次完整的寫入操作步驟包括:首先上位機(jī)發(fā)出寫命令信息幀(pc_request_frame_write),PLC接收以后判斷,若正確,則做出響應(yīng),并將確認(rèn)信息(plc_ack_frame_write)幀返回給上位機(jī),并反饋回正確的數(shù)據(jù)(plc_return_frame_write)幀給上位機(jī),上位機(jī)接到此幀數(shù)據(jù),校驗(yàn)正確后對(duì)PLC做出確認(rèn)信息(pc_ack_frame_write),這樣就完成一個(gè)讀取數(shù)據(jù)的過程。在讀取操作過程中,上位機(jī)和PLC共進(jìn)行兩次應(yīng)答。

寫入時(shí)上位機(jī)的請(qǐng)求幀(pc_request_frame_write)所占據(jù)字節(jié)長(zhǎng)度不確定,跟寫入的數(shù)據(jù)個(gè)數(shù)有關(guān)。記作pc_request_frame_write(),格式如下:

SD LE LER SD

pc_request_frame_write(0)=68

pc_request_frame_write(1)pc_request_frame_write(2)寫入一個(gè)字節(jié)時(shí)為24,寫入兩個(gè)字節(jié)時(shí)為25…

pc_request_frame_write(3)=68

DA SA FCDSAP SSAP FS

pc_request_frame_write(4)=82

pc_request_frame_write(5)=80

pc_request_frame_write(6)=5C

pc_request_frame_write(7)=16

pc_request_frame_write(8)=02

pc_request_frame_write(9)=F1

pc_request_frame_write(10)為幀序號(hào),從00到FF

UU占據(jù)6字節(jié)長(zhǎng)度

pc_request_frame_write(11)= 32

pc_request_frame_write(12)=01

pc_request_frame_write(13)=00

pc_request_frame_write(14)=00

pc_request_frame_write(15)=43

pc_request_frame_write(16)=02

GU占據(jù)6字節(jié)長(zhǎng)度

pc_request_frame_write(17)=00

pc_request_frame_write(18)=0E

pc_request_frame_write(19)、pc_request_frame_write(20)共同表示寫入的字節(jié)個(gè)數(shù)加4。如果要寫入2個(gè)字節(jié),則依次為00、06。

pc_request_frame_write(21)=05

pc_request_frame_write(22)=01

DU占據(jù)的長(zhǎng)度和要寫入的字節(jié)個(gè)數(shù)有關(guān),其長(zhǎng)度為

(16+ pc_request_frame_write(21)+pc_request_frame_write(22)- 4)個(gè)字節(jié),置復(fù)位操作按照一個(gè)字節(jié)計(jì)算。

pc_request_frame_write(23)=12

pc_request_frame_write(24)=0A

pc_request_frame_write(25)=10

pc_request_frame_write(26)與存儲(chǔ)區(qū)有關(guān),當(dāng)寫C區(qū)時(shí),為1C, M區(qū)置復(fù)位時(shí)為01,寫其他存儲(chǔ)區(qū)為02

pc_request_frame_write(27)=00

pc_request_frame_write(28)=01

pc_request_frame_write(29)、pc_request_frame_write(30)共同表示所要寫入的DB號(hào),寫其他存儲(chǔ)區(qū)時(shí),為00 00,注意I區(qū)和T區(qū)不能進(jìn)行寫操作。

pc_request_frame_write(31)表示存儲(chǔ)區(qū)類型,參考表1-2

pc_request_frame_write(32)

pc_request_frame_write(33)

pc_request_frame_write(34)

以上三個(gè)字節(jié)表示要寫入的起始地址。對(duì)于C區(qū),則為起始計(jì)數(shù)器的編號(hào),若對(duì)C2寫入,則依次為00 00 02。對(duì)其他區(qū)寫操作時(shí)則表示起始位地址,如果要寫DB1B1,則依次為00、00、08。

pc_request_frame_write(35)、pc_request_frame_write(36)與存儲(chǔ)區(qū)有關(guān),寫入C區(qū)時(shí)依次為00 09,置復(fù)位操作時(shí)依次為00 03,寫入其他區(qū)(包括對(duì)M區(qū)寫入字節(jié))是依次為00、04。

pc_request_frame_write(37)、pc_request_frame_write(38)共同表示寫入的數(shù)據(jù)量,與存儲(chǔ)區(qū)類型有關(guān)。寫C區(qū)時(shí)表示寫入的字節(jié)個(gè)數(shù),例如對(duì)一個(gè)計(jì)數(shù)器進(jìn)行寫操作,則其值依次為00、02;寫其他存儲(chǔ)區(qū)區(qū)時(shí)表示要寫入的數(shù)據(jù)位數(shù),按照bit計(jì)算,若寫DB1B0,則依次為00、08。

pc_request_frame_write(39)

pc_request_frame_write(40)

pc_request_frame_write(41)

.

.

pc_request_frame_write(n)

以上若干字節(jié)表示要寫入的數(shù)據(jù),按照低地址到高地址的順序排列,其中對(duì)C區(qū)進(jìn)行寫操作時(shí),數(shù)據(jù)表示為BCD碼,對(duì)其他其他存儲(chǔ)區(qū)寫入時(shí),數(shù)據(jù)均為十六進(jìn)制格式表示。

n=38+ pc_request_frame_write(19)+pc_request_frame_write(20)- 4)。

pc_request_frame_write(n+1)為FCS,采用求和取余算法,等于

(DA+SA+FC+DSAP+SSAP+FS+UU+GU+DU)mod 16#100

END

pc_request_frame_write(n+2)=16

pc_request_frame_write(n+3)=E5

PLC在接收到請(qǐng)求數(shù)據(jù)幀確認(rèn)后,返回確認(rèn)信息幀(plc_ack_frame_write)

占據(jù)15字節(jié)長(zhǎng)度,格式如下:

SD LE LER SD

plc_ack_frame_write(0)=68

plc_ack_frame_write(1)=08

plc_ack_frame_write(2)=08

plc_ack_frame_write(3)=68

DA SA FCDSAP SSAP

plc_ack_frame_write(4)=80

plc_ack_frame_write(5)=82

plc_ack_frame_write(6)=5C

plc_ack_frame_write(7)=02

plc_ack_frame_write(8)=16

UU

plc_ack_frame_write(9)=B0

plc_ack_frame_write(10)=01

FS

plc_ack_frame_write(11)與pc_request_frame_write(10)保持一致。

FCS

plc_ack_frame_write(12),采用求和取余校驗(yàn)算法。

END

plc_ack_frame_write(13)=16

plc_ack_frame_write(14)=E5

plc_return_frame_write幀格式

記作plc_return_frame_write(29)

SD LE LER SD

plc_return_frame_write(0)=68

plc_return_frame_write(1)=16

plc_return_frame_write(2)=16

plc_return_frame_write(3)=68

DA SA FCDSAP SSAP FS

plc_return_frame_write(4)=80

plc_return_frame_write(5)=82

plc_return_frame_write(6)=7C

plc_return_frame_write(7)=02

plc_return_frame_write(8)=16

plc_return_frame_write(9)=F1

plc_return_frame_write(10),F(xiàn)S,同plc_ack_frame_write(11)保持一致。

UU占據(jù)15字節(jié)長(zhǎng)度

plc_return_frame_write(11)=32

plc_return_frame_write(12)=03

plc_return_frame_write(13)=00

plc_return_frame_write(14)=00

plc_return_frame_write(15)=43

plc_return_frame_write(16),和pc_request_frame_write(16)保持一致。

plc_return_frame_write(17)=00

plc_return_frame_write(18)=02

plc_return_frame_write(19)=00

plc_return_frame_write(20)=01

plc_return_frame_write(21)=00

plc_return_frame_write(22)=00

plc_return_frame_write(23)=05

plc_return_frame_write(24)=01

plc_return_frame_write(25)=FF

FCS

plc_return_frame_write(26),采用求和取余校驗(yàn)算法。

END

plc_return_frame_write(27)=16

plc_return_frame_write(28)=E5

pc_ack_frame_write幀格式

記作pc_ack_frame_write(15)

SD LE LER SD

pc_ack_frame_write(0)=68

pc_ack_frame_write(1)=08

pc_ack_frame_write(2)=08

pc_ack_frame_write(3)=68

DA SA FCDSAP SSAP

pc_ack_frame_write(4)=82

pc_ack_frame_write(5)=80

pc_ack_frame_write(6)=7C

pc_ack_frame_write(7)=16

pc_ack_frame_write(8)=02

UU

pc_ack_frame_write(9)=B0

pc_ack_frame_write(10)=07

FS

pc_ack_frame_write(11)plc_return_frame_write(29)保持一致。

FCS

pc_ack_frame_write(12)采用求和取余校驗(yàn)算法。

END

pc_ack_frame_write(13)=16

pc_ack_frame_write(14)=E5

寫數(shù)據(jù)過程完成。

對(duì)于讀寫數(shù)據(jù)幀的FC以及DSAP和SSAP做以說明

測(cè)試源碼見附錄F。

結(jié)束語(yǔ)

本文運(yùn)用串口監(jiān)視的方法,通過簡(jiǎn)單易行的操作解析出siemens MPI協(xié)議的報(bào)文格式,其結(jié)果具有很大的使用價(jià)值(1)使用戶不用購(gòu)買西門子專用的通訊處理卡就可以讓上位機(jī)和PLC的通信,從而實(shí)現(xiàn)所需控制功能,節(jié)約成本。(2)降低了用戶自主開發(fā)的難度,使通訊編程變得簡(jiǎn)單明了,無需購(gòu)買軟件和授權(quán)等就可以使用MPI協(xié)議監(jiān)控PLC的工作狀態(tài)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5031

    文章

    13744

    瀏覽量

    472279
  • SIEMENS
    +關(guān)注

    關(guān)注

    1

    文章

    21

    瀏覽量

    16007
  • MPI
    MPI
    +關(guān)注

    關(guān)注

    2

    文章

    114

    瀏覽量

    19923

原文標(biāo)題:全方面、多層次了解Siemens MPI協(xié)議

文章出處:【微信號(hào):GKYXT1508,微信公眾號(hào):工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    百問MQTT協(xié)議分析 - MQTT簡(jiǎn)述及協(xié)議報(bào)文格式組成

    城市、遠(yuǎn)程醫(yī)療、遠(yuǎn)程教育 g)電力、石油與能源等行業(yè)市場(chǎng) 16.2 mqtt協(xié)議報(bào)文格式組成 16.2.1 mqtt控制報(bào)文結(jié)構(gòu) MQTT 協(xié)議通過
    發(fā)表于 12-13 09:29

    基于dragonboard 410c使用python進(jìn)行GPS報(bào)文解析獲取位置信息

    的定位,是許多物聯(lián)網(wǎng)應(yīng)用的基礎(chǔ),這篇blog將向大家簡(jiǎn)單的介紹如何使用python腳本在dragonboard 410c上解析GPS報(bào)文數(shù)據(jù)。 首先我們需要了解GPS報(bào)文格式,這里我們
    發(fā)表于 09-28 11:54

    labview程序里面解析出來的大量數(shù)據(jù)(模擬量或者報(bào)文解析數(shù)據(jù))儲(chǔ)存到電腦別的盤 以EXcel文件格式儲(chǔ)存。

    labview程序里面解析出來的大量數(shù)據(jù)(模擬量或者報(bào)文解析數(shù)據(jù))儲(chǔ)存到電腦別的盤以EXcel文件格式儲(chǔ)存。要求儲(chǔ)存Excel文件內(nèi)部有讀取和需儲(chǔ)存文件名和數(shù)據(jù)
    發(fā)表于 03-22 09:23

    求大佬分享一種簡(jiǎn)單易行的可編程振蕩器構(gòu)建方法

    本文介紹一種簡(jiǎn)單易行的可編程振蕩器構(gòu)建方法,其中,振蕩頻率和幅度可以通過使用digiPOT來彼此獨(dú)立地調(diào)節(jié)。
    發(fā)表于 06-17 06:03

    榮小菜補(bǔ)鈣記第43期:報(bào)文合成與解析之字的合成與分解

    解析則指我們將收到報(bào)文格式分解并得到對(duì)應(yīng)的含義。可以看到,兩者其實(shí)是數(shù)據(jù)操作兩個(gè)方向,有不同但也有相通之處。如何比較好的實(shí)現(xiàn)報(bào)文合成與
    發(fā)表于 08-26 20:33

    簡(jiǎn)單易行,三方面闡述大功率LED散熱器的提升空間

    生產(chǎn)商現(xiàn)在更加追求簡(jiǎn)單易行的產(chǎn)品,既然是要求簡(jiǎn)單易行,結(jié)構(gòu)過于復(fù)雜的套件便難以入法眼。一向都是作為小菜的工業(yè)照明隨著幾家企業(yè)的大手筆投入。 形色各異的散熱器中年紀(jì)尚小的UFO款的散熱器套件似乎脫穎而出,一場(chǎng)展會(huì)下來起碼可以見到幾十家銷售UFO型Highbay的企業(yè)。
    發(fā)表于 11-05 08:57 ?1651次閱讀

    tcp報(bào)文格式詳解

    TCP(Transmission ControProtocol)傳輸控制協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。TCP報(bào)文是TCP層傳輸?shù)臄?shù)據(jù)單元,也稱為報(bào)文段。
    發(fā)表于 12-08 11:11 ?3.3w次閱讀
    tcp<b class='flag-5'>報(bào)文格式</b>詳解

    開關(guān)模式電源轉(zhuǎn)換器補(bǔ)償簡(jiǎn)單易行:功率級(jí)的特性介紹

    1.3 開關(guān)模式電源轉(zhuǎn)換器補(bǔ)償簡(jiǎn)單易行 —功率級(jí)第一部分
    的頭像 發(fā)表于 08-10 01:41 ?4268次閱讀

    一種基于粗糙集聚類的報(bào)文格式推斷方法

    報(bào)文格式推斷方法,該方法包括預(yù)處理、基于粗糙集的聚類、特征詞提取和報(bào)文格式推斷4個(gè)階段。首先,通過數(shù)據(jù)預(yù)處理分離出目標(biāo)報(bào)文中的業(yè)務(wù)類報(bào)文
    發(fā)表于 04-25 11:45 ?3次下載
    一種基于粗糙集聚類的<b class='flag-5'>報(bào)文格式</b>推斷方法

    網(wǎng)絡(luò)協(xié)議棧:MQTT的報(bào)文格式解析

    在上一篇文章,直接在本地搭建了服務(wù)器和客戶端,簡(jiǎn)單的實(shí)踐了MQTT的用法。而這一篇來解析MQTT的報(bào)文格式。MQTT的報(bào)文字段很精簡(jiǎn)。但是解析
    的頭像 發(fā)表于 05-13 14:06 ?5923次閱讀
    網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b>棧:MQTT的<b class='flag-5'>報(bào)文格式</b><b class='flag-5'>解析</b>

    Path延時(shí)測(cè)量相關(guān)報(bào)文格式介紹

    Pdelay_Req報(bào)文格式定義 如下圖15所示為IEEE802.1AS定義的報(bào)文格式定義: 圖15 Pdelay_Req報(bào)文格式定義 上圖中header與SYNCMessage頭信息定義
    的頭像 發(fā)表于 07-24 10:45 ?1391次閱讀
    Path延時(shí)測(cè)量相關(guān)<b class='flag-5'>報(bào)文格式</b>介紹

    如何讓超寬帶(UWB)信號(hào)測(cè)試變得簡(jiǎn)單易行

    如何讓超寬帶(UWB)信號(hào)測(cè)試變得簡(jiǎn)單易行? 隨著物聯(lián)網(wǎng)、智能家居和自動(dòng)駕駛等領(lǐng)域的不斷發(fā)展,超寬帶(UWB)信號(hào)的測(cè)試變得越來越重要。UWB信號(hào)不僅可以提供高帶寬和低功耗的無線通信,還可
    的頭像 發(fā)表于 10-22 11:41 ?1543次閱讀

    modbus報(bào)文解析,modbus報(bào)文格式詳解

    Modbus協(xié)議是一種通信協(xié)議,用于在工業(yè)自動(dòng)化系統(tǒng)中連接電子設(shè)備,用于在工業(yè)自動(dòng)化和控制系統(tǒng)中進(jìn)行數(shù)據(jù)交換。。Modbus協(xié)議通過串行通信線路(例如RS-485)或以太網(wǎng)進(jìn)行通信。M
    的頭像 發(fā)表于 01-09 16:45 ?6217次閱讀

    一種簡(jiǎn)單易行的可編程振蕩器構(gòu)建方法

    本文介紹一種簡(jiǎn)單易行的可編程振蕩器構(gòu)建方法,其中振蕩頻率和幅度可以通過使用digiPOT來彼此獨(dú)立地調(diào)節(jié)。
    發(fā)表于 01-15 10:05 ?456次閱讀
    一種<b class='flag-5'>簡(jiǎn)單易行</b>的可編程振蕩器構(gòu)建方法

    modbus報(bào)文解析,modbus報(bào)文格式詳解

    Modbus協(xié)議是一種通信協(xié)議,用于在工業(yè)自動(dòng)化系統(tǒng)中連接電子設(shè)備,用于在工業(yè)自動(dòng)化和控制系統(tǒng)中進(jìn)行數(shù)據(jù)交換。。Modbus協(xié)議通過串行通信線路(例如RS-485)或以太網(wǎng)進(jìn)行通信。M
    的頭像 發(fā)表于 04-16 15:16 ?3312次閱讀