230 likes | 429 Views
PROGRAMACIÓN ESTRUCTURADA. C ONDICIONADA. R ETARDADA. M EMORIZADA. X1. X2. Ter. Cer. 0.5s. Cal. I MPULSIONAL. L IMITADA. T EMPORIZADA. X6. X8. XBR. Sirena. Si X4↑. t/X3/5s. X3. X3. Sir. Sir. 2s. 5s. TIPOS DE ACCIONES. FC-X. FC-X. OB1. R ETARDADA. U E2 L S5T#0.5s
E N D
CONDICIONADA RETARDADA MEMORIZADA X1 X2 Ter. Cer. 0.5s. Cal. IMPULSIONAL LIMITADA TEMPORIZADA X6 X8 XBR Sirena Si X4↑ t/X3/5s X3 X3 Sir. Sir. 2s. 5s. TIPOS DE ACCIONES
FC-X FC-X OB1 RETARDADA U E2 L S5T#0.5s SE T1 U E2 U T1 =Cerrar U E3 L S5T#5s SE T1 U E3 U T1 //… U E3 =Sirena X2 Cer. 0.5s. FC-X IMPULSIONAL LIMITADA TEMPORIZADA FC-X U E3 L S5T#2s SI T1 U E3 U T1 =Sirena U E4 FP M100.0 =Activar //… Sirena Si X4 t/X3/5s X3 X3 Sir. Sir. 2s. 5s. TIPOS DE ACCIONES • IMPLEMENTACIÓN
2 E1 T2 =1 M1 3 T3 =1 4 6 T4 T7 5 T5 S1 MACRO-ETAPAS Entrada REGLAS DE EXPANSIÓN • 1) La expansión de una macroetapa siempre tendrá una sola etapa de entrada y una sola etapa de salida. • 2) La etapa de entrada (E) se activará cuando se active la macroetapa. • 3) La activación de la etapa de salida (S) implicará la validación de las transiciones inmediatamente posteriores a la macroetapa. Salida
IMPLEMENTACIÓN OB1 FC-M1 U M1 SPBN_001 CALLFC-M1 U S1 S E6 R M1 _001:NOP 0 U M1 FP M100.0 S E3 R E4 R E5 R S1 //Fin arranque U E3 U T3 S E4 R E3 //… //Salida U E5 U T5 S S1 R E5 2 E1 T2 =1 M1 3 T3 =1 4 6 T4 CRÍTICAS T7 5 1-Código depende del nombre (M1) 2-Problemas en la implementación por cajas T5 S1 MACRO-ETAPAS
IMPLEMENTACIÓN BIT DE TRABAJO FC-M1 O M 500.0 ON M 500.0 FPM 100.0 SPBN ARR S E3 R E4 R E5 R S1 ARR:NOP 0 //… //Salida U E5 U T5 SS1 R E4 RM 100.0 2 E1 T2 =1 M1 3 T3 =1 4 6 T4 PROPIEDADES T7 5 T5 1-Arranque independiente del bloque invocante 2-Válido para cualquier implementación de OB1 S1 MACRO-ETAPAS (II) OB1 U M1 SPBN_001 CALLFC-M1 US1 S E6 R M1 _001:NOP 0
M2 MACRO-ETAPAS CORRECTO
Coordinación Horizontal MACRO-ACCIONES • PLANTILLA 0 10 Inicialización S 10 1 11 2 n
ESCALADO (I) FC 105 VALOR de tipo REAL TARJETAS DE 16 BITS Resolución real: 0-32768 Limite práctico: 0-27648 OB1 • U E 100.0 • SPBNB_001 • CALL "SCALE" • IN :=MW 50 • HI_LIM :=1.000000e+003 • LO_LIM :=0.000000e+000 • BIPOLAR:=E100.1 • RET_VAL:=MW10 • OUT :=MD108 • _001: U BIE • = A 1.0 MW50: [-27.648, +27.648]
ESCALADO (II) FC 106 VALOR ENTERO OB1 • U E 100.0 • SPBNB_001 • CALL "UNSCALE" • IN :=MD50 • HI_LIM :=1.000000e+002 • LO_LIM :=0.000000e+000 • BIPOLAR:=E100.1 • RET_VAL:=MW10 • OUT :=MW108 • _001: U BIE • = A 1.0
CORREGIR! EJEMPLO-SECUENCIA CILINDROS OB1 Cilindros simple efecto Pre-actuadores monoestables Entrar A y B 0 GRAFCETS NIVEL-1 A y B comprimidos Salir A FC-X: Compresión de A 1 10 Arranque: no volver a ejecutar A ha salido Salir B =1 2 Ordenar compresión A 11 B ha salido A comprimido Entrar A 3 BitDeFin = 1 12 A ha entrado Entrar B =1 4 a OB1 B ha entrado 0
EJEMPLO-SECUENCIA CILINDROS OB1 Cilindros simple efecto Pre-actuadores monoestables Sbc Sac 0 Llamar FC4 Llamar FC3 Sbc.Sac Llamar FC1 GRAFCET NIVEL-2 1 Sae Llamar FC2 2 TABLA DE SÍMBOLOS (Detalle) Sbe Llamar FC3 3 Sac Llamar FC4 4 Sbc 0
EJEMPLO-SECUENCIA CILINDROS OB1 Sbc Sac PLANTILLA OB1 U E0 SPBN_001 CALL FC3 CALL FC4 U BitDeFinCA U BitDeFinCB S E1 R E0 _001:NOP 0 //… U BitDeErrorEA SPBN_500 Rutina Error _500:NOP 0 U BitDeErrorEB SPBN_501 Rutina Error _501:NOP 0 //… U PEMER SPBN_600 Rutina Emerg _600: NOP 0 0 Llamar FC4 Llamar FC3 Sbc.Sac Llamar FC1 1 Sae Llamar FC2 2 Sbe Llamar FC3 3 Sac Llamar FC4 4 Sbc 0
PLANTILLA FC-3 O M500.0 ON M500.0 FPBitDeTrabajo SPBN_ARR R BitDeFinCA R BitDeErrorCA = MarcaPulsoArranque _ARR:NOP 0 U MarcaPulsoArranque L S5T#5s SS Tout S E11 //… U E12 //Actuador Etapa Final S BitDeFinCA RBitDeTrabajo RTout //… U Tout //Gestión Error SPBN_500 S BitDeErrorCA //Rutina Error _500:NOP 0 No usa estructura de cajas (evita posibles problemas de mostrar el cero) • Gestión directa actuadores • U E11 • R A124.0 EJEMPLO-SECUENCIA CILINDROS FC3: Compresión de A Arranque: Tout=5s BitDeFinCA/ErrorCA=0 10 =1 A124.0 11 Error 12 BitDeFinCA = 1 =1 a OB1
FC-3 O M 500.0 ON M500.0 FPBitDeTrabajo S E11 R E12 RBitDeFinCA U E11 //Actuador R A124.0 U E11 U Sac S E12 R E11 U E12 SBitDeFinCA R E12 RBitDeTrabajo EJEMPLO-SECUENCIA CILINDROS OB1 2 OB1 B ha salido U E3 SPBN_004 CALL FC3 UBitDeFinCA S E4 R E3 _004:NOP 0 Entrar A 3 A ha entrado 4 FC-3: Compresión de A Arranque: BitDeFinCA=0 10 =1 Ordenar compresión A 11 A comprimido BitDeFinCA = 1 12 =1 a OB1
FC-1 OB1 O M 500.0 ON M500.0 FPBitDeTrabajo S E11 R E12 RBitDeErrorCA RBitDeFinCA L S5T#5s //Timeout SS Tout U E11 //Actuador R ExpandirA U E11 U Sac S E12 R E11 U E12 //Final SBitDeFinCA R E12 RBitDeTrabajo UTout //Error S BitDeErrorCA U E3 SPBN _001 CALL FC3 UBitDeFinCA S E4 R E3 _001:NOP 0 … //Errores U BitDeErrorCA SPBN _500 R E3 R E4 Rutina Tratamiento Errores … _500: NOP 0 Comentarios 1-Gestión del Temporizador Tout!! 2-No hay un punto de salida común 3-¿Tout puede ser un SE? ¿y un SV? EJEMPLO-SECUENCIA CILINDROS FC-1: Compresión de A Control TIME-OUT Arranque: Tout=5s BitDeFinCA/ErrorCA=0 10 =1 Ordenar compresión A 11 a OB1 A comprimido.NOT(Tout) Tout BitDeFinCA = 1 12 =1 a OB1
ESQUEMA DE LLAMADAS ENTRE BLOQUES CALL CC UC CALL<FBX,DBX> FBX FCX DBX OB1: Ciclo principal FBX Sistema Operativo FCX DBX Accesible por cualquier bloque OB_X DBY (global)
BLOQUES DE DATOS GLOBALES DEFINICION VISUALIZACIÓN DE VALORES DIRECCIONAMIENTO EM AWL AUFDB1 L DBB0 T MB0 L DBW0 T MW0 U DBX 0.0 S M 0.0 L DB1.DBB0 T MB0 //etc... L “Temp”.DATO1 T MB0 //etc...
PASO DE PARÁMETROS BLOQUE SUMADOR: FUNCIÓN Se usa # para indicar parámetro
PASO DE PARÁMETROS BLOQUE SUMADOR: BLOQUE INVOCANTE Completar la gestión del Enable Out
PASO DE PARÁMETROS BLOQUE OPERACION NUMÉRICA: [(A+B)/C]-D FC1 IN A TEMP (A+B/C)-D B OUT RES C FC1 L #A L #B +I L #C /I //División entera T #Div L #Div L #D -I T #RES D
PASO DE PARÁMETROS IMPLEMENTACIÓN AWL 1 0 MOTOR 1 Motor1 S5T#50s T1 2 Etapa0 Etapa1 1 Etapa2 Tipo IN Tipo OUT FC1
PASO DE PARÁMETROS IMPLEMENTACIÓN AWL 1 0 MOTOR 1 2 1