10Nivel 4
Clasificación de piezas por tamaño
Dos sensores a distinta altura distinguen las piezas grandes. Un temporizador espera a que la pieza llegue al pistón, que la empuja a un costado. Las piezas pequeñas siguen hasta el final de la cinta.
El simulador está pensado para computadores (pantallas de 1024 px o más).
Planta virtual
Bien clasificadas: 0. Mal clasificadas: 0
Vista en reposo. En el simulador la planta se mueve según las salidas de tu programa.
Entradas y salidas
| Dirección | Nombre | Descripción |
|---|---|---|
| I0.0 | MARCHA | Pulsador de marcha (NA) |
| I0.1 | PARO | Pulsador de paro (NC: 1 en reposo) |
| I0.2 | SENSOR_BAJO | Sensor bajo: detecta todas las piezas (planta) |
| I0.3 | SENSOR_ALTO | Sensor alto: solo lo alcanzan las piezas grandes (planta) |
| Q0.0 | CINTA | Motor de la cinta |
| Q0.1 | PISTON | Electroválvula del pistón de descarte |
| M0.0 | PIEZA_GRANDE | Una pieza grande va camino al pistón |
| T0 | T_VIAJE | Tiempo que tarda la pieza del sensor al pistón |
| T1 | T_EMPUJE | Duración del empuje del pistón |
Programa
Diagrama de escalera (Ladder, LD)
Peldaño 1 — Cinta con autorretención.
Peldaño 2 — Llega una pieza: si también la ve el sensor alto, es grande.
Peldaño 3 — Espera a que la pieza grande llegue al pistón y borra la memoria.
Peldaño 4 — Empuje del pistón: un pulso de medio segundo.
Diagrama de bloques de funciones (FBD)
Red 1 — Cinta con autorretención.
Red 2 — Llega una pieza: si también la ve el sensor alto, es grande.
Red 3 — Espera a que la pieza grande llegue al pistón y borra la memoria.
Red 4 — Empuje del pistón: un pulso de medio segundo.
Texto estructurado (ST)
(* Clasificación de piezas por tamaño — convertido desde Ladder *)
VAR
R_TRIG_1 : R_TRIG;
T_VIAJE : TON;
T_EMPUJE : TP;
END_VAR
(* Peldaño 1: Cinta con autorretención. *)
CINTA := (MARCHA OR CINTA) AND PARO;
(* Peldaño 2: Llega una pieza: si también la ve el sensor alto, es grande. *)
R_TRIG_1(CLK := SENSOR_BAJO);
IF R_TRIG_1.Q AND SENSOR_ALTO THEN PIEZA_GRANDE := TRUE; END_IF;
(* Peldaño 3: Espera a que la pieza grande llegue al pistón y borra la memoria. *)
T_VIAJE(IN := PIEZA_GRANDE, PT := T#1s250ms);
IF T_VIAJE.Q THEN PIEZA_GRANDE := FALSE; END_IF;
(* Peldaño 4: Empuje del pistón: un pulso de medio segundo. *)
T_EMPUJE(IN := T_VIAJE, PT := T#500ms);
PISTON := T_EMPUJE.Q;Lista de instrucciones (IL)
(* Clasificación de piezas por tamaño — convertido desde Ladder *) VAR R_TRIG_1 : R_TRIG; T_VIAJE : TON; T_EMPUJE : TP; END_VAR (* Peldaño 1: Cinta con autorretención. *) LD MARCHA OR CINTA AND PARO ST CINTA (* Peldaño 2: Llega una pieza: si también la ve el sensor alto, es grande. *) CAL R_TRIG_1(CLK := SENSOR_BAJO) LD R_TRIG_1.Q AND SENSOR_ALTO S PIEZA_GRANDE (* Peldaño 3: Espera a que la pieza grande llegue al pistón y borra la memoria. *) CAL T_VIAJE(IN := PIEZA_GRANDE, PT := T#1s250ms) LD T_VIAJE.Q R PIEZA_GRANDE (* Peldaño 4: Empuje del pistón: un pulso de medio segundo. *) CAL T_EMPUJE(IN := T_VIAJE, PT := T#500ms) LD T_EMPUJE.Q ST PISTON
Paso a paso
- 1Pulsa ▶ Ejecutar (F5) y presiona MARCHA. Las piezas pequeñas solo activan SENSOR_BAJO; las grandes activan los dos sensores a la vez.
- 2Peldaño 2: en el flanco de subida de SENSOR_BAJO, si SENSOR_ALTO también está activo, se memoriza PIEZA_GRANDE con una bobina Set.
- 3Peldaño 3: T_VIAJE mide 1,25 s, lo que tarda la pieza en llegar al pistón, y luego borra la memoria. Peldaño 4: el pulso de T_EMPUJE acciona el pistón durante medio segundo.
- 4La planta cuenta las piezas bien y mal clasificadas. Si detienes la cinta con una pieza grande en camino, el tiempo sigue corriendo y el pistón falla: en la industria se usa un encoder o un sensor frente al pistón para no depender del tiempo.