Como se mencionó en el Capítulo III el control local del sistema de bombeo lo lleva a cabo el PLC S7-226 de SIEMENS, con la integración del control distribuido y mediante la creación de la red PROFIBUS-DP este PLC funcionará como un esclavo de todo el sistema. Al ser el esclavo deberá comunicar al maestro el estado de sus E/S además de permitir que el maestro manipule el proceso con prioridad.
Para que el PLC S7-226 se integre al control distribuido mediante la red PROFIBUS-DP es necesario agregar un módulo inteligente SIEMENS, este módulo es el EM 277 el cual es detectado como esclavo PROFIBUS-DP por el maestro AC800F. Dentro de lo que cabe es nula la configuración a realizar en el PLC S7-226 puesto que sólo se requiere definir la dirección del esclavo PROFIBUS-DP, dicha dirección declara en el módulo de ampliación EM 277. A continuación se describe el procedimiento para agregar el módulo de ampliación EM 277.
Adición del módulo inteligente EM 277
El módulo de ampliación inteligente EM 277 PROFIBUS-DP se comunica con el PLC S7-226 a través de bus de E/S serie, esta conexión se lleva a cabo con cable plano de 10 polos. Para utilizar el dicho módulo en calidad de esclavo PROFIBUS-DP es preciso ajustar la dirección de estación del puerto DP para que coincida con la dirección fijada en la configuración del maestro.
La dirección de estación se ajusta con los interruptores rotativos del módulo EM 277. Tras haber efectuado un cambio con un interruptor es preciso desconectar la CPU y conectarla de nuevo para poder adoptar la nueva dirección del esclavo. La Figura 4.1 muestra los interruptores de direccionamiento para asignar una dirección al esclavo PROFIBUS-DP:
Una vez que el hardware se ha conectado es preciso identificar las E/S a comunicar con el maestro, del mismo modo se define las E/S a manipular para controlar el proceso. La Figura 4.2 muestra la conexión entre el CPU S7-226 y el módulo EM277 por medio del Bus de E/S serie.
Figura 4.2 Con el módulo EM277 el CPU S7-226 funge como esclavo PROFIBUS-DP.
Tablas de intercambio de datos
La tabla 4.1 muestra la asignación de E/S que el PLC esclavo emplea para el control local del sistema de bombeo:
Tabla 4.1 Asignación de I/O del PLC S7-226
Variable Entrada nivel1 I1.0 nivel2 I1.1 nivel3 I1.2 Stopp I1.3 Start I1.4 Variable Salida bomba1 Q1.0 bomba2 Q1.1
Hasta que no se conocen las direcciones de E/S que el esclavo emplea para llevar a cabo el control local no se sabe qué direcciones es necesario enviar al maestro, es decir, primero es necesario saber que registros ocupa el esclavo para posteriormente enviar el estado de los
mismos al maestro. En el siguiente apartado se explicará la lógica necesaria para realizar el envío de información del esclavo al maestro.
La Tabla 4.2 muestra las entradas del esclavo que el controlador maestro emplea para manipular el sistema de bombeo. Se observa que todos los nombres de las variables o tie e u _t al fi al, esto i di a ue so va ia les tele a dadas , es de i , estas variables son ordenes que el maestro indica al esclavo, provienen de un mando a distancia o mando remoto (estación de operación).
Tabla 4.2 Entradas del esclavo que manipulará el maestro.
Variable Entrada nivel1_t I2.0 nivel2_t I2.1 nivel3_t I2.2 Start_t I2.3 Stop_t I2.4 bomba1on_t I2.5 bomba2on_t I2.6 bomba1off_t I2.7 bomba2off_t I0.4
Es necesario definir por cuáles entradas del esclavo el maestro manipulará el proceso, es importante que ninguna de las direcciones de entradas sea utilizada por el control local y por el mando remoto al mismo tiempo. Lo anterior crearía conflictos en la comunicación, para dicha situación se recomienda emplear un Byte para entradas del control local y otro Byte para entradas de mando remoto pero nunca utilizar un mismo Byte para entradas de control local y de mando remoto a la vez.
Una vez que se han decidido las direcciones a utilizar para el mando remoto y una vez que se conocen las direcciones empleadas para el control local es posible entender cómo se lleva a
Como se mencionó en el Capítulo II, el PLC S7-226 emplea la memoria V para transmitir datos vía PROFIBUS-DP, cuando se llegue el momento de configurar el maestro se definirán 2 parámetros esenciales para la comunicación correcta y eficiente entre maestro y esclavo:
Tamaño de los búfers de E/S.
Dirección de los búfers de E/S.
El tamaño de los búfers de E/S indican el espacio reservado para E/S, es decir, si el tamaño
del úfe es B tes i / B tes out se ese va B tes de la e o ia V, B tes
para entradas y 16 Bytes para salidas. La finalidad de reservar espacios en la memoria V del PLC se explica a continuación:
Durante la comunicación en una red PROFIBUS-DP el maestro intercambia datos con cada uno de sus esclavos, enviando información de su área de salidas al búfer de salida del esclavo en cuestión ( uzó e epto . El es lavo espo de al e saje del aest o etornando un búfer de entrada ( a deja de salida ue el aest o al a e a e u área de entradas. Para ilustrar lo anterior se observa en la Figura 4.3 cómo se realiza el intercambio de datos entre maestro y esclavo PROFIBUS-DP; es evidente la manera en que el buzón de salida del esclavo se emplea para mandar datos al maestro, a su vez el maestro recibe los datos por su área de entradas. De igual forma el maestro envía datos al esclavo a través de su área de salidas y el esclavo recibe las instrucciones por medio de su bandeja de entrada.
No serviría de nada comprender el significado del tamaño del búfer si no entendiéramos la
Dirección de los búfers de E/S. Esta dirección nos indica a partir de qué registro se comenzarán a guardar los búfers de E/S en la memoria V. En la Figura 4.3 se observa que la dirección de los búfers de E/S es VB5000; esto quiere decir que a partir del Byte 5000 de la memoria V se comenzará a almacenar dichos búfers, del Byte 5000 al Byte 5015 estarán
ese vados pa a el uzó de e t ada del esclavo. Del Byte 5016 al 5031 estarán reservados
pa a el uzó de salida del esclavo PROFIBUS-DP.
Una vez comprendidos ambos términos es posible administrar la memoria de manera eficiente para una correcta comunicación maestro-esclavo PROFIBUS-DP. Con la administración de la memoria V se determina la localidad en la que deben ser colocados los datos para ser enviados al maestro, por el otro lado, se conoce en qué dirección llegan las instrucciones del maestro.
Continuando con el ejemplo de la Figura 4.3, si se desea mandar datos al maestro es necesario colocarlos en cualquiera de las direcciones comprendidas entre VB5016 (Byte 5016 de la memoria V) y VB5031; para leer las instrucciones del maestro es necesario acceder a las direcciones VB5000 a VB5015.
Ya que el procedimiento de envío de datos hacia el maestro y recepción de datos del mismo quedó explicado, es posible desarrollar el software necesario para llevar a cabo dicha acción. Cabe mencionar que una vez que se conoce el procedimiento de comunicación maestro- esclavo depende del usuario aplicarlo de manera correcta, es decir, saber exactamente en cuál de los registros el maestro envía determinada información, de la misma forma, es esencial que el maestro conozca la dirección por la cual recibirá la información esperada.
Programación del equipo S7-226
direcciona la información requerida hacia los registros que conforman el búfer de E/S. Este direccionamiento se lleva a cabo empleando operaciones de transferencia.
Las ope a io es T a sferir Byte (MOVB), Transferir palabra (MOVW), Transferir palabra
doble (MOVD) y Transferir real (MOVR) transfieren un valor de una dirección (IN) a una nueva dirección (OUT) sin modificar el valor original. En la Figura 4.4 se muestra el bloque de operación de transferir Byte en lenguaje KOP (escalera).
Figura 4.4 Operación de transferir Byte, MOV_B.
La utilización de las operaciones de transferencia nos permite comunicar el estado de nuestros Bytes de E/S al controlador maestro. Si se desea enviar el estado de nuestro Byte de salida 0 (QB0) al maestro PROFIBUS-DP es e esa io t a sfe i QB a uest o uzó de salida .
En la Figura 4.5 se ejemplifica el envío del estado del QB0 al maestro, todo esto se realiza con una configuración de tamaño de búfer de 8 Bytes In/8 Bytes Out y con una dirección de búfer VB0. Esta configuración i di a ue uest o uzó de salida o ie za e la di e ió VB termina en VB15, en el ejemplo QB0 es enviado por la dirección VB10.
Figura 4.5 Envío de QB0 por VB10.
Cabe mencionar que en la Figura . se e plea la a a espe ial “M . sie p e ON o el objeto de activar el funcionamiento de la operación de transferencia y que mantenga constante el envío el estado de los Bytes de salida.
Figura 4.6 Envío del estado de los Bytes de E/S del PLC S7-226.
Continuando con la configuración anterior la Figura 4.6 transfiere el estado de los Bytes de E/S al buzón de salida para ser enviados al maestro, a su vez este los recibe por su área de entradas.
En caso que el maestro requiera interferir en el proceso a través del esclavo es necesario que
las i st u io es llegue al uzó de e t ada del esclavo y de ahí sean transferidas a un
Byte de entradas o a uno de salidas. Es importante marcar que el PLC S7-226 cuenta con 3 Bytes de entradas (24 entradas digitales) y 2 Bytes de salidas (16 salidas digitales).
Una muestra de la manera en que el maestro puede manipular el proceso es ilustrada en la Figura 4.7 (continuando con la configuración de ejemplo 8 Bytes In/8 Bytes Out y la dirección del búfer en V0), e ella se ap e ia ue los datos e i idos e el uzó de e t ada so transferidos a los Bytes de entradas del PLC esclavo, es importante aclarar que si se quiere manipular directamente los Bytes de salidas sólo es necesario cambiar el campo OUT, en lugar de direccionar un Byte de entrada (IBx) se direcciona a un Byte de salida (QBx).
Figura 4.7 Influencia del maestro en los Bytes de entrada del PLC S7-226.
Otro aspecto importante a considerar es cuando el maestro ordena al esclavo. Ya se
e io ó ue el aest o a da i st u io es al uzó de e t ada del es lavo, e el
mismo se recibe todo un Byte de información. La manera en que el maestro manipula las entradas del esclavo se lleva a cabo modificando individualmente cada bit que integra al Byte enviado, puede que el maestro cambie únicamente el estado de un bit pero será enviado todo el Byte. Al momento que el esclavo recibe el Byte este es transferido a los Bytes de E/S, si el maestro modificó el bit 3 del Byte enviado entonces el bit 3 del Byte transferido a las E/S cambiará de estado.
Ejemplo de lo anterior es que si se requiere activar el bit I2.3 el maestro deberá modificar el bit 3 de u B te a e via , este B te a i a al uzó de e t ada del es lavo para ser transferido a la dirección IB2. Cuando el Byte está en la dirección correcta el PLC esclavo detectará el cambio de ese bit y realizará la lógica correspondiente que esté relacionada con la entrada I2.3.
Por esta razón no se debe ocupar un mismo Byte para leer entradas locales y entradas del mando remoto, lo anterior debido a que el mando remoto modifica el estado del Byte entero y el estado de bits que tengan conectadas entradas locales sería sobre escrito por el mando remoto, es decir, el estado entradas locales será ignorado.
Cuando se tiene conocimiento de la manera en que se realiza la interacción maestro-esclavo PROFIBUS-DP es posible desarrollar la aplicación para el control del sistema de bombeo del cárcamo. A continuación se mencionan las modificaciones que se hicieron al software original para acoplarlo al sistema de control distribuido, es importante destacar que es necesario conocer la lógica que ejecutaba el control local, dicha lógica fue explicada en el capítulo III.
Cabe mencionar que el programa que ejecuta el control local será modificado en algunos aspectos, en todos los casos para acoplarlo al control distribuido y mejorarlo en algunos otros; muestra de lo anterior es la incorporación de botones para iniciar y detener el sistema de bombeo, además de botones que manipulan el accionar de las bombas, independientemente del nivel de agua (los botones de accionamiento de la bombas sólo se encuentran en la estación de operaciones).
La aplicación a crear contará con subrutinas, el programa principal, lla ado ge e al , contendrá todo el direccionamiento de E/S además de la asignación de bits internos. Una de
las su uti as se o ada o t ol la ual lleva a a o la lógi a e esa ia pa a
gobernar el sistema de bombeo. Otra subrutina llamada e ep ió se e a ga de di e io a todos los datos del uzó de e t ada a los B tes de e t adas, po últi o la
su uti a e vío ealiza la t a sfe e ia de i fo a ió del es lavo al aest o, pa a ello
trasladará el estado de las E/S al uzó desalida pa a así se e viados al aest o.
Para crear una subrutina es necesario ubicarse en la carpeta de subrutinas en la parte inferior del árbol de proyecto, una vez ahí, es necesario dar click derecho en la misma y seleccionar la opción insertar , posteriormente se elige subrutina . Después de este procedimiento sólo se requiere renombrar la subrutina, es necesario repetir estos pasos para crear las tres subrutinas necesarias que conforman el programa. La Figura 4.8 ilustra el procedimiento para crear una subrutina.
Figura 4.8 Creación de una subrutina.
Una vez que las subrutinas han sido creadas se procede a conformar el programa principal, dicho programa contendrá la declaración de todas las entradas que afectan la lógica de control del sistema de bombeo además de las subrutinas creadas con anterioridad. Como p i e paso es e esa io i se ta la su uti a e ep ió pa a ello asta o lo aliza la e el árbol de proyectos (parte inferior) y arrastrarla al editor de programa, este procedimiento se muestra en la Figura 4.9
Figura 4. Integración de la subrutina recepción al programa general.
Después de agregar la subrutina es necesario integrar al programa las E/S que intervendrán en el mismo, se recalca que se está partiendo del programa que realizaba el control local (explicado en el Capítulo III), estas E/S serán las mismas del programa previo con la diferencia de que se añadirá a cada entrada otra más en paralelo, esto es con el objeto de que sea posible el mando remoto. En la sección anterior (tabla de intercambio de datos) se
mencionaron las variables y direcciones a intercambiar, en base a ello se creará el programa. En la Figura . se uest a ó o el it i te o it_ ivel puede se a tivado po la pe a indicadora de nivel I1.0 o por el mando remoto I2.0 (Maestro PROFIBUS-DP).
Figura 4.10 Bit_nivel1 puede ser activado por el indicador de nivel ó por el maestro PROFIBUS-DP
En base a la premisa anterior se procede a colocar las entradas en paralelo, esto con la intención de ejercer el control a través del esclavo y del maestro. La Tabla 4.3 muestra cuáles entradas activan el mismo bit interno.
Tabla 4.3 Un bit interno puede ser activado por dos entradas distintas.
Entradas Bit interno
Símbolo Dirección Símbolo Dirección
nivel1 I1.0 bit_nivel1 M0.0 nivel1_t I2.0 nivel2 I1.1 bit_nivel2 M0.1 nivel2_t I2.1 nivel3 I1.2 bit_nivel3 M0.2 nivel3_t I2.2 Start I1.4 bit_start M0.3 Start_t I2.3
La Figura 4.11 muestra el resultado de la integración de las entradas según la Tabla 4.3
Figura 4.11 Integración de la entradas al programa general.
E la ta la . se ap e ia la i teg a ió de los uevos its i te os, it_sta t it_stop , el primero de ellos se encarga de iniciar el sistema de bombeo; si este bit no se encuentra activo las bombas no podrán activarse, pero los indicadores si mostrarán el nivel de agua en
el a o. El segu do de ellos detie e el siste a, si el it_stop est a tivado las o as
no podrán arrancar sin importar el nivel del cárcamo, de igual forma si alguna de las bombas se encuentra en operación y se activa dicho bit la bomba será detenida. En el caso de accionar ambos bits el sistema tiene prioridad al paro.
!
!
!
!
!
!
Otra de las nuevas características del programa es el accionamiento remoto de las bombas sin importar el nivel del cárcamo, para ello se declararon nuevas variables en el programa. La Tabla 4.4 muestra las variables y su correspondiente dirección.
Tabla 4.4 Nuevas variables del programa y sus correspondientes bits internos.
Entradas Bitinterno
Símbolo Dirección Símbolo Dirección
bomba1on_t I2.5 bit_bomba1on_t M0.7
bomba1off_t I2.7 bit_bomba1off_t M1.2
bomba2on_t I2.6 bit_bomba2on_t M1.4
bomba2off_t I0.4 bit_bomba2off_t M1.7
Las nuevas variables también se direccionarán a las entradas por lo que se agregan de la misma manera, como se mencionó la utilización de bits internos es para prever fallos en algunas de las entradas. Si falla la entrada los cambios requeridos en el programa serán mínimos pues sólo será necesario redireccionar la entrada y no se modificará toda la lógica del mismo puesto que el programa opera en base al registro de memoria interna. La Figura 4.12 muestra la integración de las nuevas entradas al programa general.
!
!
La Figura 4.13 muestra las modificaciones realizadas al programa para que fuera posible activar/desactivar las bombas 1 y 2 mediante el mando remoto. Como se observa el
it_ o a / it_ o a p o ede de la lógica del programa, pero
it_ o a o _t/ it_ o a o _t son instrucciones provenientes del maestro PROFIBUS-
DP. E esta pa te ta ié se ilust a ue si it_stop es a tivado las o as deja de
operar.
Figura 4.13 Lógica para el accionamiento remoto de las bombas 1 y 2.
Para culminar con el programa principal es necesario insertar las subrutinas faltantes
o t ol e vió (Figura 4.14); la p i e a de ellas se o di io a a ue el it_sta t
permita que se realice la rutina de control además de que no se encuentre accionado el
it_stop , la segu da, de e ealiza se a ada o e to puesto que se encarga de informar
el estado de las E/S al maestro.
Figura 4.14 Adición de las subrutinas restantes al programa principal.
!
En el momento que se encuentra conformado el programa principal sólo resta definir las a io es a ealiza po la su uti as, pa a ello se o ie za o la su uti a o t ol . Co o primer paso es necesario elegir la subrutina a editar, para ello se posiciona en la parte inferior del editor de programa y se elige la subrutina a editar. Esta acción es representada por la Figura 4.15.
Figura 4.15 Selección de la subrutina control.
Ya que la subrutina se ha seleccionado se comienza con la programación de la misma. Esta subrutina contendrá el mismo algoritmo del controlador local (explicada en el capítulo III), no cambiará en ningún aspecto debido a que la lógica es la misma y lo único que varía es la influencia de las entradas en el proceso; por tales motivos no será descrito el funcionamiento de la subrutina, sólo se ilustra la programación en lenguaje KOP (Figura 4.16).
!
!
A o ti ua ió se ost a el o te ido de la su uti a e ep ió , o o se e io ó esta subrutina se encarga de recibir las instrucciones provenientes del maestro y transferirlas a los Bytes de entradas, es importante recordar que no se debe utilizar un mismo Byte para entradas locales (indicadores de nivel) y para recibir instrucciones del maestro; en este caso