WR_SYS_T Cambiar reloj interno de S7-1200 desde PLC
El siguiente ejemplo muestra como cambiar el valor del reloj interno (Fecha y Hora) del PLC S7-1200 de Siemens desde el propio programa del PLC utilizando la instrucción WRST_DTL_SFC
El tipo de datos utilizados para trabajar con fechas y horas el el Formato DTL que tienes la siguiente estructura de datos:
En este ejemplo vamos a trabajar con las siguiente instrucciones:
RD_SYS_T (Leer hora del sistema) lee la hora del sistema actual del PLC
WR_SYS_T (Escribir hora del sistema) ajusta la hora del reloj del PLC a un valor DTL
Lo primero es crearnos 2 Bloques de Datos DB a los que llamaremos
DB1 "Fecha_Hora_Actual" Aquí es donde guardaremos el valor del reloj interno del PLC cuando ejecutemos la instrucción de lectura RD_SYS_T
DB2 "Fecha_Hora_Nueva" Aquí es donde la instrucción de escritura WR_SYS_T tomará el nuevo valor del reloj
Ambas DB tendrán el formato de fecha y hora DTL, una estructura de datos donde tenemos: Año, mes, Día, Día de la semana, Hora, Minuto, Segundo y Milisegundo
WR_SYS_T (Escribir hora del sistema)
Para escribir una nueva fecha y hora en el reloj del S7-1200 utilizamos la instrucción WR_SYS_T
Esta instrucción cuenta con los siguiente parámetros:
In: Es la variable tipo DTL donde estará la nueva fecha y hora que se escribirá al PLC, aquí le indicaremos la DB2 "Fecha_Hora_Nueva"
Ret-Val: Es la variable donde se retornará el estado de la ejecución de la instrucción, si hubiera un error al ejecutarla aparecería aquí
Desde la tabla de observación podemos escribir los valores en la DB2 "Fecha_Hora_Nueva" que serán los datos que se escribirán en el reloj del PLC al ejecutar la instrucción WR_SYS_T
Estos datos también se podrian introducir desde una pantalla HMI
En el momento que activemos el Bit %M0.1 "Bit_Escribir_Reloj" el reloj del PLC tomará los datos del DB2 "Fecha_Hora_Nueva"
RD_SYS_T (Leer hora del sistema)
Para leer la fecha y hora del reloj del S7-1200 utilizamos la instrucción RD_SYS_T
Esta instrucción cuenta con los siguiente parámetros:
Out: Es la variable tipo DTL donde se escribirá la fecha y hora actual del PLCl PLC, aquí le indicaremos la DB1 "Fecha_Hora_Actual"
Ret-Val: Es la variable donde se retornará el estado de la ejecución de la instrucción, si hubiera un error al ejecutarla aparecería aquí
En el momento que activemos el Bit %M0.0 "Bit_Leer_Reloj" el valor actual del reloj del PLC se escribirá en el DB1 "Fecha_Hora_Actual"
Tanto en la instrucción RD_SYS_T y WR_SYS_T tienen el parámetro Ret-Val que nos marca los errores al ejecutar la instrucción