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.


Temas - MarianoC

Páginas: [1]
1
STX8081 / Control del eje de un motor paso a paso
« : noviembre 04, 2014, 17:07:40 pm »
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.

  

2
VirtualHMI - Terminal HMI Remoto / Archivo nethmi.inc
« : julio 16, 2014, 14:58:32 pm »
Buenas Tardes, quiero acceder al archivo nethmi.inc para definir  valores de las constantes en base a nuestro problema. En el archivo info.txt especifica que dicho archivo se incluye automáticamente en el proyecto. Es este archivo accesible para ser editado de acuerdo a nuestras necesidades?
Muchas Gracias.
Saludos.
 

3
STX8081 / Pines del PWM
« : abril 22, 2014, 15:40:11 pm »
Buenas tardes..estoy trabajando con un registro de desplazamiento, más precisamente el 74HC164, 2 entrada serie y 8 salidas paralelas. Lo que debo realizar es poner en '1' lógico a la salida y que en cada flanco de reloj se desplace un lugar la derecha, es decir que tendré a la salida un '1' lógico que se desplaza mientras los demás pines están a '0' lógico. El problema que estoy teniendo es que en un momento dado tengo todas las salidas en '1' siendo que solo envíe un flanco para que, este '1' se corra un lugar a la derecha. Pienso que el problema es un tema de tiempo. Pero mi pregunta es, como el 74hc164 solo tiene un solo pin como reloj, por donde inyecto el tren de pulso, señal que quiero generar con el PWM de la placa cuyo módulo tiene dos pines, uno positivo y el otro negativo, como debo realizar la conexión para que el registro interprete los niveles de tensión de esta señal PWM?
Gracias.
Saludos.

4
STX8081 / Salida analógica
« : abril 09, 2014, 20:54:24 pm »
Buenas noches, quiero hacer una consulta en cuanto a la señal analógica de salida, que forma tiene esta señal cuando no activo la opción de sinusoidal?. Es constante? pregunto esto porque carezco de un instrumento para ver la señal.
Muchas Gracias.
Saludos.

5
STX8081 / Entrada Discreta
« : abril 09, 2014, 20:44:05 pm »
Buenas tardes, le quiero pedir una ayuda, sucede que debo monitorear a través de una entrada discreta del plc  un pin de salida de un registro de desplazamiento cuando este se ponga a uno lógico, el mismo me entrega como max 5v como un '1' lógico mientras que para detectar ese uno lógico a través del plc necesito 7 voltios , mi problema está en como amplificar esta tensión para polarizar el diodo de la entrada discreta, estuve viendo un circuito con un amp. op. lm741 pero el inconveniente que tengo es que lo debo alimentar al integrado con +12V y -12V en continua y no tengo una fuente que me entregue -12V, puedo poner a masa el pin del integrado dondedebo inyectarle estos -12V?.
Muchas Gracias.
Saludos.

6
STX8081 / Envío de datos por el puerto serie
« : abril 01, 2014, 14:40:06 pm »
Buenas tardes, les cuento que estoy desarrollando un programa que de acuerdo a un valor de tensión que leo en una entrada analógica mando un carácter por el pin Tx del puerto serie a otro dispositivo para que el mismo muestre el estado de carga actual de una batería, uno de los inconvenientes que estoy teniendo es que en el display solo me muestra "LcdPrint(1,0,"Bateria 100%")" cuando también debería mostrarme en la otra fila de dicho display el valor de tensión que esta leyendo en la entrada analógica "LcdPrintf(0,1,"VIN1=%02.2f",Voltaje) ", además de tildarse el microcontrolador no pudiendo sobrescribir otro programa y debiendo resetear la placa volviendo a los valores de fábrica .Luego de la instrucción LcdPrint(1,0,"Bateria 100%") sigue esta función SerialSendByte('A'), el otro dispositivo al cual está conectada la placa plc interpreta que la batería esta al 100%, por ejemplo, si el carácter es B la batería esta al 90% y así sucesivamente .Cuando comento la funcion "//SerialSendByte('A')" el programa anda perfecto.Mi pregunta es, la placa espera una respuesta de parte del dispositivo como un acknowledgement para que esta continúe con la ejecución del programa?.
A continuación les paso el programa.
Código: [Seleccionar]
PlcMain()
{
    // Aqui puede escribir codigo PAWN y llamar a otras funciones.
new Float: Voltaje=0

LcdClear()
VinJumper5UnSet()
RelayClose(RELAY8)
RelayClose(RELAY7)
RelayClose(RELAY6)
RelayClose(RELAY5)
RelayClose(RELAY4)
LcdPrint(1,0,"Bateria 100%")    //en el display me mostraba solo este comentario y no la tensión de entrada luego de poner la siguiente linea
//SerialSendByte('A')               // de envío de un caracter


   for(;;)
   {  Voltaje= Float: VinReadVolt(1)
 
  LcdPrintf(0,1,"VIN1=%02.2f",Voltaje)   //este comentario también debería mostrarme  
  DelayMS(300)
  if((Voltaje<=9) && (Voltaje>8))
  {  RelayOpen(RELAY8)
     LcdClear()
     LcdPrint(1,0,"Bateria 90%")
 DelayMS(300)
 //SerialSendByte('B')
  }  
   if((Voltaje<=8) && (Voltaje>7))
{ RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 80%")
 DelayMS(300)
 //SerialSendByte('C')
}
   if((Voltaje<=7) && (Voltaje>6))
{// RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 70%")
 DelayMS(300)
 //SerialSendByte('D')
}
 if((Voltaje<=6) && (Voltaje>5))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 60%")
 DelayMS(300)
 //SerialSendByte('E')
}
 if((Voltaje<=5) && (Voltaje>4))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 50%")
 DelayMS(300)
 //SerialSendByte('F')
}
if((Voltaje<=4) && (Voltaje>3))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 40%")
 DelayMS(300)
 //SerialSendByte('G')
}
if((Voltaje<=3) && (Voltaje>2))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 30%")
 DelayMS(300)
 //SerialSendByte('H')
}
if((Voltaje<=2) && (Voltaje>1))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 20%")
 DelayMS(300)
 //SerialSendByte('I')
}
if((Voltaje<=1) && (Voltaje>0.5))
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 10%")
 DelayMS(300)
 //SerialSendByte('J')
}
if(Voltaje<=0.5)
{ //RelayOpen(RELAY7)
  LcdClear()
         LcdPrint(1,0,"Bateria 00%")
 DelayMS(300)
 //SerialSendByte('K')
}
   
      // Loop principal.
 
   }

   // Retorno.
   return 0
}
   
Muchas Gracias.
Saludos.
Mariano Campos.

Páginas: [1]