TYPE "UDT_ZC_DISP_TQ"
TITLE = UDT_ZC_DISP_TQ
VERSION : 0.1
//Tipo de dato dispositivo tanque.
   STRUCT
      Hmi_Estado : Int;   // Visualizacion dispositivoHMI
      Estado_AutoMan : Bool;   // 0= Automatico / 1= Manual
      Estado_TanqueVacio : Bool := FALSE;   // Estado Tanque Vacio
      Estado_TanqueLleno : Bool;   // Estado Tanque Lleno
      Estado_PocisionAltura : Bool := FALSE;   // 0 Nivel en cono / 1 Nivel superior al cono
      Estado_NivelBajo : Bool := FALSE;   // Estado detector de nivel bajo
      Estado_NivelAlto : Bool := FALSE;   // Estado detector de nivel alto
      Estado_BocaHombre : Bool;   // Estado detector de boca de hombre
      Estado_Mezcla : Bool;   // Tanque con productos distintos
      Alarmas_NivelBajo : Bool := FALSE;   // Nivel mínimo en tanque
      Alarmas_NivelAlto : Bool := FALSE;   // Nivel máximo en tanque
      Alarmas_BocaHombre : Bool := FALSE;   // Boca de hombre abierta
      Alarmas_General : Bool := FALSE;   // Tanque en error
      Alarmas_Capacidad : Bool := FALSE;   // Volumen por encima de capacidad máxima
      Orden_Temperatura : Bool := FALSE;   // Orden valvula de control de temperatura
      Orden_Agitacion : Bool := FALSE;   // Orden agitador
      Orden_CIP : Bool := FALSE;   // Orden tanque en CIP
      Orden_Producto : Bool;   // Orden producto (PLC)
      Orden_CambioEstado : Bool;   // Orden cambio de estado (HMI)
      Orden_CambioProd1 : Bool;   // Orden cambio de producto 1 (HMI)
      Orden_CambioProd2 : Bool;   // Orden cambio de producto 2 (HMI)
      Config_Habilitar : Bool := FALSE;   // Activar tratamiento de dispositivo
      Config_HabilitarControlTemp : Bool := TRUE;   // Activar control de temperatura por camisa
      Config_HabilitarAgitador : Bool := TRUE;   // Configurar Tanque con agitador
      Config_HabilitarFrecuenciaAgitacion : Bool := TRUE;   // Configurar Tanque con agitador
      Config_HabilitarAlarmas : Bool := FALSE;   // Habilitar alarmas
      Config_HabilitarCalculoVol : Bool;   // Habilitar calculo de volumen
      Config_TipoControlTemperatura : Bool := FALSE;   // 0 Calentar / 1 Enfriar
      Vis_ConsignaTemperatura : Bool;   // Visibilidad consigna temperatura
      Aux_MemOrdenAgitador : Bool;   // Memoria orden agitador
      Aux_MemOrdenTemperatura : Bool;   // Memoria orden temperatura
      Aux_MemOrdenProducto : Bool;   // Memoria orden producto
      Aux_MemEstadoCIP : Bool := FALSE;   // Memoria de estado CIP
      Aux_CipOK : Bool;   // Auxiliar CIP realizada OK
      Orden_ParoControlAgitador : Bool;   // Orden externa para paro de control agitador
      Orden_ParoControlTemp : Bool;   // Orden externa para paro de control temperatura
      R_Bool_6 : Bool;
      R_Bool_8 : Bool;
      Config_GrupoAlarma : Int := 0;   // Grupo de alarma
      Estado_Tanque : Int;   // 0 Deshabilitado/ 1 Sucio / 2 Limpio / 3 Producto / 4 CIP
      Estado_TanqueNuevo : Int;   // 0 Deshabilitado/ 1 Sucio / 2 Limpio / 3 Producto / 4 CIP
      Estado_Producto1 : Int;   // 0 NULL / 1 Vaca /2  Cabra / 3 Oveja / 4 Suero / 5 Mezcla / 6 Sosa / 7 Acido / 8- Paracético / 9- Agua/10-
      Estado_Producto2 : Int;   // 0 NULL / 1 Vaca /2  Cabra / 3 Oveja / 4 Suero / 5 Mezcla / 6 Sosa / 7 Acido / 8- Paracético / 9- Agua/10-
      Estado_ProductoNuevo : Int;   // 0 NULL / 1 Vaca /2  Cabra / 3 Oveja / 4 Suero / 5 Mezcla / 6 Sosa / 7 Acido / 8- Paracético / 9- Agua/10-
      Estado_ValorNivelPresion : Real;   // Valor de tarjeta entrada de nivel
      Estado_ValorTemperatura : Real;   // Valor de ingeneria entrada de temperatura
      Estado_Volumen : Real;   // Volumen en tanque
      Estado_Presion : Real;   // Presión de líquido
      Estado_Altura : Real;   // Altura columna de líquido
      Orden_TipoProducto : Int;   // 0 NULL / 1 Vaca /2  Cabra / 3 Oveja / 4 Suero / 5 Agua / 6 Sosa / 7 Acido / 8- Paracético / 9- Mezcla/10-
      Orden_ConsignaAgitador : Real;   // Frecuencia de agitador
      Orden_ConsignaManualVolumen : Real;   // Consigna manual de volumen
      Config_TipoAgitacionTiempo : Int := 0;   // 0 Agitador Fijo / 1 Agitador por tiempo
      Config_TipoAgitacionVelocidad : Int := 0;   // 0 Velocidad fija / 1 Velocidad controlada por nivel
      Config_ConsignaTemperatura : Real;   // Consigna de temperatura mantenimiento tanque
      Config_HisteresisTemperatura : Real;   // Tolerancia de temperatura mantenimientotanque
      Config_VolumenMinControlTemp : Real;   // Volumen minimo para control de temperatura
      Config_VolumenMaxControlTemp : Real;   // Volumen maximo para control de temperatura
      Config_VolumenMinControlAgitador : Real;   // Volumen minimo para control de agitacion
      Config_VolumenMaxControlAgitador : Real;   // Volumen maximoo para control de agitacion
      Config_VolumenTanqueVacio : Real;   // Volumen para indicar Tanque Vacio
      Config_VolumenTanqueLleno : Real;   // Volumen para indicar Tanque Lleno
      Config_VelocidadMinAgitador : Real;   // Velocidad minima de agitacion
      Config_VelocidadMaxAgitador : Real;   // Velocidad maxima de agitacion
      Config_VelocidadFijaAgitador : Real;   // Velocidad control fija de agitacion
      Config_CapacidadTanque : Real;   // Volumen máximo de tanque
      Config_DiametroCilindro : Real := 0.0;   // Diametro del cilintro del tanque (metros)
      Config_AlturaCilindro : Real := 0.0;   // Altura del cilindro del tanque (metros)
      Config_DiametroConoInferior : Real := 0.0;   // Diametro Inferior del cono del tanque (metros)
      Config_AnguloCono : Real := 0.0;   // Angulo del cono del tanque (rad)
      Config_AlturaCono : Real := 0.0;   // Altura del cono del tanque (metros)
      Tiempo_AgitadorONConsigna : Int;   // Consigna de agitador activado
      Tiempo_AgitadorONActual : Int;   // Tiempo de agitador activado
      Tiempo_AgitadorOFFConsigna : Int;   // Consigna de agitador desactivado
      Tiempo_AgitadorOFFActual : Int;   // Tiempo de agitador desactivado
      Tiempo_TiempoProducto { S7_SetPoint := 'False'} : "UDT_ZC_CONTADOR_TIEMPO";   // Tiempo tanque con producto
      Tiempo_TiempoLimpio { S7_SetPoint := 'False'} : "UDT_ZC_CONTADOR_TIEMPO";   // Tiempo tanque limpio
      Tiempo_RetTanqueVacio { S7_SetPoint := 'False'} : "UDT_ZC_DISP_TON";   // Retardo de volumen para tanque vacio
      Tiempo_RetTanqueLleno : "UDT_ZC_DISP_TON";   // Retardo de volumen para tanque lleno
      FlipAgitador : "UDT_ZC_DISP_FF";   // Flip flop agitador
   END_STRUCT;

END_TYPE

