comando de detección de error DALI

1

Necesito la ayuda de alguien que conozca bien el estándar DALI, tenga experiencia en él y conozca la estructura de los engranajes de control DALI.

Realizo una aplicación relacionada con DALI y apunto a detectar si la lámpara conectada está rota. Para hacerlo, envío los siguientes comandos al equipo de control DALI (esclavo)

0x92 Check if there is a lamp failure 
0x93 Check if the lamp is operating 
0x9B Check if the slave is in power failure mode 

antes de esto, desconecto la unidad de la lámpara, luego envío los comandos anteriores, sin embargo, la unidad esclava no informa de ningún fallo. Utilizo un par de unidades DALI diferentes de Tridonic. Me pregunto por qué eliminar una fuente de lámpara no genera un informe de falla.

¿Podría explicar la lógica de cómo los engranajes de control DALI detectan las lámparas rotas (por ejemplo, en qué casos la unidad DALI genera una respuesta a 0x92 , 0x93 , 0x9B )?

¿Qué comando es el mejor para detectar las lámparas rotas?

EDIT : Envío 144 mensajes de consulta, su definición en el estándar:

Comorespuesta,reciboestaseñalenelosciloscopio:

significa:

start bit(1) |  reply (8)          | stop bits(2)
     1       |  0 0 0 1 0 1 0 0    | 1 1 

significa:

  • 0: el balasto funciona bien
  • 0: no se detecta ninguna falla en la lámpara (si no hay una unidad de lámpara, ¿por qué no es una falla? ¿y cuál es la descripción de la falla?)
  • 0: la potencia del arco está apagada?
  • 1: error de límite: (envío 0xFEA0 que es una configuración de potencia de arco, no pude entender por qué es 1)
  • 0: no hay desvanecimiento en curso
  • 1: el estado de restablecimiento está presente
  • 0: tiene una dirección corta
  • 0: no hay fallo de alimentación (recibió el comando RESET y el comando de control de potencia de arco)

el tiempo es un poco malo, pero tengo un método ad-hoc para leerlo de todos modos. Recibo la misma respuesta si existe la unidad de la lámpara o si la quito en el tiempo de ejecución.

Me pregunto por qué DALI no genera una falla si la unidad de la lámpara no existe (o se elimina en el tiempo de ejecución). ¿Qué casos se definen como fracaso? Quería comprobar que puedo detectar los fallos de la lámpara (sin romper la unidad de la lámpara :), de modo que estoy desconectando la unidad de la lámpara. ¿Es un pensamiento equivocado? Si es así, ¿cómo debería haberlo probado para poder obtener el informe de fallo de la lámpara del esclavo DALI?

¿Qué comando (o secuencia de comandos) es la manera más confiable de detectar una lámpara LED rota (consultando el equipo de control de DALI LED)?

Siento que me tomo el tiempo para obtener una respuesta. Estaría feliz de dar 100 recompensas por una respuesta satisfactoria para mostrar mi gratitud.

    
pregunta sven

2 respuestas

1

Agregando como una respuesta separada porque la nueva pregunta es diferente de la original:

Su decodificación de Manchester es correcta, pero el orden de los bits es b8-b7, etc. a b0, por lo que tiene la decodificación de bits hacia atrás. Los bits establecidos son b2 = encendido del arco y b4 = Fade se está ejecutando. Esto tiene sentido ya que ha enviado la difusión DAPC al nivel 0xA0 y ha establecido un tiempo de atenuación largo (5,6 segundos).

Hay varios errores en tu lista de comandos

  • msg 5 0xA370 almacenaría 0x70 en DTR, supongo que te refieres a 0xA307
  • msg 8 0x072E almacena DTR como tiempo de desvanecimiento en marcha con dirección corta 3. DTR 7 significa que el tiempo de desvanecimiento es de 5,6 segundos. Si quieres 16s, DTR debería ser 10 = 0x0A.
  • msg 3 & 4 & 10 Intialise y Terminate solo son necesarios para la programación de los comandos de dirección corta (la búsqueda aleatoria y binaria), no para establecer valores de configuración como el tiempo de fade y las direcciones de grupo.
  • msg 12 consulta el estado del equipo en la dirección corta 3.

Me gustaría deshacerme de los mensajes adicionales, tener una marcha en el bus, usar mensajes de transmisión y el comando 146 para que ni siquiera tenga que interpretar los bits, ya sea respondiendo o no. Francamente, la cantidad de errores cometidos en su pregunta modificada no me da confianza en su código. Sin embargo, dado que el engranaje indica que está encendido, una lámpara faltante debería darle una falla de lámpara. No importa cuando se quitó la lámpara. Hay muchas causas electrónicas por las que no se puede informar la lámpara, según la tecnología de la lámpara. Para las lámparas fluorescentes, no es solo la corriente de un extremo al otro, puede romperse los cables del calentador en un extremo o no arrancar después de un período definido de impacto, o se puede encontrar alguna otra razón al monitorear las corrientes y voltajes del tubo.

Editar: ahora que la pregunta es específicamente sobre los LED, IEC6236-207 es aplicable.

Las funciones de consulta de

Comando 240 le informan si el engranaje es compatible con la detección de circuito abierto, detección de disminución de carga, apagado térmico, protección de corriente, etc. Si su engranaje le dice que no detecta circuito abierto o detección de disminución de carga ( bits 1 y 2) entonces no obtendrá la detección de falla de la lámpara de este engranaje. Pero si lo hace, podría determinar qué tipo de falla de lámpara ocurrió con el Comando 251, Estado de falla de consulta que responde con el bit 1 para circuito abierto y el bit 2 para disminución de carga.

Tenga en cuenta que los comandos anteriores a 236 son comandos de consulta de aplicación extendida, lo que significa que necesitan el comando 272 Habilitar el tipo de dispositivo con datos 6 (para LED).

La respuesta al fallo de la Lámpara de Consulta del Comando 146, y el bit 1 en la respuesta al Estado de Consulta del Comando 144 son el resultado de una operación OR en los bits 0 a 4 en el Estado de Fallo reportado en el Estado de Fallo de Consulta del Comando 241.

En resumen, creo que este engranaje en particular no detecta el fallo de la lámpara como una condición de circuito abierto, y probablemente tampoco detecte el fallo de la lámpara como otras condiciones; Su consulta es correcta, pero el equipo no la admite.

    
respondido por el Martin
2

Primero verifique la configuración de su capa física antes de intentar obtener la consulta correcta. Compruebe que está utilizando una fuente de alimentación adecuada (DALI requiere una corriente de alimentación limitada de 11.5V a 20.5V d.c. limitada a menos de 250 mA) que se conecta a su dispositivo de control y al engranaje de control (balasto).

Luego, envíe las consultas que sepa que siempre obtendrán una respuesta, como 144 Estado de consulta o 153 Tipo de dispositivo de consulta. Compruebe que su cuadro de avance cumpla con los requisitos de tiempo, como el ancho de pulso, el bit de inicio, los bits de parada, la codificación Manchester y que su circuito transmisor sea capaz de reducir la fuente de alimentación a 4.5 V al menos durante los pulsos bajos.

Cuando todo esto funcione, está listo para probar el Fallo de la lámpara de consulta del comando 146. Si el engranaje ha detectado una falla o falta una lámpara, debería obtener una respuesta Sí de 0xFF. En DALI, la respuesta sin respuesta es sin respuesta, la línea permanece en estado de alta inactividad. Tenga en cuenta que, por lo general, el fallo de la lámpara solo se puede detectar cuando el engranaje conduce la lámpara al estado encendido, es decir, busca una falta de corriente cuando debería haber corriente. Por lo tanto, use Direct Arc Power con el valor 254 para configurar la lámpara por completo antes del fallo de la lámpara de consulta del Comando 146.

Es inusual indicar los comandos DALI como un byte hexadecimal. lo que me hace pensar que podría estar enviando un marco de 8 bits en lugar de 16 bits (los bits se cuentan antes de la codificación Manchester). Los cuadros de 8 bits son cuadros hacia atrás, desde el engranaje hasta el dispositivo de control, producidos solo en respuesta a una consulta. Así que asegúrese de que su primer byte en el fotograma de avance de 16 bits sea la dirección, comience utilizando la dirección de transmisión con solo un engranaje (balasto) conectado. Si tiene varios equipos conectados, debe ser capaz de manejar las colisiones en las respuestas (lo cual es normal y se espera que DALI funcione) o contar con un software para configurar las direcciones cortas, que es un proceso bastante complejo que involucra la asignación al azar. y búsqueda binaria.

  • 0x92 = 146 Error de lámpara de consulta: este es el que desea.
  • 0x93 = 147 Encendido de la lámpara de consulta: le dice si la lámpara está encendida actualmente (es decir, el engranaje está conduciendo la lámpara al estado encendido). Sin embargo, la lámpara podría ha fallado.
  • 0x9B = 155 Query Power Failure: te dice si el engranaje acaba de encenderse y aún no ha recibido ningún comando que cambiar su nivel desde el nivel de encendido predeterminado.
respondido por el Martin

Lea otras preguntas en las etiquetas