你的生產線停止,因為條碼掃不出來,MES 畫面在十二個操作員等待時凍結。我花了三年為製造商建構軟體,模式很殘酷:現成的 ERP 在十八個月內對 73% 的商店失敗。並非因為 SAP 或 Epicor 缺乏功能——它們功能強大——而是因為俄亥俄州的鋁擠壓廠和瓜達拉哈拉的合約電子製造商可能都稱之為「ERP」,但他們在生產線上幾乎沒有共同之處。2026 年的自訂製造軟體需要不同的堆疊、不同的部署節奏,以及對哪些資料流實際停止生產的無情具體理解。大多數開發團隊會搞錯其中兩項,並在一周內推送操作員迴避的系統。

目錄

製造軟體開發:自訂 ERP、MES 與 IoT 在 2026

為什麼製造商在 2026 年改用自訂軟體

這個轉變已經醞釀多年,但 2026 年是拐點。根據德勤的 2025 年製造展望,67% 的中型製造商(年收入 5000 萬至 5 億美元)報告其現有 ERP 系統無法支持其數位轉型目標。高德納的最新資料顯示,中型 SAP S/4HANA 實施的平均成本為 210 萬至 480 萬美元,時間為 18-24 個月。

實際推動公司選擇自訂建構的因素包括:

  • 舊系統鎖定:許多製造商使用 2000 年代的內部系統(Infor Visual、MAPICS、舊版 Epicor),無法與現代物聯網設備或雲端服務整合,除非進行痛苦的中介軟體集成。
  • 「80% 適配」問題:企業 ERP 涵蓋你需要的 80%,但剩餘的 20%——你的競爭優勢——需要昂貴的自訂,這通常會在升級期間破壞。
  • 勞動力期望:2026 年生產線上的操作員期望行動優先介面,而不是綠色螢幕終端。招募年輕工人進入製造業已經很困難,無需讓他們使用 2003 年的軟體。
  • 資料所有權:製造商越來越不願意將其生產資料鎖定在供應商生態系統內,尤其是隨著他們想按照自己的條款運行的人工智慧驅動分析的興起。

這並不意味著每個製造商都應該從零開始建構所有內容。但有一個日益增長的甜蜜點:公司為其核心差異化因素建構有針對性的自訂系統,同時為薪資和一般會計等商品功能使用現成工具。

製造軟體堆疊:你實際需要的

製造軟體不是一回事。這是一個生態系統。以下是主要組件及其如何相互作用的分解:

系統 目的 資料流 典型用戶
ERP 財務規劃、採購、訂單管理 與 MES 雙向,與會計單向 管理、採購、銷售
MES 生產線執行、工作訂單、勞動力追蹤 來自物聯網的實時,與 ERP 雙向 操作員、主管、生產經理
QMS 檢驗、NCR、CAPA、文件控制 來自 MES、在 ERP 中觸發 品質工程師、檢驗員
APS/排程 生產排程、產能規劃 讀取 ERP/MES,寫入 MES 規劃員、排程員
IIoT 平台 機器資料收集、監控、OEE 從 PLC/感應器擷取,饋送 MES 和儀表板 維護、工程、管理
BI/儀表板 報告、KPI、實時可見性 讀取所有內容 所有人

關鍵見解:資料流架構比任何個別系統都更重要。我見過公司擁有同級最好的個別工具,但無法回答「這個工作的實際成本是多少?」之類的基本問題,因為資料無法在系統之間流動。

自訂 ERP:停止嘗試建構 SAP

我在製造軟體專案中看到的最大錯誤是 ERP 中的範圍蔓延。有人說「讓我們建構自訂 ERP」,突然需求文件變成了 300 頁長,涵蓋從應付帳款/應收帳款到固定資產折舊的所有內容。

不要這樣做。

你實際想要的是與穩健財務系統整合的自訂製造營運平台。QuickBooks Enterprise、Xero,或甚至 NetSuite 作為財務主幹——以及針對現成工具搞砸的製造特定內容的自訂軟體。

