摘要:在使用上位機和西門子s7300系列PLC實現(xiàn)自動化過程控制當中,選擇MPI協(xié)議進行通信時,PLC可以不用編程,而且可讀寫所有數(shù)據(jù)區(qū),快捷方便。但是西門子公司沒有公布MPI協(xié)議的格式,用戶如果想使用MPI協(xié)議監(jiān)控,就必須購買其監(jiān)控產品或第三方廠家的組態(tài)軟件。這樣給用戶自主開發(fā)帶來一定困難,特別是自行開發(fā)的現(xiàn)場設備就不能通過MPI協(xié)議接入PLC。而采用其它通訊方式也存在編程復雜,需要購買軟件和授權等局限性。本文通過數(shù)據(jù)監(jiān)視、采集、分析的方法,解析出了MPI協(xié)議的關鍵報文格式,可用于實現(xiàn)上位機、現(xiàn)場設備與支持MPI協(xié)議的CPU之間通訊,從而提供了一種高效率低成本的通信方式。
前言
工業(yè)的現(xiàn)代化,很大程度體現(xiàn)在工業(yè)生產過程的自動化,其中信息的傳輸,數(shù)據(jù)的交換也成為評價工業(yè)自動化水平高低的標準。網絡通迅方式的多樣化和通迅速率的高速化,使信息交換領域從設備控制層延伸到企業(yè)管理層。信息技術的飛速發(fā)展,促進了自動化系統(tǒng)結構的變革,以網絡為主干的分布式控制系統(tǒng)已成為當今自動化系統(tǒng)的主流趨勢。因此,網絡通迅的實時性和可靠性,以及網絡故障的診斷和排除都成為工業(yè)網絡通信關注的焦點。MPI網絡是西門子工業(yè)控制系統(tǒng)中經常用到的一種通迅方式,使用RS485物理接口進行數(shù)據(jù)傳輸。下面主要闡述西門子MPI協(xié)議的解析方法以及關鍵報文格式。
MPI協(xié)議概述
MPI協(xié)議,其英文全名為Multi-point-Interface。在PLC之間可組態(tài)為主/主協(xié)議或主/從協(xié)議.如何操作依賴于設備類型:如果控制站都是s7—300/400系列PLC,那么就建立主/主連接關系,因為MPI協(xié)議支持多主站通訊,所有的s7—300CPU都可配置為網絡主站,通過主/主協(xié)議可以實現(xiàn)PLC之間的數(shù)據(jù)交換。如果某些控制站是s7—200系列PLC,則可以建立主/從連接關系,因為s7—200 CPU是從站,用戶可以通過網絡指令實現(xiàn)s7—300 CPU對s7200 CPU的數(shù)據(jù)讀寫操作。
分析思路
西門子Step 7 V5.4軟件是S7-300系列PLC(包括ET200S)的開發(fā)工具,上位機通過其PCI插槽上的通訊卡(CP5613A2)接口以及通訊電纜連接到PLC的編程口上,并且通訊卡接口和PLC編程口都是RS485接口標準。這說明,PC機實際上是可以通過RS485串口同ET200 CPU(IM151-7)通訊,只是我們不知道通訊協(xié)議而已。因此,在上位機上運用西門子提供的PRODAVE S7軟件讀寫PLC時,通過監(jiān)視通訊口上的數(shù)據(jù),我們就有可能分析出通信報文格式。然后,撤掉西門子通訊卡,直接通過RS485串口向PLC發(fā)送報文來驗證其正確性,并作進一步的操作。本著這一思想,采用以下步驟獲得這些報文。
步驟
硬軟件需求
硬件:串口分支器及通訊電纜,西門子CP5613A2通訊卡,ADVANTECH公司PCI-1601A通訊卡,西門子ET200S(IM151-7CPU以及相關模塊)。
軟件:step7 v5.4 , simatic net 2006edition, prodave s7 , serial portmonitor,PCI1601A driver,visualc++。
硬件連接如圖1-0

