5 capitulo 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_capitulo_3.pdf ·...

37
CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va a describir la herramienta software denominada OPTIMAX. El capítulo comienza con una breve reseña histórica del programa, porqué cúando y cómo fue creado, continúa con la descripción del mismo, englobando en este subcapítulo las características funcionales del OPTIMAX. A continuación se describe la sección de las comunicaciones vía OPC, seguida de las descripciones del analizador léxico y sintáctico. Por último se detalla e ilustra con gráficas el manual de usuario. 3.2.- Historia. Objetivos del OPTIMAX La programación de OPTIMAX se inicia entre 1997 y 1998 en el marco de un proyecto de investigación realizado entre Procisa y la Universidad de Sevilla (más concretamente el grupo de control predictivo). Inicialmente trabajan Eduardo F. Camacho y Carlos Bordóns en la gestión y dirección del proyecto y Daniel Rodríguez y Daniel Limón en la programación del software.

Upload: vokhue

Post on 26-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 32

CAPÍTULO 3

OPTIMAX

3.1.- Introducción

En este capítulo se va a describir la herramienta software denominada

OPTIMAX.

El capítulo comienza con una breve reseña histórica del programa, porqué

cúando y cómo fue creado, continúa con la descripción del mismo, englobando en este

subcapítulo las características funcionales del OPTIMAX. A continuación se describe la

sección de las comunicaciones vía OPC, seguida de las descripciones del analizador

léxico y sintáctico. Por último se detalla e ilustra con gráficas el manual de usuario.

3.2.- Historia. Objetivos del OPTIMAX

La programación de OPTIMAX se inicia entre 1997 y 1998 en el marco de un

proyecto de investigación realizado entre Procisa y la Universidad de Sevilla (más

concretamente el grupo de control predictivo). Inicialmente trabajan Eduardo F.

Camacho y Carlos Bordóns en la gestión y dirección del proyecto y Daniel Rodríguez y

Daniel Limón en la programación del software.

Page 2: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 33

Para esta programación se partió de un programa en C publicado en el libro

Model Predictive Control in the Process Industry de E.F. Camacho y C. Bordons. Dicho

programa es una implementación del algoritmo GPC realizándose la optimización

mediante el algoritmo de Lemke, tal y como se recogía en un articulo de E.F. Camacho

publicado en la revista IEEE Transactions on Automatic Control en 1994. El primer

paso fue incorporar este algoritmo en un programa para Windows NT 4.0. Al ser para

Windows NT, el programa podía ser multienhebrado, de manera que el controlador

corre en un subproceso (con mas prioridad además) aparte del que gestiona la interfaz

por ejemplo.

Tras una primera fase, se incorpora en tareas de programación José Miguel

Cañete, que trabaja principalmente en el aspecto gráfico del programa. Tras la marcha

de este último, el equipo anterior continúa con el desarrollo a lo largo de los dos años

siguientes. En estos dos años se incorpora al programa la estrategia de compensación de

retardos basada en el predictor de Smith desarrollada en la tesis de Julio Normey. En

1999, con un OPTIMAX (todavía no se llamaba de esa manera) muy parecido ya al

actual, Daniel Rodríguez y Daniel Limón se apartan de las tareas de programación

siendo relevados por Amparo Núñez Reyes (que siempre había apoyado en la gestión de

CUBE) y José Ramos Cueli.

En los tres siguientes años, Amparo Núñez R. y Jose Ramos C. llevan a cabo

diversas modificaciones del programa, dónde cabe destacar la introducción de las

perturbaciones medibles del controlador. El programa es testeado y corregido

exhaustivamente, además es probado en entornos industriales como por ejemplo, en

una almazara de aceite de oliva y en una planta solar.

Finalmente en 2003, dentro del marco del proyecto europeo NEOXITE (Next

gEneration Open Control System InterneT trEady) Daniel Rodríguez y Daniel Limón

vuelven a primera línea para colaborar en las modificaciones del programa.

En este proyecto, Amparo Núñez R., implementa la parte de comunicaciones del

OPTIMAX, sustituyendo el interfaz propio del propietario CUBE, por el estándar OPC

(Ole for Process Control). Cuya idea básica radica en normalizar el interfaz entre el

servidor y el cliente OPC, independientemente del fabricante del sistema.

Page 3: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 34

Así el OPTIMAX se convierte en una herramienta flexible y abierta para el

control multivariable de procesos industriales, pudiendo acceder a todos los

componentes que estén conectados en red por medio de un bus de campo o Ethernet,

mediante el servidor OPC.

3.3.- Descripción del programa

3.3.1.- Descripción de la aplicación

La aplicación denominada: OPTIMAX consiste en un paquete software

desarrollado bajo el lenguaje de programación Visual C++ (versión 6.0). El programa,

se basa en una aplicación MDI (Multiple Document Interface), donde se administran

múltiples documentos al mismo tiempo gestionados en ventanas individuales del área de

trabajo de la ventana principal.

En concreto, la aplicación MDI, la constituyen tres plantillas o templates, una

de ellas es la principal y las otras dos son hijas de la anterior. Las tres plantillas están

asociadas al mismo documento: “CSIMGPCWApp” y en cada una de ellas se

implementa el marco o ventana y la vista.

La plantilla principal está formada por las variables de procesos

(“CChildFrame”), y las plantillas hijas están constituidas a su vez por los actuadores

(“CChFramAct”) y el centro de control (“CChFramTabla”). La plantilla de las señales

(variable de procesos y actuadores), representan ventanas gráficas donde se muestran la