以下是值得自訂建構的內容:

物料清單 (BOM) 管理

每個製造商都有不適合標準 ERP 模型的 BOM 結構。多級 BOM 帶有虛擬組件、具有基於規則的零件選擇的可配置產品、與客戶特定規格相關的修訂控制——這是自訂軟體閃耀的地方。

// 範例:帶有修訂追蹤的可配置 BOM
interface BOMItem {
  partNumber: string;
  revision: string;
  quantity: number;
  unitOfMeasure: string;
  isPhantom: boolean;
  alternates: AlternatePart[];
  effectiveDate: Date;
  obsoleteDate?: Date;
  customerSpecific?: string; // 如果這是客戶特定變種,則為客戶代碼
  children: BOMItem[];
}

interface AlternatePart {
  partNumber: string;
  priority: number; // 1 = 首選,2 = 第一替代品等
  conversionFactor: number; // 如果替代品有不同的計量單位
  approvalRequired: boolean;
}

工作訂單管理

這是 ERP 和 MES 之間的橋樑。自訂工作訂單系統可以編碼你的實際路線邏輯——包括使你的業務獨特的奇怪邊界情況。我與一位客戶合作,他的路線系統可以將某些熱處理操作批次處理到多個工作訂單中,但前提是合金組相容。嘗試在標準 SAP 中配置該功能。

成本

製造中的工作成本是通用 ERP 分崩離析最厲害的地方。你需要實際與預估成本實時匯總:材料、勞動力(按操作)、間接費用吸收、廢料和返工。當這是自訂建構並直接與你的 MES 相連時,你會獲得與連接系統不可能實現的成本可見性。

製造軟體開發:自訂 ERP、MES 與 IoT 在 2026 - 架構

MES 系統:真正價值所在

如果我必須選擇一個系統進行自訂建構,那就是 MES。這是膠皮接觸地面的地方——從字面上講,如果你是輪胎製造商。

製造執行系統實時追蹤生產線上發生的事:哪些工作在哪些機器上運行、誰在做什麼、已生產多少零件、廢料率是多少,以及你是否按時進行。

現代 MES 的樣子

忘掉過去的厚用戶端 MES 應用程式。2026 年的現代 MES 是:

  • 基於網頁,具有響應式佈局,適用於生產線平板和亭台
  • 實時,透過 WebSocket 連接(我們使用 Socket.io 或原生 WebSocket API)
  • 離線能力,因為生產線上的 WiFi 從不如 IT 認為的那樣可靠
  • 觸控最佳化,因為操作員戴著油膩的手套,沒有鍵盤
// 實時生產事件處理
import { Server } from 'socket.io';

interface ProductionEvent {
  machineId: string;
  workOrderId: string;
  eventType: 'cycle_complete' | 'scrap' | 'downtime_start' | 'downtime_end' | 'setup_start' | 'setup_end';
  timestamp: Date;
  operatorId: string;
  partCount?: number;
  scrapReason?: string;
  downtimeReason?: string;
}

io.on('connection', (socket) => {
  socket.on('production_event', async (event: ProductionEvent) => {
    // 保存到時間序列資料庫
    await timescaleDB.insert('production_events', event);
    
    // 更新實時 OEE 計算
    const oee = await calculateOEE(event.machineId, 'current_shift');
    
    // 廣播到儀表板用戶端
    io.to(`dashboard_${event.machineId}`).emit('oee_update', oee);
    
    // 根據閾值檢查並觸發警報
    if (oee.availability < 0.85) {
      await alertService.notify('low_availability', event.machineId, oee);
    }
  });
});

操作員體驗很重要

我無法強調足夠:如果操作員討厭 MES,他們會找到繞過它的方法。我們以巨大的觸控目標(最小 48px,通常 64px+)、最少的必需輸入和條碼/QR 掃描構建操作員介面。目標是使工作站登錄和工作開始應在 10 秒內完成。

