幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法_第1頁(yè)
幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法_第2頁(yè)
幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法_第3頁(yè)
幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法_第4頁(yè)
幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法_第5頁(yè)
已閱讀5頁(yè),還剩118頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

幾種常見的上位機(jī)通信協(xié)議及設(shè)置方法

目錄

??上位機(jī)通訊協(xié)議有哪幾種.......................................................2

1.1.Modbus..........................................................................................................................2

1.1.1.Modbus是什么.......................................................2

??Modbus協(xié)議解析......................................................3

????Modbus實(shí)現(xiàn)..........................................................5

????筆記..................................................................6

????警告..................................................................7

????基于IP的Modbus實(shí)現(xiàn)..............................................7

1.2.Profibus.........................................................................................................................7

1.2.1.Profibus-DP簡(jiǎn)介.....................................................7

??Profibus-DP物理層....................................................8

????智能電測(cè)表采用Profibus協(xié)議通訊.....................................9

????Profibus-DP協(xié)議通訊的儀表型號(hào).......................................9

1.3.OPC(OLEforProcessControl)...................................................................................10

1.3.1.OPC是什么?.......................................................10

????OPC月艮務(wù)過程........................................................12

1.4.MQTT(MessageQueuingTelemetryTransport).......................................................13

1.4.1.概念、應(yīng)用場(chǎng)景.....................................................13

????協(xié)議原理............................................................13

??????相關(guān)概念............................................................14

??????協(xié)議中的方法.......................................................15

??????mqtt數(shù)據(jù)包結(jié)構(gòu).....................................................15

??????任務(wù)建立主流程.....................................................98

??????Qcbud_IoT_Client結(jié)構(gòu)體.............................................98

??????OT_MQTT_Construct()........................................................................................99

??????IOT_MQTT_Subscribe()....................................................................................108

??

??IOT_MQTT_Yieid。........................................................Ill

????IOT_MQTT_PuolisO->qctoud_iot_mqtt_pubHshQ........................................113

1.5.Ethernet/IP.................................................................................................................113

1.6.CAN(ControllerAreaNetwork).................................................................................114

第1頁(yè)共123頁(yè)

1.6.1,控制器局域網(wǎng)總線..................................................114

????CAN總線工作原理:................................................115

??????CAN總線物理層:..................................................115

??????CAN總線數(shù)據(jù)鏈路層:.............................................118

??????CAN總線延時(shí)分析:................................................120

2.上位機(jī)定義與功能...........................................................121

3.上位機(jī)通訊協(xié)議怎么設(shè)置....................................................123

上位機(jī)通訊協(xié)議有哪幾種

上位機(jī)通信協(xié)議可以根據(jù)不同的應(yīng)用場(chǎng)景和需求選擇。以下是幾種常見的

上位機(jī)通信協(xié)議:

1.1.Modbus

1.1.1.Modbus是什么

Modbus是一種串行通信協(xié)議,廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域。它定義了上位

機(jī)和下位機(jī)之間的通信方式,包括數(shù)據(jù)傳輸格式、通信命令等。Modbus協(xié)議支

持多種物理層,如串口(ModbusRTU)、以太網(wǎng)(ModbusTCP)等。

基本上,Modbus是一種用于設(shè)備之間通信的應(yīng)用層協(xié)議主要用于交換自

動(dòng)化領(lǐng)域的典型數(shù)據(jù)。

在這個(gè)級(jí)別上,Modbus是一種無(wú)狀態(tài)的客戶端-服務(wù)器協(xié)議(例如,很像

HTTP),基于事務(wù),它由請(qǐng)求(由客戶端發(fā)出)和響應(yīng)(由服務(wù)器發(fā)出)組成。在通

常應(yīng)用該協(xié)議的領(lǐng)域中,存在一個(gè)概念,即使用共享信號(hào)電纜的網(wǎng)絡(luò)上控制較

低級(jí)別通信行為的可能模式之一:主從。為了防止混淆,以下有向關(guān)系根據(jù)客

戶端?服務(wù)器范式描述了主從:

第2頁(yè)共123頁(yè)

Master

主站對(duì)應(yīng)—>客廣端

Slave

從站對(duì)應(yīng)-->服務(wù)端

畫翻Modbus協(xié)議解析

無(wú)狀態(tài)通信基于一個(gè)簡(jiǎn)單的包,稱為協(xié)議數(shù)據(jù)單元(PDU)o協(xié)議規(guī)范定義

了三種類型的PDU:

請(qǐng)求PDU,包括:

指定功能的代碼(功能代碼,1字節(jié))

和功能特定數(shù)據(jù)(功能數(shù)據(jù),可變字節(jié)數(shù))

響應(yīng)PDU,包括:

請(qǐng)求對(duì)應(yīng)的功能碼(FunctionCode,1字節(jié))

和響應(yīng)特定數(shù)據(jù)(響應(yīng)數(shù)據(jù),可變字節(jié)數(shù))

異常響應(yīng)PDU,包括:

請(qǐng)求對(duì)應(yīng)的功能碼+0x80(128),(錯(cuò)誤碼,1字節(jié))

以及指定異常的代碼(異常代碼,1字節(jié))

FuncbonFunction

CodeData

PDU(Request)

FunctionResponse

CodeData

PDU(Response)

ErrorException

CodeCode

PDU(ExceptionResponse)

通潮Modbus功能

每個(gè)功能都分配了一個(gè)特定的功能代碼。它們的范圍是1-127(十進(jìn)制),因

為129(即1+128)-255(即為7+128)代表錯(cuò)誤代碼的范圍。

功能碼是協(xié)議的一部分,功能碼就分為以下三類,一個(gè)是協(xié)議里規(guī)定好的

功能,用戶也可以白定義功能

Public

保證是唯一的,并指定公開記錄的明確定義的功能。這些由社區(qū)驗(yàn)證并且

存在一致性測(cè)試。

第3頁(yè)共123頁(yè)

讀離散輸入

讀寫線圈

讀輸入寄存器

讀寫保持寄存器

User-Defined

可用于用戶定義的函數(shù),因此它們的代碼可能不是唯一的。該規(guī)范為用戶

定義的函數(shù)定義了代碼范圍65-72和100-110o

保留

這些目前被一些公司用于遺留產(chǎn)品,不能公開使用

函數(shù)的文檔包括:

函數(shù)的描述(即它的用途)、它的參數(shù)和返回值(包括可能的異常)。

分配的功能代碼

請(qǐng)求PDU

響應(yīng)PDU

異常響應(yīng)PDU

畫翻Modbus數(shù)據(jù)模型

Modbus的功能就是基于這些數(shù)據(jù)模型實(shí)現(xiàn)的

離散輸入

?類型

一位

?使用權(quán)

只讀

?視覺的

離散輸出(線圈)

?類型

一位

?使用權(quán)

讀寫

?視覺的

第4頁(yè)共123頁(yè)

lai

輸入寄存器

?類型

16位字

?使用權(quán)

只讀

?視覺的

保持寄存器(Register〕

?類型

16位字

?使用權(quán)

讀寫

?視覺的

II?18

國(guó)翻Modbus實(shí)現(xiàn)

畫翩串行Modbus實(shí)現(xiàn)

Modbus以異步串行網(wǎng)絡(luò)通信的實(shí)現(xiàn)形式開始了它的生命。應(yīng)用層協(xié)議直

接在串行接口和串行通信標(biāo)準(zhǔn)之上運(yùn)行。最常見的(通過電線)是:

RS232(EIA232):

參見RS232@維基百科

RS422:

請(qǐng)參閱EIA422@維基百科

RS485:

參見EIA485@維基百科**

RS232用「短距離點(diǎn)對(duì)點(diǎn)通信,EIA422同樣適用,它是RS232在工業(yè)環(huán)境

下的雙向擴(kuò)展,也支持更遠(yuǎn)的距離。

EIA485可用于多點(diǎn)通信(即多個(gè)設(shè)備連接到同一條信號(hào)電纜),采用主從模

式(一個(gè)主站和n個(gè)固定地址從站)。

第5頁(yè)共123頁(yè)

圖4顯示了可能的網(wǎng)絡(luò)設(shè)置。

為了啟用此設(shè)置的實(shí)際通信,該實(shí)現(xiàn)使用附加字段擴(kuò)展了PDU,更好的說

法是,它將PDU包裝到一個(gè)帶有標(biāo)頭和錯(cuò)誤校驗(yàn)和的包中(參見圖5)。結(jié)果包

由協(xié)議規(guī)范定義為應(yīng)用程序數(shù)據(jù)單元(ADU),其最大包大小為256字節(jié)。

Error

HeaderPOU

Check

ADU(senal)

畫翻筆記

256字節(jié)的最大包大小限制適用于所有現(xiàn)有的Modbus協(xié)議實(shí)現(xiàn)(傳統(tǒng))!

頭部由地址字段(1個(gè)字節(jié))組成,尾部是整個(gè)包的錯(cuò)誤校驗(yàn)和,包括地址字

段(即頭部)。為了傳輸,Modbus消息(即ADU)被放入一個(gè)具有已知開始和結(jié)

束點(diǎn)的幀中,從而允許檢測(cè)消息的開始和結(jié)束,從而檢測(cè)部分消息。存在兩種

傳輸模式,它們的編碼、成幀和校驗(yàn)和有所不同:

通潮ASCII碼

幀被編碼為每個(gè)字節(jié)兩個(gè)ASCH字符,代表字節(jié)的十六進(jìn)制表示法(即字符

0-9、A-F)。錯(cuò)誤校驗(yàn)和由縱向冗余校驗(yàn)(LRC;1字節(jié))表示,消息以冒號(hào)

0x3A)開頭,以回車符-換行符(“CRLF”,0x0D0A)結(jié)束。字符之間可能會(huì)出現(xiàn)1秒