evolución temporal de las señales pertinentes, así como los valores de las restricciones y

referencias, estas ventanas tienen la posibilidad de cambiar de escala ‘on-line’, desde el

menú principal. En la plantilla del centro de control, se muestran los valores actuales de

las señales, variables de proceso, actuadores, referencias, restricciones e históricos de

las señales. Desde esta ventana es posible modificar una serie de parámetros sin

necesidad de parar el experimento, por ejemplo, el valor de las restricciones, tanto de

salida como de entrada y su amplitud, también es posible cambiar el valor del esfuerzo

de control (lambda).

La aplicación es multihebra, es decir, contiene varías vías de ejecución

paralela, en concreto dos, una hebra referente a la aplicación en sí y una segunda hebra

Page 4: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 35

que corresponde al proceso del controlador, que se ejecuta cada tiempo de muestreo.

Para realizar una aplicación multihebra es necesario tener en cuenta unas

consideraciones adicionales a la hora de la implementación del programa:

• Cada hebra supone una carga adicional al sistema,

• El diseño de aplicaciones multihebra es complejo.

• La depuración de las aplicaciones es difícil.

• Las hebras han de coordinarse de algún modo.

Como se ha mencionado anteriormente, es necesario asignar prioridades a las

diferentes hebras del programa. En nuestra aplicación, la hebra con mayor prioridad

corresponde al proceso donde se ha implementado el controlador GPC

(“mainsimulador”).

3.3.2.- Controlador El controlador desarrollado en el OPTIMAX es un Control Predictivo

Generalizado (GPC) más un compensador de retardo denominado Predictor de Smith

con un filtro paso bajo.

Así el esquema que se utiliza en OPTIMAX es:

Figura 3.1 – Diagrama de bloques de OPTIMAX

Para ver una descripción de las distintas estrategias de control utilizadas por el

OPTIMAX, GPC, predictor de Smith y filtro paso bajo, consultar el Apéndice C.

Page 5: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 36

3.3.3.- Comunicación vía OPC.

El paquete software, denominado OPTIMAX, se comunica con el exterior

mediante el interfaz estándar OPC (Ole for Process Control). Se han implementado las

clases pertinentes, para que la aplicación que nos ocupa, desempeñe las veces de un

cliente OPC. El SCADA CUBE, posee un servidor OPC, el cual ofrece a los clientes

las variables de la base de dato del sistema. Nuestro controlador actúa como cliente

OPC, pudiendo solicitar las variables de proceso convenientes y escribir el valor de las

variables de actuación cuando el controlador así lo determine.

Para la implementación del cliente OPC en el OPTIMAX, se han utilizado

librerías comerciales de Softing, denominadas: OPC Toolbox C++ versión 3.1.

La herramienta OPC Toolbox C++, proporciona determinadas clases en C++,

que ayudan al programador a generar aplicaciones de servidores y clientes OPC,

concentrándose solo en el proceso de la comunicación de los datos, sin necesidad de

profundizar en detalles de la programación a bajo nivel.

Las herramientas C++ de OPC, tiene una estructura modular y pueden dividirse

como sigue:

Module Description SOCmn General basic classes SOSrv OPC Server basic classes SODaS OPC Data Access Server classes SOAeS OPC Alarms and Event Server classes SOAsS Classes for the implementation of an OPC Data Access and an OPC Alarms

and Event Server SOClt OPC Client basic classes SODaC OPC Data Access Client classes SOAeC OPC Alarms and Event Client classes

El paquete software OPC Data Access Client Development Toolkit desarrollado

por Softing, puede usarse para acceder a cualquier servidor OPC Data Access de la

versión 1.0A, 2.05 y 3.0. Además no requiere que la aplicación cliente tenga una

estructura específica, las librerías se pueden usar en aplicaciones de Window GUI,

aplicaciones de consola y en otros tipos de aplicaciones Win32. Las librerías de Softing,

Page 6: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 37

permiten que una aplicación cliente pueda acceder simultáneamente a diferentes

servidores OPC. Cada comunicación con un servidor se maneja con una hebra diferente.

Figura 3.2 – Comunicación con servidores

Un OPC DA Server permite el acceso de múltiples clientes a la vez, a los

valores del proceso del sistema. Los clientes pueden leer y escribir estos valores

síncrona o asíncronamente. Además los clientes también pueden recibir una notificación

cuando la variable del proceso cambia. EL OPC Data Access Client Development

Toolkit, soporta la lectura asíncrona, síncrona y cíclica, así como la escritura asíncrona

y síncrona de los datos. Con un acceso síncrono y asíncrono la conexión con el

servidor es bidireccional (vía IAdviseSink o IOPCDataCallback Interface sobre el

cliente) . Durante la lectura cíclica la conexión que se establece es unidireccional.

Datos del cliente OPC

El cliente OPTIMAX, solo se va a conectar a un servidor (servidor de CUBE:

"OPC.Cube.1"). Para acceder a las variables, se ha creado un grupo, y dentro de este

grupo se han añadido los items. Como es lógico, los items se deben cambiar según el

experimento que se desee en cada momento, la cantidad de items, los tipos y los

nombres, serán diferentes en cada ensayo que se realice.

A continuación se describen, brevemente, los pasos a seguir para la creación de

un cliente OPC, mediante las librerías de Softing:

Page 7: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 38

1. Definición:

SOCmnPointer<SODaCEntry> pEntry;

SOCmnPointer<SODaCServer> m_pServer;

SOCmnPointer<SODaCGroup> m_pGroup;

SOCmnPointer<CItem> m_pItem;

2. Inicialización del paquete de herramientas Softing

