Sei sulla pagina 1di 24

28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

ETI Proyectos >


OFICIOS
Aula Microcontroladores Como construir un PLC y un SCADA (Made in
Aula Electronica Home)
Aula Energías Ecológicas
publicado a la(s) 8 mar. 2014 14:05 por Firstname LastName [ actualizado el 22 sept. 2014
Circuitos y Kit´s 9:13 ]
Aula Industria
Proyectos
Archivos-Descarga

Donde encontrarnos...

Entra a nuestra pagina oficial de


Facebook y suma tu pulgar
haciendote fan

Tambien puedes unirte a nuestro


grupo cerrado en Facebook

Introducción Contenidos

Muchas veces, nos encontramos en la 1 Introducción


encrucijada en que a nuestros proyectos 2 Que son los PLC???
microcontrolados u con PLC 3 Que son los sistemas SCADA???
(controladores lógicos programables) de 4 Construccion PLC y SCADA
(Hacer click sobre las imagenes)
automatización y control, le falta su 5 Tutorial Xscada
software de control y monitoreo y por
6 Tutorial LDmicro y Programacion
carencia de conocimientos en
Navegacion Ladder
programacion, dejamos esta parte a un
Para visualizar nuestros lado.
contenidos de forma óptima es También podemos sumar la cuota de
necesario descargar e instalar los que quizás un PLC comercial no esta dentro del rango monetario que manejamos; Es
siguientes programas: 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

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 1/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
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.

Bueno, arranco subiendo dos sencillos videos. En el primero, a modo de ejemplo,


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 mismo puede ser empleado para lo que quieran (Control por puertos de la PC -
Microcontroladores - Internet - PLC - Etc.)

ETI proyectos con XSCADA

El segundo video, ya es un ejemplo un poco mas comlpeto, y les muestro las distintas
funcionalidades que le podemos dar. En el ejemplo, pueden ver un extracto de nuestra
placa entrenadora (ver en la seccion descarga) y un scada armado para controlar y
monitorear esta.

ejemploSCADApic

Arranquemos de lleno con el tema, viendo primero, un poco de informacion al


respecto...

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 2/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

Que son los PLC???


Un controlador lógico programable, más conocido por sus siglas en inglés PLC
(Programmable Logic Controller), es una computadora utilizada en la ingeniería
automática o automatización industrial, para automatizar procesos electromecánicos,
tales como el control del proceso de una maquinaria en una fábrica ensambladoras de
autopartes en vehiculos por ejemplo.
Los PLCs son utilizados en muchas industrias y máquinas. A diferencia de las
computadoras de propósito general, el PLC está diseñado para múltiples señales de
entrada y de salida, rangos de temperatura ampliados, inmunidad al ruido eléctrico y
resistencia a la vibración y al impacto, ahorrando asi costos en mantenimiento y
aumentando la confiabilidad de los equipos.
Además, programar un PLC resulta bastante sencillo.
Como ya mencione en reiteradas ocasiones, el campo de la automatización y control,
es un campo muy abarcativo al igual que el campo de la instrumentación. Este
sistema de control de procesos, no tuvo su origen cuando aparecieron en el mercado
los PLC. En si, no voy a emplazarme hasta aquellas épocas para contarles con
detalles cual fue su evolución, pero tratare de esforzarme y ser breve para crearles una
noción básica.

Origen de la Automatizacion:
Esta es una ciencia que hace su aparición mucho antes de que el hombre descubriera
la electricidad; si bien era bastante precaria, el ingenio del hombre, lo llevo a conocer y
estudiar otras ciencias para aprender a emplearlas en sus automatismos (leyes de la
física tales como palancas, poleas, niveles y hasta presión y caudal).
La automatización, hasta hoy en día fue evolucionando con las nuevas innovaciones
tecnológicas hasta tener lo que llamamos controladores lógicos programables de la era
análoga-digital; pero hasta hace tan solo unas décadas atrás, el hombre implementa
su ingenio nuevamente, y descubre que controlando el paso de la energía, se puede
hacer automatismos con lógicas cableadas.
Los 1eros PLC, eran sencillamente eso, inmensos tableros llenos de relay y cables
que estaban armados de tal manera que daban una secuencia de permisos y
condiciones para funcionar. Si bien eran muy lentos en el diseño y armado, también
tenia la contra de que si se quería reformar su lógica de funcionamiento, había que
arrancar prácticamente desde cero. A este tipo de sistemas, se los denomina:
“Automatización con lógicas de contactos”.
Con la aparición de nuevos instrumentos electrónicos, esas inmensas estructuras de
relay, se fueron achicando y simplificando, hasta llegar a lo que hoy en día conocemos
como: “Automatización con lógicas cableadas”…
Si bien, la Automatizacion con logicas cableadas es un tecnica que hoy en dia
seguimos imlementando; Las grandes empresas de tecnologia en automatizacion
emplearon microprocesadores y microcontroladores para poder ahorrar aun mas el
espacio de trabajo y el tiempo demandado en la creacion de un tablero de control
cableado... Es aqui el nacimiento de los PLC (Controladores Logicos Programables).
Que en si, son circuitos con una electronica programable, gobernado por una unidad de
control o MCU que se encarga de procesar una logica de control, segun las directivas
que se le dieron (temporixzadores - comparadores - logicas booleanas - etc) en base a
una adquisicion de datos de campo (señales de entrada); Las cuales generan una
respuesta en los puertos de salida del PLC.