一個效果很好的模式:漸進式披露。只向操作員顯示他們當前步驟所需的內容。傳統 MES 廠商喜歡的「一切都在一個螢幕上」方法令人不知所措並導致錯誤。

人們實際使用的品質管理系統

製造中的品質系統通常是大樓中最令人討厭的軟體。它們要麼過度設計(擁有 50 名員工時的完整 Veeva 式文件管理),要麼與生產過程完全斷開(獨立 QMS 無人更新,直到審計時間)。

將品質納入生產流程

訣竅是將品質檢查點直接嵌入 MES 工作流程。當操作員完成加工操作時,系統應自動提示所需的檢驗測量——就在同一介面上,而不是在單獨的應用程式中。

// 與 MES 路線集成的品質檢查點
interface QualityCheckpoint {
  operationId: string;
  inspectionType: 'first_article' | 'in_process' | 'final' | 'receiving';
  characteristics: Characteristic[];
  samplingPlan: SamplingPlan;
  triggerCondition: 'every_part' | 'first_off' | 'frequency' | 'spc_rule';
  frequency?: number; // 每 N 個零件檢查一次
}

interface Characteristic {
  name: string;
  nominal: number;
  upperTolerance: number;
  lowerTolerance: number;
  measurementUnit: string;
  gageId?: string; // 鏈接到校準的測量設備
  isCritical: boolean; // CTQ 特性
}

對於受監管行業的公司(AS9100 航空航太、ISO 13485 醫療設備、IATF 16949 汽車),QMS 需要處理:

  • 不符合報告 (NCR),帶有評論的工作流路線(廢料、返工、按現狀使用、退貨給廠商)
  • 糾正/預防性措施 (CAPA) 追蹤根本原因分析
  • 文件控制,帶有修訂管理和電子簽名(如果你在 FDA 監管的空間中則為 21 CFR Part 11)
  • SPC 圖表,從實時生產測量計算

生產排程:最難的問題

我誠實點說:生產排程是製造軟體中最難的問題。這是一個 NP 困難優化問題,有數十個約束條件,沒有現成工具完美處理。

我與之合作的大多數製造商使用混合方法:

  1. 粗切產能規劃,在 ERP 中根據標準時間和可用產能完成
  2. 有限排程,由專業工具(PlanetTogether、Preactor/Siemens Opcenter APS 或自訂演算法)處理
  3. 實時調整,當現實偏離計畫時透過 MES 進行

何時建構自訂排程

當你的約束真正獨特時建構自訂排程。我為一家公司建構了排程器,該公司在三個產品系列中運行跨共享 CNC 機器的工作室,其中更換時間取決於之前運行的產品系列(不僅僅是哪台機器),並且某些操作員只獲得特定安裝的認證。沒有現成的 APS 在沒有廣泛自訂的情況下處理這個問題。

對於更簡單的情況——單個產品流線、重複製造——使用 PlanetTogether(2026 年每個用戶每月 500-2,000 美元)或類似工具。除非必須,否則不要重新發明這個輪子。

排程演算法方法

當我們確實建構自訂時,我們通常使用基於約束的方法,具有優先權發送規則,而不是試圖找到全局最優解:

# 簡化的基於優先權的排程啟發式
def schedule_jobs(jobs, machines, constraints):
    unscheduled = sorted(jobs, key=lambda j: (
        -j.priority,           # 更高優先權優先
        j.due_date,            # 較早的截止日期優先  
        -j.setup_similarity,   # 最小化更換
    ))
    
    schedule = {}
    for job in unscheduled:
        eligible_machines = [
            m for m in machines 
            if m.can_run(job) and m.has_tooling(job)
        ]
        
        best_slot = None
        best_score = float('inf')
        
        for machine in eligible_machines:
            slot = machine.find_earliest_slot(
                duration=job.estimated_hours,
                setup_time=calculate_setup(machine.last_job, job),
                constraints=constraints
            )
            score = evaluate_slot(slot, job, machine)
            if score < best_score:
                best_slot = slot
                best_score = score
        
        if best_slot:
            schedule[job.id] = best_slot
            best_slot.machine.commit(best_slot)
    
    return schedule