Function_OPC * opc1=NULL;

pEntry = ::getSODaCEntry();

opc1->Conection(pEntry);

3. Añadir los datos del Servidor

OPC_Configurar_Objects();

//CUBE OPC SERVER

CLSID CLSID_OPCServer =

{0x3ebb2fc0,0x443b,0x11d3,{0xbf,0x60,0x00,0x4f,0x49,0x04,0x70,0x1e}};

IN LPCTSTR name_server=_T("OPC.Cube.1");

Page 8: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 39

IN LPCTSTR node_server=_T("SOLAR");

m_pServer =

pEntry->addServer(_T("name_server"), node_server,CLSID_OPCServer);

4. Añadir Grupos

IN LPCTSTR name_group=_T("MPC");

IN OPTIONAL DWORD rate=1000;

m_pGroup = (CGroup *)m_pServer->addGroup(name_group,rate);

5. Añadir Items a los grupos

OPC_Add_Item();

6. Conexión con los servidores

pEntry->start();

Page 9: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 40

7. Lee_todas_variables

HRESULT b= m_pGroup->syncRead(OPC_DS_DEVICE);

8. Lectura y escritura de Items

res= m_pGroup->syncRead(OPC_DS_DEVICE);

while (value.vt==0) { leido=cube_out[i]->getReadValue(value);}

cube_out[i]->get_data_variant(value,&valaux2);

ureal[i][Nb]=(double)valaux2;

cube_out[cont]->setWriteValue(SOCmnVariant(ureal_act));

cube_out[cont]->write();

Para más información consultar la ayuda de Softing, adjuntada junto a la

memoria del proyecto, en formato electrónico.

Más que cómo crear un cliente OPC, con la ayuda de las librerías de Softing, lo

que nos interesa saber es cómo añadir, eliminar o modificar un item dentro del software

OPTIMAX. Para ello es necesario lo siguiente:

1. Definición

Dentro de la clase SIMGPCVWDoc.h, se deben declarar, la conexión de

Softing, los servidores, los grupos y los Items, que se van a utilizar en la

aplicación:

Page 10: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 41

SOCmnPointer<CItem> m_pItem;

2. Añadir

En la clase SIMGPCVWDoc.cpp, en concreto el procedimiento

OPC_Add_Item, se añaden todos los items:

cube_pv= (CItem *)m_pGroup->addItem(_T(strItemName));

3. Lectura

res= m_pGroup->syncRead(OPC_DS_DEVICE);

while (value.vt==0) { leido=cube_out[i]->getReadValue(value);}

cube_out[i]->get_data_variant(value,&valaux2);

ureal[i][Nb]=(double)valaux2;

4. Escritura

cube_out_mpc[cont]->setWriteValue(SOCmnVariant((float)ureal_act));

res=m_pGroup->syncWrite(&itemList);

Page 11: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 42

Datos del servidor OPC

CLSID CLSID_OPCServer =

{0x3ebb2fc0,0x443b,0x11d3,{0xbf,0x60,0x00,0x4f,0x49,0x04,0x70,0x1e}};

IN LPCTSTR name_server=_T("OPC.Cube.1");

3.3.4.- Analizador léxico y analizador sintáctico A grandes rasgos un compilador es un programa, en el que pueden distinguirse

dos subprogramas o fases principales: una fase de análisis, en la cuál se lee el programa

fuente y se estudia la estructura y el significado del mismo; y otra fase de síntesis, en la

que se genera el programa objeto. Conceptualmente un compilador opera en fases. Cada

una de las cuales transforma el programa fuente de una representación en otra. La fase

de análisis se compone a su vez de las siguientes etapas:

• Análisis léxico • Análisis sintáctico • Análisis Semántico

El Analizador Léxico y el Analizador Sintáctico interactúan con una estructura

de datos llamada Tabla de Símbolos. El analizador léxico es el encargado de separar los

símbolos en el archivo de entrada. El analizador sintáctico es el encargado de verificar

que el orden en el cuál están colocados estos símbolos sea el correcto según la

definición del lenguaje definido.

Para introducir los datos de la planta a controlar, los parámetros de sintonización

del control y algunos datos necesarios para la comunicación del OPTIMAX con el

SCADA, se ha implementado un analizador léxico y un analizador sintáctico.

Page 12: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 43

Simplificando, los datos anteriormente mencionados, se describirán en un

fichero con extensión GPC, respetando el léxico y la semántica desarrollada.

A continuación se describirá el analizador léxico y el sintáctico.

ANALIZADOR LÉXICO

El analizador léxico, también conocido como scanner, lee los caracteres uno a

uno desde la entrada y va formando grupos de caracteres con alguna relación entre sí

(tokens), que constituirán la entrada para la siguiente etapa del compilador. Cada token

representa una secuencia de caracteres que son tratados como una única entidad. Por

ejemplo, en C un token es la palabra reservada while.

Las principales funciones que realiza son:

• Identificar los símbolos.

• Eliminar los blancos, caracteres de fin de línea, etc...

• Eliminar los comentarios que acompañan al fuente.

• Crear unos símbolos intermedios llamados tokens.

• Avisar de los errores que detecte.

La descripción del analizador léxico se describe en un fichero con extensión l,

y se utiliza un traductor denominado FLEX, para la generación del mismo.

Ejemplo: Con la siguiente sentencia: LEX Gpclex.l -8 –h –l , se genera los dos

ficheros lexyy.c y lexxy.h, que representan el analizador léxico.

FLEXGpclex.llexyy.c

lexxy.h

Figura 3.3 – Ejemplo de funcionamiento del traductor FLEX

DESCRIPCIÓN DEL ANALIZADOR LÉXICO

Page 13: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 44

Se introducirá los conceptos básicos del lenguaje del modelo, destacando los

aspectos léxicos más relevantes y la estructura de dicho modelo.

• COMENTARIOS

La especificación de comentarios en un modelo se realiza mediante los

caracteres: --

Cualquier línea que comience con --, se considera comentario.

• CADENA DE CARACTERES

Las cadenas de caracteres se representan entre comillas simples, y están

formadas por cualquier carácter, excepto fin de línea: /n y las comillas simples: ‘.

Ej: ‘a’, ’ ‘, ‘Amparo’, etc.

• NÚMERO ENTERO

Los números enteros son números sin parte fraccionaria que pueden ser

positivos, negativos o cero. El signo antepuesto al número es opcional.

Ej: 0, 9, -567, +44, +7, 7

• NÚMERO ENTERO CIENTÍFICO

Consiste en la representación científica de un número entero, que se compone de

una base (número entero), seguido de un exponente (número entero), donde el número

expresado sería: base * 10 exponente. Ambas partes quedan separadas por el símbolo E.

Ejemplos de esta notación son los siguientes: +99E-557, -777E54, 87E+2

• NÚMERO REAL

Los números reales se pueden representar de tres modos distintos.

Page 14: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 45

El primero consiste en dos secuencias de dígitos separados por un punto,

representando la parte entera y la parte fraccionaria respectivamente. Ej: +45.777 –4.5

88.77

El segundo consiste en que la secuencia que corresponde a la parte entera esté

vacía. Ej: +.33 .907 .77

Y por último, se puede representar un número real, prescindiendo de la parte

fraccionaria. Ej: +5. 5. –5.

• NÚMERO REAL CIENTÍFICO

Consiste en la representación científica de un número real, que se compone de

una base (número entero o número real), seguido de un exponente (número entero),

donde el número expresado sería: base * 10 exponente. Ambas partes quedan separadas

por el símbolo E.

Ejemplos de esta notación son los siguientes: +99E-557, –777E54, 87E+2,

9.77E-4, .78E5

• IDENTIFICADOR

A la hora de escribir un modelo, es necesario dar nombre a ciertos elementos que

en él se definen. Estos nombres, que son creados por el programador se denominan

identificadores. Un identificador comienza siempre por una letra seguida de una

secuencia de dígitos y letras.

Ejemplos: aux1, TT5_PVT, LT1_PVT, RESISTENCIA.

NOTA: El lenguaje es sensible a mayúsculas, es decir, las letras mayúsculas son

distintas a las correspondientes en letras minúsculas.

ANALIZADOR SINTÁCTICO

El analizador sintáctico, también llamado parser, recibe como entrada los tokens

que le pasa el Analizador Léxico (el analizador sintáctico no maneja directamente

caracteres) y comprueba si esos tokens van llegando en el orden correcto (orden

Page 15: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 46

permitido por el lenguaje). La salida "teórica" de la fase de análisis sintáctico sería un

árbol sintáctico.

Para generar el analizador sintáctico se utiliza el traductor denominado BISON,

y las especificaciones requeridas para el mismo se describen en un fichero con

extensión y.

Ejemplo: Con la siguiente sentencia: BISON Gpcsin.y –d –l , se genera los dos

ficheros Gpcsin_t.c y Gpcsin_t.h.

BISONGpcsin.yGpcsin_t.c

Gpcsin_t.h

Figura 3.4 – Ejemplo de funcionamiento del traductor VISÓN

DESCRIPCIÓN DEL ANALIZADOR SINTÁCTICO

Para la descripción del modelo se utiliza la siguiente estructura:

1. Todos los modelos comienzan con la palabra: LMFD (Left Matriz Fraction

Description).

2. Se indica el tiempo de muestreo, en milisegundos, de la siguiente forma:

TM = número entero;

3. Descripción de la dimensión de los vectores de entrada y salida, con el siguiente

orden:

INPUT = número entero; Indica el número de entradas del modelo. OUTPUT = número entero; Indica el número de salidas del modelo. DISTURBANCE = número entero; Indica el número de perturbaciones. NA = número entero; Indica el máximo grado del polinomio A. NB = número entero; Indica el máximo grado del polinomio B. NAD = número entero; Indica el máximo grado del polinomio A de

las perturbaciones. NB = número entero; Indica el máximo grado del polinomio B de

las perturbaciones.

Page 16: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 47

4. Valor de LAMBDA.

LAMBDA = [lista_números_reales_o_números_enteros];

5. Definición de matriz A.

A = [ lista_números_reales_o_números_enteros; lista_números_reales_o_números_enteros; M ; ];

6. Definición de matriz B.

B = [ lista_números_reales_o_números_enteros; lista_números_reales_o_números_enteros; M ; ];

7. Vector de retrasos. Indica los retrasos de la matriz B.

D = [número_entero];

8. Definición de matriz A de las perturbaciones.

AD = [ lista_números_reales_o_números_enteros; lista_números_reales_o_números_enteros; M ; ];

9. Definición de matriz B de las perturbaciones.

BD = [ lista_números_reales_o_números_enteros; lista_números_reales_o_números_enteros; M ; ];

10. Vector de retrasos de las perturbaciones. Indica los retrasos de la matriz BD.

DD = [número_entero];

11. Horizonte de predicción.

NY = [lista_de_números_enteros];

12. Horizonte de control.

NU = [lista_de_números_enteros];

Page 17: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 48

13. Vector de referencias.

