Você está na página 1de 95

Universidad de Costa Rica

Facultad de Ingeniera
Escuela de Ingeniera Elctrica

IE 0502 Proyecto Elctrico

Interfaz Humano-Mquina para la familia de PLCs


Unitronics.

Por:
Alexnder Barrantes Muoz

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. ii

Interfaz Humano-Mquina para la familia de PLCs


Unitronics.

Por:
Alexnder Barrantes Muoz

Sometido a la Escuela de Ingeniera Elctrica


de la Facultad de Ingeniera
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:

BACHILLER EN INGENIERA ELCTRICA

Aprobado por el Tribunal:

___________________
M.Sc. Geovanny Delgado Cascante
Profesor Gua

___________________ __________________
Ing. Roberto Rodrguez Rodrguez Dr. Jorge Arturo Romero Chacn
Profesor Lector Profesor Lector

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. iii

DEDICATORIA

A mi mam por estar siempre incondicional, cuando la ocup,


por brindarme la oportunidad de estudiar y porque
su muerte no culmin con su deseo, el hacerme una persona de bien.
A mis hermanas por ayudarme en mi carrera,
por ser mi admiracin y modelo a seguir.
A Ftima por estar siempre a mi lado,
y por dar de s misma algo que no tiene valor, amor.
A mis amigos por hacerme sentir especial.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. iv

RECONOCIMIENTOS

Carlos Manuel Calvo Muoz


Por su constante ayuda en este proyecto
A mis Profesores
Por compartir con tanto gusto su
experiencia y conocimiento

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. v

NDICE GENERAL

NDICE DE FIGURAS......................................................................................... vii


NDICE DE TABLAS.......................................................................................... viii
NOMENCLATURA............................................................................................... ix
LSTA DE MARCAS REGISTRADAS ................................................................ xi
RESUMEN............................................................................................................. xii
CAPTULO 1: Introduccin .................................................................................. 1
1.1 Objetivo General..............................................................................................................2
1.1.1 Objetivos especficos .............................................................................................. 2
1.2 Metodologa .....................................................................................................................2
CAPTULO 2: Generalidades de una Aplicacin HMI ...................................... 5
2.1 Generalidades de un PLC. .........................................................................................................5
2.1.1 Concepto ........................................................................................................................ 5
2.1.2 Funciones ....................................................................................................................... 6
Las funciones bsicas que posee un PLC comn son:............................................................ 6
2.1.3 Componentes ................................................................................................................ 7
2.1.4 Aplicaciones.................................................................................................................. 9
2.1.5 Fortalezas y Debilidades............................................................................................... 9
2.2 Generalidades de los Sistemas SCADA. .................................................................................10
2.2.1 Concepto ...................................................................................................................... 10
2.2.2 Funciones de un Sistema SCADA ............................................................................... 12
2.2.3 Elementos necesarios para un sistema SCADA .......................................................... 12
2.3 Protocolos de Comunicacin ...................................................................................................13
2.3.1 Concepto ...................................................................................................................... 13
2.3.2 Protocolo DDE............................................................................................................. 14
2.4 Enlaces OLE para Windows ....................................................................................................17
2.5 Generalidades de un Servidor OPC .........................................................................................19
2.6 Compilador Grfico Delphi. ....................................................................................................23
CAPTULO 3: Desarrollo de una Interfaz HMI ............................................... 25
3.1 Breve resea de la compaa Unitronics..................................................................................25
3.1.1 Misin .......................................................................................................................... 26
3.1.2 Historia de sus productos............................................................................................. 26

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. vi

3.1.3 Breve Organigrama de la compaa............................................................................. 27


3.1.4 Puntos Claves............................................................................................................... 27
3.1.5 Productos ..................................................................................................................... 27
3.2 La familia de productos de Unitronics.....................................................................................28
3.2.1 Caractersticas generales de los productos................................................................... 29
3.2.1.1 El modo de informacin ........................................................................................... 30
3.2.1.2 La estructura de memoria de la serie M90................................................................ 30
3.2.1.3 Variables ................................................................................................................... 31
3.2.1.4 Comunicacin ........................................................................................................... 32
Puerto Serial.......................................................................................................................... 32
3.3 Caractersticas Generales del M90 OPLC............................................................................33
3.3.1 Tipos de datos del sistema ........................................................................................... 35
3.3.2 Especificaciones Tcnicas ........................................................................................... 37
3.3.3 Acceso de datos ........................................................................................................... 39
3.3.3.1 Nombre de los tems ................................................................................................. 40
3.4 Desarrollo del programa SCADA para la interfaz HMI ..........................................................46
CAPTULO 4: Conclusiones y Recomendaciones ............................................. 50
4.1 Conclusiones............................................................................................................................50
4.2 Recomendaciones ....................................................................................................................51
BIBLIOGRAFA................................................................................................... 52
ANEXOS ................................................................................................................ 53

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. vii

NDICE DE FIGURAS
Figura N2.1 Funcionamiento e Interfaces de OPC ................................................................. 21
Figura N2.2 Modelo de Objetos del Servidor de Automatizacin OPC ................................. 21
Figura N3.1 Organigrama de la Co. Unitronics ...................................................................... 27
Figura N3.2 Familia de PLCs de Unitronics ........................................................................... 29
Figura N3.3 Conectando la PC con un Controlador................................................................ 34
Figura N3.4 PLC M90............................................................................................................. 39
Figura N3.5 Pantalla de Conexin de UniScada ..................................................................... 49
Figura N3.6 Pantalla de Conexin de UniHMI....................................................................... 49

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. viii

NDICE DE TABLAS
Tabla 2.1 Descripcin de la coleccin de objetos de la especificacin OPC ........................... 22
Tabla 3.1 Descripcin de registros internos del M90 ............................................................... 33
Tabla 3.2 Distribucin de pines del puerto RS232 ................................................................... 33
Tabla 3.3 Descripcin de conexin para el puerto CANbus.................................................... 34
Tabla 3.4 Categoras de informacin que se pueden alcanzar en el modo de Informacin...... 35
Tabla 3.5 La funcin de los bits del sistema............................................................................. 36
Tabla 3.6 Funciones de Bits del Sistema del teclado................................................................ 36
Tabla 3.7 Funciones de los Enteros del Sistema....................................................................... 37
Tabla 3.10 Descripcin de los tipos de tems del M90 ............................................................. 41

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. ix

NOMENCLATURA
ActiveX Tecnologa de Acceso a Datos
ADO Objetos de Base de Datos ActiveX
Baud rate Tasa de transmisin de datos en bps
BDE Motor de Base de Datos de Borland
CCFL Lmpara fluorescente
COM Modelo Componente del Objeto
CORBA Arquitectura Comn del Corredor de la Peticin del Objeto
CPU Unidad Central de Proceso
DCOM Distribucin COM
DDE Protocolo de Intercambio de datos dinmico
DLL Librera de Enlace Dinmico
DSR Entrada Datos preparados, listo para iniciar dilogo
DTR Patilla de terminal de listo datos del puerto RS232
HMI Interfaz Humano-Mquina
ID Identificacin
NetDDE Red de DDE
Ladder Programa de configuracin de PLCs en lenguaje escalera
LCD Pantalla de cristal lquido
OCX Librera de programacin
OLE Enlace e inclusin de objetos
OPC OLE para Control de Procesos
OPLC Serie de PLCs Unitronics
PC Computadora Personal
Pcom Protocolo propietario de Unitronics
PID Proporcional Integral Derivativo
PLC Controlador Lgico Programable
PWM Modulacin de Anchura de Pulso

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. x

QVGA Clase de tecnologa


RAD Desarrollo Rpido de Aplicaciones
RAM Memoria de acceso lectura
RxD Patilla de recepcin de datos del puerto RS232
RS232 Puerto Serial de la PC
RJ-11 Cable para conexin del mdem a la base de la red telefnica
SCADA Supervisor de Control y Adquisicin de Datos
STL Librera estndar de plantillas
Tag Conjunto de caracteres que se aade a un elemento de los datos
para identificarlo
TxD Patilla de transmisin de datos del puerto RS232
UCR Universidad de Costa Rica
VCA Voltaje de Corriente Alterna
VCD Voltaje de Corriente Directa
VisiLogic Programa para PLCs Unitronics
WebPLC Serie de PLCs Unitronics basados en comunicacin por web
I/O Entradas/Salidas

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. xi

LSTA DE MARCAS REGISTRADAS


Delphi Enterprise 5.0: Borland Pascal
Unitronics: M90, OPC Server
Microsoft: Windows, Office(Word, Excel, Access), Internet Explorer, NetDDE, DDE, OLE,
DCOM, ADO, BDE, InterBase, InstallShield
OPC Foundation: Intellution, Opto-22, Fisher-Rosemount, Rockwell Software y Intuitiv
Software
Siemens
C++, Visual Basic, VBScrip, JavaScript
DeviceNet

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. xii

RESUMEN

El objetivo principal es una aplicacin HMI, Interfaz Humano Mquina, para el modelo
de PLCs de Unitronics M90, por medio de la implementacin de un programa SCADA en la
plataforma de programacin Delphi Enterprise 5.0, con lenguaje Borland Pascal. Se empez por
estudiar dicha plataforma, que utiliza programacin orientada a objetos. Despus se estudi la
estructura interna del PLC M90, se estableci comunicacin con el PLC en pequeas pruebas de
manipulacin de registros internos en Excel por medio del protocolo de comunicacin DDE.
Seguidamente se trasladaron estas pruebas a desarrollos con Delphi y poco a poco se fueron
solventando problemas que aparecan en el transcurso de la implementacin. Las fuentes de
informacin fueron obtenidas en su gran parte de Internet.
Se utilizaron variables tales como el servidor OPC de Unitronics, los enlaces OLE de
Windows y el protocolo DDE, entre otros.
Se han podido experimentar las ventajas de utilizar herramientas diseadas especialmente
para la creacin de sistemas SCADA.
Los resultados fueron: Se Desarroll una Interfaz Humano-Mquina (HMI) para la
familia de PLCs Unitronics con la creacin de las aplicaciones UniScada y Uni_HMI, Se
practic en el desarrollo de aplicaciones en Borland Delphi, Se estudi la arquitectura de los
PLCs Unitronics, Se Desarroll una aplicacin de comunicacin entre Delphi y el OPC Server
de Unitronics, Se Realiz una aplicacin de lectura de registros del PLC, Se Desarroll la
aplicacin HMI de despliegue de registros, pues se obtuvo un prototipo de lo que hoy en da es
materia de mercado, asimismo, se elimin el desconocimiento en dicho tema, haciendo ms
familiar futuras experiencias con programas SCADA comerciales en el campo laboral.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 1

CAPTULO 1: Introduccin
Lo que se pretendi en este trabajo fue la creacin de un programa bsico de
monitoreo estilo SCADA, como es mencionado comercialmente, implementndolo en
una plataforma de programacin grfica, Delphi 5.0, en donde se estableci una
comunicacin entre un PLC y la PC, de manera que el usuario pueda tener una cmoda
interaccin con el dispositivo.
Se seleccion el controlador lgico programable de la familia de Unitronics,
enfatizando en el modelo M90, a pesar de que toda la lnea de PLCs de dicha familia
(Unitronics) posee caractersticas extremadamente similares, en donde es posible que sus
diferencias significativas no sean ms que sus capacidades de memoria, pero su
estructura interna es muy parecida y para efectos de este proyecto la comunicacin y
manipulacin de datos son idnticas, pues hasta los registros internos poseen los mismos
nombres.
Este dispositivo (M90) fue seleccionado por su simple estructura interna y su fcil
manipulacin, como ms adelante se mencionar. La plataforma de programacin
Borland Pascal de Delphi fue seleccionada por sus caractersticas grficas y de
compatibilidad con los sistemas OPC.
El fin que posee este proyecto fue desarrollar una interfaz HMI, para adentrar al
estudiante en aplicaciones industriales muy usadas hoy en da, con el objetivo de
actualizar al estudiante con materia de mercado en el rea de control automtico. Un
objetivo futurista de este trabajo pretende utilizar las bases creadas para la realizacin de
un software competitivo en el mercado industrial, de manera que se optimice y se
produzcan nuevas implementaciones con mayor detalle y versatilidad, dejando un
software abierto. Este legado pretende motivar al estudiante en la creacin de este tipo de
softwares.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 2

1.1 Objetivo General

Desarrollar una Interfaz Humano-Mquina (HMI) para la familia de PLCs


Unitronics. M90.
1.1.1 Objetivos especficos

Entrenamiento en el desarrollo de aplicaciones en Borland Delphi.


Estudiar la arquitectura de los PLCs Unitronics M90.
Desarrollar una aplicacin de comunicacin entre Delphi y el OPC Server de
Unitronics.
Realizar una aplicacin de lectura de registros del PLC.
Desarrollar la aplicacin HMI de despliegue de registros.

1.2 Metodologa

La metodologa utilizada para la realizacin de este proyecto, comenz con una


distribucin del tiempo secuencial para cada objetivo especfico antes mencionado. El
cronograma de las actividades realizadas inici con el establecimiento de rangos de
tiempo determinados por la dificultad del objetivo.

En primer lugar se dependa y a su vez se limitaba a ser desarrollado en un lapso


de cuatro meses, dictado por la divisin de los periodos lectivos establecidos por la UCR.
Como parte del procedimiento se tuvieron que realizar constantes y aleatorias reuniones
profesor gua-estudiante, segn la necesidad de respaldo e informacin que el estudiante
necesitara en el proceso tanto de elaboracin como en el de investigacin del trabajo.

En dichas reuniones se definieron en primer lugar el tema a realizar, el


procedimiento a seguir, las fuentes de informacin necesarias y consultora. Conforme
pas el tiempo se tuvo que acudir a asesoras con personas expertas o familiarizadas con
los temas, en donde si no precisamente fue funcin total del profesor gua, el mismo
brindaba las dichas fuentes asesoras.

El estudiante por su parte tambin acudi a asesores segn su comodidad, debe


entenderse que los asesores encontrados no posean en su totalidad conocimiento de
aplicaciones similares a la realizada y que su conocimiento comprenda desde control-

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 3

automtico solamente hasta simple programacin, por lo que la base terica obtenida fue
compuesta por informacin de fuentes diversas.

El primer apartado del cronograma correspondi al a) Entrenamiento en el


desarrollo de aplicaciones en Borland Delphi. Ntese que la Escuela de Ingeniera
Elctrica carece de cursos obligatorios de introduccin a la programacin orientada a
objetos en su plan de estudios, por lo que se debi familiarizar con dicho tema, y se debe
recalcar que esta es la base de este proyecto, por lo que se destin, al ser este uno de los
objetivos de mayor dificultad, un periodo de un mes y medio. El resto del tiempo fue
destinado para los dems objetivos.

Una vez emprendido el trayecto con los conocimientos bsicos de la plataforma


Delphi y de programacin orientada a objetos, se procedi al siguiente paso b) Estudiar
la arquitectura de los PLCs Unitronics M90. Es necesario citar que la familia de
PLCs Unitronics poseen caractersticas muy parecidas, me refiero al mbito de sus
registros internos, que adems son relativamente simples y de fcil comprensin; por lo
que el tiempo destinado a esta etapa no fue excesivo; por el contrario, este puede que
fuese el ms fcil de los objetivos, como se refiere en el captulo 3, basta ms que leer ese
captulo del informe para darse por enterado y comprendido todo lo referente a este tipo
de PLCs. Se debe recalcar que el mayor asesor sobre este tema fue el profesor gua, pues
adems de que posee vasta experiencia en el rea de automatizacin, es un experto de la
familia de PLCs Unitronics.

El tercer apartado fue: c) Desarrollar una aplicacin de comunicacin entre


Delphi y el OPC Server de Unitronics, d) Realizar una aplicacin de lectura de
registros del PLC e) Desarrollar la aplicacin HMI de despliegue de registros. Estas
aplicaciones (puntos c, d y e) se realizaron por primera vez en la hoja de clculo Excel ,
por su gran comodidad, facilidad y documentacin, pues en la ayuda del driver OPC
Server existe informacin de comunicacin Excel -Servidor OPC; se estableci
comunicacin entre el PLC y la PC, en donde se probaron los registros internos, de
manera que se comprob las diferentes utilidades de cada registro, conocindolas ms
profundamente. Este paso fue muy fcil gracias a los protocolos de comunicacin tipo

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 4

DDE que posee Windows , pues con este protocolo se pudo comunicar Excel con el
OPC Server.
Se prosigui con una pequea implementacin de comunicacin en la plataforma
Delphi. Este objetivo puede que fuese el ms difcil de todos, y el que tom mayor
tiempo, pues fue imposible importar el DLL del OPC Server al compilador Delphi 5.0,
problema que se atribuye a la incompatibilidad de este OPC Server (de Unitronics Co)
con la versin del Delphi Enterprise (5.0). Todava se desconoce si de verdad esta fue la
razn o simple desconocimiento. Al no tener mucho tiempo para determinar el motivo, se
decidi tomar una medida paralela y alterna, la cual correspondi a la creacin de una
clase Excel (Excel Application), que se puede hacer en Delphi Enterprise 5.0, que
permite emular partes de la hoja de Excel , tales como una celda.
El ltimo objetivo fue f) Completar la aplicacin HMI de forma grfica. Este
objetivo necesit mucha creatividad e informacin, pues es aqu donde se empez a
desarrollar la interfaz grfica. Se trabaj con archivos, entre muchos elementos de
programacin, lo cual implic gran cantidad de consultas acerca de informacin sobre la
implementacin de determinados elementos, realizadas en Internet.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 5

CAPTULO 2: Generalidades de una Aplicacin HMI


Para iniciar en el desarrollo de este proyecto, se especifican algunas conceptos de
relevancia con respecto a los PLCs, en trminos generales, y sobre nuestra aplicacin se
especifican su definicin, funciones, estructura fsica Hardware o componentes,
aplicaciones, debilidades y fortalezas. Seguido a esto procede definir conceptos como
definiciones de un sistema SCADA y sus funciones, protocolos de comunicacin,
protocolo DDE, OLE para Windows y Servidor OPC , adems la utilidad del compilador
Delphi en el proyecto, entre otras cosas de conocimiento imprescindible. Esta es la
teora que se debe tener muy clara antes de empezar a desarrollar una aplicacin HMI.
Se espera que cualquier persona que lea el informe puede iniciarse en el tema,
conociendo los principios bsicos para desarrollar una aplicacin HMI.

2.1 Generalidades de un PLC.

2.1.1 Concepto

Las siglas PLC significan Programmable Logic Controller, lo que en espaol


sera Controlador Lgico Programable. Resulta ser simplemente a grandes rasgos un
equipo que se puede programar en un lenguaje simblico, y est diseado para controlar
procesos industriales e implementar mquinas.
Cuando se refiere a programar en un lenguaje no informtico, se habla de que
estos aparatos se programan en un lenguaje denominado Escalera, un tipo de
programacin muy simple, fcil y amigable de manera que no hace falta escudriar en
profundidad las notaciones que poseen generalmente los compiladores comerciales,
donde es necesario estar familiarizado con algn lenguaje para entenderlo.
Este lenguaje se basa en una notacin grfica de bloques (en algunos casos, tales
son los PLCs marca SIEMENS), o con figuras simples como esquemticos de
contactores, bobinas y otros. Al no estar este tema en nuestro marco de anlisis, pues la
aplicacin est directamente relacionada con la manipulacin de los registros internos del
PLC, se retoma este tema en el Captulo 3.
Un PLC recibe por sus entradas o captadores, informacin que ser procesada por
un programa lgico interno determinado, que ejecutar acciones especficas sobre sus

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 6

accionadores en sus salidas. Por lo que los PLC son funcionales en sistemas que poseen
procesos de monitorear, control, entre otros.
Es necesario utilizar PLC en el caso que se presenten situaciones tales como1:
Espacio reducido
Procesos de produccin peridicamente cambiante
Procesos secunciales
Maquinaria de procesos variables
Instalaciones de procesos complejos y amplios
Chequeo de programacin centralizada de las partes del proceso.
2.1.2 Funciones

Las funciones bsicas que posee un PLC comn son2:

Deteccin: Lectura de la seal de las entradas distribuidos por el sistema de


