El tiempo de ejecución de seguridad muestra los errores de temporización en el archivo de registro.
Preparativos:
Estás dirigiendo un CODESYS Safe Control SL o CODESYS Virtual Safe Control SL combinado con el CODESYS Safe Time Provider.
Solución de problemas
Si encuentra problemas notificados por el CODESYS Safe Control El entorno de ejecución de SL y mencione los problemas de tiempo (desde CmpSIL3
componente), entonces es posible que tenga problemas de temporización en la red Safe Time y que deba investigar.
#### Exception: ID: 0x40000066 <p0>0xb633</p0> <p1>0xbcdd</p1> <p2>0xbce1</p2> <p3>0xb2fd</p3> <p4>0x0</p4>
0x40000065
: Canal de excepción x: comprobación de la verosimilitud de la marca de tiempo local para la duración del ciclo0x40000066
: Canal de excepción x: comprobación de la verosimilitud de la marca de tiempo remota con respecto a la duración del ciclo0x40000067
: Canal de excepción x: comprobación de la verosimilitud de la marca de tiempo remota con la marca de tiempo local
Aviso
La red de tiempo seguro (entre CODESYS Safe Time Provider y el CODESYS Safe Control entorno de ejecución) tiene los mismos requisitos de estabilidad y tiempo real que una red de bus de campo (por ejemplo, EtherCAT o Profinet).
Rastreando con tcpdump
Puede crear fácilmente un seguimiento en la línea de comandos de Linux mediante el tcpdump
herramienta. Si ya está familiarizado con Wireshark o con un dispositivo de rastreo de hardware, también puede usarlo para crear un
Determine el adaptador de red que desea rastrear.
Descubra lo que quiere rastrear (contenido, tipo de paquete, registro, etc.) para reducir el rastreo.
Comandos útiles
Instalar tcpdump
(en función de su distribución/administración de paquetes de software)
Por ejemplo, basado en Debian/Ubuntu «apt»:
sudo apt install tcpdump
Basado en «Yum/DNF» de Red Hat:
sudo yum install tcpdump
Puede ver todos los adaptadores de red disponibles que tcpdump
puede supervisar:
> tcpdump -D 1.eno1 [Up, Running, Connected] 2.any (Pseudo-device that captures on all interfaces) [Up, Running] 3.lo [Up, Running, Loopback]
Aviso
Es posible ejecutar tcpdump
como usuario normal. Si quieres hacer esto, lee el tcpdump
documentación para obtener más detalles.
argumentos de línea de comandos de tcpdump
Detalles sobre todos los comandos posibles con tcpdump
se puede encontrar en el tcpdump
página principal: https://www.tcpdump.org/manpages/tcpdump.1.html
O llama tcpdump
:
> tcpdump --help tcpdump version 4.99.3 libpcap version 1.10.3 (with TPACKET_V3) OpenSSL 3.0.15 3 Sep 2024 Usage: tcpdump [-AbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ --immediate-mode ] [ -j tstamptype ] [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ --time-stamp-precision precision ] [ --micro ] [ --nano ] [ -z postrotate-command ] [ -Z user ] [ expression ]
Bandera (corta/larga) | Descripción |
---|---|
| Devuelve la lista de interfaces de red que están disponibles en el sistema y donde |
| Consulta la interfaz y devuelve la siguiente información:
|
| Finaliza la consulta tras recibir o leer un número de paquetes |
| Impide la conversión de direcciones (direcciones de host, números de puerto, etc.) en nombres |
| Genera cada paquete (menos su encabezado a nivel de enlace) en ASCII |
| Al analizar, además de los encabezados de cada paquete, imprime los datos de cada paquete (menos los encabezados a nivel de enlace) en hexadecimal |
| Utiliza |
| Escribe los paquetes de datos sin procesar en un archivo en lugar de analizarlos e imprimirlos |
| Impide la salida de una marca de tiempo en cada línea de descarga |
| Devuelve la marca de tiempo, en segundos transcurridos desde el 1 de enero de 1970, a las 00:00:00, hora peninsular española, y en fracciones de segundo desde esa hora, en cada línea de descarga |
| Imprime una resolución delta (microsegundos o nanosegundos), según |
| Imprime una marca de tiempo, en forma de horas, minutos, segundos y fracciones de segundo desde medianoche, en cada línea de descarga. La salida va precedida |
| Genera información adicional (detallada) |
Rastreando el paquete
Captura y salida sencillas en la consola:
> sudo tcpdump -i <interfacename> # e.g. with interface "eno1": > sudo tcpdump -i eno1
Captura y genera como archivo compatible con WireShark
> sudo tcpdump -i <interfacename> -w <file> # e.g. > sudo tcpdump -i eno1 -w myfirsttrace.pcap
A continuación, el archivo myfirsttrace.pcap
se puede abrir en Wireshark. (.pcap
es la extensión de archivo predeterminada para los archivos de rastreo de Wireshark.)
> sudo tcpdump -i eno1 -w myfirsttrace.cap -s 200 udp port 60000
Investigación/Análisis
Registre el rastreo en el host de Safe Control SL (lado receptor de la comunicación con el proveedor de tiempo), como se muestra en el ejemplo anterior.
A continuación, abra el archivo*.pcap con Wireshark. Tendrá un aspecto similar al siguiente
Notarás que los paquetes normalmente se envían con un intervalo de 1 milisegundo (la diferencia de tiempo entre los paquetes). (Consulte el paquete número 58 y siguientes).
Una situación problemática típica en la que CODESYS Safe Control SL emitirá una excepción o problema debido a la temporización, como puede verse en el paquete número 74: este paquete se recibe aproximadamente 2 ms después que el paquete anterior, por lo que el retraso es de aproximadamente 1 ms. Esto no es aceptable CODESYS Safe Control SL como marca de tiempo fiable y compatible con tiempo real.
. Acciones para reducir el retrasoAverigua si el problema es visible en el lado receptor o emisor. Debes tener en cuenta tanto el lado receptor (CODESYS Safe Control Anfitrión) y el lado emisor (CODESYS Safe Time Provider Anfitrión).
Mejore las capacidades en tiempo real y la solidez de esta comunicación con marca de tiempo en general. Para ello, elimine de esta red cualquier otra carga y comunicación que interfiera (utilícela exclusivamente para
Mejore el rendimiento de envío y recepción configurando la prioridad del proceso de la IRQ correspondiente (del controlador de red).
Si no puede seguir mejorando y su proceso de seguridad lo permite, puede aumentar la duración del ciclo del CODESYS Safe Time Provider (enviando la marca de tiempo).