的停頓。

畫:翻RTU

幀以二進(jìn)制傳輸以實(shí)現(xiàn)更高的密度。錯(cuò)誤校驗(yàn)和由循環(huán)冗余校驗(yàn)(16位

CRC:2字節(jié))表示,消息以至少3.5個(gè)字符時(shí)間的靜默間隔開始和結(jié)束。這最

容易實(shí)現(xiàn)為網(wǎng)絡(luò)上正在使用的波特率的字符時(shí)間的倍數(shù)。兩個(gè)字節(jié)之間可能發(fā)

生的最大暫停為1.5個(gè)字符時(shí)間。

jamod旨在支持兩種傳輸模式,使用基于mAPI的實(shí)現(xiàn)。

第6頁(yè)共123頁(yè)

倒翻警告

RTU實(shí)現(xiàn)僅支持Master端。它按照最大努力原則工作,這意味著它可能

無(wú)法在低延遲實(shí)時(shí)環(huán)境中以可靠的方式工作。

確實(shí)可以實(shí)現(xiàn)基于其他串行堆棧實(shí)現(xiàn)(即JavaCorr.mAPI實(shí)現(xiàn)的替代品)的

串行傳輸,例如SerialPortl:/products/se...).根據(jù)產(chǎn)品信息,

它支持大約20個(gè)平臺(tái),并已成功用于在Java中實(shí)現(xiàn)兩種串行傳輸模式(僅限

Master,參見FieldTalk/Java,FocusEngineering的商業(yè)Master協(xié)設(shè)包)。

國(guó)!翻基于IP的Modbus實(shí)現(xiàn)

基于TCP/IP的Modbus協(xié)議實(shí)現(xiàn)(Modbus/TCP)最近已作為RFC草

案提交給lETFo它使用TCP/IP堆棧進(jìn)行通信(注冊(cè)端口為502)并使用IP特

定報(bào)頭擴(kuò)展PDU(參見圖6)o

可能的網(wǎng)絡(luò)設(shè)置不受規(guī)范的約束;可以建立多主系統(tǒng)或?qū)崿F(xiàn)雙向通信(即同

時(shí)有主從節(jié)點(diǎn))。但是,用戶應(yīng)該清楚地意識(shí)到主/從模式的偏差會(huì)產(chǎn)生影響。

M8APFunctionFunction

HeaderCodeData

ADU(TCP)

IP特定報(bào)頭(在規(guī)范中稱為MBAP)長(zhǎng)7個(gè)字節(jié),由以下字段組成:

用于交易配對(duì)的調(diào)用標(biāo)識(shí)(2個(gè)字節(jié));以前稱為交易標(biāo)識(shí)符

Modbus的協(xié)議標(biāo)識(shí)符(2個(gè)字節(jié)),是0用于Modbus默認(rèn);為將來的擴(kuò)展保

報(bào)文長(zhǎng)度(2個(gè)字節(jié)),所有后面字節(jié)的字節(jié)計(jì)數(shù)

用于標(biāo)識(shí)位于非TCP/IP網(wǎng)絡(luò)上的遠(yuǎn)程單元的單元標(biāo)識(shí)符(1個(gè)字節(jié))

1.2.Profibus

1.2.1.Profibus-DP簡(jiǎn)介

Profibus是一種工業(yè)領(lǐng)域常用的通信協(xié)議,用于實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的

數(shù)據(jù)交換。它支持多種通宿介質(zhì),如RS-485、光纖等,

Profibus是唯?集成H1(過程)和H2(工廠自動(dòng)化)的現(xiàn)場(chǎng)總線解決方案,

是一種國(guó)際化的、開放的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),它也是國(guó)際標(biāo)準(zhǔn)IEC61158中8種現(xiàn)

