Indústria

Codis d'error més comuns del PLC Siemens Simatic S7: significat i diagnòstic

Joan Puig
31 de juliol del 2026
9 min read
IA Industrial · Automatització

Codis d'error més comuns del PLC Siemens Simatic S7: significat i diagnòstic

Un PLC Siemens Simatic S7 (sèries S7-1200, S7-1500, S7-300 o S7-400) que entra en STOP amb un codi d'error a la CPU pot aturar una línia sencera. Els codis més freqüents —error d'E/S, watchdog, desbordament de temps de cicle o pèrdua de comunicació de xarxa— tenen causes reconegudes i un diagnòstic estàndard des del TIA Portal o el Step 7 clàssic. Aquest article recull els errors que més apareixen a planta, què signifiquen realment i com identificar-los sense haver de rellegir el manual sencer cada vegada.

Nota important: Els noms i números de codi varien lleugerament entre generacions (S7-300/400 amb Step 7 clàssic vs S7-1200/1500 amb TIA Portal). Aquest article cobreix el patró general de cada família d'error; per al codi exacte del teu firmware, consulta sempre el diagnòstic online ("Online & diagnostics") del TIA Portal, que mostra el text complet de l'esdeveniment.

15-30 minuts

És el temps mitjà que un tècnic dedica a buscar el significat exacte d'un codi d'error S7 al manual de diagnòstic (Diagnostics Buffer) quan no en té l'hàbit. Amb la llista de referència d'aquest article, la identificació inicial baixa a segons; el temps real es dedica a la causa arrel, no a desxifrar el codi.

On es consulten els codis d'error d'un S7?

Abans d'entrar als codis concrets, cal saber on es documenten. A les CPU S7-1200/1500, el Diagnostics Buffer del TIA Portal (menú "Online & diagnostics" → "Diagnostics buffer") registra cronològicament cada esdeveniment: arrencades, aturades, errors d'E/S, errors de programa i pèrdues de comunicació, amb marca de temps i el número d'event exacte. A les CPU S7-300/400 amb Step 7 clàssic, la informació equivalent es troba al mòdul de diagnòstic del hardware ("Diagnose Hardware") i als blocs d'organització d'error (OB) que la CPU crida automàticament.

El LED d'estat de la CPU (SF/ERROR en vermell, RUN/STOP) dona una primera pista visual, però mai reemplaça la lectura del buffer: un LED SF encès pot correspondre a desenes de causes diferents, i només l'event number del buffer distingeix entre elles.

Categoria 1 — Errors de mòdul d'entrades/sortides (E/S)

És la categoria més freqüent en planta. Apareix quan la CPU no pot llegir o escriure correctament en un mòdul digital o analògic connectat al bus (PROFIBUS, PROFINET o bus de fons de rack).

  • "I/O access error" / error de mòdul (event tipus 0x39xx a S7-1200/1500): la CPU intenta accedir a una adreça d'E/S i el mòdul no respon. Causes habituals: mòdul retirat físicament, targeta danyada, o discrepància entre la configuració hardware del TIA Portal i el mòdul realment instal·lat al rack.
  • Error de rang analògic ("wire break" / ruptura de fil): típic en entrades 4-20 mA quan el senzor està desconnectat o el cablejat trencat. El mòdul reporta el valor fora de rang i genera un diagnòstic específic si el canal té el diagnòstic activat al hardware config.
  • Sobrecàrrega o curtcircuit a sortida digital: el mòdul de sortides detecta corrent excessiu i desactiva el canal per protecció, generant un event de diagnòstic amb el número de canal exacte.

Com diagnosticar-ho: obre "Online & diagnostics", ves a "Diagnostics buffer" i localitza l'event més recent d'aquest tipus; anota el número de ranura/canal que indica. Comprova físicament el mòdul indicat abans de tocar el programa: en la majoria de casos el codi assenyala amb precisió el component defectuós.

Categoria 2 — Errors de programa i temps d'execució