安裝完相關軟件及驅動程序以后,進行硬件測試以及軟件平臺搭建
(1)串口分支器制作及通訊電纜的連接(附錄A)
(2)運用STEP 7 V5.4對ET200S組態(tài)以及相關初始化設置(附錄B)
(3)PCI1601A通訊卡的測試(附錄C)
(4)串口監(jiān)視軟件設置和測試(附錄D)
(5)PRODAVES7調試運行(附錄E)
完成設置和調試后,打開串口監(jiān)視軟件,并將PLC上電,運行PRODAVES7并在其中進行各種操作(load、unload、read、write等)時啟動數(shù)據(jù)監(jiān)視,通過比較分析發(fā)現(xiàn):
(1)與S7-200不同,ET200S不管出于何種狀態(tài)(run或stop),一經上電,就不斷發(fā)出數(shù)據(jù)查找設備,在讀寫數(shù)據(jù)過程中也不間斷。
(2)連接、讀出、寫入和斷開時檢測到一系列有規(guī)律的數(shù)據(jù)。經過多次監(jiān)測比較分析,可得到相關操作的數(shù)據(jù)幀格式,初始化設定PLC與上位機的地址分別為02和00;為描述方便,現(xiàn)在對數(shù)據(jù)幀格式做以下符號約定
SD:(Start Delimiter)開始定界符
LE:(Length)報文長度
LER:(Repeated Length)重復數(shù)據(jù)長度
SD: (StartDelimiter)開始定界符
DA:(DestinationAddress)目標地址
SA:(Source Address)源地址
FC:(Function Code)功能碼
DSAP:(DestinationService Access Point)目的服務存取點
SSAP:(Source ServiceAccess Point)源服務存取點
FS:(Frame Sequence)幀序列號
UU:(unkown unit)未知操作單元,其數(shù)值通常為固定值
GU:(group unit)分組單元
DU:(Data Unit)數(shù)據(jù)單元
FCS:(Frame CheckSequence)校驗碼
END:(End Delimiter)結束分界符
分析結果
連接(load)過程
(1)設備查找
在PLC(ET200S)上電啟動進入run狀態(tài)后,開始不斷發(fā)出數(shù)據(jù)查找設備,數(shù)據(jù)幀格式如下。DA從00到1F共32個站號,令牌幀和總線訪問幀按照嚴格的幀時序(15幀/s),交替發(fā)出。
令牌幀:DC DA SA
DC DA 02
總線訪問幀: SD DA SA FC FCS END
10 DA 02 49 FCS 16
在prodave s7中運行Load命令后,上位機也開始不斷發(fā)出數(shù)據(jù)查找設備,數(shù)據(jù)幀格式如下。DA從00到1F共32個站號,令牌幀和總線訪問幀按照嚴格的幀時序(19幀/s),交替發(fā)出。
令牌幀: DC DA SA
DC DA 00
總線訪問幀: SD DA SA FC FCS END
10 DA 00 49FCS16
SD、DC、FC、END均占據(jù)一個字節(jié)長度,為固定數(shù)值,分別等于10、DC 49、16,F(xiàn)CS采用求和校驗,等于DA+SA+FC。
(2)握手
上位機在收到et200s發(fā)出的令牌幀(dc 02 02)后以其令牌幀(dc 00 00)作為回復,等待et200s應答,如果收到dc 00 02,pc機立即回復dc 02 00,令牌握手成功??偩€訪問握手方式與令牌握手一致。在讀寫操作過程中,應答握手也不間斷。

讀取操作
一次讀操作的步驟包括上位機發(fā)出讀命令幀(pc_request_frame_read),PLC作出正確的響應,并將確認信息幀(plc_ack_frame_read)返回給上位機,接著反饋回正確的數(shù)據(jù)信息幀(plc_return_frame_read)給上位機,上位機接到此幀數(shù)據(jù),校驗確定后對PLC做出確認信息幀(pc_ack_frame_read),這樣完成一個讀取數(shù)據(jù)的過程。在讀取操作過程中,上位機和PLC共進行兩次應答。
讀取命令
讀取數(shù)據(jù)時上位機的請求幀格式如下,該幀占據(jù)38字節(jié)長度,記作pc_request_frame_read(38)。

