Como crear nuestros propios procesos con PLC & SCADA en pocos pasos

#1
Muchas veces, nos encontramos en la encrucijada en que a nuestros proyectos microcontrolados u con PLC (controladores lógicos programables) de automatización y control, le falta su software de control y monitoreo y por carencia de conocimientos en programacion, dejamos esta parte a un lado.
También podemos sumar la cuota de que quizás un PLC comercial no esta dentro del rango monetario que manejamos; Es por ello que como no hay tema similar en el foro, y creí que quizás a varios les puede llegar a interesar saber como crear sus propios automatismos e incluirles sus propias plataformas SCADA para monitorear y controlar variables en un proceso.... En otras palabras, decidí crear este mini tutorial para entrarlos en el tema... Aclaro:

1_"No importa si no tienes conocimientos de programacion de software, en este caso, vamos a dejar de lado VB u otros lenguajes de programacion complejos y vamos a tratar el tema con un sencillo editor y generador de SCADA open source".

2_"No importa si no sabes programar en lenguaje escalera... en pocos pasos, vamos a ver el tema y aprenderemos a programar en este lenguaje sencillo"

En paralelo a todo esto, conoceremos otro software libre para programar una sencilla placa con un microcontrolador (PIC - AVR), en lenguaje de escalera (LADDER), que es el lenguaje por lo general empleado, en la gran mayoría de los PLC...
Un dato relevante sobre estos dos software, es que XSACADA emplea varios protocolos de comunicación, lo cual nos permite hacer aplicaciones en las cuales podemos crear nuestras aplicaciones tanto como para controlar cosas desde el puerto serial de nuestra PC (Ethernet esta dentro de las posibilidades), también podemos comunicarnos con un microcontrolador u bien, emplear modbus y establecer comunicación con PLC comerciales....
Por otro lado, el editor y compilador LDmicro, que emplearemos para programar nuestras placas microcontroladas; Tiene todas las funciones que podemos encontrar en un PLC comercial, mas un par de funciones mas que lo complementan y hacen una herramienta eficaz.

Nota:
El link de donde descargar el software, no lo pongo para no tener problemas de moderacion, pero San Google los ayuda si le preguntan por XSCADA y LDmicro (si el moderador lo amerita, cito links ) ;)

Bueno, arranco subiendo un sencillo video (el primero de los tres), e intentare mostrarles básicamente como emplear el protocolo de comunicación empleado por el software editor gratuito XSCADA , para generar sus propias aplicaciones de control.
El imsmo puede ser empleado par alo que quieran (Control por PC - Microcontroladores - Internet - PLC - Etc.)


A medida que tenga tiempo, voy a subir el hardware, ideas basicas generales, el mini curso de ladder y si alguien quiere ir aportando ...todo es bienvenido... Saludos

Wikipedia:

 
#2
Indice:
1_ "Diseño del hardware"
(en construcción)
2_ "Herramientas en LDmicro"(en construcción)

3_ "Programacion en lenguaje Escalera (LADDER)"(en construcción)

4_ "Herramientas en Xscada"
(en construcción)

ejemplo1.PNG

Ahora, vamos a ver unos videos sencillos de como trabajar con cada herramienta:






(en construccion)

5_ "Proyecto final: Xscada + LDmicro + ETIboard16F877a"(en construcción - ya estare subiendo el programa, el hardware y la simu. proteus)
captura_2.JPG

captura_1.JPG
 
#4
en breve estoy retomando este tema... Se actualizo la version de XSCADA, y viene con un paquete bastante rico en funciones y algunas las estoy tratando de entender, por que no hay mucha info disponible.
Quiero aclarar, y destacar, que XSCADA de la empresa MICSET, es totalmente gratuito y operativo el 100%.
Dentro de las nuevas innovaciones, encontre que ahora tiene la opcion de paneles tactil, comunicacion con un par mas de PLC comerciales, funciones graficas y librerias nuevas...y, una par de cositas mas que no me quiero adelntar mucho hasta no probarlas...
 
#5
jamesoro dijo:
Muy bien men, excelente aporte yo programo plc y queria terminar con el scada, estare atento a mas datos
Hola amigo, no es tan complejo el software ya que implementa una técnica y herramientas de diseño de aplicaciones muy similar a la interfaz de VisualBasic o VisualC...
Fijate que en el video, la interfaz de usuario es prácticamente muy similar (del lado derecho herramientas, y del lado derecho, la configuración de dichas herramientas).
Yo aprendí mucho por intuición, y el resto por persistencia (por no decir cabezón).
Comentame que PLC estas implementando; Vamos a ver si me sobra un poquito de tiempo para hacerte un ejemplo de comunicación XSCADA – PLC.
Una vez que esto ya lo tienes en claro y que en la práctica lo pudiste sacar adelante, el resto es mucho más fácil ya que solo tienes que crear los objetos, y re direccionar las variables.
 
#6
Se que se va un poco del tema, pero te respondo por que se que quizas a alguien mas pueda servirle lo que te paso a comentar...
Mirá, basicamente los SCADAS y las pantallas de explotacion funcionana de la misma manera; Se direccionan o redireccionan variables para poder monitorear y o controlarlas. Lo que cambia entre un scada y otro, es la forma de programarlos... Hay algunos que se escriben de pie a cabeza en un lenguaje de programacion (C,pascal, etc etc), y hay otros que trabajan con librerias donde arrastras, y soltas en la pantalla para luego colocarle la funcion del objeto. La gran diferencia entre un sistema escada y una pantalla de explotacion, es que con la pantalla de explotacion estableces una sencilla comunicacion serial entre el software especifico del automata instalado en la PC con el mismo PLC... Y el SCADA, estableces una comunicacion con varios automatas y o actuadores u PAC que toleren el tipo de lazo y no solo se puede monitorear estados, si no que tambien se puede trabajar sobre los actuadores forzandolos y o enviandoles directivas para que actuen sobre una variable de otra manera... es un tema bastante abarcativo, que no queda en solo armar el control... Hay qeu sumar conocimientos de control de procesos, ya que la seleccion erronea del tipo de control establecido, nos puede generar una respuesta no esperada..
te dejo un link de mi server para que puedas descargar un poco de info sobre control de procesos...
https://sites.google.com/a/educ.ar/eti/file-cabinet
Saludos

PD: La licencia gratuita de XSCADA, es solo para empleos con fines educacionales y o hobistas... solo queria aclarar este punto por que al certificar un trabajo, se tiene que especificar la licencia del software tambien para la auditoria
 
#7
XEdit es un SCADA (control de supervisión y adquisición de datos) para los sistemas de microcontroladores basados ​​con HMI([/SIZE]Human Machine Interface). Este software, es el entorno de desarrollo integrado para configurar, desarrollar y gestionar aplicaciones HMI / SCADA.
Puede comunicarse con los PLC, PIC, ARM, AVR con protocolos MODBUS, LPT, ASCII y texto. Soporta PASCAL, C + +, Basic y JavaScript scripts y función de pantalla táctil para los dispositivos adecuados.
Esta version es libre y gratuita solo para propositos educativos y o hobistas.

XSCADA V4.58
( Stable version with TCP Pipe)

 
#8
Bueno, acá les dejo un tutorial completo a modo curso de como iniciarse en XSCADA con ejemplos desde lo mas sencillo, hasta ejemplos un poco mas complejos.

Indice de Videos:
indice_VIDEOS.JPG

:contrato:pD: Mi recomendacion es que descarguen todos los archivos "rar" en una misma carpeta y recien despues de tener todos juntitos, descomprimir...paciencia :rolleyes: son 2,64Gb comprimidos en 30Mb :)
Igualmente, no es un solo rar dividido... pueden descargarlos por separado y descomprimir y ver a su gusto (y)
 

Adjuntos

  • 2.6 MB Visitas: 220
  • 4.6 MB Visitas: 126
  • 4.6 MB Visitas: 105
  • 2.7 MB Visitas: 106
  • 2.4 MB Visitas: 98
  • 2.7 MB Visitas: 98
  • 2.9 MB Visitas: 100
  • 2.3 MB Visitas: 90
  • 2.6 MB Visitas: 102
  • 2.8 MB Visitas: 97
#10
Gracias por la buena onda amigos!!! Ahora arranco con la parte de LDmicro, despues con el minicurso de programacion en lenguaje escalera (LADDER)... y para cerrar, podria subir el ejemplo que les mostre arriba, pero seria bueno que se sume gente y hacer algo en conjunto... o sea, algo colaborativo...
Vi muchos topicos de gente que les gusta los proyectos de control de puertos... esto es sencillo con XSCADA... En fin, llegado el momento vemos que se hará.
 
#11
Bueno, en esta sección del tópico, voy a introducirlos prácticamente en el manejo de LDmicro, y en paralelo, para los que desconocen el lenguaje escalera (ladder), voy a intentar enseñarles las reglas básicas de programación para que se puedan insertar cómodamente en este mundo apasionante de la automatización...
Como sabrán, los lenguajes de programación son necesarios para la comunicación entre el usuario (sea programador u operario de la máquina o proceso donde se encuentre el PLC) y el PLC. La interacción que tiene el usuario con el PLC la puede realizar por medio de la utilización de un cargador de programa (loader Program) también reconocida como consola de programación o por medio de un PC (computador Personal).

Clasificación de los Lenguajes de Programación
Los lenguajes de programación para PLC pueden ser de dos tipos… visuales y escritos.
Los visuales admiten estructurar el programa por medio de símbolos gráficos, similares a los utilizados para describir los sistemas de automatización, planos, esquemáticos y diagramas de bloques.
Los escritos son listados de sentencias que describen las funciones a ejecutar.
Estos dos tipos de lenguajes mencionados anteriormente, son clasificados en dos niveles claramente marcados y o definidos; Al procesador le corresponde el nivel más bajo, y al usuario el nivel más alto.
Los programadores de PLC poseen formación en múltiples disciplinas y esto determina que exista una diversidad de lenguajes con los cuales podamos programarlos. Los programadores de aplicaciones familiarizados con el área industrial, por lo general prefieren lenguajes visuales, y por su parte quienes tienen formación en electrónica e informática optan, inicialmente por los lenguajes escritos (ASM,C, Basic, etc.).
Veamos con más detenimiento los Niveles de los lenguajes y cuál es la diferencia más notable entre ambos…

Lenguajes de Alto Nivel
Lenguaje de Maquina: Código binario encargado de la ejecución del programa directamente en el microprocesador.
Lenguaje Ensamblador: Lenguaje sintético de sentencias que representa cada una de las instrucciones que puede ejecutar el microprocesador. Una vez diseñado un programa en lenguaje ensamblador, es necesario para cargarlo en el sistema, convertirlo o compilarlo a lenguaje de máquina.

Lenguajes de Alto Nivel:
Se basan en la construcción de sentencias orientadas a la estructura lógica de lo deseado; una sentencia de lenguaje de alto nivel representa varias de bajo; cabe la posibilidad que las sentencias de un lenguaje de alto nivel no cubran todas las instrucciones del lenguaje de bajo nivel, lo que limita el control sobre la máquina. Para que un lenguaje de alto nivel sea legible por el sistema, debe traducirse a lenguaje ensamblador y posteriormente a lenguaje de máquina.

Como LDmicro trabaja en un lenguaje de AltoNivel, y para ser mas especifico, en lenguaje de contactos (lenguaje escalera o ladder); Vamos a ver y reconocer la estructura de este tippo de programacion para poder manejar este software.




Regla del Lenguaje de Plano de Contacto


El esquema se realiza entre dos líneas o barras de alimentación dispuestas verticalmente a ambos lados del diagrama, entre ellas se dibujan los elementos del lenguaje.

ESQUEMA.jpg

A la derecha del esquema se ubican los elementos de salida y a la izquierda los de entrada

ORDEN_ESQUEMA.jpg

El diagrama puede tener varias ramas o escalones.

ESCALONES_ESQUEMA.jpg

Cada rama permite ubicar varios elementos de entrada pero sólo uno de salida.

REGLA_1_ESQUEMA.jpg

La programación en cada bloque de contactos se realiza en el orden de izquierda a derecha y el sentido de programación de los bloques de contactos de un programa de ejecuta en el sentido de arriba para abajo.

REGLA_2_ESQUEMA.jpg

No se puede conectar una salida directamente a la línea principal, en estos casos se intercala un contacto cerrado de una marca o bit o relé interno cualquiera.

REGLA_3_ESQUEMA.jpg

Con relación a los contactos, tenga presente lo siguiente:

tab1.jpg

CONTACTOS DE ENTRADA
El número de contactos abiertos o cerrados que se pueden utilizar en un programa, por cada una de las entradas, es ilimitado; Es decir, que se puede repetir el mismo número de contacto cuantas veces quiera.

CONTACTOS DE SALIDA
El número de salidas o bobinas de salida o relay de salida (OUT) es fijo, por lo que no se puede repetir un mismo número de salida. Sin embargo, el número de contactos asociados a ellas es ilimitado.




Elementos del Lenguaje


Se clasifican en elementos de entrada y salida. Su estado es evaluado por el PLC para determinar un valor lógico, que recibe distintas denominaciones dependiendo del contexto de trabajo.

A continuación, se presenta una tabla donde se relacionan las denominaciones de los contextos con las usadas en este curso (activo e inactivo).


tab2.jpg


Elementos de Entrada

Los contactos, únicos elemento que se colocan a la entrada, son de tipo:

Normal Abierto (NO – Normal Open) --] [--
Normal Cerrado (NC- Normal Closed) --]/[--

Encima del contacto e escribe la variable a la cual hace referencia. El valor lógico del contacto depende directamente del valor lógico de su variable. Para lo contacto normal abierto, si la variable es V, el contacto era V y, si la variable es F, el contacto será F.
Lo contacto normal cerrado toman el valor inverso de su variable, si la variable e V, el contacto será evaluado como F y viceversa
Las variables a los cuales pueden referirse los contactos son:

tab3.jpg

Veámoslo de una manera más práctica…
Al energizar el contacto XI1 momentáneamente, automáticamente cerramos el circuito serie formado con XI2 y llegamos a la bobina interna RQ1. Este bit, lo implementaremos para cerrar el 1er contacto del segundo escalón, el cual, en la serie con el contacto XI3 alimentaran la salida YQ2.
El estado de YQ2, o sea, el bit de su estado (V-F/I-O/H-L/Encendido-Apagado), lo implementaremos en el contacto YQ2 del 1er escalón para generar un enclavamiento o memoria de retención. Con esto logramos que al soltar el pulsador que alimenta la entrada XI1, la salida YQ2 permanezca encendida.

elemento_ENTRADAS_1.jpg

Al abrir o des-energizar el contacto XI2, ya sea momentáneamente o permanentemente, automáticamente abrimos el circuito serie y noten como el bit de la bobina interna RQ1 cambia su estado (valor) en el contacto RQ1 del segundo escalón, el cual afecta inmediatamente la salida YQ2.
Esta salida, al estar en estado bajo (apagado), el contacto YQ2 que conmutaba según el valor del bit o estado de esta salida, ya no está en estado alto (encendido) y por ende, ya no tenemos la re-alimentación que mantenía cerrado el circuito (enclavamiento)

elemento_ENTRADAS_2.jpg




OPERACIONES LÓGICAS


Las operaciones lógicas más utilizadas son: AND, OR, NOT, EXOR.
A continuación, conoceremos las cuatro tablas de la verdad que las definen y en paralelo, iremos conociendo las funciones que tenemos disponibles en LDmicro

AND (Conjunción)
La operación lógica AND se aplica en situaciones en las que se requiere realizar una acción si y sólo sí se cumplen un determinado número de condiciones.


TAB_AND.jpg


En lenguaje de contactos se realiza disponiendo los contactos en serie… Veamos un Ejemplo:
En el circuito se activa YQ1cuandoXI0, XI1e XI2 son verdaderas.
De hecho el PLC evalúa la rama ejecutando la operación lógica YQ1 = XI0 AND XI1 AND XI2

F_AND.jpg


OR (Disyunción)
La operación lógica OR, entrega como resultado V (VERDADERO) siempre que alguna de las entradas sea V (verdadera-presente-estado lógico uno-etc.).


TAB_OR.jpg

En el lenguaje de contactos, se logra poniendo los contactos en paralelo… Veamos un ejemplo:
En el circuito se activa YQ1 si alguna de las entradas XI0 o XI1 se activa. La operación lógica es YQ1 =X I0 OR XI1

F_OR.jpg

EXOR (OR Exclusiva)
La EXOR (OR exclusiva) es V (VERDADERO) si alguna de las entradas, pero nunca ambas, es V también; se puede decir que es V si y sólo si las entradas son distintas.


TAB_EXOR.jpg

En el lenguaje de contactos es frecuente aquel caso en el cual las operaciones lógicas deben resolverse a partir de contactos normal abierto y normal cerrado. Veamos un ejemplo:
Para realizar la operación Q1.0 = I1.0 EXOR I1.1, se debe efectuar una combinación de operaciones AND y OR: YQ1.0 = ((XI0 AND (NOT XI1)) OR ((NOT XI0) AND XI1)).

F_XOR.jpg


NOT (Inversión)
La operación lógica NOT, entrega como resultado el estado contrario al presente en la entrada


TAB_NOT.jpg

En el lenguaje de contactos, esto se logra con el uso de Contactos Normal Cerrado. Veamos un ejemplo:
Función y operación realizada es YQ1 = NOT XI0

F_NOT.jpg

En nuestro siguiente capitulo, vamos a ver los elementos de salida y funciones especiales que contamos en LDmicro (contadores,pwm,USART,entre otros)
 
#13
Gracias Luis... ni bien lo termine, los voy a molestar para editarlo casi por completo asi lo ordenamos y queda casi perfecto...
Me falta subir algunas cosas de LD micro; elementos de salida en programacion,hardware modificado (con el terminal de programacion en circuito), algunos ejemplos de programacion (controles basicos electromecanicos y su respectiva logica de programacion en ladder), y despues de ello, el postre del tema... algun ejemplo completo con LDmicro + XSCADA...Si no hay ideas o propuestas, vere que se me ocurre en ese momento... Mas que nada para no repetir ejemplos mios, y que quizas le sirva a otras personas.
Saludos desde la Patagonia Argentina ;)
 
#15
Buenas muchachos... aqui dando nuevamente señales de vida...sepan que no los tengo olvidados ni tirados; Solo pasa que mientras estaba dandole forma a la redaccion de lo ultimo que estoy por subir, se me ocurrio de sumar mas cosas y llevar el hilo a un poco mas allá de lo que es o era la idea original...
Basicamente, como se que la mayoria de las personas que les puede llegar a interesar este topico en particular, son seguramente aficionados, se me ocurrio sumar una tematica mas para moldearlo directamente en un curso cuasicompleto de control.
Basicamente, lo que hice fue sumar parte de otros curso que redacte hace varios años de automatizacion con logicas cableadas y una pequeña intro al control de procesos por instrumental... Como todas las tematicas van de la mano, arranque con la re-edicion de mis propios contenidos para subirles esta nueva obra... La idea va ser terminar de subir todo acá y despues poner como complemento la version impresa que contendra mas tematicas.... Esta misma obra, la voy a presentar como ponencia en el proximo congreso de microcontroladores...

Les voy tirando algunas capturas...

IntroAUTO_1.jpg

IntroAUTO_5.jpg

IntroAUTO_2.jpg

IntroAUTO_3.jpg

IntroAUTO_4.jpg

Estoy ultimando los ultimos detalles del hardware y editando las fotos que pesan mas que un elefante... en breve... muy breve ya estare terminando... saludos y abrazos (y)
 
#17
Exelente aporte, justamente estoy implementando un control de una maquina con PLC y en principio no contaba con implementar plataformas SCADA, pero seguire mirando este tema.
De nuevo muchas gracias por el aporte.
 
#19
Hola amigazos... estoy en falta...ya lo se.. tengo que darme un tiempito para ya cerrar el libro y publicarlo... como el peso del archivo no lo soporta el foro, tendria que darle a Luis,Andres,Fogo o Dosme para wue lo suban ellos (esto suponiendo que ellos tienen mas atributos y pueden subor srchivos de mayor tamaño permitido.
ya esta, ya lo termine, solo falta emprolijar, sumar referencias, poner bien en grande los derechos de forosdeelectronica (por que es una version exclusiva realizada para los amogos de acá) y listo....
Pregunta del millon para los que estan subcripto al tema... que les gustaria como ejemplo final? Tirwn ideas de un proceso y lo hago a modo de ejemplo practics
 
#20
FELICIDADES, es un gran aporte y se nota que es una gran dedicacion que tienes, te felicito, te deseo un muy feliz año y a todos los compañeros del foro. yo diria que ejemplos practicos.
 
Arriba