Aquests errors passen quan el codi del programa fa alguna cosa que la CPU no pot executar, i normalment provoquen que la CPU passi a STOP si no hi ha un bloc d'organització (OB) d'error configurat per capturar-los.

  • Desbordament de temps de cicle ("Cycle time exceeded", OB80 a Step 7 clàssic / event de watchdog a TIA Portal): el programa triga més del temps màxim configurat (per defecte 150 ms, ampliable). Causes freqüents: bucles infinits o mal tancats, blocs de dades massa grans processats en un sol cicle, o comunicació síncrona bloquejant dins del cicle principal.
  • Accés a punter no vàlid / "Programming error" (OB121): el codi intenta llegir o escriure a una adreça de memòria (DB, marca) que no existeix o ha estat eliminada, sovint per un bloc de dades global (DB) esborrat o redimensionat sense actualitzar totes les referències.
  • Error aritmètic ("I/O access error" en operacions, OB121 també): divisió per zero, desbordament de rang numèric (per exemple, un INT que supera el rang en una suma) o conversió de tipus incorrecta.
  • Error de temps a bloc de crida ("Call stack error"): recursivitat excessiva o crides encadenades de blocs de funció (FB/FC) que exhaureixen la pila de crides de la CPU.

Com diagnosticar-ho: al Diagnostics Buffer, l'event indica el bloc (FB/FC/OB) i sovint la línia o instrucció aproximada on va fallar. Si la CPU passa a STOP repetidament després d'una modificació de programa recent, revisa primer els canvis fets a DBs globals abans de buscar l'error en un altre lloc.

Categoria 3 — Errors de comunicació i xarxa

La comunicació entre la CPU i altres dispositius (HMI, altres PLCs, mòduls remots ET200) és una font habitual d'incidències, especialment en xarxes PROFINET grans.

  • Pèrdua de dispositiu PROFINET ("Station failure" / "Device missing"): un mòdul remot ET200SP/ET200MP o un altre node de la xarxa deixa de respondre. Causes: cable de xarxa desconnectat, switch industrial caigut, o l'adreça IP/nom de dispositiu no coincideix amb la configuració del hardware.
  • Timeout de connexió S7 (comunicació entre CPUs o amb SCADA/HMI): la connexió configurada (via blocs PUT/GET o connexió S7 nativa) supera el temps d'espera. Sovint per càrrega excessiva de xarxa, o perquè el dispositiu remot també està en STOP.
  • Conflicte d'adreça IP o duplicitat de nom PROFINET: dos dispositius amb la mateixa adreça IP o "PROFINET device name" a la mateixa xarxa. Genera errors intermitents difícils de reproduir, ja que depenen de quin dispositiu respon primer.

Com diagnosticar-ho: la vista de topologia de xarxa del TIA Portal ("Network view" + "Accessible devices") mostra en temps real quins dispositius responen. Un LED vermell al mòdul remot o al switch normalment confirma el problema físic abans que calgui tocar cap configuració lògica.

Categoria 4 — Errors de bateria, memòria i hardware de la CPU

  • "Battery low" / bateria de manteniment de dades baixa: a S7-300/400 (i alguns mòduls d'ampliació S7-1500), la bateria manté el rellotge i la memòria remanent quan no hi ha alimentació. Un avís de bateria baixa no atura la CPU immediatament, però una pèrdua total pot esborrar dades remanents en un tall d'alimentació.
  • Memòria de càrrega plena ("Load memory full"): la targeta de memòria (SIMATIC Memory Card) no té espai per al programa o els blocs de dades. Freqüent després d'afegir molts blocs de receptes o registres històrics sense ampliar la targeta.
  • Error de firmware incompatible: es carrega un projecte compilat amb una versió de TIA Portal més recent que el firmware instal·lat a la CPU física, provocant rebuig de la descàrrega o comportament inesperat.

Passos pràctics per diagnosticar qualsevol codi d'error S7

Checklist de diagnòstic ràpid

  1. Connecta't online amb el TIA Portal i obre "Online & diagnostics" abans de tocar res al programa.
  2. Llegeix el "Diagnostics buffer" de dalt a baix: l'event més recent normalment és la causa immediata de l'aturada.
  3. Anota el número d'event, la ranura/canal afectat i la marca horària exacta.
  4. Comprova primer el hardware físic indicat (mòdul, cable, sensor) abans de revisar lògica de programa.
  5. Si és un error de programa (OB80/OB121), revisa els últims canvis fets a DBs o blocs de funció abans de buscar en un altre lloc.
  6. Documenta el codi i la solució en el registre de manteniment: el mateix error tendeix a repetir-se en instal·lacions similars.

Un patró que es repeteix a moltes plantes és que el mateix codi d'error torna a aparèixer mesos després perquè la causa arrel —un cable mal fixat, un DB massa gran, un switch de xarxa envellit— mai es va corregir del tot, només es va "reiniciar" la CPU per sortir del pas. Documentar la causa real, i no només el codi, és el que realment redueix el MTTR a mitjà termini.

Per què costa tant trobar el significat exacte d'un codi a planta?

El manual de diagnòstic complet d'una família S7-1500, per exemple, supera fàcilment les 600 pàgines, i inclou centenars de números d'event agrupats per subsistema. A planta, sovint el tècnic només té accés al manual imprès o a un PDF genèric al servidor, sense capacitat de cerca ràpida per número d'event exacte. El resultat: minuts perduts fullejant índexs mentre la línia continua aturada.

Aquí és on eines com IgeraIndustria aporten un canvi real: en lloc de buscar manualment el codi al PDF del manual Siemens, el tècnic pot preguntar directament "Què significa l'event 0x3946 a la CPU 1516F?" i rebre la resposta exacta del manual oficial indexat, amb la pàgina i secció citades, en segons. No substitueix el coneixement tècnic del tècnic —substitueix el temps perdut buscant-lo.

Preguntes freqüents

Quina diferència hi ha entre un error que posa la CPU en STOP i un simple avís de diagnòstic?

Un avís de diagnòstic (per exemple, ruptura de fil en una entrada analògica) queda registrat al buffer però la CPU continua en RUN si el programa no depèn críticament d'aquell valor. Un error greu de programa (com un accés a punter no vàlid sense OB d'error configurat) força la CPU a STOP perquè no pot continuar executant el cicle de forma segura.

Els codis d'error són iguals entre S7-300/400 i S7-1200/1500?

No exactament. Les CPUs S7-300/400 (Step 7 clàssic) utilitzen blocs d'organització d'error (OB80, OB121, OB122...) amb una nomenclatura pròpia. Les CPUs S7-1200/1500 (TIA Portal) mantenen conceptes equivalents però amb events de diagnòstic numerats de forma diferent i més detallada al Diagnostics Buffer. Les categories de causa (E/S, programa, comunicació, hardware) són les mateixes en totes dues famílies.

Es pot configurar la CPU perquè no s'aturi davant certs errors de programa?

Sí. Afegint el bloc d'organització d'error corresponent (per exemple OB121 per errors de programació) al projecte, la CPU crida aquest bloc en lloc de passar a STOP, permetent gestionar l'error dins del propi programa. És una pràctica habitual en programes robusts, però requereix definir bé la lògica de recuperació per no emmascarar problemes reals.

Quant de temps queda guardat l'historial d'errors al Diagnostics Buffer?

El buffer té una mida limitada d'events (típicament centenars, segons el model de CPU); quan s'omple, els events més antics es sobreescriuen. Per això és important exportar o documentar l'historial d'errors rellevants abans que quedin sobreescrits, especialment després d'una aturada crítica.

Un error de comunicació PROFINET sempre indica un problema de cablejat?

No sempre. Encara que el cablejat i els switches són la causa més freqüent, també poden generar errors de comunicació una IP duplicada, una configuració de topologia incorrecta al TIA Portal, o fins i tot que el dispositiu remot estigui ell mateix en STOP o en fallada d'alimentació.

Quant costa a la teva planta buscar el significat d'un codi d'error cada vegada?

Amb IgeraIndustria, el tècnic pregunta el codi exacte i rep la resposta del manual oficial en segons, amb la font citada

Prova gratuïta 14 dies

Darrera actualització: Juliol 2026 | Equip IgeraSolutions | Prova IgeraIndustria gratis

#codigos error siemens s7#plc siemens simatic s7#diagnostico plc siemens#tia portal diagnostics buffer#mantenimiento industrial IA

COMPARTIR

Comparte el conocimiento con tu red