Primera version

This commit is contained in:
2026-07-14 10:21:52 +02:00
parent 273e2be076
commit 430e3b4db0
222 changed files with 176320 additions and 0 deletions
@@ -0,0 +1,122 @@
FUNCTION "FC15026_ZC_PULSADOR" : Void
TITLE = FC15026_ZC_PULSADOR
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Funcion para gestion de pulsadores
VAR_INPUT
Pulso1Seg : Bool; // Pulso 1 segundo
SP_Tiempo : Int; // Tiempo retardo pulsador
TrazaCategoria : Int; // Categoria de la traza
TrazaIdProceso : Int; // ID Proceso para trazabilidad
TrazaIdPulsador : Int; // ID Pulsador para trazabilidad
Usuario : String; // Usuario actual
FechaHoraActual {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL; // Fecha y hora actual
END_VAR
VAR_IN_OUT
Pulsador : "UDT_ZC_PULSADOR"; // Pulsador
END_VAR
BEGIN
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2025 - 2026
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |
---
> **Restricciones:** Ninguna.
---
### Descripción Funcional
Función encargada de la gestión temporizada de los pulsadores virtuales provenientes del sistema HMI o sistema externo, integrando el registro automático de cada acción en el sistema de trazabilidad.
En ella se realizan las siguientes acciones:
- Evalúa continuamente si existe una orden activa desde el HMI o desde sistema externo y si el pulsador dispone del permiso de ejecución necesario.
- Incrementa un temporizador interno auxiliar mediante un pulso de un segundo hasta alcanzar el tiempo de retardo configurado.
- Una vez superado el tiempo de retardo:
- Registra el evento en el buffer invocando la función FC8_ZC_TRAZA_REGISTRO, asignando la categoría específica de pulsadores, el identificador, el usuario y la marca de tiempo.
- Activa la señal de confirmación de orden hacia la lógica del PLC.
- Resetea automáticamente la marca de activación del HMI.
- Reinicia a cero el tiempo acumulado del pulsador en caso de perder el permiso de ejecución o si la orden del HMI se cancela antes de finalizar el temporizador.
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | `FC8_ZC_TRAZA_REGISTRO` |
| FB | - |
| DB | - |
| UDT | `UDT_ZC_PULSADOR` |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 01.00.00 | 14.03.2025 | (ABH) | Primera version. |
| 01.01.00 | 08.07.2026 | (ABH) | Se implementa orden externa. |
*)
END_REGION DESCRIPCION
// ==========================================================================================================
REGION GESTION_PULSADOR
// Reset orden PLC
#Pulsador.Plc := FALSE;
// Con permiso y con la orden desde HMI, contamos el tiempo para activar la orden de PLC
IF (#Pulsador.Hmi OR #Pulsador.Remoto) AND #Pulsador.Permiso THEN
IF #Pulso1Seg AND #Pulsador.AuxTiempo < #SP_Tiempo THEN
#Pulsador.AuxTiempo += 1;
END_IF;
IF #Pulsador.AuxTiempo >= #SP_Tiempo THEN
// Registramos la trazabilidad de la pulsacion del boton
"FC8_ZC_TRZ_REGISTRO"(FechaHora := #FechaHoraActual,
Registrar := 1,
Categoria := #TrazaCategoria,
User := #Usuario,
CodInt_1 := #TrazaIdProceso,
CodInt_2 := #TrazaIdPulsador,
CodInt_3 := 0,
CodInt_4:= 0,
CodInt_5:= 0,
CodReal_1 := 0.0,
CodReal_2 := 0.0);
// Activacion de orden PLC y reset orden HMI
#Pulsador.Plc := TRUE;
#Pulsador.Hmi :=
#Pulsador.Remoto := FALSE;
END_IF;
END_IF;
END_REGION GESTION_PULSADOR
// ==========================================================================================================
REGION RESET_DATOS
// Sin orden desde HMI o si no tenemos permiso, reseteamos el tiempo del pulsador
IF (NOT #Pulsador.Hmi AND NOT #Pulsador.Remoto) OR NOT #Pulsador.Permiso THEN
#Pulsador.AuxTiempo := 0;
END_IF;
END_REGION RESET_DATOS
END_FUNCTION