這不會贏得任何營運研究獎,但它在幾秒內產生足夠好的排程,而不是花費數分鐘尋求最優解。在製造中,瞬間產生的良好排程比花費 30 分鐘產生的完美排程更有價值。

現代堆疊上的工業物聯網儀表板

這是事情變得有趣的地方。將機器連接到網際網路並實時視覺化其資料是真正令人興奮的工作,現代網頁堆疊使其比甚至兩年前要容易得多。

資料收集架構

製造的典型物聯網資料管道:

  1. 邊界層:PLC 和感應器 → 機器級別的 OPC-UA 伺服器或 MQTT 代理
  2. 閘道層:執行 Node.js 或 Python 的邊界計算設備(我們喜歡 Advantech 或 OnLogic 硬體),可正常化和緩衝資料
  3. 傳輸:MQTT 到雲端代理(AWS IoT Core、Azure IoT Hub 或自主託管 EMQX)
  4. 儲存:TimescaleDB 或 InfluxDB 用於時間序列資料,PostgreSQL 用於關聯資料
  5. 展示:使用 Next.js + WebSocket 建構的實時儀表板

建構儀表板

對於前端,我們將 Next.js App Router 與能處理實時更新的圖表庫配對時取得了出色成果。Recharts 對靜態報告很好;對於實時串流資料,我們更喜歡 uPlot,因為它對大型資料集的效能(它可以處理 100,000+ 個點,不會破壞)。

// 實時 OEE 儀表板組件
'use client';
import { useEffect, useState } from 'react';
import { io } from 'socket.io-client';

interface MachineStatus {
  machineId: string;
  machineName: string;
  status: 'running' | 'idle' | 'down' | 'setup';
  currentJob: string | null;
  oee: { availability: number; performance: number; quality: number; overall: number };
  partsProduced: number;
  partsTarget: number;
  cycleTime: number;
  idealCycleTime: number;
}

export function ShopFloorDashboard() {
  const [machines, setMachines] = useState<Map<string, MachineStatus>>(new Map());

  useEffect(() => {
    const socket = io(process.env.NEXT_PUBLIC_WS_URL!);
    
    socket.on('machine_update', (data: MachineStatus) => {
      setMachines(prev => new Map(prev).set(data.machineId, data));
    });

    return () => { socket.disconnect(); };
  }, []);

  return (
    <div className="grid grid-cols-4 gap-4 p-6">
      {Array.from(machines.values()).map(machine => (
        <MachineCard key={machine.machineId} machine={machine} />
      ))}
    </div>
  );
}

我們在我們的 Next.js 開發實務中建構這些儀表板,並在 Vercel 上部署或根據其 IT 政策在製造商的基礎設施上自主託管。某些製造商絕對不會讓生產資料離開其網路,這是有效的要求。

對於更喜歡靜態優先儀表板且近乎實時資料(每 30 秒輪詢一次而不是真正 WebSocket 串流)的製造商,Astro 是一個很好的選擇。它產生更輕的頁面,在生產線上經常發現的老化硬體上效能更好。

OEE:每個人都搞錯的製造 KPI

整體設備效能 (OEE) 是製造中單一最重要的指標,幾乎每個人都計算錯誤。這是三個組件相乘:

  • 可用性 = 運行時間 / 計畫生產時間
  • 效能 = (理想週期時間 × 總零件) / 運行時間
  • 品質 = 良好零件 / 總零件
  • OEE = 可用性 × 效能 × 品質

世界級 OEE 是 85%。大多數製造商在 40% 至 60% 之間。關鍵見解:你需要準確、自動化的資料收集來計算有意義的 OEE。如果操作員在班次結束時手動輸入停機時間原因,你的 OEE 資料是垃圾。

技術選擇:框架和基礎設施決策