Que son los sistemas SCADA???


SCADA viene de las siglas de "Supervisory Control And Data Adquisition", es decir:
adquisición de datos y control de supervisión.
Basicamente se trata de una aplicación software especialmente diseñada para
funcionar sobre ordenadores en el control de producción, proporcionando comunicación
con los dispositivos de campo (controladores autónomos, autómatas programables,
etc.) y controlando el proceso de forma automática desde la pantalla del ordenador.
Además, provee de toda la información que se genera en el proceso productivo a
https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 3/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
diversos usuarios, tanto del mismo nivel como de otros supervisores dentro de la
empresa: control de calidad, supervisión, mantenimiento, etc. En este tipo de sistemas
usualmente existe un ordenador, que efectúa tareas de supervisión y gestión de
alarmas, así como tratamiento de datos y control de procesos. La comunicación se
realiza mediante buses especiales o redes LAN. Todo esto se ejecuta normalmente en
tiempo real, y están diseñados para dar al operador de planta la posibilidad de
supervisar y controlar dichos procesos. Los programas necesarios, y en su caso el
hardware adicional que se necesite, se denomina en general sistema SCADA. Este
gráfico es un ejemplo de la aplicación del sistema SCADA en áreas industriales. Éstas
áreas pueden ser:

* Monitorizar procesos químicos, físicos o de transporte en sistemas de suministro de


agua, para controlar la generación y distribución de energía eléctrica, de gas o en
oleoductos y otros procesos de distribución.

* Gestión de la producción (facilita la programación de la fabricación);

* Mantenimiento (proporciona magnitudes de interés tales para evaluar y determinar


modos de fallo, MTBF, índices de Fiabilidad, entre otros);

