Documentos de Académico
Documentos de Profesional
Documentos de Cultura
uCon PLC
Manual de usuario
Versión 2.0
www.sistemasdigitales.cl
Descripción
Esta versátil tarjeta electrónica se basa en un microcontrolador programado con un firmware que le
permite realizar dos funciones:
La primera función le permite al usuario conectar un PC al mundo real (sensores y actuadores) para
realizar control automático o experimentación a través de un lenguaje de alto nivel o lo que se conoce
como control automático por Computador. La tarjeta microprocesada (uCon) gestiona comandos seriales
transmitidos por un PC, usando un programa de comunicaciones cualquiera, para efectuar diversas
tareas, como son:
La segunda función, que es común en el control industrial es la de trabajar como un controlador lógico
programable (PLC). Para ello, el usuario escribe su propio programa en diagrama escalera usando el
software en ambiente Windows provisto para ello, y lo transmite al módulo uCon que lo almacena en su
Eeprom (memoria no volátil, es decir, no pierde su contenido aún en ausencia de energía).
Ambas funciones permiten que un usuario con cualquier nivel de conocimiento se introduzca o utilice este
módulo para realizar proyectos electrónicos / software para monitoreo o control automático.
A continuación se describen ambas funciones o modos de operación: Modo Comando para ejecución de
comandos seriales y Modo PLC para trabajar como controlador lógico programable.
Modo Comando
La versatilidad y posibilidades de esta función radica en los comandos que es capaz de ejecutar sin
necesidad de implementar rutinas complejas, contar con equipos de programación o conocimiento
específico para iniciar un proyecto de monitoreo o control automático. Dichos comandos son transmitidos
por cualquier programa de comunicación serial desde un computador estándar a través de un cable
RS232. En este caso usaremos el programa de comunicaciones Microsoft HyperTerminal que viene por
defecto con el sistema operativo Windows.
Características
20 pines configurables como entrada o salida digital, 1 pin configurable como salida PWM, 5
pines configurables como entradas análogas.
Conversor A/D de 10 bits.
Comunicación serial RS232: 9600 bps / 8N1.
Corriente máxima entregada por pin de salida: 20 mA.
Voltaje entrada analógica 0 a +5Vdc.
Voltaje salida/entrada digital: TTL
Frecuencia oscilador: 16 Mhz.
Alimentación +9 a +12 Vdc.
El módulo uCon recibe comandos transmitidos a través de la puerta serial del PC. Usando HyperTerminal
de Windows (también se puede usar el programa de interfase, panel ―comandos‖, que incluye la tarjeta)
en configuración ASCII tickear „Enviar un fin de línea con los avances de línea‟ y ‗Eco de los caracteres
escritos localmente‟, y en configuración del puerto que se use (COM1, COM2, etc) seleccionar 9600 bps,
8 bits de datos, sin paridad y un bit de parada, como muestra la figura:
Una vez configurado y en línea el HyperTerminal, conectar el módulo con el cable serial provisto. Al
energizar el módulo uCon, en pantalla se mostrará la versión del firmware: ―dyt.cl – uCon v1.0‖ y el
módulo estará listo para recibir comandos como se ve en la siguiente figura:
v1.0
Notación: los comandos de control comienzan por el carácter „w‟ y terminan por un carácter <CR>
(retorno de carro: ASCII 13). Los comandos pueden recibir argumentos o parámetros, p.ej wSA100
(comando: wS, argumento: A100)
En la descripción a continuación, los argumentos que puede recibir algún comando se muestra entre <>.
Estos argumentos o parámetros pueden ser un valor decimal o caracteres específicos del comando (p. ej
‗p‟ representa el puerto A, B ó C), revise los ejemplos para tener más clara la notación.
A continuación se listan los comandos permitidos (respete mayúsculas y minúsculas de lo contrario
puede que el comando que no sea reconocido).
1. Led Interno.
2. Pines de Entrada/Salida
Puerto A: cuenta con 6 pines (de A0 hasta A5) de los cuales 5 pueden configurarse como
entradas análogas (A0:A3 y A5) o bien como entradas o salidas digitales. El pin A4 esta por
defecto conectado al led testigo mediante el jumper ―D‖.
Al energizarse o resetearse el módulo este puerto se configura A0:A3 y A5 como entradas
análogas y se leen como 0 y A4 como entrada digital.
Puerto B: cuenta con 8 pines configurables como entrada o salida digital. El reset o energización
del módulo configura los pines como entradas digitales.
Puerto C: cuenta con 6 pines configurables como entrada o salida digital. El reset o energización
del módulo configura los pines como entradas digitales.
De los pines descritos 4 pueden ser usarse con funciones internas o externas (como entradas y
salidas digitales comandadas), para usar las funciones internas unir el jumper de ―jconf‖ que
corresponda según la siguiente tabla:
Obs. Para operar en modo PLC es necesario que al menos estén jumpeados los puntos B y C,
pues en este modo de operación se hace uso de la Eeprom para almacenar el programa de PLC.
Precauciones:
2) No provocar cortocircuito de pines. Esto puede ocurrir en un pin configurado como salida y en
estado lógico 1 que se conecte a GND o en estado lógico 0 que se conecte a VCC, en ambos
casos habrá una circulación excesiva de corriente pudiendo dañar el microcontrolador. Si se esta
usando un pin como salida y se requiere usar como entrada sin re-energizar, desconectar el
circuito usado para la salida, reconfigure el pin como entrada con el comando respectivo y luego
conectar el circuito o la señal que se vaya a usar como entrada.
En general, ante la duda del estado del pin resetear la uCon para que reinicie sus pines como
entradas digitales o configurarlos como entradas antes de conectarlas a algún nivel lógico.
La definición de entrada/salida de los pines de cada puerto puede configurarse en forma manual
o automática:
Configuración automática:
3. Entradas Análogas
Para poder efectuar una conversión análogo/digital el pin que capture y convierta la señal deberá
ser configurado como entrada digital (ver comando wS<pd> y luego como configurado para entrada
análoga.
Dicha señal deberá variar en el rango de la referencia seleccionada evitándose que esos límites se
sobrepasen.
Argumento: n define los pines que operaran como entradas análogas. Según la siguiente tabla:
En la tabla anterior los pines que no se mencionen serán configurados como entrada/salida
digital.
Vref+ y Vref- corresponde al valor máximo y mínimo (referencias) que la señal análoga puede
tomar en su excursión máxima. Por defecto si se configura n=1 se usa como referencia positiva
(Vref+) igual al voltaje de alimentación del microcontrolador, es decir, +5 Vdc y como referencia
negativa al potencial de GND (0 V)
Si la señal a muestrear tiene un rango menor a 5 Vdc, para obtener la mejor resolución del
conversor A/D puede ajustarse la referencia positiva y negativa configurando algún n que lo
permita y poner en los pines A3 y A2 los voltajes máximos y mínimos (no mas de +5Vdc como
Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 6
http://sistemasdigitales.cl sd@sistemasdigitales.cl
Vref+ y no menos de 0 V como Vref-) que alcanza dicha señal. De este modo cuando la señal
tenga un valor igual a Vref- el muestro digital retornará 0 y cuando tenga una valor igual a Vref+
retornará un valor decimal 1023 (10 bits).
Ejemplo: wAC7 configura A0 y A1 como entrada análoga y toma el voltaje presente en A3 como
referencia positiva y el presente en A2 como referencia negativa, es decir, si en A3 hay 4 Volts
dc y en A2 hay 1 Volt dc, cuando la señal en A0 sea igual a 4 Vdc el muestro retornara 1023 y
cuando sea de 1 Vdc el muestreo retornará 0. Los pines restantes del puerto son configurados
como entrada/salida digital.
Precaución:
El PWM (modulación por ancho de pulso) es muy usado en el control de potencia variando el
ancho de pulso, se reduce el ancho del pulso para reducir la potencia promedio (pudiendo llegar
a cero) y aumentando el ancho para aumentar la potencia (pudiendo llegar a un nivel continuo
DC).
Definición: Ciclo de trabajo es la razón entre el tiempo que el pulso se mantiene en nivel alto y el
periodo del pulso. Por ejemplo un ciclo de trabajo de 50% significa que el pulso se mantendrá en
nivel alto el mismo tiempo que en nivel bajo.
d Frecuencia [Khz]
1 31.25
2 7.81
3 1.95
Observaciones:
Para las funcionalidades que corresponda verificar que jumpers B y C no estén puestos
(deshabilita conexión con memoria Eeprom).
El contador de pulsos utiliza un contador interno que es incrementado con los flancos de subida
que se presenten en el pin C0. El contador interno puede ser inicializado en cierto valor y
configurado para aplicar un divisor en su cuenta.
La señal de pulso debe tener niveles TTL.
Asegurarse que el pin C0 este configurado como entrada digital.
6. Comparador
Esta función se usa para gatillar un evento en el pin C2 al igualarse la cuenta del contador con el
un valor cargado en el comparador. Requiere que el contador (ver ―contador de pulsos”) este
configurado y operación.
Observación: Notar que las funciones que usan los mismos pines de salida o entrada (PWM,
Comparador y medición de ancho de pulso) no pueden usarse en forma simultánea pues se
utilizan los mismos pines para implementar dichas funciones.
El módulo uCon posee una memoria tipo Eeprom (mantiene la información aun en ausencia de
energía) de 32 Kb. Esta memoria puede usarse para almacenar datos de muestreo A/D o datos
entregados por el usuario y el contenido puede leerse cuando se requiera.
Para usar la memoria Eeprom externa verificar que los jumper B y C están puestos.
Comando repetición: w
Descripción: Repite el comando anterior
uCon_PLC fue diseñado para incorporar lo esencial y estándar usado en PLCs comerciales, sin embargo,
debe considerarse que la funciones implementadas por las distintas marcas pueden tener diferencias
entre ellas tanto en algoritmos como en operación.
Se espera que el usuario tenga cierto conocimiento de programación en lógica escalera y de la estructura
y fundamentos de un programa para PLC.
Observaciones: Para que uCon opere en este modo, los jumpers B y C deben estar puestos, pues la
Eeprom externa es requerida para almacenar el programa ladder.
Programa de Interfase
Construcción de programa:
El diagrama escalera se construye usando el panel de botones de la derecha. Se presiona el botón
correspondiente al tipo de elemento que se quiera ingresar. El elemento aparecerá en el diagrama (ver
Fig.1), haciendo doble click sobre él se podrá asignarle atributos como nombre, estado, etc.
(dependiendo del tipo de elemento).
Lengueta PLC :
Esta lengueta muestra detalles del programa en diagrama escalera compilado, se muestra cada rung del
programa en lista de instrucciones y los bytes codes generados.
Lengueta Entrada/Salida:
Esta lengueta muestra una planilla con todos los elementos que se incorporaron en el programa,
haciendo doble click sobre alguno de los elementos en esta planilla se abrirá otra ventana que permitirá
definir que tipo de elemento (entrada/salida digital, timer, contador, variable, entrada análoga, operador,
etc).
Compilación:
Una vez terminado el diagrama y asignada su funciona a cada uno de los elementos del programa,
presionar el botón compilar para la generación de los bytes codes que serán transmitidos a la tarjeta
uCon.
Una vez compilado el programa, presione el botón “Tx. Programa” (verifique que la uCon está conectada
al PC, que este energizada, y que el puerto de comunicaciones este conectado), terminado la transmisión
escriba el comando wplc1 en la ventana de comandos para que el programa se ejecute, wplc2 para
detenerlo y cargar un nuevo programa.
Entradas
Los estados de las entradas son evaluadas en serie y paralelo a través del rung para determinar si la(s)
salida(s) en el rung son energizadas.
Las entradas físicas trabajan con voltajes de niveles TTL y no debe sobrepasarse los niveles máximos.
Corresponden a los pines de la tarjeta (B0 a B7).
Las entradas lógicas corresponden a:
. bits en memoria (M00 a M31) cuyo estado puede ser 0(falso) ó 1(verdadero).
. Contadores (C1 a C8) cuyo estado es falso hasta que el contador llega a la cuenta objetivo cuando
pasará a estado verdadero.
. Timers (T1 a T8) cuyo estado es falso hasta que el timer llega al tiempo objetivo cuando pasará a
estado verdadero.
En el rung las entradas usualmente se representan como contactos (-| |-) sean entradas físicas, lógicas,
timers o contadores.
Salidas
Las salidas pueden corresponder a pines físicos o variables en memoria (bits de salida lógica). Ambos
tipos de salidas pueden tener 2 estados lógicos verdadero o falso con el correpondiente nivel de voltaje
TTL en el caso de saildas físicas y valor 1 ó 0 en el caso de memoria interna.
Los pines de salida fisica corresponde a A3,A4,A5,C2,C3,C4,C5 y las salidas lógicas a los bit M00 a M31.
Las salidas usualmente representan acciones de activación, desactivación, captura analoga/digital,
calculo de funciones y operaciones que se efectuan en el caso que el rung llegue verdadero a sus
entradas. En el caso de la captura digital esta se efectua con los pines de entradas analogas A0,A1,A2.
En el rung las salidas usualmente son representadas como coils ( -()- ó –[Fn]--).
Refencia de instrucciones
Las entradas o salidas digitales pueden ser referidas a estados de pines físicos del microprocesador,
timer, contadores, bits de memoria interna (M00 a M31).
Los operadores son referidos a valores digitales que toman las entradas análogas y variables en memoria
interna (registros de tipo flotante de 32 bits D0 a D15)
pin/cont/timer/bit
Contacto: normal abierto --| |--
Si la señal entrante a la instrucción es falsa entonces la señal de salida será falsa. Si la señal de entrada
es verdadera entonces la salida sera verdadera si y solo si el pin dado, timer, contador o bit interno sea
verdadera, de lo contrario será falsa.
pin/cont/timer/bit
Contacto: normal cerrado --|/|--
Si la señal entrante a la instrucción es falsa entonces la señal de salida será falsa. Si la señal de entrada
es verdadera entonces la salida será verdadera si y solo si el pin dado, timer, contador o bit interno sea
falso, de lo contrario será falsa.
pin/bit
Coil Negado: --( / )--
Lo opuesto al Coil Normal, es decir, si la señal entrante a la instrucción es falsa entonces el estado del
pin, contador o timer dado será seteado como falso, si la señal entrante es verdadera entonces el estado
del pin o bit interno dado será seteado como falso.
pin/bit
Coil Set: --( S )--
Si la señal entrante a la instrucción es verdadera entonces el estado del pin o bit interno dado será
seteado como verdadero hasta que otra instrucción cambie su estado.
pin/timer/cont/bit
Coil Reset: --( R )--
Si la señal entrante a la instrucción es verdadera entonces el estado del pin, timer, contador o bit interno
dado será seteado como falso (en el caso del timer o contador será resetado a un valor 0).
Para resetear un timer (solo la salida del timer de retención permanece en alto aunque la señal de
entrada se haga falsa), en las propiedades del coil debe nombrarse igual que el timer o contador que se
quiere resetear.
TimerOn
Timer Retardo Encendido (on delay) --| Ton param |--
Parámetro param: 0 – 65535
Cuando la señal entrante a la instrucción pase de falsa a verdadera entonces la señal de salida
permanecerá falsa por t tiempos antes de hacerse verdadera. Los tiempo de configuración de timers son
múltiplos de 10 ms, por ejemplo, si al parámetro t se le asigna un valor de 100 la señal permanecerá falsa
por 100*10 ms= 1 s.
Si la señal de entrada se hace falsa, la salida de la instrucción se hara falsa de inmediato. El timer se
reseteará cada vez que la entrada se haga falsa. La cuenta se configura en múltiplos de 10ms.
TimerOff
Timer Retardo Apagado (off delay) --| Toff param |--
Parámetro param: 0 - 65535
Cuando la señal entrante a la instrucción pase de verdadera a falsa entonces la señal de salida
permanecerá verdadera por t tiempos antes de hacerse falsa. Los tiempo de configuración de timers son
múltiplos de 10 ms, si al parámetro t se le asigna un valor de 100 la señal permanecerá falsa por 100*10
ms= 1 s.
Si la señal de entrada se hace verdadera, la salida de la instrucción se hará verdadera de inmediato. El
timer se reseteará cada vez que la entrada se haga verdadera. La cuenta se configura en múltiplos de
10ms.
TimerRet
Timer de Retención --| Tret param |--
Parámetro param: 0 - 65535
Esta instruccion integra la señal de entrada el tiempo que que ha sido verdadera, no necesariamente en
forma continua. Si esta el tiempo acumulado en estado verdadero es mayor o igual al seteado entonces
la salida será verdadera de lo contrario permanecerá falsa. Cuando la salida sea verdadera permanecerá
en este estado hasta que se resetee el timer.
Contadores:
ContadorAsc
Contador ascendente: --| C1up param |--
Parámetro param: 0 - 65535
Incrementa la cuenta con cada pulso ascendente en la entrada de la instrucción, si la cuenta es mayor o
igual al valor configurado la salida será verdadera. Para volver a 0 el contador usar la instrucción Coil
Reset con el nombre del contador que corresponda.
ContadorDesc
Contador descendente: --| C2dn param |--
Parámetro param: 0 - 65535
Decrementa la cuenta, iniciando con el valor configurado, con cada pulso ascendente en la entrada de la
instrucción, si la cuenta es menor o igual a 0 al valor configurado la salida será verdadera.
ContadorCirc
Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 16
http://sistemasdigitales.cl sd@sistemasdigitales.cl
Contador circular: --| C2circ param |--
Parámetro param: 0 - 65535
Incrementa la cuenta con cada pulso ascendente en la entrada de la instrucción, si la cuenta es igual al
valor configurado la salida será verdadera, el contador se reseteará automáticamente a 0 y la salida sera
nuevamente falsa.
Operadores:
Al ser la señal de entrada a la instrucción verdadera se copia el registro o constante origen al registro
destino, este podrá ser manipulado por operadores aritméticos.
Si el origen es una entrada analoga, esta operacion solo mueve al destino el valor que contiene el
registro del último muestreo de esa entrada, no hace una adquisición AD.
Operaciones Aritméticas:
Cuando la señal de entrada es verdadera la variable destino será igual a la operacion dada. Los
operando pueden sera ambos variables incluyendo timers y contadores o bien una variable y una
constante. La operatoria utiliza enteros de 32 bits con signo, esto debe considerarse pues las
operaciones pueden ser truncadas p.ej 124/10 sera truncado a 12.
Funciones Matemáticas:
Esta función es definida como salida, por lo que deberá seleccionarse al definir las propiedades de un
tipo coil.
Hace un muestro del canal 0 (canales disponible 0,1 y 2 correspondiente a los pines A0, A1 y A2). El
rango de voltaje de entrada es de 0 a +5Vdc (para otros rangos deberá usarse el conversor o driver
apropiado). La data muestreada se almacena en las variables A0, A1, A2 respectivamente, estas
variables con el valor de muestreo pueden ser usadas para cálculo y comparación. El muestreo se
efectua en 10 bits representando un valor de 0 a 1023 correspondiendo con rango de voltaje de 0 a
+5Vdc.
Comparadores
Si se hace una comparación con una pin de adc (A0, A1, A2), se hace un muestreo análogo/digital en
forma automática antes de evaluar la comparación.
Las variables que se pueden comparar son las entradas análogas (10 bits) y las variables en memoria
(D0 a D15 flotante de 32 bits).
PWM
Al ser verdadera su entrada, se genera una salida modulada en ancho de pulso con la frecuencia y el
ciclo de trabajo seleccionado. La señal de salida se genera en el pin C2. El ciclo de trabajo debe
considerarse en el rango 0-100 %, pudiendo ser una constante o el valor de una variable, el que deberá
entregar un valor valido dentro del rango especificado.
Ej.1 Reset de contador al llegar a la cuenta de 5, el contador aumenta su cuenta con un pulso de entrada
Ej.2 Efectua la conversion A/D en A0, activar A3 cuando la señal analoga tenga un valor digital mayor de
800 y descativarla cuando sea menor de 100
Sx1
|------------------------------------------------------| Adc Q0 |------|
|
| Sx2
|--| A0>800 |-------------------------------------------( S )----------|
|
| Sx2
|--| A0<100 |-------------------------------------------( R )----------|
Conf. de pines
compartidos Pines de entrada/salida
Cable de comunicaciones: Serial 3 pines, tx, rx y gnd. Precuación, para desconectar y conectar, siempre
ejercer fuerza sobre los conectores nunca desde el cable para no tensionar las soldaduras internas.
1) Control relé para activar carga con 220 Vac (bobina de 12 Vdc)
Para activar una carga inductiva como es la bobina de un relé, es conveniente hacerlo a través de un
transistor que actúa como ―driver‖ de dicha carga, como se observa en la figura de abajo. Al activar la
salida B0 el transistor quedará en saturación permitiendo la circulación de corriente por la bobina y
activando el relé, al desactivar la salida, el transistor quedará en corte abriendo el circuito de corriente
con la consecuente desactivación del relé. El voltaje de alimentación de la bobina del relé definirá el
voltaje Vc a usar.
Obs. Al activar un elemento inductivo como la bobina de un relé, se producen transientes inversos que es
recomedable derivar a través de un diodo entre el colector y la fuente como se observa en la figura.
Se usará una ldr (resistencia variable con la luz) común y una resistencia divisora.
Si se quiere obtener la máxima sensibilidad, verificar los rangos en los que se mueve el voltaje Vr y
usarlos como Vref+ y Vref- configurando el ADC para operar con referencias externas.
En este caso usaremos las referencias internas de Vcc (+5Vdc) y 0 Vdc (GND).
Usando A0 como entrada análoga, configurar con wAC1 (A0:A3, A5 como entradas análogas con
referencias internas), iniciar el muestreo continuo con wAD0 (muestrea canal0) y luego wADs10
(muestreo cada 10*16 ms). Hacer variar la luminosidad y capturar en archivo los datos muestreados (en
HyperTerminal seleccionar capturar texto) para un posterior análisis.
3) Usando un lenguaje de programación de alto nivel podemos combinar ambos ejemplos para encender
un foco según el nivel de luz en el ambiente así tendremos un sistema de control de luminosidad
ambiental.
4) de la misma forma lo anterior puede ser incorporado en un diagrama escalera y cargado en la uCon
modo PLC para que el programa se ejecute automáticamente, sin necesidad de un PC.