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,12 @@
DATA_BLOCK "DB15990_FAT_DI"
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
NON_RETAIN
"FB15990_ZC_FAT_DI"
BEGIN
END_DATA_BLOCK
@@ -0,0 +1,12 @@
DATA_BLOCK "DB15991_FAT_DO"
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
NON_RETAIN
"FB15991_ZC_FAT_DO"
BEGIN
END_DATA_BLOCK
@@ -0,0 +1,12 @@
DATA_BLOCK "DB15992_FAT_AI"
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
NON_RETAIN
"FB15992_ZC_FAT_AI"
BEGIN
END_DATA_BLOCK
@@ -0,0 +1,12 @@
DATA_BLOCK "DB15993_FAT_AO"
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
NON_RETAIN
"FB15993_ZC_FAT_AO"
BEGIN
END_DATA_BLOCK
@@ -0,0 +1,123 @@
FUNCTION_BLOCK "FB15990_ZC_FAT_DI"
TITLE = FB15990_ZC_FAT_DI
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Bloque de funcion para pruebas de entradas digitales
VAR_INPUT
ByteEntrada { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : DInt := 0; // Direccion Byte entrada
Area { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Int := 0; // 0= Input / 1= Output / 2= Marcas / 3= DB / 4= Periferia
END_VAR
VAR_OUTPUT
Input_0 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 0
Input_1 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 1
Input_2 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 2
Input_3 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 3
Input_4 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 4
Input_5 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 5
Input_6 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 6
Input_7 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Bool; // Bit 7
END_VAR
VAR_TEMP
t_Area : Byte;
t_Input : Byte;
END_VAR
VAR CONSTANT
INPUT : Byte := 16#81; // Input
OUTPUT : Byte := 16#82; // Output
MARCAS : Byte := 16#83; // Marcas
"DB" : Byte := 16#84; // DB
PERIFERIA : Byte := 16#1; // Entrada de periferia (solo S7-1500)
END_VAR
BEGIN
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2023 - 2023
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |
---
> **Restricciones:** Ninguna.
---
### Descripción Funcional
Función para el forzado de las entradas digitales para las pruebas FAT de los cuadros.
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | - |
| FB | - |
| DB | - |
| UDT | - |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 01.00.00 | 12.09.2023 | (ABH) | Primera version. |
*)
END_REGION DESCRIPCION
// ==========================================================================================================
REGION GESTION_TIPO
// Gestion de tipo
CASE #Area OF
0:
#t_Area := #INPUT;
1:
#t_Area := #OUTPUT;
2:
#t_Area := #MARCAS;
3:
#t_Area := #DB;
4:
#t_Area := #PERIFERIA;
ELSE
#t_Area := #INPUT;
END_CASE;
END_REGION GESTION_TIPO
// ==========================================================================================================
REGION LECTURA
// Lectura de BYTE de entradas
#t_Input := PEEK_BYTE(area := #t_Area, dbNumber := 0, byteOffset := #ByteEntrada);
END_REGION LECTURA
// ==========================================================================================================
REGION SALIDAS
// Gestion de salidas
#Input_0 := #t_Input.%X0;
#Input_1 := #t_Input.%X1;
#Input_2 := #t_Input.%X2;
#Input_3 := #t_Input.%X3;
#Input_4 := #t_Input.%X4;
#Input_5 := #t_Input.%X5;
#Input_6 := #t_Input.%X6;
#Input_7 := #t_Input.%X7;
END_REGION SALIDAS
END_FUNCTION_BLOCK
@@ -0,0 +1,128 @@
FUNCTION_BLOCK "FB15991_ZC_FAT_DO"
TITLE = FB15991_ZC_FAT_DO
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Bloque de funcion para pruebas de salidas digitales
VAR_INPUT
ByteSalida : DInt := 0; // Direccion Byte salida
Area : Int := 1; // 0= Input / 1= Output / 2= Marcas / 3= DB / 4= Periferia
END_VAR
VAR
OrdenSalida : Array[0..7] of Bool;
END_VAR
VAR RETAIN
s_oldByteSalida : DInt;
END_VAR
VAR_TEMP
for_i : Int;
t_Area : Byte;
END_VAR
VAR CONSTANT
INPUT : Byte := 16#81; // Input
OUTPUT : Byte := 16#82; // Output
MARCAS : Byte := 16#83; // Marcas
"DB" : Byte := 16#84; // DB
PERIFERIA : Byte := 16#1; // Entrada de periferia (solo S7-1500)
END_VAR
BEGIN
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2023 - 2024
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |
---
> **Restricciones:** Ninguna.
---
### Descripción Funcional
Función para el forzado de las salidas digitales para las pruebas FAT de los cuadros.
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | - |
| FB | - |
| DB | - |
| UDT | - |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 01.00.00 | 12.09.2023 | (ABH) | Primera version. |
| 01.00.01 | 24.05.2024 | (ABH) | Se añade gestion desactivacion de salidas al cambio de direccion. |
*)
END_REGION DESCRIPCION
// ==========================================================================================================
REGION GESTION_TIPO
// Gestion de tipo
CASE #Area OF
0:
#t_Area := #INPUT;
1:
#t_Area := #OUTPUT;
2:
#t_Area := #MARCAS;
3:
#t_Area := #DB;
4:
#t_Area := #PERIFERIA;
ELSE
#t_Area := #INPUT;
END_CASE;
END_REGION GESTION_TIPO
REGION SALIDAS
// Gestion desactivacion salidas al cambio de direccion
IF #s_oldByteSalida <> #ByteSalida THEN
FOR #for_i := 0 TO 7 DO
POKE_BOOL(area := #t_Area,
dbNumber := 0,
byteOffset := #s_oldByteSalida,
bitOffset := #for_i,
value := FALSE);
#OrdenSalida[#for_i] := FALSE;
END_FOR;
END_IF;
// Escritura de bit de salidas
FOR #for_i := 0 TO 7 DO
POKE_BOOL(area := #t_Area,
dbNumber := 0,
byteOffset := #ByteSalida,
bitOffset := #for_i,
value := #OrdenSalida[#for_i]);
END_FOR;
#s_oldByteSalida := #ByteSalida;
END_REGION SALIDAS
END_FUNCTION_BLOCK
@@ -0,0 +1,112 @@
FUNCTION_BLOCK "FB15992_ZC_FAT_AI"
TITLE = FB15992_ZC_FAT_AI
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Bloque de funcion para pruebas de entradas analogicas
VAR_INPUT
ByteEntrada { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : DInt := 0; // Direccion Byte entrada
Area { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Int := 0; // 0= Input / 1= Output / 2= Marcas / 3= DB / 4= Periferia
END_VAR
VAR_OUTPUT
Input_Raw { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : DInt; // Valor bruto del canal
Input_0_100 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Real; // Valor porcentaje
END_VAR
VAR_TEMP
t_Area : Byte;
t_Input : DInt;
END_VAR
VAR CONSTANT
INPUT : Byte := 16#81; // Input
OUTPUT : Byte := 16#82; // Output
MARCAS : Byte := 16#83; // Marcas
"DB" : Byte := 16#84; // DB
PERIFERIA : Byte := 16#1; // Entrada de periferia (solo S7-1500)
VALOR_MAX_TARJETA : Real := 27648.0; // Valor maximo de tarjeta
END_VAR
BEGIN
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2023 - 2023
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |
---
> **Restricciones:** Ninguna.
---
### Descripción Funcional
Función para el forzado de las entradas analogicas para las pruebas FAT de los cuadros.
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | - |
| FB | - |
| DB | - |
| UDT | - |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 01.00.00 | 12.09.2023 | (ABH) | Primera version. |
*)
END_REGION DESCRIPCION
// ==========================================================================================================
REGION GESTION_TIPO
// Gestion de tipo
CASE #Area OF
0:
#t_Area := #INPUT;
1:
#t_Area := #OUTPUT;
2:
#t_Area := #MARCAS;
3:
#t_Area := #DB;
4:
#t_Area := #PERIFERIA;
ELSE
#t_Area := #INPUT;
END_CASE;
END_REGION GESTION_TIPO
// ==========================================================================================================
REGION LECTURA
// Lectura de entrada analogica
#t_Input := WORD_TO_INT(PEEK_WORD(area := #t_Area, dbNumber := 0, byteOffset := #ByteEntrada));
END_REGION LECTURA
// ==========================================================================================================
REGION SALIDAS
// Gestion de salidas
#Input_Raw := #t_Input;
#Input_0_100 := (DINT_TO_REAL(#t_Input) * 100) / #VALOR_MAX_TARJETA;
END_REGION SALIDAS
END_FUNCTION_BLOCK
@@ -0,0 +1,145 @@
FUNCTION_BLOCK "FB15993_ZC_FAT_AO"
TITLE = FB15993_ZC_FAT_AO
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Bloque de funcion para pruebas de salidas analogicas
VAR_INPUT
ByteSalida { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : DInt := 0; // Direccion Byte entrada
Area { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Int := 1; // 0= Input / 1= Output / 2= Marcas / 3= DB / 4= Periferia
END_VAR
VAR_OUTPUT
Salida_Raw { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : DInt; // Valor bruto del canal
END_VAR
VAR_IN_OUT
Salida_0_100 { S7_HiddenAssignment := 'HideIfNoParamAssigned'} : Real; // Valor en porcentaje
END_VAR
VAR RETAIN
s_oldByteSalida : DInt;
END_VAR
VAR_TEMP
t_Area : Byte;
t_Salida : Int;
t_Salida_0_100 : Real;
END_VAR
VAR CONSTANT
INPUT : Byte := 16#81; // Input
OUTPUT : Byte := 16#82; // Output
MARCAS : Byte := 16#83; // Marcas
"DB" : Byte := 16#84; // DB
PERIFERIA : Byte := 16#1; // Entrada de periferia (solo S7-1500)
VALOR_MAX_TARJETA : Real := 27648.0; // Valor maximo de tarjeta
VALOR_CERO : Word;
END_VAR
BEGIN
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2023 - 2023
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |
---
> **Restricciones:** Ninguna.
---
### Descripción Funcional
Función para el forzado de las salidas analogicas para las pruebas FAT de los cuadros.
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | - |
| FB | - |
| DB | - |
| UDT | - |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 01.00.00 | 12.09.2023 | (ABH) | Primera version. |
| 01.00.00 | 24.05.2024 | (ABH) | Se añade gestion desactivacion de salidas al cambio de direccion. |
*)
END_REGION DESCRIPCION
// ==========================================================================================================
REGION GESTION_TIPO
// Gestion de tipo
CASE #Area OF
0:
#t_Area := #INPUT;
1:
#t_Area := #OUTPUT;
2:
#t_Area := #MARCAS;
3:
#t_Area := #DB;
4:
#t_Area := #PERIFERIA;
ELSE
#t_Area := #INPUT;
END_CASE;
END_REGION GESTION_TIPO
// ==========================================================================================================
REGION CALCULOS
// Calculo de valor puntos tarjeta en base a porcentaje
#t_Salida_0_100 := #Salida_0_100;
IF #t_Salida_0_100 < 0.0 THEN
#t_Salida_0_100 := 0.0;
END_IF;
IF #t_Salida_0_100 > 100.0 THEN
#t_Salida_0_100 := 100.0;
END_IF;
#t_Salida := REAL_TO_INT((#t_Salida_0_100 * #VALOR_MAX_TARJETA) / 100);
END_REGION CALCULOS
// ==========================================================================================================
REGION SALIDAS
// Gestion desactivacion salidas al cambio de direccion
IF #s_oldByteSalida <> #ByteSalida THEN
POKE(area := 16#82,
dbNumber := 0,
byteOffset := #s_oldByteSalida,
value := #VALOR_CERO);
#Salida_0_100 := 0;
END_IF;
// Escritura de salida analogica
POKE(area := 16#82,
dbNumber := 0,
byteOffset := #ByteSalida,
value := INT_TO_WORD(#t_Salida));
// Gestion de salidas
#Salida_Raw := #t_Salida;
#s_oldByteSalida := #ByteSalida;
END_REGION SALIDAS
END_FUNCTION_BLOCK