* Control de Calidad (proporciona de manera automatizada los datos necesarios para


calcular índices de estabilidad de la producción CP y CPk, tolerancias, índice de
piezas NOK/OK, etc;

* Administración (actualmente pueden enlazarse estos datos del SCADA con un


servidor ERP (Enterprise Resource Planning o sistema de planificación de recursos
empresariales), e integrarse como un módulo más);

* Tratamiento histórico de información (mediante su incorporación en bases de datos).


Prestaciones.

Un paquete SCADA debe estar en disposición de ofrecer las


siguientes prestaciones:

- Posibilidad de crear paneles de alarma, que exigen la presencia del operador para
reconocer una parada o situación de alarma, con registro de incidencias.
- Generación de históricos de señal de planta, que pueden ser volcados para su
proceso sobre una hoja de cálculo.
- Ejecución de programas, que modifican la ley de control, o incluso anular o modificar
las tareas asociadas al autómata, bajo ciertas condiciones.
- Posibilidad de programación numérica, que permite realizar cálculos aritméticos de
elevada resolución sobre la CPU del ordenador.

Con ellas, se pueden desarrollar aplicaciones para ordenadores (tipo PC, por ejemplo),
con captura de datos, análisis de señales, presentaciones en pantalla, envío de
resultados a disco e impresora, etc. Además, todas estas acciones se llevan a cabo
mediante un paquete de funciones que incluye zonas de programación en un lenguaje
de uso general (como C, Pascal, o Basic), lo cual confiere una potencia muy elevada y
una gran versatilidad. Algunos SCADA ofrecen librerías de funciones para lenguajes de
uso general que permiten personalizar de manera muy amplia la aplicación que desee
realizarse con dicho SCADA.

Requisitos.
Un SCADA debe cumplir varios objetivos para que su instalación sea perfectamente
aprovechada:
- Deben ser sistemas de arquitectura abierta, capaces de crecer o adaptarse según las
necesidades cambiantes de la empresa.
- Deben comunicarse con total facilidad y de forma transparente al usuario con el
equipo de planta y con el resto de la empresa (redes locales y de gestión).

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 4/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
- Deben ser programas sencillos de instalar, sin excesivas exigencias de hardware, y
fáciles de utilizar, con interfaces amigables con el usuario.

Módulos de un SCADA.
Los módulos o bloques software que permiten las actividades de adquisición,
supervisión y control son los siguientes:
- Configuración: permite al usuario definir el entorno de trabajo de su SCADA,
adaptándolo a la aplicación particular que se desea desarrollar.
- Interfaz gráfico del operador: proporciona al operador las funciones de control y
supervisión de la planta.
El proceso se representa mediante sinópticos gráficos almacenados en el ordenador
de proceso y generados desde el editor incorporado en el SCADA o importados desde
otra aplicación durante la configuración del paquete.
- Módulo de proceso: ejecuta las acciones de mando preprogramadas a partir de los
valores actuales de variables leídas.
- Gestión y archivo de datos: se encarga del almacenamiento y procesado ordenado de
los datos, de forma que otra aplicación o dispositivo pueda tener acceso a ellos.
- Comunicaciones: se encarga de la transferencia de información entre la planta y la
arquitectura hardware que soporta el SCADA, y entre ésta y el resto de elementos
informáticos de gestión.

Construccion PLC y SCADA


Como desarrollar nuestro PLC y Scada Made in Home (en
casa / casero)
Hace un par de días, en el grupo del facebook (
https://www.facebook.com/groups/EducTecInformal/ ) , preguntaban si era viable y o
posible crear un PLC con un microcontrolador... La respuesta es rotundamente
AFIRMATIVA ya que el hardware de un microcontrolador nos proporciona casi todo lo
que requiere un PLC para funcionar (procesador, entradas digitales, entradas
analogicas, salidas, pwm, comunicacion serial, entre otros); Lo que varia y le da
utilidad / confiabilidad / flexibilidad / seguridad, es el diseño de los perifericos a este
microcontrolador ( hardware para las entradas, salidas, etc) en nuestra placa
experimental...
A continuacion, les comparto un diseño sencillo y experimental, de un Controlador
Logico Programable (PLC), que corre en base a un PIC 16F877A (ver archivos adjuntos con
el diseño de la placa - PCBWizard)

Se preguntaran en que lenguaje puede ser programado nuestro pequeño PLC casero...
Sencillamente, para este caso en particular, vamos a implementar LDmicro ( ver
archivos adjuntos que inclui el software, o bien puedes visitr la pagina oficial www.cq.cx/index.pl ); Un
sencillo software de programacion en lenguaje LADDER ( escalera ), que nos permite
crear nuestros proyectos al igual que en un PLC profesional y luego compilarlo para
subir al microcontrolador...
https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 5/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

Muchas veces queremos desarrollar proyectos para automatizar un proyectos


necesitamos incorporar un software que desde nuestra PC, pueda no solo monitorear
el proceso, si no que tambien pueda guardar estadisticas y datos relevantes adquiridos
de nuestro controlador lofgico programable...
Es ahí donde entra en accion XScada 4.56 ( ver archivos adjuntos que inclui el software, o bien
puedes visitr la pagina oficial http://micset.net ) , o sea, un software libre para realizar SCADA
made in home... La caracteristica mas relevante, es que se puede establecer
comunicacion serial con los microcontroladores (PIC-AVR-ETC) y PLC del mercado
gracias a su extensa libreria de protocolos de comunicacion....

Tutorial Xscada
Empleo y programacion de Xscada (primeros pasos)

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 6/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

1_xscada - Basic Schemes

3_xscada - Comm AsciiProtokol Edit DisplayFormat

Tutorial LDmicro y Programacion Ladder

Empleo y programacion de LDmicro (primeros pasos)


(En construccion)

Bueno, en esta seccion del topico, voy a introducirlos practicamente en el manejo de


LDmicro, y en paralelo, para los que desconocen el lenguaje escalera (ladder), voy a
intentar enseñarles las reglas basicas de programacion para que se puedan insertar
comodamente en este mundo apacionante de la automatizacion...
Como sabran, 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


https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 7/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
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.

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


entrada

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 8/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

El diagrama puede tener varias ramas o escalones.

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

La programación en cada bloque de contactos se realiza en el orden de izquierda a


https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 9/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
derecha y el sentido de programación de los bloques de contactos de un programa de
ejecuta en el sentido de arriba para abajo.

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.

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

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 10/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

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).

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:

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 11/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

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.

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)

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 12/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

OPERACIONES LOGICAS
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.

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

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 13/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

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.).

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

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.

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
https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 14/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
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)).

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

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