以下是我們對 2026 年製造軟體的當前推薦堆疊:

層級 技術 為什麼
前端 Next.js 15+ (App Router) SSR 儀表板,優秀的開發者體驗,React 生態系統
UI 組件 Tailwind CSS + shadcn/ui 快速構建,易於為工業 UI 自訂
API tRPC 或 GraphQL (Pothos) 型別安全,適合複雜關聯資料
資料庫 PostgreSQL 17 + TimescaleDB 關聯 + 時間序列在一個引擎中
實時 Socket.io 或 Ably WebSocket 用於實時生產資料
驗證 Clerk 或自訂 lucia-auth 角色型存取在製造中很關鍵
邊界/物聯網 Node.js + MQTT.js 邊界上的 JavaScript 用於資料正常化
託管 Vercel、AWS 或內部 Docker 取決於製造商的 IT 政策
CMS (文件/培訓) Sanity 或 Payload CMS 操作員需要其工作站上的 SOP 文件

我們在無頭 CMS 整合方面進行了深入工作,用於製造的文件和訓練內容部分——標準操作程序、帶有嵌入影片的工作指示,以及需要版本控制並在操作員工作站上顯示的品質規格。

為什麼不低代碼?

我經常被問到這個。OutSystems、Mendix 和 Microsoft Power Platform 等工具被大力推銷給製造商。它們對簡單用例有效——基本資料收集表、簡單批准工作流。但當你需要實時物聯網資料處理、複雜 BOM 結構、SPC 計算或排程演算法時,你很快就會撞牆。然後你卡住了一個比僅寫程式碼更難擴展的平台。

真實實施:時間表、成本和陷阱

讓我們談談真實數字。以下是自訂製造軟體專案的實際樣子:

專案範圍 時間表 預算範圍 (2026) 團隊規模
僅 MES(10-20 台機器) 4-6 個月 $150,000–$300,000 2-3 名開發人員 + 1 名領域專家
MES + 品質 6-9 個月 $250,000–$450,000 3-4 名開發人員 + 1 名領域專家
MES + 品質 + 自訂 ERP 模組 9-14 個月 $400,000–$800,000 4-6 名開發人員 + 1-2 名領域專家
帶 IIoT 的完整平台 12-18 個月 $600,000–$1,200,000 5-8 名開發人員 + 2 名領域專家

這些是完全加載成本,包括設計、開發、測試、部署和培訓。如果有人報價明顯較低,要麼範圍遠小於你認為的,要麼團隊從未在製造軟體中工作過。

最大的陷阱

1. 團隊中沒有製造領域專家。 這是專案失敗的 #1 原因。你需要有人真正在製造環境中工作過——不是有人讀過相關資料。至少,你需要一個客戶端冠軍,每週可用 10 小時以上。

2. 嘗試一次替換所有內容。 從 MES 開始。讓生產資料準確流動。然後分層品質。然後排程。然後 ERP 模組。大規模製造軟體實施一次性失敗的比率應該嚇到任何人。

3. 忽視生產線。 如果你在會議室建構整個系統而沒有花時間在實際生產線上,你會建構錯誤的東西。噪音、油脂、手套、讀眼鏡、照明——所有這些都會影響 UI 設計決策。

4. 低估資料遷移。 每個製造商都在其舊系統中有數十年的零件資料、BOM 結構、客戶規格和路線資訊。遷移此資料通常是總專案工作的 15-20%。

如果你正在探索這樣的專案,我們的定價頁面有關於我們如何結構化承擔的詳細信息,我們總是樂於進行誠實的範圍界定電話——在此聯絡

常見問題

自訂製造軟體相比現成 ERP 成本多少? 中型 ERP(如 Epicor Kinetic 或 Infor CloudSuite)實施成本為 $200,000–$600,000,加上每年 $50,000–$150,000 的授權費。SAP Business One 小型製造商起價約 $100,000,但快速擴展。自訂製造軟體具有更高的前期開發成本($150,000–$1,200,000,取決於範圍),但通常持續成本較低,因為你擁有代碼。損益平衡點通常是 3-5 年,但真正的價值在於擁有實際適合你的流程的軟體,而不是強制你的流程適合軟體。

