• 沒有找到結果。

第四章 研究方法

4.1 即時監控系統

由於本系統主要依附在PLC 的架構下,藉由 PLC 透過 Modbus TCP 通 訊協定,將儲存在PLC 內部記憶體位置的資料傳送到 PC 端,到 PC 端之後 有三種走向,一是由PC 端將收集來的資料輸出成 CSV 檔案,讓資料可以直 接以檔案的方式匯入資料庫;二是由本研究自行開發的異常偵測系統,監控

20

製程參數是否有超出預設閥值的異常現象,若是有,則會透過 Line 發送異

常訊息,若無則繼續監控;三則是可以在Web 上透過圖形化方式,來觀看機

台各項數據,如圖4-3 為即時監控異常偵測系統的流程圖。以下將一一介紹 該系統之研究方法各項步驟。

圖 4-3 即時監控異常偵測系統流程圖

4.1.2 機台連線與通訊協定

在PLC 之通訊架構上, PLC 是被定位為僕系統(Slave)而任何與 PLC 連 線之週邊設備均為主系統(Master),也就是說任何週邊設備與 PLC 間之通訊 是由主系統(週邊設備)來主動發出命令,而僕系統(PLC)只有在收到命令訊息 後才依該命令之要求回應訊息給主系統,而不能主動發出訊息給主系統,如 圖4-4 之關係圖[19]所示:

圖 4-4 主僕定位與通訊互動關係

21

本研究以開源使用的 PLC 通訊協定 nModbus 來實現模擬連線程式,軟 體系統使用Visual Studio[20](如圖 4-5)平台來做為程式開發。

圖 4-5 Visual Studio 程式開發平台

為了能與 Fatek 的 PLC 進行溝通,硬體連線及通訊參數設定需雙方一 致,故必須要有Modbus 與 Fatek 的通訊編碼(如表 4-1)。

表 4-1 Modbus 與 Fatek 的通訊編碼

Modbus protocol Fatek protocol Description

00001~00256 Y0~Y255 Contact output 01001~01256 X0~X255 Contact input 02001~04002 M0~M2001 Internal relay 06001~07000 S0~S999 Stepper relay 09001~09256 T0~T255 Timer 09501~09756 C0~C255 Counter 40001~44168 R0~R4167 R class register 45001~45999 R5000~R5998 Hold/read register 46001~48999 D0~D2998 D class register 49001~49256 T0~T255 Timer 49501~49700 C0~C199 Counter (16 bit) 49701~49812 C200~C255 Counter (32 bit)

22

4.1.3 資料接收

本 研 究 利 用 TCP/IP 為主要通訊來接收資料, TCP 為 一種連接向 (Connection oriented)的通訊協定,以三向交握(Three-way Handshake)方式建 立虛擬連線(Virtual connection)[21],而 TCP 在協議通訊前,通訊的雙方都必 須建立連接才能夠進行溝通,這樣的作法一則可以確保連線是安全的,二則 可以確保資料在傳輸中的正確性,以及傳輸速率的控制,綜合以上因素可以 說TCP 協議具有高度的穩定性與可靠性。(圖 4-6 為三向交握示意圖)

圖 4-6 三向交握(Three-way Handshake)示意圖

4.1.4 資料庫與 Web browser

為了將收集到的資料整理成有用的數據,本研究利用 MySQL 資料庫做

為資料儲存的地方並結合PHP 網頁化的模式。將儲存在 PLC 內部記憶體位 置的資料傳輸至 PC 端,並透過 PC 將資料轉成 CSV Table(如圖 4-7),使資

料庫可以直接匯入,以此方式確保即便在資料遺失時,仍可於 CSV 檔中找

到所需數據資料。圖4-8 為數據處理流程。

23

Factory ID varchar

Device ID int

Name varchar

IP Address varchar

Port int

Device Type varchar

Slave ID int

Communication Type varchar

Switch varchar

Connect Success varchar

DataID Time Data

0 11/15 09:31:48.2297 32767 0 11/15 09:31:48.4227 32767 1 11/15 09:31:48.6686 1 1 11/15 09:31:48.6966 1 0 11/15 09:31:48.6796 32767 1 11/15 09:31:48.8566 3 0 11/15 09:31:48.9255 32767 1 11/15 09:31:48.9895 4 0 11/15 09:31:49.2014 32767 1 11/15 09:31:49.2654 7 0 11/15 09:31:49.4504 32767 1 11/15 09:31:49.5153 9 0 11/15 09:31:49.7043 32767 1 11/15 09:31:49.7653 12

24

表 4-3 數據資料之欄位設計

名稱 資料型態

Data ID varchar

Time datetime

Data int

4.1.5 LINE BOT 官方機器人

根據尼爾森媒體(Nielsen)的調查,12-65 歲的台灣民眾將近 91%,也就 是將近 1,700 萬人都在使用 LINE[22]通訊軟體,這也代表我國人民對於使 用LINE 軟體是非常尋常的事情。而 LINE 從 2016 年開始提供免費「LINE BOT API 試用」帳號(LINE BOT API Trial Account)申請,這讓任何人都可以 在 LINE 的平台上開發聊天機器人的多元應用[23]。本研究為了能夠解決在 機台遇到異常狀態時,能夠及時的將訊息告知負責的機台人員,盡快進行修 繕作業並排除問題,決定使用LINE BOT 來實現此功能。以下為 LINE BOT 功能步驟:

Step 1 至 LINE 官網申請帳號後,並取得 Token 序號與 User ID(如圖 4-9 與 圖4-10)。

圖 4-9 Token 序號

25

圖 4-10 User ID Step 2 申請 Azure 雲端運算平台帳號。

Step 3 建 置 V i s u a l S t u d i o ( 2 0 1 5 ) C # 專 案 環 境 , 下 載 並 使 用 Studyhost.Example.Linebot 套件,進行程式的編輯設定與修改。

Step 4 將程式發佈至 Azure 雲端運算平台,並將專案的 URL 綁至 LINE BOT 的 Webhook URL 欄位,此欄位是紀錄機器人程式的位置,LINE 則 會將使用者的訊息往欄位指定的地方傳送過去。

相關文件