場(chǎng)總線之一。Profibus可以將數(shù)字自動(dòng)化設(shè)備從低級(jí)(傳感器/執(zhí)行器)到中間級(jí)

執(zhí)行級(jí)(單元級(jí))分散開來。根據(jù)應(yīng)用特點(diǎn)和用戶不同的需要,Profibus提供了

第7頁(yè)共123頁(yè)

3種兼容版本通信協(xié)議:FMS、PA和DPo

Profibus-DP用于自動(dòng)化系統(tǒng)中單元級(jí)控制設(shè)備與分布式I/O的通訊。

Profibus-DP使用第1層、第2層和用戶接口層、第3?7層未使用,這

種精簡(jiǎn)的結(jié)構(gòu)確保了高速數(shù)據(jù)傳輸。直接數(shù)據(jù)鏈路映像程序DDLM提供對(duì)第2

層的訪問。用戶接口規(guī)定了設(shè)備的應(yīng)用功能、Profibus?DP系統(tǒng)和設(shè)備的行為特

性。Profibus-DP特別適合于PLC與現(xiàn)場(chǎng)分級(jí)式I/O設(shè)備之間的通訊。主站之

間的通訊為令牌方式,主站與從站之間為主從方式,以及這兩種方式的混合。

㈣翻Profibus-DP物理層

傳輸介質(zhì):PROFIBUS-DP傳輸技術(shù)采用的是RS485傳輸,其傳輸介質(zhì)可以

選擇型式A和型式B兩種導(dǎo)線,A為屏蔽雙絞線,B為普通雙絞線。但在

EN50170標(biāo)準(zhǔn)中規(guī)定為型式A導(dǎo)線,型式A比型式B有較大的擴(kuò)展長(zhǎng)度,

見表1。

表I:LineALineB說明

電纜參數(shù)A里B型

特征阻抗(Q)135-165Q100730a

(f=3MHz?20MHz)(f>100kHz)

單位長(zhǎng)度的電容<30pF/m<60pF/m

(PF/m)

回路電阻(Q/km)WUOC/km-

線芯截面枳(mm2)M34mm2(22AWG)20.22mnu二2勃屣為

傳輸距離:標(biāo)準(zhǔn)Profibus-DP支持以下傳輸速率:(單位:kbps)9.6、19.2、

31.25、45.45、93.75、187.5、500、1500、3000、6000、12000。每個(gè)DP從

站的輸入數(shù)據(jù)和輸出數(shù)據(jù)最大為244B,使用屏蔽雙絞電纜時(shí)最長(zhǎng)通訊距離為

9.6km(需要增加中繼),使用光纜時(shí)最長(zhǎng)為90kmo

Profibus-DP每段的電纜最大長(zhǎng)度與傳輸速率有關(guān),不同的介質(zhì),不同的波

特率,信號(hào)可傳輸?shù)木嚯x也不同,如表2所示。

表2,傳輸途率與距離關(guān)系喪

波特率kbps/s9.619.293.75187.550015003000600012000

(LineA)1200120012001000400200200100100

電纜長(zhǎng)度m

(LineB)120012001200600200不推存微f奇前r亞嬤

電纜長(zhǎng)度m

注意:該傳輸距離指不加重復(fù)器(中繼器)的距離。比外,該傳輸距離是理論

第8頁(yè)共123頁(yè)

值,實(shí)際傳輸距離也會(huì)受到現(xiàn)場(chǎng)環(huán)境的影響。

畫翻智能電測(cè)表采用Profibus協(xié)議通訊

Profibus總線上,定義B為“RS485+”,A為"RS485-”,接線時(shí)應(yīng)請(qǐng)務(wù)必注意A、

B接線,否則會(huì)導(dǎo)致無(wú)法正常通訊。

profibusA-/RS485B/(綠)----------------------

profibusB+/RS485A/(紅)---------------------

BACOM

通訊瓦例號(hào).A-。

注意:ACR或PZ系列可編程智能電測(cè)表采用Profibus協(xié)議通訊時(shí),需閱

讀本文檔。《安裝使用說明書V1.D中通訊指南章節(jié)無(wú)效。具體細(xì)節(jié)在此不在

贅述,下載文章末尾附件,可以直接閱讀第二章節(jié)儀表的通訊配置。

典翻Profibus-DP協(xié)議通訊的儀表型號(hào)

畫翻PZ系列可編程智能電測(cè)表

型號(hào)例如:PZ96L-E4/CP,PZ80L-E4/CP等

K0.0001

\z0.000i