FUNCIONES ESPECIALES

Temporizadores:
LDmicro, tiene tres tipos herramientas que trabajan manipulando el tiempo de
activación o desactivación de distintas variables… Estos temporizadores, se separan
en tres funciones…

TON (tiempo de retardo en el encendido) Cuando tiene un 1 lógico, para proseguir el


camino de la rama, tendrá un retardo del tiempo configurado.

TOFF (tiempo de retardo en el apagado) Cuando tiene un 1 Lógico, se activa y deja


pasar la señal como si nada por el camino que indica la rama, pero cuando cambia de
estado a 0 Lógico, el valor de este no cambia instantáneamente hasta pasado el
tiempo configurado.

RTO (Encendido con retardo y memoria) Cuando tiene un 1 lógico, para proseguir el
camino de la rama, tendrá un retardo del tiempo configurado. La diferencia más notable

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 15/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
que tenemos con la instrucción TON, es que sin importar luego el estado de la entrada
(verdadero - falso) de esta función, la salida seguirá encendida indefinidamente. La
única manera de poder desactivar esta instrucción, es empleando la función RES
(Contador/RTO reinicio) , que básicamente es un Reset para los contadores y el
temporizador con retardo y memoria.

Contadores:
LDmicro, tiene tres herramientas que trabajan contando diferentes tipos de eventos y
ese valor, es almacenado en una variable, la cual podremos implementar en el resto de
nuestra lógica de control.

CTC (Contador Circular)

CTU (contador Incremental)

CTD (Contador Decremental)

manipulando el tiempo de activación o desactivación de distintas variables… Estos


temporizadores, se separan en tres funciones…

------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
-

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 16/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
-

> ONE-SHOT RISING (FLANCO DE SUBIDA)                  _


                           --[OSR_/ ]--

 Esta instrucción normalmente da una salida falsa. Si la entrada de instrucciones es


cierto durante esta exploración y era falsa durante la exploración anterior, la salida es
verdadera. Por lo tanto, genera un pulso de una exploración de ancho a cada flanco
ascendente de la señal de entrada. Esta instrucción es útil si desea desencadenar
eventos fuera del borde ascendente de una señal.

 > ONE-SHOT FALLING (FLANCO DE BAJADA)               _


                           --[OSF \_]--

 Esta instrucción normalmente da salida falsa. Si la entrada de instrucciones es falsa


durante esta exploración y era verdad durante la exploración anterior, la salida es
verdadera. Por lo tanto, genera un impulso de una exploración de ancho a cada borde
descendente de su señal de entrada. Esta instrucción es útil si desea desencadenar
eventos fuera del borde descendente de una señal.

> MASTER CONTROL RELAY


                           -{MASTER RLY}-

 Por defecto, la condición de entrada de renglón de cada renglón es verdadero. Si una


instrucción de relé de control maestro se ejecuta con una condición de entrada de
renglón de falso, entonces el renglón en condición para todos los siguientes peldaños
se convierte en falsa. Esto continuará hasta que se alcance la siguiente instrucción
relé de control maestro (independientemente del renglón en la condición de que la
instrucción). Por tanto, estas instrucciones deben utilizarse en pares:

uno a (tal vez de forma condicional) inicie la sección posiblemente-discapacitados, y


uno para acabar con ella.

> MOVE                    


                            {destvar :=  }      {Tret :=     }

                           -{ 123     MOV}-    -{ srcvar  MOV}-

 Cuando la entrada de esta instrucción es verdadera, se establece la variable de


