--- title: WEINTEK HMI 人機介面課程 tags: 人機介面,PLC,WEINTEK description: 本門課的重點在輔導學生了解如何利用HMI的方式與PLC連接,並利用Modbus/TCP與PLC進行通訊,並將PLC的值讀取出來並顯示在HMI上,利用相關元件也可以對PLC連接等相關元件進行控制。 lang: zh --- # WEINTEK HMI 人機介面課程 ###### tags: 人機介面,PLC,WEINTEK,HMI ## 概觀 ### HMI 簡介 PLC與HMI在工業控制系統中是非常重要的元件之一,可程式化邏輯控制器(Programmable Logic Controller,PLC)在工業控制系統上主要是負責與相關感測器(Sensor)進行通訊,並經由相關設備讀取與控制相關訊號,根據訊號的種類有分為數位訊號與類比訊號,根據訊號的特性又在分為輸入與輸出訊號,而HMI主要的功用在PLC與使用者中間,用來幫助使用者能能夠透過圖形化的方式來對PLC進行操作,本門課在教導學生如何利用工業控制系統中的HMI的開發元件來對PLC進行通訊,並製作相關互動性的元件與PLC進行通訊。 ![](https://i.imgur.com/3zTURDS.png) ### 上課時數 * 本門課的重點在引導學生如何利用 EasyBuilder Pro,並透過Modbus/TCP連結至PLC,製作一套簡易的<font color="blue">空氣品質監控系統</font>。 * 建議的授課時數為<font color="blue">18</font>小時。 ### 課程大綱 本門課程大約分為三個階段 1. WEINTEK HMI 基礎介紹 2. 了解現有PLC中Modbus/TCP通訊協定 3. 利用EasyBuilder開發<font color="blue">空氣品質監控系統</font> ### 課程重點 本門課的重點會放在HMI的基礎介紹與設計,其中相關的重點與章節如下 1. 第一次連接HMI系統 ## 課前準備工作 ### 相關課程設備 本門課使用到的相關設備如下 1. 施耐德PLC 需支援 Modbus/TCP 協定 2. Weintek 需支援 乙太網路、RS232、RS485 連接埠 3. 相關感測器 如 PM2.5、溫溼度感測器等 ### 下載相關軟體 * 首先我們先到[WeiNtek](https://www.weintek.com/)的官方網站,下載 EasyBuilder Pro 安裝軟體。 ![](https://i.imgur.com/e7iQaxI.png) * 下載完成時我們可以進入到安裝畫面,安裝的過程基本上下一步到底即可。 ![](https://i.imgur.com/2hhoq4V.png) * 安裝完成後可以在桌面上看到 Utility Manager 應用程式,雙集打開可以看到下列畫面。 ![](https://i.imgur.com/9JeMilC.png) * 我們點擊EasyBuilder Pro 即可進入HMI設計頁面。 ![](https://i.imgur.com/wjEvLZN.png) ### WeiNtek HMI 硬體介紹 * 本課程將使用 Weintek MT8081iE 當作示範教學,其他的HMI的設計方式與本課程使用之教材大同小異,僅需要在開發上注意使用型號即可。 * Weintek MT8071 主要提供一個7吋 TFT (解析度為800*600),其相關重點規格如下 * USB Host : USB 2.0 x 1 * 乙太網路 : 10/100 Base-T x 1 * 序列埠 : COM1:RS-232, COM2:RS-485 2W/4W, COM3:RS-485 2W * Weintek MT8071 主要連接埠如下 ![](https://i.imgur.com/06nZwXs.png) * (A) 指撥開關 * (B) 保險絲 * (C) 電源接口 * (D) RS-485 (COM2 與 COM3) * (E) USB Host * (F) RS-232 (COM1) * (G) 乙太網路 * RS232 腳位定義 | PIN | COM1 [RS232] | | -------- | -------- | |1 | | |2 | Rx | |3 | Tx | |4 | | |5 | GND | |6 | | |7 | RTX | |8 | CTX | |9 | | * RS485 腳位定義 | PIN | COM2 [RS485] | COM2 [RS485] | COM3 [RS485] | | --- | ------------ | --- | --- | | 1 | Data- | Rx | | | 2 | Data+ | Rx+ | | | 3 | | Tx | | | 4 | | Tx+ | | | 5 | GND | GND |GND | | 6 | | |Data- | | 7 | | | | | 8 | | | | | 9 | | |Data+ | ## 我的第一支HMI程式 在完成所有的基礎設定後,接下來我們就可以開始進入HMI程式開發的階段拉! 為了完成這個設計我們共分為下列幾個階段進行 ### 建立一份新的專案 在開啟**EasyBuilder Pro**後,可以看到開啟檔案的視窗,由於本案例為建立一個新的專案,因此我們點選<font color="blue">開新檔案</font>即可。 ![](https://i.imgur.com/Gays7W6.png) ### 建立適合的工程檔案 跟其他軟體開發不同,HMI在建立專案時需要指定特定的HMI機型配合,這邊將用<font color="blue">MT8071iE</font>當作示範,完成之後點選確認。 ![](https://i.imgur.com/3Dmlgj5.png) ### 進階參數設定 接下來我們會對設備進行一些常用參數設定,這部分我們會在後續的章節在詳細介紹,先點選確認即可。 ![](https://i.imgur.com/mGbxGwU.png) ### 開發環境介紹 在完成所有的參數設定後,接下來我們可以把整個視窗分為幾個部分。 #### 系統工具列部分 ![](https://i.imgur.com/cyylKXa.png) 系統工具列在開發HMI程式上是相當重要的功能,在系統工具列中一共分為以下幾個部分。 * 常用:大部分在開發HMI設計的功能都可以在這個頁面找到,其中系統參數與物件這兩個功能最為常用 * 工程檔案:程式開發完成後需要進行測試與部屬的相關功能 * 物件:在HMI上可視區域上面的元件 * 資料/歷史:相關HMI的歷史資料與警報設定 * IIoT/能源管理 * 檢視:可以在此頁面中調整IDE的介面配置 * 工具:相關進階操作與位址編輯 #### 位址編輯器 ![](https://i.imgur.com/iaoenOs.png) 利用**位址編輯器**可以快速的預覽此專案會變動到的地址,包含Local HMI、Remote HMI、PLC等。 #### 主要編輯區 ![](https://i.imgur.com/79LFR5Q.png) 在主要編輯區的部分可以進行元件的擺放。 ### 正式進入我的第一支程式 在這個章節我們將教導學生如何利用EasyBuilder Pro建立一支簡易的Hello World,首先我們可以先在**物件**視窗中點選**文字**。 ![](https://i.imgur.com/1DNhDu9.png) 接下來會跳出一個**新增文字/註解 物件**的視窗,在這個視窗中我們可以設定這個物件的相關屬性,其中比較重要的屬性如下: * 僅為註解使用:使用者若將此選項設定為Enable,此物件將不會顯示在HMI上 * 屬性:可以對文字格式進行設定,包含字型、文字大小等 * 跑馬燈:是否以跑馬燈的方式來進行呈現 * 內容:實際顯示的文字 ![](https://i.imgur.com/EbAZjaL.png) 當所有屬性都設定完成之後點選確定,即可將此物件放置到主要編輯區。 ![](https://i.imgur.com/3kpM85o.png) ### 部屬程式到HMI設備中 接下來我們可以在 工具 > 下載(PC/HMI) 的功能列中將程式部屬到HMI的設備上,此時會跳出另存新檔的視窗,我們選擇儲存檔案。 ![](https://i.imgur.com/mEjK9TN.png) 在完成存檔的工作後,會跳出HMI設備的相關資訊,這邊我們使用IP的方式來連接到HMI,並將設備IP設定成192.168.123.211,完成之後點選下載。 ![](https://i.imgur.com/YvpL23b.png) 當設定檔都完成寫入後可以在上方視窗看到寫入完成。 ![](https://i.imgur.com/ebOAKRw.png) ### 在模擬環境中觀看HMI的情況 我們可以在 工程檔案 > 連線模擬 中,可以觀看到HMI的部屬情況。 ![](https://i.imgur.com/Txvtu9k.png) ## 建立HMI與PLC的連線 在前面的例子我們已經學會了如何在HMI上建立了一個簡易個Hello World程式,接下來我們嘗試的在HMI中建立與PLC連線,並對PLC進行資料存取與控制,首先我們先在 常用>系統參數>設備的頁面中點選"新增設備/伺服器"。 ![](https://i.imgur.com/EOPx3h8.png) 接下來我們可以嘗試設定設備的屬性,設備的屬性分為兩個部分,上半部分為HMI,這邊由於我們的HMI在本地端,因此先選為本機。下半部分為PLC的部分,這邊我們使用Modbus/TCP的方式來進行連接,這邊我們通訊的IP使用192.168.123.88,完成之後點選確定。 ## 利用元件讀取PLC訊號並使用Modbus/TCP協定。 為了能夠讀取PLC的值,我們先在物件>輸入中拉一個數值物件。 ![](https://i.imgur.com/LV0AOhz.png) 接下來我們嘗試者利用數值物件來讀取PLC的Sersor的值,首先我們要先了解一個基礎的Modbus的協定格式為何? ## Modbus/TCP 格式 | TCP Header | Address | Function Code | Start Register Address | Data | | -------- | -------- | -------- | --- | --- | | 6 Bytes | 1 Bytes | 1 Bytes | 2 Bytes | N Bytes | TCP Header : 這部分分為三個部分,每個部分均為2 Bytes,3個部分分別為(Transaction ID、Protocal ID、Data Length),這邊我們將以PLC對變頻器讀取來當作示範。 若 PLC 的 Address 為 0x58 Function Code 讀取為 0x06 變頻器所在位置為 0x01 0x90 因此組合出來的 Modbus/TCP 如下 00 01 00 00 00 06 58 06 01 90 00 01 ## 設定元件讀取PLC的元件通訊 為了能夠讓HMI上的元件成功讀取到PLC上面的Sensor數據,我們需要針對該元件進行下列設定,主要的設定項目在讀取/寫入位置,我們的設備選用MODBUS TCP/IP,位址的部分我們選擇6x,內容的部分我們輸入88#200,完成之後我們點選確定。 :::success 88 表16進位的 0x58 (Address) 401 表16進位的 0x01 0x90 (Start Register Address) ::: ![](https://i.imgur.com/jAT6j44.png) ## 設定數字比例修正 由於PLC讀取到的數值為原始的10進位,有時候不能代表真實的數值,因此我們可以在格式的地方進行修正,包含小數點位數,例如我們變頻器的數值範圍為0~60 有效位數為整數位2位+小數點兩位我們可以進行以下設定。 ![](https://i.imgur.com/AOD505A.png) ## 實體畫面展示 重複利用上述方式,我們可以繪製出一個與PLC通訊的HMI介面出來。 ![](https://i.imgur.com/LHKQSvT.png)