REF = [lista_de_números_enteros_o_reales];

14. Vector de restricciones: YMAX, YMIN, uMAX, uMIN, UMAX, UMIN.

YMAX = [lista_de_números_enteros_o_reales]; Restr. de entrada YMIN = [lista_de_números_enteros_o_reales]; Restr. de entrada uMAX = [lista_de_números_enteros_o_reales]; Restr. de salida en incremento uMIN = [lista_de_números_enteros_o_reales]; Restr. de salida en incremento UMAX = [lista_de_números_enteros_o_reales]; Restr. de salida en amplitud UMIN = [lista_de_números_enteros_o_reales]; Restr. de salida en amplitud

15. Configuración de la planta: Nombre de la zona y el nombre de la unidad.

CONFIGURACION_PLANTA

Cadena_de_caracteres Indica el nombre de la zona, sobre la que trabajaremos.

Cadena_de_caracteres Indica el nombre de la unidad, sobre la que trabajaremos.

16. Configuración de Variables de Procesos (PVS)

CONFIGURACIÓN_PVS

Lista_de_cadena_de_caracteres Indican el nombre de las variables de proceso.

17. Configuración de Variables de Salida (OUTS)

Lista_de_cadena_de_caracteres Indican el nombre de las variables de salida.

18. Configuración de la perturbaciones

CONFIGURACION_DIST

Lista_de_cadena_de_caracteres → → Indican el nombre de las variables perturbadoras.

Page 18: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 49

¿CÓMO REALIZAR MODIFICACIONES EN EL ANALIZADOR LÉXICO?

Cada vez que se desee modificar el analizador léxico es necesario seguir los

pasos que se describen a continuación.

Una vez que se han realizado las modificaciones oportunas en el analizador

léxico y se ha ejecutado la siguiente sentencia: LEX Gpclex -8 -h -l se generan dos

ficheros, como anteriormente se ha mencionado, uno con extensión ‘h’, y otro con

extensión ‘c’. Es necesario realizar algunas modificaciones en dichos archivos

generados.

1) Al principio del archivo de cabecera generadocon extensión ‘h’, se debe

insertar el siguiente código:

#define YY_<nombre escáner>_CHAR unsigned char /*permite caracteres de 8 bits*/ #ifndef YY_USE_CLASS #define YY_USE_CLASS #endif

2) El archivo generado con extensión ‘c’, se debe renombrar con extensión

‘cpp’Al principio del todo.

Al principio es necesario incluir lo siguiente:

#define YY_CHAR unsigned char #ifndef YY_USE_CLASS #define YY_USE_CLASS #endif

Y borrar las líneas de códigos:

#ifndef _MSDOS #include <osfcn.h> #endif

Page 19: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 50

¿CÓMO REALIZAR MODIFICACIONES EN EL ANALIZADOR

SINTÁCTICO?

Cada vez que se desee modificar el analizador sintáctico es necesario seguir los

pasos que se describen a continuación.

Una vez que se han realizado las modificaciones oportunas en el analizador

léxico y se ha ejecutado la siguiente sentencia: BISON Gpcsin.y -d -l se generan dos

ficheros, como anteriormente se ha mencionado, uno con extensión ‘h’, y otro con

extensión ‘c’. Es necesario realizar algunas modificaciones en dichos archivos

generados.

1) Al principio del archivo de cabecera con extensión ‘h’, se debe incluir lo

siguiente:

#ifndef YY_USE_CLASS #define YY_USE_CLASS #endif

2) Es necesario renombrar el archivo con extensión ‘c’ a otro con extensión

‘cpp’.

3) Es necesario buscar en el archivo ‘cpp’ el siguiente código y borrarlo:

/*Added lex prototype */ #ifndef YY_ParserGpc_PURE M #else M #endif

4) Es necesario buscar en el archivo ‘cpp’ la definición de la matriz YY+name

y quitar la primera línea con # por encima y la primera línea por debajo.

Concretamente: #if YY_ParseGPC_DEBUG !=0 y #endif

Después de hacer todos los cambios, los ficheros hay que copiarlos al directorio del proyecto.

Page 20: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 51

EJEMPLO DE UN FICHERO *.GPC

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

-- Modelo de archivo para introducir los datos --

-- OPTIMAX --

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

-- Todas las líneas que no comiencen con los dos guiones serán parte de un ejemplo -- para saber la forma que tienen los datos. Todos los archivos hay que iniciarlos con la -- secuencia LMFD debido a la programación que verifica esto para saber que el archivo -- está echo para el OPTIMAX

LMFD

-- Se introduce el tiempo de muestreo en mseg. Este tiempo de muestreo es con el que -- trabajara el OPTIMAX y debe de ser con el que hemos obtenido la matriz de -- funciones de transferencia de nuestra planta

TM= 4000; --mseg

-- Introducimos el numero de entradas y salidas que tiene nuestra planta

INPUT= 3; --entradas en sistema controlador

OUTPUT=1;

-- Número de perturbaciones que vamos a tratar. Poner a 1 si no hay perturbaciones

DISTURBANCE=1;

-- Para introducir la matriz de funciones de transferencia de nuestro sistema se realiza -- lo que se denomina Matrix Fraction Description de forma que tenemos que una -- matriz G será descompuesta en una matriz A y en otra matriz B resultando que -- G(z^-1)=[A(z^-1)^-1]*B(z^-1), de orden (n*m), resultando A una matriz diagonal, de -- orden (n*n), donde cada polinomio de la diagonal sale de obtener el mínimo común -- múltiplo de los denominadores de cada fila de la matriz G. Así B, de orden (n*m), se -- obtendrá realizando las operaciones pertinentes. NA será el mayor orden de los -- polinomios que forman A, así si tenemos por ejemplo 1-0.987(z^-1)+1.114(z^-2) NA -- será igual a 2. Los polinomios deben tener todos el mismo orden de forma que si -- alguno de ellos es de orden menor se le añadirán ceros por detrás para tener todos los -- polinomios iguales

