Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Mensajes - MarianoC

Páginas: 1 [2] 3 4 5
16
Entonces TICK_RATE_MS=1 mseg? que es la base de tiempo del contador interno del plc

17
Buenas....estuve probando la función de interrupción PwmTrainInterrupt(PWM1) y funciona correctamente. ;D .
Ahora la otra consulta que tengo es que cdo en el instante en que le aplico un reset  tanto por HW o por SW aparentemente le esta enviando una cantidad mínima de pulsos al driver que hace que el eje del motor realice un pequeño giro.
Esto se debe a que se restablecen los canales pwm enviando pulsos?.
Gracias.
Sds.
   

18
Buenas tardes, les quiero realizar una consulta en relación al puerto serie.
Desde una aplicación android que contiene un control que se denomina SeeKbar el cual varia de 0 a 100, similar al trackbar del virtualhmi, le envió al puerto serie de la placa estos valores por los que puede oscilar dicho control. Cdo varío a una velocidad razonable esto valores se imprimen en pantalla, pero cdo lo hago variar muy rápidamente me imprime solo 10 valores como máximo.
Mi pregunta es, puede ser que los datos no se estén encolando bien?.
Adjunto una porción de código que escribí para visualizar los datos recibidos por puerto serie. 
for(;;)
   {   while((Rx=SerialGetByte())!=-1)
      {    
                            BitClr(Rx,7)
                            NetHmiLcdPrintf(0, 4, LCDSTRING_OPT_NONE,"Pulsos restantes= %d",Rx)
                            DelayMS(500)
      }   
}                     
 

19
Bueno, bien pruebe te aviso que resultados obtengo.
Muchas Gracias.
Sds.

20
Si, es el siguiente:
Código: [Seleccionar]
  for(;;)
 {
while((Rx=SerialGetByte())!=-1)
{
if(Rx==50) {
PwmTrainStart(PWM1,500,1600)
                }
                if(Rx==51){PwmTrainInterrupt(PWM1) {
                    //NetHmiLcdPrintf(0, 4, LCDSTRING_OPT_NONE,"Pulsos restantes= %d",PwmTrainGetPulses(PWM1))
                }
}  

      // Loop principal.
   }


21
Buenas tardes, estuve probando la nueva función PwmTrainInterrupt(Channel) y me pasa lo siguiente: una vez que genero el tren de pulsos y posteriormente llamo a la función PwmTrainInterrupt(Channel) por primera vez para interrumpir dicho tren, lo realiza pero inmediatamente se me tilda el programa de tal forma que debo resetear desde la placa para poder cargar una nuevo programa.
Alguna sugerencia para poder resolver este inconveniente.
Gracias.
Sds

22
Bien..quedo a la espera...
Gracias.
Sds.

23
1)_Lo que entendí que luego de ejecutar la instrucción PwmTrainStop() que detiene el generador de pulsos, y si yo luego quiero generar un nuevo tren de pulso debo ejecutar la instrucción PwmTrainInit() ,(y a esta función se la llamar una sola vez), para poder posteriormente usar PwmTrainStart().Estoy equivocado? o puedo llamar  PwmTrainStop() sin tener que llamar luego  PwmTrainInit() para generar un nuevo tren de pulso, PwmTrainStart().
2)_ Le notifico bien se realice el pago.
Gracias.
Sds.

24
Hola buenas tardes, les quiero hacer dos consulta:
1)_ se puede realizar una función que interrumpa el tren de pulso que se esta generando para que inmediatamente después de esa instrucción coloque PwmTrainGetPulses() y luego generar un nuevo tren de pulso, es para tener un mejor control en el momento en que quiero interrumpir y posteriormente generar un nuevo pulso.
2)_La última consulta es de Hw el problema es el display lcd, enciende pero no me muestra absolutamente nada.
Muchas Gracias.
Sds.

25
Buen día,
Si, también me sirve que me devuelva la cantidad de pulsos que falto enviar en el momento que produjo la interrupción.
Gracias.
Sds.

26
Buenas tardes, afirmativamente, el problema es que vuelvo a llamar a la función PwmTrainStart() con un nuevo valor correspondiente al parámetro n° de pulsos sin que el canal haya terminado de enviar el tren de pulsos del parámetro anterior. Esto lo he solucionado escribiendo inmediatamente después de la llamada a la función PwmTrainStart() la instrucción DelayMS() cuyo parámetro es el n° de pulsos del tren* el período de la señal pwm, pero la desventaja que presenta esta solución que la instrucción DelayMS() me detiene la ejecución del programa por el tiempo especificado en dicho parámetro, es decir el programa en este tiempo solo esta generando la señal, mientras que en este tiempo puede estar procesando otras instrucciones.
La pregunta es, existe la posibilidad de crear una función que me devuelva un 1 lógico indicando que el canal termino de enviar el tren de pulso y que esta listo para enviar otro tren y un 0 que indique que aún lo esta generando ?.
También en un momento voy necesitar interrumpir un tren de pulso, y en este mismo momento voy a necesitar la cantidad de pulsos que se logro enviar hasta que fue interrumpido este tren, esto es posible sin la necesidad realimentar el pwm a la entrada de contadores?Digo creando una función.
Desde ya muchas Gracias.
Sds.

 

   

27
Buenas tardes gente, les comento que estoy tratando de controlar un motor paso a paso  a través del PLC inyectandole una señal pwm al driver de dicho motor, el cual he configurado a 800 pulsos una vuelta, y el motor tiene una conexión paralelo bipolar.
Desarrollé un programa el cual recibe por el puerto serie valores de 0 a 100 que hacegirar el eje del motor en sentido horario(de 0 a 100) y antihorario(100 a 0) haciendo uso de la función PwmTrainStart(,,) y definí  una señal pwm 2khz, para el valor 0 , 0 vueltas y para el valor 100, 5 vueltas, pero  el problema que estoy teniendo es que el eje no realiza un recorrido fijo, por ejemplo cuando me voy desplazando lentamente con valores dentro del rango de 0 a 100 , al llegar al 100(5 vueltas) el eje no finaliza su recorrido donde inicio, aveces un poco antes de completar las cinco vueltas, y cuando hago variar rápidamente valores de 0 a 100 o viceversa el eje del motor no llega a dar ni una vuelta completa.
Alguna ayuda o sugerencia para poder mejorar el control del recorrido del eje del este motor.
Muchas Gracias.
Sds.

  

28
Muchas gracias...ya he realizado algunos ensayos y responde correctamente a la cantidad de pulso que yo establezco a través de la función que desarrollaron
Nuevamente gracias.
Sds... ;D ;D

29
si en muchos casos necesito variar el duty del tren de pulso  dentro del rango de 0% a 100%...
Quedo a la espera de la actualización.
Muchas Gracias.
Sds.

30
Hola, acabo de probar y anda perfecto, ahora mi pregunta es, como configuro el Duty-Cycle ya que este puede ir variando de un momento a otro en base a mi necesidad?

Páginas: 1 [2] 3 4 5