fabricacin.
Mando: Elaborar y enviar las acciones al sistema mediante las salidas y
preaccionadores.
Dilogo hombre mquina: Mantener un dilogo con los operarios de produccin,
obedeciendo sus consignas e informando del estado del proceso.
Programacin: Para introducir, elaborar y cambiar el programa de aplicacin del
autmata. El dilogo de programacin debe permitir modificar el programa incluso con el
autmata controlando la mquina.
Hoy en da los PLCs poseen nuevas funciones tales como:
Redes de comunicacin: Permiten establecer comunicacin con otras partes de
control. Las redes industriales permiten la comunicacin y el intercambio de datos entre
autmatas en tiempo real.
Sistemas de supervisin: Tambin los autmatas permiten comunicarse con
ordenadores provistos de programas de supervisin industrial. Esta comunicacin se

1
Puntos tomados de
http://www.grupo-maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/plc.htm.
2
Funciones tomadas de:
http://www.grupo-maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/plc.htm.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 7

realiza por una red industrial o por medio de una conexin por el puerto serie del
ordenador.
Control de procesos continuos: Adems de dedicarse al control de sistemas de
eventos discretos los autmatas llevan integradas funciones que permiten el control de
procesos continuos. Disponen de mdulos de entrada y salida analgicas y la posibilidad
de ejecutar reguladores PID que estn programados en el autmata.
Entradas- Salidas distribuidas: Los mdulos de entrada salida pueden estar
distribuidos por la instalacin y se comunican con la unidad central del autmata
mediante un cable de red.
Buses de campo: Mediante un solo cable de comunicacin se pueden conectar al
bus de entradas y salidas, reemplazando al cableado tradicional. El autmata consulta
cclicamente el estado de las entradas y actualiza el estado de las salidas.
2.1.3 Componentes

Entre los principales componentes de un PLC bsico se encuentran los


siguientes3:
Gabinete Principal: Este elemento es sobre el que se "enchufan" o conectan el
resto de los elementos. Puede alojar a un nmero finito de elementos dependiendo del
fabricante y conectarse a otros gabinetes similares mediante un gabinete de expansin.
Fuente de Alimentacin: La tensin de entrada es normalmente de 110/220VCA
de entrada y 24 VCD de salida que es con la que se alimenta a la CPU.
CPU: Es el cerebro del PLC. Consta de uno o varios microprocesadores (segn el
fabricante) que se programan mediante un software propio. La mayora de ellos ofrecen
varias formas de programacin (lenguaje de contactos, neumnico o instrucciones, de
funciones, etc.).
Normalmente trabajan con buses de 16 bits, aunque algunos modernos trabajan
con buses de 32 bits. Hoy en da la potencia de clculo de estos PLC's es grandsima,
sobre todo si se trabaja con nmeros reales o coma flotante, dando unas resoluciones ms
que deseables. Trabajando con programas digitales puede alcanzarse un ciclo de
exploracin de 10 ms.

3
Informacin tomada de:
http://www.euskalnet.net/m.ubiria/ARTICULOS.htm#Articulos_2001_01

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 8

El programa alojado en la CPU va escrito en un lenguaje propio de la misma, se


ejecuta en una secuencia programable y tiene un principio y un final. El tiempo que
transcurre entre los dos se llama ciclo de exploracin y hay un temporizador interno que
vigila que este programa se ejecute de principio a fin, llamado perro guardin o
watchdog. Si este temporizador finaliza y el programa no ha ejecutado la instruccin
END, el PLC pasar a estado de STOP.
Tarjetas entradas/salidas digitales: Se enchufan o conectan al gabinete y
comunican con la CPU a travs de la citada conexin. En el caso de las entradas digitales
transmiten los estados 0 1 del proceso a la CPU. En el caso de las salidas, la CPU
determina el estado de las mismas tras la ejecucin del programa y las activa o desactiva
en consecuencia.
Normalmente se utilizan tarjetas de entradas de 24 VCD y salidas de 24 VCD,
aunque tambin las hay de 110 y 220 VCA, depende de las preferencias y normativas
locales. Las hay de 8, 16 y 32 entradas o salidas o mezclas de ambas.
Tarjetas entradas/salidas analgicas: Se enchufan o conectan al gabinete de igual
manera que las anteriores, pero teniendo en cuenta que en algunos modelos de PLCs han
de estar situadas lo ms cerca posible de la CPU (por problemas de cada de tensin).
Estas tarjetas leen un valor analgico e internamente lo convierten en un valor digital
para su procesamiento en la CPU. Esta conversin la realizan los convertidores
analgico-digitales internos de las tarjetas que en algunos casos es uno para todos los
canales de entrada o salida aunque actualmente se tiene uno por cada canal de entrada o
salida. En este ltimo caso el procesamiento de las seales analgicas es mucho ms
rpido que en el otro. Estas tarjetas son normalmente de 2, 4, 8 16 entradas/salidas
analgicas, llamndose a cada una de ellas canal. Los rangos de entrada estn
normalizados siendo lo ms frecuente el rango de 4-20 mA (miliamperios) y 0-10 VCD,
aunque tambin existen de 0-20 mA, 1-5V, 0-5V, etc.
Tarjetas especiales: Se enchufan o conectan al gabinete y comunican con la CPU
a travs de la citada conexin. Se utilizan normalmente para control o monitorizacin de
variables o movimientos crticos en el tiempo, ya que usualmente realizan esta labor
independientemente de la CPU. Son algunas muestras las siguientes:
Tarjetas de posicionamiento de motores

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 9

Tarjetas de regulacin.
2.1.4 Aplicaciones

Entre las aplicaciones ms comunes que puede tener un PLC podemos mencionar
algunos ejemplos tales como4:
Maniobra de mquinas
Maquinaria industrial de plstico
Maquinaria de embalajes
Maniobra de instalaciones:
Instalacin de aire acondicionado, calefaccin, etc.
Instalaciones de seguridad
Sealizacin y control:
Chequeo de programas
Sealizacin del estado de procesos
2.1.5 Fortalezas y Debilidades

Las principales virtudes del uso de un PLC son5:


Menor tiempo empleado en la elaboracin de proyectos debido a que:
No es necesario dibujar el esquema de contactos
No es necesario simplificar las ecuaciones lgicas, ya que, por lo general
la capacidad de almacenamiento del mdulo de memoria es lo
suficientemente grande.
La lista de materiales queda sensiblemente reducida, ya que un PLC es un equipo
con muchos elementos integrados, y al elaborar el presupuesto correspondiente se
elimina parte del problema que supone el contar con diferentes proveedores,
distintos plazos de entrega.
Posibilidad de introducir modificaciones sin cambiar el cableado ni aadir aparatos.
Mnimo espacio de ocupacin.
Menor costo de mano de obra de la instalacin.

4
Ejemplos tomados de:
http://www.grupo-maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/plc.htm.
5
Informacin tomada de:

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 10

Economa de mantenimiento. Adems de aumentar la fiabilidad del sistema, al


eliminar contactos mviles, los mismos autmatas pueden indicar y detectar averas.
Posibilidad de gobernar varias mquinas con un mismo autmata.
Menor tiempo para la puesta en funcionamiento del proceso al quedar reducido el
tiempo de cableado.
Si por alguna razn la mquina queda fuera de servicio, el autmata sigue siendo til
para otra mquina o sistema de produccin.
En contraposicin a sus cualidades se puede citar algunas de sus inconvenientes:
Es necesario un programador, lo que obliga a adiestrar a uno de los tcnicos en tal
sentido.
El costo inicial es alto.

2.2 Generalidades de los Sistemas SCADA.

2.2.1 Concepto

Las siglas HMI son provenientes del ingls Human Machine Interface, lo que en
espaol es Interfaz Humano Mquina. Esto se refiere a un programa interfaz, que suele
correr en un computador tipo PC, el cual es utilizado por el operario del proceso
industrial para monitorear y/o controlar un sistema determinado. Este programa interfaz
est en constante comunicacin y transmisin de datos con el PLC.
Antes de seguir refirindose al tema es importante definir otro concepto
elemental, el de sistema SCADA. Cuando se hable de sistemas SCADA se refiere
exclusivamente al software, en este apartado, pero es necesario aclarar que no es lo nico
que comprende el sistema como tal, pero se hace para efectos de inters. Las siglas
SCADA provienen del ingls: Supervisory Control and Data Adquisition, lo que
traducido al espaol y de forma ms explcita, es un software supervisor que realiza la
adquisicin de datos desde PLC hacia una PC comnmente, y el envo de datos en
sentido contrario. El carcter de los datos a transferir en ambos sentidos es de control
(pueden ser simple monitorear, instrucciones, etc.), generalmente de tipo industrial. El
objetivo primordial es que por medio de un programa interactivo, grfico y amigable

http://www.grupo-maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/plc.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 11

simule los procesos que se realizan en una planta (como control de calidad, supervisin,
mantenimiento, etc.), de tal manera que realice un sensado en tiempo real y los
despliegue en la pantalla del PC que utiliza el operador, o tambin, que enve
instrucciones que acten directamente sobre los diferentes dispositivos, de tal manera que
sea tan cmodo como el presionar una tecla del computador.
De una manera ms personal, agregando a la definicin anterior, un programa
SCADA es un software creador de aplicaciones programadas especficas de un proceso
determinado.
Un ejemplo es el de monitorear alarmas de un Banco. Los procesos que se
realizan son: recoger la informacin de los censores en las entradas de un PLC y
visualizar las entradas en la PC (el PLC ya posee una programacin que realizar con
una entrada especfica programado a lenguaje escalera). El programa SCADA est
basado en los iconos necesarios para comunicar el estado de las alarmas, por lo que no se
necesita ms que esta aplicacin en el programa de monitoreo. Pero si es el vendedor de
PLCs y cada cliente necesita una aplicacin distinta o actualizar la que ya tiene, ocupa
tener un programa que cree los distintos softwares para cada aplicacin, a este programa
padre o creador le denomino SCADA.
Continuando con las caractersticas generales de las HMI, cada uno tiene su
software propio y la comunicacin generalmente se da a travs del puerto serial RS232.
Una descripcin general propuesta de cmo deben ser los mdulos que componen
un software SCADA es la siguiente6:
Configuracin: permite al usuario definir el entorno de trabajo de su SCADA,
adaptndolo a la aplicacin particular que se desea desarrollar.
Interfaz grfico del operador: proporciona al operador las funciones de control y
supervisin de la planta. El proceso se representa mediante sinpticos grficos
almacenados en el ordenador de proceso y generados desde el editor incorporado
en el SCADA o importados desde otra aplicacin durante la configuracin del
paquete.

6
Tomado de http://personal.redestb.es/efigueras/

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 12

Mdulo de proceso: ejecuta las acciones de mando preprogramadas a partir de los


valores actuales de variables ledas.
Gestin y archivo de datos: se encarga del almacenamiento y procesado ordenado
de los datos, de forma que otra aplicacin o dispositivo pueda tener acceso a ellos.
Comunicaciones: se encarga de la transferencia de informacin entre la planta y la
arquitectura hardware que soporta el SCADA, y entre sta y el resto de elementos
informticos de gestin.
Algunos requisitos importantes sugeridos, sobre las cualidades que debe poseer
un programa SCADA son los siguientes:
Deben ser sistemas de arquitectura abierta, capaces de crecer o adaptarse segn
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 gestin).
Deben ser programas sencillos de instalar, sin excesivas exigencias de hardware,
y fciles de utilizar, con interfaces amigables con el usuario.
2.2.2 Funciones de un Sistema SCADA

Las principales funciones de un sistema SCADA son las siguientes7:


Visualizar y parametrizar datos del proceso (lectura y/o escritura de variables)
Gestin de alarmas del proceso, con textos de ayuda al operario para la resolucin de
las mismas
Recopilacin de alarmas sucedidas en el tiempo (histrico de alarmas)
Impresin de las citadas alarmas
8
Ejecucin de programas, que modifican la ley de control, o incluso anular o
modificar las tareas asociadas al autmata, bajo ciertas condiciones.
Posibilidad de programacin numrica, que permite realizar clculos aritmticos de
elevada resolucin sobre la CPU del ordenador.
2.2.3 Elementos necesarios para un sistema SCADA

7
Informacin tomada de http://personal.redestb.es/efigueras/
8
Tomado de http://personal.redestb.es/efigueras/

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 13

Como en el apartado 2.2.1 se refiri a un sistema SCADA solamente en su


software, ahora se mencionar un poco de los elementos necesarios para el sistema
SCADA como tal, los cuales son los siguientes:
Software SCADA
Tarjeta de comunicacin PC-PLC
Driver de comunicacin: programa que realiza la traduccin entre el sistema
SCADA-HMI y el PLC.
PC

2.3 Protocolos de Comunicacin

2.3.1 Concepto

Un protocolo de comunicacin, son las reglas de comunicacin que autorizan la


transmisin de datos entre diferentes dispositivos que hablan sus propios idiomas.
Cuando se requiere establecer comunicacin entre dispositivos, se deben
establecer algunos puntos elementales entre ellos tales como la sincronizacin y los
procedimientos para el intercambio de datos o Protocolos.
9
Los protocolos son implementados va procesos (son los programas que se ejecutan
en un hardware).
Un proceso se ejecuta en un procesador virtual o lgico.
Un proceso es auto contenido
No se da cuenta (y no le interesa), que un procesador real comparta sus recursos
entre varios procesos activos.
Los procesos existen en:
Equipos de una red.
Sistema multiprocesador, para controlar interaccin de procesos paralelos.
Aplicaciones en tiempo real para el control de dispositivos.
La entrada a los procesos ocurre por puertas lgicas de software, por donde el proceso
recibe mensajes desde procesos residentes en el mismo o en otro procesador.

9
Tomado de http://inf.udec.cl/~yfarran/web-redes/protocolos/redes03.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 14

Un conjunto de datos privados definen el estado actual de un proceso y determinan la


accin a tomar por el receptor de un mensaje.
El resultado de la computacin ejecutada por el proceso se enva por una puerta
lgica de salida.
Cmo opera un protocolo como DDE?
Un proceso recibe un mensaje, lo procesa y enva una respuesta, sin que exista
relacin entre este evento y otro anterior o posterior.
El proceso origen, conocer la direccin del proceso destino y la incluir en el
mensaje.
Esta direccin, identificar nicamente a un procesador, quien conocer al
proceso destino.
El originador cuando despacha un mensaje, entra a un estado de espera de la
respuesta en una de sus puertas.
El proceso destino ejecuta la funcin especificada en el mensaje, construye la
respuesta (con resultados y direccin del origen) y enva el mensaje respuesta por
una puerta de salida, (quedando libre para aceptar otro mensaje).
La respuesta llega al originador, quien realiza un chequeo para asegurarse que
viene del lugar correcto antes de aceptarla, luego, pasa al estado no espera
respuesta en esa puerta de entrada.
2.3.2 Protocolo DDE

El protocolo de comunicacin DDE (siglas derivadas del ingls Dynamic Data


Exchange), es un protocolo de intercambio de datos de Microsoft para aplicaciones
Windows.
10
El intercambio de datos dinmico (DDE) permite enviar/recibir datos e
instrucciones hacia/desde una a otra aplicacin. Esto implementa una relacin cliente-
servidor entre dos aplicaciones en ejecucin al mismo tiempo. El uso del servidor
proporciona los datos y acepta peticiones de cualquier otra aplicacin interesada en sus
datos. Las aplicaciones que solicitan se llaman clientes. Algunas aplicaciones tales como
Microsoft Excel pueden simultneamente ser cliente y servidor. NetDDE ampla la

10
Traducido del manual de ayuda del OPC Server de la compaa Unitronics

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 15

funcionalidad estndar del DDE de Windows para incluir comunicacin sobre redes de
rea local a travs de puertos seriales. Las extensiones de red estn disponibles para
permitir enlaces DDE entre las aplicaciones corriendo en diversas computadoras
conectadas va redes o mdems.
11
El protocolo DDE est basado en el sistema de mensajera construido por
Windows . As, dos programas de aplicacin bajo Windows realizan una
"conversacin DDE" envindose mensajes entre ellos.
Una conversacin DDE se inicia con el programa que acta como cliente. Este
transfiere un mensaje a todos los programas que se estn ejecutando en ese momento en
Windows . Dicho mensaje indica una categora general de datos que el cliente necesita.
Un servidor DDE que posee dichos datos puede responder a este mensaje. En este
instante comienza la conversacin. Un nico programa puede ser cliente para un
programa, y servidor para otro, pero esto requiere dos conversaciones DDE distintas. Un
servidor puede entregar datos a mltiples clientes y un cliente puede obtener datos desde
mltiples servidores, pero esto requiere mltiples conversaciones DDE.
Un programa implicado en una conversacin DDE no necesita codificarse
especficamente para trabajar con otro programa DDE. Generalmente el diseador de un
servidor DDE hace pblico cmo se identifican los datos. Como DDE utiliza el sistema
de mensajera incluido en Windows, el programa se integra perfectamente en el entorno
Windows.
En DDE ambas aplicaciones deben estar ejecutndose y las dos deben dar a
Windows una direccin a sus funciones de llamada antes de que la comunicacin de DDE
pueda comenzar. La funcin de llamada acepta cualquier mensaje de DDE que Windows
enva a la aplicacin.
Un cliente de DDE comienza una conversacin con otra aplicacin (un servidor
de DDE) enviando un mensaje de conexin. Despus de establecer una conexin, el
cliente puede enviar rdenes o datos al servidor y a cambio puede pedir el valor de datos
que el servidor maneja.
Cuando la comunicacin DDE para una conversacin es completada, el cliente
enva un mensaje de cerrar la conversacin al servidor.

11
Tomado de http://www.ing.ula.ve/~jesusc/labvid.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 16

Un cliente estndar DDE soporta cinco operaciones bsicas:


Open: Abrir enlace al servidor.
Execute: Enviar comandos para ser ejecutados por el servidor.
Peek (Request): Leer un elemento de datos desde el servidor.
Poke: Enviar un elemento de datos al servidor.
Close: Cerrar el enlace al servidor.
Las diferentes aplicaciones clientes pueden tener nombres diferentes para estas
funciones, sin embargo, funcionarn igual a como se describieron.
Ahora, para poder habilitar el uso de esas cinco funciones, se tiene que conocer
algunas cosas acerca de la aplicacin Servidora. Por ejemplo, es muy difcil abrir un
enlace a la aplicacin servidora sin conocer el nombre de la aplicacin.
Para desarrollar una comunicacin DDE o una conversacin en trminos de DDE,
se tiene que ser capaz de identificar el tipo de dato que se desea. Esta operacin se realiza
con las tres cadenas de caracteres con informacin acerca de la aplicacin Servidora:
Application name /service | Justamente el nombre de la aplicacin: servicio
Data topic ! Define el elemento de inters en la aplicacin: tema
Data item ! El actual elemento de intercambio: elemento
Por tanto, se necesita el nombre de la aplicacin o servicio (generalmente es el
nombre del archivo ejecutable de la aplicacin) que especifica el nombre del servidor de
aplicacin al cual, el cliente est enlazando; el tpico de datos (a menudo es el nombre de
un archivo, pero esta definicin puede variar) para abrir el enlace a la aplicacin
servidora, por ltimo, necesitar el elemento de dato (el cual, es frecuentemente el
nombre de una variable). Los Datos y comandos son transferidos en formato texto por
convencin.
El tema es el segundo nivel en las tres cadenas de caracteres y define el objeto de
una conversacin DDE, y es usualmente significativo tanto para la aplicacin servidor y
cliente. El elemento identifica el dato o valor que se est pasando durante la conversacin
DDE entre el servidor y el cliente.
De acuerdo con los mensajes utilizados del entorno Windows hay tres tipos de
conversaciones DDE: enlace fro (cold-link), enlace caliente (hot-link) y enlace templado
(warm-link).

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 17

2.4 Enlaces OLE para Windows

