Programación de Autómatas en AWL: Control de Pistón Neumático, Maniobras y Tratamiento Analógico
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
BEBDesconexión ante Error
O xerrortiempoExp
O xerrortiempoComp
R EXP
R COMP
R bitTrab
R Tempor
FR Tempor
BEBDesconexión ante Mala Configuración
O xerrorConfigExp
O xerrorconfigComp
R EXP
R COMP
R bitTrab
R Tempor
FR Tempor
BEBDesconexión por Maniobra Correcta (OK)
U bitOk
R EXP
R COMP
R bitTrab
R Tempor
FR Tempor
BEBConexión e Inicialización de Estados
SET
FP bitTrab
S x0
R xEXP
R xCOMPSupervisión de Temporización (Watchdog / Perro Guardián)
U x0
L tout
SS TemporDetección de Error en Sensores
U x0
U(
ON sini
O sfin
)
= bitErrormalaconfError por Time-out (Fin de Temporización)
U Tempor
= biterrorTratamiento de Salidas de Acción
U xEXP
= EXP
U xCOMP
= COMPInvocació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 02. 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
BEBTratamiento 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
BEBConexió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_stdbyParada sin Maniobra Activa
UN START
R bitdetrabajo
R bitstdby
R biterror
R Tempor
FR Tempor
BEBProcedimiento de Rearme
U xEMER
U rearme
S xstdby
R xEMERLlamada al Bloque de Maniobra
CALL #man_piston
sini := sini
sfin := sfin
EXP := EXP
COMP := COMP
TemporExp:= TemporExp
TemporCp := TemporCp
tout := tout
START := connect_START3. 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 #mayor100kgRutina 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