MES製造執行系統是什麼?生產管理功能與導入效益完整說明

Published on: | Last updated:

重點一句話

嗯…最近很多人在問 MES。MES… 製造執行系統。說穿了,它就是工廠的…數位工頭吧。對,工頭。它不是老闆,老闆是 ERP 系統,只管訂單跟錢。MES 是在現場,盯著每一台機器、每一個人、每一個料,確定事情有照著規矩在走。就是…讓所有混亂的事情,變得透明。大概是這樣。

沒有 MES,工廠會是什麼樣子?

我想一下…沒有 MES 的工廠,我待過不少。大概就是…「資訊靠吼,進度靠猜,品質靠拜」。聽起來很誇張,但說真的,八九不離十。 生管在辦公室用 Excel 排了半天,單子一丟到產線,現場領班一看,啊,這台機器昨天就壞了,那個老師傅今天請假…然後電話就開始打,訂單就開始延遲。

每天早上開會,大家拿的報表數字都不一樣。業務說客戶在催,生管說產線沒做出來,產線說品管判退一堆,品管說是你現場製程不穩…然後就開始吵。因為沒有一個大家都能信的、即時的數據來源。 這就是問題核心。

我整理一下,大概是這種感覺:

場景 沒有 MES 的工廠(傳統作法) 有 MES 的工廠
追蹤生產進度 嗯…靠組長拿著紙本報表,一個個去問。回辦公室再 key in…常常是半天或一天前的資訊了。 就…看螢幕上的電子看板。哪張單在哪個站,做了多少,一清二楚。即時的。
處理品質問題 一批貨做完了,品管抽檢才發現,啊,慘了,尺寸不對。前面幾百個可能都白做了。 做到一半,機台參數一跑掉,或首件檢驗沒過,系統就直接卡住,不讓你往下做。損失比較小。
設備管理 機器壞了才叫修。至於上次保養是什麼時候…要去翻本子。可能還找不到。 系統會記著每台機器的 OEE…就是那個整體設備效率。快到保養時間了會提醒,壞掉也能馬上知道原因。
人員與物料 領料單靠手寫,寫錯了、領錯了,到站點才發現。人員有沒有受過這個機台的訓練?…可能要問一下才知道。 掃描工單、掃描料號、掃描人員卡。全部都要對,系統才讓你開工。這叫…嗯,生產履歷。對,Traceability。

所以你看,差別不在於機器有沒有在動,而在於你「知不知道」它動得對不對。這就是關鍵。

流程示意:工廠數據流向的轉變
流程示意:工廠數據流向的轉變

那…要怎麼開始?

這問題最難回答。很多人以為買一套軟體回來裝了就好,但…通常這就是失敗的開始。

第一步,絕對不是選系統。是開會。叫相關的人…產線的、生管的、品管的、IT的,全部坐下來。然後問一個問題:「我們現在最痛的是什麼?」是交期一直延遲?還是不良率太高?還是成本算不清楚?先聚焦在一個…最痛的點上。

國外很流行談一個標準,叫 ISA-95。 這是國際自動化學會訂的,非常…非常完整,把工廠從 Level 0 的感測器到 Level 4 的 ERP 企業系統,切分得很清楚。 MES 就是在中間的 Level 3。你看那些大廠,像西門子、洛克威爾的資料,他們都很愛講這個。 但說真的,在台灣,特別是中小企業…你拿 ISA-95 的大藍圖去跟他談,他會嚇跑。

所以,比較實際的作法是…嗯,借用它的概念,但從最痛的地方先著手。例如,如果是不良率,那就先從品管模組跟機台參數監控開始。如果是想知道進度,那就先做生產追蹤跟電子看板。不用一次到位。 先求有,再求好。

大廠跟小工廠,用的會一樣嗎?

當然不一樣。完全是兩種世界。

像…半導體廠、面板廠那種,他們的 MES 系統是「長」在工廠裡的,跟命一樣重要。很多甚至是自己養幾百個工程師寫的,因為他們的製程太複雜、太獨特了,外面買的系統根本…嗯,跟不上。那是幾千萬、甚至上億的投資。