NA=3;

Page 21: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 52

-- NB será lo mismo pero para los polinomios que conforman la matriz B.

NB=13;

-- NAD y NBD son los correspondientes a las perturbaciones. Poner a 1 si no hay -- perturbaciones

NAD=1;

NBD=1;

-- Factores de corrección lambda, deben de ser iguales al numero de INPUT

LAMBDA= [100 1 10];

-- Matriz A de la Matrix Fraction Description donde los polinomios se escriben en -- orden descendente de z^- empezando por z^-0. Los polinomios deben tener todos el -- mismo orden de forma que si alguno de ellos es de orden menor se le añadirán ceros -- por detrás para tener todos los polinomios iguales.

A =[1.0 -2.2586 1.6731 -0.4046];

-- Matriz B de la Matrix Fraction Description donde los polinomios se escriben en orden -- descendente de z^- empezando por z^-0. Los polinomios deben tener todos el mismo -- número de términos.

B =[0 0 0 0 0 0 0 0 0 0 0.5438 -0.7830 0.2688 0 0 0 0 0 0.249 -0.0345

0.01154 0 0 0 0 0 0 0 0 0 0 0.2176 -0.3686 0.1559 0 0 0 0 0];

-- Mínimo retraso de cada fila de la matriz B. Coincide con el numero mínimo de ceros -- que tenemos al empezar los polinomios de la matriz B.

D= [5];

-- Matrices A, B y D correspondientes a las perturbaciones. Poner de la siguiente forma -- si no hay perturbaciones.

--DISTURBANCE

AD =[1.0 0.0];

BD =[0 0];

DD= [0];

-- NY se aconseja que sea el horizonte de predicción menos el horizonte de control y -- NU el retraso más 1

NY= [30];

Page 22: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 53

NU= [11 6 6];

-- Referencia a conseguir

REF= [700];

-- Rango en el que se va a mover las variables que estamos controlando

YMAX= [50000];

YMIN= [-50000];

-- Restricciones en velocidad de cambio (slew-rate), es el salto máximo que puede pegar -- el actuador que estamos controlando.

uMAX=[1 50 25];

uMIN=[-1 -50 -25];

-- Restricciones en amplitud, valores máximos y mínimos permitidos para la salida del -- controlador

UMAX= [36 4500 500];

UMIN= [30 2000 50];

-- Metemos la configuración de la planta de forma que primero aparece el nombre de la -- zona que estamos tratando y después el nombre de la unidad (PMC) donde se -- encuentran nuestras variables a tratar.

CONFIGURACION_PLANTA

ALMAZARA

EXTRACCION

-- Introducimos el nombre de las variables de entrada de nuestro control que serán las -- salidas en nuestra planta real. Son las variables que queremos controlar.

CONFIGURACION_PVS

FTL1155_PVC2

-- Introducimos el nombre de las variables de entrada a la planta que serán las salidas de -- nuestro controlador. |C| -outs- |P| - pvs –

CONFIGURACION_OUTS

TICL1111_CSSP

Page 23: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 54

FICL1138_CSSP

FTL1139_CORMAN

-- Introducimos el nombre de las perturbaciones. Si no existen perturbaciones, se mete -- una cualquiera

CONFIGURACION_DIST

RT13003_PV

3.4.- Manual de usuario

Este manual va a utilizar un ejemplo monovariable, pero todo lo que se explica

es extrapolable al caso multivariable.

Para arrancar el programa hay que ejecutar el archivo Spgpc.exe, el cual se

puede encontrar con el siguiente icono:

Spgpc.exe Figura 3.5 – Icono del OPTIMAX

Una vez pulsado sobre el icono sale la pantalla inicial del programa donde lo

primero que habrá que realizar es elegir el archivo con extensión “gpc”.

Figura 3.6 – Pantalla inicial del OPTIMAX

Page 24: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 55

Como cualquier programa, para elegir el archivo a ejecutar, abriremos el

comando “File” y elegiremos la opción “Open” o daremos con el botón izquierdo del

ratón sobre la carpeta amarilla, debajo del comando “File”.

Figura 3.7 – Formas de abrir un archivo *.GPC

Se buscará la carpeta donde se ha creado el archivo “gpc” y seleccionaremos el

que se vaya a utilizar.

Figura 3.8 – Elección del archivo *.GPC

Una vez abierto el archivo deseado, lo siguiente que realiza OPTIMAX es la

conexión con el servidor de CUBE. Cuando esto ocurra nos avisará con la siguiente

pantalla:

Figura 3.9 – Pantalla que indica que se ha realizado la conexión con CUBE

Page 25: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 56

Debemos de dar a aceptar para continuar, y nos saldrá una nueva pantalla

avisando de que el OPTIMAX se ha activado:

Figura 3.10 – Pantalla que indica que se ha activado OPTIMAX

Una vez que se escuche un pitido fino todo estará listo para trabajar con el

OPTIMAX. La pantalla que se tendría en este momento en pantalla tendría la siguiente

forma:

Figura 3.11 – Pantalla tras la activación

Una vez llegado a este punto, se describirán las variables que deben estar en la

base de datos de la planta a controlar para que el OPTIMAX funcione correctamente:

Page 26: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 57

- SPTAG00, SPTAG01, SPTAG02, ...

Variables reales. Habrá tantas variables SPTAG0X, como set-points se

implanten en el control. Por ejemplo, si se tienen 3 set-points se necesitará SPATG00,

SPTAG01 y SPTAG02 correspondiendo, respectivamente, cada variable a los set-points

definidos en el archivo “gpc”.

Para cambiar el set-point, se manipulará directamente cada variable, ya que en el

OPTIMAX sólo se visualiza el set-point que se desea y no se puede manipular.

Figura 3.12 – Pantalla que visualiza el set-point

- OUT_MPC00, OUT_MPC01, OUT_MPC02, …

Variables reales. En estas variables es donde escribirá el OPTIMAX las acciones

de control, por lo tanto habrá que copiarlas a las variables manipulables. Los valores

que toman quedan reflejados en la siguiente pantalla:

Figura 3.13 – Pantalla que visualiza las acciones de control

- PVTAG00, PVTAG01, PVTAG02, ...

Variables reales. Son las variables que utiliza OPTIMAX para guardar las

variables de proceso que se están controlando. Los valores que toman quedan reflejados

en el recuadro “PV”.

Page 27: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 58

Figura 3.14 – Pantalla que visualiza el valor de las variables de proceso

- PREDICTOR_SMITH

Variable lógica. Se activa desde Cube. La activa el usuario pero hacerlo sólo

cuando hay retardo la activa el usuario

- NF_FILTRO_MPC

Variable real. Orden del filtro paso bajo. En la fórmula C.13 corresponde a “m”.

Se modifica en Cube. Ponerlo normalmente a 1 y aumentarlo sólo en caso que el control

no se efectivo. El orden del filtro será el mismo para todas las salidas.

- AF_FILTRO_MPC00, AF_FILTRO_MPC01, AF_FILTRO_MPC02, ... Variable real. Polo del filtro para la salida 0...n. En la fórmula C.13 corresponde a “γ”. Se modifica en Cube. En este caso el polo del filtro puede ser distinto para cada una de las salidas. - CTE_FILTRO_MPC00, CTE_FILTRO_MPC01, CTE_FILTRO_MPC02, ...

Variable real. Factor del cero del filtro para la salida 0...n. En la fórmula C.13

corresponde a “β” . En este caso también la constante del filtro puede ser distinto para

cada una de las salidas.

- OPTIMAX AUTOMATIC

Variable lógica. Variable creada para activar a través de una secuencia de Cube

cuando se quiere que el control se esté realizando. Así por ejemplo habrá que crear un

secuencia con contenga una sintaxis parecida a:

IF (OPTIMAX_AUTOMATIC) THEN

VM110001=OUT_MPC00

ENDIF

Page 28: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 59

Una vez descritas las variables, se hará lo propio con los dos recuadros centrales

de los cuáles no se ha hablado aún.

En el recuadro “OUT Constraints” se tienen los valores máximos y mínimos que

pueden tomar cada una de las variables de salida que se tienen en el recuadro “Out”.

Representan las restricciones a las variables manipulables.

Figura 3.15 – Pantalla que visualiza el valor de las restricciones en OUTs

El último recuadro que se tiene, “PV Constraints”, representa las restricciones a

las variables de proceso que se estan controlando.

Figura 3.16 – Pantalla que visualiza el valor de las restricciones en PVs

Los dos tipos de restricciones anteriores se pueden modificar, con el OPTIMAX

en funcionamiento, pulsando sobre el botón “Constraints”

Figura 3.17 – Botón para modificar las restricciones

Una vez pulsado saltará la siguiente pantalla:

Page 29: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 60

Figura 3.18 – Pantalla para modificar las restricciones

Lo primero que se debe de hacer para cambiar alguna restricción es elegir la

variable deseada, ya sea de salida, “Out”, o de entrada, “PV”. Así, si desea cambiar, por

ejemplo las restricciones de una de las variables de salida, habrá que pulsar sobre la

flecha en la parte de “Out” y elegir la variable de la lista que se despliega.

Figura 3.19 – Forma de elegir la variable OUT a cambiar

Esto hará que se muestren los valores asociados a la variable elegida.

Figura 3.20 – Pantalla que muestra las restricciones en OUT

Page 30: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 61

Una vez mostrado los valores actuales, se pueden escribir directamente los

nuevos valores en los cuadros correspondientes. Para el caso de las variables de salida

se puede cambiar la máxima y mínima velocidad de cambio.

De forma análogo se haría para las restricciones de las variables de proceso.

Figura 3.21 – Pantalla que muestra las restricciones en PV

Una vez escritos todos los nuevos valores se pulsará el botón “OK” y entonces

se tendrá una nueva pantalla de confirmación.

Figura 3.22 – Pantalla de confirmación para las modificaciones realizadas en las restricciones

En esta pantalla se confirmarán o se cancelarán los cambios introducidos en la

pantalla anterior a esta.

Page 31: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 62

También podemos pulsar sobre el botón con el nombre “Lambda”

Figura 3.23 – Botón para modificar Lambda

Una vez pulsado, se puede ver en un nuevo recuadro el valor λ que se tiene

actualmente.

Figura 3.24 – Pantalla que muestra el valor de Lambda

Para cambiar este valor habrá que escribir el nuevo valor en el recuadro “New

value” .

Figura 3.25 – Lugar donde introducir el nuevo valor de Lambda

Una vez escrito hay que pulsar el botón “Apply”.

Figura 3.26 – Botón para aplicar el nuevo valor de Lambda