自訂 MES 能與我們現有的 ERP 系統整合嗎? 絕對可以,這實際上是我們對大多數製造商的推薦方法。與其完全替換你的 ERP,不如我們建構通過 API 與其整合的自訂 MES。大多數現代 ERP(SAP、Oracle、Epicor、NetSuite)都有 REST API。較舊的系統可能需要資料庫級整合或 MuleSoft 等中介軟體。MES 處理生產線執行,而 ERP 繼續處理財務、採購和銷售訂單。

2026 年製造軟體的最佳技術堆疊是什麼? 對於基於網頁的製造應用程式,我們推薦前端使用 Next.js with TypeScript,資料庫使用 PostgreSQL with TimescaleDB 擴展(處理關聯和時間序列資料),以及用於物聯網資料傳輸的 MQTT。關鍵考慮是實時能力——製造軟體需要在幾秒內反映生產線上發生的事,而不是幾分鐘。WebSocket 連接對此是必不可少的。

你如何為生產線應用程式處理離線能力? 生產線 WiFi 出了名的不可靠。我們使用 service worker 和 IndexedDB 在生產線平板上本地快取關鍵資料。操作員即使在連接斷開時也可以繼續記錄生產、廢料和停機時間事件。恢復連接時,系統自動與衝突解決邏輯同步。漸進式網頁應用 (PWA) 架構對此是理想的——無需應用商店部署,這在你有數十台生產線亭台要管理時很重要。

哪些 OPC-UA 或 MQTT 解決方案最適合連接 CNC 機器和 PLC? 對於 PLC 連接,Kepware(現在是 PTC 的 ThingWorx Kepware Server)仍然是行業標準,根據所需驅動程式,伺服器授權大約 $5,000–$15,000。對於更開源的方法,Node-OPCUA 成熟且可用於生產。對於 MQTT 代理,EMQX 對於內部部署非常有效,如果你是雲端原生,AWS IoT Core 效果很好。最大的挑戰通常不是軟體——許多舊機器沒有網路介面,需要改造硬體使其資料可訪問。

值得建構自訂生產排程軟體嗎? 只有當你的排程約束真正獨特時。對於大多數具有標準路線結構的離散製造商,PlanetTogether、Siemens Opcenter APS 或 Optessa 等工具可以很好地完成工作,每個用戶每月成本為 $500–$2,000。當你有不尋常的約束時建構自訂:跨產品族的共享資源,序列依賴更換,複雜批處理規則,或多地點排程與設施間轉移。僅演算法開發和測試就可能需要 2-4 個月。

你如何在自訂品質管理系統中確保 FDA 或 AS9100 合規性? 合規性涉及兩件事:流程強制和審計跟蹤。軟體必須強制該流程(例如,你無法在完成檢驗記錄前發貨),每個操作都必須記錄不可變的審計跟蹤,包括誰、什麼、何時和簽名要求的電子簽名。對於 FDA 21 CFR Part 11 合規性,電子簽名需要包括簽名含義、列印名稱、日期/時間,並鏈接到特定記錄。我們從第一天開始就在資料模型中建構這個——改造它極其痛苦。

從自訂製造軟體看到 ROI 需要多長時間? 我們的大多數客戶在上線後 6-12 個月內看到可測量的 ROI,主要來自三個來源:廢料減少(通過實時 SPC 和品質整合改進 5-15%)、準時交貨改善(通過更好的排程和可見性改進 10-20%),以及勞動力效率收益(操作員花費更少時間進行資料輸入和搜索信息)。一個客戶在第一年內減少了 $340,000 的品質相關成本,投資軟體 $280,000。僅資料可見性——實時知道你的實際工作成本——通常通過暴露以前不可見的邊際洩漏來為專案付費。