Mensajes recientes

Páginas: 1 2 3 [4] 5 6 ... 10
31
STX8091 / Re:Escalar señal 4 a 20 mA
« Último mensaje por rodegsa diciembre 16, 2019, 15:24:59 pm »
No entiendo como despejar la formula
32
STX8091 / Re:Escalar señal 4 a 20 mA
« Último mensaje por rodegsa diciembre 16, 2019, 14:49:57 pm »
Hola muchas gracias por su pronta respuesta

Me ayudaría mucho a entender lo que usted me describe, con un ejemplo en pawn, para convertir la señal de corriente en valores de -100 a 1600 mbar

Muchas gracias
33
STX8091 / Re:Escalar señal 4 a 20 mA
« Último mensaje por Soporte diciembre 16, 2019, 12:36:05 pm »
Buenos días,

Supongo que se refiere a escalar una señal, es decir, teniendo una señal lineal de 4-20 mA, llevarla a un valor o magnitud física dentro de una escala.

Linealizar es otro concepto, ya que linealizar significa convertir una señal no-lineal (que puede tener un comportamiento logarítmico por ejemplo), en una señal lineal. Eso es algo más complejo, ya que se necesita conocer las formulas físicas de la señal.

En el caso de escalar la señal, es un tema conceptual sencillo, hay que aplicar la ecuación de la recta que pasa por dos puntos.

Supongamos que 0.004 amperes representan 0 grados Celcius y 0.02 amperes representan 1000 grados Celsius.

Ecuación de la recta por dos puntos:

(x-x1)/(x2-x1)=(y-y1)/(y2-y1)

Hacemos:

  • x1=0.004 (4mA)
  • x2=0.02 (20mA)
  • y1=0 (limite inferior, 0 °C)
  • y2=1000 (limite superior, 1000 °C)

Remplazando en ecuación:

(x-0.004)/(0.02-0.004)=(y-0)/(1000-0)
x/0.016 - 0.25 = y / 1000

Despejando "y" obtenemos la ecuación final a implementar en Pawn:

y = 62500 x - 250

Obtenemos una ecuación, cuya salida "y" estará limitada entre 0 y 1000 para todos los valores de "x" entre 0.004 (4mA) y 0.02 (20mA)

Si remplazás "x" por valores de corriente entre 0.004 y 0.02, obtenés valores entre 0 y 1000 que serán los valores de temperatura.

Para otras condiciones, simplemente cargá la ecuación de la recta papel y despejar para obtener la ecuación final para aplicar en Pawn.

Espero que sea esto lo que buscás.

Si no se entiende algo, avísame.

Saludos!




34
Kinco / Re:Mostrar ventana Pop-Up
« Último mensaje por Soporte diciembre 16, 2019, 12:13:26 pm »
Buenos días te paso el ejemplo en los siguientes links:

PROYECTO PLC:
www.slicetex.com/hmi/kinco/files/examples/popup/HmiKincoPopUp1.zip

PROYECTO HMI:
www.slicetex.com/hmi/kinco/files/examples/popup/PopUp1_MT4434TE.zip

DESCRIPCIÓN:

El PLC se conecta a la pantalla HMI con ModBus TCP, siendo el PLC Esclavo y la pantalla Maestra.

En la pantalla del HMI se mostrarán dos ventanas Pop-Up.

NETWORK #1:
Simplemente obtenemos el valor del bit ModBus "4002" y lo copiamos a la variable "Flag".

NETWORK #2:
La ventana Pop-Up #1 se muestra con método indirecto (componente INDIRECT WINDOW en HMI).
En este caso el PLC escribe en el registro 40010 el número de ventana a mostrar. Si el valor del registro es 0, la ventana se cierra.

NETWORK #3:
La ventana Pop-Up #2 se muestra con método directo (componente DIRECT WINDOW en HMI).
En este caso el PLC escribe en el bit 4003 el valor 0 o 1.
Si el valor del bit es 1, la ventana se muestra, si es 0, la ventana se cierra.
Como en el ejemplo el bit se modifica por el timer cada 2 segundos, el efecto en pantalla es una ventana pop-up que aparece y desaparece.

PRUEBA:

Compile el proyecto seleccionando adecuadamente su modelo de PLC.

Transfiera el programa al PLC y el programa de diseño al panel HMI.

La ventana Pop-Up #1 se mostrará si toca el interruptor en pantalla.

La ventana Pop-Up #2 se mostrará cada 2 segundos.

MÁS INFORMACIÓN:

Los componentes del HMI (INDIRECT/DIRECT WINDOW) se explican en el manual del HMI Kinco:

Sección 4.8 (pág. 211) "WINDOW COMPONENT" (versión 1506).

www.slicetex.com/hmi/kinco/docs.php#Manuals

CONSIDERACIONES:

El el programa de diseño del HMI, a veces es necesario limpiar la compilación antes de transferir para forzar que se apliquen los últimos cambios al proyecto. Para limpiar la compilación, seleccione menú "Tools > Clear build result".

IMÁGENES:

COMPONENTE INDIRECT:


COPONENTE DIRECT:


VENTANA POP-UP:


DISEÑO GENERAL:


Saludos!
35
STX8091 / Re:4 a 20 ma
« Último mensaje por rodegsa diciembre 16, 2019, 10:07:44 am »
Estoy interesado en pawn y no en ladder

Muchas gracias
36
STX8091 / Escalar señal 4 a 20 mA
« Último mensaje por rodegsa diciembre 16, 2019, 09:30:26 am »
Hola
Podría usted darme un ejemplo para linealizar una señal de 4 a 20ma en lenguaje pawn
Desde ya muchas gracias
37
Kinco / Mostrar ventana Pop-Up
« Último mensaje por edu diciembre 15, 2019, 10:54:44 am »
Buenos dias, necesito hacer una consultas.

Tengo que llamar a una pantalla tipo pop up solo cuando se este ejecutando un proceso. Cuando este termine el pop up debe desaparecer.
El HMI es un Kinco MT4434TE y el PLC es un stx8092

El PLC pone una variable en 1 cuando se esta ejecutando el proceso y al finalizar la pone en 0.

Como hago que esa variable me active el pop up?

muchas gracias
38
STX8091 / Re:Muestrear dos señales al mismo tiempo
« Último mensaje por Soporte diciembre 03, 2019, 20:39:49 pm »
Buen día,  el tiempo de muestreo lo tengo en 630us que me dan 4 ciclos de una señal de 50Hz, los valores rms funcionan bien con eso no tengo problema pero hice lo que me decías y sigue siendo errático el valor, cómo que se mantiene estable un tiempo y después empieza nuevamente a mandar cualquier valor... Cree dos Buffer de 10 paquetes para ir guardando en uno mientras el otro hace el calculo con sus contadores pero  sigue igual...  Podrá ser que se pierdan tramas UDP y ahí se pierde el sincronismo? O que la trama invierta l orden de los paquetes cuando envía varios del mismo canal? Porque no le encuentro otra explicación... o si hay otra forma de calcular el desfadaje a través de las entradas digitales metiendo medio ciclo pasando las señales por un Smith Trigger? Se me ocurre si puedo medir el tiempo entre ambas y no por medio algebraico

Buenas, estuve haciendo unas pruebas, por ejemplo, en 200 mil muestras, hay un pequeño defasaje o corrimiento de 2 a 4 muestras entre dos canales y puede ser que a la larga, eso sea más pronunciado. Lo que hice fue conectar una senoidal (con la salida analógica 0-10V) a dos canales VIN al mismo tiempo y loguear las muestras de cada canal en dos archivos diferentes. Luego ver si el valor del número de muestra X en canal A, coincide con el número de muestra X en el canal B.

Te paso el log:

http://www.slicetex.com/temp/samples.zip

En el archivo A y B, están la muestras con el formato [número de muestra,valor].

Creo que lo que podés hacer más efectivo, para evitar la red, es calcular el RMS y factor de potencia en modo PLC, utilizando el sampler para llenar los arrays. Activando el sampler para muestrear y hacer el calculo, y luego desactivar. Luego activar y calcular de nuevo, para evitar un posible desincronismo en operación prolongada. Total, supongo que el coseno necesitás tenerlo actualizado casa cierto tiempo.

Luego pódes enviar el dato ya calculado a Visual C# desde el PLC.

No sé si este enfoque te sirve.



Por metódo digital, se puede medir el ancho de un pulso o frecuencia utilizando los contadores rápidos, pero no la diferencia de tiempo entre dos pulsos, al menos no hay funciones disponibles desarrolladas.

Saludos!
39
STX8091 / Re:Muestrear dos señales al mismo tiempo
« Último mensaje por SebaRiera diciembre 03, 2019, 11:05:18 am »
Buen día,  el tiempo de muestreo lo tengo en 630us que me dan 4 ciclos de una señal de 50Hz, los valores rms funcionan bien con eso no tengo problema pero hice lo que me decías y sigue siendo errático el valor, cómo que se mantiene estable un tiempo y después empieza nuevamente a mandar cualquier valor... Cree dos Buffer de 10 paquetes para ir guardando en uno mientras el otro hace el calculo con sus contadores pero  sigue igual...  Podrá ser que se pierdan tramas UDP y ahí se pierde el sincronismo? O que la trama invierta l orden de los paquetes cuando envía varios del mismo canal? Porque no le encuentro otra explicación... o si hay otra forma de calcular el desfadaje a través de las entradas digitales metiendo medio ciclo pasando las señales por un Smith Trigger? Se me ocurre si puedo medir el tiempo entre ambas y no por medio algebraico
40
STX8091 / Re:Muestrear dos señales al mismo tiempo
« Último mensaje por Soporte diciembre 02, 2019, 20:09:15 pm »
Hola gracias por responder, lo hice así y funciona me muestra las señales en el programa que estoy diseñando pero cuando calcula el coseno me da cualquier valor porque las señales cambian el desfadaje como si no se muestrearan al mismo tiempo , en un momento largan la fase adecuada que debería tener como la veo en el osciloscopio y en otro las cambia y el cálculo del coseno tambien....

Buenas tardes.

El dispositivo muestrea ambos canales al mismo tiempo (con una diferencia mínima entre muestras equivalentes), espera que se llene un buffer de 127 muestras de un canal y las envía en un paquete de 127 bytes por ethernet en periodos constantes, mientras continua con el muestreo.

Lo que puede pasar es que al momento de enviar, el canal 1 haya completado su muestreo, mientras el canal 2 no, entonces, envía un paquete del canal 1, y en la siguiente transmisión ambos canales pueden haber completado el muestreo, por lo que envía los paquetes del canal 1 y 2, o envia dos paquetes de muestras seguidas del canal 2, y luego un paquete del canal 1.

Es decir, el orden de llegada de paquetes de un mismo canal es secuencial y consecutivo, pero en dos canales diferentes no quiere decir que los paquetes lleguen 1 a 1 sincronizados al mismo tiempo.

Por lo tanto, de la forma que calculas el coseno, desde los eventos de llegadas, puede que estés comparando muestras en diferentes tiempos.

Lo que deberías hacer, es crear por ejemplo un array que permita almacenar una X cantidad de paquetes de ambos canales.

Por ejemplo:

Array_Canal_1[127 * X]
Array_Canal_2[127 * X]


Donde X es por ejemplo un número mayor o igual a 10 (jugar con este valor, es para almacenar varios paquetes seguidos).

Entonces, cada vez que almacenás un paquete de un canal, incrementás un contador:

Paquetes_Canal_1++

o

Paquetes_Canal_2++


Cuando ambos contadores de paquetes, llegan a 10, realizas el cálculo.

Deberías contemplar también, que una vez que llegan los contadores a 10, los paquetes que sigan llegando, se almacenen en otro buffer, para el siguiente calculo cuando lleguen nuevamente a 10, y así sucesivamente. Podés utilizar un array bidimensional, para mayor prolijidad:

Array_Canal_1[2][127 * X]

Cuando se llena el array Array_Canal_1[0][127 * X], seguis almacenando en el array Array_Canal_1[1][127 * X], y luego volvés a reutilizar el primer array.


La única parte que depende de las muestras de ambas señales es:

Código: (C#) [Seleccionar]
mainForm.Wi = mainForm.Wi + mainForm.V[i] * mainForm.I[i];
Ya que si solo necesitás obtener el TRUE RMS de ambos canales, y no valores instantáneos, no hace falta ir almacenando en arrays, sino simplemente ir sumando cuadrados.




Por otro lado, veo que utilizás la formula de Valor TRUE RMS, si mal no recuerdo para que el valor sea válido, debés muestrear varios ciclos de la señal (por ejemplo 5 o más) para recién realizar el calculo de valor eficaz, así el calculo es más preciso, ya que se promedian sumatorias de cuadrados. Si en las 127 muestras que tomás, entran varios ciclos de la señal periódica, entonces es correcto, pero conviene dar un margen.

En este post, hay algunos comentarios del valor TRUE RMS que pueden ser de utilidad:

http://foro.slicetex.com/index.php?topic=329.msg1775#msg1775

Si no se me pasa nada por alto, estas serian las consideraciones.

Saludos!



Páginas: 1 2 3 [4] 5 6 ... 10