SD LE LER SD占據(jù)4字節(jié)長度,為固定值。
pc_request_frame_read(0)=68
pc_request_frame_read(1)= 1F,幀長度校驗,為DA+SA+FC+DSAP+SSAP+FS+GU+DU的字節(jié)個數(shù)。
pc_request_frame_read(2)=1F重復幀長度,與幀長度校驗記法相同。
pc_request_frame_read(3)=68
DA SA FC DSAPSSAPFS各占據(jù)7字節(jié)。
pc_request_frame_read(4)=82數(shù)值上等于目標站地址加上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,幀序號,對相同操作時自加計數(shù)。在應答握手時用來判斷當前應答幀是否為本請求的應答。
UU占據(jù)6字節(jié)長度,均為固定值
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é)長度,混合讀寫時可以進行操作
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)
單一讀寫時pc_request_frame_read(22)=01,其他不變化;
混合讀寫時pc_request_frame_read(22)為其他值。
DU單元占據(jù)12字節(jié)長度從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ù)個數(shù),當讀取的存儲區(qū)是I、Q、M、DB時表示字節(jié)個數(shù),當存儲區(qū)是C、T時表示讀取的計數(shù)器或定時器的個數(shù)。
如果讀取兩個字節(jié),則為:
pc_request_frame_read(27)=00
pc_request_frame_read(28)=02
如果讀取一個計數(shù)器或者定時器,則為:
pc_request_frame_read(27)=00
pc_request_frame_read(28)=01
pc_request_frame_read(29)、pc_request_frame_read(30)共同表示要操作的DB號,如果讀取其他區(qū),則二者分別為00 00。
pc_request_frame_read(31)表示存儲區(qū)類型,具體參考表1-1

pc_request_frame_read(32)
pc_request_frame_read(33)
pc_request_frame_read(34)共同表示操作的起始地址,對于I、Q、M、DB存儲區(qū)按照bit計算,對C、T存儲區(qū)按照其個數(shù)計算。
若讀取DB1B1時則依次為
pc_request_frame_read(32)=00
pc_request_frame_read(33)=00
pc_request_frame_read(34)=08
若讀取C1或T1時則為
pc_request_frame_read(32)=00
pc_request_frame_read(33)=00
pc_request_frame_read(34)=01
pc_request_frame_read(35)是幀校驗碼,采用和取余算法:
(DA+SA+FC+DSAP+SSAP+FC+UU+GU+DU)mod 16#100
pc_request_frame_read(36)、pc_request_frame_read(37)是結束符,為固定值,分別等于16 E5。
PLC接收到請求命令(pc_request_frame_read)時,確認后返回一個數(shù)據(jù)幀表示回應,占據(jù)15字節(jié)長度,記作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)
幀序號,和pc_request_frame_read(10)保持一致。
FCS
plc_ack_frame_read(12)
幀校驗,等于(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ā)送完響應數(shù)據(jù)幀(plc_ack_frame_read)后PLC接著給上位機反饋其所要讀取的數(shù)據(jù)信息幀(plc_return_frame_read),其長度因讀取字節(jié)個數(shù)而長短不定,格式如下:

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各占一個字節(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個字節(jié)長度,均為固定值
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é)長度
plc_return_frame_read(19)=00
plc_return_frame_read(20)
等于讀取的自己個數(shù)加4,如果讀取一個字節(jié)時為05
plc_return_frame_read(21)=00
plc_return_frame_read(22)=00
plc_return_frame_read(23)=04
plc_return_frame_read(24)
單一讀取時為01,分組讀取時為其他值。
DU占據(jù)(4+pc_request_frame_read(27)+pc_request_frame_read(28))字節(jié)長度
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計算;如果讀取了一個字節(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,采用和取余校驗。
END
plc_return_frame_read(n+2)=16
plc_return_frame_read(n+3)=E5
上位機在接收到數(shù)據(jù)經過確認以后向PLC發(fā)送一個確認幀(pc_ack_frame_read),一共15字節(jié)長度,記作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)
采用求和取余校驗算法,等于(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ù)過程完成。
寫入操作
一次完整的寫入操作步驟包括:首先上位機發(fā)出寫命令信息幀(pc_request_frame_write),PLC接收以后判斷,若正確,則做出響應,并將確認信息(plc_ack_frame_write)幀返回給上位機,并反饋回正確的數(shù)據(jù)(plc_return_frame_write)幀給上位機,上位機接到此幀數(shù)據(jù),校驗正確后對PLC做出確認信息(pc_ack_frame_write),這樣就完成一個讀取數(shù)據(jù)的過程。在讀取操作過程中,上位機和PLC共進行兩次應答。
寫入時上位機的請求幀(pc_request_frame_write)所占據(jù)字節(jié)長度不確定,跟寫入的數(shù)據(jù)個數(shù)有關。記作pc_request_frame_write(),格式如下:

