利用 AWS IoT SiteWise 中的警報即時監控工業設備
近年來因全球疫情肆虐,台灣不少中小企業深受其害,為此政府也針對製造業推出紓困方案,除了貸款、營運資金的短期救急外,也針對技術升級補強體質編列預算,包括生產自動化、數位化等皆被列為紓困標的,而此舉等於直接帶動中小型製造業對數位轉型的需求明顯增強,也讓市場上數位轉型、智慧製造相關供應商在近期接獲不少詢問。甚至許多中小企業考慮將現有本地端資料進行異地備份或是遷移到雲端降低實體機房建置和運算資源成本。
而今天會以傳統製造業工廠端 — CNC 工具機的例子,來跟大家分享智慧工廠的概念,以及如何透過 AWS IoT thing 的 Device Shadow 在即使傳統工廠網路不穩定情況下也能將機台資料傳送至 AWS IoT SiteWise,並且跟據所要監控的參數送出警報。我們將會在這篇部落格做實際探討和實作。
那什麼是智慧工廠?
智慧工廠是「智慧製造」的重要載體,指工廠透過具有資訊自感知、自決策、自執行等功能的先進製造過程、系統與模式,將「智慧機械」生產過程各環節與物聯網、雲端運算、大數據及 AI 人工智慧應用緊密結合,更智慧化的管理工廠大小事物,許多傳統的工廠也慢慢朝工業 4.0 和智慧工廠做轉型。
那什麼是 CNC ?
CNC 加工機是由電腦構成,因此會依據工件金屬切削之要求,輸入相應的程式。在精密加工製造業中電腦數值控制 CNC 工具機是相當重要的機器設備,儘管製造廠商欲透過這樣的自動化控制設備來製造更精細、更複雜的各式零件,但卻也面臨著異常狀況管理的問題。
願景
雖然傳統機台三色燈可透過紅、黃、綠三色分別代表故障、待機、運行等顯示運作狀態,但卻因無法掌握確切的運作時間以及其故障的細項,使得許多至今在生產現場仍保有作業員操作機台的工廠中(會消耗相當大的人事管理成本),因缺少具體指示何時該進行下一步動作,導致機台產生無謂的閒置,因而降低生產效率。
所以能否透過 AWS 上 IoT 服務做到相關解決方案,有待我們在這篇部落格探討!
圖片來源至:研華科技
為了能有效地掌握廠內為數眾多的 CNC 工具機和提升稼動率,管理者必需要充分了解各機台的現況,以便能在異常狀況發生時儘快恢復設備的正常運作,一方面可降低因機台停擺影響生產線的作業,另方面也可提高每台設備的使用效率。
基本上,大多數的使用者多半習於使用 PLC 來擷取 CNC 工具機的訊號,但此法卻易於出現即時性不足與建置成本過高等問題,因此透過結合 AWS IoT SiteWise 做到設備狀況的即時監控與警訊,進而設備維運人員可以在故障發生前第一手知道目前設備的狀況,減少時間和人力成本。
那就讓我們來實作吧!
架構流程
在這個部落格中,我們會使用 AWS IoT Things 來去模擬工廠端現場多台 CNC 機台的狀況,並且使用 MQTT 協定與 IoT Device Shadow 做連接,虛擬化表示目前機台的狀態呈現。
蒐集工廠端資料架構圖
為了讓讀者更容易理解我們怎麼蒐集資料的過程,會在這個區塊再用架構圖多做說明。
設計 IoT Policy 存取權限
但要在操作此連接時,必須先將你的 IoT policy 規範好,用已確保兩端的存取權限。使用者可以在 AWS IoT Console 側欄中找到 Secure 並選取 Policies 做修改。設定完 Policy 之後,就可以開始到 IoT Console 去 Create 自己的 thing 了,並且將你的 Thing 做命名,以及將 Device Shadow 打勾。
當你要創建好你的 thing 之前,會需要將 Certificate 下載下來,並且使用它來與你的 IoT Device 做連接,用來確保資安上的保護。請注意將你的 Certificate 保存好,否則會影響後續操作。
接著將你的 Policy attach 到 Thing 上面。
建立設備模型
首先我們必須根據實際的設備狀況在 AWS IoT SiteWise 建立一個虛擬的設備模型,而在實際場景中,CNC Device 不會只有一台的狀況,所以我們可以創建 device fleet model 將許多 device associate 到這個 fleet 做集體監控,會比較有效率得知機台狀況可以依照原先 model 打造出一個繼承的階層。
接下來,我們需要定義一些與 CNC 機台狀況 設備模型相關的測量標準(例如,來自 sensor 的原始數據)。
在 CNC 設備模型中,我們還創建了一個 CNC 車床的主軸溫度屬性來存儲溫度閾值。由於,熱脹冷縮為大多數金屬材料對溫度特性,而以鋼或鑄鐵為結構材料的切削工具機對溫度的反應也不例外進行切削加工時,各項內外熱源會使工具機結構產生溫度上的變化,造成結構熱脹冷縮的效應,如果此熱脹冷縮使得刀具與工件的相對位置產生了變化,則會引起加工件尺寸或形狀上的偏差。因此,改善機台加工精度及選擇良好的加工製程都是達成高品質產品的關鍵!
再根據原先模組至 Hierarchy definitions 繼承原先 model 參數設定。
建立設備
創建設備模型後,我們現在創建設備本身,按照原本設置好的模型,打造出實際機台的設備狀況。
現在我們針對我們的設備做一些調整別名調整。
好讓我們方便之後判斷監控的數據來源。
建立觸發規則
我們將會在 AWS IoT Core 中建立規則,剖析 Device Shadow 通知訊息並將資料傳送到 AWS IoT SiteWise 中的裝置設備。
命名好自己的 rule 名稱後,請到 Rule Query Statement 設置自己設置自己查詢規則。
SELECT
*
FROM
'$aws/things/+/shadow/update/accepted'
WHERE
startsWith(topic(3), "CNCTutorialDevice")
在 Set one or more actions (設定一或多個動作) 下,選擇 Add action (新增動作)。
選擇 By property alias (依據屬性別名)。
可自己定義屬性類別。
設置完後,選擇你原先設置好的設備,以及 Create Role
去做到權限的操作
就可以點擊新增自己的 rule 啦!
使用指令碼模擬實際數據
由於我們未使用實際裝置來回報資料,因此我們需要執行指令碼來更新具有車床主軸溫度等參數 ,以模擬真實的感應器資料。
將以下程式碼放置資料夾中,需要變動相關的參數設定。
這是用於與 AWS IoT 進行普通 MQTT 傳遞數據,可以像這樣初始化:
<br /># Import SDK packages
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTShadowClient
import json
import timemyShadowClient = AWSIoTMQTTShadowClient("myClientID")
mqttClient.configureEndpoint("YOUR.ENDPOINT", 8883)
mqttClient.configureCredentials("YOUR/ROOT/CA/PATH", "PRIVATE/KEY/PATH", "CERTIFICATE/PATH")
# For Websocket, we only need to configure the root CA
# myShadowClient.configureCredentials("YOUR/ROOT/CA/PATH")
mqttClient.configureConnectDisconnectTimeout(10)
mqttClient.configureMQTTOperationTimeout(5)
mqttClient.connect()
print("MQTT client for {} connected".format(myClientID))
# Shadow operations
deviceShadowHandler = mqttClient.createShadowHandlerWithName("myClientID", True)
payload = { "state": { "reported": { "temp": 34.5, "timestamp": time.time() } } }
deviceShadow.shadowUpdate(myJSONPayload, customCallback, 5)
...
透過此次操作就可以模擬未來在機台遇到的情況,以及想要監控的數值! 最後我們再根據監控的數值來設定警報通知。
定義警報
創建警報作為設備模型的一部分,在這個實際案例中為 CNC 系統設備模型。通過創建警報為設備模型的一部分,之後使用此模型創建的所有設備都將自動為此警報設置默認配置。可以為每個單獨的設備更新警報配置。
我們將名為 CNCTemperatureAlarm 的第一個警報定義添加到設備模型中。 AWS IoT SiteWise 警報由 AWS IoT Events 服務做評估和串接,因此警報類型為 AWS IoT Events 警報。
警報的閾值定義根據滿足特定條件的屬性值指定何時會觸發警報。我們將警報假設溫度低於 40 °C 的情況下會觸發,表示稼動率不高,沒在使用。
或者,還可以為此警報配置 email 和 簡訊通知。請注意,必須啟用 AWS Single Sign-On 服務並在當前區域中添加用戶,以便顯示為有效目的地。
現在可以在 CNC 系統設備模型頁面的警報 dashboard 中看到 CNCTemperatureAlarm 的警報。
監控警報設定
設備詳細信息頁面現在顯示活動警報。如果設置了通知,這些通知也會被觸發。
在典型的工業生產過程中,操作人員看到警報,然後確認它以指示問題識別和解決過程的開端。
結論
透過此次的實作和案例分享,在數位浪潮的驅動之下,許多工廠與製造目前只透過塔台三色燈來監控實際機台狀況,但如果能透過雲端來強化工廠整體的營運和人力資源上的管理,可以降低不少營運和人事成本,也能更即時知道細節和狀況。透過 AWS 平台和 AWS IoT SiteWise 強大的匯集地端數據功能,當設備超過或低於預先設置的溫度閥值時,將觸發警示系統發出警告提醒,測做人員可排程進行預防保修,避免突發故障造成混亂,並將自動警報系統和數據蒐集與分析集成大成化,相信在未來也會有許多工廠或製造業,朝工業 4.0 目標前進甚至藉由雲端運算來提升整題營運效率和成本管控!