u—2J,J_】

打翻ACR系列網(wǎng)絡(luò)多功能電力儀表:

型號(hào)例如:ACR220EL/CP,ACR230ELH/CP,ACR320E/CP等

第9頁(yè)共123頁(yè)

畫翻APM系列模塊化網(wǎng)絡(luò)電力儀表

型號(hào)例如:APM800/MCP,APM801/MCP等

支持DB9接口或者RS485接口

除了多功能儀表外,安科瑞還生產(chǎn)銷售支持PROFIBUS、PR0F1NET通訊的

電動(dòng)機(jī)保護(hù)器

1.3.OPCfOLEforProcessControl)

1.3.1.OPC是什么?

OPC是當(dāng)前工業(yè)互聯(lián)常用的通訊技術(shù),我們經(jīng)常會(huì)說OPC通訊協(xié)議,那OPC

是通訊協(xié)議嗎?嚴(yán)格地說,OPC不是通訊協(xié)議,而是一種通訊規(guī)范,是一種通

訊接口標(biāo)準(zhǔn)。

OPC是i種基于微軟的OLE(ObjectLinkingandEmbedding)技術(shù)的工業(yè)自

動(dòng)化通信協(xié)議。它定義J'上位機(jī)和下位機(jī)之間的數(shù)據(jù)交換方式,實(shí)現(xiàn)了設(shè)備間

的互通性。

OPC是英文“OLEforProcessControl”的縮寫,是工業(yè)自動(dòng)化領(lǐng)域中的一種

第10頁(yè)共123頁(yè)

工業(yè)通信標(biāo)準(zhǔn)。它通過定義一些在不同平臺(tái)上具有通用性的規(guī)范,實(shí)現(xiàn)J'各種

設(shè)備、不同制造廠商及不同代表的設(shè)備可互聯(lián)互通。

經(jīng)典OPC是第一代OPC技術(shù),英文全稱為:OLEforProcessControl(>OLE

技術(shù)是基于微軟公司的C0M/DC0M技術(shù),因此經(jīng)典OPC本質(zhì)上是基于

COM/DCOM的過程控制技術(shù)。經(jīng)典OPC提供了一整套過程控制中數(shù)據(jù)交換的軟

件標(biāo)準(zhǔn)和接口,包括:

OPCDA(OPCDataAccess):OPC數(shù)據(jù)訪問接口,這是最常用到的接口,接

口定義了數(shù)據(jù)交換的規(guī)范.包括:過程值、更新時(shí)間、數(shù)據(jù)品質(zhì)等信息。目前

OPCDA經(jīng)歷1.0版本(1997年)、2.0版本(2002年)、3.0版本(2003年)。

OPCAE(OPCAlarms&Events):OPC報(bào)警與事件接口,接口定義了報(bào)警、

事件消息、變量的狀態(tài)及如何管理。

OPCHDA(OPCHistoricalDataAccess):OPC歷史數(shù)據(jù)訪問接口,接口定義

了訪問及分析歷史數(shù)據(jù)的方法。

OPCXML-DA:XML數(shù)據(jù)訪問,脫離WindowsC0M/DC0M技術(shù),提供基于

XML、SOAP、HTTP的數(shù)據(jù)交換。

OPCDX(Dataexchange):提供在OPC服務(wù)器之間交換數(shù)據(jù)的功能,該標(biāo)準(zhǔn)

的主要目的是為來自不同制造商的設(shè)備和程序之間的數(shù)據(jù)交換創(chuàng)建網(wǎng)關(guān)。

可以看出,OPC是一整套過程控制中數(shù)據(jù)交換的軟件標(biāo)準(zhǔn)和接口規(guī)范,定

義了服務(wù)器和客戶端雙方通訊接口的要求。以O(shè)PCDA為例。

第11頁(yè)共123頁(yè)

知乎@一袖徐江南

OPCServer必須提供OPCServer對(duì)象接口,OPCGroup對(duì)象接口,OPCItem

對(duì)象接口,OPCClient通過調(diào)用這些接口與OPC服務(wù)器實(shí)現(xiàn)數(shù)據(jù)交換,而不用去

關(guān)心通訊報(bào)文的語(yǔ)法、語(yǔ)義。

所以,嚴(yán)格地說,OPC不是通訊協(xié)議,是通訊規(guī)范。用形象的比喻來說,

OPC更像描述插頭、插座的規(guī)范,而通訊協(xié)議則更像是描述郵件如何傳輸,信

封如何封裝。

場(chǎng)翻OPC服務(wù)過程

首先,來看什么是通訊協(xié)議?通訊協(xié)議就是兩個(gè)(或多個(gè))設(shè)備之間通信必須

要遵循的一種協(xié)議。通過通信信道互連起來的多個(gè)數(shù)據(jù)通信系統(tǒng),要實(shí)現(xiàn)協(xié)同

信息交換,它們之間必須具有共同的約定,約定信息在哪條通道間交流,什么

時(shí)間交流,交流什么信息,信息怎樣交流。這個(gè)約定就是通信協(xié)議。

不同的通信協(xié)議雖然具有不同的特點(diǎn)和功能,但它們都包含了三個(gè)基本要

素:

語(yǔ)法;定義了數(shù)據(jù)傳輸?shù)母袷胶徒Y(jié)構(gòu),以確保發(fā)送方和接收方都能正確地