destino dado igual a la variable de origen determinado o constante. Cuando la entrada
https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 17/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
de esta instrucción es falsa, no pasa nada. Puede asignar a cualquier variable con la
instrucción de movimiento; esto incluye las variables de temporizador y contador del
estado, que se pueden distinguir por el líder `T 'o' C '. Por ejemplo, una instrucción en
movimiento 0 en `Tret' es equivalente a un restablecimiento (RES) de instrucciones de
ese temporizador. Esta instrucción debe ser la instrucción más a la derecha en su
peldaño.

> ARITHMETIC OPERATION 


                             {ADD  kay  :=}       {SUB  Ccnt
:=}

                            -{ 'a' + 10   }-     -{ Ccnt - 10 


}-

>                            {MUL  dest :=}       {DIV  dv := 


}

                            -{ var * -990 }-     -{ dv /


-10000}-

 
Cuando la entrada de esta instrucción es verdadera, se establece la variable de destino
dado igual a la expresión dada. Los operandos pueden ser tanto variables (incluyendo
temporizador y contador variables) o constantes. Estas instrucciones utilizan 16 bits
con signo matemáticas. Recuerde que el resultado se evalúa cada ciclo cuando la
condición de entrada cierto. Si va a aumentar o disminuir una variable (es decir, si la
variable de destino es también uno de los operandos), entonces es probable que no
quiere eso; normalmente usted usaría una sola toma de modo que sólo se evalúa en el
flanco ascendente o descendente de la condición de entrada. Divida truncado; 8/3 = 2
Esta instrucción debe ser la instrucción más a la derecha en sus peldaño.

> COMPARE            


                        [var ==]        [var >]        [1 >=]

                       -[ var2 ]-      -[ 1   ]-      -[ Ton]-

>                       [var /=]       [-4 <   ]       [1 <=]

                       -[ var2 ]-     -[ vartwo]-     -[ Cup]-

 Si la entrada de esta instrucción es falsa entonces la salida es falsa. Si la entrada es


cierto, entonces la salida es verdadero si y sólo si la condición dada es verdadera.
Esta instrucción puede ser utilizado para comparar (igual, es mayor que, es mayor que
o igual a, no es igual, es menor que, es menor que o igual a) una variable a una
variable, o para comparar una variable a un 16 -bit firmaron constante.

> COUNTER                    


                              Cname          Cname

                           --[CTU >=5]--  --[CTD >=5]--

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 18/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
 

A los incrementos del contador (CTU, cuentan hacia arriba) o decrementos (CTD,
cuenta atrás) el recuento de asociado en cada flanco ascendente de la condición de
entrada de renglón (es decir, lo que la condición de entrada de renglón va de falso a
verdadero). La condición de salida del contador es cierto si la variable de contador es
mayor que o igual a 5, y falso en caso contrario. La condición de salida de renglón
puede ser cierto incluso si la condición de entrada es falsa; sólo depende de la variable
contador. Usted puede tener CTU y CTD instrucciones con el mismo nombre, con el fin
de incrementar y
disminuir el mismo contador. La instrucción RES puede reiniciar un contador, o
usted puede realizar operaciones de variables generales sobre la variable de recuento.

> CIRCULAR COUNTER             


                              Cname

                           --{CTC 0:7}--

Un contador circular funciona como un contador CTU normal, excepto que después de
alcanzar su límite superior, se restablece su variable de contador de nuevo a 0 Por
ejemplo, el contador se muestra arriba contaría 0, 1, 2, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,
0, 2, .... Esto es útil en combinación con instrucciones condicionales de la variable
`Cname '; usted puede utilizar esto como un secuenciador. CTC contadores de reloj en
el flanco ascendente de la condición condición de entrada de renglón. Esta instrucción
debe ser la instrucción más a la derecha en su peldaño.

> SHIFT REGISTER           


                            {SHIFT REG   }

                           -{ reg0..3    }-

Un registro de desplazamiento está asociado con un conjunto de variables. Por


ejemplo, este registro de desplazamiento está asociado con las variables `reg0 ',` reg1',
`reg2 ', y` reg3'. La entrada al registro de desplazamiento es `reg0 '. En cada flanco
ascendente de la condición de entrada de renglón, el registro de desplazamiento se
desplazará derecha. Eso significa que asigna `reg3: = reg2 ',` reg2: = reg1'. y `reg1: =
reg0 '. `reg0 'se deja sin cambios. Un gran registro de desplazamiento puede consumir
fácilmente una gran cantidad de memoria. Esta instrucción debe ser la instrucción más
a la derecha en su peldaño.

> LOOK-UP TABLE             


                            {dest :=     }

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 19/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
                           -{ LUT[i]     }-

