Skip to content

About

PLC Mitsubishi FX3G-60M — Sistema de verificación de perfiles de puertas (v4)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Verificación de Longitud de Perfiles — PLC Mitsubishi FX3G-60M

Sistema de verificación de longitud para perfiles de aislante de marcos de puertas de autos. Documentación técnica en Ladder Logic para integración con programa PLC existente.


Descripción General

La máquina ensambla perfiles de aislante en marcos de puertas de autos. Tiene dos secciones independientes (LEFT y RIGHT), cada una con 3 guías donde el operador coloca los perfiles. Cada guía tiene un sensor capacitivo (presencia) y un sensor de barrera (longitud con codificación 2-bit).

El sistema verifica que los perfiles cumplan la tolerancia de ±3mm. El mapeo principal confirmado usa 12 lámparas: LEFT OK en Y070-Y072, LEFT Fault/NOK en Y073-Y075, RIGHT OK en Y076-Y077/Y100 y RIGHT Fault/NOK en Y101-Y103. La sección queda bloqueada hasta que el operador reemplace el perfil fuera de tolerancia.

Alias históricos: la documentación actual usa LEFT/RIGHT y guías L1-L3/R1-R3 como nombres canónicos. En documentos históricos, A equivale a LEFT, B equivale a RIGHT, A1/A2/A3 equivalen a L1/L2/L3 y B1/B2/B3 equivalen a R1/R2/R3. Las direcciones físicas no cambian.

LEFT                              RIGHT
┌───────────────────┐                  ┌───────────────────┐
│  L1    L2    L3    │                  │  R1    R2    R3    │
│ [CAP] [CAP] [CAP]  │  ← Capacitivo   │ [CAP] [CAP] [CAP]  │
│ [BAR] [BAR] [BAR]  │  ← Barrera      │ [BAR] [BAR] [BAR]  │
└───────────────────┘                  └───────────────────┘
        │                                      │
   Switch_LEFT (X025)                        Switch_RIGHT (X026)
   (programa existente)                   (programa existente)

Regla clave: Cada sección es independiente. Una sección está OK cuando sus 3 guías tienen perfil presente Y dan código 10. No se permiten combinaciones entre secciones.


PLC

Parámetro Valor
Modelo Mitsubishi FX3G-60M
Entradas X110-X117, X120-X127, X130-X131 (18 sensores)
Salidas Y070-Y077, Y100-Y103 (12 lámparas: OK/Fault-NOK LEFT y RIGHT; Y078/Y079 no existen por direccionamiento octal Mitsubishi)
Timers T200-T221 usados; T224-T225 disponibles si se agrega debounce dedicado de reset por falla (resolución 10ms)
Flags M3000+ rango
Interface M5000 (LEFT OK), M5001 (RIGHT OK)

Arquitectura del Sistema (v4)

El sistema es un módulo de verificación puro que se integra INLINE en el programa PLC existente. NO reimplementa Grafcets, switches ni lógica de ciclo — eso ya existe en el programa.

Verify_OB (64 rungs)
├── Debounce_Filters (R0-R18)     ─ 18 timers T200-T217 + First Scan Init
│   └── TON filter × 18 (Átomo)
├── Guide_Verify (R19-R54)        ─ 6 instancias de verificación
│   └── Guide_Verify × 6 (Molécula)
├── Section_Logic (R55-R58)       ─ Left_Section_OK_Internal, Right_Section_OK_Internal
└── Section_OK_Reset (R59-R62)    ─ Latches M5000/M5001 con auto-reset

Flujo de Señales

X110-X131 (sensores) → Debounce (T200-T217) → M3020-M3043
                                                       ↓
                                                Guide_Verify → M3010-M3015 (OK)
                                                              M3050-M3055 (Fault)
                                                       ↓
                                                Section_Logic → M3009 / M3018
                                                       ↓
                                                Section_OK_Reset → M5000 / M5001
                                                       ↓
                                                Programa existente (restricción)
                                                       ↓
                                                 Y070-Y077/Y100-Y103 (12 lámparas)

Módulos

Módulo Rungs Descripción
Debounce_Filters R0-R18 18 filtros TON (10ms resolución, PT=80ms). First Scan Init para D210 y D230
Guide_Verify R19-R54 6 instancias (L1-L3, R1-R3). Decodifica barrera 2-bit + presencia → Guide_OK + Fault
Section_Logic R55-R58 Combina Guide_OK + Presence → Left_Section_OK_Internal (M3009), Right_Section_OK_Internal (M3018)
Section_OK_Reset R59-R62 Latch M5000/M5001 con reset por vacío sostenido, falla o perfil presente ya no OK