Las siglas OLE provienen del ingls Object Linking and Embedding, lo que
12
traducido al espaol sera enlace e inclusin de objetos. Es una especificacin de
Microsoft creada para trabajar en Windows haciendo posible la integracin de objetos
entre aplicaciones, lo que permite crear documentos con entidades provenientes de
distintas aplicaciones.
Los objetos pueden ser casi cualquier tipo de informacin, incluyendo texto,
imgenes de mapa de puntos, grficos vectoriales e incluso anotaciones de sonido y
vdeo.
A travs de OLE es posible que los programas se comuniquen entre s e
intercambien informacin sin prdida de detalle, independientemente de su origen. Pero
el proceso no se produce de forma automtica, de modo que es preciso conocer su
funcionamiento para poder aprovechar sus posibilidades.
OLE fue introducido en 1991 como una extensin del protocolo DDE, que fue
creado para pasar datos entre aplicaciones, y en especial, desde la hoja de clculo Excel.
Los programas que en la actualidad admiten el uso de OLE, lo hacen conforme a las
normas de OLE1 u OLE2, siendo esta ltima versin ms moderna (1993) y eficaz que la
primera, permitiendo entre otras cosas el paso de datos mediante la tcnica drag and drop
(arrastrar y soltar) y la edicin in situ de los datos.
OLE no es soportado por Windows de forma directa, lo que quiere decir que no
todos los programas de este entorno grfico trabajan en OLE, ya que es preciso que las
aplicaciones hayan sido diseadas para soportar sus funciones.
La especificacin OLE permite incorporar enlaces entre determinadas partes de
los programas, y as, es posible controlar desde una aplicacin lo que se est realizando
en otra.
Una aplicacin que trabaja con OLE puede actuar como servidor, como cliente o como
las dos cosas.

12
http://personales.unican.es/togoresr/r40p64.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 18

Para que se puedan pasar los datos entre aplicaciones, se requiere que existan
copias completas de los datos en la memoria, para permitir controlar qu datos van siendo
pasados.
OLE permite el intercambio de datos de dos formas: enlace e inclusin, tambin
conocidas como vinculacin e incrustacin, posibilitando la creacin de documentos
compuestos, o sea, documentos formados por varios objetos de datos provenientes de
mltiples aplicaciones. Un objeto incluido est totalmente contenido dentro de la
aplicacin cliente. Un objeto enlazado tiene una conexin en la aplicacin cliente y slo
es accesible a travs de la aplicacin que contiene los datos originales. En cualquiera de
los dos casos, si se pulsa dos veces seguidas sobre el objeto, se activa el programa
servidor para permitir la edicin de los datos.
13
Podemos considerar que OLE es un subconjunto de la tecnologa ActiveX,
encargada de la vinculacin e incrustacin de objetos, y ambas se sustentan sobre COM
(Component Object Model). COM proporciona un mecanismo para permitir la
comunicacin entre los objetos de una aplicacin o entre distintos procesos,
proporcionando mecanismos para que un objeto pueda mostrar su funcionalidad a travs
de una interfaz.
Por tanto, COM nos proporciona las conexiones y los interfaces que sern
utilizadas desde OLE para conseguir la automatizacin, para que una aplicacin pueda
ofrecer una interfaz programable.
Las aplicaciones que vienen con Microsoft Office (Word, Excel, Access), el
propio Microsoft Internet Explorer, entre otros, soportan la automatizacin OLE.
OLE no es soportado por Windows de forma directa, lo que quiere decir que no
todos los programas de este entorno grfico trabajan en OLE, ya que es preciso que las
aplicaciones hayan sido diseadas para soportar sus funciones.
La especificacin OLE permite incorporar enlaces entre determinadas partes de
los programas, y as, es posible controlar desde una aplicacin lo que se est realizando
en otra.
Una aplicacin que trabaja con OLE puede actuar como servidor, como cliente o como
las dos cosas.

13
Tomado http://www.iespana.es/perl-es/OLE.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 19

Para que se puedan pasar los datos entre aplicaciones, se requiere que existan
copias completas de los datos en la memoria, para permitir controlar qu datos van siendo
pasados.
2.5 Generalidades de un Servidor OPC
14
El OPC (en ingls OLE for Process Control), o en espaol OLE para control de
procesos, es una especificacin tcnica no propietaria definida por la Entidad OPC
Foundation (OPC Foundation es una entidad sin fines de lucro, encargada de administrar
la especificacin OPC) y consiste bsicamente en un Sistema de Interfaces Estndar
basado en OLE/COM y DCOM de Microsoft. Con OPC es posible nter operar
dispositivos industriales con sistemas de informacin o aplicativos de escritorio. En otras
palabras, el OPC permite desarrollar de una manera muy prctica y eficiente aplicaciones
que pretendan comunicarse con equipos industriales controlados por PLCs.
15
Desde un punto de vista general muchos aspectos de OPC son similares al
DDE, pero la diferencia principal est en la puesta en prctica usando la tecnologa de
COM de Microsoft (modelo componente del objeto). Permite intercambio rpido con
datos de proceso de la automatizacin y el interfaz abierto de OPC, permite el acceso a
los datos del servidor de OPC de la misma manera estndar de los usos del cliente de
OPC.
16
OPC es un conjunto de protocolos para interfaces OLE/COM estndar
destinados a estimular una mayor interaccin entre las aplicaciones de
control/automatizacin, los dispositivos/sistemas de campo y las aplicaciones de
ofimtica/gestin en la industria de control de procesos.
En cooperacin con Microsoft, cinco empresas, Intellution, Opto-22, Fisher-
Rosemount, Rockwell Software y Intuitiv Software, se unen para crear OPC Foundation
en Mayo de 1995. El objetivo del comit conformado fue proporcionar una interfaz de
programacin de aplicaciones estndar para el intercambio de datos que pudiese
simplificar el desarrollo de drivers de I/O y mejorar el rendimiento de los sistemas de
interfaz.

14
Tomado de http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art123.asp
15
Traducido del manual de ayuda del OPC Server de la compaa Unitronics
16
Tomado de https://www.software.omron.es/software/cx/pages/cx_comun.jsp?id=6

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 20

El OPC elimin problemas de duplicacin de esfuerzo, inconsistencias entre


vendedores de drivers, soporte para cambios en caractersticas de hardware, conflictos de
Acceso, estableciendo una interfaz de comunicacin comn, lo cual ha beneficiado
enormemente el desarrollo de aplicaciones HMI y sistemas SCADA.
El OPC ofrece varias ventajas entre las cuales destacan las siguientes:
Los fabricantes de hardware tienen que hacer solamente un conjunto de componentes
de software para que los clientes los utilicen en sus aplicaciones.
Los desarrolladores de software no tienen que rescribir drivers debido a cambios en
caractersticas o adiciones en un hardware.
Los clientes tendrn ms opciones con las cuales puedan desarrollar diversos sistemas
de aplicacin a nivel industrial.
Posibilidades con el OPC:
Acceder a datos en lnea: La lectura y la escritura eficiente de datos entre una estacin
central y un dispositivo de control de procesos se puede realizar de forma flexible y
eficiente.
Control de alarmas: El OPC provee mecanismos para que sus clientes sean
notificados de la ocurrencia de acontecimientos y de condiciones de alarmas
especificadas.
Acceso a datos histricos: El OPC permite la lectura, procesamiento y correccin de
datos histricos con un eficiente motor de acceso.
Con la arquitectura OPC se aprovechan las ventajas de la interfaz COM para
ampliar su funcionalidad.
La especificacin OPC incluye lo siguiente:
Interfaz COM/DCOM para ser usada por clientes Locales o Remotos.
Referencias a la Interfaz de Automatizacin OLE.
Requerimientos de Funcionalidad:
OPC es respaldado completamente por C++, Visual Basic y Delphi.
Cualquier cliente con interfaz OLE.
No respalda el uso con VBScript o JavaScript.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 21

La especificacin OPC requiere como Sistema Operativo Windows 95/98 (con


DCOM), Windows NT 4.0 o Superior. En todos los casos es recomendable instalar la
ltima versin de Services Pack correspondiente.
La Figura siguiente representa el funcionamiento del OPC con las interfaces
personalizada y automatizada.

Figura N2.1 Funcionamiento e Interfaces de OPC17

El modelo jerrquico de objetos definido por OPC Foundation se representa en la


siguiente figura:

Figura N2.2 Modelo de Objetos del Servidor de Automatizacin OPC

La descripcin de cada uno de los objetos del modelo anterior, se presenta en la


siguiente tabla:

17
Tomado http://www.iespana.es/perl-es/OLE.htm

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 22

Tabla 2.1 Descripcin de la coleccin de objetos de la especificacin OPC

OBJETO DESCRIPCIN

Servidor OPC Es una instancia de un servidor OPC. Se debe crear un objeto Servidor
OPC antes de poder referenciar los otros objetos. Este contiene la
coleccin Grupos OPC y el objeto Buscador OPC.
Grupos OPC Es una coleccin de los objetos Grupo OPC que el cliente ha creado.
Grupo OPC El propsito de este objeto es mantener la informacin de estado y
proveer el mecanismo para ofrecer los servicios de adquisicin de datos
por la coleccin de objetos tem OPC.
tems OPC Es una coleccin que contiene todos los objetos tem OPC que el cliente
ha creado.
tem OPC Es un objeto que mantiene la definicin de los tems, sus valores, estados
y datos de la ltima actualizacin.
Buscador OPC Es un objeto que permite buscar nombres de tems en un servidor
configurado.

Un servidor de acceso a datos OPC est formado por varios objetos: el servidor, el
grupo y el elemento. El servidor de objetos OPC ofrece informacin sobre el
servidor y sirve como un contenedor de grupos de objetos OPC. El grupo de objetos
OPC mantiene informacin acerca de s mismo y proporciona los mecanismos para
contener y organizar lgicamente los elementos OPC; los grupos OPC proporcionan
una forma para organizar los datos de los clientes; por ejemplo, el grupo podra
representar los elementos en una pantalla particular del operador o a travs de un
informe; los datos pueden ser ledos y escritos, y las conexiones basadas en excepciones,
pueden ser creadas entre el cliente y los elementos en el grupo y pueden ser activadas y
desactivadas segn sea necesario; un cliente OPC puede configurar el porcentaje de los
datos que deben ser cambiados antes de la actualizacin.
Hay dos tipos de grupos, pblicos y locales (o privados); los pblicos se realizan
para ser compartidos entre varios clientes, mientras que los locales son privados para el

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 23

cliente en cuestin. Existen interfaces especficas opcionales para los grupos pblicos;
dentro de cada grupo, el cliente puede definir uno o ms elementos OPC
Los elementos OPC representan conexiones a fuentes de datos dentro del
servidor; un elemento OPC, no es accesible por el cliente como un objeto. As pues, no
hay una interfaz externa definida para un elemento OPC; todos los accesos al elemento
OPC se realizan a travs del objeto grupo OPC que contiene el elemento OPC, o
simplemente el grupo en el que el elemento ha sido definido.
Asociado a cada elemento existe un valor, calidad y valor temporal. Los
elementos no son las fuentes de datos, slo son conexiones a ellas; el elemento OPC debe
ser entendido como la direccin de los datos, no como la fuente fsica actual de los datos
a los que la direccin referencia, puesto que la fuente real de los datos es el dispositivo
controlador, regularmente un PLC.

2.6 Compilador Grfico Delphi.


18
Borland Delphi es un ambiente de Desarrollo Rpido de Aplicaciones (RAD:
Rapid Application Development) para el lenguaje ObjectPascal en el sistema operativo
Windows 95/98/NT/2000 es producto de BORLAND Corporation. Los sistemas RAD
estn orientados a facilitar la productividad en el desarrollo de software, a las velocidades
de procesamiento que brinda actualmente el hardware.
Algunas de las caractersticas que hacen de Delphi un sistema de alta
productividad y excelencia son:
Ambiente visual de desarrollo para aplicaciones controladas por intervenciones o
eventos de usuario sobre interfaces grficas. Fcil integracin de informes y
grficos de gestin.
Lenguaje de programacin de excelencia en estilo y expresividad: ObjectPascal.
ObjectPascal de Delphi es un Pascal Orientado a Objetos (OO), completamente
comprometido con el modelado de objetos.
Proporciona una jerarqua muy extensa de Clases de Objetos reusables y
extensibles, con recursos de computacin visuales y de procesamiento.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 24

En las versiones Professional y Enterprise, Delphi ofrece clases para el desarrollo


de aplicaciones en Internet soportadas por TCP/IP, para aplicaciones distribuidas.
Tambin con soporte a los modelos de distribucin de objetos COM, DCOM y
CORBA.
Componentes integrados dentro del lenguaje, lo que reduce considerablemente la
utilizacin de libreras y controles externos, por lo tanto menos problemas para el
usuario.
Tratamiento de errores mediante excepciones.
Soporte avanzado de Bases de Datos mediante BDE (Borland Database Engine),
ADO (ActiveX Database Objects, tecnologa de Microsoft de acceso a Bases de
Datos e Internet) , finalmente InterBase Express, acceso nativo a InterBase, para
desarrollo Cliente/Servidor off-line.
Componentes compatibles con Microsoft Office.
Facilidad en la distribucin de aplicaciones con el InstallShield Express.
Bsicamente, estas descripciones tcnicas, lo que quieren decir para esta
aplicacin es que esta herramienta (Delphi), permite extraer la informacin de un
servidor OPC que se comunica con PLC con un protocolo determinado y por medio de
los enlaces OLE de Windows, realiza una aplicacin grfica de monitoreo estilo SCADA
en donde refresca constantemente los datos transmitidos, creando as una interfaz HMI.
Los elementos utilizados para este tipo de aplicaciones (las anteriormente
citadas), dependen de herramientas tales como OLE y ActiveX Database Objects 19
(nueva tecnologa de acceso a datos), tanto como funciones (eventos) drag and drop,
entre otros.
Este tipo de aplicaciones son una buena muestra de tecnologa y hace uso de
innumerables elementos, por lo que una plataforma como Delphi es de gran utilidad al
poseer todo este tipo de operaciones de avanzada.

18
Tomado de http://afrodita.faces.ula.ve/MartaSananes/Cursos/Delphi/ y
http://leo.worldonline.es/acanudas/pdf/dp5intro.pdf
19
Microsoft ActiveX Data Objects (ADO) es una interfaz basada en Automatizacin para obtener acceso a
datos. ADO utiliza la interfaz de OLE DB para tener acceso a un amplio conjunto de orgenes de datos,
incluyendo pero no limitndose a los datos proporcionados mediante ODBC. Tomado de
http://www.sqlmax.com/ado.asp

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 25

CAPTULO 3: Desarrollo de una Interfaz HMI


Debido a que todos los PLCs son diferentes tanto en caractersticas de Hardware
como de Software este captulo es dedicado al conocimiento y descripcin del modelo de
PLCs M90, empezando desde una resea de la compaa desarrolladora de este tipo de
controladores, hasta el propsito del proyecto, la implementacin de la aplicacin
SCADA para este PLC. Por lo que se tratarn temas tales como especificaciones tcnicas
elctricas en su mayora, hasta la descripcin de los registros internos de este aparato.

3.1 Breve resea de la compaa Unitronics


20
Unitronics Ltd. es una compaa de tecnologa avanzada, cuya especializacin
particular es en el rea de produccin de Controladores Lgicos Programables (PLC),
cerebros de la computacin que hacen posibles las lneas de produccin automatizadas.
Su personal abarca a cuarenta personas de gran conocimiento, del sector de alta
tecnologa israel. Entre los aspectos ms destacados es el departamento R y D, esta
compaa se ha sostenido en el filo de la investigacin tcnica y el desarrollo. Desde
1989, Unitronics ha introducido muchos productos innovadores que han revolucionado el
acercamiento a la produccin de las lneas de automatizacin.
Entre sus productos destacados estn el WebPLC. Este dispositivo basado en
Internet transform el acercamiento de la industria a las comunicaciones de datos.
Unitronics entrega sus productos a travs de distribuidores en Europa, Amrica del sur,
Asia, y su subsidiaria surafricana.
Los productos han estado en servicio de plantas de compaas importantes tales
como: Coca Cola, Dannone, Elf Lub N.V., Campia Melkuni Mona, Agfa, Colgate-
Palmolive, Avena Quaker, Industrias Aeronuticas de Israel, Granja Frites, Heinz, Las
minas de oro de Klooftmine, y Nestl.

20
Tomado de www.unitronics.com y traducido al espaol por Alexander Barrantes Muoz.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 26

3.1.1 Misin

Su misin es hacer la automatizacin eficiente, comprable, y alcanzable.


El principal propsito de la produccin de la cadena de automatizacin es
producir mercancas sin la intervencin humana.
El equipo del R y D crea los nuevos dispositivos de la automatizacin (PLC)
combinando un conocimiento profundo de requisitos industriales y de la maestra tcnica
con el nico objetivo de la utilidad.
Los resultados son PLCs que cumplen constantemente el estndar para la industria
de la automatizacin. Los productos de Unitronics se utilizan en petroqumica,
automovilismo, procesamiento de alimentos, plsticos y textiles, energa y ambiente, del
agua y de aguas residuales, en cualquier campo donde se requieren procesos
automatizados.
3.1.2 Historia de sus productos

En esta compaa dentro de sus grandes talentos destacan: la capacidad de


desarrollar nuevas tecnologas y de utilizarlas para construir dispositivos rentables que
ofrecen funcionalidad excepcional.
Unitronics irrumpi en el campo de la automatizacin industrial en 1989 con el
revolucionario ADP86. Este dispositivo (PLC) era ms rpido que cualquier producto de
la competencia. Tambin tena otras dos caractersticas importantes: protocolos de
comunicaciones flexibles y habilidades programables de trabajos mltiples.
Increblemente el ADP86 posea un precio de $5.000, donde los productos de
competencia con menor funcionalidad valan $15.000 o ms.
En 1992, Unitronics hizo una brecha pica en tecnologa de la automatizacin. Se
cre el ltimo PLC de uso fcil, el OPLC. Las series de OPLC combinan paneles de
operacin y PLCs en un solo dispositivo unificado, fcil de programar y operar.
El OPLC sobresali y cambi radicalmente la automatizacin. Unitronics
refin y desarroll una gama completa de dispositivos OPLC, apuntando a un lugar de
mercado especfico en el mundo de la automatizacin.
El M90, lanzado en 1999, es el pinculo del desarrollo de OPLC, un paquete
minsculo que incluye grandes caractersticas.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 27

El ao 2000 trajo el WebPLC basado en Internet. WebPLC de Unitronics


estuvo conducido por la onda del Internet, la revolucin de las comunicaciones, en donde
el Internet entr en cada faceta de la vida pblica y privada.
El WebPLC, en las etapas finales del desarrollo, culmina al integrar lo mejor
de la nueva tecnologa en los productos.
3.1.3 Breve Organigrama de la compaa

Abajo se muestra un pequeo grfico del organigrama de la compaa Unitronics.

Figura N3.1 Organigrama de la Co. Unitronics

3.1.4 Puntos Claves

La materia prima ms importante es la gente.


La llave a la automatizacin acertada es la comunicacin.
El personal trabajador del R y D abarca las disciplinas de la ingeniera,
programacin, y comunicaciones.
3.1.5 Productos

Creacin de PLCs con interfaz integrado del operador.


Las series del Controlador OPLC combinan paneles de operacin y PLCs en
un solo dispositivo unificado, fcil de programar y operar. Los paneles de
Operacin contienen una pantalla y un teclado de visualizacin. La pantalla de

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 28

visualizacin se utiliza para exhibir mensajes, de modo que el PLC pueda


comunicarse con el operador que supervisa el proceso automatizado. El teclado
se utiliza para incorporar la informacin en el sistema y para iniciar funciones, de
modo que el operador pueda comunicarse con el PLC corriendo el proceso
automatizado.

3.2 La familia de productos de Unitronics

Los dispositivos campo-endurecido son utilizados para condiciones exigentes que


existen en industria pesada o ligera. Los productos de Unitronics son para satisfacer
cualquier proceso automatizado.
Controladores OPLC para los usos que requieren un interfaz del operador.
PLCs con configuraciones I/O internas.
PLC tradicionales
.Tarjetas de entrada-salida para el proceso de datos, para uso de aplicaciones de
automatizacin.
La familia de Controladores Unitronics, poseen los siguientes modelos:
Los Controladores con HMI son:
M310 M216
M228 M190
M218 M90
M210
Seguido del M90, Unitronics introduce una nueva serie de controladores, llamada Vision.
Hay tres tipos de controladores en esta serie:
Vision 230
Vision 260
Vision 280
Abajo se muestran tres de sus modelos.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 29

