Configuracion de la instruccion apr en plc omron CJ2M (Valoración de 5.00 sobre 5, resultante de 1 votos)

Componentes y tecnología electrónica, regulación, automatización, domótica, inmótica y edificio inteligente. Protocolo KNX, X10, EIB, LON, DALI, DMX, Zigbee, Powerline…
por
#279056
Hola. He trabajado anteriormente con autómatas compactos OMRON, CPM1A, que sólo tienen entradas y salidas digitales. La cuestión es que estoy trabajando en un proyecto con un PLC modular CJ2M y estoy teniendo dificultades con las entradas analógicas. Tengo varios sensores de corriente, tensión, presión hidráulica y cada uno con su salida 0-5V, 0-10V , 4-20mA, etc... Una vez configurada cada una de las entradas me he puesto a escalar los valores de las entradas analógicas a su correspondiente valor físico y para ello he estado indagando en la instrucción APR que permite hacer el seno, coseno y extrapolación lineal de una señal.
La he configurado para la aproximación lineal por una recta definida por dos puntos y he conseguido obtener el valor de la tensión de una fuente de alimentación de 24V que mide un sensor de tensión que da 4-20mA para 0-50Vdc. Pero yo quiero trabajar con valores reales, no enteros y ahí me surgen dudas:
¿los valores de las coordenadas de la recta de escala hay que convertirlos a flotante?
¿hay que usar dos canales de memoria para cada coordenada aunque trabajes con precisión simple?
En binario sin signo el siguiente canal al canal de control es la coordenada x del último punto de la recta (que hay que indicarlo dos veces, no entiendo por qué), pero con flotantes el siguiente canal es la coordenada x del primer punto de la recta ¿no?
Seguramente me surgirán más dudas, porque esta instrucción me parece demasiado complicada de utilizar, incluso siguiendo la documentación.
Espero que alguien con experiencia con esta instrucción me pueda aclarar estas dudas. En cualquier caso, gracias y saludos.
Última edición por fabriziomoretti el 23 Ago 2011, 07:39, editado 1 vez en total
Avatar de Usuario
por
#279062
Tu versión de CPU, admite Function Block ??
Avatar de Usuario
por
#279066
fabriziomoretti escribió:La CPU creo que es la CJ2M-CPU31, aunque no estoy seguro. Supongo que admitirá function block, pero tampoco lo sé.
Te va a depender de la versión de firmWare.. revisala, y revisa el manual sobre la misma..
Si lo admite, eso es tu solución, al margend e otras.. esa será la mas eficaz..
La FB, te permite programar con texto estructurado , y trabajo en coma flotante directa.. es decir, haces una FB de conversión , le das como dato la lectura , las escalas, los rangos, y cualquier otro dato relevante y que te devuelva la lectura ya convertida a tu magnitud..
Luego, la aplicas en el códico, tantas veces como necesites..
por
#279069
Gracias por la respuesta. Cuando pueda comprobaré la versión de firmware que tengo. De todos modos cuál sería la diferencia entre usar un function block y programar una subrutina, al fin y al cabo tendría que programarlo yo ¿poder usar texto estructurado?¿el trabajo con coma flotante es distinto?. La idea de usar APR era evitar programar la ecuación de la recta y aprovechar una instrucción ya existente (aunque visto la dificultad de configuración a lo mejor no compensa).
Gracias de nuevo.
Avatar de Usuario
por
#279070
fabriziomoretti escribió:Gracias por la respuesta. Cuando pueda comprobaré la versión de firmware que tengo.

De todos modos cuál sería la diferencia entre usar un function block y programar una subrutina, al fin y al cabo tendría que programarlo yo ¿poder usar texto estructurado?¿el trabajo con coma flotante es distinto?.
Hombre.. un abismo hay... en el ladder, o trabajo con direcciones, tu has de hacer todas las operaciones y comprobaciones pertinentes.. por poner un ejemplo, si haces un producto en flotante.. has de operar con 4 canales, y posterior comprobar los acarreos y demás gaitas..

En testo estructurado, tu defines al inicio de la declaración unas variables y su tipo.. (como si fuese un visual cualquiera, vamos) y simplemente las operas..
En una FB con TE, esto y=b + k x X ; se escribe tal cual, donde K es la pendiente de la recta y b el offser o valor y en paso por cero de la X

Intenta hacer esa ecuación en un ladder, en flotante..

Ya no te hablo de no tener que preocuparte pro la perdida de decimales, y nadar jugando con el orden de las operaciones..

Es mucho mas claro y limpio, cuando lo ves en el CX, también. Eso si, gasta memoria y tamaño de programa (pasos) que es un primor... :eaea


fabriziomoretti escribió:La idea de usar APR era evitar programar la ecuación de la recta y aprovechar una instrucción ya existente (aunque visto la dificultad de configuración a lo mejor no compensa).

Con las FB, terminas primero, que haciendo la precarga de parámetros, para en ladder.. para la APR
por
#279112
Buenas. Todavía no he podido comprobar la versión de firmware que tengo, pero estoy probando con el simulador a utilizar los bloques de función para familiarizarme. Defino las variables de entrada y de salida como real pero el valor de conversión para las entradas 4-20mA es un entero entre 0-0FA0 en hexadecimal (para la resolución de 4000). ¿ Podrías decirme cuál es la instrucción para convertir enteros sin signo a coma flotante y así poder pasársela al bloque de función? revisando la referencia de instrucciones no la veo. Gracias.
por
#279120
Gracias. Yo buscaba la instrucción ladder para convertir el valor a real antes de pasárselo al function block, pero puedo hacer la conversión dentro, antes de hacer los cálculos, con la info que me das. El problema es que me da un error: Conversion no puede convertir desde literal de entero a real. ¿Sabéis alguno que puede ser?
por
#279140
Hola de nuevo. Pues ya he estado probando un bloque de función para escalar un sensor de tensión dc con el PLC y funciona perfectamente, así que voy a continuar de esta manera. Gracias a Cueli por la idea y a dfjcap por la info de conversión. De momento APR queda aparcada aunque me gustarían llegar a entender su funcionamiento.
Por cierto el error que comentaba antes me ocurría porque estaba definiendo las constantes reales con un punto decimal y tenía que utilizar comas (así es la vida). Gracias de nuevo.
por
#279168
fabriziomoretti escribió:Hola de nuevo. Pues ya he estado probando un bloque de función para escalar un sensor de tensión dc con el PLC y funciona perfectamente, así que voy a continuar de esta manera. Gracias a Cueli por la idea y a dfjcap por la info de conversión. De momento APR queda aparcada aunque me gustarían llegar a entender su funcionamiento.
Por cierto el error que comentaba antes me ocurría porque estaba definiendo las constantes reales con un punto decimal y tenía que utilizar comas (así es la vida). Gracias de nuevo.



Hola , para escalar un valor en omron tienes la funcion especifica (scl) . Aqui tienes un enlace con un pequeño tutorial de la misma :

http://www.infoplc.net/descargas/13-omr ... ad041-cj1m
Palabras clave
Temas similares

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

Permisos de mensaje

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro