Echando un poco de luz sobre el uso de fibra óptica en PROFIBUS

Traducción autorizada del Tech Tip publicado en Profinews 161, 10 de enero de 2018.

Texto original por Mirko Torrez Contreras, con colaboración de Peter Thomas y Michael Bowne

Siempre usamos los valores por defecto…

Al analizar algunos problemas de comunicación en las redes PROFIBUS DP de un cliente, me di cuenta de que los valores de los parámetros de bus, usados en la configuración del maestro DP del controlador, eran los valores predeterminados de fábrica para la velocidad de transferencia de 1,5 Mbps. Estos valores son usados en la mayoría de las aplicaciones sin problemas, aun cuando se especificaron hace bastante tiempo.

Pero estos valores están pensados para ser utilizados en instalaciones PROFIBUS DP equipadas con cable de cobre estándar, mientras que en la actualidad la mayoría de las aplicaciones PROFIBUS DP se basan en un anillo redundante de fibra óptica, el cual es posible mediante el uso de los módulos denominados Fiber Optic Link (FOL o links de fibra óptica).

El problema de fondo…

Como seguramente están al tanto, la capa física nativa de PROFIBUS DP está basada en el estándar RS485 y utiliza la codificación NRZ. Tanto el método de tensión diferencial como el cable blindado trenzado de 2 hilos se utilizan para minimizar los problemas de EMC. La recomendación tradicional de PI para la conexión a tierra de redes de cobre DP consiste en usar una conexión a tierra dura en ambos extremos del blindaje del cable para lograr una protección óptima contra problemas de EMC, este requisito también implica la necesidad de una conexión a tierra equipotencial.

Esto generalmente no es un problema para los segmentos de red de baja velocidad (> 1,5 Mbps), pero se vuelve cada vez más difícil para los de mayor velocidad.

En el pasado, era habitual encontrar problemas de lazos de corriente en tendidos de cable PROFIBUS DP muy largos. Conforme mayor es la distancia de cableado, más difícil es lograr una conexión a tierra equipotencial.

Te liberaste de esos molestos bucles de corriente de tierra, pero …

Esta situación cambió drásticamente cuando la tecnología FOLs estuvo disponible. Los FOL no solo permiten el uso de una red troncal de comunicaciones redundante que extiende las distancias posibles a varios kilómetros, sino que también permiten eliminar los requisitos de conexión a tierra equipotencial.

Como un FOL está construido básicamente sobre un optoacoplador, funciona como un aislador galvánico. Por lo tanto, esta arquitectura permite la creación de una red troncal de fibra óptica aislada galvánicamente que puede cubrir toda la planta. Luego se puede usar cobre solo en los puntos donde se encuentran los dispositivos. Los tendidos de cable de cobre más cortos son mucho más fáciles de conectar a tierra correctamente y el riesgo de lazos de corriente debidos a una conexión a tierra no equipotencial se ve enormemente disminuido.

Pero hay una trampa: aunque para PROFIBUS DP cualquier tipo de conversión de medios físicos es transparente (fibra óptica o enlaces de radio), cada conversión de medios requiere algún procesamiento de señales y recodificación. Y estos procesos requieren un tiempo para completarse.

Les presento al magnífico, pero generalmente poco comprendido, mundo de los parámetros del bus PROFIBUS DP.

 Tsl, Ttd, tbit, Tsm, Tsdr, Tid…eeehhhhh?

Estos parámetros también se conocen como timings y consisten en una colección de valores que permiten las comunicaciones cíclicas y acíclicas en tiempo real definidas por el estándar PROFIBUS. Se expresan en una unidad llamada bit time, que es el tiempo requerido para transmitir un bit a una velocidad en baudios específica (1 tbit = 1/baud rate).

Uno de los valores de tiempo más críticos es el conocido como Slot Time (Tsl). Hay varias definiciones del significado de este parámetro, pero con ell fin de mantener la coherencia, tomaré la definición de la especificación PROFIBUS oficial:

«Slot Time (Tsl) es el tiempo máximo que el iniciador espera para la recepción completa del primer carácter del frame (siendo el primer carácter de 11 bits de duración) de acuse de recibo inmediato (acknowledge frame), después de transmitir el último bit de un action frame.

Además, Tsl es el tiempo máximo que el iniciador espera para el primer carácter del frame del receptor de tokens después de transmitir un token frame. «

Hagamos las cuentas…

Teóricamente, se distinguen dos tiempos de slot, correspondientes a los dos tipos de comunicación posibles en PROFIBUS.

La comunicación entre Maestros emplea el token frame y la comunicación con los esclavos se realiza mediante los action frame.

Antes de seguir, definamos algunas variables:

Max Tsdr: retraso máximo de respuesta, se define en el archivo GSD para el esclavo y depende de la velocidad de bits. La práctica habitual es considerar el valor máximo de las estaciones participantes. Eso significa que el dispositivo con el Max Tsdr más grande define el valor.

Ttd: retraso de transmisión, es la demora máxima entre dos estaciones que se comunican y se debe al tiempo que pasa la señal para viajar a través del medio físico. Depende de la longitud del cable y el número de repetidores / FOLs / conversores de medios utilizados.

Tsm: valor del margen de seguridad. Está definido por el estándar como:

Tsm = 2 + 2 Tset + Tqui

En ests ecuación aparecen dos variables:

Tset: Tiempo de configuración, el cual es el tiempo requerido para que el ASIC PROFIBUS pase del modo de recepción al modo de transmisión. El valor habitual es de 6 tbits y depende del hardware.

Tqui: Tiempo de silencio, es el tiempo que una estación debe esperar después del final de una transmisión antes de habilitar su receptor. El valor habitual es de 3 tbits y tambien depende del hardware.

Por lo tanto, después de un action frame (solicitud o envío / solicitud), el tiempo de slot se calcula de la siguiente manera:

Tsl1 = 2. Ttd + maxTsdr + 11 tbit + Tsm

Bien, pero que significa esto en la vida real?

Antes de ponernos a calcular el tiempo de slot posterior a un token frame, debemos definir algunas variables adicionales.

Min Tsdr: demora mínima de respuesta, el tiempo que una estación esclava debe esperar después del final de una solicitud antes de enviar una respuesta. Este valor lo establece el controlador y generalmente es de 11 tbit.

Tsyn: este valor (llamado Tiempo de Sincronización) es el tiempo mínimo que el medio de transmisión debe estar inactivo antes de que una estación pueda recibir un telegrama. Este valor está definido por el estándar en 33 tbits.

Tsdi: retraso del iniciador, se define como el tiempo que una estación maestra debe esperar después del final de una respuesta anterior y antes de enviar una solicitud. Depende de la velocidad de transferenecia de datos empleada.

Tid1 (Tiempo de inactividad) se define de la siguiente manera: tiempo que expira en el iniciador después de la recepción del último bit de un frame hasta que se transmite el primer bit de un nuevo frame en el medio físico. También es el tiempo que expira después de que se ha transmitido el último bit de un frame no reconocido y que transmite el primer bit de un nuevo frame.

Es decir, Tid1 es básicamente el tiempo que existe entre frames, ya ssea recibidos o enviados por el Maestro.

Entonces, es un asunto de tiempos…

Hay dos valores posibles de Tid:

Tid1: este valor corresponde al tiempo entre el final de la recepción de un datagrama y la transmisión de un nuevo datagrama.

Tid1 = max (Tsyn + Tsm, Min Tsdr, Tsdi)

Tid2: este valor corresponde al tiempo entre el final de la transmisión de un datagrama que no necesita ser reconocido y la transmisión de un nuevo datagrama.

Tid2 = max (Tsyn + Tsm, Max Tsdr)

Nuevamente, el valor que se debe tomar es el más largo:

Tid = max (Tid1, Tid2)

Después de un token frame, el tiempo de slot se calcula de la siguiente manera:

Tsl2 = 2. Ttd + maxTid1 + 11 tbit + Tsm

Para simplificar, el valor más alto de estos dos es el utilizado en el sistema:

Tsl = max (Tsl1, Tsl2)

Para la monitorización del Tsl se usa un temporizador de slot implementado en la estación maestra. Este temporizador supervisa, después de un envío/solicitud de datos o un pase de token, si la estación receptora responde o se activa dentro del tiempo predefinido Tsl.

Después de la transmisión del último bit de un cuadro, este temporizador se carga con el valor Tsl y disminuye cada bit time tan pronto se activa el receptor.

Si el temporizador expira antes de que se reciba el primer bit de un cuadro, se ha producido un error. Luego se inicia un reintento o un nuevo ciclo de mensaje. Dependiendo del valor del parámetro retry time, se realizarán nuevos intentos. Después del límite de reintento, la estación afectada se desconecta del intercambio de datos hasta que el maestro pueda volver a este modo.

Para comprender completamente estos mecanismos, intentemos con un esquema gráfico del proceso:

 

El proceso comienza después de que ha pasado Tid1.

Un ejemplo, por favor…

Los valores típicos son:

Ttd1 = 0.557ns / m para cable de cobre = 0,8355 tbit / Km = 0,1671 tbit / 200m

Ttd2 = 1,5 tbit por repetidor o FOL = 1,5 x nFOLs

