Primera version
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
FUNCTION "FC15000_ZC_INT_TO_TIME" : Time
|
||||
TITLE = FC15000_ZC_INT_TO_TIME
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : HCR
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
//Funcion para conversion INT a TIME
|
||||
VAR_INPUT
|
||||
Valor : Int; // Valor INT
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
BASE_TIEMPO : Int := 1000; // Base de tiempo para conversion
|
||||
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 encargada de convertir tipo de dato INT a TIME.
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | - |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 10.05.2023 | (HCR) | Primera version. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION CALCULO
|
||||
|
||||
#FC15000_ZC_INT_TO_TIME := DINT_TO_TIME(IN := INT_TO_DINT(IN := #Valor)) * #BASE_TIEMPO;
|
||||
|
||||
END_REGION CALCULO
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
FUNCTION "FC15001_ZC_INT_TO_STRING" : String
|
||||
TITLE = FC15001_ZC_INT_TO_STRING
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
//Funcion para convertir INT a STRING
|
||||
VAR_INPUT
|
||||
Valor : Int; // Valor INT
|
||||
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 encargada de convertir tipo de dato INT a STRING.
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | - |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 15.03.2023 | (ABH) | Primera version. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION CALCULO
|
||||
|
||||
#FC15001_ZC_INT_TO_STRING := DELETE(IN := INT_TO_STRING(#Valor), L := 1, P := 1);
|
||||
|
||||
END_REGION CALCULO
|
||||
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
FUNCTION "FC15003_ZC_REAL_TO_STRING" : String
|
||||
TITLE = FC15003_ZC_REAL_TO_STRING
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : HCR
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.1
|
||||
//Funcion para convertir REAL a TRING
|
||||
VAR_INPUT
|
||||
Valor : Real; // Valor REAL
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
t_String : String;
|
||||
t_Posición : Int;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION DESCRIPCION
|
||||
(*
|
||||
###### (C)Copyright ZeusControl 2022 - 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 encargada de convertir tipo de dato REAL a STRING.
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | - |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 15.10.2022 | (HCR) | Primera version. |
|
||||
| 01.00.00 | 25.07.2023 | (ABH) | Cambio FC de Void a Funcion. Cambio en nombre de variables para estandarizacion. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION CALCULO
|
||||
|
||||
// Conversion de real a string
|
||||
VAL_STRG(IN := #Valor,
|
||||
SIZE := 10,
|
||||
PREC := 1,
|
||||
FORMAT := 16#0004,
|
||||
P := 16,
|
||||
OUT => #t_String);
|
||||
|
||||
// Se añade signo en base a valor
|
||||
IF #Valor >= 0.0 THEN
|
||||
#t_Posición := FIND(IN1 := #t_String, IN2 := '+');
|
||||
END_IF;
|
||||
|
||||
IF #Valor < 0.0 THEN
|
||||
#t_Posición := FIND(IN1 := #t_String, IN2 := '-');
|
||||
END_IF;
|
||||
|
||||
// Borrado de caracteres antes del signo
|
||||
#FC15003_ZC_REAL_TO_STRING := DELETE(IN := #t_String, L := #t_Posición - 1, P := 1);
|
||||
|
||||
END_REGION CALCULO
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
FUNCTION "FC15005_ZC_DTL_TO_ZC_FECHA" : "UDT_ZC_FECHA"
|
||||
TITLE = FC15005_ZC_DTL_TO_ZC_FECHA
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.0
|
||||
//Funcion para convertir tipo de datos DTL a tipo de datos ZC_FECHA
|
||||
VAR_INPUT
|
||||
FechaDTL {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL; // Fecha DTL a convertir
|
||||
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 traspaso de datos en DTL a tipo de dato ZC_FECHA
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | - |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 03.11.2022 | (ABH) | Primera version. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION CALCULO
|
||||
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Ano := #FechaDTL.YEAR;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Mes := #FechaDTL.MONTH;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Dia := #FechaDTL.DAY;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Hora := #FechaDTL.HOUR;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Minuto := #FechaDTL.MINUTE;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.Segundo := #FechaDTL.SECOND;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.NanoSegundo := #FechaDTL.NANOSECOND;
|
||||
#FC15005_ZC_DTL_TO_ZC_FECHA.DiaSemana := #FechaDTL.WEEKDAY;
|
||||
|
||||
END_REGION CALCULO
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
FUNCTION "FC15006_ZC_DTL_TO_STRING" : String
|
||||
TITLE = FC15006_ZC_DTL_TO_STRING
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
AUTHOR : ABH
|
||||
FAMILY : ZeusControl
|
||||
VERSION : 1.1
|
||||
//Funcion para convertir DTL a STRING
|
||||
VAR_INPUT
|
||||
FechaDTL {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL;
|
||||
Formato : USInt; // 0= Fecha y hora / 1= Fecha / 2= hORA
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
t_Ano : String[5];
|
||||
t_Mes : String[3];
|
||||
t_Dia : String[3];
|
||||
t_Hora : String[3];
|
||||
t_Minuto : String[3];
|
||||
t_Segundo : String[3];
|
||||
t_Nanosegundo : String[50];
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION DESCRIPCION
|
||||
(*
|
||||
###### (C)Copyright ZeusControl 2019 - 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 encargada de convertir tipo de dato DTL a String
|
||||
|
||||
---
|
||||
### Dependencias Requeridas
|
||||
| Tipo | Elementos |
|
||||
|------|-----------|
|
||||
| FC | - |
|
||||
| FB | - |
|
||||
| DB | - |
|
||||
| UDT | - |
|
||||
|
||||
---
|
||||
### Historial de Cambios
|
||||
| Versión | Fecha | Técnico | Cambios |
|
||||
|----------|------------|---------|---------|
|
||||
| 01.00.00 | 10.09.2019 | (ABH) | Primera version. |
|
||||
| 01.00.00 | 25.07.2023 | (ABH) | Se eliminan las variables temporales STRING, para concatenar directamente en el return de la funcion el texto deseado. |
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION CALCULO
|
||||
|
||||
REGION GESTION_STRING
|
||||
|
||||
// Genero un String por cada elemento
|
||||
#t_Ano := UINT_TO_STRING(#FechaDTL.YEAR);
|
||||
#t_Mes := USINT_TO_STRING(#FechaDTL.MONTH);
|
||||
#t_Dia := USINT_TO_STRING(#FechaDTL.DAY);
|
||||
#t_Hora := USINT_TO_STRING(#FechaDTL.HOUR);
|
||||
#t_Minuto := USINT_TO_STRING(#FechaDTL.MINUTE);
|
||||
#t_Segundo := USINT_TO_STRING(#FechaDTL.SECOND);
|
||||
#t_Nanosegundo := UDINT_TO_STRING(#FechaDTL.NANOSECOND);
|
||||
|
||||
// TRATAMIENTO DE LA FECHA
|
||||
// Año
|
||||
#t_Ano := DELETE(IN := #t_Ano, L := 1, P := 1);// Le borro el signo
|
||||
|
||||
// Mes
|
||||
IF #FechaDTL.MONTH < 10 THEN
|
||||
#t_Mes := DELETE(IN := #t_Mes, L := 1, P := 1);// Le borro el signo
|
||||
#t_Mes := CONCAT(IN1 := '0', IN2 := #t_Mes);// Le añado un cero
|
||||
ELSE
|
||||
#t_Mes := DELETE(IN := #t_Mes, L := 1, P := 1);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
// Dia
|
||||
IF #FechaDTL.DAY < 10 THEN
|
||||
#t_Dia := DELETE(IN := #t_Dia, L := 1, P := 1);// Le borro el signo
|
||||
#t_Dia := CONCAT(IN1 := '0', IN2 := #t_Dia);// Le añado un cero
|
||||
ELSE
|
||||
#t_Dia := DELETE(IN := #t_Dia, L := 1, P := 1);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
// TRATAMIENTO DE LA HORA
|
||||
// Horas
|
||||
IF #FechaDTL.HOUR < 10 THEN
|
||||
#t_Hora := DELETE(IN := #t_Hora, L := 1, P := 1);// Le borro el signo
|
||||
#t_Hora := CONCAT(IN1 := '0', IN2 := #t_Hora);// Le añado un cero
|
||||
ELSE
|
||||
#t_Hora := DELETE(IN := #t_Hora, L := 1, P := 1);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
// Minutos
|
||||
IF #FechaDTL.MINUTE < 10 THEN
|
||||
#t_Minuto := DELETE(IN := #t_Minuto, L := 1, P := 1);// Le borro el signo
|
||||
#t_Minuto := CONCAT(IN1 := '0', IN2 := #t_Minuto);// Le añado un cero
|
||||
ELSE
|
||||
#t_Minuto := DELETE(IN := #t_Minuto, L := 1, P := 1);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
// Segundos
|
||||
IF #FechaDTL.SECOND < 10 THEN
|
||||
#t_Segundo := DELETE(IN := #t_Segundo, L := 1, P := 1);// Le borro el signo
|
||||
#t_Segundo := CONCAT(IN1 := '0', IN2 := #t_Segundo);// Le añado un cero
|
||||
ELSE
|
||||
#t_Segundo := DELETE(IN := #t_Segundo, L := 1, P := 1);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
// Nanosegundos
|
||||
IF #FechaDTL.NANOSECOND < 10 THEN
|
||||
#t_Nanosegundo := DELETE(IN := #t_Nanosegundo, L := 1, P := 1);// Le borro el signo
|
||||
#t_Nanosegundo := LEFT(IN := CONCAT(IN1 := '0', IN2 := #t_Nanosegundo), L := 5);// Le añado un cero
|
||||
ELSE
|
||||
#t_Nanosegundo := LEFT(IN := DELETE(IN := #t_Nanosegundo, L := 1, P := 1), L := 5);// Le borro el signo
|
||||
END_IF;
|
||||
|
||||
END_REGION GESTION_STRING
|
||||
|
||||
|
||||
REGION SALIDAS
|
||||
|
||||
CASE #Formato OF
|
||||
0: // Fecha y hora
|
||||
#FC15006_ZC_DTL_TO_STRING := CONCAT(IN1 := #t_Dia,
|
||||
IN2 := '/',
|
||||
IN3 := #t_Mes,
|
||||
IN4 := '/',
|
||||
IN5 := #t_Ano,
|
||||
IN6 := ' ',
|
||||
IN7 := #t_Hora,
|
||||
IN8 := ':',
|
||||
IN9 := #t_Minuto,
|
||||
IN10 := ':',
|
||||
IN11 := #t_Segundo);
|
||||
1: // Fecha
|
||||
#FC15006_ZC_DTL_TO_STRING := CONCAT(IN1 := #t_Dia,
|
||||
IN2 := '/',
|
||||
IN3 := #t_Mes,
|
||||
IN4 := '/',
|
||||
IN5 := #t_Ano);
|
||||
2: // Hora
|
||||
#FC15006_ZC_DTL_TO_STRING := CONCAT(IN1 := #t_Hora,
|
||||
IN2 := ':',
|
||||
IN3 := #t_Minuto,
|
||||
IN4 := ':',
|
||||
IN5 := #t_Segundo);
|
||||
3: // Fecha y hora (nanosegundo)
|
||||
#FC15006_ZC_DTL_TO_STRING := CONCAT(IN1 := #t_Ano,
|
||||
IN2 := #t_Mes,
|
||||
IN3 := #t_Dia,
|
||||
IN4 := #t_Hora,
|
||||
IN5 := #t_Minuto,
|
||||
IN6 := #t_Segundo,
|
||||
IN7 := #t_Nanosegundo);
|
||||
ELSE
|
||||
#FC15006_ZC_DTL_TO_STRING := CONCAT(IN1 := #t_Dia,
|
||||
IN2 := '/',
|
||||
IN3 := #t_Mes,
|
||||
IN4 := '/',
|
||||
IN5 := #t_Ano,
|
||||
IN6 := ' ',
|
||||
IN7 := #t_Hora,
|
||||
IN8 := ':',
|
||||
IN9 := #t_Minuto,
|
||||
IN10 := ':',
|
||||
IN11 := #t_Segundo);
|
||||
END_CASE;
|
||||
|
||||
END_REGION SALIDAS
|
||||
|
||||
END_REGION CALCULO
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user