Una tabla de consulta es un conjunto ordenado de n valores. Cuando el renglón en la


condición es verdadera, la variable entera dest se iguala a la entrada en la tabla de
consulta correspondiente al número entero variable `i '. El índice comienza desde cero,
por lo que `i 'debe estar entre 0 y (n-1). El comportamiento de esta instrucción no se
define si el índice está fuera de este rango. Esta instrucción debe ser la instrucción
más a la derecha en su peldaño.

> PIECEWISE LINEAR TABLE  


                            {yvar :=     }

                           -{ PWL[xvar]  }-

Esta es una buena manera de aproximar una función complicada o curva. Podría, por
ejemplo, puede ser útil si usted está tratando de aplicar una curva de calibración para
convertir una tensión de salida en bruto de un sensor en unidades más convenientes.
Suponga que usted está tratando de aproximar una función que convierte una variable
de entrada número entero, x, a una variable de salida número entero, y. Usted sabe la
función en varios puntos; por ejemplo, usted puede ser que sepa que

        f(0)   = 2

        f(5)   = 10

        f(10)  = 50

        f(100) = 100

    Esto significa que los puntos

        (x0, y0)   = (  0,   2)

        (x1, y1)   = (  5,  10)

        (x2, y2)   = ( 10,  50)

        (x3, y3)   = (100, 100)

tumbarse en esa curva. Puede introducir esos 4 puntos en una tabla asociada a la
instrucción lineal por tramos. La instrucción lineal por tramos se analizará el valor de
xvar, y establecer el valor de yvar. Fijará yvar de tal manera que la curva lineal por
tramos pasará por todos los puntos que usted le da; por ejemplo, si establece xvar =
10, entonces la instrucción establecerá yvar = 50.
Si usted le da la instrucción de un valor de xvar que se encuentra entre dos de los
valores de x para los que le han dado puntos, entonces la instrucción establecerá yvar
para que (xvar, yvar) se encuentra en la recta que une los dos puntos de la tabla. Por
ejemplo, xvar = 55 da una potencia de Yvar = 75. (Los dos puntos en la tabla son (10,
50) y (100, 100). 55 es la mitad del camino entre el 10 y el 100, y el 75 es la mitad del
camino entre 50 y 100, de modo (55, 75) se encuentra en la línea que conecta esos
dos puntos.)
Los puntos deben ser especificadas en orden ascendente por coordenada x. Puede
que no sea posible llevar a cabo operaciones matemáticas requeridas para ciertas

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 20/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
tablas de consulta que utilizan 16 bits de matemáticas de enteros; si este es el caso,
entonces LDmicro le avisará. Por ejemplo, esta tabla de consulta producirá un error:

        (x0, y0)    = (  0,   0)

        (x1, y1)    = (300, 300)

Puede corregir estos errores al hacer la distancia entre puntos en la tabla pequeña. Por
ejemplo, esta tabla es equivalente a la dada anteriormente, y que no produce un error:

(x0, y0) = (0, 0)


(x1, y1) = (150, 150)
(x2, y2) = (300, 300)

Debería ser necesario casi nunca utilizar más de cinco o seis puntos. La adición de
más puntos hace que su código más grande y más lento para ejecutar. El
comportamiento si se pasa un valor de `xvar 'mayor que los más grandes coordenada x
en la tabla o menos de los más pequeños coordenada x en la tabla no está definido.
Esta instrucción debe ser la instrucción más a la derecha en su peldaño.

> A/D CONVERTER READ           


                               Aname

                           --{READ ADC}--

LDmicro puede generar código para utilizar los convertidores A / D incorporadas en


ciertos microcontroladores. Si la condición de entrada a esta instrucción es verdadera,
entonces una sola muestra del convertidor A / D se adquiere y almacena en la variable
de Aname `'. Esta variable puede ser manipulado posteriormente con las operaciones
de variables generales (menor que, mayor que, aritmética, y así sucesivamente).
Asigne un alfiler para la variable `Axxx 'de la misma manera que a usted le asigne un
alfiler a una entrada o salida digital, haciendo doble clic en él en la lista en la parte
inferior de la pantalla. Si la condición de entrada a este renglón es falsa entonces la
variable `Aname '
se deja sin cambios.

Para todos los dispositivos soportados actualmente-, 0 voltios de entrada corresponde


