Reorganizacion de libreria.
This commit is contained in:
+12
@@ -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
|
||||
|
||||
+12
@@ -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
|
||||
|
||||
+12
@@ -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
|
||||
|
||||
+12
@@ -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
|
||||
|
||||
+123
@@ -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
|
||||
|
||||
+128
@@ -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
|
||||
|
||||
+112
@@ -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
|
||||
|
||||
+145
@@ -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
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
DATA_BLOCK "DB15994_ZC_INICIALIZAR_DISP"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
NON_RETAIN
|
||||
"FB15994_ZC_INICIALIZAR_DISP"
|
||||
|
||||
BEGIN
|
||||
|
||||
END_DATA_BLOCK
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
DATA_BLOCK "DB15995_ZC_BUSCAR_DIR"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
NON_RETAIN
|
||||
"FB15995_ZC_BUSCAR_DIR"
|
||||
|
||||
BEGIN
|
||||
|
||||
END_DATA_BLOCK
|
||||
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
FUNCTION_BLOCK "FB15994_ZC_INICIALIZAR_DISP"
|
||||
TITLE = FB15994_ZC_INICIALIZAR_DISP
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
VAR_INPUT
|
||||
N_MAX_MUX_DISP : Int;
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
s_Inicializar : Bool;
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
for_i : Int;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION DESCRIPCION
|
||||
(*
|
||||
###### (C)Copyright ZeusControl 2025 - 2025
|
||||
|
||||
---
|
||||
### 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 la inicializacion de valores de dispositivos.el forzado de las entradas digitales para las pruebas FAT de los cuadros.
|
||||
|
||||
En ella se realizan las siguientes acciones:
|
||||
|
||||
- Comprobacion de inicializar, para salida rapida de la funcion.
|
||||
- Reset de los indices del multiplexado para evitar problemas al cargar los datos.
|
||||
- Copia de valores copiados desde excel para inicializar las configuraciones de los dispositivos.
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | `DB2000_ED`, `DB2001_EA`, `DB2005_SD`, `DB2006_SA`, `DB2010_V`, `DB2015_M`, `DB2016_M_VF`, `DB2025_TOT`, `DB2039_TQ` |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 21.05.2025 | (ABH) | Primera version. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION INICIALIZACION
|
||||
|
||||
// Si no hay orden de inicializar, salimos del bloque
|
||||
IF NOT #s_Inicializar THEN
|
||||
RETURN;
|
||||
END_IF;
|
||||
|
||||
END_REGION INICIALIZACION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION RESET_INDICES_MULTIPLEXADO
|
||||
|
||||
FOR #for_i := 0 TO #N_MAX_MUX_DISP DO
|
||||
|
||||
"DB2800_ED_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2801_EA_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2805_SD_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2806_SA_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2810_V_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2815_M_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2816_M_VF_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2817_M_SINA_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2825_TOT_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2840_TQ_MUX".Mux.Scada[#for_i].Index :=
|
||||
"DB2841_TQ_AE_MUX".Mux.Scada[#for_i].Index := 0;
|
||||
|
||||
END_FOR;
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
// RELLENAR CON VALORES DE EXCEL.
|
||||
// RECORDAR:
|
||||
// DESPUES DE INICIALIZAR, BORRAR LOS DATOS PARA NO GASTAR MEMORIA DEL PLC
|
||||
REGION VALORES_DISPOSITIVOS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION RESET_ORDENES
|
||||
|
||||
// Reset orden inicializar
|
||||
#s_Inicializar := FALSE;
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
+396
@@ -0,0 +1,396 @@
|
||||
FUNCTION_BLOCK "FB15995_ZC_BUSCAR_DIR"
|
||||
TITLE = FB15995_ZC_BUSCAR_DIR
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
//Bloque de funcion para comprobacion de direcciones configuradas en el sistema
|
||||
VAR
|
||||
s_Buscar : Bool; // Orden buscar
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
s_EntradaDigital : Struct
|
||||
Habilitar : Bool;
|
||||
Encontrada : Bool;
|
||||
NumeroByte : Int;
|
||||
NumeroBit : Int;
|
||||
Dispositivo : String;
|
||||
END_STRUCT;
|
||||
s_Salidadigital : Struct
|
||||
Habilitar : Bool;
|
||||
Encontrada : Bool;
|
||||
NumeroByte : Int;
|
||||
NumeroBit : Int;
|
||||
Dispositivo : String;
|
||||
END_STRUCT;
|
||||
s_EntradaAnalogica : Struct
|
||||
Habilitar : Bool;
|
||||
Encontrada : Bool;
|
||||
NumeroByte : Int;
|
||||
Dispositivo : String;
|
||||
END_STRUCT;
|
||||
s_SalidaAnalogica : Struct
|
||||
Habilitar : Bool;
|
||||
Encontrada : Bool;
|
||||
NumeroByte : Int;
|
||||
Dispositivo : String;
|
||||
END_STRUCT;
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
for_i : Int;
|
||||
t_N_MAX_ED : Int;
|
||||
t_N_MAX_EA : Int;
|
||||
t_N_MAX_SD : Int;
|
||||
t_N_MAX_SA : Int;
|
||||
t_N_MAX_V : Int;
|
||||
t_N_MAX_M : Int;
|
||||
t_N_MAX_M_VF : Int;
|
||||
t_N_MAX_TOT : Int;
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
DISP_ED : String := 'ED-';
|
||||
DISP_EA : String := 'EA-';
|
||||
DISP_SD : String := 'SD-';
|
||||
DISP_SA : String := 'SA-';
|
||||
DISP_V : String := 'V-';
|
||||
DISP_M : String := 'M-';
|
||||
DISP_M_VF : String := 'M-VF-';
|
||||
DISP_TOT : String := 'TOT-';
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION DESCRIPCION
|
||||
//=======================================================================
|
||||
// (C)Copyright ZeusControl 2023 - 2026
|
||||
//=======================================================================
|
||||
(*
|
||||
### Información del Sistema
|
||||
| Hardware Compatible | Entorno de Ingeniería |
|
||||
|---------------------|-----------------------|
|
||||
| PLC serie 1200/1500 | TIA Portal 18 |
|
||||
|
||||
---
|
||||
### Descripción Funcional
|
||||
El bloque implementa un buscador de direccionamiento de E/S que, a partir de una dirección física (byte/bit para digitales o byte para analógicas), localiza todos los dispositivos del proyecto que la utilizan y devuelve una cadena de texto con la relación de los mismos. Es una herramienta de trazabilidad y diagnóstico que facilita al ingeniero la identificación rápida del uso de cada punto de E/S.
|
||||
|
||||
Funcionalidades principales:
|
||||
- Búsqueda de entradas digitales (`s_EntradaDigital`): se le indica un byte y un bit, y el bloque recorre los dispositivos `ED` (Entradas Digitales), `V` (Válvulas), `M` (Motores), `M_VF` (Motores con Variador de Frecuencia) y `TOT` (Totalizados) comparando el byte/bit configurado en cada uno con el solicitado. Para las válvulas y motores también coteja los retornos de reposo y trabajo, así como el retorno de confirmación de marcha y térmico.
|
||||
- Búsqueda de entradas analógicas (`s_EntradaAnalogica`): se le indica un byte y el bloque recorre los dispositivos `EA` (Entradas Analógicas) comparando la dirección de entrada configurada.
|
||||
- Búsqueda de salidas digitales (`s_Salidadigital`): se le indica un byte y un bit, y el bloque recorre los dispositivos `SD` (Salidas Digitales), `V` (Válvulas), `M` (Motores) y `M_VF` (Motores con Variador de Frecuencia) comparando el byte/bit de salida configurado.
|
||||
- Búsqueda de salidas analógicas (`s_SalidaAnalogica`): se le indica un byte y el bloque recorre los dispositivos `SA` (Salidas Analógicas) y `M_VF` (Motores con Variador de Frecuencia, salida analógica de consigna) comparando la dirección de salida configurada.
|
||||
- En cada búsqueda se valida el rango del bit (entre 1 y 7) cuando aplica, y se construye la cadena de resultados concatenando el prefijo del tipo de dispositivo (`#DISP_ED`, `#DISP_V`, `#DISP_M`, `#DISP_M_VF`, `#DISP_TOT`, `#DISP_EA`, `#DISP_SD`, `#DISP_SA`) con el índice convertido a texto mediante `FC15001_ZC_INT_TO_STRING`, separando cada coincidencia con el carácter `;`.
|
||||
- Activación del flag `Encontrada` cuando existe al menos una coincidencia.
|
||||
- Inicialización de la estructura de resultados (`Encontrada := FALSE` y `Dispositivo := ''`) al inicio de cada búsqueda, y reseteo del bit fuera de rango.
|
||||
|
||||
> **Restricciones:** Ninguna.
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | `FC15001_ZC_INT_TO_STRING` |
|
||||
| FB | - |
|
||||
| DB | `DB2000_ED`, `DB2001_EA`, `DB2005_SD`, `DB2006_SA`, `DB2010_V`, `DB2015_M`, `DB2016_M_VF`, `DB2025_TOT` |
|
||||
| UDT | `ZC_DISP_ED`, `ZC_DISP_EA`, `ZC_DISP_SD`, `ZC_DISP_SA`, `ZC_DISP_V`, `ZC_DISP_M`, `ZC_DISP_M_VF`, `ZC_DISP_TOT` |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 00.00.01 | 12.09.2023 | (ABH) | Primera version. |
|
||||
| 01.00.00 | 02.07.2026 | (ABH) | Se añade orden "Buscar" para optimizacion de codigo. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION GESTION_ORDEN_BUSCAR
|
||||
|
||||
// Si no hay orden de buscar, salimos del bloque
|
||||
IF NOT #s_Buscar THEN
|
||||
RETURN;
|
||||
END_IF;
|
||||
|
||||
END_REGION GESTION_ORDEN_BUSCAR
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION TRASPASO_PARAMETROS_N_MAX
|
||||
|
||||
#t_N_MAX_ED := "N_MAX_DISP_ED";
|
||||
#t_N_MAX_EA := "N_MAX_DISP_EA";
|
||||
#t_N_MAX_SD := "N_MAX_DISP_SD";
|
||||
#t_N_MAX_SA := "N_MAX_DISP_SA";
|
||||
#t_N_MAX_V := "N_MAX_DISP_V";
|
||||
#t_N_MAX_M := "N_MAX_DISP_M";
|
||||
#t_N_MAX_M_VF := "N_MAX_DISP_M_VF";
|
||||
#t_N_MAX_TOT := "N_MAX_DISP_TOT";
|
||||
|
||||
END_REGION TRASPASO_PARAMETROS_N_MAX
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION BUSQUEDA_ENTRADA_DIGITAL
|
||||
|
||||
// Reinicializacion de valores
|
||||
#s_EntradaDigital.Encontrada := FALSE;
|
||||
#s_EntradaDigital.Dispositivo := '';
|
||||
|
||||
// Solo buscamos si esta habilitado
|
||||
IF #s_EntradaDigital.Habilitar THEN
|
||||
|
||||
// Limite de valores
|
||||
IF #s_EntradaDigital.NumeroBit > 7 THEN
|
||||
#s_EntradaDigital.NumeroBit := 7;
|
||||
END_IF;
|
||||
IF #s_EntradaDigital.NumeroBit < 1 THEN
|
||||
#s_EntradaDigital.NumeroBit := 1;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en salida digital
|
||||
IF #t_N_MAX_ED > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_ED DO
|
||||
IF #s_EntradaDigital.NumeroByte = "DB2000_ED".ED[#for_i].Config_DirEntradaByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2000_ED".ED[#for_i].Config_DirEntradaBit
|
||||
THEN
|
||||
#s_EntradaDigital.Encontrada := TRUE;
|
||||
#s_EntradaDigital.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaDigital.Dispositivo, IN2 := #DISP_ED, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en valvula
|
||||
IF #t_N_MAX_V > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_V DO
|
||||
IF (#s_EntradaDigital.NumeroByte = "DB2010_V".V[#for_i].Config_DireccionRetReposoByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2010_V".V[#for_i].Config_DireccionRetReposoBit)
|
||||
OR
|
||||
(#s_EntradaDigital.NumeroByte = "DB2010_V".V[#for_i].Config_DireccionRetTrabajoByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2010_V".V[#for_i].Config_DireccionRetTrabajoBit)
|
||||
THEN
|
||||
#s_EntradaDigital.Encontrada := TRUE;
|
||||
#s_EntradaDigital.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaDigital.Dispositivo, IN2 := #DISP_V, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en motor
|
||||
IF #t_N_MAX_M > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_M DO
|
||||
IF (#s_EntradaDigital.NumeroByte = "DB2015_M".M[#for_i].Config_DireccionRetConfMarchaByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2015_M".M[#for_i].Config_DireccionRetConfMarchaBit)
|
||||
OR
|
||||
(#s_EntradaDigital.NumeroByte = "DB2015_M".M[#for_i].Config_DireccionRetTermicoByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2015_M".M[#for_i].Config_DireccionRetTermicoBit)
|
||||
THEN
|
||||
#s_EntradaDigital.Encontrada := TRUE;
|
||||
#s_EntradaDigital.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaDigital.Dispositivo, IN2 := #DISP_M, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en motor variador
|
||||
IF #t_N_MAX_M_VF > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_M_VF DO
|
||||
IF (#s_EntradaDigital.NumeroByte = "DB2016_M_VF".M_VF[#for_i].Config_DireccionRetConfMarchaByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2016_M_VF".M_VF[#for_i].Config_DireccionRetConfMarchaBit)
|
||||
OR
|
||||
(#s_EntradaDigital.NumeroByte = "DB2016_M_VF".M_VF[#for_i].Config_DireccionRetTermicoByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2016_M_VF".M_VF[#for_i].Config_DireccionRetTermicoBit)
|
||||
THEN
|
||||
#s_EntradaDigital.Encontrada := TRUE;
|
||||
#s_EntradaDigital.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaDigital.Dispositivo, IN2 := #DISP_M_VF, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en totalizador
|
||||
IF #t_N_MAX_TOT > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_TOT DO
|
||||
IF #s_EntradaDigital.NumeroByte = "DB2025_TOT".TOT[#for_i].Config_DireccionEntradaByte
|
||||
AND
|
||||
#s_EntradaDigital.NumeroBit = "DB2025_TOT".TOT[#for_i].Config_DireccionEntradaBit
|
||||
THEN
|
||||
#s_EntradaDigital.Encontrada := TRUE;
|
||||
#s_EntradaDigital.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaDigital.Dispositivo, IN2 := #DISP_TOT, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
END_REGION BUSQUEDA_ENTRADA_DIGITAL
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION BUSQUEDA_ENTRADA_ANALOGICA
|
||||
|
||||
// Reinicializacion de valores
|
||||
#s_EntradaAnalogica.Encontrada := FALSE;
|
||||
#s_EntradaAnalogica.Dispositivo := '';
|
||||
|
||||
// Solo buscamos si esta habilitado
|
||||
IF #s_EntradaAnalogica.Habilitar THEN
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en entrada analogica
|
||||
IF #t_N_MAX_EA > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_EA DO
|
||||
IF #s_EntradaAnalogica.NumeroByte = "DB2001_EA".EA[#for_i].Config_DireccionEntradaByte
|
||||
THEN
|
||||
#s_EntradaAnalogica.Encontrada := TRUE;
|
||||
#s_EntradaAnalogica.Dispositivo := CONCAT_STRING(IN1 := #s_EntradaAnalogica.Dispositivo, IN2 := #DISP_EA, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
END_REGION BUSQUEDA_ENTRADA_ANALOGICA
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION BUSQUEDA_SALIDA_DIGITAL
|
||||
|
||||
// Reinicializacion de valores
|
||||
#s_Salidadigital.Encontrada := FALSE;
|
||||
#s_Salidadigital.Dispositivo := '';
|
||||
|
||||
// Solo buscamos si esta habilitado
|
||||
IF #s_Salidadigital.Habilitar THEN
|
||||
|
||||
// Limite de valores
|
||||
IF #s_Salidadigital.NumeroBit > 7 THEN
|
||||
#s_Salidadigital.NumeroBit := 7;
|
||||
END_IF;
|
||||
IF #s_Salidadigital.NumeroBit < 1 THEN
|
||||
#s_Salidadigital.NumeroBit := 1;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en salida digital
|
||||
IF #t_N_MAX_SD > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_SD DO
|
||||
IF #s_Salidadigital.NumeroByte = "DB2005_SD".SD[#for_i].Config_DireccionSalidaByte
|
||||
AND
|
||||
#s_Salidadigital.NumeroBit = "DB2005_SD".SD[#for_i].Config_DireccionSalidaBit
|
||||
THEN
|
||||
#s_Salidadigital.Encontrada := TRUE;
|
||||
#s_Salidadigital.Dispositivo := CONCAT_STRING(IN1 := #s_Salidadigital.Dispositivo, IN2 := #DISP_SD, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en valvula
|
||||
IF #t_N_MAX_V > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_V DO
|
||||
IF #s_Salidadigital.NumeroByte = "DB2010_V".V[#for_i].Config_DireccionSalidaByte
|
||||
AND
|
||||
#s_Salidadigital.NumeroBit = "DB2010_V".V[#for_i].Config_DireccionSalidaBit
|
||||
THEN
|
||||
#s_Salidadigital.Encontrada := TRUE;
|
||||
#s_Salidadigital.Dispositivo := CONCAT_STRING(IN1 := #s_Salidadigital.Dispositivo, IN2 := #DISP_V, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en motor
|
||||
IF #t_N_MAX_M > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_M DO
|
||||
IF #s_Salidadigital.NumeroByte = "DB2015_M".M[#for_i].Config_DireccionSalidaByte
|
||||
AND
|
||||
#s_Salidadigital.NumeroBit = "DB2015_M".M[#for_i].Config_DireccionSalidaBit
|
||||
THEN
|
||||
#s_Salidadigital.Encontrada := TRUE;
|
||||
#s_Salidadigital.Dispositivo := CONCAT_STRING(IN1 := #s_Salidadigital.Dispositivo, IN2 := #DISP_M, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
// ================================================================================================
|
||||
// Busqueda en motor variador
|
||||
IF #t_N_MAX_M_VF > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_M_VF DO
|
||||
IF #s_Salidadigital.NumeroByte = "DB2016_M_VF".M_VF[#for_i].Config_DireccionSalidaByte
|
||||
AND
|
||||
#s_Salidadigital.NumeroBit = "DB2016_M_VF".M_VF[#for_i].Config_DireccionSalidaBit
|
||||
THEN
|
||||
#s_Salidadigital.Encontrada := TRUE;
|
||||
#s_Salidadigital.Dispositivo := CONCAT_STRING(IN1 := #s_Salidadigital.Dispositivo, IN2 := #DISP_M_VF, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
END_REGION BUSQUEDA_SALIDA_DIGITAL
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION BUSQUEDA_SALIDA_ANALOGICA
|
||||
|
||||
// Reinicializacion de valores
|
||||
#s_SalidaAnalogica.Encontrada := FALSE;
|
||||
#s_SalidaAnalogica.Dispositivo := '';
|
||||
|
||||
// Solo buscamos si esta habilitado
|
||||
IF #s_SalidaAnalogica.Habilitar THEN
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en salida analogica
|
||||
IF #t_N_MAX_SA > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_SA DO
|
||||
IF #s_SalidaAnalogica.NumeroByte = "DB2006_SA".SA[#for_i].Config_DireccionSalidaByte
|
||||
THEN
|
||||
#s_SalidaAnalogica.Encontrada := TRUE;
|
||||
#s_SalidaAnalogica.Dispositivo := CONCAT_STRING(IN1 := #s_SalidaAnalogica.Dispositivo, IN2 := #DISP_SA, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// ================================================================================================
|
||||
// Busqueda en motor variador
|
||||
IF #t_N_MAX_M_VF > 0 THEN
|
||||
FOR #for_i := 1 TO #t_N_MAX_M_VF DO
|
||||
IF #s_SalidaAnalogica.NumeroByte = "DB2016_M_VF".M_VF[#for_i].Config_DireccionSalidaAnalogicaByte
|
||||
THEN
|
||||
#s_SalidaAnalogica.Encontrada := TRUE;
|
||||
#s_SalidaAnalogica.Dispositivo := CONCAT_STRING(IN1 := #s_SalidaAnalogica.Dispositivo, IN2 := #DISP_M_VF, IN3 := "FC15001_ZC_INT_TO_STRING"(#for_i), IN4 := ';');
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
END_IF;
|
||||
|
||||
END_REGION BUSQUEDA_SALIDA_ANALOGICA
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION RESET_ORDENES
|
||||
|
||||
// Reset orden buscar
|
||||
#s_Buscar := FALSE;
|
||||
|
||||
END_REGION RESET_ORDENES
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
Reference in New Issue
Block a user