Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

cRIO 9104

Buenas tardes.

 

Me encuentro trabajando en una aplicación HIL con un controlador cRIO-9004 con chasis cRIO-9104. La idea es descargar en el hardware un .dll creado a partir de un modelo en Simulink de un panel solar, para lo cual estoy utilizando el SIT 2010. Para familiarizarme con el sistema descarge con exito el .dll que se crea del modelo de ejemplo "sinewave.mdl", el cual utiliza un paso de simulación de 5 milisegundos. Sin embargo, al utilizar el modelo del panel cuyo paso de simulación es de 5 microsegundos, recibo un error al correr la simulación. Al hacer la prueba con el modelo de ejemplo "sinewave" y un paso de simulación de 1 milisegundo, recibo el mismo error: 

 

Error 14120 occurred at Driver VI >> Onda_Seno_RT_Driver.vi >> Onda_Seno_RT_Base Rate Loop.vi >> NI_SIT_driversupportVIs.lvlib:SIT Take Model Time Step.vi:1

 

Possible reason(s):
Simulation Interface Toolkit:  The base rate loop did not finish in time.  The combined time of computing the model and performing input and output is too long. Increase the model time step, switch to a simpler solver, or reduce the number of inputs and outputs used.

 

El bitfile que utilizo para asociar entradas y salidas al hardware creé con base en el tutorial respectivo, teniendo en cuenta no modificar las secciones en gris.

 

Quisiera saber a qué se debe este problema y de qué manera lo soluciono, ya que tengo entendido que el hardware es capaz de manejar perfectamente estos tiempos de simulación.

 

Gracias.

 

0 kudos
Mensaje 1 de 2
2.535 Vistas

 Hola cRIO Uandes, el problema que tienes es que las operaciones dentro del ciclo tardan más de 5 microsegundos en ejecutarse por lo que no logra ejecutar tu ciclo completo y por eso envía el error.

 Aunque el cRIO puede ejecutar ciclos de 1us, para que un ciclo se ejecute a esta velocidad el código dentro del ciclo tiene que terminar en este tiempo. Si tu código por ejemplo tarda 50us, aunque temporices el ciclo a correr a 1us el ciclo correría realmente a 50us. Como lo que estas corriendo es un modelo de simulación te marca error si no se va a poder ejecutar en el tiempo que determinaste.

 Para solucionar esto es necesario o que hagas mas eficiente el código que estas corriendo para que se pueda ejecutar en el periodo de tiempo que necesitas o incrementes el tiempo de muestro. La otra opción es utilizar un cRIO con un procesador mas rápido.

 Si el modelo del panel no es muy complicado podrías incuso escribirlo en funciones básicas o en el mismo FPGA y lograr velocidades mucho más altas.

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 2
2.531 Vistas