---
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進行通訊。

### 上課時數
* 本門課的重點在引導學生如何利用 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 安裝軟體。

* 下載完成時我們可以進入到安裝畫面,安裝的過程基本上下一步到底即可。

* 安裝完成後可以在桌面上看到 Utility Manager 應用程式,雙集打開可以看到下列畫面。

* 我們點擊EasyBuilder Pro 即可進入HMI設計頁面。

### 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 主要連接埠如下

* (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>即可。

### 建立適合的工程檔案
跟其他軟體開發不同,HMI在建立專案時需要指定特定的HMI機型配合,這邊將用<font color="blue">MT8071iE</font>當作示範,完成之後點選確認。

### 進階參數設定
接下來我們會對設備進行一些常用參數設定,這部分我們會在後續的章節在詳細介紹,先點選確認即可。

### 開發環境介紹
在完成所有的參數設定後,接下來我們可以把整個視窗分為幾個部分。
#### 系統工具列部分

系統工具列在開發HMI程式上是相當重要的功能,在系統工具列中一共分為以下幾個部分。
* 常用:大部分在開發HMI設計的功能都可以在這個頁面找到,其中系統參數與物件這兩個功能最為常用
* 工程檔案:程式開發完成後需要進行測試與部屬的相關功能
* 物件:在HMI上可視區域上面的元件
* 資料/歷史:相關HMI的歷史資料與警報設定
* IIoT/能源管理
* 檢視:可以在此頁面中調整IDE的介面配置
* 工具:相關進階操作與位址編輯
#### 位址編輯器

利用**位址編輯器**可以快速的預覽此專案會變動到的地址,包含Local HMI、Remote HMI、PLC等。
#### 主要編輯區

在主要編輯區的部分可以進行元件的擺放。
### 正式進入我的第一支程式
在這個章節我們將教導學生如何利用EasyBuilder Pro建立一支簡易的Hello World,首先我們可以先在**物件**視窗中點選**文字**。

接下來會跳出一個**新增文字/註解 物件**的視窗,在這個視窗中我們可以設定這個物件的相關屬性,其中比較重要的屬性如下:
* 僅為註解使用:使用者若將此選項設定為Enable,此物件將不會顯示在HMI上
* 屬性:可以對文字格式進行設定,包含字型、文字大小等
* 跑馬燈:是否以跑馬燈的方式來進行呈現
* 內容:實際顯示的文字

當所有屬性都設定完成之後點選確定,即可將此物件放置到主要編輯區。

### 部屬程式到HMI設備中
接下來我們可以在 工具 > 下載(PC/HMI) 的功能列中將程式部屬到HMI的設備上,此時會跳出另存新檔的視窗,我們選擇儲存檔案。

在完成存檔的工作後,會跳出HMI設備的相關資訊,這邊我們使用IP的方式來連接到HMI,並將設備IP設定成192.168.123.211,完成之後點選下載。

當設定檔都完成寫入後可以在上方視窗看到寫入完成。

### 在模擬環境中觀看HMI的情況
我們可以在 工程檔案 > 連線模擬 中,可以觀看到HMI的部屬情況。

## 建立HMI與PLC的連線
在前面的例子我們已經學會了如何在HMI上建立了一個簡易個Hello World程式,接下來我們嘗試的在HMI中建立與PLC連線,並對PLC進行資料存取與控制,首先我們先在 常用>系統參數>設備的頁面中點選"新增設備/伺服器"。

接下來我們可以嘗試設定設備的屬性,設備的屬性分為兩個部分,上半部分為HMI,這邊由於我們的HMI在本地端,因此先選為本機。下半部分為PLC的部分,這邊我們使用Modbus/TCP的方式來進行連接,這邊我們通訊的IP使用192.168.123.88,完成之後點選確定。
## 利用元件讀取PLC訊號並使用Modbus/TCP協定。
為了能夠讀取PLC的值,我們先在物件>輸入中拉一個數值物件。

接下來我們嘗試者利用數值物件來讀取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)
:::

## 設定數字比例修正
由於PLC讀取到的數值為原始的10進位,有時候不能代表真實的數值,因此我們可以在格式的地方進行修正,包含小數點位數,例如我們變頻器的數值範圍為0~60 有效位數為整數位2位+小數點兩位我們可以進行以下設定。

## 實體畫面展示
重複利用上述方式,我們可以繪製出一個與PLC通訊的HMI介面出來。