Figura N3.2 Familia de PLCs de Unitronics

3.2.1 Caractersticas generales de los productos

La familia de PLCs Unitronics poseen caractersticas generales comunes entre cada


modelo, abajo se describen las principales:
R.T.C. Reloj en tiempo real. Este reloj permite funciones especficas del reloj. El RTC
tiene un respaldo de la batera de 7 aos.
Tamao del programa de 16K palabras. La cuenta de la palabra se hace segn la
traduccin del programa de STL.
Tiempo de ejecucin. El tiempo de la exploracin es 0,5 microsegundos por un bit de
operacin
Teclado. La tecla del modo de informacin (< i >) se utiliza solamente para mostrar a
travs de las pantallas, la informacin de los sistemas de operacin. Para el Vision 260 se
tienen 33 teclas.
Pantalla. La serie Vision tiene una pantalla grfica. Se puede crear hasta 100 diferentes
exhibiciones que acomodan hasta 60K de datos. Cada exhibicin puede contener el
texto libre, bmp (mapa de bits) y variables.
En cada exhibicin se puede agregar hasta 16 variables. Las variables pueden venir en
forma de texto o representado por una imagen del valor del bit del estado, de las listas,

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 30

del tiempo y la fecha, y de los valores de los contadores.


VisiLogic permite al programador: Construir la aplicacin del PLC usando elementos y
funciones click-and-drop en el VisiLogic.
3.2.1.1 El modo de informacin

El modo de informacin (Info.) es una ventana dentro del controlador.


Permite que un operador compruebe y cambie los valores especficos almacenados dentro
de un controlador sin la necesidad de una PC o del software U90.
El modo del Info. es seleccionado presionando la tecla < i > por varios segundos.
3.2.1.2 La estructura de memoria de la serie M90

La estructura de memoria de la serie M90 es constituida por 4 elementos:


MB, Bit de Memoria. Puede ser 1 o 0 lgico.
SB, Bit del Sistema.
MI, Enteros de Memoria. Registro de 16 bits (15 + signo) que puede ser cualquier
nmero entero dentro de la gama -32768 a +32767.
SI, Enteros del Sistema. Registro de 15 bits controlado por el sistema que puede ser
cualquier nmero entero dentro de la gama -32768 a +32767.
El SI y el SB son una clase de interfaz entre el sistema de operacin y el programador (o
una aplicacin).
Toda la memoria de la serie Vision es respaldada por una batera.
Otros operandos que participan en la estructura de memoria son:
I, Entradas .
O, Salidas.
T, Temporalizadores.
#, Nmeros directos.
MB y MI - un total de 256 de cada uno. Los primeros 16 MBs y MIs estn bajo
respaldo de bateria.
Temporalizadores - un total de 64.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 31

Entradas y Salidas - segn la configuracin de hardware.


La serie M90 trabaja con memoria flash. La memoria flash es ms estable porque no es
dependiente en una fuente de alimentacin.
Un procedimiento de la transferencia directa consiste en:
Ladder
HMI
Temporalizadores
Variables
Configuracin del Hardware
Configuracin del Modem
SMS
La serie M90 permite la descarga en marcha .
Los procesos de descarga en los controladores de Unitronics ocurren en una memoria
RAM y desde ella van al flash mientras que la mquina todava funciona.
Solamente una descarga de un cambio en la configuracin del hardware o un bloque de la
funcin conducir a la parada y al reajuste del controlador.
3.2.1.3 Variables

El M90 tiene 50 variables diferentes. Las mismas variables pueden ir en muchas


pantallas diferentes y cadenas de caracteres SMS. Las variables binarias permiten que el usuario
agregue el texto a la pantalla de la serie M90 segn el estado de cierto bit. Este bit puede ser un
MB, SB, I, O un contador de tiempo. Para evitar problemas de memoria slo se puede
introducir 6 caracteres por cada opcin.
La variable Entera permite que el usuario pueda leer o escribir el valor de cierto registro
desde la memoria del controlador, estos enteros de slo lectura pueden ser un MI o un SI.
Los lmites de la linearizacin y de la entrada son parte del trabajo que el sistema de
operacin hace para el usuario.
Este nmero entero puede ser cualquier tipo de datos, construido con la ayuda de una
contrasea para pantallas que llevan a cabo informacin sensible.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 32

3.2.1.4 Comunicacin

La serie M90 tiene 2 puertos de comunicacin posibles:


1 puerto serial RS232
1 CANbus
Puerto Serial

Se utiliza el puerto serial para descargar aplicaciones en el PLC M90. El puerto serial
trabaja con:
RS232
RS485 + convertidor
El M90 es un esclavo en una red de comunicacin serial.
El puerto serial se comunica con el PLC M90 usando el protocolo Pcom de Unitronics.
El Pcom es un protocolo cerrado, lo que significa que no se puede agregar funciones a l. Sin
embargo, se da libremente como OCX con toda la documentacin de modo que cualquier
persona pueda ponerla en ejecucin en una aplicacin en su PC.
Uso del protocolo Pcom
Una PC puede hablar con un PLC M90 en una de dos maneras:
Implementando un protocolo en una aplicacin en la PC.
Usar una aplicacin de un servidor DDE.
Usar una aplicacin de un servidor OPC.
El M90 no puede inicializar la comunicacin en una comunicacin serial. El puerto serial es
tambin un puerto de acceso remoto y un dispositivo de conexin.
Puerto de CANbus
La Serie M90 tiene un puerto CANbus.
El Unitronics CANbus corre en la misma capa fsica que el A.B. DeviceNet pero en un
diferente protocolo.
El puerto de CANbus se puede utilizar de 3 maneras:
Para conectar 32 unidades con uno de los grandes controladores Unitronics.
Para conectar una red de hasta 63 unidades con una PC.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 33

Para conectar una red de hasta 64 unidades entre s.


El puerto CANbus est situado al lado del controlador.

3.3 Caractersticas Generales del M90 OPLC


21
El M90 Es un PLC compacto con I/Os integrados e interfaz grfica de operador.
La siguiente tabla describe brevemente, la cantidad, simbologa y otras caractersticas de
los registros internos del M90.
Tabla 3.1 Descripcin de registros internos del M90

Smbolo del tipo de Dato Smbolo Smbolo del tipo de Dato Smbolo
Bits de Memoria MB Contadores: T
(bobinas): 1024 64, 16 bit
Enteros de Memoria MI Entradas: I
(registros): 256, 16 bit 512
Bits del sistema: SB Salidas: O
256 512
Enteros del sistema: SI
256, 16 bit

Los tipos de datos del sistema, mencionados abajo, se ligan a ciertos valores o funciones
del controlador y son reservados para uso por el sistema. Algunos de ellos estn disponibles.
La interfaz RS232 est va los puertos seriales del tipo RJ-11. La siguiente tabla muestra
la distribucin de sus pines.
Tabla 3.2 Distribucin de pines del puerto RS232

Diagrama Nmero de Pin Funcin


1 Desconectado
2 Referencia 0V
3 Seal TxD
4 Seal RxD
5 Referencia 0V
6 Desconectado

21
Traducido de la gua del usuario del OPLC Vision 230

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 34

La conexin PC-PLC se muestra en el siguiente grfico:

Figura N3.3 Conectando la PC con un Controlador

Anlogamente, la descripcin de conexin para el puerto CANbus, sigue la descripcin


de la siguiente tabla:
Tabla 3.3 Descripcin de conexin para el puerto CANbus

-V Fuente comn de 24V para CANbus


L CAN low
PE Tierra
H CAN high
+V Fuente de 24V para CANbus.

Con respecto al modo de informacin, una descripcin ms detallada de las categoras


que se pueden acceder por medio de l, se describe en la siguiente tabla.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 35

Tabla 3.4 Categoras de informacin que se pueden alcanzar en el modo de Informacin

Categora Tema Acciones Posibles


Tipos de Entradas Ver estado de las entradas
Datos Forzar el estado de las entradas a 1 (FR1) o 0 (FR0). Los valores forzados permanecen en
efecto hasta que se selecciona el modo normal (NRM), o hasta el controlador se inicializa o
reajuste. Los valores forzados de las entradas no afectan su programa. Esto puede ser til en la
prueba del efecto de una condicin de la entrada en un estado de la salida
Salidas Ver estado de las salidas
Forzar el estado de las salidas a 1 (FR1) o 0 (FR0). Los valores forzados de las salidas no
afectan su programa.
Set/Reset el estado de la salida
Bits de Memoria Ver el estado de los bits.
Bits del Sistema Cambiar el estado de los bits (Set/Reset).
Contadores Entrar el valor del tiempo preestablecido
Ver el valor y el estado actuales del contador de tiempo seleccionando la opcin de R.T.
Sistema Modelo y Revisar el nmero de modelo del controlador y la versin del sistema operativo
Versin O/S Revisar si el controlador est en modo de funcionamiento o de parada
Modo de Trabajo Revisar si el controlador est en modo de funcionamiento o de parada
Reajustar el controlador. Esto reinicia el programa; restaurando valores de encendido y
todos los tipos de datos a excepcin de esos protegidos por el respaldo de memoria con la
batera
Inicializar el controlador. Esto recomienza el programa e inicializa todos los valores,
restaurando los valores a 0 a todos los tipos de datos
Tiempo y Fecha Ver los ajustes del reloj en tiempo real (RTC). Observe que todos los ajustes del control del
RTC estn basados en funciones de tiempo.
Cambiar los ajustes del RTC va el teclado del controlador.
ID de la Unidad El nmero de ID de la unidad identifica la posicin en la red del controlador.
Cambiar el nmero de ID. El nuevo nmero de ID ser recordado en efecto hasta que el
controlador sea reiniciado.
Quemar el nmero de ID dentro de la memoria FLASH del controlador. Esto es un cambio
permanente.
Puerto Serial 1 Ver y editar los ajustes de comunicacin.
Seleccionar cambiar o quemar los nuevos ajustes.
CANbus Baud Cambiar el baud rate del CANbus.
Rate
Ajuste de la Seguir la instrucciones de la pantalla.
Pantalla Sensible
al Tacto
Clave Nuevo Ajustar una nueva clave

3.3.1 Tipos de datos del sistema

Los tipos de datos especficos se ligan a los parmetros fijos y son inalterables por el
programa de usuario, tal como Bit de encendido SB 2. Se puede escribir en ciertos tipos de
datos. stos estn marcados con un asterisco (*), por ejemplo el ID de la unidad (SI 8). Todos
los SBs y SIs no listados son reservados para uso por el sistema.
Las siguientes tablas, muestran los registros del sistema y sus respectivas funciones y
han sido divididos por grupos de cada categora.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 36

Tabla 3.5 La funcin de los bits del sistema

Bits del sistema (SB) Funcin


0 Siempre 0
1 Siempre 1
2 Bit de encendido
3 Pulso de un segundo
4 Divide por cero
5 Salida(s) de corto circuito
5 Teclado activo
7 Pulso de 100ms
8 Batera baja
30 Entradas del teclado numrico HMI completo
31* Refrescar lo mostrado actualmente en la Pantalla LCD
32 Entradas del teclado numrico HMI en progreso
40-63 Teclas del teclado numrico
200*-215* Operadores de red
236 Error de comunicacin de red
237* Red desactivada
250 Entrada del teclado numrico dentro de los lmites
251 Entrada del teclado numrico excede los lmites

Tabla 3.6 Funciones de Bits del Sistema del teclado

Bits del Tecla Bits del Tecla


Sistema del Sistema del
(SB) Teclado (SB) Teclado
SB 40 SB 47
SB 41 SB 48
SB 42 SB 49
SB 43 SB 50
SB 44 SB 51
SB 45 SB 52
SB 46 SB 53

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 37

Tabla 3.7 Funciones de los Enteros del Sistema

Enteros del Sistema Funcin


0 Tiempo de exploracin
6 Tecla actual presionada
7* Contraste del LDC (solo V280)
8* ID de la unidad
9* Intensidad de las luces del LDC
30* Segundos actuales, segn RTC
31* Tiempo actual, segn RTC
32 Fecha actual, segn RTC
33 Ao actual, segn RTC
34 Da actual, segn RTC
80 Estado del Modem: COM1
81 Cdigo de error del Modem: COM1
82 Estado del Modem: COM2
83 Cdigo de error del Modem: COM2
200*-201* Operadores de red
236 Cdigo de Comunicacin de red
237 Red: falla del ID de la unidad

3.3.2 Especificaciones Tcnicas

I/Os: integrados, se integran en el sistema va mdulos snap-in.


o Entradas Digitales: 10 entradas PNP, voltaje nominal 24VCD con 3mA,
impedancia 8.4k, longitud del cable mayor a 100 metros.
o Entradas Analgicas: 10 bits, multi-rango de entrada de: 0-5V, 0-10V,0-20mA, 4-
20mA. Mtodo de conversin aproximacin sucesiva. Impedancia mayor a
100k a voltaje constante y 250 a corriente constante.
o Salidas Digitales: 6 salidas de relee a 230VCA/24VCD tipo SPST-NO. Corriente
mxima 5A a carga resistiva o 1A a carga inductiva. Frecuencia mxima 10Hz
Dimensiones: 96.5 x 96.5 x 65 mm.
Montaje: Panel montado va soportes
Fuente de Alimentacin: Voltaje de entrada 24VCD. Rango Permitido de 20.4VCD a
28.8VCD con menos de un 10% de rizado.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 38

Consumo mximo de corriente 140mA a 24VCD.


Consumo tpico de energa: 3.2W
Pantalla Grfica: LCD, tipo STN, Iluminacin por leds, amarilla-verde lmpara trasera.
Tamao de 1 lnea de caracteres largos. Tamao de carcter matriz de 5x7, 3.07 x
5.73mm.
Teclado: 15 teclas, Incluye teclas suaves y teclado alfanumrico. Tecla de metal de tipo
domo, selladas por membrana
Programa del PLC: 1024 palabras. Tiempo de ejecucin por bit de operacin: 12s por
bit de operacin, 256 bits, 256 registros de enteros, 64 temporizadores. 80 pantallas para
el usuario, 50 variables HMI.
Comunicacin: 1 puerto RS485/ RS232 va convertidor, 1 puerto CANbus. Programa del
PLC: 1024 palabras. Tiempo de ejecucin por bit de operacin: 12s por bit de
operacin, 256 bits, 256 registros de enteros, 64 temporizadores. 80 pantallas para el
usuario, 50 variables HMI.
Reloj (RTC) para fecha, tiempo y ao con respaldo de batera de 7 aos.
Peso: 280g (9.8 oz).
Ambiente: dentro de gabinete IP20 / NEMA1, panel montado IP65 / NEMA4X (frente al
panel), temperatura de Operacin 0 a 50C (32 a 122F), temperatura de almacenamiento
-20 a 60C (-4 a 140F), humedad relativa (RH) 5% a 95% (no-condensada).
Accesorios: cable de programacin, conector de fuente de alimentacin y entradas, CD
del Software U90Ladder.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 39

Los grficos del M90 se muestran a continuacin.

Figura N3.4 PLC M90

3.3.3 Acceso de datos


22
El servidor OPC de Unitronics es un programa de aplicacin de 32 bits de Microsoft
Windows, que acta como servidor del protocolo de comunicacin y permite que otros
programas de Windows tengan acceso a los datos de los controladores lgicos programables de
UNITRONICS (PLCs) siguientes que usan el interfaz de programacin (RS232):

- M90,
- M200,
- Vision 230.

22
Traducido del manual de ayuda del OPC Server de la compaa Unitronics

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 40

Cualquier programa que sea capaz de actuar como un cliente de OPC o del DDE puede
utilizar el servidor de UNITRONICS, es decir el servidor de Microsoft Windows apoya
protocolos de OPC y del DDE. Retomando lo expuesto en la seccin 2.3.2., el protocolo de
comunicacin direcciona un elemento de datos en una conversacin que utilice a convencin de
nombramiento de tres partes que incluye el nombre de la aplicacin, el nombre del tpico
(asunto) y el nombre del tem (artculo). Lo que sigue describe brevemente a cada porcin de
esta convencin de nombramiento:

Nombre de la Aplicacin

Nombre del programa de Windows (servidor) que tendr acceso al elemento de datos. En
el caso de los datos que vienen o que van al PLC Unitronics M90, M200 o Vision 230 va este
servidor, la porcin de la aplicacin de la direccin es UNITRONICS.

Nombre del Tpico

Los nombres significativos se configuran en el servidor para identificar los dispositivos


especficos. Estos nombres entonces se utilizan como el nombre del tpico en todas las
conversaciones a ese dispositivo. Por ejemplo, Unit1. Se puede definir mltiples nombres del
tpico para el mismo dispositivo (PLC) para usar diferentes tems en diferentes rangos.

Nombre del Item

Un elemento de datos especfico dentro de un tpico especfico. Por ejemplo, al usar este
servidor, los tems pueden ser nmeros enteros individuales de la memoria, entradas, salidas en
el PLC.

3.3.3.1 Nombre de los tems

El servidor Unitronics puede accesar las siguientes tipos de reas de memoria: Enteros de
Memoria (MI), Bits de Memoria (MB), Entradas (INP), Salidas (OUT), Enteros del Sistema
(SI), Bits del Sistema (SB), Valor del Temporizador actual (TC), Valor del Temporizador
preestablecido (TP), Bit del Temporizador del tiempo de exploracin (TS), Reloj de Tiempo

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 41

Real, ID de la Unidad y Estado del PLC, entre otras. El tipo de tems soportados son discretos,
Enteros y cadenas de caracteres.

La siguiente tabla muestra una descripcin de los tipos de tems del M90.

Tabla 3.10 Descripcin de los tipos de tems del M90

Nombre Descripcin Tipo de Rango de Valores Rango


del Item Tag
MBn Bit Discreto 0,1 n = 0 a 1023
MIn Entero (16bits) Entero -32768...32767 n = 0 a 255
INPnn,b Bit Discreto 0,1 n = 00 a 63
b=0a7
OUTnn,b Bit Discreto 0,1 n = 00 a 63
b=0a7
SBn Bit Discreto 0,1 n = 0 a 255
SIn Entero (16bits) Entero -32768...32767 n = 0 a 255
TCn Entero sin Entero 0... 65535 n = 0 a 63
signo (16bits)
TPn Entero sin Entero 0... 65535 n = 0 a 63
signo (16bits)
TSn Bit Discreto 0,1 n = 0 a 63
PS Entero sin Entero 1, 2, 3, 4, 5
signo (16bits)
SK Entero sin Entero 0255
signo (16bits)
ID Entero sin Entero 0255
signo (16bits)
RTC Entero sin Entero 1, 2, 3
signo (16bits)
CLOCK C. de Caracteres C. de Caracteres

Notas:
1. Tambin las letras minsculas mi, mb, inp, out, si y sb pueden ser usadas como primeros
caracteres de los nombres de tems.
2. Toda direccin es decimal.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 42

3. Para los tems discretos INP y OUT, el ltimo digito (b) representa el bit de posicin dentro
del byte. EL bit de posicin puede estar del 0 al 7.
4. Los tems Entradas (INPnn,b), Valor del Temporizador Actual (TCn), Valor del Temporizador
Preestablecido (TPn), Bit del Tiempo de Exploracin (TSn) son de slo lectura. Los bits del
Sistema (SBn), Enteros del Sistema (Sin) son de Lectura y Escritura dependiendo de cmo son
usados en el PLC. Los tems de Tecla de Ajuste (SK), Estado de PLC (PS) y El Reloj de Tiempo
Real (RTC) son de slo escritura.
5. El tem de Reloj (CLOCK) tiene el siguiente formato:
HH:mm:ss ddd DD/MM/AA, donde
HH hora (023);
mm minutos (059);
ss segundos (059);
ddd da de la semana (Lun, Mar, Mier, Jue, Vier, Sab, Dom);
DD da del mes (131);
MM mes (112);
AA 2 ltimos dgitos del ao.
6. Los tems RTC y CLOCK no actan como tems generales. RTC es un tem de slo escritura
que provee el control de lectura-escritura de tem CLOCK. Los siguientes valores del RTC son:
0 Posicin neutral;
1 El servidor UNITRONICS lee el reloj del PLC y extrae los valores dentro del tem CLOCK
(el tem CLOCK puede ser activado);
2 El servidor escribe el contenido del tem CLOCK al PLC;
3 El servidor escribe del tiempo de la PC al PLC (sincroniza los relojes de la PC y el PLC);
7. Los siguientes valores del tem de Estado del PLC (PS) son:
0 Posicin neutral;
1 Ejecucin;
2 Alto ;
3 Inicio de Memoria y Reajuste;
4 Reajuste ;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 43