解釋數(shù)據(jù)內(nèi)容。

語(yǔ)義:定義J'數(shù)據(jù)的意義和目的,以確保通信雙方在數(shù)據(jù)傳輸過程中能夠

理解對(duì)方的意圖。

第12頁(yè)共123頁(yè)

定時(shí):定義「數(shù)據(jù)的傳輸速率和時(shí)間,以確保通信的有效性和流暢性。

通信中的數(shù)據(jù)往往以數(shù)據(jù)包的形式進(jìn)行傳送的,我們把這樣的一個(gè)數(shù)據(jù)包

稱作為一幀數(shù)據(jù)。比較可靠的通信協(xié)議往往包含有以下幾個(gè)組成部分:幀頭、

地址信息、數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)塊、校驗(yàn)碼、幀尾。這些組成部分構(gòu)成

了語(yǔ)法,其中數(shù)據(jù)代表的意義就是語(yǔ)義。

比如:以下是Modbus協(xié)議讀取線圈的報(bào)文。

事芬/T辦議長(zhǎng)度單元標(biāo)識(shí)功能碼起始高起始低數(shù)量高數(shù)量低

0x000000000x00060x010x010x000x130x00OxlB

其中,報(bào)文格式就是言法,其語(yǔ)義為:讀取服務(wù)器1號(hào)從站輸出線圈,起

始地址為0x13=19,對(duì)應(yīng)地址為00020,線圈數(shù)量為0xlB=27,即讀取1號(hào)從

站輸出線圈,地址從00020-00046,共27個(gè)線圈的狀態(tài)值。

1.4.MQTTfMessageQueuingTelemetryTransport)

1.4.1.概念、應(yīng)用場(chǎng)景

MQTT是一種輕量級(jí)的消息傳輸協(xié)議,通常用于物聯(lián)網(wǎng)(IoT)領(lǐng)域。它采用

發(fā)布-訂閱機(jī)制,實(shí)現(xiàn)了高效可靠的上位機(jī)和下位機(jī)之間的數(shù)據(jù)傳輸。

MQTTfMessageQueuingTelemetryTransport,消息隊(duì)列遙測(cè)傳輸協(xié)議),

是一種基于發(fā)布/訂閱范式的“輕量級(jí)”消息協(xié)議,由IBM發(fā)布。

HoT設(shè)備要運(yùn)作,就必須連接到互聯(lián)網(wǎng),設(shè)備才能相互協(xié)作,以及與后端

服務(wù)協(xié)同工作。而互聯(lián)網(wǎng)的基礎(chǔ)網(wǎng)絡(luò)協(xié)議是TCP/IP,MQTT協(xié)議是基于TCP/IP

協(xié)議棧而構(gòu)建的,因此它三經(jīng)慢慢的已經(jīng)成為了IoT通訊的標(biāo)準(zhǔn)。

1MQTT可以被解釋為一種低開銷,低帶寬占用的即時(shí)通訊協(xié)議,可以用較

少的代碼和帶寬為遠(yuǎn)程設(shè)備連接提供實(shí)時(shí)可靠的消息服務(wù),它適用于硬件性能

低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的環(huán)境下,因此MQTT協(xié)議在IoT(Internet

ofthings,物聯(lián)網(wǎng)),小型設(shè)備應(yīng)用,移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。

優(yōu)點(diǎn):代碼量少,開銷低,帶寬占用小,即時(shí)通訊協(xié)議。

畫翻協(xié)議原理

實(shí)現(xiàn)方式:實(shí)現(xiàn)mqtt協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊中,

mqtt協(xié)議中有三種身份:發(fā)布者(publish),代理(broker)(服務(wù)器),訂閱者

(subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端。消息代理是服務(wù)器,

第13頁(yè)共123頁(yè)

消息發(fā)布者可以同時(shí)是訂閱者,傳輸過程如下如所示。

有別于傳統(tǒng)的客戶端/服務(wù)器通訊協(xié)議,MQTT協(xié)議并不是端到端的,消息

傳遞通過代理,包括會(huì)話(session)也不是建立在發(fā)布者和訂閱者之間,而是建

立在端和代理之間。代理解除了發(fā)布者和訂閱者之間的耦合。

除了發(fā)布者和訂閱者之間傳遞普通消息,代理還可以為發(fā)布者處理保留消

息和遺愿消息,并可以更改服務(wù)質(zhì)量(QoS)等級(jí)。

畫翔相關(guān)概念

客戶端:

一個(gè)使用mqtt協(xié)議的應(yīng)用程序或設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。

客戶端可以:

1.發(fā)布其他客戶端可能會(huì)訂閱的信息

2.訂閱其他客戶端的消息

3.退訂或刪除應(yīng)用程序的消息

4.斷開與服務(wù)器的連接

服務(wù)器:

可以是一個(gè)應(yīng)用程序或者一臺(tái)設(shè)備,它用于發(fā)布者和訂閱者之間,它可以:

1.接受來自客戶的網(wǎng)絡(luò)連接

2.接受客戶發(fā)布的應(yīng)用消息

3.處理來自客戶端的訂閱和退訂請(qǐng)求

4.向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息

主題:

連接到一個(gè)應(yīng)用程序消息的標(biāo)簽,該標(biāo)簽與服務(wù)器的訂閱相匹配。服務(wù)器

會(huì)將消息發(fā)送給訂閱所匹配標(biāo)簽的每個(gè)客戶端。

一個(gè)主題可以有多個(gè)級(jí)別,級(jí)別之間用斜杠字符分隔。例如,/world和

emq/emqtt/emqx是有效的主題。如騰訊云中訂閱的云端回復(fù)消息為

第14頁(yè)共123頁(yè)

"$thing/down/service/設(shè)備ID/設(shè)備名”

QoS(消息傳遞的服務(wù)質(zhì)量水平):

服務(wù)質(zhì)量,此標(biāo)志表明此主題范圍內(nèi)的消息傳送到客戶端所需的一致程度。

有三種取值:

1值0x00:不可靠,消息最多發(fā)送一次。如果當(dāng)時(shí)客戶端不可用,則會(huì)丟

失該消息。

1佰0x01:消息應(yīng)傳送至少1次。確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)

生。

I值0x10:確保消息到達(dá)一次。這一級(jí)別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,

消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。

遺愿機(jī)制/遺囑機(jī)制:

使用LastWill和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

1LastWill:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備

已經(jīng)斷開了連接。

ITestament:遺囑機(jī)制,功能類似于LastWill

i恒翔協(xié)議中的方法

MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作),表示對(duì)確定資源進(jìn)行操作。

資源指服務(wù)器上的文件或輸出。主要方法有:

I(l)Connecto等待與服務(wù)器建立連接。

1(2)Disconnecto等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開

TCP/IP會(huì)話。

1(3)Subscribeo等待完成訂閱。

1(4)UnSubscribeo等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱。

l(5)PublishoMQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程。

i現(xiàn)翻mqtt數(shù)據(jù)包結(jié)構(gòu)

MQTT協(xié)議通過交換預(yù)定義的MQTT控制報(bào)文來通信。

一個(gè)mqtt數(shù)據(jù)包結(jié)構(gòu)包括:固定頭部,可變頭部,消息體(payload)三部分

組成,mqtt數(shù)據(jù)包結(jié)構(gòu)如下:

1.固定頭(Fixedheader)。存在于所有MQTT數(shù)據(jù)包中,表示數(shù)據(jù)包類型及

第15頁(yè)共123頁(yè)

數(shù)據(jù)包的分組類標(biāo)識(shí)。

2.可變頭(Variableheader)。存在于部分MQTT數(shù)據(jù)包中,數(shù)據(jù)包類型決

定了可變頭是否存在及其具體內(nèi)容。

3.消息體(Payload)。存在于部分MQTT數(shù)據(jù)包中,表示客戶端收到的具體

內(nèi)容。只有CONNECT、SUBSCRIBE>SUBACK、UNSUBSCRIBE四種類型的消息

有Payload消息體:

1CONNECT,消息體內(nèi)容主要是:客戶端的ClientID>訂閱的Topic、Message

以及用戶名和密碼。

1SUBSCRIBE,消息體內(nèi)容是一系列的要訂閱的主題以及QoSo

