Entrada contadores

  • 8 Respuestas
  • 1873 Vistas

PedroC

  • Novato
  • *
  • Mensajes: 11
Entrada contadores
« : diciembre 08, 2014, 01:02:38 am »
Hola Boris,

      Te hago una consulta, estoy tratando de conectar un sensor inductivo a una entrada discreta ( 8 ) para poder medir rpm de un disco dentado y tengo dos problemas.

Al conectar el sensor inductivo (NPN-4 hilos) y activarlo con un metal, puedo ver que en la placa, el led de la entrada 8 se enciende. Pero con el programa BasicControl el estado queda siempre en 0 lógico o sea como si no lo detectara, también probé en visual y pasa lo mismo, no reconoce el cambio de estado. Al medir con un tester veo que la tensión entre DIN+ y DIN- cae bastante (cerca de 3,5v) por lo que creo que me está faltando una resistencia o algo para que la entrada quede polarizada. (adjunto imagen de la conexióna actual).


Muchas gracias.

Saludos.
Nicolás



« Última Modificación: diciembre 08, 2014, 18:44:17 pm por PedroC »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1707
  • Soporte Técnico
Re: Entrada contadores
« Respuesta #1 : diciembre 09, 2014, 10:14:31 am »
Buen día Nicolas,

Aparentemente hay un error en el conexionado, para estar seguro necesitaría ver la hoja de datos o un
link a las especificaciones del sensor. Al caer tan poca tensión, no estas polarizando la entrada.

Pero a modo superficial, según tu esquema sugiero conectar como sigue:

  • Cable Marrón: Conectar a +12Vcc de placa y al punto (+) del sensor. También unir al terminal (+) de DIN8.
  • Cable Negro: Conectar a terminal (-) de DIN8 y al punto "NO" del sensor.
  • Cable Azul: Conectar a GND de placa y al punto (-) del sensor.

La tensión entre DIN+ y DIN- debería ser aproximado a +10V cuando conmutes el sensor (si alimentas con +12V al sensor).

Esto es porque el transistor del sensor NPN debe ver a la entrada como una carga.

Modifica el cableado y proba con BasicControl.

Quedo a disposición por cualquier otra consulta.
« Última Modificación: diciembre 09, 2014, 10:18:45 am por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

PedroC

  • Novato
  • *
  • Mensajes: 11
Re: Entrada contadores
« Respuesta #2 : diciembre 09, 2014, 11:29:20 am »
Buen día Boris,

El sensor es el IPS-12NOC2B y la hoja de datos es: http://www.ibestchina.com/english/ViewProduct.asp?ID=184, es un sensor de 4 hilos, de los cuales uso 3 solamente.

Voy a probar con el conexionado que me sugeriste y después informo como resultó.

Gracias.

Nicolás

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1707
  • Soporte Técnico
Re: Entrada contadores
« Respuesta #3 : diciembre 09, 2014, 14:28:37 pm »
Si, es la misma conexión sugería entonces.

Lo único, que en la figura de la hoja de datos que me mandas,  el punto "NO" es el cable negro en si mismo,
pero se muestra diferente en la hoja de datos.

Avísame si te funciona.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

PedroC

  • Novato
  • *
  • Mensajes: 11
Re: Entrada contadores
« Respuesta #4 : diciembre 10, 2014, 19:52:35 pm »
Boris,
            la conexión funciona perfectamente como me sugeriste. Pero veo que al sensar rpm, solamente toma valores de 60 en 60, o sea que la mínima velocidad en revoluciones que puedo medir son 60 y después salta a 120, 180, 240, etc. ¿Hay alguna manera de modificar esto?

Gracias
« Última Modificación: diciembre 11, 2014, 13:49:46 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1707
  • Soporte Técnico
Re: Entrada contadores
« Respuesta #5 : diciembre 11, 2014, 14:00:51 pm »
Buenas tardes, estas utilizando BasicControl para leer los RPM ?.

¿ Cual es la mínima RPM que debes medir ?.

Eso de que salte, puede ser que la frecuencia de los pulsos del sensor fluctúen rápidamente,
por ejemplo, en un instante es 1Hz, en otro instante es 2Hz, etc. Eso hace que el calculo de RPM
cambie, ya que se multiplica por 60.

Proba medir frecuencia en vez de RPM, y fíjate como cambian los números, y avísame.

O hay un ruido que hace que la onda no sea puramente cuadrada, si es muy baja frecuencia se puede solucionar
con un capacitor pequeño en paralelo a la entrada.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

PedroC

  • Novato
  • *
  • Mensajes: 11
Re: Entrada contadores
« Respuesta #6 : diciembre 14, 2014, 20:14:37 pm »
Hola Boris,
       
 Estoy usando tanto el BasicControl como el visual y en los dos tengo el mismo problema, en cualquiera de los dos contadores

En BasicControl tildo la opción medir RPM y de 0 va a 60 y así de 60 en 60. Si desactivo la opción medir rpm me muestra la frecuencia aparentemente bien (aumenta de a 1).

En visual muestro las rpm con el siguiente comando:

 private void timer1_Tick(object sender, EventArgs e)
        {

           
           UInt32 PeriodUS;
           PioBoard.Cmd.Count.Count1GetEventPeriod(out PeriodUS);

           float Seconds = PeriodUS * 0.000001f;
           UInt32 Frequency = (UInt32)(1 / Seconds);
           UInt32 RPM = Frequency * 60;                 
           aGauge1.Value = RPM;                           
                       
           
         }

       
        private void button7_Click(object sender, EventArgs e)
        {
            dia = Convert.ToDouble(diametro.Text);                           //convierte lo que está en el textbox en un doble
            longitud = Convert.ToDouble(largo.Text);
            masa = (3.1415926 * dia * dia / 4) * longitud * (7.850 / 1000000);             //cálculo de la masa en kg
            minercia = masa * (dia / 2000) * (dia / 2000) / 2;                       //cálculo de la inercia en kg*m2
            pesso = masa * 9.81;                                                //calculo del peso en N
           
            massa.Text = masa.ToString("n2");                         //convierte la variable doble "masa" en stirng para poder verla en el label
            peso.Text = pesso.ToString("n2");
            inercia.Text = minercia.ToString("n2");
           
            PioBoard.Cmd.Count.Count1Enable(CountEdge.Rising);                //inicializa el contador 1 (RPM) solo el flanco positivo (rising)
                       
            timer1.Enabled = true;                                           //activa el timer


Y tengo el mismo problema, de 0 va a 60 y así en adelante.

Necesito poder medir  de a 1 o a lo sumo de 2 rpm.

Saludos.




 

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1707
  • Soporte Técnico
Re: Entrada contadores
« Respuesta #7 : diciembre 14, 2014, 20:54:56 pm »
Deberías tener una resolución de decimales con el RPM. El tema es que no estas utilizando
una variable tipo float. cambia el código por el siguiente:

 private void timer1_Tick(object sender, EventArgs e)
        {           
           UInt32 PeriodUS;
           PioBoard.Cmd.Count.Count1GetEventPeriod(out PeriodUS);

           float Seconds = PeriodUS * 0.000001f;
           float Frequency = (1 / Seconds);
           float RPM = Frequency * 60;   
             
           aGauge1.Value = RPM;  // Acá deberias quizás hacer un cast, dependiendo del tipo que sea Value.         
         }

Adjunto te paso un BasicControl modificado con variables tipo float, así lo probas y medís RPM con resolución en decimales.

Antes al usar solo enteros, estabas truncando el valor final, ya que Frequency perdía la parte decimal y solo quedaba la entera. La fecuencia
que estas midiendo del sensor esta entre 1 Hz y 2 Hz según veo. Por lo tanto, necesitas los decimales de la frecuencia, por ejemplo 1.05 Hz.

Probalo y contame.
« Última Modificación: diciembre 14, 2014, 21:02:33 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

PedroC

  • Novato
  • *
  • Mensajes: 11
Re: Entrada contadores
« Respuesta #8 : diciembre 15, 2014, 20:44:40 pm »
Boris, funcionó perfecto. El problema era ese, al trabajar con números enteros la frecuencia, siempre me devolvía múltiplos de 60 en las rpm.

Muchas gracias.

Saludos.