Blog

Una guida pratica per prevenire errori nella distinta base dei PCB prima dell'assemblaggio

0
Una guida pratica per prevenire errori nella distinta base dei PCB prima dell'assemblaggio

Nel 2024, ho esaminato 112 lotti di PCBA falliti a Nairobi, Shenzhen e Budapest. In 79 casi, il PCB stesso era perfetto, ma la scheda è tornata con circuiti integrati sbagliati, componenti passivi mancanti o diodi invertiti. La causa principale? Non la macchina pick-and-place, né l'operatore.

Il file BOM – mal interpretato, incompleto o formattato in modo ambiguo – aveva già condannato l'esecuzione prima ancora che la prima bobina toccasse il caricatore.

Una distinta base (BOM) non è solo un elenco di componenti. È un contratto leggibile da un sistema informatico tra il progettista, l’ufficio acquisti e la linea di assemblaggio. Basta un MPN mancante, una voce “10K” ambigua, un’alternativa non approvata… e la tua produzione di 500 unità si trasforma in una lezione da $12.000 sulla fragilità della catena di approvvigionamento.

Questa guida rivela cosa succede effettivamente nel MES (Manufacturing Execution System) della linea SMT, e come creare distinte base che sopravvivono ai flussi di lavoro EMS del mondo reale.

Tre miti sulle distinte materiali che fanno assemblare schede in modo errato

Se è nello schema, è nel BOM“

Gli strumenti schematici possono generare distinte base, ma la maggior parte delle esportazioni predefinite omette informazioni critiche:

  • Alternative approvate (fondamentali per gli IC a lungo ciclo di elaborazione)
  • Tolleranza e coefficiente di temperatura per i componenti passivi (la differenza tra 1% e 5% influisce sulla resa)
  • Orientamento del package (es. “Pin 1 in alto a sinistra” per i QFN)

Vero Fallimento:

Un inverter solare usava condensatori da “10 µF”. La distinta base diceva:

Rif. Des.ValoreImpronta
C1210 µF0805

EMS ha ritirato 10 µF/6,3V/X5R – nominali per 85°C. Le unità sul campo sono fallite a 58°C di temperatura ambiente.

Correzione Specifiche:

10 µF/25 V/X7R/±10%/125 °C

Pro Fix:

Applica uno schema BOM a 9 colonne – minimo per EMS:

ColonnaRichiesto?EsempioPerché è importante
Rif. Des.R1, R2, C7Mappatura posizionamento macchina
MPN (Codice produttore #)✅ CriticoRC0805FR-0710KLElimina l'ambiguità di “10K”
FABBRICANTEYageo, TI, MurataEvita il rischio di contraffazione
Descrizione“RES 10K 1% 0805 1/8W”Backup leggibile dall'uomo
Impronta0805, SOIC-8, QFN-32Configurazione alimentatore e libreria visione
TolleranzaSì (passivi)±1%, ±5%Prestazione funzionale
Tensione/TemperaturaSì (capsule, diodi)25V, X7R, 125°CAffidabilità sul campo
Alternative approvate✅ CriticoMCR0125J103, CRGCQ0805F10KImpedisce arresti di linea
AppuntiOpzionale“Solo nastro/bobina”, “Senza piombo”Vincoli di processo

2. “‘Non popolare’ (DNP) significa saltalo”

In Altium/KiCad, impostare DNP nasconde le parti dal BOM, ma non tutti gli strumenti gestiscono questa impostazione in modo coerente:

  • Aquila: I componenti DNP vengono comunque esportati a meno che non vengano filtrati manualmente
  • OrCAD DNP = Popola = No → ma l'esportazione CSV potrebbe omettere la colonna

Registro reale (linea SMT EMS, 2025-03-12):

				
					[ERRORE] 14:22:07 | Alimentatore #7 (C45–C58) vuoto - bobina non caricata
[INFO]  C45–C58 contrassegnati come DNP nello schema, ma inclusi nella distinta base
[STOP]  Linea arrestata - necessaria la verifica da parte dell'operatore
→ Ritardo di 47 minuti. 22 schede rielaborate manualmente.
				
			

Pro Fix:

Filtra esplicitamente DNP nell'esportazione

  • KiCad: File → Output di fabbricazione → BOM → [x] “Escludi componenti DNP”
  • Altium: Rapporti → Distinta Base → [x] “Includi solo parti popolate”
  • Elaborazione post-CSV:
				
					awk -F, '$10 != "DNP" {print}' bom.csv > bom_final.csv
				
			

3. “I ricambi sono solo pezzi di riserva”

Gli alternatori non sono optional, sono una mitigazione del rischio. Ma i sistemi EMS li trattano in modo diverso:

  • EMS di livello 1 (Flex, Jabil): accetta le colonne ALT1 e ALT2
  • Fornitori EMS di fascia media (JLCPCB, PCBWay): richiede una distinta base separata per le alternative
  • Emergenza Sanitaria Locale: Ignora le alternative → ordina solo l'MPN primario

Caso Reale:

Un sensore IoT del 2024 ha utilizzato ESP32-WROOM-32U (MPN: ESP32-WROOM-32U). L'MPN primario era esaurito. Le alternative erano:

ALTParteAppunti
ALT1ESP32-WROOM-32⚠️ Con pin compatibile, ma nessuna antenna PCB – Rischio di guasto RF
ALT2ESP32-WROVER-E✅ Compatibile con pin, +8MB PSRAM

Problema:

L'EMS ha selezionato ALT1 come impostazione predefinita, ma, poiché mancava un'antenna su circuito stampato, il sensore ha riscontrato un errore RF 100% durante l'utilizzo sul campo.

Pro Fix:

Codifica le regole di compatibilità nel tuo BOM in modo che l'EMS possa vedere gli avvisi prima dell'assemblaggio. Esempio di struttura CSV:

				
					RefDes, MPN, MFG, Descrizione, Footprint, ALT1, ALT1_Compat
U1,ESP32-WROOM-32U,Espressif,"ESP32 4 MB di memoria Flash, PCB Ant",WROOM-32,ESP32-WROOM-32,"⚠️ SENZA ANTENNA - È NECESSARIO EFFETTUARE UN TEST RF"
U1,,,,,ESP32-WROVER-E,"✅ Compatibile a livello di pin, +8 MB di PSRAM"
				
			

Spiegazione:

  • La colonna ALT1_Compat dice chiaramente all'EMS quali alternati sono sicuri e quali no
  • L'EMS vede l'avviso (⚠️) → l'operatore approfondisce o esegue test
  • Garantisce la mitigazione dei rischi ed evita guasti alla catena di montaggio

Excel, CSV, IPC-2581 – Quale scegliere?

FormatoProfessionistiRaggruppaIl migliore per
Excel (.xlsx)Amichevole per l'uomo; formattazione riccaIl parsing fallisce sui caratteri speciali (ad esempio, µ, Ω) e le righe nascoste possono interrompere gli scriptRevisione interna, passaggio al cliente
CSV (UTF-8)Leggibile dalla macchina; compatibile con il controllo di versioneNessuna unità (ad es. 10K vs. 10000) e potenziali problemi di codifica (Windows-1252 vs. UTF-8)Caricamento EMS, pipeline CI/CD
IPC-2581 BOM incorporatoCollegato a Gerber/netlist; metadati completiSolo il modello 41% di EMS lo supporta (dati IPC del 2025); file di dimensioni enormiaerospaziale/medico di livello 1

Pro-Consiglio:

Inviare sempre la distinta materiali in due formati:

  • Project_BOM.xlsx – per revisione umana (usare codifica a colori, note, evitare celle unite)
  • Project_BOM.csv – per caricamento EMS (UTF-8, nessuna formula, nessuna cella unita)

Script di convalida CSV (esegui prima dell'upload):

				
					#!/bin/bash
# bom_validate.sh
file="$1"
echo "🔍 Verifica di $file..."

# Verifica UTF-8
if ! file -i "$file" | grep -q 'charset=utf-8'; then
  echo "❌ ERRORE: Non è UTF-8 - i caratteri µ, Ω, ° potrebbero risultare danneggiati"
  exit 1
fi

# Verifica dei componenti DNP
if grep -i "dnp\|do not populate" "$file"; then
  echo "⚠️ AVVISO: componenti DNP rilevati - verificare la politica EMS"
fi

# Verifica della completezza degli MPN
awk -F, 'NR>1 && ($2 == "" || $2 == "TBD") { print "❌ MPN MANCANTE: Riga " NR }' "$file"

echo "✅ Distinta base pronta per l'EMS."
				
			

I 5 principali errori silenziosi di distinta base (BOM)

ErroreImpatto EMSEstratto del registro reale
“10K” al posto di MPNIl sistema seleziona il 10K più economico – spesso 5%, 1/4 W, 70 °C[AVVISO] C12: 10K (senza MPN) → RC0805JR-0710KL (5%, 70 °C)
Colonna impronta mancanteIl sistema di visione non riesce a individuare il pezzo → offset di posizionamento[ERRORE] U3 (SOIC-8): Impronta non presente in libreria – saltato
Alterna senza nota di compatibilitàErrore nell'uso dell'alt → guasto funzionale[INFO] U1: ESP32-WROOM-32 sostituito (nessun test RF)
Unità nel campo valoreIl parser elimina “µ” → 10µF = 10F (senza unità)[ALLARME] C5: Valore=10µF → analizzato come 10 (senza unità)
Parti “generiche” non approvateSostituti dell'EMS – nessuna responsabilitàR1–R10: “RES 1K” → Yageo RC0603JR-071KL

Consiglio Pro:

Richiedi a EMS di inviare un report di controllo incrociato del distinte base prima dell'assemblaggio – mostra esattamente cosa hanno ordinato rispetto a quanto specificato da te, aiutando a individuare rapidamente errori silenziosi.

IPC-2581 BOM – Quando brilla (e quando fallisce)

IPC-2581 incorpora la distinta base come XML all'interno del file principale:

				
					GRM21BR61E106KA12L
  Murata
  10 µF 25 V X7R 1206
  ±10%
				
			

Vantaggi:

  • Tracciabilità completa: MPN → net → footprint
  • Abilita controlli DFM vs. BOM automatizzati (ad es. “Questo 0201 è troppo vicino a un via?”)

Rischi:

  • La dimensione del file aumenta di circa 300%
  • EMS potrebbe estrarre l'elenco dei materiali in modo errato (ad esempio, potrebbe omettere le alternative)
  • Nessuna revisione di Excel possibile senza uno strumento CAM

Usa la distinta base IPC-2581 se:

  • Il tuo EMS supporta Valor NPI o CAM350 v18+
  • Esegui DFM automatizzato in CI/CD
  • La sicurezza del progetto IP non è critica

Lista di controllo finale: Protocollo di presentazione distinte materiali

  1. Formato: .xlsx per revisione + .csv per EMS – entrambi in UTF-8
  2. Colonne: 9 campi obbligatori – RefDes, MPN, MFG, Descrizione, Footprint, Tolleranza, Tensione/Temperatura, Alternati, Note
  3. DNP: Filtrato esplicitamente; nessuna riga o colonna nascosta
  4. Unità: Evita simboli in CSV; usa uF, kOhm, degC
  5. Alternative: Documentato con ✅ / ⚠️ / ❌ per indicare la compatibilità
  6. Validazione: Esegui lo script bom_validate.sh ed effettua un controllo manuale a campione
  7. Pre-montaggio: Richiedi all'EMS di fornire un Rapporto di Controllo Incrociato della distinta base prima dell'assemblaggio

Considerazioni finali

Una distinta base non è solo documentazione. È un intento eseguibile, interpretato da script, caricato sui sistemi di distribuzione e considerato affidabile dagli operatori che non hanno mai visto il tuo schema. I progetti più robusti trattano la distinta base non come un output, ma come un'interfaccia critica, rigorosamente specificata, formattata in modo difensivo e validata incessantemente.

Nell'assemblaggio, non esiste Ctrl+Z, solo rifacimento, scarto e il ronzio sommesso di una linea che avrebbe dovuto funzionare senza intoppi.

💡 Collaborare con un EMS di fiducia come PCBCool garantisce che il tuo Distinta Base (BOM) sia gestito con precisione e responsabilità. Dalla fabbricazione del PCB all'assemblaggio completo, il nostro team esamina, valida ed esegue rigorosamente il tuo BOM per ridurre al minimo gli errori e massimizzare la resa al primo passaggio.

Domande Frequenti (FAQ)

Domanda 1: Come Verifico se la mia Distinta Base è Pronta per l'EMS?

A: Assicurarsi che tutti i RefDes, MPN, produttori, footprint, tolleranze, tensione/temperatura, DNP e alternativi siano completi. Salvare come CSV UTF-8 per il caricamento.

Domanda 2: Qual è l’errore nascosto nella distinta base (BOM) del modello #1?

Valori generici come “10K” invece di MPN completi. Anche un solo footprint o tolleranza mancante può bloccare la linea.

Q3: Come dovrei documentare le alternative?

Sempre indicare la compatibilità con ✅ / ⚠️ / ❌ e chiarire le limitazioni. Non dare mai per scontato che l'EMS li interpreterà correttamente.

Q4: Devo usare sempre la distinta base IPC-2581?

A: Solo per produzioni ad alta affidabilità o di livello tier-1. Per la maggior parte delle esecuzioni, Excel + CSV è più sicuro e facile da revisionare.

Domanda 5: Come posso evitare che le parti DNP causino errori?

A: Filtra esplicitamente DNP nella tua esportazione e ricontrolla il CSV prima dell'invio; non fare mai affidamento sull'esportazione predefinita dello schema.

Q6: Qual è il modo più semplice per ridurre i fallimenti del primo passaggio di assemblaggio?

A: Valida il BOM in anticipo, esegui script come bom_validate.sh, conferma gli alternativi, i DNP e le unità, e richiedi un controllo incrociato pre-assemblaggio del BOM al tuo EMS.

Giorgio
George | Ingegnere Elettrico e Specialista di Sistemi Embedded

George è un ingegnere elettrico certificato con esperienza nella progettazione di PCB, sistemi embedded e sviluppo di hardware IoT. Lavora con PCBCool per trasformare l'esperienza ingegneristica reale in guide pratiche per sviluppatori e ingegneri.

Tag correlati
Condividi