但如果你是一間傳統的加工廠,幾十台 CNC,或是一條小組裝線。你需要的就不是那種航空母艦。你需要的是…靈活、好上手的系統。現在市面上有很多模組化的 MES,或者說是…輕量級的 MES。 可能用訂閱制的,一個月付多少錢,先用幾個基本功能,像報工、品質記錄。這樣負擔比較小。

重點是,不要被廠商的話術騙了。什麼「工業 4.0 完整解決方案」…先停下來想一想,你現在是不是只需要解決「工單跑到哪裡去」這個問題就好了。

實測環境:現代工廠的管理模式
實測環境:現代工廠的管理模式

導入會失敗嗎?…常常。

這個…說實話,導入 MES 的失敗率不低。真的。買了系統,花了好幾百萬,結果半年後沒人用,最後變成蚊子館系統。這種事我看多了。

原因…最多最多的,是「人」。 不是系統不好用。你想想,一個老師傅,他靠他的經驗跟手感做了三十年,你突然要他在每個站點都去刷卡、點螢幕,他會覺得你在找他麻煩,不相信他的專業。他的反彈會是最大的阻力。

所以,溝通…還有教育訓練,比系統本身的功能還重要。你要讓他知道,這個系統不是要取代他,而是要幫他。幫他把一些…很煩的文書工作拿掉,幫他證明他的產出跟品質有多好。讓他從「被管理者」變成「使用數據的管理者」。這個心態轉變…很難,但必須做。

另一個常見的失敗點,就是…嗯,範圍太大了。 老闆很貪心,想要生產、品質、設備、物料追蹤一次全部上線。結果就是每個部門都被搞得人仰馬翻,然後就…就沒有然後了。所以我前面才說,先解決一個最痛的問題就好。小步快跑,建立信心,再往下走。

結果對照:數據管理的影響
結果對照:數據管理的影響

幾個最常被問的誤解

最後講幾個…嗯,大家常搞混的觀念。

第一個:「MES 是不是就是 ERP?」…不是,完全不是。你可以把它們想像成…ERP 是公司的「大腦」,管錢、管訂單、管庫存,思考的單位是「天」或「週」。MES 是產線的「小腦」或「神經系統」,管的是「現在」這一分鐘、這一秒鐘,機台發生什麼事。 ERP 下命令說「這個月要做一萬個」,MES 負責把這一萬個在接下來的幾百個小時內,安全、正確地做完。兩者要串接,但做的事情完全不同。

第二個:「裝了 MES,產能就會馬上翻倍?」…這絕對是幻想。MES 本身不會增加產能。它像一面…照妖鏡。它只是把你以前看不到、不想看的問題,全部用數據化的方式,呈現在你面前。 像是哪個站點是瓶頸、哪個機台不良率最高、哪個時段效率最差。看到問題之後,你得去「管理」、去改善,產能才會提升。工具是工具,重點還是使用工具的人。

所以…嗯,總結來說,MES 不是萬靈丹。它是一個…讓工廠從「經驗管理」走向「數據管理」的起點。路很長,但…是必經之路吧。尤其是在現在這個什麼都講求快跟透明的時代。

如果你正在考慮導入 MES,你最掙扎的是「預算成本」的問題,還是「人員抗拒」的問題?在下面留言,分享一下你的看法吧。

🎁 解鎖本篇限定Google外掛

MES工單與進度追蹤標準工具|Google Sheet專業級自動化小幫手

中小企業在導入MES系統時常遇到落地困難,一堆Excel工單進度混亂,資訊不透明。老闆催進度、現場回報延遲,結果誰也說不清產品到底做到哪裡。我幫不少朋友處理這種案子,發現關鍵不在軟體多高級,而是要有一個標準化、能隨時查詢工單狀態的落地工具。這套Script能讓Google Sheet瞬間變身MES的入門板,讓資料不再散亂,管理現場一目瞭然。

