jueves, 7 de noviembre de 2013

Estructuras de secuencia en LabVIEW

Estructuras en labVIEW

Aquí un repaso rápido y sencillo de las estructuras comunes de LabVIEW.

Ciclo For

Es usado para ejecutar una sección del código un número determinado de veces El código que necesita ser ejecutado repetidas veces es ingresado en el lazo.
El número de iteraciones se especifica en la N del cuadro si es cero el lazo no se ejecutará, i es un contador ascendente
Los datos salen del ciclo por un túnel, si este tiene habilitado el indexado saldrá un arreglo si no, saldrá el último valor que entre a él





•Es utilizado para crear arreglos y para separarlos, lo que permite trabajar elemento por elemento del array.
•El auto-indexado puede manejar arreglos de mas de una dimensión
•Con un lazo dentro de otro se crean arreglos (array 2D) de dos dimensiones donde el lazo interior dará el número de columnas y el de fuera el de filas.






Ciclo While

•Se ejecutará hasta que se cumpla una condición y se entregue el valor boleano de parada (parar cuando sea verdadero es la mas utilizada)
•El terminal condicional se ubica en la parte inferior derecha del lazo.
•Puede usar túneles (auto-indexado esta deshabilitado por defecto).
•Usualmente mas usado que el For loop porque tiene un mecanismo para abortar la ejecución y el tener la capacidad de detener la ejecución es muy importante en cualquier programa. 





Estructura de caso

•Es una estructura condicional
•Se ejecutara el caso correspondiente a su entrada
•Si el caso no esta especificado se ejecuta el que esta por defecto





•Boleano:
–Solo existen dos valores
•Numérico
–Se ejecuta el caso en relación al número de entrada 1,2,… o en función de rangos 2..5, o desde un número en adelante 5..
•String
–Compara el texto del control con el texto del caso y se ejecutara el algoritmo que se encuentra dentro de este
•Enum
–Se ejecuta el caso seleccionado en el Enum
•Se puede añadir o borrar casos accediendo al menú rápido y seleccionando:
–Add case after o before
–Delete this case


Shift register

•Los registros de corrimiento permiten almacenar los datos que ingresaron a él en un registro.
•Permite retroalimentar los valores para la nueva ejecución
•Consta de un elemento que entrega los datos y otro que permite ingresarle datos al registro.
•Permite inicializarse, si no se lo hace el primer valor será 0 si el registro es de datos numéricos y la próxima vez que se ejecute el programa el primer valor que entregue será el último que llegó al registro


Estructura de secuencia

Se encuentra en la paleta de estructuras
•Luce como un cuadro de película cuando se lo posiciona


   
•Permite una ejecución progresiva en relación al orden establecido en ella. Los objetos ubicados en el primer cuadro se ejecutaran primero y así sucesivamente
•Se le pueden añadir cuadros haciendo clic derecho sobre la estructura e indicando “Add Frame” estos se pueden ubicar antes o después del cuadro actual
•Se pueden pasar datos de un cuadro a otro usando secuencias locales (disponible en el menú rápido) donde la flecha en ellas indica si el dato esta ingresando en la secuencia o saliendo de ella y su color representa el tipo de dato.
•La secuencia local esta disponible en todos los cuadros
•Los datos salen de la estructura por túneles pero el dato saldrá por ellos solo cuando todos los cuadros culminen.


    
•Control de tiempo en la estructura de secuencia
–Utilizando las funciones de temporización
•Wait (ms)
•Wait until next ms multiple



Nodo de fórmula

•Es un contenedor de formulas matemáticas.
•Acepta lenguaje c.
•Las variables de la fórmula deben ser especificadas como entradas o salidas en sus paredes con Add input o Add output para que se creen los terminales para estos datos.
•Todas las entradas deben ser conectadas para que se ejecute.
•Cualquier expresión debe terminar con “;”
•En el Context Help se encuentran las funciones que se puede usar.
•Las operaciones son compiladas internamente y ahorra espacio en el diagrama de bloques.