5 Switch el BootStrap .

Ejemplos de llamadas de Items


Los siguientes ejemplos son nombres de tems vlidos:
MB0 MB109 mb1104 Bits de Memoria 0, 109 y 1104
MI0 MI9 MI615 Enteros de Memoria 0, 9 y 615
INP00,0 INP03,1 INP21,7 Entradas
OUT00,0 OUT10,3 OUT63,7 Salidas
SB2 si10 Bit del Sistema 2 y Entero del Sistema 10
TS2 Bits de Tiempo de Exploracin 2
TP2 Valor del Temporizador Preestablecido 2
TC5 Valor del Temporizador Actual 2
SK sk Tecla de Ajuste
PS ps Estado del PLC
RTC rtc Item del Control del Reloj de Tiempo Real
ID id ID de la Unidad
CLOCK Item de exhibicin del Reloj de Tiempo Real

Los siguientes ejemplos son nombres de tems invlidos:


MI MB inp8,1 out08 Muy pocos dgitos para Direccin o Posicin del Bit
MI602400 Direccin fuera del Rango
MN22 m001 Tipo de Item Invlido

Monitoreo y Control de la Comunicacin con el PLC


Los siguientes son tems adicionales ofrecidos por el servidor UNITRONICS para monitorear y
controlar la comunicacin con el PLC.
STATUS
Es un tem discreto built-in, que indica el estado de la comunicacin con el PLC. El tem discreto
(STATUS) es ajustado a 0 cuando la comunicacin falla y ajustado a 1 cuando la comunicacin

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 44

es exitosa. El valor del ESTADO es ajustado a 0 despus de 3 intentos fallidos consecutivos de


comunicacin con el PLC.
Desde Excel, el estado de la comunicacin puede ser ledo entrando la siguiente formula en una
celda:
=UNITRONICS|tpico!STATUS, donde el tpico es el nombre del tpico configurado para el
PLC.
UPDATEINTERVAL
El tem UPDATEINTERVAL es un tem entero tipo Lectura/Escritura usado para accesar el
ajuste actual del intervalo a actualizar. Esto indica la peticin actual del intervalo a actualizar (en
milisegundos). El valor de este tem puede ser ledo por el OPC DDE. El cliente puede insertar
nuevos valores a este tem. El rango de valores vlidos es desde 10 a 2147483647 milisegundos.
El valor cero indica que no hay tems actualizados en este tpico. Los comandos de escritura son
todava ejecutados (nuevos valores escribindose en el PLC) si el valor de UPDATEINTERVAL
es 0.
Nota: Por un valor de cero inserto al tem UPDATEINTERVAL, un cliente puede parar todas las
actividades de actualizacin en el tpico correspondiente sin tener tems desactivos.
MAXINTERVAL
El tem MAXINTERVAL es un tem entero tipo slo lectura usado para accesar el intervalo
actualizado mximo medido (en milisegundos) de todos los tems del tpico correspondiente
para el ltimo ciclo completo del sondeo. El rango de valores vlidos es desde 0 a 2147483647
milisegundos.
Los tems UPDATEINTERVAL y MAXINTERVAL pueden ser usados para sintonizar el
funcionamiento de comunicacin.
ITEMCOUNT
El tem ITEMCOUNT es un tem entero de slo lectura usado para accesar el nmero de tems
activos de un tpico correspondiente. El rango de valores vlidos es desde 0 a 2147483647.
ERRORCOUNT

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 45

El tem ERRORCOUNT es un tem entero de slo lectura usado para accesar el nmero de tems
activos con errores en un tpico correspondiente. El rango de valores vlidos es desde 0 a
2147483647.
ERRORITEMS
El tem ERRORITEMS es un tem entero de slo lectura y escritura (nico por cada tpico)
usado para accesar el total de nmeros de tems con nombre invlidos (estos tems son
reexpulsados por el servidor). El valor de los ERRORITEMS puede ser reajustado por la
escritura de 0 a este tem. El rango de valores vlidos es desde 0 a 2147483647.
WRITECOUNT
El tem WRITECOUNT es un tem entero de slo lectura usado para accesar el nmero de
comandos escritos (mensajes) esperando la ejecucin. El rango de valores vlidos es desde 0 a
2147483647.
Por ejemplo, en la siguiente manera, el tem WRITECOUNT puede ser usado para evitar el
incremento de memoria ocupada por comandos de escritura no ejecutados.
activar el hot link con el tem WRITECOUNT e iniciar a monitorear;
activar el nuevo comando de escritura (por la introduccin de un nuevo valor) slo si el valor de
WRITECOUNT viene a ser igual a 0, todos los comandos de escritura ejecutados y la memoria
ocupada por ellos es liberada.
SUSPEND
Item discreto especial que puede ser usado para controlar la comunicacin con un tpico
separado. Si la aplicacin cambia el valor de SUSPEND de 0 a 1, entonces la comunicacin con
el tpico es suspendida. Si el valor de SUSPEND es cambiado de nuevo a 0 la comunicacin con
el tpico es reasumida.
Nota: Si el tpico es suspendido ajustando el valor de SUSPEND a 1, entonces el servidor vuelve
a expulsar todo nuevo valor escrito a este tpico; ningn nuevo mensaje escrito es creado
despus de que SUSPEND ha cambiado de 0 a 1.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 46

3.4 Desarrollo del programa SCADA para la interfaz HMI

Este programa SCADA fue desarrollado en la plataforma de programacin Delphi


Enterprise 5.0, utilizando leguaje Borland Pascal. Ya se mencion un poco de las cualidades de
esta plataforma en la seccin 2.6, por lo que simplemente se discute slo caractersticas propias
del programa como tal.
Como uno de los primeros problemas que dio la utilizacin de esta plataforma de
programacin fue que la versin no es la ms actual en el mercado y los softwares de servidores
OPC siguen actualizndose de manera no paralela con esta plataforma de programacin, por lo
que no se garantiza que Delphi importe todas las libreras de enlace dinmico (DLL) que existen.
Debido a esta problemtica la importacin del DLL del servidor OPC de Unitronics no se pudo
realizar, cuando mostr el primer intento fallido se opt por utilizar como cliente Excel por
medio del protocolo de comunicacin DDE, donde sus accesos de datos son muy conocidos y
simples.
Delphi posee la cualidad de crear aplicaciones Excel por debajo (se refiere a no ser
percibido por el usuario), por lo que puede simular una celda, entre muchas otras cosas.
Brevemente se da una descripcin del programa. Primeramente el programa entra a una
pantalla de conexin en donde por medio de objetos llamados TEdits, el usuario puede entrar
cambiar la direccin en donde se encuentra el ejecutable del Servidor OPC de Unitronics y la
unidad o tpico en que est configurado este; cuando el usuario se ha complacido, presiona un
botn de OK y carga sus datos. El usuario puede seleccionar las modalidades de Nuevo, Abrir o
Salvar que aparecen con los smbolos respectivos, o bien en la barra de herramientas, en
Archivo. Un icono de un PLC aparece en rojo si no hay conexin con el PLC y el puerto RS232
por medio del bit de STATUS; en caso contrario, este icono aparecer en color verde, y una
barra de progreso se ejecuta mientras logra abrir Unitronics.exe (programa ejecutable del OPC
Server).
Un botn con un smbolo de hojas, sirve para crear lo que se conoce como TTabSheet,
simplemente es una hoja vaca igual a la de conexin, que se crea dinmicamente, seguidamente
aparece una ventana en donde solicita al usuario el nombre del proceso, si no es introducido

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 47

escribe Proceso_# y un nmero de contador por defecto, esto con el fin de crear varios carpetas
con diferentes estructuras emulando los departamentos o secciones de una planta.
Despus se selecciona un botn con un smbolo ?, el cual hace aparecer una ventana en
donde muestra los diferentes nombres de los tems del M90, que est compuesto por una lista
denominada TListBox que contiene las iniciales de los nombres (MB, SI, etc), y un TEdit en
donde solicita las direcciones respectivas. Aparece el rango de valores permitidos de cada
elemento de la lista, al seleccionar el elemento. Otro TEdit muestra el contenido del registro al
presionar el botn de probar y habilita un botn de crear. Otro TEdit es destinado para la etiqueta
del registro, que es introducida por el usuario o aparece Registro_# y un nmero de contador por
defecto, esto con el fin de identificar la relacin de cada registro con el elemento de la planta.
Cuando el usuario ha seleccionado el registro a crear, simplemente presiona el botn de
crear y una ventana se abrir con el mensaje de dar click al lugar donde desea el registro, en ese
momento se activa el evento 23 OnMouseClick que ha sido heredado a la TTabSheet
seleccionada en este instante, y este evento tiene como funcin seguir las coordenadas del mouse
e introducirlas a variables, cuando el motn de mouse es presionado entra en accin el evento
OnMouseDown que tiene como funcin capturar en las variables la posicin en el instante
respectivo. Seguidamente se da la creacin dinmica de una etiqueta denominada TLabel, en
donde su padre es la TTabSheet seleccionada o mejor dicho la que tiene el Foco, con las
coordenadas seleccionadas anteriormente.
Visualmente no hay nada ms all que lo que se acaba de mencionar, pero internamente
el programa posee un procedimiento de un refrescador de datos denominado Timer que est
constantemente cargando datos del servidor OPC por medio del DDE en Excel, pues estos datos
son de carcter dinmico y ocupan ser actualizados, lo que hace necesitar mucha memoria en la
ejecucin del programa, que es incrementada con la cantidad de registros creados, por lo que
dependiendo de la PC, pueden tener limitaciones con la cantidad de registros a crear. Otro
aspecto que cabe mencionar es que por cada registro se necesita simular una celda de Excel.

23
Mtodo de programacin grfica, que se designa como propiedad a algn objeto.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 48

Al no poseer un evento dinmico de seleccin las etiquetas con el nombre y el contenido


del registro, pues es un defecto del evento OnMouseDown, no se puede borrar en tiempo de
ejecucin, pero para compensar este defecto, se ha agregado un botn de deshacer, que libera la
memoria ocupada por el ltimo objeto dinmico creado, que en este caso puede ser una
TTabSheet o un TLabel. De hecho el procedimiento de Nuevo Programa es iteracin de
liberacin de memoria de todos los objetos dinmicos creados hasta el momento.
Un arreglo de registros ha sido creado para almacenar la informacin, de todos los tems
dinmicos creados durante el programa, donde cada uno posee variables que guardan: el nmero
de pgina, el nombre de la pgina en donde se encuentran (TTabSheet), el contenido de la
etiqueta del registro, la frmula en Excel asociada y las coordenadas X y Y de su posicin.
Con respecto a la funcin Salvar, ejecuta un procedimiento que escribe en un archivo
de texto, designado con la extensin *.usd (proveniente de UniScada, el nombre del programa),
escribe el contenido de los registros, complementariamente la funcin de Cargar o Abrir, lee del
archivo de texto la informacin de los registros y empieza a crear dinmicamente TTabSheet y
TLabel, asignndole a cada uno la informacin contenida en el archivo.
Un programa por aparte ha sido creado, el cual se ha llamado UniHMI, con el fin de
servir nicamente para cargar la informacin configurada con el programa UniScada. Su
propsito es simplemente mostrar una aplicacin especfica para una planta determinada, por lo
que no existe en el procedimiento de Salvar, Nuevo Programa, Crear Registros o
Procedimientos, Deshacer, ni los anteriormente mencionados.
A continuacin se muestran unos grficos de las pantallas de cada aplicacin.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 49

Figura N3.5 Pantalla de Conexin de UniScada

Figura N3.6 Pantalla de Conexin de UniHMI

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 50

CAPTULO 4: Conclusiones y Recomendaciones


4.1 Conclusiones

Se Desarroll una Interfaz Humano-Mquina (HMI) para la familia de PLCs Unitronics


con la creacin de las aplicaciones UniScada y Uni_HMI.
Se practic en el desarrollo de aplicaciones en Borland Delphi. La plataforma de
programacin Delphi Enterprise 5.0, con lenguaje Borlad Pascal, es muy verstil y til
para el desarrollo de aplicaciones HMI.
Se estudi la arquitectura de los PLCs Unitronics. Son mquinas de alta facilidad de
manipulacin y acceso de datos en la comunicacin PC-PLC, protocolos de
comunicaciones flexibles y habilidades programables de trabajos mltiples, pero sobre
por tener estructuras abiertas al desarrollo de aplicaciones HMI. Adems de sus funciones
de amigables de hardware, entre otras.
Se Desarroll una aplicacin de comunicacin entre Delphi y el OPC Server de
Unitronics. Va Excel primeramente.
Se Realiz una aplicacin de lectura de registros del PLC.
Se Desarroll la aplicacin HMI de despliegue de registros.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 51

4.2 Recomendaciones

Establecer una comunicacin DDE utilizando a Delphi como Cliente y no a Excel.


Establecer una comunicacin con los dispositivos de la serie Vision.
Desarrollar una aplicacin de escritura a registros.
Crear variables en archivos para procesamientos de histricos.
Crear un manejador de alarmas.
Desarrollar una aplicacin de graficacin de tendencia de variables.
Implementar grficos para animacin de la aplicacin HMI.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 52

BIBLIOGRAFA
Pginas web:
1. Grupo Master. El PLC. http://www.grupo-
maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/plc.htm.
2. Ubiria, M. Que es un PLC.
http://www.euskalnet.net/m.ubiria/ARTICULOS.htm#Articulos_2001_01.
3. Figueras, E. SCADA. http://personal.redestb.es/efigueras/.
4. Universidad de Concepcin. Protocolos. http://inf.udec.cl/~yfarran/web-
redes/protocolos/redes03.htm.
5. Caldern, J. LABORATORIO VIRTUAL PARA LA ENSEANZA DE
AUTOMATIZACIN E INSTRUMENTACIN INDUSTRIAL.
http://www.ing.ula.ve/~jesusc/labvid.htm.
6. Montero, R. AUTOCAD 13 para Windows soporta OLE.
http://personales.unican.es/togoresr/r40p64.htm.
7. I Espaa. OLE en Windows. http://www.iespana.es/perl-es/OLE.htm.
8. Martnez, M. Cliente OPC realizado en Visual Basic .NET .
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art123.asp.
9. Omron Espaa. servidor OPC.
https://www.software.omron.es/software/cx/pages/cx_comun.jsp?id=6.
10. Sananes, M. Delphi. http://afrodita.faces.ula.ve/MartaSananes/Cursos/Delphi/..
11. Aulaware. Delphi 5. http://leo.worldonline.es/acanudas/pdf/dp5intro.pdf.
12. SQLMax Connections. ActiveX. http://www.sqlmax.com/ado.asp.
13. Unitronics. Productos Unitronics. http://www.unitronics.com.
Manuales:
14. Unitronics Co. Vision 230 OPLC User Guide, 2002. Traducido por Barrantes, A.
15. Unitronics Co. OPC Server Help, 2002. Traducido por Barrantes, A.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 53

ANEXOS

UniScada y
Uni_HMI
Manual del
Usuario

Elaborado por:
Alexander Barrantes Muoz

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 54

Tabla de Contenidos

Introduccin.......3
Requerimientos Mnimos..........3
Instalacin..........4
Descripcin del Ambiente Grfico de UniScada..........5
Descripcin de los iconos de la barra de herramientas....5
Descripcin de la pantalla de Conexin......6
Ejecucin Offline de UniScada.........7
Ejecucin Online de UniScada........11
Ejecucin Uni_HMI....13

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 55

Introduccin

Este programa tiene como objetivo servir de interfaz HMI (Humano-maquina), es una
aproximacin y un ejemplo de los programas que existen en el mercado denominados SCADA
(software supervisor que realiza la adquisicin de datos desde PLC hacia una PC comnmente).
Este software esta dirigido nicamente a los modelos M90 y Vision 230 de la familia de
PLCs (Controladores Lgicos Programables) de la compaa Unitronics.
Su funcionamiento se basa en la utilizacin de enlaces OLE (enlace e inclusin de
objetos) de Windows, estableciendo una comunicacin entre un servidor OPC (OLE para control
de procesos) de la compaa Unitronics y como cliente Excel, que es controlado por debajo por
esta aplicacin. Por lo que por medio del protocolo de comunicacin DDE (intercambio de datos
dinmico), es posible que se puedan leer y escribir los registros internos del PLC.
Esta clase de programas (HMI) permiten una forma confortable, amigable y grfica de
monitorear los procesos industriales controlados por un PLC, desde la comodidad de su PC, lo
que ahorra trabajo, tiempo y dinero. En particular este programa posee una fase de configuracin
y creacin, en donde se determina el modelo de PLC a usar en la aplicacin HMI, los registros a
visualizar y otros aspectos importantes, y una segunda fase solo de monitorear que tiene como
objetivo utilizar online lo creado en la primera fase.

Requerimientos Mnimos

Sistema Operativo: Windows 95 en adelante.


Programas Complementarios:
o Excel 97 en adelante
o Servidor OPC de Unitronics
PLCs: M90 o Vision 230 de Unitronics.
Puertos de la PC: RS232.
Cable de Comunicacin: MJ10-22-CS25 de Unitronics.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 56

Instalacin
Antes de ejecutar el programa, se debe instalar el Servidor OPC de Unitronics, en donde
despus de colocar el disco y dar un click en OPC Server Install, automticamente se dan
los pasos para su instalacin. Recuerde definir los trminos en el Servidor OPC, tal como se
indica en la seccin de la ayuda llamada Configuring the UNITRONICS Server.
Para instalar tanto el programa UniScada, como Uni_HMI, simplemente se copian las
carpetas del disco que contienen dichos nombres en un lugar en la PC, seleccionado segn su
comodidad y se da un click en los iconos UniScada o en Uni_HMI, segn se desee, para su
ejecucin (ver figura N 1).

Figura N 1. Iconos de Aplicaciones UniScada y Uni_HMI.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 57

Descripcin del Ambiente Grfico de UniScada


Descripcin de los iconos de la barra de herramientas
El Programa se inicia en una pantalla de Conexin, el cual posee una barra de
herramientas, que esta compuesto por 6 botones, a continuacin se hace una descripcin pequea
de cada uno de ellos, empezando de izquierda a derecha, algunos son muy familiares a los que
comnmente se utilizan:
Icono Descripcin
Nuevo Proyecto*, Inicializa la aplicacin, borrando todo lo que ha sido confeccionado hasta el
momento, tiene sentido su ejecucin cuando ya otra aplicacin ha sido creada y se desea empezar otra
nueva, o cuando est abierta una aplicacin guardada, inicialmente aparece deshabilitado.
Abrir Archivo*, Abre la informacin de un proyecto ya creado con la aplicacin UniScada, los
cuales se guardan en archivos cuyas extensiones son .usd. Activa una pantalla buscadora (ver figura
N 3) para poder seleccionar la carpeta en donde se guardo el archivo en la PC. Solo visualiza los
archivos cuyas extensiones son usd.
Guardar Archivo*, Inicialmente aparece deshabilitado y cambia su estado cuando se crea algn
elemento con la aplicacin UniScada, su funcin es la de guardar en un archivo con extensin .usd,
(UniHMI_1.usd por defecto), lo confeccionado con la aplicacin UniScada. Activa una pantalla
buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se quiere guardar el archivo en
la PC.
Nueva Pgina, Su funcin es crear una pgina en blanco, a modo de carpeta en donde se pueda
insertar los registros del PLC, de manera que sea la estructura que los contiene, se pueden crear las
que se desee y van a estar identificadas con una cejilla cuyo nombre se relaciona con el conjunto de
registros contenidos en ella. En donde su manera de seleccin es dar click en la cejilla respectiva.
Activa una pantalla que le pide al usuario el nombre del proceso (ver figura N 4), identificador
asignado a la cejilla que se va a crear, en donde si este no es digitado aparecer por defecto con
Proceso_#, el signo # representa el nmero de pgina que han sido creadas hasta el momento. La
ltima pgina creada se selecciona automticamente por defecto.
Nuevo Registro, Su funcin es seleccionar el registro del PLC a insertar en la pgina seleccionada.
Si no ha sido creada alguna pgina, ejecuta la funcin Nueva Pgina y solo servir hasta que este
procedimiento se realice. Activa una pantalla de seleccin de registro**, seguido a esto activa una
pantalla indicando que se haga un click en el lugar dentro de la pgina seleccionada que se quiere
insertar (ver figura N 4). La posicin en donde se hace click es justificada vertical y horizontalmente
en un rango de aproximadamente 1cm2.
Deshacer, deshace o borra el ltimo elemento que se ha creado, puede ser una pgina o un registro.
Se puede ejecutar cuantas veces se desee pero se limitar hasta que no aparezca ningn elemento
creado en el proyecto.

*Estos procedimientos tambin aparecen con sus respectivos nombres en la seccin de Archivo en la barra de
men principal (ver figura N 2).
**Nota: Se especificar con detalle en las secciones Ejecucin Offline y Online de UniScada.
El programa posee algunas restricciones por seguridad a que este no presente errores en
tiempo de ejecucin, tales como la deshabilitacin de la operacin de abrir, si se ha empezado ya
a trabajar (si ya hay por lo menos una pgina creada), entre otras.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 58

Figura N 2 Barra de Men Principal de UniScada

Figura N 3 Pantallas de Abrir y Guardar de UniScada

Figura N 4 Pantalla de Nueva Pgina y de Advertencia de seleccin de posicin de los registros de UniScada

Descripcin de la pantalla de Conexin


La pantalla de conexin aparece en una pgina igual a las que se crean para la insercin
de los registros del PLC, con la diferencia que la cejilla que la identifica viene con la etiqueta
Conexin (Ver figura N 5). Adems posee los siguientes elementos que se utilizan para la
conexin entre el PLC y el servidor OPC :
1) Direccin del Ejecutable (Servidor OPC de Unitronics): Aqu se selecciona la ubicacin en la
PC en donde se ha instalado el servidor OPC de Unitronics, la cual trae la direccin que
posee el OPC Server por defecto a la hora de instalarse, en caso de que en su instalacin se
haya modificado esta direccin, se necesita cambiar. No es relevante esta seccin si se
trabaja en offline.
2) Nombre del Tpico: En esta seccin se selecciona el nombre del tpico que establece la
conversacin DDE, o el que ha sido configurado en la seccin definicin del Tpico (topic
definition) en el OPC Server de Unitronics. Aparece la definicin del tpico que tiene el
OPC Server de Unitronics por defecto (unit1). Esta seccin es de mucha importancia para
trabajar en offline o en online.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 59

3) Modelo del PLC: En esta seccin se escoge el tipo de PLC con que se quiere trabajar, como
UniScada esta dirigido a los PLC de Unitronics, M90 y Vision 230, estas son las dos
opciones en que se puede utilizar el programa, ntese que se debe dar un click a la opcin
que se desea, en caso contrario se trabajar con el Vision 230 por defecto.

Despus de que se eligieron los puntos anteriores, se puede elegir el modo de ejecucin del
programa de forma simple, si se quiere trabajar online se presiona el botn OK, aceptando las
disposiciones seleccionadas y se espera a que UniScada abra el OPC Server de Unitronics, por lo
que mientras que este paso se realiza se mostrar grficamente una barra de progreso que lleva
de encabezado lo siguiente Conectando..., cuando este paso termina, aparece un icono
minimizado del OPC Server y el icono de un PLC que esta en la esquina superior derecha
cambiar de color de roja a verde (ver figura N 5). Seguidamente se crea una Nueva Pgina y se
comienza la configuracin de los diferentes registros, como se explica ms adelante.
Para trabajar offline se obvian los pasos anteriores y se empiezan a trabajar simplemente
dando un click al botn de Nueva Pgina, al igual que en modo online, se comienza la
configuracin de los diferentes registros.
Para evitar conflictos entre estos modos de operacin, cuando se empieza a trabajar offline se
deshabilita el botn de conexin (OK) y as no poderse pasar a trabajar online, o de igual manera
el programa restringe la operacin en offline si se empieza a trabajar online.

Figura N 5 Pantalla de Conexin de UniScada.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 60

Ejecucin Offline de UniScada


Los pasos para trabajar en modo offline en un Nuevo Proyecto se citan en forma puntal
de forma siguiente:
1) Ejecute la aplicacin UniScada (ver figura N 1).
2) Digite el nombre del tpico que configur o quiere configurar en el Servidor OPC de
Unitronics.
3) Elija el modelo del PLC Unitronics, dando un click al nombre del PLC que va a utilizar
(M90 Vision 230). De no hacer esto el programa entender que se trabaja con el Vision
230.
4) Seleccione el icono de Nueva Pgina y digite el nombre del Proceso (etiqueta que
identifica la cejilla de la subseccin del proyecto), generalmente tiene como objetivo
identificar el proceso de control asociado con los registros que se desean monitorear en
una seccin especfica, Si no digita ninguna el programa lo identificar como Proceso_1.
5) Seleccione el icono de Nuevo Registro. Esto har aparecer una pantalla de
configuracin en donde define el registro a monitorear que ser insertado en la pgina
seleccionada (La pgina se selecciona dando un click a la cejilla con una etiqueta
asociada, o si no es automticamente selecciona la ltima pgina creada por defecto).
Como se muestra en la figura N 6 se puede elegir entre una lista diferentes registros
dando un click en el nombre del tem del registro, una vez realizado esta accin aparece
el rango de valores permitidos para dicho registro, tenga cuidado de no digitar un valor
fuera del rango respectivo, pues causara errores. Inclusive an digitando un valor
permitido dentro del rango que aparece, podra haber algn error, pues este rango
representa los valores posibles pero no los habilitados.

Figura N 6 Ejemplo #1 de la Pantalla de Configuracin de Registros de UniScada.

Ntese que segn la forma de direccionamiento del tem de un registro


determinado, habilita o deshabilita los espacios para su direccionamiento correcto. Por
ejemplo si se quiere saber el estado de la conexin del PLC, solo es necesario marcar el
nombre STATUS sin necesidad de agregar otra indicacin. Tambin se da el caso de la
habilitacin o deshabilitacin de estos espacios segn si son pertenecientes o carentes del
modelo del PLC seleccionado.
La Tabla siguiente especfica las opciones de los diferentes registros que se
pueden elegir, adems del modelo del PLC para el que estn activos.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 61

Nombre Descripcin Modelo de PLC


del Item M90 Vision
230
MB Bit de Memoria X X
MI Entero de Memoria X X
ML Entero Largo de Memoria X
MD Entero Doble de Memoria X
INP Entrada* X X
OUT Salida* X X
SB Bit del Sistema X X
SI Entero del Sistema X X
SL Entero Largo del Sistema X
SD Entero Doble del Sistema X
TC Temporizador Actual X X
TP Temporizador Preestablecido X X
TS Bit de Tiempo de exploracin X X
CC Contador Actual X
CP Contador Preestablecido X
CS Bit del contador de Exploracin X
ID ID de la Unidad X X
STATUS Estado de la conexin X X
UPDATEINTERVAL Ajuste actual del intervalo a actualizar X X
MAXINTERVAL Intervalo actualizado mximo medido X X
ITEMCOUNT Items activos X X
ERRORITEMS Nmeros de tems con nombre invlidos X X
WRITECOUNT Nmero de comandos escritos esperando la ejecucin X X
SUSPEND Suspencin de la comunicacin X X
*Para el caso del M90, estos registros se direccionan de manera diferente que con el Vision 230 y todos los
dems registros (ver figura N 7).

Adems de lo ya descrito esta pantalla de configuracin posee una etiqueta que se


le designar al registro seleccionado, si no es digitada el programa seleccionar
automticamente una etiqueta con el nombre Registro_#, en donde # es el nmeros de
registros creados hasta el momento.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 62

Figura N 7 Ejemplo #2 de la Pantalla de Configuracin de Registros de UniScada.

Finalmente cuando se ha terminado toda la configuracin del registro respectivo,


se le selecciona el botn de crear aceptando lo anteriormente definido. Seguidamente se
indica que esta listo para seleccionar la posicin en donde se insertar el registro y se da
un click en donde se quiere la misma.
6) Repetir pasos 4) y 5) a su preferencia. Ntese que cada etiqueta de los distintos registros
aparecen en las posiciones elegidas (ver figura N 8).
7) Para Guardar los cambios creados y el nuevo proyecto realizado seleccione el icono de
Guardar Archvo , en donde guarda en un archivo con extensin .usd. Activa una
pantalla buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se quiere
guardar el archivo en la PC, en donde se digita el nombre que se le quiere dar al archivo
(si no es digitado se guarda con el nombre de UniHMI_1.usd).
8) Para Inicializar la aplicacin, borrando todo lo que ha sido confeccionado hasta el
momento, seleccione Nuevo Proyecto.
9) Para Abrir un proyecto ya creado, seleccione la opcin Abrir Archivo. Activa una
pantalla buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se guardo
el archivo en la PC. Solo visualiza los archivos cuyas extensiones son usd.
10) Seleccione la opcin de Salir del men principal para salir del programa y cerrar todas
las aplicaciones complementarias al mismo.

Figura N 8 Ejemplo #1 de un Proyecto de UniScada.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 63

Ejecucin Online de UniScada

Los pasos para trabajar en modo online en un Nuevo Proyecto se citan en forma puntal de
forma siguiente:
1) Ejecute la aplicacin UniScada (ver figura N 1).
2) Digite la direccin en la PC del ejecutable (OPC Server de Unitronics), o el programa
elegir la que posee el OPC Server por defecto a la hora de instalarse, en caso de que en
su instalacin se haya modificado esta direccin, se necesita cambiar.
3) Digite el nombre del tpico que configur o quiere configurar en el Servidor OPC de
Unitronics.
4) Elija el modelo del PLC Unitronics, dando un click al nombre del PLC que va a utilizar
(M90 Vision 230). De no hacer esto el programa entender que se trabaja con el Vision
230.
5) Presionar el botn OK de la pantalla de conexin y se espera a que UniScada abra el OPC
Server de Unitronics, por lo que mientras que este paso se realiza se mostrar
grficamente una barra de progreso que lleva de encabezado lo siguiente Conectando...,
cuando este paso termina, aparece un icono minimizado del OPC Server y el icono de un
PLC que esta en la esquina superior derecha cambiar de color de roja a verde (ver figura
N 5).
6) Seleccione el icono de Nueva Pgina y digite el nombre del Proceso (etiqueta que
identifica la cejilla de la subseccin del proyecto), generalmente tiene como objetivo
identificar el proceso de control asociado con los registros que se desean monitorear en
una seccin especfica, Si no digita ninguna el programa lo identificar como Proceso_1.
7) Seleccione el icono de Nuevo Registro. Esto har aparecer una pantalla de
configuracin en donde define el registro a monitorear que ser insertado en la pgina
seleccionada (La pgina se selecciona dando un click a la cejilla con una etiqueta
asociada, o si no es automticamente selecciona la ltima pgina creada por defecto).
Como se muestra en la figura N 9 se puede elegir entre una lista diferentes registros
dando un click en el nombre del tem del registro, una vez realizado esta accin aparece
el rango de valores permitidos para dicho registro, tenga cuidado de no digitar un valor
fuera del rango respectivo, pues causara errores. Inclusive an digitando un valor
permitido dentro del rango que aparece, podra haber algn error, pues este rango
representa los valores posibles pero no los habilitados.

Figura N 9 Ejemplo #3 de la Pantalla de Configuracin de Registros de UniScada.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 64

Ntese que segn la forma de direccionamiento del tem de un registro


determinado, habilita o deshabilita los espacios para su direccionamiento correcto. Por
ejemplo si se quiere saber el estado de la conexin del PLC, solo es necesario marcar el
nombre STATUS sin necesidad de agregar otra indicacin. Tambin se da el caso de la
habilitacin o deshabilitacin de estos espacios segn si son pertenecientes o carentes del
modelo del PLC seleccionado.
La Tabla de la seccin de Ejecucin offline de UniScada especfica las opciones
de los diferentes registros que se pueden elegir, adems del modelo del PLC para el que
estn activos.
Tambin se muestra en la figura N 8 un botn con , el cual tiene como
funcin probar los registros antes de insertarlos, no se puede insertar ningn registro si no
ha sido antes probado en modo online, pues no se habilita el botn de crear, su contenido
se refresca automticamente en la ventana contigua izquierda, segn su seleccin.
Adems de lo ya descrito esta pantalla de configuracin posee una etiqueta que se
le designar al registro seleccionado, si no es digitada el programa seleccionar
automticamente una etiqueta con el nombre Registro_#, en donde # es el nmeros de
registros creados hasta el momento.
Finalmente cuando se ha terminado toda la configuracin del registro respectivo,
se le selecciona el botn de crear aceptando lo anteriormente definido. Seguidamente se
indica que esta listo para seleccionar la posicin en donde se insertar el registro y se da
un click en donde se quiere la misma.
8) Repetir pasos 4) y 5) a su preferencia. Ntese que cada etiqueta de los distintos registros
aparecen con sus respectivos contenidos en las posiciones elegidas.
9) Para Guardar los cambios creados y el nuevo proyecto realizado seleccione el icono de
Guardar Archvo , en donde guarda en un archivo con extensin .usd. Activa una
pantalla buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se quiere
guardar el archivo en la PC, en donde se digita el nombre que se le quiere dar al archivo
(si no es digitado se guarda con el nombre de UniHMI_1.usd).
10) Para Inicializar la aplicacin, borrando todo lo que ha sido confeccionado hasta el
momento, seleccione Nuevo Proyecto.
11) Para Abrir un proyecto ya creado, seleccione la opcin Abrir Archivo. Activa una
pantalla buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se guardo
el archivo en la PC. Solo visualiza los archivos cuyas extensiones son usd.
12) Seleccione la opcin de Salir del men principal para salir del programa y cerrar todas
las aplicaciones complementarias al mismo

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 65

Ejecucin de Uni_HMI

Los pasos para trabajar con el programa Uni_HMI se citan en forma puntal de forma
siguiente:
1) Ejecute la aplicacin Uni_HMI (ver figura N 1).
2) Digite la direccin en la PC del ejecutable (OPC Server de Unitronics), o el programa
elegir la que posee el OPC Server por defecto a la hora de instalarse, en caso de que en
su instalacin se haya modificado esta direccin, se necesita cambiar.
3) Digite el nombre del tpico que configur o quiere configurar en el Servidor OPC de
Unitronics.
4) Presionar el botn OK de la pantalla de conexin y se espera a que Uni_HMI abra el
OPC Server de Unitronics, por lo que mientras que este paso se realiza se mostrar
grficamente una barra de progreso que lleva de encabezado lo siguiente Conectando...,
cuando este paso termina, aparece un icono minimizado del OPC Server y el icono de un
PLC que esta en la esquina superior derecha cambiar de color de roja a verde (ver figura
N 10). Solamente finalizado este paso podr seleccionarse la opcin de Abrir Archivo.
5) Para Abrir un proyecto ya creado, presione el botn de Abrir. Activa una pantalla
buscadora (ver figura N 3) para poder seleccionar la carpeta en donde se guardo el
archivo en la PC. Solo visualiza los archivos cuyas extensiones son usd.
6) Seleccione la opcin de Salir dando un click en el botn de salir en la esquina superior
derecha de la pantalla para salir del programa y cerrar todas las aplicaciones
complementarias al mismo

Figura N 10 Pantalla de Conexin de Uni_HMI.

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 66

CODIGO FUENTE
unit Main; ToolButton5: TToolButton;
SaveDialog: TSaveDialog;
interface N_Pag: TToolButton;
ToolButton6: TToolButton;
uses Windows, SysUtils, Classes, Graphics, Forms, procedure FileNew1Execute(Sender: TObject);
Controls, Menus, procedure FileOpen1Execute(Sender: TObject);
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, procedure HelpAbout1Execute(Sender: TObject);
ComCtrls, StdActns, procedure FileExit1Execute(Sender: TObject);
ActnList, ToolWin, ImgList, isapiapp; procedure Nueva_PaginaClick(Sender: TObject);
procedure N_PagClick(Sender: TObject);
type procedure DeshacerClick(Sender: TObject);
TMainForm = class(TForm) procedure Registros_GralClick(Sender: TObject);
MainMenu1: TMainMenu; procedure abilitar(modificado :boolean);
File1: TMenuItem; procedure FileSaveItemClick(Sender: TObject);
FileNewItem: TMenuItem; procedure ToolButton2Click(Sender: TObject);
FileOpenItem: TMenuItem; procedure FormCreate(Sender: TObject);
Help1: TMenuItem; private
N1: TMenuItem; { Private declarations }
FileExitItem: TMenuItem; public
HelpAboutItem: TMenuItem; { Public declarations }
OpenDialog: TOpenDialog; end;
FileSaveItem: TMenuItem;
StatusBar: TStatusBar; var
ActionList1: TActionList; MainForm: TMainForm;
EditCut1: TEditCut; Contaetiq, contnew : integer;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste; implementation
FileNew1: TAction;
FileSave1: TAction; {$R *.DFM}
FileExit1: TAction;
FileOpen1: TAction; uses ChildWin, About, vpal, configuracion, procesos;
FileSaveAs1: TAction; {
WindowCascade1: TWindowCascade;
WindowTileHorizontal1: TWindowTileHorizontal; }
WindowArrangeAll1: TWindowArrange; procedure TMainForm.FileNew1Execute(Sender:
WindowMinimizeAll1: TWindowMinimizeAll; TObject);
HelpAbout1: TAction; var
FileClose1: TWindowClose; i : integer;
WindowTileVertical1: TWindowTileVertical;
ToolBar2: TToolBar; begin
ToolButton1: TToolButton; for i:= (V_Ppal.ComponentCount - 1) downto 15
ToolButton2: TToolButton; do
ToolButton3: TToolButton; begin
ToolButton9: TToolButton; DeshacerClick(Sender);
ToolButton7: TToolButton; end;
ImageList1: TImageList; abilitar(false);
Deshacer: TToolButton; ToolButton1.Enabled := true;
Registros_Gral: TToolButton; FileOpenItem.Enabled := true;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 67