Ttd3 = 7,5 tbit por km de FO.

Entonces, para una velocidad en baudios de 1,5 Mbps con 200 de cable (sin FO ni FOL), Tsl es igual a:

Tsl1 = 2. Ttd + maxTsdr + 11 tbit + Tsm

Tsm = 2 + 2 Tset + Tqui = 2 + 2 * 6 + 3 = 17 tbit

Ttd1 = 0,1671 tbit

Max Tsdr = 150 tbit (@ 1,5 Mbps)

Por lo tanto:

Tsl1 = 2 * 0,1671 + 150 + 11 + 17 = 178,332 tbit

El valor recomendado de PI para Tsl @ 1,5 Mbps es 300 tbit.

Pero si además tuviéramos un anillo FO de 4 km con 4 FOLs:

Tsl1 = 2. (Ttd1 + Tsd2 + Tsd3) + maxTsdr + 11 tbit + Tsm

Tsl1 = 2 * (0,1671 + 1,5 * 4 + 7,5 * 4) + 150 + 11 + 17 = 227,8342 tbit

Siguiendo estos cálculos, parece que los parámetros de bus estándar recomendados por PI son adecuados.

Pero hay otra trampa.

Siempre hay una trampa…..

Cada estación tiene un margen de Tsl para transmitir el primer byte en cada ciclo de mensaje. Pero en cada ciclo de mensaje, la FO y los FOL retrasan la transmisión algunos tbits. El temporizador de slot verifica y ajusta las temporizaciones continuamente, pero como cada FOL de cada proveedor tiene diferentes componentes electrónicos, los ajustes de Ttd y, por lo tanto, el valor de Tsl correspondiente se calculan de forma diferente para cada modelo de FOL.

De hecho, cada estación tiene su propia Ttd, ya que cada una está separada del maestro a través de diferentes longitudes de cable de cobre, longitudes de FO, repetidores y FOLs.

Además, cada estación tiene su propio valor Tsdr, lo que significa que el Tsl debe ser lo suficientemente grande como para acomodar incluso el dispositivo más lento en la red, siendo este el que tiene el mayor valor de Tsdr.

Por lo tanto, resulta muy complicado calcular el valor exacto de Ttd. Por lo que se termina usando un valor empírico. En cuanto al Tsl, también es un valor empírico, ya que se deriva de Ttd.

Un valor Tsl inadecuado, especialmente uno demasiado pequeño, puede crear estragos en el proceso de intercambio de datos.

Como ejemplo, al usar FOLs de Phoenix Contact en una configuración de anillo redundante de FO de 4 km (digamos 4 OLM) a 1,5 Mbps, el valor Tsl recomendado por el fabricante es 647. Eso es más del doble del valor PI estándar.

 Y otra trampa adicional….

Algunas herramientas de software de ingeniería utilizadas para la configuración de hardware ofrecen la posibilidad de definir la presencia de repetidores o incluso FOLs y FO y emplean esa información para realizar los ajustes correspondientes en los parámetros del bus, pero la mayoría no lo hace. Incluso en los que tienen esta función, por lo general, están optimizados para su uso conn los FOL del fabricante del sistema de control, por lo que es mejor usar la configuración recomendada por el fabricante de los FOL que está usando en realidad.

Si el software de configuración que está utilizando no ofrece esta característica, deberá realizar los ajustes usted mismo.

Finalmente, siempre recuerde que debe leerse el maldito manual…

En conclusión, si usa un FOL PROFIBUS DP, y especialmente si se usan en combinación con una topología de anillo de FO, lo mejor es consultar el manual de su FOL y ajustar los parámetros del bus.

De lo contrario, puede terminar utilizando los valores predeterminados, que son demasiado pequeños para usarlos con los valores Ttd requeridos por el uso de FO y FOL. Si no se tiene esto en cuenta, los dispositivos sufrirán problemas de comunicaciones al azar en el modo de intercambio de datos cíclico, provocandonos cíclicos dolores de cabeza.

PROFI Argentina, el canal social del PITC/PICC (Centro de Entrenamiento y Competencia PROFIBUS y PROFINET) Argentina, tiene como objetivo poner a disposición de los usuarios de la tecnología PI la información más actualizada disponible, para mantenerlos al tanto de los desarrollos en curso.

Nuestro enfoque apunta a volcar estos contenidos en español, con contenido original orientado al mercado local, como reviews de equipos y software, tutoriales y artículos técnicos tales como el presente.

Los esperamos en nuestro perfil de Linkedin: PROFI Argentina.

Pueden acceder al cronograma de entrenamientos y al listado de servicios que ofrecemos en www.profibus.com.ar.