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 - InduxSA

Páginas: 1 [2]
16
STX8091 / Función Count1GetEventRPM_I()
« : julio 29, 2016, 13:09:55 pm »
Estimado Boris

Estoy usando la función nativa para medir RPM del PLC Count1GetEventRPM_I(), la cuestión es que esta muy inestable

He tratado de medir velocidades de 230 RPM y la medición que obtengo salta de 226 a 238 muy inestable, en algunas ocaciones da saltos hasta 300 y se va hasta 0

La pregunta es que cantidad de pulsos se muestran para realizar la medición dentro de la función Count1GetEventRPM_I() y si es posible aumentar el numero de pulsos comparados para hacer mas estable la medición

O que me recomendarías

Las velocidades que uso están entre 150 y 300 RPM , la señal la obtengo de un sensor NPN montado en una leva

Saludos

17
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 21, 2016, 12:19:58 pm »
Hola Boris

He corrido el programa  PawnUdpRx modificado que adjuntaste con este codigo en el PLC

Pero el programa solo se queda en el primer dato y no muestra el valor te adjunto una imagen del programa

PlcMain()
{
   // Crear un array para almacenar los bytes a enviar.
   new Data[1]

   // Almacenar caracteres ASCII a enviar...
 
   Data[0] = 1000

   // Ciclo principal del programa.
   while(1)
   {
      // Enviar paquete UDP a dirección 192.168.1.15, puerto 4980.
      UdpSend(192,168,0,137, 4980, 1, Data, true)

      // Pausar programa por 1 segundo y conmutar led debug.
      DelayS(2)
      LedToggle()
   }
}

Agradeciendo tu acostumbrado apoyo quedo en espera de tus comentarios

Saludos

18
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 20, 2016, 16:54:36 pm »
Los datos que envió son mayor a 255

19
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 20, 2016, 16:52:41 pm »
OK

Y estos datos no los puedo obtener en el programa PawnUdpRx.?

Es necesario crear una aplicacion C#?

Saludos

20
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 20, 2016, 14:33:29 pm »
Estimado Boris

Los datos que quiero envíar son de tipo entero, de 3 variables distintas X, Y, Z

Como puedo enviar este tipo de dato en esta función

UdpSend(192,168,1,15, 4980, 5, Data, false)

En lugar de la cadena de caracteres

Saludos

 


21
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 20, 2016, 12:49:17 pm »
Estimado Boris

ya lo he corrido
Funciona perfectamente



22
STX8091 / Re:Uso de aplicación PLC UDP Receiver
« : julio 20, 2016, 10:31:26 am »
Hola Boris

Tal vez no me supe explicar,

En la nota de aplicación  AN001 punto 7.4 se expone lo siguiente

"El programa PawnUdpRx puede serle útil para recibir datos Ethernet / UDP desde el PLC."

Efectivamente lo que quiero es recibir los datos de 3 variables del PLC en el programa  PawnUdpRx

Pero no alcanzo a entender como usarlo para que pueda escuchar lo que el PLC envía

Saludos

23
STX8091 / Uso de aplicación PLC UDP Receiver
« : julio 19, 2016, 13:47:21 pm »
Hola Boris

He leído la nota de aplicación STX-AN001  pero no me queda claro como usar la aplicación PLC UDP Receiver

Lo que quiero es enviar el valor de algunas variables cuando sea introducida una nueva clave en mi programa

cada que leo un nuevo valor en esta parte

// Leer registro 42020 para selección de articulo desde SH-300
     
      MbRtuServGetRegister(42020, Select)

necesito enviar el valor que tienen 3 variables en ese momento, la fecha y hora, a la aplicación antes mencionada

Saludos

José Camacho



24
STX8091 / PLC como servidor web
« : julio 13, 2016, 21:23:35 pm »
Estimado Biris

Estoy configurando el plc como servidor web

Hay una parte en el programa ejemplo en donde al cambiar el estado de la entrada DIN1 se enciende o apaga un foco

