Inicio > Foro > controladores SlimLine e Netsyst (LogicLab) > Cargar y acelerar la adquisición de carga PARA la ejecución del ciclo
- Este tema tiene 3 respuestas, 4 participantes y se actualizó por última vez 9 años, hace 6 meses da máximo.
-
autorPublicación
-
Abril 27, 2011 en 3: 14 pm #35001Alessandropartícipe
Me preguntaba si en la línea Slim Line PLC hay una tarjeta para leer las celdas de carga, y si querías tener más información técnica, tipo de conexión, filtros utilizados, etc. ya que estoy trabajando en una báscula.
También quería entender el rendimiento de la CPU, para este proyecto tengo que hacer bucles FOR, uno en particular que aunque optimizado pueda alcanzar y superar los 35000 ciclos, dentro del bucle alguna adición y comparación nada más, que se hará en unas pocas décimas de segundo.
Abril 27, 2011 en 3: 23 pm #36717Sergio BertanaAdministrador del foroIl módulo de expansión analógica de E / S que tiene entradas diferenciales con adquisición de 23 bits pronto se actualizará con un nuevo firmware para la lectura de galgas extensométricas. Incluso si se da el elevado número de bits del convector, ya es posible adquirir los valores analógicos en la salida del puente de medición y adquirir el valor de peso.
En cuanto al filtrado del valor de peso adquirido, es posible implementar el algoritmo de filtrado desde el lenguaje ST. Tenemos algunos ejemplos de filtros que podemos proporcionar a pedido.
En cuanto al bucle FOR, 35000 bucles son bastantes, pero si no es posible realizar algoritmos de simplificación, forzar el juego es realizar el número requerido de bucles. He creado un programa ST simple que ejecuta 40000 ciclos con tres sumas y una comparación interna, todo en variables de 32 bits, y el tiempo de ejecución es de 56 mseg.
PROGRAMA ST
VAR
i: UINT; {DE: "Contador auxiliar"}
AddArray: ARRAY [0..3] OF UDINT; {DE: "Adding array"}
END_VARPARA i: = 0 TO 40000 DO
AddArray [0]: = AddArray [0] + 1;
AddArray [1]: = AddArray [1] + 1;
AddArray [2]: = AddArray [2] + 1;
IF (AddArray [2] = AddArray [3]) THEN AddArray [3]: = AddArray [3] + 1; END_IF;
END_FOR;END_PROGRAM
Octubre 7, 2014 en 4: 48 pm #38447RobertopartícipeUna pregunta rápida ya que deberíamos enfrentarnos a un sistema de pesaje: vi que la tarjeta cae a 17 bits con una sibilina (min) escrita al lado. ¿Cómo debe interpretarse?
Segunda pregunta, ¿atornillamos un poco el cartel o es posible usarlo como unipolar usando los 130 KPoints?
Octubre 7, 2014 en 6: 02 pm #38448máximoModeradorLos 17 bits (min) se refieren al peor de los casos, que es cuando se usa GAIN = 128. Para las otras ganancias, aquí están las diversas resoluciones:
- AD_VIN_VREF_G_1: 19.5 bits
- AD_VIN_VREF_G_2: 18.5 bits
- AD_VIN_VREF_G_4: 19.0 bits
- AD_VIN_VREF_G_8: 19.0 bits
- AD_VIN_VREF_G_16: 18.5 bits
- AD_VIN_VREF_G_32: 18.5 bits
- AD_VIN_VREF_G_64: 18.0 bits
- AD_VIN_VREF_G_128: 17.0 bitsEstos son los bits reales, es decir, que ya eliminan el bit de signo. Claramente, la ganancia a elegir depende de las características de la galga extensométrica. Más información en este tema.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.