1SUBACK,消息體內(nèi)容是服務(wù)器對(duì)于SUBSCRIBE所申請(qǐng)的主題及QoS進(jìn)行

確認(rèn)和回復(fù)。

IUNSUBSCRIBE,消息體內(nèi)容是要取消訂閱的主題。

數(shù)據(jù)包組成詳細(xì)描述:

數(shù)據(jù)包組成的詳細(xì)內(nèi)容與數(shù)據(jù)包長(zhǎng)度根據(jù)mqtt控制報(bào)文格式的不同而不

同。mqtt控制報(bào)文類型共有14種

表格2.1-控制報(bào)文的類型

第16頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

C0NNECT1客戶1客戶端到服務(wù)客戶端請(qǐng)求連接

客戶端到服務(wù)端

端到服務(wù)端客戶端客戶端請(qǐng)求連服務(wù)端

第17頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

端請(qǐng)求連接服務(wù)接服務(wù)端C0NNACK2服務(wù)

端C0NNACK2服C0NNACK2服務(wù)端到客戶端連接

第18頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

務(wù)端到客戶端連端到客戶端連接報(bào)文確認(rèn)

接報(bào)文確認(rèn)報(bào)文確認(rèn)PUBLISH3兩個(gè)方

第19頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

CONNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端CONNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述CONNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端CONNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBCOMP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

PUBLISH3兩個(gè)PUBLISH3兩個(gè)向都允許發(fā)布消

方向都允許發(fā)布方向都允許發(fā)布息PUBACK4兩個(gè)

第20頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

消息PUBACK4兩消息PUBACK4兩方向都允許QoS1

個(gè)方向都允許個(gè)方向都允許消息發(fā)布收到確

第21頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

QoSl消息發(fā)布QoSl消息發(fā)布認(rèn)PUBREC5兩個(gè)

收到確認(rèn)收到確認(rèn)方向都允許發(fā)布

第22頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

PUBREC5兩個(gè)方PUBREC5兩個(gè)方收到(保證交付第

向都允許發(fā)布收向都允許發(fā)布收一步)PUBREL6兩

第23頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

至"保證交付第一至叫保證交付第一個(gè)方向都允許發(fā)

步)PUBREL6兩步)PUBREL6兩布釋放(保證交付

第24頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

個(gè)方向都允許發(fā)個(gè)方向都允許發(fā)第二

布釋放(保證交付布釋放(保證交付步)PUBC0MP7兩

第25頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

第二第二個(gè)方向都允許QoS

步)PUBC0MP7兩步)PUBC0MP7兩2消息發(fā)布完成

第26頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

個(gè)方向都允許個(gè)方向都允許(保證交互第三

QoS2消息發(fā)布QoS2消息發(fā)布步)SUBSCRIBE8

第27頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

完成(保證交互第完成(保證交互第

第28頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

步)SUBSCRIBES步)SUBSCRIBE8

C0NNACK2服務(wù)2服務(wù)端到客戶服務(wù)端到客戶端連接報(bào)文確認(rèn)

第29頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

CONNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端CONNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述CONNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端CONNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBCOMP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

端到客戶端連接端連接報(bào)文確認(rèn)PUBLISH3兩個(gè)方

報(bào)文確認(rèn)PUBLISH3兩個(gè)向都允許發(fā)布消

第30頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

個(gè)方向都允許發(fā)

布釋放(保證交付

第二

步)PUBC0MP7兩

個(gè)方向都允許

QoS2消息發(fā)布

完成(保證交互第

步)SUBSCRIBES

PUBLISH3兩個(gè)方向都允許發(fā)布息PUBACK4兩個(gè)

方向都允許發(fā)布消息PUBACK4兩方向都允許QoS1

第31頁(yè)共123頁(yè)

名字值報(bào)文流動(dòng)

方向描述

C0NNECT1客戶

端到服務(wù)端客戶

端請(qǐng)求連接服務(wù)

端C0NNACK2服

務(wù)端到客戶端連

接報(bào)文確認(rèn)

PUBLISH3兩個(gè)

方向都允許發(fā)布

消息PUBACK4兩

個(gè)方向都允許報(bào)文流動(dòng)方向描

QoSl消息發(fā)布述C0NNECT1客

收到確認(rèn)值報(bào)文流動(dòng)方向戶端到服務(wù)端客描述C0NNECT1

PUBREC5兩個(gè)方戶端請(qǐng)求連接服

向都允許發(fā)布收務(wù)端C0NNACK2

到(保證交付第一

步)PUBREL6兩

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論