SD LE LER SD
pc_request_frame_write(0)=68
pc_request_frame_write(1)pc_request_frame_write(2)寫入一個字節(jié)時為24,寫入兩個字節(jié)時為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)為幀序號,從00到FF
UU占據(jù)6字節(jié)長度
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é)長度
pc_request_frame_write(17)=00
pc_request_frame_write(18)=0E
pc_request_frame_write(19)、pc_request_frame_write(20)共同表示寫入的字節(jié)個數(shù)加4。如果要寫入2個字節(jié),則依次為00、06。
pc_request_frame_write(21)=05
pc_request_frame_write(22)=01
DU占據(jù)的長度和要寫入的字節(jié)個數(shù)有關,其長度為
(16+ pc_request_frame_write(21)+pc_request_frame_write(22)- 4)個字節(jié),置復位操作按照一個字節(jié)計算。
pc_request_frame_write(23)=12
pc_request_frame_write(24)=0A
pc_request_frame_write(25)=10
pc_request_frame_write(26)與存儲區(qū)有關,當寫C區(qū)時,為1C, M區(qū)置復位時為01,寫其他存儲區(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號,寫其他存儲區(qū)時,為00 00,注意I區(qū)和T區(qū)不能進行寫操作。
pc_request_frame_write(31)表示存儲區(qū)類型,參考表1-2

pc_request_frame_write(32)
pc_request_frame_write(33)
pc_request_frame_write(34)
以上三個字節(jié)表示要寫入的起始地址。對于C區(qū),則為起始計數(shù)器的編號,若對C2寫入,則依次為00 00 02。對其他區(qū)寫操作時則表示起始位地址,如果要寫DB1B1,則依次為00、00、08。
pc_request_frame_write(35)、pc_request_frame_write(36)與存儲區(qū)有關,寫入C區(qū)時依次為00 09,置復位操作時依次為00 03,寫入其他區(qū)(包括對M區(qū)寫入字節(jié))是依次為00、04。
pc_request_frame_write(37)、pc_request_frame_write(38)共同表示寫入的數(shù)據(jù)量,與存儲區(qū)類型有關。寫C區(qū)時表示寫入的字節(jié)個數(shù),例如對一個計數(shù)器進行寫操作,則其值依次為00、02;寫其他存儲區(qū)區(qū)時表示要寫入的數(shù)據(jù)位數(shù),按照bit計算,若寫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ù),按照低地址到高地址的順序排列,其中對C區(qū)進行寫操作時,數(shù)據(jù)表示為BCD碼,對其他其他存儲區(qū)寫入時,數(shù)據(jù)均為十六進制格式表示。
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在接收到請求數(shù)據(jù)幀確認后,返回確認信息幀(plc_ack_frame_write)
占據(jù)15字節(jié)長度,格式如下:

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),采用求和取余校驗算法。
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é)長度
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),采用求和取余校驗算法。
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)采用求和取余校驗算法。
END
pc_ack_frame_write(13)=16
pc_ack_frame_write(14)=E5
寫數(shù)據(jù)過程完成。
對于讀寫數(shù)據(jù)幀的FC以及DSAP和SSAP做以說明

測試源碼見附錄F。
結束語
本文運用串口監(jiān)視的方法,通過簡單易行的操作解析出siemens MPI協(xié)議的報文格式,其結果具有很大的使用價值(1)使用戶不用購買西門子專用的通訊處理卡就可以讓上位機和PLC的通信,從而實現(xiàn)所需控制功能,節(jié)約成本。(2)降低了用戶自主開發(fā)的難度,使通訊編程變得簡單明了,無需購買軟件和授權等就可以使用MPI協(xié)議監(jiān)控PLC的工作狀態(tài)。
-
plc
+關注
關注
5049文章
14534瀏覽量
485216 -
SIEMENS
+關注
關注
1文章
24瀏覽量
17208 -
MPI
+關注
關注
2文章
123瀏覽量
20456
原文標題:全方面、多層次了解Siemens MPI協(xié)議
文章出處:【微信號:GKYXT1508,微信公眾號:工控云學堂】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
百問MQTT協(xié)議分析 - MQTT簡述及協(xié)議報文格式組成
基于dragonboard 410c使用python進行GPS報文解析獲取位置信息
labview程序里面解析出來的大量數(shù)據(jù)(模擬量或者報文解析數(shù)據(jù))儲存到電腦別的盤 以EXcel文件格式儲存。
求大佬分享一種簡單易行的可編程振蕩器構建方法
榮小菜補鈣記第43期:報文合成與解析之字的合成與分解
簡單易行,三方面闡述大功率LED散熱器的提升空間
tcp報文格式詳解
一種基于粗糙集聚類的報文格式推斷方法
Path延時測量相關報文格式介紹
如何讓超寬帶(UWB)信號測試變得簡單易行?
modbus報文解析,modbus報文格式詳解
一種簡單易行的可編程振蕩器構建方法
通過簡單易行的操作解析出siemens MPI協(xié)議的報文格式
評論