複製這段程式,打造你專屬的MES追蹤表

這個工具能即時建立工單、輸入進度、快速查詢每筆記錄的生產狀態。


// === MES工單進度追蹤工具 ===

function doGet(e) {
  var html = [];
  html.push('<html><head>');
  html.push('<meta name="viewport" content="width=device-width,initial-scale=1">');
  html.push('</head><body style="font-family:sans-serif;">');
  html.push('<div style="max-width:480px;margin:30px auto;padding:30px;background:#f6f6f6;">');
  html.push('<h2 style="text-align:center;">MES工單進度標準化小工具</h2>');
  html.push('<form id="workForm">');
  html.push('工單編號:<input type="text" name="order" required><br><br>');
  html.push('產品名稱:<input type="text" name="product" required><br><br>');
  html.push('數量:<input type="number" min="1" name="qty" required><br><br>');
  html.push('階段:<select name="stage">');
  html.push('<option>備料</option><option>生產</option>');
  html.push('<option>品檢</option><option>入庫</option>');
  html.push('</select><br><br>');
  html.push('<input type="submit" value="送出"> ');
  html.push('<button type="button" onclick="refresh()">刷新紀錄</button>');
  html.push('</form>');
  html.push('<div id="msg" style="color:#0a7f27;margin:10px 0;"></div>');
  html.push('<hr>');
  html.push('<h3>歷史工單紀錄</h3>');
  html.push('<div id="recordArea"></div>');
  html.push('</div>');
  html.push('<script>');
  html.push('function refresh() {');
  html.push(' google.script.run.withSuccessHandler(showRec).getRecords();');
  html.push('}');
  html.push('function showRec(data2) {');
  html.push(' var html = "<table border=1 cellpadding=6><tr style=\'background:#e7e7e7;\'><th>工單</th><th>產品</th><th>數量</th><th>階段</th><th>時間</th></tr>";');
  html.push(' data2.forEach(function(r){');
  html.push('   html += "<tr><td>"+r[0]+"</td><td>"+r[1]+"</td><td>"+r[2]+"</td><td>"+r[3]+"</td><td>"+r[4]+"</td></tr>";');
  html.push(' });');
  html.push(' html += "</table>";');
  html.push(' document.getElementById("recordArea").innerHTML = html;');
  html.push('}');
  html.push('document.getElementById("workForm").onsubmit=function(e){');
  html.push(' e.preventDefault();');
  html.push(' var o=this.order.value.trim(),p=this.product.value.trim(),q=this.qty.value,s=this.stage.value;');
  html.push(' if(!o||!p||!q){document.getElementById("msg").textContent="資料不能空白";return;}');
  html.push(' document.getElementById("msg").textContent="送出中...";');
  html.push(' google.script.run.withSuccessHandler(function(msg){');
  html.push('   document.getElementById("msg").textContent=msg;refresh();');
  html.push(' }).submitOrder(o,p,q,s);');
  html.push(' return false;');
  html.push('};');
  html.push('refresh();');
  html.push('</script></body></html>');
  return HtmlService.createHtmlOutput(html.join(""));
}

// 寫入 Google Sheet
function submitOrder(order, product, qty, stage) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MES");
  if (!sheet) sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("MES");
  var now = Utilities.formatDate(new Date(), Session.getScriptTimeZone(),
    "yyyy/MM/dd HH:mm");
  // 檢查工單重複(這行少寫很慘,現場會炸)
  var range = sheet.getRange(2,1, sheet.getLastRow(),1).getValues();
  for(var i=0;i<range.length;i++){
    if(range[i][0]==order){
      // 一樣的工單只更新進度
      sheet.getRange(i+2,2,1,4).setValues([[product, qty, stage, now]]);
      return "已更新現有工單進度";
    }
  }
  sheet.appendRow([order, product, qty, stage, now]);
  return "新增工單完成";
}

// 讀取歷史紀錄
function getRecords(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MES");
  if (!sheet) return [];
  var vals = sheet.getDataRange().getValues();
  vals.shift(); // 拿掉標題
  return vals;
}

