Está en la página 1de 22

Módulo Controlador Digital Multipropósito

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:

- Activación de salidas digitales (TTL).


- Lectura de entradas digitales (TTL).
- Lectura de entradas análogas.
- Almacenamiento en memoria Eeprom (32 Kb)
- Generación de pulsos (PWM).
- Medición de largo de pulso.
- Contador de pulsos externos.
- Comparación
- Activación de led interno.
- Comando de motores paso a paso.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 2


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Operación

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

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 3


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Comandos

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.

Comando activa/desactiva led: wL<d>


Argumento: d
Descripción: activa o desactiva el led ubicado en la tarjeta y etiquetado en la misma como
„Ld‟. El argumento d=1 activa el led, d=0 desactiva el led.
Ejemplo: wL1 activa el led.

2. Pines de Entrada/Salida

Los pines de entrada / salida se agrupan en 3 puertos A, B y C:

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:

Jumper - Pin Habiltación de función interna (jumper presente)


A – C5 RTS control de flujo para comunicación RS485 (no habilitado)
B – C0 Control memoria Eeprom externa (en modo PLC poner Jumper)
C – C1 Control memoria Eeprom externa (en modo PLC poner Jumper)
D – A4 Led testigo Ld

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:

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 4


http://sistemasdigitales.cl sd@sistemasdigitales.cl
1) Las entradas y salidas de la uCon son de niveles lógicos TTL, es decir las salidas activas
presentarán entre 3 y 5 Vdc y desactivas entre 0.5 y 0 V (GND). Las entradas no soportan más
de 5.5 Vdc ni menos de 0 Vdc (GND). De superarse estos límites puede dañarse el
microcontrolador, de necesitarse otros niveles eléctricos usar los circuitos que correspondan para
adaptarlos a niveles TTL (optoacopladores, drivers, recortadores, etc).

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:

Comando configura puerto: wS<pd>


Argumento: pd
Setea el puerto „p‟ (A, B, C) con el valor „d‟. El valor „d‟ se ingresa en valor decimal. Cada bit del
valor „d‟ (representación binaria) configura el pin respectivo con su estado lógico (1 ó 0), el pin
será configurado como entrada o salida si el bit está en 1 ó 0 respectivamente.
Ejemplo 1: wSA255 setea todos los pines del puerto A como entradas (255 en binario se
representa como ‗11111111‘, es decir todos los pines como entradas digitales. Como el puerto
tiene sólo 6 pines los 2 bits mas significativos no se consideran (A7 y A6 no existen).
Ejemplo 2: wSB15 setea B0:B4 como entradas digitales y B5:B7 como salidas digitales (15
decimal equivale a 00001111 en binario).
Ejemplo 3: wSC170 configura los pines C7, C5, C3, C1 como entradas y C6, C4, C2, C0 como
salidas digitales (170 decimal equivale a 10101010 en binario).

Comando activa puerto de salida: wO<pd>


Argumento: pd (p: puerto A, B o C; d: valor decimal)
Descripción: los pines del puerto „p‟ (A, B o C) se activan o desactivan según el valor decimal „d‟.
Al primer pin del puerto (A0, B0 o C0) le corresponde el bit menos significativo del valor „d‟, si
este bit está en estado lógico 1 el pin se activará, de lo contrario se desactivará.
Ejemplo: wOB7 activará B0:B2 y desactivará B3: B7 (7 decimal equivale a 00000111 binario)

Comando activa pin de salida: wo<pnd>


Argumento: pnd (p: puerto A, B o C; n: pin 0:7; d: estado lógico 0 ó 1)
Descripción: Asigna estado al pin de salida „n‟ del puerto „p‟ con el estado lógico d (1: activo, 0:
desactivo).
Ejemplo: woB21 activa el pin 2 del puerto B, es decir B2.

Comando lectura de puerto de entrada: wI<p>


Argumento: p (puerto A, B o C)
Descripción: Lee las entradas del puerto „p‟ retornando su estado como un valor decimal.
Ejemplo 1: wIA lee cada pin del puerto A, el estado lógico de cada pin del puerto conforma un bit
(0 o 1) en el valor decimal devuelto, desde el menos significativo A0 hasta el más significativo, en
este caso A5 (A6 y A7 se leen como 0).
Ejemplo 2: si wIB retorna un valor decimal 15 significa que los primeros 4 pines del puerto B
(B0:B3) están en estado lógico 1 (señal sobre 3 volts presente en cada pin) y los 4 pines
siguientes (B4:B7) están en estado lógico 0 (señal presente en cada pin menor a 0.6 Volts).

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 5


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Comando lectura de pin de entrada: wi<pn>
Argumento: pn (p: puerto A, B o C; n: pin 0:7)
Descripción: retorna el estado lógico del pin especificado.
Ejemplo: wiC0 retorna 1 si en el pin C0 hay una señal mayor de 3 volts o 0 si es menor de 0.6
volts (señales con valores entre 0.6 y 3 volts no están definidas como niveles lógicos, es decir el
retorno es indeterminado).

Configuración automática:

La configuración de entrada o salida de cada pin se efectúa en forma automática si se ejecuta un


comando de entrada o salida de pin, es decir, al ejecutar un comando del tipo wi<pn> el pin
correspondiente será automáticamente seteado como entrada; si se ejecuta un comando del tipo
wo<pnd> el pin respectivo será previamente configurado como salida.

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.

Comando configura conversor análogo/digital: wAC<n>

Argumento: n define los pines que operaran como entradas análogas. Según la siguiente tabla:

n Configuración de Entradas Análogas


0 Todo el puerto como entrada/salida digital
1 A0 A1 A2 A3 A5 Vref+=5V Vref-=GND
2 A0 A1 A2 A3 Vref+=5V Vref-=GND
3 A0 A1 A2 Vref+=5V Vref-=GND
4 A0 A1 Vref+=5V Vref-=GND
5 A0 Vref+=5V Vref-=GND
6 A0 A1 A2 Vref+=A3 Vref-=GND
7 A0 A1 Vref+=A3 Vref-=A2
8 A0 A1 A5 Vref+=A3 Vref-=A2

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.

Comando adquisición análogo/digital: wAD<n>


Argumento n: n canales de muestreo (1:5)
Descripción: Muestrea los canales de entrada análoga representados por ‗n‘.
Ejemplo: wAD124 muestrea los canales 1,2 y 4, retorna el valor digital de las señales presentes
en A0, en A3 y en A5.

Comando de configuración de muestreo continuo: wADs<t>


Argumento t: 8.192*d milisegundos entre muestreo de los canales especificados por wADn.
Descripción: Inicia un muestreo continuo de los canales definidos por el comando wAD<n> con el
intervalo de tiempo especificado. Este comando inicializa el muestreo de un bloque encabezando
los datos por el intervalo de tiempo usado (en ciclos).
Ejemplo:
wADs1 configura el tiempo entre muestreos en 8.192 ms.
wADs125 configura el tiempo entre muestreos en 1 s.
wADs1250 configura el tiempo entre muestreos en 10 s.

Precaución:

En ningún caso la señal análoga debe superar el voltaje de alimentación del


microcontrolador que corresponde a +5Vdc, ni ser menor al voltaje de GND (0 Vdc)

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 7


http://sistemasdigitales.cl sd@sistemasdigitales.cl
4. Pulsos (PWM y medición de ancho de pulso)

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.

Comando setea frecuencia del tren de pulsos modulados en ancho: wPF<d>


Argumento d: Selecciona la frecuencia del tren de pulsos según la siguiente tabla.
Descripción: Setea el generador de (Pulse Wide Modulation) PWM para que trabaje con la
frecuencia seleccionada.

d Frecuencia [Khz]
1 31.25
2 7.81
3 1.95

Comando generación PWM1: wPa<n>


Argumento n: n es el ciclo de trabajo expresado en % (0% a 100%).
Descipción: genera un tren de pulsos modulado en ancho en el pin C2
Ejemplo: wPa50 genera un PWM en el pin C2 con un ciclo de trabajo del 50%

Comando generación PWM2: wPb<n>


Argumento n:
Descripción: genera un tren de pulsos modulado en ancho en el pin C1
Ejemplo: wPb25 genera un PWM en el pin C1 con un ciclo de trabajo del 25%

Comando medición de ancho de pulso: wPL<d>


Argumento d: pin de entrada para el pulso positivo (niveles TTL).
d=0 pin B0
d=1 pin B1
d=2 pin B2
Descripción: espera el flanco de subida y mide el tiempo que el pulso se mantiene en nivel lógico
positivo. Verificar que el pin que se utilice este configurado como entrada.

Observaciones:

Para las funcionalidades que corresponda verificar que jumpers B y C no estén puestos
(deshabilita conexión con memoria Eeprom).

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 8


http://sistemasdigitales.cl sd@sistemasdigitales.cl
5. Contador de pulsos

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.

Comando Inicialización del contador: wCI<d>


Descripción: Asigna el valor d al contador. <d>: 0 a 65535

Comando Configuración del contador: wCC<n>


Argumento: n (0: sin divisor, 1: divisor en 2, 2: divisor en 4, 3: divisor en 8)
Ejemplo: wCC1 configura el contador de pulsos para incrementar su cuenta cada 2 pulsos que
lleguen al pin C0 (divisor=2)

Comando Leer el contador de pulsos: wCL


Descripción: Lee y retorna el valor del contador de pulsos. El registro del contador es de 16 bits
por lo que la cuenta máxima llega hasta 65535 volviendo a 0 si se supera este valor (de usar el
divisor por 8 el contador contaría como máximo 65536*8 pulsos).

Comando Deshabilitar el contador: wCX


Descripción: Detiene el contador aunque haya señal de pulso en C0.

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.

Comando configura comparador: wN<n>


Argumento: n, evento a gatillar al igualarse el contador con el comparador según la siguiente
tabla:

n Evento al igualarse el contador con el comparador


0 Activa C2
1 Desactiva C2
2 Cambia de estado C2
3 Resetea el contador

Comando cargar comparador: wNC<d>


Argumento d: valor decimal de carga del comparador (0-65535)
Descripción: carga el comparador de modo que cuando el contador llegue a ese valor, se gatille
el evento antes configurado.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 9


http://sistemasdigitales.cl sd@sistemasdigitales.cl
7. Memoria Eeprom (Funciones de Datalogger)

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 define dirección de escritura o lectura: wED<d>


Argumento d: Define la dirección desde donde se va a escribir o a leer la memoria Eeprom por
word (2 bytes). Rango 0 a 15000. El almacenamiento automatico (comando wADs<t>) del
muestreo AD utiliza 3 bytes por dato.

Comando define dirección de escritura o lectura: wEd<d>


Argumento d: Define la dirección desde donde se va a escribir o a leer la memoria Eeprom por
byte. Rango 0-30000.

Comando escritura de memoria: wEW<d>


Argumento d: Valor decimal (0-65535 2 bytes) que se escribirá en la dirección antes definida con
el comando wED<d>.

Comando escritura de memoria: wEw<d>


Argumento d: Valor decimal (0-255 1 bytes) que se escribirá en la dirección antes definida con el
comando wEd<d>.

Comando lectura de memoria: wER


Descripción: Retorna el valor decimal (0-65535) del dato leído en la dirección antes definida con
el comando wED<d>.

Comando lectura de memoria: wEr


Descripción: Retorna el valor decimal (0-255) del dato leído en la dirección antes definida con el
comando wEd<d>.

Comando almacenamiento de muestreo en Eeprom (ver muestro analogo y comandos


asociados en pag.6) : wADm<d>
Argumento d: d=1 almacena la data muestreada en la memoria interna, d=0 no almacena
muestreo.
Ejemplo 1: wADm1 la data que se muestree será almacenada en la Eeprom interna, podrá leerse
posteriormente.
Ejemplo 2: Para capturar una señal que varia entre 0 y +5Vdc se elige el pin A0 como entrada,
se configura como entrada digital con el comando wSA1 y luego como entrada para señal
análoga con referencias entre GND y +5Vdc con el comando wAC5, para que la señal se
muestree se usa el comando wAD1. Para que el muestreo sea continuo cada aproximadamente
800 ms wADs100.

Comando leer bloque muestreado por el conversor AD: wEL


Descripción: Lee un bloque de datos de 2 bytes. Estos datos deben haber sido guardados por el
conversor AD (muestreo análogo habilitado el almacenamiento de la data en le Eeprom con el
comando wADm1) pues interpretará los datos según la estructura de almacenamiento, es decir,
cada muestreo se compone de 3 bytes, el primero registra el canal de muesrteo y los 2 siguientes
(2 bytes) contienen el valor muestreado de 10 bits Cada bloque de almacenamiento contiene un
encabezado de 2 bytes que registran el intervalo de muestreo (en ciclos). En el caso de usar
modulos externos, este encabezado indica la dirección y el tipo de módulo que efectuó la captura.
Los datos se despliegan indicando en una primera columna el canal y la siguiente el valor del
dato.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 10


http://sistemasdigitales.cl sd@sistemasdigitales.cl
8. Otros Comandos:

Comando repetición: w
Descripción: Repite el comando anterior

Comando detención de ciclo: wh


Descripción: Detiene el muestreo AD continuo.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 11


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Modo PLC
En el área industrial usualmente los PLC (controladores lógicos programables) son programados en
―lógica escalera‖ (como se observa en la figura 1). Estos programas se presentan en forma gráfica en
lugar de sentencias lo que para muchas personas es más fácil de comprender. Básicamente estos
programas se asemejan a circuitos eléctricos con contactos (entradas) y bobinas (o comúnmente ―coils‖
que son las salidas) lo que permite un acercamiento mucho más sencillo e intuitivo para mucha gente que
ya tiene cierto conocimiento de electricidad.

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

Fig.1- Interfase para programación y transmisión de comandos.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 12


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Lengueta “Comandos”:
Esta lengueta activa la ventana para transmisión de comandos hacia la uCon, en particular en modo PLC
el comando ―wplc1‖ que hace que se ejecute el programa almacenado en la Eeprom y ―wplc2‖ que hace
que se detenga el programa.

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.

Transmisión de los byteCodes y Ejecución de programa

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 13


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Entradas digitales físicas y lógicas

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

Entradas y salidas (Contactos y Coils)

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 14


http://sistemasdigitales.cl sd@sistemasdigitales.cl
pin/bit
Coil Normal: --( )--
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 verdadero.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 15


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Timers:

Número máximo de timers: 8


Rango de configuración [0 65535]
Unidad de tiempo: 10 ms

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:

Número máximo de contadores: 8


Tiempo mínimo de detección: 100 ms
Valores de configuración: [0 65535]

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:

MOV: --[ dest := orig ]--

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:

SUM: --[ dest = var1+ var2 o const ]--


RES: --[ dest = var1 - var2 o const ]--
MUL: --[ dest = var1 x var2 o const ]--
DIV: --[ dest = var1 / var2 o const ]--

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:

Raiz Cuadrada: --[ dest = SQRT arg ]—


Argumento: variable o constante positiva.
Calcula la raiz cuadrada del argumento positivo y lo deja en la varible seleccionada como destino.
Argumento con valor negativo resulta un valor indefinido.

Valor Absoluto: --[ dest = ABS arg ]—


Argumento: variable o constante.
Calcula el valor absoluto del argumento. El resultado es asignada a la variable destino.

Logaritmo natural: --[ dest = LOG arg ]—


Argumento: variable o constante positiva.
Calcula el logaritmo natural del argumento o variable. Si el valor es menor o igual a cero o fuera de rango
el resultado es indeterminado.

Logaritmo en base 10: --[ dest = LOG10 arg ]—


Argumento: variable o constante positiva.
Calcula el logaritmo en base 10 del argumento. Si el valor es menor o igual a cero o fuera de rango el
resultado es indeterminado.

Funcion trigonométrica seno: --[ dest = SIN arg ]—


Argumento: variable o constante entre [–2pi 2pi]
Calcula el seno del argumento (angulo en rad). Retorna decimal en el rango [-1.0 1.0]

Funcion trigonométrica coseno: --[ dest = COS arg ]—


Argumento: variable o constante entre [–2pi 2pi]
Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 17
http://sistemasdigitales.cl sd@sistemasdigitales.cl
Calcula el coseno del argumento (angulo en rad). Retorna decimal en el rango [-1.0 1.0]

Funcion trigonométrica tangente: --[ dest = TAN arg ]—


Argumento: variable o constante entre [–2pi 2pi]
Calcula la tangente del argumento (angulo en rad). Retorna decimal en el rango [-1.0 1.0]

Elevación xY: --[ dest = x POW y ]—


Argumento: variable o constante.
Calcula x a la potencia Y.

Exponencial : --[ dest = EXP arg ]—


Argumento: variable o constante.
Calcula la funcion exponencial del argumento, es decir, e elevado a la potencia (argumento), donde e es
la base del logaritmo natural. ej. exp(1) = 2.72.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 18


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Muestreo Analógico
AD0
Adq ChQn --[ Adq Ch0 ]--

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

Igual: --{ var = var/cte]--


Mayor: --{ var > var/cte]--
Menor: --{ var < var/cte]--
Mayor igual: --{ var >= var/cte]--
Menor igual: --{ var <= var/cte]--

Si la señal de entrada es verdadera entonces se realiza la comparación y la salida será verdadera si y


sólo si la comparación es verdadera.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 19


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Ejemplos

Ej.1 Reset de contador al llegar a la cuenta de 5, el contador aumenta su cuenta con un pulso de entrada

Ex1 Ex2 Sx1


|---| |-------------------------| C1up 5 |----------------------( )----|
|
| Sx1 Ex2
|---| |-----------------------------------------------------------( R )----|

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

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 20


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Layout y pines
Botón de reset Led testigos de
comunicacion serial
Conectores de
alimenación 9 a
12 Vdc, jack con Comunicaci
on RS232
interno positivo.

Conf. de pines
compartidos Pines de entrada/salida

Vin : voltaje de alimentación de +9 a +12 Vdc


A0:A5 : Puerto A
B0:B7 : Puerto B
C0:C5 : Puerto C
Vcc : salida +5Vdc
Com232 : puerto serial de comunicación RS232
Com1 : puerto con control RTS para opción RS485 (no implementado)
Jconf : jumper de configuración para uso de pines compartidos

Versión de Firmware: uCon_PLC 2.0.0

Cambios con respecto a version 1.x

- Implementa funciones aritméticas (ADD,SUB,MUL,DIV).


- Implemente funciones matemáticas (SQRT, ABS, EXP, POW, SIN, COS, TAN, LOG, LOG10).
- Implementa timer con retención.
- Implementa contador circular.
- Implementa Coil negado.
- Timers y contadores incrementan su rango a [0 65535]
- Expande bits de memoria a 32 posiciones (M00 a M31).
- Expande memoria de uso general a 16 datos de tipo flotante de 32 bits.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 21


http://sistemasdigitales.cl sd@sistemasdigitales.cl
Circuitos de Ejemplo

1) Control relé para activar carga con 220 Vac (bobina de 12 Vdc)

Usando la salida B0:

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.

2) Captura de nivel de luminosidad ambiental.

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.

Eliodoro Yañez 1742 Of.31. Providencia, Santiago. Chile 22


http://sistemasdigitales.cl sd@sistemasdigitales.cl

También podría gustarte