Establecer la conexión con un servidor NTP
Esta instrucción FP establece un servidor NTP de destino al que se puede enviar una solicitud de sincronización de tiempo.
Entrada
Dirección IP o nombre del host (parámetro requerido).
Dirección IP
Para una dirección IP, especificar la palabra clave IPv4
o IPv6
al principio.
Sintaxis para IPv4: por ejemplo, 'IPv4=111.122.133.144'
Sintaxis para IPv6: por ejemplo, 'IPv6=1111:122:2:1555:0:0:1888'
Nombre del host
Palabra clave: HOST
Sintaxis: p. ej., 'HOST=ntp.pidsx.com'
Salida
Ajustar a TRUE cuando la operación termine anormalmente sin ejecución, p. ej., sys_bIsEthernetInitializing es TRUE
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
Esta instrucción no está disponible en los programas de interrupción.
La dirección del servidor NTP se configura en la CPU (ET-LAN integrada) de acuerdo con sNTPServer.
Los datos que ya están configurados en los registros del sistema (sincronización de tiempo ) no son válidos y la solicitud de sincronización de tiempo NTP se ejecuta a la hora especificada por esta instrucción.
El PLC vuelve a la configuración de los registros del sistema en los siguientes casos:
La alimentación se desconecta.
Se pasa de Modo PROG a Modo RUN.
Se pasa a otro proyecto.
Los datos de ajuste no se perderán aunque se ejecute la instrucción FP_IPV4_SET_ADDRESS.
Antes de ejecutar la instrucción, asegurarse de que sys_bIsEthernetInitializing es FALSE. sys_bIsEthernetInitializing pasa a TRUE cuando se ejecuta la instrucción. Cuando ejecuta la instrucción mientras sys_bIsEthernetInitializing es TRUE, se produce un error.
Cuando esta instrucción se ha ejecutado con éxito, las variables del sistema sys_bIsCarry y sys_iEthernetConnectionErrorCode se reinician.
Si la instrucción no se ha ejecutado correctamente, comprobar el código de resultado de la ejecución en la salida nResult de la instrucción FP_NTP_SYNCHRONIZE.
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
Si el valor especificado para un parámetro está fuera del rango permitido.
si la instrucción se ejecuta en un programa de interrupción
Si el sistema sincroniza la hora con el servidor NTP.
Si el valor especificado para un parámetro está fuera del rango permitido.
si la instrucción se ejecuta en un programa de interrupción
Si el sistema sincroniza la hora con el servidor NTP.
si la instrucción se ejecuta durante la inicialización de Ethernet, sys_iEthernetConnectionErrorCode pasa a "11: Ethernet se está inicializando".
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
sNTPServer: STRING[32]:='IPv4=192.168.2.1';
bIsError: BOOL:=FALSE;
bEnable: BOOL:=FALSE;
END_VAR
Cuando la variable del sistema sys_bIsEthernetInitializing está a FALSE y la variable bEnable pasa a TRUE, se ejecuta la función.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,sys_bIsEthernetInitializing,6,1,8,3,N);
B(B_CONTACT,,bEnable,14,1,16,3,);
B(B_F,FP_NTP_SET_SERVER!,,22,0,33,4,,?DEN?DsNTPServer?AENO?AbError);
B(B_VARIN,,sNTPServer,20,2,22,4,);
B(B_VAROUT,,bIsError,33,2,35,4,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,14,2);
L(16,2,22,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
FP_NTP_SET_SERVER(sNTPServer := sNTPServer,
bError => bIsError);
end_if;