martes, 5 de noviembre de 2013

LCD_Descripción y Nombre de los Pins


La pantalla LCD ( Liquid Crystal Display) es un módulo de visualización electrónica y tiene una amplia gama de aplicaciones . Una pantalla LCD de 16x2 es un módulo muy básico y es muy utilizado en diversos dispositivos y circuitos . Estos módulos son preferibles a los siete segmentos LED y otros segmentos múltiples. Las razones son: 
Los LCD son económicamente mas baratos, fáciles de programar, no tienen limitación especial y hasta  tienen caracteres personalizados (a diferencia de siete segmentos), animaciones, etc.

Una pantalla LCD de 16x2 significa que puede mostrar 16 caracteres por línea y hay 2  líneas . En esta pantalla LCD se muestra cada carácter en la matriz de 5x7 píxeles . Esta pantalla tiene dos registros, a saber, Comando y Datos.

El registro de comando almacena las instrucciones de comando dado al LCD. Un comando es una instrucción dada a LCD para hacer una tarea predefinida como inicializar el LCD, limpiar su pantalla, ajustar la posición del cursor, el control de pantalla, etc. El registro de datos almacena los datos que se muestran en la pantalla LCD. Los datos son el valor ASCII del carácter que se visualiza en la pantalla LCD. 




 Pin No
 Función
 Nombre
1
Ground (0V) (Tierra)
Ground
2
Supply voltage; 5V (4.7V – 5.3V) (Voltaje de alimentación)
 Vcc
3
Ajuste de contraste a través de un resistor variable (potenciometro)
 VEE
4
Selecciona comandos y registra cuando es bajo y cuando es alto.
Register Select
5
Bajo para escribir al registro. Alto para leer del registro.
Read/write
6
Envia datos cuando recibe un pulso de alto a bajo.
Enable
7
8-bit Pins de datos.
DB0
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
Backlight VCC (5V)
Led+
16
Backlight Ground (0V)
Led-


















*El Backlight es la luz de fondo del LCD esto es para poder distinguir la pantalla en escasez de luz. No todos los LCD lo traen y los que si tienen un costo un poco mas elevado.





**Articulo extraído de un foro de electrónica y traducido vagamente al español.

FESTO PLC__Maestro-Esclavo (practica)

Tenemos una practica o mas bien una guía de como crear un sistema de maestro-esclavo sencillo en el PLC de FESTO, esta prácticamente es para entender el funcionamiento básico de el enlace y como hacerlo entre dos PLCs. Uno maestro y el otro esclavo lo que indica que las decisiones las toma el PLC maestro y las acciones se ven reflejadas en el PLC esclavo.

Guía sencilla y fácil de entender.


Maestro-Esclavo       <------------- Link


Agradecimiento al profesor Alfonso quien realizo esta presentación en powerpoint y ayudo a comprender la perfectamente. Gracias.


lunes, 4 de noviembre de 2013

Fuente de Alimentación en PCB Wizard (Practica)

¡OJO! Esto es una practica de como hacer el circuito en el programa PCB Wizard no es el programa en si, esto es solo un documento en Word que servirá de guía o base para realizar el circuito o de igual manera tan solo realizar el reporte de practica.


Una fuente de alimentación en PCB Wizard 



Practica: Tarjeta de una Fuente de Alimentación realizada en un software.
Objetivo: Al finalizar la práctica se tendrá por finalizado el circuito de la tarjeta.


Fuente en PCB            <------------------ Link

Sistemas Lineales para la automatización

¿Problemas con Sistemas Lineales?

¿Tienes tarea y no quieres andar buscando en la web?

¿Deseas tener por adelantado la lección?

Presentamos ahora una recopilación de temas vistos en esta materia así como ejemplos y ejercicios propuestos para ayudar a entender mas esta gran materia.

Antología básica en el entendimiento de la materia.

Unidades:

Unidad 1 – Números complejos
Unidad 2 – Sistemas Lineales
Unidad 3 – Ecuaciones Diferenciales


Bibliografía (¡por que si la tiene!)

Álgebra Lineal con Aplicaciones,  Gareth Williams, cuarta edición.

Matemáticas Avanzadas para Ingeniería, Dennis G. Zill, tercera edición.

Ecuaciones Diferenciales con aplicaciones de modelado, Dennis G. Zill, novena edición.

Calculo, Roland E. Larson, sexta edición.

Ecuaciones Diferenciales aplicadas, Murray R Spiegel, tercera edición.



Eh aquí la antología:


Antologia Sistemas Lineales        <--------- Link

LENGUAJES DE PROGRAMACION DE PLC´S

LENGUAJES DE PROGRAMACION DE PLC´S

1. PROGRAMA Y LENGUAJE DE PROGRAMACIÓN

Se puede definir un programa como un conjunto de instrucciones, órdenes y símbolos reconocibles por el PLC, a través de su unidad de programación, que le permiten ejecutar una secuencia de control deseada. El Lenguaje de Programación en cambio, permite al usuario ingresar un programa de control en la memoria del PLC, usando una sintaxis establecida.

Al igual como los PLCs se han desarrollado y expandido, los lenguajes de programación también se han desarrollado con ellos. Los lenguajes de hoy en día tienen nuevas y más versátiles instrucciones y con mayor poder de computación. Por ejemplo, los PLCs pueden transferir bloques de datos de una localización de memoria a otra, mientras al mismo tiempo llevan cabo operaciones lógicas y matemáticas en otro bloque. Como resultado de estas nuevas y expandidas instrucciones, los programas de control pueden ahora manejar datos más fácilmente.

Adicionalmente a las nuevas instrucciones de programación, el desarrollo de nuevos módulos de entradas y salidas también ha obligado a cambiar las instrucciones existentes.

2. PROGRAMAS DE APLICACIÓN Y DEL SISTEMA

Los programas de aplicación que crean los usuarios están orientados a ejecutar, a través del controlador, tareas de automatización y control. Para ello, el usuario escribe el programa en el lenguaje de programación que mejor se adapte a su trabajo y con el que sienta poseer un mejor dominio. En este punto es importante señalar, que algunos fabricantes no ofrecen todas las formas de representación de lenguajes de programación, por lo que el usuario deberá adaptarse a  la representación disponible

Por otro lado, el conjunto de programas que realizan funciones operativas internas del controlador,  incluyendo los traductores de lenguaje,  reciben la denominación de programas del sistema o software del sistema. Un elemento importante de éste, es el sistema operativo, cuyos servicios incluyen el manejo de los dispositivos de entrada y salida del PLC, el almacenamiento de la información durante largos períodos, el procesamiento de los programas del usuario, etc. Estos programas ya vienen escritos y están almacenados en una memoria No volátil dentro de la CPU, por lo tanto no se pierden ni alteran en caso de pérdida de alimentación al equipo. El usuario No tiene acceso a ellos.
3. TIPOS DE LENGUAJES DE PROGRAMACIÓN DE PLCS
En la actualidad cada fabricante diseña su propio software de programación, lo que significa que existe una gran variedad comparable con la cantidad de PLCs que hay en el mercado. No obstante, actualmente existen tres tipos de lenguajes de programación de PLCs como los más difundidos a nivel mundial; estos son:
- Lenguaje de contactos o Ladder
- Lenguaje Booleano (Lista de instrucciones)
- Diagrama de funciones

Es obvio, que la gran diversidad de lenguajes de programación da lugar a que cada fabricante tenga su propia representación, originando cierta incomodidad al usuario cuando programa más de un PLC.
4. LA NORMA IEC 1131-3
La Comisión Electrotécnica Internacional (IEC) desarrolló el estándar IEC 1131, en un esfuerzo para estandarizar los Controladores Programables. Uno de los objetivos del Comité fue crear un conjunto común de instrucciones que podría ser usado en todos los PLCs. Aunque el estándar 1131 alcanzó el estado de estándar internacional en agosto de 1992, el esfuerzo para crear un PLC estándar global ha sido una tarea muy difícil debido a la diversidad de fabricantes de PLCs y a los problemas de incompatibilidad de programas entre marcas de PLCs.
El estándar IEC 1131 para controladores programables consiste de cinco partes, una de las cuales hace referencia a los lenguajes de programación y es referida como la IEC 1131-3.
El estándar IEC 1131-3 define dos lenguajes gráficos y dos lenguajes basados en texto, para la programación de PLCs. Los lenguajes gráficos utilizan símbolos para programar las instrucciones de control, mientras los lenguajes basados en texto, usan cadenas de caracteres para programar las instrucciones.
·         Lenguajes Gráficos

o   Diagrama Ladder (LD)
o   Diagrama de Bloques de Funciones (FBD)

·         Lenguajes Textuales

o   Lista de Instrucciones (IL)
o   Texto Estructurado (ST)

Adicionalmente, el estándar IEC 1131-3 incluye una forma de programación orientada a objetos llamada Sequential Function Chart (SFC). SFC es a menudo categorizado como un lenguaje IEC 1131-3, pero éste es realmente una estructura organizacional que coordina los cuatro lenguajes estándares de programación (LD, FBD, IL y ST). La estructura del SFC tuvo sus raíces en el primer estándar francés de Grafcet (IEC 848).

5. LENGUAJE LADDER

El LADDER, también denominado lenguaje de contactos o de escalera, es un lenguaje de programación gráfico muy popular dentro de los Controladores Lógicos Programables (PLC), debido a que está basado en los esquemas eléctricos de control clásicos. De este modo, con los conocimientos que todo técnico eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje. Su principal ventaja es que los símbolos básicos están normalizados según normas NEMA y son empleados por todos los fabricantes.

·         Elementos de programación

 

Para programar un PLC con LADDER, además de estar familiarizado con las reglas de los circuitos de conmutación, es necesario conocer cada uno de los elementos de que consta este lenguaje. En la siguiente tabla podemos observar los símbolos de los elementos básicos junto con sus respectivas descripciones.






·        
Programación 

 

Una vez conocidos los elementos que LADDER proporciona para su programación, resulta importante resaltar cómo se estructura un programa y cuál es el orden de ejecución.

El siguiente esquema representa la estructura general de la distribución de todo programa LADDER, contactos a la izquierda y bobinas y otros elementos a la derecha. 





En cuanto a su equivalencia eléctrica, podemos imaginar que las líneas verticales representan las líneas de alimentación de un circuito de control eléctrico.
El orden de ejecución es generalmente de arriba hacia abajo y de izquierda a derecha, primero los contactos y luego las bobinas, de manera que al llegar a éstas ya se conoce el valor de los contactos y se activan si procede. El orden de ejecución puede variar de un controlador a otro, pero siempre se respetará el orden de introducción del programa, de manera que se ejecuta primero lo que primero se introduce.

·         Variables internas y bits de sistema

 

Las variables internas son bits auxiliares que pueden ser usados según convenga, sin necesidad de que representen ningún elemento del autómata. Se suele indicar mediante los caracteres B ó M y tienen tanto bobinas como contactos asociados a las mismas. Su número de identificación suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar información intermedia para simplificar esquemas y programación.
Los bits de sistema son contactos que el propio autómata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los más importantes los de arranque y los de reloj, que permiten que empiece la ejecución desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autómata y fabricante
6. LENGUAJE BOOLEANO (Lista de Instrucciones)

El lenguaje Booleano utiliza la sintaxis del Álgebra de Boole para ingresar y explicar la lógica de control. Consiste en elaborar una lista de instrucciones o nemónicos, haciendo uso de operadores Booleanos (AND, OR, NOT, etc.) y otras instrucciones nemónicas, para implementar el circuito de control. El lenguaje “Lista de Instrucciones” (IL) de la Norma IEC 1131-3, es una forma de lenguaje Booleano.

Ejemplo de programación Booleana:

A         I           2.3
A         I           4.1
O         I           3.2
=          Q         1.6

7. DIAGRAMA DE FUNCIONES (FBD)

Es un lenguaje gráfico que permite al usuario programar elementos (bloque de funciones del PLC) en tal forma que ellos aparecen interconectados al igual que un circuito eléctrico. Generalmente utilizan símbolos lógicos para representar al bloque de función. Las salidas lógicas no requieren incorporar una bobina de salida, porque la salida es representada por una variable asignada a la salida del bloque.

El diagrama de funciones lógicas, resulta especialmente cómodo de utilizar, a técnicos habituados a trabajar con circuitos de puertas lógicas, ya que la simbología usada en ambos es equivalente.

Adicionalmente a las funciones lógicas estándares y específicas del vendedor, el lenguaje FBD de la Norma IEC 1131-3 permite al usuario construir sus propios bloques de funciones, de acuerdo a los requerimientos del programa de control.





Ejemplo de programación mediante diagrama de funciones:




8. LENGUAJE DE TEXTO ESTRUCTURADO (ST)

Texto estructurado (ST) es un lenguaje de alto nivel que permite la programación estructurada, lo que significa que muchas tareas complejas pueden ser divididas en unidades más pequeñas. ST se parece mucho a los lenguajes de computadoras BASIC o PASCAL, que usa subrutinas para llevar a cabo diferentes partes de las funciones de control y paso de parámetros y valores entre las diferentes secciones del programa.

 Al igual que LD, FBD e IL, el lenguaje de texto estructurado utiliza la definición de variables para identificar entradas y salidas de dispositivos de campo y cualquier otra variable creada internamente.

Incluye estructuras de cálculo repetitivo y condicional, tales como: FOR ... TO; REPEAT..... UNTIL X; WHILE X... ; IF ... THEN ...ELSE. Además soporta operaciones Booleanas (AND, OR, etc.) y una variedad de datos específicos, tales como fecha, hora.

La programación en Texto Estructurado es apropiada para aplicaciones que involucran manipulación de datos, ordenamiento computacional y aplicaciones matemáticas que utilizan valores de punto flotante. ST es el mejor lenguaje para la implementación de aplicaciones de inteligencia artificial, lógica difusa, toma de decisiones, etc.

Ejemplo:

IF Manual AND Alarm THEN
Level = Manual_Level;
Mixer = Start AND NOT Reset
ELSE IF          Other_Mode THEN
                        Level = Max_level;
ELSE              Level = (Level_Indic X100)/Scale;
END IF;


9. SEQUENTIAL FUNCTION CHART (SFC)

Es un “lenguaje” gráfico que provee una representación diagramática de secuencias de control en un programa. Básicamente, SFC es similar a un diagrama de flujo, en el que se puede organizar los subprogramas o subrutinas (programadas en LD, FBD, IL y/o ST) que forman el programa de control. SFC es particularmente útil para operaciones de control secuencial, donde un programa fluye de un punto a otro una vez que una condición ha sido satisfecha (cierta o falsa).

El marco de programación de SFC contiene tres principales elementos que organizan el programa de control:

·         Pasos (etapas)
·         Transiciones (condiciones)
·         Acciones

El programa irá activando cada una de las etapas y desactivando la anterior conforme se vayan cumpliendo cada una de las condiciones. Las acciones se realizarán en función de la etapa activa a la que están asociadas. Por ejemplo, la etapa 1 activa tras arrancar el programa, al cumplirse la "Condición 1", se activará la etapa 2, se desactivará la 1, y se realizará la "Acción 1".

Ejemplo:





Como se mencionó anteriormente, el lenguaje SFC tiene su origen en el estándar francés GRAFCET (GRAFica de Control de Etapas de Transición). El grafcet también utiliza etapas, transiciones y acciones, que operan de la misma manera como en SFC.