La pregunta es como puedo encender y apagar el foco pero tomando el valor de una variable del programa principal


Algo como

if (GPM>150)
{ Foco=1
}
else
{Foco=0
}

Y con el estado de foco enciende o apaga el foco

Lo intenté de esta manera y tmbien igualando la variable con las constantes nativas pero no logré que el foco cambiara de estado

Espero puedan ayudarme

Quedó atento de sus comentarios

Saludos


25
SH-300 / Cargar registro en HMI SH-300
« : julio 08, 2016, 14:45:36 pm »
Estimado Boris

Estoy tratando de imprimir las Rpm que me proporciona una señal cuadrada de 12V conectada al contador 1 en la entrada DIN7

En el panel HMI SH-300, el modelo del PLC que tengo es un 8091-D1  y la funcion nativa que estoy utilizando es la siguiente
   
      // Cargar  registro Rpm
     
      MbRtuServLoadRegister(42001,Count1GetEventRPM())

Mi problema es que en el LCD del panel me muestra una medicion mucho mas grande de lo que en realidad es

Realice la prueba en el Virtual HMI y funciona correctamente

A que se debe que las mediciones en el SH-300 sean mas elevadas??

Como lo puedo corregir

Te dejo el codigo que estoy usando para ver en que me puedes ayudar


Código: (Pawn) [Seleccionar]
PlcMain()
{

   // Inicializar rutinas Virtual-HMI.
   VirtualHmiInit()

new Select
  // new x
   //new y

   // Activar contador, cuenta por flanco ascendente.

   Count1Enable(COUNT_EDGE_RISING)
 
//
   // Inicializar Servidor ModBus RTU.
   //
   // Velocidad 9600 bps, formato 8E1 y direccion ModBus RTU 1.
   //
   // Interfaz: RS-232 (consulte hoja de datos de dispositivo)
   //
   // A partir de este momento, el servidor esta activo.
   //
   
   if(MbRtuServInit(1, 9600, SERIAL_8E1, MB_RTU_INTERFACE_RS232) < 0)
   {    
   // Error, pausar programa en este punto.
   while(true)
   {
   DelayMS(2000)
   LedToggle()
   }
   }

   //
   // Loop Principal.
   //
   Count1Reset()
   for(;;)
   {
   
             
   // Cargar  regustro Rpm
     
   MbRtuServLoadRegister(42001,Count1GetEventRPM())
   
   // Leer Holding Register en direccion 42020.
     
   MbRtuServGetRegister(42020, Select)
   
      switch (Select)
     
      {
          case 1:
          { 
             if (Count1GetEventRPM()<180)
              {
                 DoutSetOn(DOUT1)
          }
          if (Count1GetEventRPM()>200)
          {
             
          DoutSetOn(DOUT2) 
          }
          else
          {
           
          DoutSetOn(DOUT3)
             }
          }
      case 2:
          {  if (Count1GetEventRPM()<200)
              {
                 DoutSetOn(DOUT1)
          }
           if (Count1GetEventRPM()>200)
          {
             
          DoutSetOn(DOUT2)
          }
          else
          {
          DoutSetOn(DOUT3)
             }
             }
          case 3:
          {  if (Count1GetEventRPM()<220)
              {
                 DoutSetOn(DOUT1)
          }
           if (Count1GetEventRPM()>200)
          {
             
          DoutSetOn(DOUT2) 
          }
          else
          {
          DoutSetOn(DOUT3)
             }
             }
          case 4:
          {  if (Count1GetEventRPM()<240)
              {
                 DoutSetOn(DOUT1)
          }
           if (Count1GetEventRPM()>200)
          {
             
          DoutSetOn(DOUT2) 
          }
          else
          {
          DoutSetOn(DOUT3)
             }
             }
default:
            {
            DoutSetOn(DOUT1)
               }
      }
// Pausar ejecucion
DelayMS(250)
   
   }

   // Retorno.
   return 0
}

Saludos

Páginas: 1 [2]