Top Banner
MQTT 應用手冊 MQTT 本手冊介紹如何使用 EasyBuilder Pro/Weintek HMI MQTT 功能 V1.00
10

MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式...

Jun 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT應用手冊

MQTT

本手冊介紹如何使用 EasyBuilder Pro/Weintek HMI的MQTT功能

V1.00

Page 2: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

目錄

1. MQTT簡介 ............................................................................................................. 1

Weintek人機與 MQTT ............................................................................................. 1

2. EasyBuilder Pro上的設定 ...................................................................................... 3

伺服器的設定 ........................................................................................................... 3

主題設定 ................................................................................................................... 4

工程檔案設計及執行時應用 ................................................................................... 5

3. Broker的選用 ........................................................................................................ 6

HMI 內建的MQTT Broker ........................................................................................ 6

運用外部 broker ........................................................................................................ 6

自行架設 broker伺服器 ........................................................................................... 6

4. 取得MQTT資料 .................................................................................................... 6

MQTT 客戶端程式 ................................................................................................... 7

5. 其他參考 ................................................................................................................ 8

Page 3: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

1

1. MQTT簡介

MQTT是一套嶄新的訊息傳遞的協議。設計上,基於發布/訂閱的模式,並且以

輕巧、開放、簡易為主軸,當程式容量有限,或是網路頻寬受限的時候,MQTT

都可以發揮優勢。因此,連續性的感測資料像是溫濕度,壓力、水位、電力監控

資料等,都是適合應用MQTT監控的資料。

Weintek人機與 MQTT

人機與 PLC通訊並進行資料處理後,可以用MQTT的方式將資訊發布至網路上的

MQTT broker(扮演代理伺服器的角色),然後 broker將資料發送給需要的用戶。

當人機位處於防火牆內時,利用這種方式就可以將訊息資料主動從人機發出。

MQTT訊息也可以發布到人機內建的 broker。也就是說,用戶不用另外尋找 broker

的服務。只要有MQTT的用戶端程式,就可以直接與人機內建的 broker訂閱想

要的資料,然後取得資料!只要搭配像 VPN或 EasyAccess 2.0等方式讓MQTT用

戶端程式可以直接連結人機,這樣用戶就可以輕鬆地遠端取得人機上的資料更

新。

Page 4: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

2

Page 5: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

3

2. EasyBuilder Pro上的設定

在 EasyBuilder Pro的 [物件][MQTT] 中可以進行工程檔案的MQTT相關設定。

伺服器的設定

最重要的,首先應設定 [伺服器] 的相關設定。伺服器的 IP位址就是 broker所在

的 IP位址。當選擇本地 (即 127.0.0.1),表示訊息發佈到 HMI上的 broker。

MQTT的狀態顯示,以及控制的位址,都可以指定於 LW位址上,以在 HMI程式

執行中即時控制。指定一個位址後,該位址的相對位址 (+1,+2,+3…等) 各對應著

MQTT的不同的屬性或參數,如下圖 EBPro中的介面所述。例如:當MQTT_STATUS

設定為 LW-110,表示狀態表示位址為 LW-110,錯誤碼位址為 LW-111。

Page 6: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

4

主題設定

完成 [伺服器] 設定後,接著設定 [主題]。每一 [主題] 內含要傳送的一串資料。

[主題] 的命名可以設定為使用者自定的固定名稱,或是搭配使用 % 開頭的控制

碼,使用人機以及伺服器設定組成主題。

設定 [發送模式]:觸發式表示主題內數值有更動,MQTT訊息會發送。選擇週期

式時,則資料在設定的固定間隔時發佈。

Page 7: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

5

在位址頁籤下,就可以設定這個主題之下的資料組成。這串資料的組成可以是非

連續地址,也可以是不同樣的型態或各有不一樣的長度。

工程檔案設計及執行時應用

在MQTT設定中有上述的控制位址MQTT_COMMAND和狀態位址MQTT_STATUS。

控制的參數設定位於MQTT_COMMAND+1至MQTT_COMMAND+43……等。而連

線狀態會顯示於狀態位址MQTT_STATUS及MQTT_STATUS+1。

以上這些資訊在 EBPro中介面皆有詳述。

HMI程式運行時:

將MQTT_COMMAND設定為 1,則 HMI會開始與 broker連線。

將MQTT_COMMAND設定為 2,則 HMI中斷與 broker的連線。

在更新控制參數後,將MQTT_COMMAND設定為3,則HMI將以新的參數與broker

連線。

Page 8: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

6

透過控制上述的地址,即可在 HMI程式執行中線上控制MQTT的各類設定。

3. Broker的選用

HMI 內建的 MQTT Broker

如果要運用 HMI上的 broker,在設定時選擇本地 (server的 IP位址會自動設定為

127.0.0.1)。或是在 HMI中將 IP位址設定為 127.0.0.1,也表示MQTT會使用 HMI

上的 broker。而客戶端程式在連線時,就使用 HMI的 IP連線。

HMI上的MQTT Broker第一次使用前必須透過 EasyBuilder Pro下載至 HMI。請在

下載時勾選 Runtime。

運用外部 broker

如果運用外部 broker,伺服器應輸入該 broker的 IP位址。

例如:使用 HiveMQ的公開 broker服務。該 broker的資料為:

Host: broker.hivemq.com

Port: 1883

Websocket Port: 8000

(http://www.hivemq.com/try-out/)

目前還不支援直接使用網域名稱,因此請輸入 broker的實際 IP位址。可利用 DNS

服務查詢到此 broker的 IP是 212.72.74.21。 (2016/2/2)

自行架設 broker伺服器

用戶可以自行架設 broker伺服應用。在此提供兩個容易找到的選擇:HiveMQ以

及Mosquitto

HiveMQ企業付費級 http://www.hivemq.com/downloads/ (也提供測試版本)

Mosquitto免費版 http://mosquitto.org/download/

各 broker的安裝及使用規範,需請參考各軟體網站。

4. 取得MQTT資料

要獲得MQTT更新的資料,要使用MQTT的客戶端程式,連線至 broker註冊並

接收 HMI所提供的資料更新。網路上各平台有許多的免費的客戶端程式。此章

節介紹使用一款 PC上的免費程式MQTT.fx。

Page 9: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

7

MQTT 客戶端程式

網路上有多個免費的 PC版MQTT客戶端應用程式可以下載使用。行動裝置上也

有免費程式可使用。在此簡略說明使用 PC上的MQTT.fx,如何連線取得至 HMI

的訊息更新。使用其他的軟體,也可以用類似的設定。

1. 假定 HMI上使用MQTT Demo,且已經設定為連至MQTT伺服器 212.72.74.21

port 1883。有一個MQTT主題名稱為 Data_Bit。

2. 在MQTT.fx中,建立新的連線設定檔 (Edit Connection Profiles)。設定:

Broker Address: 212.72.74.21

Broker Port: 1883

Profile Name: 自訂

Client ID: 自訂

其他設定使用預設值即可。確認後,點擊 Connect就會和 broker連線。

3. 點選 Subscribe的框頁。在欄位中輸入要註冊的標題 Data_Bit,點選 Subscribe

即可註冊。此時就會開始接受資料。當有MQTT訊息更新,就會顯示在主畫

面。

Page 10: MQTT 應用手冊 MQTT - Multiprojekt€¦ · mqtt 的狀態顯示,以及控制的位址,都可以指定於lw 位址上,以在hmi 程式 執行中即時控制。指定一個位址後,該位址的相對位址

MQTT

8

5. 其他參考

The Seven Best MQTT Client Tools

http://www.hivemq.com/blog/seven-best-mqtt-client-tools