ToolButton9.Enabled := false; procedure TMainForm.HelpAbout1Execute(Sender:


FileNewItem.Enabled := false; TObject);
contnew := 0; begin
end; AboutBox.ShowModal;
{ end;
{
}
procedure TMainForm.FileOpen1Execute(Sender: }
TObject); procedure TMainForm.FileExit1Execute(Sender:
var TObject);
Arch : TextFile; var
temp, auxi : integer; cerrar:integer;
begin
begin cerrar:=FindWindow(nil,'UNITRONICS');
OpenDialog.Execute; if (cerrar = 0) then
AssignFile(Arch,(Opendialog.FileName)); else
Reset(Arch); SendMessage(cerrar,WM_CLOSE,0,0);
temp := 1; if (Vpal.activado = true) then
while (not(EOF(Arch))) do V_Ppal.EA1.Disconnect;
begin Close;
Readln(Arch,reg[temp].numpag); end;
Readln(Arch,reg[temp].pagina); {
Readln(Arch,reg[temp].nombre);
Readln(Arch,reg[temp].Contenido); }
Readln(Arch,reg[temp].posx); procedure TMainForm.Nueva_PaginaClick(Sender:
Readln(Arch,reg[temp].posy); TObject);
Readln(Arch); begin
if (reg[temp].numpag > auxi) then V_Ppal.show;
begin end;
auxi := reg[temp].numpag; {
V_ppal.CargarNuevaPag(reg[temp].pagina);
end; }
procedure TMainForm.N_PagClick(Sender:
V_ppal.CargarNuevoElemento(reg[temp].posx,reg[te TObject);
mp].posy,reg[temp].nombre); begin
if (vpal.activado = true) then if (contnew = 0) then
vpal.WorkSt.Cells.Item[temp,reg[temp].numpag begin
+1] := reg[temp].contenido; ToolButton1.Enabled := false;
temp := temp +1; FileOpenItem.Enabled := false;
end; end;
closefile(Arch); contnew := contnew + 1;
ToolButton1.Enabled := false; {Crear una nueva Pgina}
FileOpenItem.Enabled := false; if (vpal.activado = false) then
ToolButton9.Enabled := true; V_Ppal.OK.Enabled := false;
FileNewItem.Enabled := true; V_Ppal.NuevaPgina1Click(self);
end; ToolButton9.Enabled := true;
{ FileNewItem.Enabled := true;
end;
} {

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 68

FileSave1.Enabled := true;
} FileSaveItem.Enabled := true;
procedure TMainForm.DeshacerClick(Sender: ToolButton2.Enabled := true;
TObject); end
var else
i : integer; begin
objeto : TObject; FileSave1.Enabled := false;
begin FileSaveItem.Enabled := false;
{Proceso para Undo} ToolButton2.Enabled := false;
if ((V_Ppal.ComponentCount - 1) > 15) then end;
begin end;
i:= V_Ppal.ComponentCount-1; {Fin del programa}
{Deteccin de tipo de elemento a borrar} procedure TMainForm.FileSaveItemClick(Sender:
{Si es un Hoja} TObject);
if ((V_Ppal.Components[i] is TTabSheet) and var
(vpal.numpag > 0)) then Arch : TextFile;
vpal.numpag := vpal.numpag -1 temp : integer;
else
{Si es un Label} begin
if ((V_Ppal.Components[i] is TLabel) and SaveDialog.Execute;
(vpal.contreg > 0)) then assignfile(Arch,(SaveDialog.FileName)+'.usd');
begin rewrite(Arch);
vpal.reg[contreg].numpag := 0; for temp := 1 to vpal.contreg do
vpal.contreg := vpal.contreg - 1; begin
end; writeln(Arch,vpal.reg[temp].numpag);
{Eliminar el elemento} writeln(Arch,vpal.reg[temp].pagina);
objeto := (V_Ppal.Components[i] as Tobject); writeln(Arch,vpal.reg[temp].nombre);
objeto.Free; writeln(Arch,vpal.reg[temp].contenido);
end; writeln(Arch,vpal.reg[temp].posx);
end; writeln(Arch,vpal.reg[temp].posy);
{ writeln(Arch);
Reliza: Llama a el dialogo de Configuracin end;
Recibe: ninguno closefile(Arch);
Evia: ninguno end;
}
procedure TMainForm.Registros_GralClick(Sender: procedure TMainForm.ToolButton2Click(Sender:
TObject); TObject);
begin begin
if (vpal.activado = false) then FileSaveItemClick(Sender);
V_Ppal.OK.Enabled := false; end;
Config.Show;
end; procedure TMainForm.FormCreate(Sender:
TObject);
begin
procedure TMainForm.abilitar(modificado : contnew := 0;
boolean); end;
begin
if (modificado = true) then end.
begin

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 69

unit vpal;
type
interface registro = record
numpag : integer; {Contiene el numero de pgina}
uses pagina : string; {Contiene el nombre de la pagina}
Windows, Messages, SysUtils, Classes, Graphics, nombre : string; {lleva el nombre del item}
Controls, Forms, Dialogs, contenido : string; {lleva la funcion para
Menus, Excel97, ComCtrls, StdCtrls, OleServer, conexion}
ShellApi, ExtCtrls, jpeg, posx, posy : integer; {coordenadas del item}
syncobjs; end;

type
TV_ppal = class(TForm) var
PageCPpal: TPageControl; V_ppal: TV_ppal;
Conexion: TTabSheet;
OK: TButton; {Conexion}
Direccion: TEdit; WorkBk : _WorkBook;
Unidad: TEdit; WorkSt : _WorkSheet;
Label1: TLabel; IIndex : OleVariant;
Label2: TLabel;
Label3: TLabel; {Datos de Usuario}
EA1: TExcelApplication; Direc : Pchar; { Direccin Fsica del Archivo}
GroupBox1: TGroupBox; Unid, nombrepag, nomlabel, formula : String; {
PBar: TProgressBar; Unidad a la cual se va a conectar}
Image2: TImage; cont, Suspencion, Estado : integer; { Estado de la
Temporizador: TTimer; conecxion}
ListBox: TListBox; est, activo, activado: boolean; {estados del reloj para
ImagenDes: TImage; OPC Server}
ImagenCon: TImage; numpag: Integer; {almacena el numero de pagina}
LModelo: TLabel; reg : array [1..100] of registro; {}
Modelo: TListBox; nuevo, contreg : integer;
procedure Salir1Click(Sender: TObject); posx, posy : integer;
procedure OKClick(Sender: TObject);
procedure CancelClick(Sender: TObject);
procedure TemporizadorTimer(Sender: TObject);
procedure NuevaPgina1Click(Sender: TObject); implementation
procedure CrearNuevaPag();
procedure Press_Clic(Sender: TObject; Button: uses procesos, main;
TMouseButton;
Shift: TShiftState; X, Y: Integer); {$R *.DFM}
Procedure CargarNuevaPag(nombre : string);
Procedure CargarNuevoElemento(X,Y :integer; procedure TV_ppal.Salir1Click(Sender: TObject);
Nom : string); begin
Function NuevaCorde(cord :integer): integer; V_ppal.Close; {Cerrar el sistema}
private end;
{ Private declarations }
public procedure TV_ppal.OKClick(Sender: TObject);
{ Public declarations } var
end; buscar : Integer;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 70

begin if (activo = true) then


numpag := 1; begin
Direc := Addr(Direccion.Text[1]); { Cargar el if (activado = true) then
nombre de la apliucacin} begin
Unid := Unidad.text; { Cargar la unidad a ejecutar} WorkSt.Cells.Item[1,1] :=
'=Unitronics|'+Unid+'!STATUS';
ShellExecute(V_ppal.Handle,'open',Direc,nil,nil,SW_ if (est = True) then
SHOWMINIMIZED); begin
{ Ejecutar el metodo de conexin} Estado := integer(WorkSt.Cells.Item[1,1]);
if (Estado = 0) then
While (activo = false) do begin
begin ImagenDes.Visible := True;
{ Metodo para optener los datos del PLC} ImagenCon.Visible := False;
buscar:=FindWindow(nil,'UNITRONICS'); end
if (activo <> true) then else
begin begin
if ((cont mod 10000) = 0) then ImagenDes.Visible := False;
PBar.StepIT; ImagenCon.Visible := True;
cont := cont + 1; end;
end; {Parte del timer para jalar la info de los Labels}
If (buscar<>0) then aux := 1;
begin Listbox.Items.Clear;
activo := true; for I := V_Ppal.ComponentCount-1 downto 15
cont := 0; do
contreg := 0; begin
EA1.Connect; if (V_Ppal.Components[I] is TLabel) then
EA1.Workbooks.Add(xlWBatWorkSheet,0); ListBox.Items.InsertObject(0,
WorkBk := EA1.Workbooks.Item[1]; V_Ppal.Components[I].Name,
WorkSt := WorkBk.WorkSheets.Get_Item(1) as V_Ppal.Components[I] as
_Worksheet; TObject);
end; end;
end; pag := PageCPpal.ActivePageIndex;
{ Si esta desconectado muesta desconectado, pero si for contador := 0 to ListBox.Items.Count - 1 do
lo esta muesta Conectado} begin
end; if (ListBox.Items.Objects[contador] is TLabel)
then
procedure TV_ppal.CancelClick(Sender: TObject); begin
begin Selec := (ListBox.Items.Objects[contador] as
V_ppal.Close; TLabel);
end; Selec.Caption :=
reg[aux].nombre+#13+string(WorkSt.Cells.Item[aux,
pag+1]);
procedure TV_ppal.TemporizadorTimer(Sender: Selec.Alignment :=tacenter;
TObject); aux := aux + 1;
var end;
pag, I, aux, contador : integer; end;
Selec : TLabel; end
else
begin est := true;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 71

end PageCPpal.ActivePageIndex:=
else (PageCPpal.Pages[numpag].PageIndex);
activado := true; numpag := numpag + 1;
end; end;
end; {
Realiza: Captura los datos de la coordenadas del
mouse en
procedure TV_ppal.NuevaPgina1Click(Sender: el lugar en que se dio el clic, muestra un
TObject); mensage
begin de la localizacion del puntero del muose.
// Crear una pgina nueva Envia: nada.
Nombre_proceso.Show; Recibe: Un objeto, el boton precionado, las
end; coordenadas X Y y el estado.
}
Procedure TV_ppal.CrearNuevaPag(); procedure TV_ppal.Press_Clic(Sender: TObject;
begin Button: TMouseButton;
main.MainForm.abilitar(true); Shift: TShiftState; X, Y: Integer);
with PageCPpal do
with TTabSheet.Create(Self) do var
begin hoja : TTabSheet;
PageControl := PageCPpal;
Name := 'Proceso_' + begin
IntToStr(Pages[numpag].PageIndex); posy := Y;
Caption := nombrepag; posx := X;
numpag := numpag + 1; if (nuevo = 1) then
OnMouseDown := Press_Clic; begin
end; nuevo := 0;
if (activo = true) then contreg := contreg + 1;
PageCPpal.ActivePageIndex:= reg[contreg].nombre := nomlabel;
(PageCPpal.Pages[numpag-1].PageIndex) Self.Name := 'Label_'+IntToStr(cont);
else with TLabel.Create(Self) do
PageCPpal.ActivePageIndex:= begin
(PageCPpal.Pages[numpag].PageIndex) Caption := nomlabel;
end; hoja := TTabSheet(PageCPpal.ActivePage);
Parent:= hoja;
Procedure TV_ppal.CargarNuevaPag(nombre : with hoja do
string); begin
begin reg[contreg].pagina := Caption;
main.MainForm.abilitar(true); end;
with PageCPpal do reg[contreg].numpag :=
with TTabSheet.Create(Self) do PageCPpal.ActivePageIndex;
begin Left:=NuevaCorde(posx);
PageControl := PageCPpal; reg[contreg].posx := Left;
Name := 'Proceso_' + Top:=NuevaCorde(posy);
IntToStr(Pages[numpag].PageIndex); reg[contreg].posy := Top;
Caption := nombre; Autosize := True;
OnMouseDown := Press_Clic; reg[contreg].contenido := formula;
end; end;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 72

ListBox.Items.InsertObject(0,Self.Name,Self as end.
TObject); unit configuracion;
end;
end; interface
Procedure TV_ppal.CargarNuevoElemento(X,Y uses
:integer; Nom : string); Windows, Messages, SysUtils, Classes, Graphics,
var Controls, Forms, Dialogs,
hoja : TTabSheet; ExtCtrls, OleServer, Excel97, StdCtrls, Comctrls;
begin type
contreg := contreg + 1; TConfig = class(TForm)
Self.Name := 'Label_'+IntToStr(contreg); LBRegistro: TListBox;
with TLabel.Create(Self) do AEvaluar: TEdit;
begin Rango2: TEdit;
PageCPpal.ActivePageindex := Valor: TEdit;
PageCPpal.PageCount -1; Probar: TButton;
hoja := TTabSheet(PageCPpal.ActivePage); Crear: TButton;
Parent:= hoja; Rango: TLabel;
Left:= X; LRang: TLabel;
Top:= Y; EA1: TExcelApplication;
Autosize := True; Timer1: TTimer;
Caption := Nom; Label1: TLabel;
end; Etiqueta: TEdit;
ListBox.Items.InsertObject(0,Self.Name,Self as procedure LBRegistroClick(Sender: TObject);
TObject); procedure ProbarClick(Sender: TObject);
end; procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
Function TV_PPAL.NuevaCorde(cord : procedure CrearClick(Sender: TObject);
integer):integer; procedure FormShow(Sender: TObject);
begin procedure Formula();
while (cord mod 20 <> 0) do private
cord := cord - 1; { Private declarations }
NuevaCorde := cord; public
end; { Public declarations }
end;
end. // Fin de programa
program PFinal; var
Config: TConfig;
uses activac, activado: boolean;
Forms, Selec, Unid : String;
VPal in 'D:\Proyecto\VPal.pas' {V_ppal}; WorkBk : _WorkBook;
WorkSt : _WorkSheet;
{$R *.RES} IIndex : OleVariant;
modelo, a, contaetiq : integer;
begin
Application.Initialize;
Application.CreateForm(TV_ppal, V_ppal); implementation
Application.Run;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 73

{$R *.DFM} vpal.formula :=


'=Unitronics|'+string(V_ppal.Unidad.Text)+'!'+#39+'I
uses vpal, Main; NP'+val+','+val2+#39;
end
Procedure TConfig.Formula(); else
var if ((Selec = 'OUT')and(modelo = 0)) then
val, val2 : string; if ((integer(AEvaluar.text) > 0) and
(integer(AEvaluar.text) < 10 )) then
begin begin
if V_ppal.Modelo.Selected[0]then val2 := string(Rango2.text);
modelo := 0 val := string(Aevaluar.text);
else vpal.formula :=
modelo := 1; '=Unitronics|'+string(V_ppal.Unidad.Text)+'!'+#39+'
if (Selec = 'STATUS') then OUT0'+val+','+val2+#39;
begin end
{Jale el dato tipo estatus} else
vpal.formula := begin
'=Unitronics|'+string(V_ppal.Unidad.Text)+'!STATU val2 := string(Rango2.text);
S'; val := string(Aevaluar.text);
end; vpal.formula :=
{Si el dato es tipo ID} '=Unitronics|'+string(V_ppal.Unidad.Text)+'!'+#39+'
if (Selec = 'ID') then OUT'+val+','+val2+#39;
begin end
{Jale el dato tipo ID} else
vpal.formula := begin
'=Unitronics|'+string(V_ppal.Unidad.Text)+'!ID'; val := string(Aevaluar.text);
end; vpal.formula :=
{Si el dato es tipo Suspend} '=Unitronics|'+string(V_ppal.Unidad.Text)+'!'+Selec
if (Selec = 'SUSPEND') then +val;
begin end;
{Jale el dato tipo suspend} end;
vpal.formula :=
'=Unitronics|'+string(V_ppal.Unidad.Text)+'!SUSPE procedure TConfig.LBRegistroClick(Sender:
ND'; TObject);
end; var
if ((Selec = 'INP')and(modelo = 0)) then i : integer;
if ((integer(AEvaluar.text) > 0) and
(integer(AEvaluar.text) < 10 )) then
begin begin
val2 := string(Rango2.text); if V_ppal.Modelo.Selected[0]then
val := string(Aevaluar.text); modelo := 0
vpal.formula := else
'=Unitronics|'+string(V_ppal.Unidad.Text)+'!'+#39+'I modelo := 1;
NP0'+val+','+val2+#39; { Poner en invisible las edits Rango2 y Aevaluar, y
end el label LRang}
else Rango2.Visible := False;
begin LRang. Visible := False;
val2 := string(Rango2.text); AEvaluar.Visible := True;
val := string(Aevaluar.text); { Obtiene el objeto selecionado en el list box}

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 74

for i := 0 to (LBRegistro.Items.Count - 1) do if (modelo = 1) then


begin begin
if LBRegistro.Selected[i] then if ((Selec = 'MB') or (Selec = 'MI')) then
Selec := LBRegistro.Items[i] begin
end; Rango.Caption := '(0 - 1023)'; {Delimitrar
{si se selecciona MB} el rango}
if (modelo = 0) then AEvaluar.SetFocus; {Envirle el foco al
begin edit}
if ((Selec = 'ML') or (Selec = 'MD')or (Selec = end;
'SL')or (Selec = 'SD')or (Selec = 'CC')or (Selec = {Si se selecciona MI, SI, SB}
'CP')or (Selec = 'CS')) then if (Selec = 'ML') then
begin begin
Rango.Caption := 'No Disponible'; Rango.Caption := '(0 - 255)'; {Rango}
AEvaluar.Visible := false; AEvaluar.SetFocus; {Foco}
end; end;
if (Selec = 'MB') then if ((Selec = 'MD') or (Selec = 'SL') or (Selec =
begin 'SD')) then
Rango.Caption := '(0 - 1023)'; {Delimitrar begin
el rango} Rango.Caption := '(0 - 63)'; {Delimitrar el
AEvaluar.SetFocus; {Envirle el foco al rango}
edit} AEvaluar.SetFocus; {Envirle el foco al
end; edit}
{Si se selecciona MI, SI, SB} end;
if ((Selec = 'MI') or (Selec = 'SI') or (Selec = { Si se selecciona INP, OUT}
'SB')) then if ((Selec = 'INP') or (Selec = 'OUT')) then
begin begin
Rango.Caption := '(0 - 255)'; {Rango} Rango.Caption := '(00 - 543)'; {Rango
AEvaluar.SetFocus; {Foco} inicial}
end; AEvaluar.SetFocus; {Foco}
{ Si se selecciona INP, OUT} end;
if ((Selec = 'INP') or (Selec = 'OUT')) then if ((Selec = 'SB') or (Selec = 'SI')) then
begin begin
Rango.Caption := '(00 - 63)'; {Rango Rango.Caption := '(0 - 511)'; {Delimitrar el
inicial} rango}
AEvaluar.SetFocus; {Foco} AEvaluar.SetFocus; {Envirle el foco al
{ Alteraciones en stado de las cosas} edit}
Rango2.Visible := True; end;
LRang. Visible := True; { Si se selecciona TC, TP, TS}
end; if ((Selec = 'TC') or (Selec = 'TP') or (Selec =
{ Si se selecciona TC, TP, TS} 'TS')) then
if ((Selec = 'TC') or (Selec = 'TP') or (Selec = begin
'TS')) then Rango.Caption := '(0 - 127)'; {Rango}
begin AEvaluar.SetFocus; {Foco}
Rango.Caption := '(0 - 63)'; {Rango} end;
AEvaluar.SetFocus; {Foco} if ((Selec = 'CC') or (Selec = 'CP') or (Selec =
end 'CS')) then
end begin
else Rango.Caption := '(0 - 31)'; {Rango}
begin AEvaluar.SetFocus; {Foco}

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 75

end; begin
end; {Jale el dato tipo ID}
end; WorkSt.Cells.Item[2,1] :=
{Si se selecciona Status, Suspend, ID} '=Unitronics|'+vpal.Unid+'!ID';
if ((Selec = 'STATUS') or (Selec = 'SUSPEND') or vpal.formula := '=Unitronics|'+vpal.Unid+'!ID';
(Selec = 'ID')) then end;
begin {Si el dato es tipo Suspend}
Rango.Visible := False; if (Selec = 'SUSPEND') then
AEvaluar.Visible := False; {desactivar la begin
visibilidad ya que son 1 0} {Jale el dato tipo suspend}
end; WorkSt.Cells.Item[2,1] :=
{Si se selecciona Updateinterval} '=Unitronics|'+vpal.Unid+'!SUSPEND';
if (Selec = 'UPDATEINTERVAL') then vpal.formula :=
begin '=Unitronics|'+vpal.Unid+'!SUSPEND';
Rango.Caption := '(10 - 2147983647)'; {Rango} end;
AEvaluar.SetFocus; {foco} if ((Selec = 'INP') and (modelo = 0)) then
end; if ((integer(AEvaluar.text) > 0) and
{Si se selecciona Maxinterval, itemcount, (integer(AEvaluar.text) < 10 )) then
errorcount, erroitems, writecount} begin
if ((Selec = 'MAXINTERVAL') or (Selec = val2 := string(Rango2.text);
'INTEMCOUNT') or (Selec = 'ERRORCOUNT')or val := string(Aevaluar.text);
(Selec = 'ERRORITEMS') or (Selec = WorkSt.Cells.Item[2,1] :=
'WRITECOUNT')) then '=Unitronics|'+vpal.Unid+'!'+#39+'INP0'+val+','+val2
begin +#39;
Rango.Caption := '(0 - 2147983647)'; {rango} vpal.formula :=
AEvaluar.SetFocus; {foco} '=Unitronics|'+vpal.Unid+'!'+#39+'INP0'+val+','+val2
end; +#39;
end; end
else
procedure TConfig.ProbarClick(Sender: TObject); begin
var val2 := string(Rango2.text);
val, val2 : string; val := string(Aevaluar.text);
begin WorkSt.Cells.Item[2,1] :=
{Generacion del workbook} '=Unitronics|'+vpal.Unid+'!'+#39+'INP'+val+','+val2+
WorkBk := EA1.Workbooks.Item[1]; #39;
{Generacin del worksheet} vpal.formula :=
WorkSt := WorkBk.WorkSheets.Get_Item(1) as '=Unitronics|'+vpal.Unid+'!'+#39+'INP'+val+','+val2+
_Worksheet; #39;
{Si el campo es tipo estatus} end
if (Selec = 'STATUS') then else
begin if ((Selec = 'OUT') and (modelo = 0)) then
{Jale el dato tipo estatus} if ((integer(AEvaluar.text) > 0) and
WorkSt.Cells.Item[2,1] := (integer(AEvaluar.text) < 10 )) then
'=Unitronics|'+vpal.Unid+'!STATUS'; begin
vpal.formula := val2 := string(Rango2.text);
'=Unitronics|'+vpal.Unid+'!STATUS'; val := string(Aevaluar.text);
end; WorkSt.Cells.Item[2,1] :=
{Si el dato es tipo ID} '=Unitronics|'+vpal.Unid+'!'+#39+'OUT0'+val+','+val
if (Selec = 'ID') then 2+#39;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 76