// 建立表頭(沒表頭Excel也很亂)
function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MES");
  if (!sheet) sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("MES");
  var first = sheet.getRange(1,1,1,5).getValues()[0].join("");
  if(first!="工單編號產品名稱數量階段時間"){
    sheet.getRange(1,1,1,5).setValues([["工單編號","產品名稱","數量","階段","時間"]]);
  }
}

MES Google Apps Script 標準部署流程

一步一步跟著來,不會迷路。

  1. 開啟 Apps Script 編輯器
    動作:打開 Google 試算表,點「擴充功能」→「Apps Script」
    位置:「擴充功能」在試算表上方選單中間靠右
    結果:瀏覽器會新開一頁進入 Apps Script 編輯器
    ⚠️ 我遇過公司帳號權限直接擋死 Apps Script,建議先用私人帳號試。
  2. 清空並貼上程式碼
    動作:全選(Ctrl+A)→ 刪除 → 貼上上方程式(Ctrl+V)
    位置:編輯器正中央白色區塊
    結果:原本預設的 function myFunction() 會被蓋掉
    ⚠️ 有次朋友只貼一半,執行一堆錯。貼之前要全選刪掉。
  3. 儲存專案
    動作:點左上磁碟片圖示或 Ctrl+S
    位置:編輯區頂端工具列最左側
    結果:如果是第一次,會跳窗要求輸入專案名稱
    ⚠️ 名稱不重要,功能一樣。忘記存檔常常找不到最新版。
  4. 部署為網頁應用程式
    動作:點右上「部署」→「新增部署作業」
    位置:「部署」按鈕在畫面最右上角
    結果:會彈出部署設定對話框
    子步驟:
    1. 點齒輪選「網頁應用程式」
    2. 執行身分要選「我」
    3. 誰可以存取選「任何人」
    4. 點「部署」
    ⚠️ 社群討論過,沒選「任何人」會讓同事完全打不開。
  5. 處理授權警告
    動作:按畫面指示一路「允許」到底
    結果:會看到紅色「Google 尚未驗證」警告畫面
    處理方式:點「進階」→「前往 XXX(不安全)」→「允許」
    ⚠️ 一開始看到這畫面超怕,其實自己寫的都會這樣,不是病毒。
  6. 取得網址,開始使用
    動作:複製部署完成後的網頁應用程式網址
    位置:部署成功後,畫面會顯示一串 https://script.google.com/... 網址
    結果:貼到瀏覽器打開就能用這個MES小工具
    ⚠️ 上次幫同事改表單沒重新部署,結果新功能完全沒上線。改程式後要重部署才會更新。
⚠️ 關於Google授權紅色警告畫面解釋
Google 會跳出「尚未驗證這個應用程式」的紅色畫面,是因為這段Script還沒送審也沒上架。只要是自己寫、還沒公開給全世界用的程式都會遇到。按進階,然後繞過警告就好。權威來源的官方文件有提到這點,沒繞過授權根本玩不起來。這部分安全風險極低,只要確定是自己貼上的程式,不用擔心會中毒或外洩。

MES應用實例:現場工單管理就是要標準流程

舉例,有個小工廠最近做代工,每天三十張工單,主管每次要找進度都靠紙條+口頭,結果常常品檢遲到、成品遺漏。用這套Script,現場不管是產線還是辦公室,只要填單送出,大家隨時可查詢目前階段和時間點,老闆半夜都能即時看進度。上次還有客戶用這工具快速導入生產履歷管理,半年後不只現場減少爭吵,出貨數據也方便直接拉出來給查廠。標準化流程一到位,MES的效益才真的有感。

Related to this topic:

Comments

  1. profile
    Guest 2025-09-09 Reply
    嘿,聽說妳們的MES專案很有看頭!能不能分享一下邊緣裝置的實作經驗?我們在全球供應鏈優化上剛好有類似的技術難題,超想借鏡妳們的解決方案。