Programación de Autómatas en AWL: Control de Pistón Neumático, Maniobras y Tratamiento Analógico

Informática6,24 KB

1. Módulo de Maniobra General (Bloque de Función - FB MAN)

Este bloque implementa el control básico de maniobra para un actuador de doble efecto (expansión y compresión) con control de tiempos, errores y supervisión continua.

Declaración de Variables

  • VAR_INPUT: sini, sfin, RESET, Tempor_exp, Tempor_comp, tout, ON_exp, ON_comp (Sensores de inicio y fin de carrera, señal de reset, activación de acciones, consignas de tiempo y temporizadores).
  • VAR_OUTPUT / VAR_IN_OUT: EXP, COMP, bitfinOK, bitErrorExp, bitErrorComp (Salidas de acción, bits individuales de error por acción y confirmación de maniobra correcta OK).
  • VAR_STATIC: xini, xexp, xcomp, bitTrabajo, xerrorconfigExp, xerrortiempoExp, xerrorconfigComp, xerrortiempoComp, xfinOK (Bits internos de trabajo, réplica interna de salidas de acción y banderas para errores de configuración y de tiempo).

Lógica en Lenguaje AWL

Tratamiento de Parada Brusca

U   RESET
R   EXP
R   COMP
R   bitTrabajo
R   bitOK
R   Tempor
FR  Tempor
BEB

Desconexión ante Error

O   xerrortiempoExp
O   xerrortiempoComp
R   EXP
R   COMP
R   bitTrab
R   Tempor
FR  Tempor
BEB

Desconexión ante Mala Configuración

O   xerrorConfigExp
O   xerrorconfigComp
R   EXP
R   COMP
R   bitTrab
R   Tempor
FR  Tempor
BEB

Desconexión por Maniobra Correcta (OK)

U   bitOk
R   EXP
R   COMP
R   bitTrab
R   Tempor
FR  Tempor
BEB

Conexión e Inicialización de Estados

SET
FP  bitTrab
S   x0
R   xEXP
R   xCOMP

Supervisión de Temporización (Watchdog / Perro Guardián)

U   x0
L   tout
SS  Tempor

Detección de Error en Sensores

U   x0
U(  
ON  sini
O   sfin
)
=   bitErrormalaconf

Error por Time-out (Fin de Temporización)

U   Tempor
=   biterror

Tratamiento de Salidas de Acción

U   xEXP
=   EXP
U   xCOMP
=   COMP

Invocación del Bloque FB MAN

U   "M1"
SPBN _001
CALL FB1, DB1
 RESET    := FALSE
 sini     := "si"
 sfin     := "sf"
 Tempor   := "T1"
 bitOk    := "OK"
 bitError := "Error"
 EXP      := EXP
 COMP     := COMP
_001: NOP 0

2. Control del Pistón Neumático (Bloque de Función - PISTÓN)

Módulo de nivel superior encargado de coordinar los modos de marcha, emergencia, espera (standby) y rearme del actuador.

Declaración de Variables

  • VAR_INPUT: sini, sfin, tout, Tempor_exp, Tempor_comp, ON_exp, ON_comp, START, EMER, rearme (Sensores de posición, temporizadores de carrera, consignas de marcha, paro de emergencia y rearme).
  • VAR_OUTPUT / VAR_IN_OUT: EXP, COMP, bit_stdby, bit_error (Órdenes de avance/retroceso, estado de espera y señalización global de fallo).
  • VAR_STATIC: man_piston: FB, xerrortiempo, xerrorconfig, mfsini, mfsfin, xEMER, xstdby, bitTrabajo (Instancia del FB de maniobra, bits de error, marcas de flanco y estados internos).
  • VAR_TEMP: Mpsini, Mpsfin (Marcas temporales auxiliares de inicio y fin).

Lógica en Lenguaje AWL

Desconexión por Falta de Marcha

UN  START
R   bitdetrabajo
R   bitstdby
R   biterror
SPBN _DESC
CALL #man_piston
 RESET    := TRUE
 EXP      := EXP
 COMP     := COMP
 TemporExp:= TemporExp
 TemporCp := TemporCp
_DESC: NOP 0
UN  START
BEB

Tratamiento de Parada de Emergencia

U   EMER
S   xEMER
R   xerrortiempo
R   xerrorconfig
R   xstdby
SPBN _EMER
CALL #man_piston
 RESET    := TRUE
 EXP      := EXP
 COMP     := COMP
 TemporExp:= TemporExp
 TemporCp := TemporCp
_EMER: NOP 0
U   EMER
BEB

Conexión y Gestión de Standby

U   START
FP  bitdetrabajo
S   xstdby
R   xerrortiempo
R   xerrorconfig
R   xEMER

// Tratamiento de bit Standby
U   xstdby
=   #bit_stdby

Parada sin Maniobra Activa

UN  START
R   bitdetrabajo
R   bitstdby
R   biterror
R   Tempor
FR  Tempor
BEB

Procedimiento de Rearme

U   xEMER
U   rearme
S   xstdby
R   xEMER

Llamada al Bloque de Maniobra

CALL #man_piston
 sini     := sini
 sfin     := sfin
 EXP      := EXP
 COMP     := COMP
 TemporExp:= TemporExp
 TemporCp := TemporCp
 tout     := tout
 START    := connect_START

3. Procesamiento y Normalización de Señal Analógica (Función - FC)

Tratamiento de señales analógicas de temperatura/peso con filtrado por rango, supervisión de alarmas y reinicio de variables.

Declaración de Variables

  • VAR_INPUT: raw: INT, Lo_lim: REAL, Hi_lim: REAL, Temp_min: REAL, Temp_med: REAL, Temp_max: REAL, BIPOLAR: BOOL, RESET: BOOL.
  • VAR_OUTPUT: TEMP_REAL: REAL, In_range: BOOL, Error: BOOL.
  • VAR_TEMP: Ret_Val: INT, out: REAL, mayor100kg: BOOL.

Lógica de Verificación y Comparación AWL

Evaluación de Umbrales y Errores

L   #out
L   1.000000e+002
>R  
=   #mayor100kg

L   #Ret_Val
L   0
<>I 
R   #mayor100kg

L   #out
L   1.500000e+002
>R  
=   #Error
R   #mayor100kg

Rutina de Reset y Limpieza de Señal

U   RESET
R   #In_range
R   #Error
SPBN _DES
L   0.0
T   #TEMP_REAL
_DES: NOP 0
U   RESET
BEB

Descargar

PDF Word HTML