a una lectura ADC de 0, y una entrada igual a Vdd (la tensión de alimentación)
corresponde a una lectura ADC de 1023. Si usted está usando un AVR, conecte AREF
a Vdd. Usted puede utilizar las operaciones aritméticas para escalar la lectura a las
unidades más convenientes después, pero recuerde que usted está usando aritmética
entera. En general no todos los pernos estarán disponibles para su uso con el
convertidor A / D. El software no le permitirá asignar D pasadores no A / a una entrada
analógica. Esta instrucción debe ser la instrucción más a la derecha en su peldaño.
 

> SET PWM DUTY CYCLE          


                              duty_cycle

                           -{PWM 32.8 kHz}-

LDmicro puede generar código para utilizar el periférico PWM integrado en ciertos
microcontroladores. Si la condición de entrada a esta instrucción es verdadera,
entonces el ciclo de trabajo del PWM periférica se establece en el valor de la
https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 21/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
Duty_Cycle variable. El ciclo de trabajo debe ser un número entre 0 y 100; 0
corresponde a siempre baja, y 100 corresponde a
siempre alta. (Si usted está familiarizado con el funcionamiento de periféricos PWM,
entonces cuenta de que eso significa que LDmicro escala automáticamente la variable
ciclo de trabajo de por ciento a periodos de reloj PWM.)

Puede especificar la frecuencia PWM de destino, en Hz. La frecuencia que especifique


puede no ser exactamente posible, en función de cómo se divide en frecuencia de reloj
del microcontrolador. LDmicro elegirá la frecuencia alcanzable más cercano; si el error
es grande, entonces se le avisará. Velocidades más rápidas pueden sacrificar
resolución.

Esta instrucción debe ser la instrucción más a la derecha en su peldaño. El tiempo de


ejecución de la lógica de escalera consume un temporizador para medir el tiempo de
ciclo. Eso significa que PWM sólo está disponible en microcontroladores con al menos
dos temporizadores adecuados. PWM utiliza CCP2 pin (no CCP1)
en chips PIC16 y OC2 (no OC1A) en RAV.

> MAKE PERSISTENT           


                             saved_var

                           --{PERSIST}--

Cuando el renglón-en la condición de esta instrucción es verdadera, hace que la


variable de entero especificado que se guarda automáticamente en la EEPROM. Eso
significa que su valor persistirá, incluso cuando el micro pierde potencia. No hay
necesidad de guardar explícitamente la variable en la EEPROM; que va a suceder de
forma automática, siempre que cambie variables. La variable se carga
automáticamente desde EEPROM después de un reinicio de encendido. Si una
variable que cambia con frecuencia se hace persistente, entonces la EEPROM en sus
micro puede llevar a cabo muy rápidamente, ya que sólo es bueno para un número
limitado (~ 100 000) de escrituras. Cuando la condición de entrada de renglón es falsa,
no pasa nada. Esta instrucción debe ser la instrucción más a la derecha en su
peldaño.

> UART (SERIAL) RECEIVE          


                                 var

                           --{UART RECV}--

LDmicro puede generar código para utilizar el UART incorporada en ciertos


microcontroladores. El AVR con múltiples UART sólo UART1 (no UART0) es
compatible. Configure la velocidad de transmisión utilizando Configuración ->
Parámetros de MCU. Ciertas velocidades de transmisión pueden no ser alcanzables
con ciertas frecuencias de cristal; LDmicro le avisará si este es el caso. Si la condición
de entrada de esta instrucción es falsa, entonces no pasa nada. Si la condición de
entrada es cierto, entonces esta instrucción trata de recibir un solo personaje de la
UART. Si no hay ningún carácter se lee a continuación, la condición de salida es falsa.
Si un personaje se lee entonces su valor ASCII se almacena en `var ', y la condición de
salida es cierto para un solo ciclo de PLC.

> UART (SERIAL) SEND            


                                 var

                           --{UART SEND}--

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 22/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal
LDmicro puede generar código para utilizar las UARTs integradas en ciertos
microcontroladores. En AVRS De con múltiples UART sólo UART1 (no UART0) es
compatible. Configure la velocidad de transmisión utilizando Configuración ->
Parámetros de MCU. Ciertas velocidades de transmisión pueden no ser alcanzables
con ciertas frecuencias de cristal; LDmicro le avisará si este es el caso.

Si la condición de entrada de esta instrucción es falsa, entonces no pasa nada. Si la


condición de entrada es cierto, entonces esta instrucción escribe un carácter único a
la UART. El valor ASCII del carácter que enviar previamente se han almacenado en `var
'. La condición de salida del renglón es verdadero si la UART está ocupado (en la
actualidad la transmisión de un carácter), y false en caso contrario.