Si no se pulsa este botón antes de salir, el cambio no se hará efectivo. Una vez

pulsado “Apply” cerramos el recuadro bien confirmando los cambios con el botón “OK”

o cancelando con el botón “Cancel”.

Page 32: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 63

A las posibilidades que nos dan los dos botones anteriores, “Constraints” y

“Lambda”, podemos acceder también a través del comando, que se encuentra en la barra

superior, “Parameters”.

Figura 3.27 – Comandos para acceder a modificaciones de restricciones y lambda

El tercer botón que aparece es “Historian”. Este botón activa el siguiente

recuadro:

Figura 3.28 – Pantalla para la consulta de históricos

Como el título del recuadro indica, aquí se puede ver el histórico de algunas de

las variables que se están tratando, ya sea de salida, de entrada o un set-point. Para hacer

la consulta, sólo se tiene que pulsar, con el ratón, sobre la variable deseada y pulsar el

botón seleccionar.

Figura 3.29 – Forma de elegir los históricos a consultar

Una vez pulsado aparecerá una lista con los últimos 10 valores tomados por esa

variable en los últimos 10 tiempos de muestreos pasados. El tiempo de muestreo es el

fijado en el archivo “gpc”.

Page 33: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 64

En la parte inferior de la pantalla, encima de la barra de tares, hay dos ventanas

minimizadas. Estas dos ventanas son dos pantallas gráficas donde podemos seguir la

evolución de nuestro control.

Figura 3.30 – Pantallas gráficas minimizadas

Si se restaura la pantalla “Outs” se podrá visualizar la evolución de las variables

manipulables, además de dos líneas, como en la gráfica anterior, que representan el

valor superior e inferior de la restricciones.

Figura 3.31 – Forma de la pantalla gráfica de OUTs restaurada

Si se restaura la pantalla “PVs” se podrá visualizar la evolución de las variables

de proceso, de los set-points, además de dos líneas que representan el valor superior e

inferior de la restricciones.

Figura 3.32 – Forma de la pantalla gráfica de PVs restaurada

Page 34: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 65

Si los límites de las pantallas gráficas no son adecuados, ya a que al arrancar el

OPTIMAX tiene unos valores predefinidos, con la pantalla gráfica que queramos

cambiar visible, restaurada, pulsamos sobre el comando “Scale” situado en la barra

superior.

Figura 3.33 – Comando para acceder a cambiar los límites de las pantallas gráficas

En la pantalla que se activa podremos poner los nuevos límites.

Figura 3.34 – Pantalla para cambiar los límites de las pantallas gráficas

Otro de los comandos que se tienen es “Edit” donde se podrá activar o

desactivar la barra de herramientas, “Tool bar”, y la barra de tareas del OPTIMAX,

“Task bar”.

Figura 3.35 – Comando Edit

En el comando “Windows” podemos organizar las ventanas que tenemos en el

OPTIMAX, la principal y las dos ventanas gráficas.

Page 35: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 66

Figura 3.36 – Comando Window

Por último, el comando “Help” muestra información sobre la versión del

OPTIMAX con la que se está trabajando.

Figura 3.37 – Comando y pantalla Help

También se puede acceder a esta información pulsando sobre el interrogante

amarillo que aparece en la barra de herramientas.

Figura 3.38 – Icono directo a Help

Para cerrar el OPTIMAX se pulsará sobre la opción “Exit” del comando “File”.

Page 36: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 67

Figura 3.39 – Cómo cerrar OPTIMAX

Una vez pulsada se cerrará la pantalla con la que se ha trabajado, y pasado un

poco de tiempo debe de aparecer, una primera ventana que te avisa que estabas

conectado.

Figura 3.40 – Pantalla que avisa que se está conectado

Y una vez que se pulsa el botón “Aceptar”, se activa una nueva ventana para

desconectar definitivamente.

Figura 3.41 – Pantalla que avisa que se está desconectado

Page 37: 5 CAPITULO 3 - bibing.us.esbibing.us.es/proyectos/abreproy/3726/fichero/5_CAPITULO_3.pdf · CAPÍTULO 3. OPTIMAX 32 CAPÍTULO 3 OPTIMAX 3.1.- Introducción En este capítulo se va

CAPÍTULO 3. OPTIMAX 68

• ERRORES QUE PUEDEN SURGIR

A continuación mostraremos las pantallas que saltan para avisar de que existe

algún error.

Figura 3.42 – Pantalla que avisa que no se ha establecido la conexión

Esta pantalla es debido a que no se ha podido establecer la comunicación OPC,

bien debido a que no hay servidor, bien porque no se ha especificado correctamente el

nombre del ordenador al que se desea conectar o bien debido a que hay algún problema

en la comunicación, ya sea por problema de red o cualquier otra causa.

Se puede solucionar ejecutando manualmente el archivo CubeOPCSvr.exe que

se encuentra ubicado en C:\ICUBESYS\BIN .

Una vez establecida la conexión, el siguiente error que puede aparecer es:

Figura 3.43 – Pantalla que avisa que no se han añadido los items

Este error es debido a que no se pueden añadir los items en la base de datos de

nuestro planta. Esto puede ser debido a que la base de datos está abierta o bien porque

las variables anteriores que hemos descrito, SPTAG, PVTAG, etc, no han sido añadidas

a la base de datos.

Después de tener estos errores, normalmente, hay que abrir el Administrador de

tareas de Windows y terminar el proceso Spgpc.exe, ya que se queda ocupando casi

todo el uso de la CPU y el ordenador se vuelve muy lento.