Señales de Interfaz con el Programa Existente

Señal Dirección Tipo Descripción
LEFT_OK M5000 OUTPUT LEFT lista para movimiento (TRUE = OK)
RIGHT_OK M5001 OUTPUT RIGHT lista para movimiento (TRUE = OK)
STANDBY M250 INPUT Máquina en standby (READ-ONLY)
Position_LEFT M180 INPUT Posición LEFT activa (READ-ONLY)
Position_RIGHT M181 INPUT Posición RIGHT activa (READ-ONLY)
Switch_LEFT X025 INPUT Switch operador LEFT (READ-ONLY)
Switch_RIGHT X026 INPUT Switch operador RIGHT (READ-ONLY)

Solo M5000 y M5001 son escritos por nuestro sistema. El resto son señales del programa existente que leemos como referencia.


Estructura de Archivos

Toyoda-venado/
├── README.md                  ← Este archivo
├── requerimientos.md          ← Requerimientos funcionales
└── src/
    ├── memory_map.md          ← Mapa de M3000+, T200+, D210/D230
    ├── io_mapping.md          ← Entradas X110+, salidas Y070+, cableado
    ├── debounce_filters.md    ← 18 filtros debounce + First Scan Init (R0-R18)
    ├── guide_verify.md        ← 6 instancias Guide_Verify (R19-R54)
    ├── section_logic.md       ← Section OK interno (R55-R58)
    ├── section_ok_reset.md    ← Latch M5000/M5001 + auto-reset (R59-R62)
    └── verify_ob.md           ← Estructura completa del programa (64 rungs)

Mapa de Memoria (Resumen)

Entradas (X) — Sensores

Rango Descripción Nota
X110-X117 LEFT (cap L1, bar L1 b0/b1, cap L2, bar L2 b0/b1, cap L3, bar L3 b0)
X120 Barrera L3 bit 1 ⚠️ X118/X119 NO existen (octal)
X121-X127 RIGHT (cap R1, bar R1 b0/b1, cap R2, bar R2 b0/b1, cap R3, bar R3 b0)
X130-X131 Barrera R3 bit 0/1 ⚠️ Octal skip

Salidas (Y) — 12 lámparas principales confirmadas

Dirección Descripción
Y070 Lámpara L1 OK (M3010)
Y071 Lámpara L2 OK (M3011)
Y072 Lámpara L3 OK (M3012)
Y073 Lámpara L1 Fault/NOK (M3153 = M3050 ∧ M3020)
Y074 Lámpara L2 Fault/NOK (M3154 = M3051 ∧ M3021)
Y075 Lámpara L3 Fault/NOK (M3155 = M3052 ∧ M3022)
Y076 Lámpara R1 OK (M3013)
Y077 Lámpara R2 OK (M3014)
Y100 Lámpara R3 OK (M3015)
Y101 Lámpara R1 Fault/NOK (M3053 ∧ M3023)
Y102 Lámpara R2 Fault/NOK (M3054 ∧ M3024)
Y103 Lámpara R3 Fault/NOK (M3055 ∧ M3025)

Direccionamiento octal Mitsubishi: Y078/Y079 no existen; después de Y077 viene Y100.

Flags Internos (M3000+) — Principales

Rango Descripción
M3009 Left_Section_OK_Internal (combinacional)
M3010-M3015 Guide_OK por guía (L1-L3, R1-R3)
M3016 At_Least_One_Profile_LEFT (guard)
M3017 At_Least_One_Profile_RIGHT (guard)
M3018 Right_Section_OK_Internal (combinacional)
M3020-M3025 Presence filtrada por guía
M3030-M3039, M3042-M3043 Barrera bits filtrados (bit 0/1 por guía)
M3050-M3055 Fault flags por guía
M3100-M3117 Decode auxiliaries (Short/Long/Invalid)
M3153-M3155 Indicadores Fault/NOK LEFT L1-L3 hacia Y073-Y075
M5000 LEFT_OK — INTERFACE
M5001 RIGHT_OK — INTERFACE

Registros (D)

Dirección Default Descripción
D210 8 Sensor debounce PT (8 × 10ms = 80ms)
D230 200 Section_OK reset PT (200 × 10ms = 2000ms)

Timers (T) — Resolución 10ms