Recuerde que los personajes toman un poco de tiempo para transmitir. Compruebe el
estado de salida de esta instrucción para asegurar que el primer carácter ha sido
transmitida antes de tratar de enviar un segundo personaje, o utilizar un temporizador
para introducir un retraso entre los personajes. Usted sólo tiene que traer la condición
de entrada verdadero (intente enviar un personaje) cuando la condición de salida es
falsa (UART no está ocupado).

Investigar la instrucción de cadena con formato (siguiente) antes de utilizar esta


instrucción. La instrucción de cadena con formato es mucho más fácil de usar, y es
casi seguro que capaz de hacer lo que quieres.

> FORMATTED STRING OVER UART               


                                             var

                                   -{"Pressure: \3\r\n"}-

LDmicro puede generar código para utilizar las UARTs integradas en cierta
microcontroladores. En AVRS De con múltiples UARTs sólo UART1 (no UART0) es
compatible. Configure la velocidad de transmisión mediante Settings -> MCU
Parámetros. Ciertas velocidades de transmisión pueden no ser alcanzables con cierta
frecuencias de cristal; LDmicro le avisará si este es el caso.
Cuando el renglón en condiciones para esta instrucción va de falso a cierto, éste
empieza a enviar una cadena entera a través del puerto serie. Si la cadena contiene la
secuencia especial `\ 3 ', entonces esa secuencia será reemplazado por el valor de `var
', que es automáticamente convierte en una cadena. Se formateará la variable a
tener exactamente 3 caracteres; Por ejemplo, si `var 'es igual a 35, entonces la cadena
exacta impresa será `Presión: 35 \ r \ n '(nota el extra espacio). Si en lugar de `var
'fuera igual a 1432, entonces el comportamiento haría
ser indefinido, ya que 1432 tiene más de tres dígitos. En ese caso sería necesario
usar `\ 4 'en su lugar.

Si la variable podría ser negativo, entonces utilice `\-3d '(o` \ -4d' etc) en lugar. Eso
causará LDmicro para imprimir un espacio inicial para números positivos y un signo
menos para los números negativos.

Si varios formateado instrucciones de cadena se energizan a la vez (o si uno está


energizado antes de que otro se complete), o si éstos instrucciones se entremezclan
con las instrucciones UART TX, entonces el comportamiento no está definido.

También es posible utilizar esta instrucción a la salida de una cadena fija, sin
interpolar el valor de una variable entera en el texto que se envía en serie. En ese caso,
simplemente no incluyen el especial
secuencia de escape.

Use `\\ 'para una barra invertida literal. Además de la secuencia de escape para
interpolar una variable entera, los siguientes caracteres de control están disponibles:

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 23/24
28/9/2018 Como construir un PLC y un SCADA (Made in Home) - Educación Tecnica Informal

*\ R - retorno de carro
*\ N - salto de línea
*\ F - formfeed
*\ B - Retroceso
*\ XAB - personaje con valor ASCII 0xAB (hex)

La condición de salida de renglón de esta instrucción es verdadera mientras se está


transmitiendo datos, cosa falsa. Esta instrucción consume una gran cantidad de
memoria del programa, por lo que deben utilizarse con moderación. La implementación
actual no es eficiente, pero uno mejor voluntad requerir modificaciones en todos los
back-ends.

EN CONSTRUCCION

Č
ċ ETI_LDmicroPLC_V1.rar (1… Firstname LastName, 8 m… v.1 ď
ċ XScada 4.56.rar (3489k) Firstname LastName, 8 m… v.3 ď
ċ herramientas_para_XSCA… Firstname LastName, 19 ju… v.1 ď
ċ ldmicro-es.rar (146k) Firstname LastName, 8 m… v.1 ď

Comentarios

DERECHOS RESERVADOS © Escuela Tecnica virtual


® ETI (Educacion Tecnica Virtual)
prof.martintorres@educ.ar

Notificar uso inadecuado | Con la tecnología de Google Sites

https://sites.google.com/a/educ.ar/eti/project-updates/comoconstruirunplcyunscadamadeinhome 24/24

Potrebbero piacerti anche