vpal.formula := begin
'=Unitronics|'+vpal.Unid+'!'+#39+'OUT0'+val+','+val buffer := Unid;
2+#39; end;
end Unid := buffer;
else EA1.Connect;
begin EA1.Workbooks.Add(xlWBatWorkSheet,0);
val2 := string(Rango2.text); WorkBk := EA1.Workbooks.Item[1];
val := string(Aevaluar.text); contaetiq := 1;
WorkSt.Cells.Item[2,1] := end;
'=Unitronics|'+vpal.Unid+'!'+#39+'OUT'+val+','+val2
+#39; procedure TConfig.CrearClick(Sender: TObject);
vpal.formula := var
'=Unitronics|'+vpal.Unid+'!'+#39+'OUT'+val+','+val2 fila, columna : integer;
+#39;
end begin
else if (vpal.V_ppal.PageCPpal.ActivePageIndex = 0)
begin then
val := string(Aevaluar.text); begin
WorkSt.Cells.Item[2,1] := if (Application.messagebox( 'Favor Crear una
'=Unitronics|'+vpal.Unid+'!'+Selec+val; Pgina','Error',MB_OK + MB_DEFBUTTON1)) =
vpal.formula := IDOK then
'=Unitronics|'+vpal.Unid+'!'+Selec+val; Config.Close;
end; end
activado := true; else
activac := true; begin
a := 1; if (vpal.V_ppal.PageCPpal.ActivePageIndex = 0)
end; then
begin
procedure TConfig.Timer1Timer(Sender: TObject); V_Ppal.NuevaPgina1Click(self);
begin end;
if (activac = true) then nuevo := 1;
activac := false columna :=
else vpal.V_ppal.PageCPpal.ActivePageIndex;
if (activado = true) then fila := vpal.contreg;
begin vpal.nomlabel := Etiqueta.Text;
WorkSt := WorkBk.WorkSheets.Get_Item(1) if Vpal.activado = true then
as _Worksheet; WorkSt.Cells.Item[fila+1,columna+1] :=
Valor.Text := WorkSt.Cells.Item[2,1]; vpal.formula
Crear.Enabled := True; else
end; Formula();
end; contaetiq := contaetiq + 1;
Application.MessageBox('Favor dar clic en donde
procedure TConfig.FormCreate(Sender: TObject); quiera que est el objeto',
var 'Atencin!!',MB_OK + MB_DEFBUTTON1);
buffer : string; Close;
cont : integer; end;
end;
begin
with V_Ppal do procedure TConfig.FormShow(Sender: TObject);

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 77

begin
AEvaluar.Text := ''; var
Valor.Text := ''; Form1: TForm1;
Etiqueta.Text := 'Registro_'+inttostr(contaetiq); activado: integer;
if vpal.activado = true then
begin implementation
Crear.Enabled := False;
Probar.Visible := True; {$R *.DFM}
Valor.Visible := True;
end procedure TForm1.LBRegistroClick(Sender:
else TObject);
begin begin
Crear.Enabled := True; { Poner en invisible las edits Rango2 y Aevaluar, y
Probar.Visible := False; el label LRang}
Valor.Visible := False; Rango2.Visible := False;
end; LRang. Visible := False;
activado := false; AEvaluar.Visible := True;
end; { Obtiene el objeto selecionado en el list box}
for i := 0 to (LBRegistro.Items.Count - 1) do
end. // Fin del programa begin
unit cionfiguracion; if LBRegistro.Selected[i] then
Selec := LBRegistro.Items[i]
interface end;
{si se selecciona MB}
uses if (Selec = 'MB') then
Windows, Messages, SysUtils, Classes, Graphics, begin
Controls, Forms, Dialogs, Rango.Caption := '(0 - 1023)'; {Delimitrar el
ExtCtrls, OleServer, Excel97, StdCtrls; rango}
AEvaluar.SetFocus; {Envirle el foco al edit}
type end;
TForm1 = class(TForm) {Si se selecciona MI, SI, SB}
LBRegistro: TListBox; if ((Selec = 'MI') or (Selec = 'SI') or (Selec = 'SB'))
AEvaluar: TEdit; then
Rango2: TEdit; begin
Valor: TEdit; Rango.Caption := '(0 - 225)'; {Rango}
Probar: TButton; AEvaluar.SetFocus; {Foco}
Button1: TButton; end;
Rango: TLabel; { Si se selecciona INP, OUT}
Label1: TLabel; if ((Selec = 'INP') or (Selec = 'OUT')) then
EA1: TExcelApplication; begin
Timer1: TTimer; Rango.Caption := '(00 - 63)'; {Rango inicial}
procedure LBRegistroClick(Sender: TObject); AEvaluar.SetFocus; {Foco}
procedure ProbarClick(Sender: TObject); { Alteraciones en stado de las cosas}
procedure Timer1Timer(Sender: TObject); Rango2.Visible := True;
private LRang. Visible := True;
{ Private declarations } end;
public { Si se selecciona TC, TP, TS}
{ Public declarations } if ((Selec = 'TC') or (Selec = 'TP') or (Selec = 'TS'))
end; then

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 78

begin WorkSt.Cells.Item[1,2] :=
Rango.Caption := '(0 - 63)'; {Rango} '=Unitronics|'+Unid+'!ID';
AEvaluar.SetFocus; {Foco} end;
end; {Si el dato es tipo Suspend}
{Si se selecciona Status, Suspend, ID} if (Selec = 'SUSPEND') then
if ((Selec = 'STATUS') or (Selec = 'SUSPEND') or begin
(Selec = 'ID')) then {Jale el dato tipo suspend}
begin WorkSt.Cells.Item[1,2] :=
AEvaluar.Visible := False; {desactivar la '=Unitronics|'+Unid+'!SUSPEND';
visibilidad ya que son 1 0} end;
end; if (Selec = 'INP') then
{Si se selecciona Updateinterval} if ((integer(AEvaluar.text) > 0) and
if (Selec = 'UPDATEINTERVAL') then (integer(AEvaluar.text) < 10 )) then
begin begin
Rango.Caption := '(10 - 2147983647)'; {Rango} val2 := string(Rango2.text);
AEvaluar.SetFocus; {foco} val := string(Aevaluar.text);
end; WorkSt.Cells.Item[1,2] :=
{Si se selecciona Maxinterval, itemcount, '=Unitronics|'+Unid+'!INP0'+val+','+val2;
errorcount, erroitems, writecount} end
if ((Selec = 'MAXINTERVAL') or (Selec = else
'INTEMCOUNT') or (Selec = 'ERRORCOUNT')or begin
(Selec = 'ERRORITEMS') or (Selec = val2 := string(Rango2.text);
'WRITECOUNT')) then val := string(Aevaluar.text);
begin WorkSt.Cells.Item[1,2] :=
Rango.Caption := '(0 - 2147983647)'; {rango} '=Unitronics|'+Unid+'!INP'+val+','+val2;
AEvaluar.SetFocus; {foco} end;
end; if (Selec = 'OUT') then
end; if ((integer(AEvaluar.text) > 0) and
(integer(AEvaluar.text) < 10 )) then
procedure TForm1.ProbarClick(Sender: TObject); begin
var val2 := string(Rango2.text);
val, val2 : string; val := string(Aevaluar.text);
begin WorkSt.Cells.Item[1,2] :=
{Generacion del workbook} '=Unitronics|'+Unid+'!OUT0'+val+','+val2;
WorkBk := EA1.Workbooks.Item[1]; end
{Generacin del worksheet} else
WorkSt := WorkBk.WorkSheets.Get_Item(1) as begin
_Worksheet; val2 := string(Rango2.text);
{Si el campo es tipo estatus} val := string(Aevaluar.text);
if (Selec = 'STATUS') then WorkSt.Cells.Item[1,2] :=
begin '=Unitronics|'+Unid+'!OUT'+val+','+val2;
{Jale el dato tipo estatus} end
WorkSt.Cells.Item[1,2] := else
'=Unitronics|'+Unid+'!STATUS'; begin
end; val := string(Aevaluar.text);
{Si el dato es tipo ID} WorkSt.Cells.Item[1,2] :=
if (Selec = 'ID') then '=Unitronics|'+Unid+'!'+Selec+val;
begin end;
{Jale el dato tipo ID} activado := true;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 79

end; if (Nombre.text = '') then


Nombre.Text := 'Proceso_'+
procedure TForm1.Timer1Timer(Sender: TObject); inttostr(V_ppal.PageCPpal.ActivePageIndex+1);
begin vpal.nombrepag := Nombre.text;
if (activado = true) then V_Ppal.CrearNuevaPag();
begin Close;
WorkBk := EA1.Workbooks.Item[1]; end;
WorkSt := WorkBk.WorkSheets.Get_Item(1)
as _Worksheet; end.
Valor.Text := WorkSt.Cells.Item[1,2]; unit Childwin;
//Valor.Text := 'OUT RANGE!!';
//activado := False; interface
end;
end; uses Windows, Classes, Graphics, Forms, Controls,
StdCtrls;
end.
unit procesos; type
TMDIChild = class(TForm)
interface Memo1: TMemo;
procedure FormClose(Sender: TObject; var
uses Action: TCloseAction);
Windows, Messages, SysUtils, Classes, Graphics, private
Controls, Forms, Dialogs, { Private declarations }
StdCtrls; public
{ Public declarations }
type end;
TNombre_Proceso = class(TForm)
Label1: TLabel; implementation
Nombre: TEdit;
OK: TButton; {$R *.DFM}
procedure OKClick(Sender: TObject);
private procedure TMDIChild.FormClose(Sender: TObject;
{ Private declarations } var Action: TCloseAction);
public begin
{ Public declarations } Action := caFree;
end; end;

var end.
Nombre_Proceso: TNombre_Proceso; nit UniHMI;
implementation interface
uses vpal; uses
Windows, Messages, SysUtils, Classes, Graphics,
{$R *.DFM} Controls, Forms, Dialogs,
Menus, Excel97, ComCtrls, StdCtrls, OleServer,
procedure TNombre_Proceso.OKClick(Sender: ShellApi, ExtCtrls, jpeg,
TObject); syncobjs;
begin

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 80

end;
type
TV_ppal = class(TForm)
PageCPpal: TPageControl; var
Conexion: TTabSheet; V_ppal: TV_ppal;
OK: TButton;
Direccion: TEdit; {Conexion}
Unidad: TEdit; WorkBk : _WorkBook;
Label1: TLabel; WorkSt : _WorkSheet;
Label2: TLabel; IIndex : OleVariant;
Label3: TLabel;
EA1: TExcelApplication; {Datos de Usuario}
GroupBox1: TGroupBox; Direc : Pchar; { Direccin Fsica del Archivo}
PBar: TProgressBar; Unid, nombrepag, nomlabel, formula : String; {
Image2: TImage; Unidad a la cual se va a conectar}
Temporizador: TTimer; cont, Suspencion, Estado : integer; { Estado de la
ListBox: TListBox; conecxion}
ImagenDes: TImage; est, activo, activado: boolean; {estados del reloj para
ImagenCon: TImage; OPC Server}
Abrir: TButton; numpag: Integer; {almacena el numero de pagina}
OpenDialog: TOpenDialog; reg : array [1..100] of registro; {}
procedure Salir1Click(Sender: TObject); nuevo, contreg : integer;
procedure OKClick(Sender: TObject); posx, posy : integer;
procedure CancelClick(Sender: TObject);
procedure TemporizadorTimer(Sender: TObject);
procedure NuevaPgina1Click(Sender: TObject);
procedure CrearNuevaPag(); implementation
procedure Press_Clic(Sender: TObject; Button:
TMouseButton; {$R *.DFM}
Shift: TShiftState; X, Y: Integer);
Procedure CargarNuevaPag(nombre : string); procedure TV_ppal.Salir1Click(Sender: TObject);
Procedure CargarNuevoElemento(X,Y :integer); begin
procedure AbrirClick(Sender: TObject); V_ppal.Close; {Cerrar el sistema}
procedure FormClose(Sender: TObject; var end;
Action: TCloseAction);
private procedure TV_ppal.OKClick(Sender: TObject);
{ Private declarations } var
public buscar : Integer;
{ Public declarations } begin
end; numpag := 1;
Direc := Addr(Direccion.Text[1]); { Cargar el
type nombre de la apliucacin}
registro = record Unid := Unidad.text; { Cargar la unidad a ejecutar}
numpag : integer; {Contiene el numero de pgina}
pagina : string; {Contiene el nombre de la pagina} ShellExecute(V_ppal.Handle,'open',Direc,nil,nil,SW_
nombre : string; {lleva el nombre del item} SHOWMINIMIZED);
contenido : string; {lleva la funcion para { Ejecutar el metodo de conexin}
conexion}
posx, posy : integer; {coordenadas del item} While (activo = false) do

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 81

begin ImagenDes.Visible := True;


{ Metodo para optener los datos del PLC} ImagenCon.Visible := False;
buscar:=FindWindow(nil,'UNITRONICS'); end
if (activo <> true) then else
begin begin
if ((cont mod 10000) = 0) then ImagenDes.Visible := False;
PBar.StepIT; ImagenCon.Visible := True;
cont := cont + 1; end;
end; {Parte del timer para jalar la info de los Labels}
If (buscar<>0) then aux := 1;
begin Listbox.Items.Clear;
activo := true; for I := V_Ppal.ComponentCount-1 downto 15
cont := 0; do
contreg := 0; begin
EA1.Connect; if (V_Ppal.Components[I] is TLabel) then
EA1.Workbooks.Add(xlWBatWorkSheet,0); ListBox.Items.InsertObject(0,
WorkBk := EA1.Workbooks.Item[1]; V_Ppal.Components[I].Name,
WorkSt := WorkBk.WorkSheets.Get_Item(1) as V_Ppal.Components[I] as
_Worksheet; TObject);
end; end;
end; pag := PageCPpal.ActivePageIndex;
{ Si esta desconectado muesta desconectado, pero si for contador := 0 to ListBox.Items.Count - 1 do
lo esta muesta Conectado} begin
end; if (ListBox.Items.Objects[contador] is TLabel)
then
procedure TV_ppal.CancelClick(Sender: TObject); begin
begin Selec := (ListBox.Items.Objects[contador] as
V_ppal.Close; TLabel);
end; Selec.Caption :=
reg[aux].nombre+#13+string(WorkSt.Cells.Item[aux,
pag+1]);
procedure TV_ppal.TemporizadorTimer(Sender: Selec.Alignment :=tacenter;
TObject); aux := aux + 1;
var end;
pag, I, aux, contador : integer; end;
Selec : TLabel; end
else
begin est := true;
if (activo = true) then end
begin else
if (activado = true) then activado := true;
begin end;
WorkSt.Cells.Item[1,1] := end;
'=Unitronics|'+Unid+'!STATUS';
if (est = true) then
begin procedure TV_ppal.NuevaPgina1Click(Sender:
Estado := integer(WorkSt.Cells.Item[1,1]); TObject);
if (Estado = 0) then begin
begin // Crear una pgina nueva

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 82

end; hoja : TTabSheet;

Procedure TV_ppal.CrearNuevaPag(); begin


begin posy := Y;
with PageCPpal do posx := X;
with TTabSheet.Create(Self) do if (nuevo = 1) then
begin begin
PageControl := PageCPpal; nuevo := 0;
Name := 'Proceso_' + contreg := contreg + 1;
IntToStr(Pages[numpag].PageIndex); reg[contreg].nombre := nomlabel;
Caption := nombrepag; Self.Name := 'Label_'+IntToStr(cont);
numpag := numpag + 1; with TLabel.Create(Self) do
OnMouseDown := Press_Clic; begin
end; hoja := TTabSheet(PageCPpal.ActivePage);
PageCPpal.ActivePageIndex:= Parent:= hoja;
(PageCPpal.Pages[numpag - 1].PageIndex) with hoja do
end; begin
reg[contreg].pagina := Caption;
Procedure TV_ppal.CargarNuevaPag(nombre : end;
string); reg[contreg].numpag :=
begin PageCPpal.ActivePageIndex;
with PageCPpal do Left:=posx;
with TTabSheet.Create(Self) do reg[contreg].posx := posx;
begin Top:=posy;
PageControl := PageCPpal; reg[contreg].posy := posy;
Name := 'Proceso_' + Autosize := True;
IntToStr(Pages[numpag].PageIndex); reg[contreg].contenido := formula;
Caption := nombre; end;
OnMouseDown := Press_Clic; ListBox.Items.InsertObject(0,Self.Name,Self as
end; TObject);
PageCPpal.ActivePageIndex:= end;
(PageCPpal.Pages[numpag].PageIndex); end;
numpag := numpag + 1;
end; Procedure TV_ppal.CargarNuevoElemento(X,Y
{ :integer);
Realiza: Captura los datos de la coordenadas del var
mouse en hoja : TTabSheet;
el lugar en que se dio el clic, muestra un
mensage begin
de la localizacion del puntero del muose. contreg := contreg + 1;
Envia: nada. Self.Name := 'Label_'+IntToStr(contreg);
Recibe: Un objeto, el boton precionado, las with TLabel.Create(Self) do
coordenadas X Y y el estado. begin
} hoja := TTabSheet(PageCPpal.ActivePage);
procedure TV_ppal.Press_Clic(Sender: TObject; Parent:= hoja;
Button: TMouseButton; Left:=X;
Shift: TShiftState; X, Y: Integer); Top:=Y;
Autosize := True;
var end;

Diciembre del 2004


IE-0502 Interfaz Humano-Mquina para la familia de PLCs Unitronics. 83

ListBox.Items.InsertObject(0,Self.Name,Self as
TObject); CargarNuevoElemento(reg[temp].posx,reg[temp].pos
end; y);
WorkSt.Cells.Item[temp,reg[temp].numpag +1] :=
procedure TV_ppal.AbrirClick(Sender: TObject); reg[temp].contenido;
var temp := temp +1;
Arch : TextFile; end;
temp, auxi : integer; closefile(Arch);
abrir.Enabled := false;
begin end
if (activado = true) then else
begin ShowMessage('Favor conectarse Primero');
OpenDialog.Execute; end;
AssignFile(Arch,(Opendialog.FileName));
Reset(Arch); procedure TV_ppal.FormClose(Sender: TObject; var
temp := 1; Action: TCloseAction);
while (not(EOF(Arch))) do var
begin cerrar:integer;
Readln(Arch,reg[temp].numpag); begin
Readln(Arch,reg[temp].pagina); cerrar:=FindWindow(nil,'UNITRONICS');
Readln(Arch,reg[temp].nombre); if (cerrar = 0) then
Readln(Arch,reg[temp].Contenido); ShowMessage('No encuentro el servidor
Readln(Arch,reg[temp].posx); Unitronics Ejecutandose')
Readln(Arch,reg[temp].posy); else
Readln(Arch); SendMessage(cerrar,WM_CLOSE,0,0);
if (reg[temp].numpag > auxi) then EA1.Workbooks.Close(0);
begin EA1.Disconnect;
auxi := reg[temp].numpag; end;
CargarNuevaPag(reg[temp].pagina);
end; end. // Fin de programa

Diciembre del 2004

Você também pode gostar