Rango Cantidad Descripción
T200-T217 18 Debounce sensores (PT = D210)
T220 1 Anti-rebounce reset LEFT_OK (PT = D230)
T221 1 Anti-rebounce reset RIGHT_OK (PT = D230)
T224-T225 2 Disponibles si se requiere debounce dedicado para reset por perfil presente y no OK

Codificación del Sensor de Barrera (2 bits)

Polaridad: Las barreras MIN/MAX instaladas son normalmente cerradas (NC). Por eso, en Ladder pueden aparecer contactos NC o interpretación invertida en los timers/decode de barrera. No es un error de contacto: el bit lógico documentado abajo representa la señal ya interpretada para la decodificación.

Bit 1 Bit 0 Código Significado Acción
1 0 10 En rango (longitud correcta) OK ON, NOK OFF, Guide_OK = TRUE
0 0 00 Corto (-3mm o más) OK OFF, NOK ON, Fault
1 1 11 Largo (+3mm o más) OK OFF, NOK ON, Fault
0 1 01 Inválido (fallo de sensor) OK OFF, NOK ON, Fault (fail-safe)

Lógica de Section_OK con Auto-Reset

LEFT_OK (M5000):
  SET:   M3010∧M3020 ∧ M3011∧M3021 ∧ M3012∧M3022 ∧ M3016
         (3 guías LEFT presentes Y OK, al menos un perfil)
  RESET: T220.Q
         OR (M3016 AND NOT M3009)
         OR (M3050 OR M3051 OR M3052)

RIGHT_OK (M5001):
  SET:   M3013∧M3023 ∧ M3014∧M3024 ∧ M3015∧M3025 ∧ M3017
         (3 guías RIGHT presentes Y OK, al menos un perfil)
  RESET: T221.Q
         OR (M3017 AND NOT M3018)
         OR (M3053 OR M3054 OR M3055)

Comportamiento: Section_OK se SETea cuando las 3 guías están presentes y OK. No se RESETea por Section_OK en sí mismo. Se RESETea cuando la sección queda vacía por >2s (T220/T221), o cuando hay al menos un perfil presente pero la sección ya no está OK después del debounce de sensores. Una falla de guía con perfil presente también debe resetear el latch para que una sección previamente OK no siga habilitada si un perfil queda corto, largo o inválido. Las lámparas siguen indicando la guía en falla; M5000/M5001 son permisos de movimiento.


Integración con el Programa Existente

Los 64 rungs se insertan INLINE en el programa existente (no CALL a subprograma).

Orden de Ejecución

1. Lectura de entradas (programa existente)
2. → Verify_OB (nuestros 64 rungs)
   ├─ Debounce (R0-R18)
   ├─ Guide_Verify (R19-R54)
   ├─ Section_Logic (R55-R58)
   └─ Section_OK_Reset (R59-R62)
3. Grafcets del programa existente (leen M5000/M5001)
4. Escritura de salidas

Uso de M5000/M5001

|   M5000   |   [lógica de movimiento existente]   |---( permitir movimiento LEFT )---|
|   M5001   |   [lógica de movimiento existente]   |---( permitir movimiento RIGHT )---|

M5000/M5001 actúan como restricción: si están FALSE, la sección correspondiente no puede avanzar.

Rollback

Eliminar los 64 rungs de Verify_OB. Sin impacto residual — el programa existente no depende de nuestras señales internas.


Estado del Proyecto

Fase Estado
Requerimientos ✅ Completado
Especificaciones ✅ Completado (17 requisitos, 24 escenarios)
Diseño técnico ✅ Completado (4 módulos, 64 rungs)
Implementación ✅ Completado (7 archivos)
Judgment Day ✅ Completado (3 rondas, todos los CRITICAL corregidos)
Pruebas en campo 🔲 Pendiente

Notas para Debug en Campo

  1. Confirmar que M5000/M5001 no colisionan con memorias del programa existente
  2. Encontrar la señal de "ciclo iniciado" para trigger de reset (actualmente usa auto-reset por ausencia)
  3. Calibrar D230 (2s default) — ajustar si el operador necesita más/menos tiempo entre ciclos
  4. Verificar cableado X110-X131 en campo (octal: X118/X119 no existen)

Contacto

Para detalle de implementación, ver los archivos en src/. Para especificaciones funcionales, ver requerimientos.md.

About

PLC Mitsubishi FX3G-60M — Sistema de verificación de perfiles de puertas (v4)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors