PROYECTO FIN DE CARRERA INGENIERÍA DE...
Transcript of PROYECTO FIN DE CARRERA INGENIERÍA DE...
PROYECTO FIN DE CARRERA
INGENIERÍA DE TELECOMUNICACIÓN
GESTOR DE COMUNICACIÓN POR SMS PARA PLC S7-200
Autor: Lorenzo Rivas Kaiser
Tutor: Jesús Iván Maza Alcañiz
Fecha: Octubre de 2012
Con especial cariño para mis padres Félix y Elsbeth,
a quienes agradezco su ejemplo, su esfuerzo y su dedicación.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 2/103
Índice
INTRODUCCIÓN ………………………………………………………………………………………. 3 DESCRIPCIÓN GENERAL DEL PROYECTO …………………………………………… 7
Objetivo y desarrollo ………………………………………………………….. 7 Librería Nubitek SMS Manager …………………………………………… 8
BLOQUE I ELEMENTOS DE DESARROLLO DE LA LIBRERÍA DE GESTIÓN DE MENSAJES ELEMENTOS HARDWARE ………………………………………………………………………… 12
Autómata SIEMENS S7-200 …………………………………………… 12 Módem GSM TC65iT ………………………………………………………….. 26 Cable de comunicación entre PLC y módem ………………. 29
ELEMENTOS SOFTWARE ………………………………………………………………………… 32 STEP7 MicroWIN ………………………………………………………….. 32 Comandos AT para control del modem GSM ………………. 37
REQUISITOS DE LA APLICACIÓN FINAL …………………………………………… 40 ESTUDIOS PREVIOS ……………………………………………………………………………………….. 44
Control del modem desde el hiperterminal ………………. 44 Desarrollo del driver de comunicaciones ………………. 45 Diseño de la máquina de estados …………………………….. 49
ESTRUCTURA DEL PROGRAMA ………………………………………………………….. 51 Bloques funcionales del programa ……………………………… 51 Enviar SMS ……………………………..………………………………………….. 55 Recibir SMS ……………………………..………………………………………….. 58 Teleservicio ……………………………..………………………………………….. 61
BLOQUE II UTILIZACIÓN DE LA LIBRERÍA DE GESTIÓN DE MENSAJES REQUERIMIENTOS MÍNIMOS ………………………………………………………………………… 64 INSTALACIÓN DE NUBITEK SMS MANAGER …………………………………………… 66 HARDWARE: CONEXIONADO Y CONFIGURACIÓN …………………………….. 70 EL MODEM GSM ……………………………………………………………………………………….. 74 MODO DE PRUEBA Y CLAVE NUBITEK ……………………………………………. 76 FUNCIONES DE PROGRAMA: INTRODUCCIÓN Y EJEMPLO ………………. 79 SMS MANAGER: LA FUNCIÓN PRINCIPAL ……………………………………………. 81 ENVIAR SMS ………………………………………………………………………………………..…………….. 83 RECIBIR SMS ………………………………………………………………………………………..…………….. 91 ÁREA DE VARIABLES DE USUARIO …………………………………………………………… 94
Mapa del área de variables de usuario ……………………………………………. 95 Códigos de error/evento …………………………………………………………… 98
TELESERVICIO Y GESTIÓN DEL PUERTO CERO …………………………….. 100 ANEXO I CÓDIGO DE LA LIBRERÍA NUBITEK SMS MANAGER
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 3/103
Introducción
Este proyecto se enmarca en la tendencia que desde hace unos años
caracteriza al mundo de la automatización: el acceso a numerosos sistemas
diferentes de comunicación y la integración con elementos ajenos a los
propios de automatización.
A gran escala, los grandes PLCs han desarrollado herramientas para integrarse
en la estructura de las fábricas: comunicaciones por Ethernet, sistemas MES
para integrar las aplicaciones de gestión de la producción a nivel PC con la
capa de control PLC, nuevos sistemas de cableado en fábrica basados en
tecnología inalámbrica, etc.
En el mercado del pequeño PLC, la tendencia se expresa con personalidad
propia. Al igual que con el gran PLC, también se han desarrollado las opciones
de comunicación en planta, integración con los PLCs de nivel superior
(Profibus, Ethernet), pasarelas de conexión con aplicaciones PC, etc. Sin
embargo donde se está produciendo la última revolución es en plano de las
“islas autónomas” que suponían las estaciones remotas, aquellas encargadas
de controlar pequeñas instalaciones de agua, electricidad, antenas, etc. Lo
mismo para la maquinaria que requiere movilidad, o para la que se encuentra
en una posición aislada en una gran factoría.
Evolución histórica
Numerosos fabricantes han ido desarrollando sus propuestas para conectar a
las estaciones remotas con las máquinas o personas responsables de
supervisarlas y/o controlarlas.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 4/103
Las primeras pasaron por el uso de tecnología de telefonía analógica, en líneas
dedicadas. De tal forma con un módem analógico y una línea de 2 hilos
dedicada se podía conectar un equipo situado hasta a 30 Km. de distancia.
Siguiendo con los sistemas analógicos, se pasó luego a la integración con la
red conmutada, es decir, la conexión a través de la red comercial de telefonía.
El PLC aprendía a llamar por teléfono, o al menos a responder y comunicar. La
desventaja es que requiere que haya un punto de conexión a la red junto al
PLC, pero una vez conectado, ya no hay limitaciones en cuanto a la distancia
alcanzable.
Aparecieron igualmente las opciones de comunicación por radio, con sus
ventajas e inconvenientes: menor alcance, saturación del espacio
radioeléctrico, ruidos, consumo de energía (no siempre disponible en
estaciones remotas). La principal ventaja, que era el primer sistema
inalámbrico para PLC.
Con la tecnología GSM llegaron sistemas más avanzados. Rápidamente se
desarrollaron también tecnologías de conexión remota entre dos máquinas
por módem GSM: usando un acceso en modo datos se permite a una máquina
realizar una llamada a otra. Una vez conectadas pueden intercambiar datos de
forma inalámbrica. La principal desventaja era y sigue siendo la necesidad de
contar con cobertura de algún operador de telefonía móvil.
Uno de las tendencias más extendidas a día de hoy son los dispositivos donde
se integra comunicación GSM con entradas y salidas digitales. El dispositivo se
configura en general desde un PC y es capaz de enviar mensajes SMS cuando
recibe impulsos eléctricos por alguna de sus entradas. A veces se utiliza de
forma autónoma y otras en paralelo con un PLC, que se coordina
eléctricamente con él.
Finalmente, la tendencia que se impone es la incorporación de tecnologías de
tipo GPRS/3G para hacer comunicaciones con servidores conectados a
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 5/103
Internet. Esto permite abordar la comunicación máquina-operador, en ambos
sentidos, pero también la comunicación entre máquinas (casi siempre a través
de un servidor central).
Comunicación por SMS
En general las aplicaciones de mensajes SMS para PLC se utilizan para
comunicar desde el PLC directamente con el usuario final, con la persona
encargada del mantenimiento o la supervisión del equipo. En la mayoría de los
casos la comunicación por SMS no es la forma más adecuada para la
comunicación entre máquinas, aunque ofrece indudables ventajas en algunos
casos concretos.
En el ámbito de las aplicaciones de SMS, las posibilidades en el mercado
comenzaron siendo muy limitadas: equipos preconfigurables, sistemas poco
versátiles, o proyectos de software muy básicos para programadores
dispuestos a desarrollarlos y adaptarlos a sus necesidades.
Los equipos preconfigurables ocupan una posición preponderante en el
mercado: son dispositivos que integran un módem GSM y una serie de
entradas y salidas. Con un puerto se configura el comportamiento del equipo.
Avisos ante activación de las entradas, y telecontrol por SMS sobre el estado
de las salidas. Estos equipos, por su sencillez, han sido muy exitosos en
numerosos campos.
En otras instalaciones se ha utilizado como elemento intermedio de
comunicación un PC, que tiene mayor capacidad de proceso para controlar un
modem. Este sistema es apropiado en instalaciones de mayor tamaño, y en
ellos el PLC solicita a un PC, por la vía de comunicación que compartan, que
se realice un envío de SMS a través del modem que tenga conectado, en
general al puerto serie.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 6/103
Muchas marcas de controladores han desarrollado software, ejemplos y
librerías para que los programadores pudieran integrar directamente la
gestión del modem en el programa de control de sus equipos. El resultado ha
sido muy diverso, pero casi siempre ha adolecido o de robustez, o de
versatilidad, o de sencillez para el programador.
Aún así, como la tendencia es imparable, ya existen en el mercado algunos
equipos de control, en general muy sencillos u orientados a procesos
particulares (como riego o clima), con el modem y la programación de avisos
SMSs integrada, y en las nuevas familias de PLCs que salen en los últimos años
sí se viene incorporando esta tecnología, en general a través de módulos de
ampliación específicos para comunicación por telefonía (SMS, GPRS, etc).
En el caso concreto del PLC S7-200 de Siemens, la solución aportada por la
compañía no era satisfactoria: se trataba de una librería de libre distribución
con prestaciones muy limitadas, que adolecía de una adecuada robustez ante
fallos y cuya capacidad de control del módem y de los procesos de
comunicación no estaba convenientemente resuelta. Como consecuencia de
estas carencias, su utilización requería de una programación adicional muy
compleja para el integrador tipo de este familia de PLCs.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 7/103
Descripción general del proyecto
Objetivo y desarrollo
El objetivo del proyecto ha sido desarrollar un software de propósito general
para el envío y recepción de SMSs, que pueda ser integrado fácilmente en
cualquier programa de control de un PLC SIEMENS S7-200.
Para cumplir dicho objetivo se ha creado una librería que está a disposición
del programador y que le permite centrarse estrictamente en la funcionalidad
de comunicación por SMS, esto es, qué mensaje quiere mandar, cuándo y a
quién, y que realiza su misión de forma transparente a todos los procesos
internos de control del modem, de gestión del puerto de comunicaciones y de
otras tareas engorrosas.
El entorno de trabajo STEP 7 MicroWIN permite la creación de librerías, y con
esta herramienta se ha creado un conjunto de funciones que permiten al
programador del equipo manejar el envío y la recepción de SMSs como si
fueran una funcionalidad propia del S7-200, programándolo como una función
más del proyecto.
Para dotar de comunicación GSM al S7-200 se ha incorporado un modem
TC65T, que se gobierna mediante “comandos AT” a través del puerto serie.
Este juego de comandos, en su mayor parte estandarizado para dispositivos
GSM, permite un control total de las funciones de configuración y
comunicación del modem. Dicho de otra forma, todo el control del modem y
el envío /recepción de SMSs se reduce a un diálogo por el puerto serie
formado por comandos AT que genera el autómata y las respuestas ofrecidas
por el modem.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 8/103
Este panorama de comando/respuesta ha permitido tratar todo el proyecto
con un enfoque de máquina de estados, que en cada punto ordena una acción
mediante un comando AT, y en función de la respuesta avanza hacia otro
estado determinado. De hecho, el trabajo de estudio previo del modem se ha
efectuado utilizando un hiperterminal y actuando sobre el modem con
comandos AT desde una consola, hasta conocer en detalle su funcionamiento.
A continuación la tarea consistió en programar el PLC para que procediera
dando él mismo los comandos AT desde el puerto, y actuando en función de
las respuestas.
Otro de los puntos notables en el trabajo del proyecto ha sido la de integrar
de una forma coherente y robusta la acción de diversos elementos, algunos
síncronos y gobernados por el programa, y otros asíncronos y relacionados al
programa. Como elemento síncrono principal está la gestión de la máquina de
estados, y como elementos asíncronos la lista es mucho mayor:
principalmente las comunicaciones por el puerto con el módem, las órdenes
de envío de SMSs, y la llegada de SMSs al modem.
Por último, el tercer punto fuerte del desarrollo del proceso fue la tarea de
hacer transparente al usuario toda la parafernalia propia e interna del
envío/recepción de SMSs, es decir, la configuración interna del módem, la
gestión de la comunicación por el puerto, y el tratamiento de bajo nivel del
envío/recepción de SMSs (conflictos y colisiones de operaciones simultaneas,
análisis y procesado de cadenas de texto, etc).
Librería Nubitek SMS Manager
El resultado de este proyecto es la librería Nubitek SMS Manager, desarrollada
por Lorenzo Rivas en el ámbito de la empresa Nubitek Industrial IT, SL,
partiendo de los conocimientos y experiencias que adquirió durante su etapa
previa, en el departamento de automatización de la empresa SIEMENS. Desde
que la librería se comenzó a comercializar ha sido utilizada por numerosos
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 9/103
programadores y en la actualidad está implementada en múltiples
instalaciones y máquinas en países de los cinco continentes.
Descripción
Nubitek SMS Manager es un software de control que permite a un PLC S7-200
de Siemens combinarse con un módem GSM y realizar envío y recepción de
SMS, integrando la comunicación vía SMS en cualquier programa de control
de forma sencilla, robusta y segura.
Nubitek SMS Manager es una librería lista para añadirse al entorno de
programación STEP7 MicroWIN. Se compone de 3 funciones de usuario y su
uso es extremadamente sencillo: por cada mensaje que desee enviar o recibir
tan solo deberá añadir un segmento a su programa de control.
Campos de aplicación
Nubitek SMS Manager ofrece numerosas posibilidades de aplicación:
� Recibir en el móvil alarmas o hitos de mantenimiento.
� Consultar el estado de una estación remota.
� Recibir datos de producción.
� Comandar una instalación a distancia.
� Realizar una comunicación por SMS entre estaciones distribuidas.
Prestaciones
Nubitek SMS Manager ofrece las siguientes prestaciones al programador:
� Control total del módem GSM: la aplicación se encarga por completo
de todo lo relacionado con la gestión del modem: inicialización y
configuración del módem GSM, envío de los SMS salientes, recepción y
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 10/103
análisis de los SMS entrantes, configuración y gestión del puerto de
comunicación, gestión y recuperación ante incidencias, etc.
� Enviar SMS: Nubitek SMS Manager gestiona ilimitados SMS de salida a
múltiples teléfonos de destino. Para enviar un SMS tan sólo se deben
indicar los parámetros básicos: condición de disparo, texto del mensaje
y teléfono(s) de destino.
Los textos de los SMS se definen libremente en el Bloque de Datos, la
inserción de variables en los SMS de salida se hace de forma automática
y las alarmas simultáneas se gestionan sin perder ninguna.
� Recibir SMS: el reconocimiento de mensajes entrantes se hace
mediante palabras clave que identifican el mensaje, lo que aporta gran
flexibilidad.
Nubitek SMS Manager analiza los SMS entrantes y avisa si se ha recibido
uno que se ajusta a algunos de los patrones marcados. Incluso puede
capturar valores numéricos contenidos en el SMS y almacenarlos en una
posición de memoria.
� Teleservicio: Nubitek SMS Manager es compatible con el acceso por
teleservicio desde STEP7 MicroWIN, modo que se puede activar de
forma local o también de forma remota, mediante un SMS.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 11/103
BLOQUE I
ELEMENTOS DE DESARROLLO DE LA LIBRERÍA DE GESTIÓN DE MENSAJES
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 12/103
Elementos Hardware
Autómata SIEMENS S7-200
El SIMATIC S7-200 es el PLC de gama baja de la familia SIMATIC de SIEMENS,
actualmente en fase de sustitución con la nueva familia S7-1200. Es un micro-
PLC compacto y potente, con notables posibilidades a nivel de conectividad.
Como es norma en la mayoría de fabricantes, responde a una concepción
modular del PLC que permite soluciones no sobredimensionadas y ampliables
en cualquier momento.
Es uno de los micro-PLCs más extendidos en el mundo. La división de
automatización de Siemens es, de hecho, uno de los líderes del mercado
mundial.
La gama S7-200 comprende diversos sistemas de automatización pequeños
que se pueden utilizar para numerosas tareas. Gracias a su diseño compacto,
su bajo costo y su amplio juego de operaciones, los sistemas de
automatización S7-200 son idóneos para controlar tareas sencillas. La gran
variedad de modelos S7-200 y el software de programación basado en
Windows ofrecen la flexibilidad necesaria para solucionar las tareas de
automatización.
Hay 5 modelos diferentes de CPU y numerosos módulos de ampliación, que
añaden entradas y salidas digitales, analógicas, funcionalidades de
comunicación (profibus, ethernet..), pesaje, posicionamiento, etc.
CPU S7-200
La CPU S7-200 incorpora en una carcasa compacta un microprocesador, una
fuente de alimentación integrada, así como los circuitos de entrada y de
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 13/103
salida. Tras haber cargado el programa en el S7-200, éste contendrá la lógica
necesaria para observar y controlar los aparatos de entrada y salida de la
aplicación.
En la parte superior de la CPU están las salidas digitales integradas y la fuente
de alimentación. Según el modelo, se puede alimentar a 24 VCC o a 110/230
VAC. Igualmente, las salidas pueden ser a relé o a transistor.
En la parte inferior se localizan las entradas digitales integradas (a 24 VCC) y
una pequeña fuente de alimentación a 24 VCC que sirve para alimentar
módulos de ampliación, sensores, etc.
A la derecha la CPU tiene una pequeña tapa tras la que se encuentran:
� El selector de modo: permite pasar la CPU a RUN o STOP de forma
manual. Incorpora una tercera posición, TERM, que se diferencia del
modo RUN en un matiz de seguridad. Cuando se da alimentación a la
CPU, en posición RUN ésta arranca de forma automática. En la posición
TERM la CPU permanece en STOP.
� Potenciómetros analógicos: permiten modificar entre 0 y 255 el valor
de un registro interno predeterminado. Son útiles para hacer ajustes
manuales de forma sencilla.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 14/103
� Puerto de ampliación: excepto en la CPU más sencilla, que no tiene,
este puerto permite conectar los módulos de ampliación a la CPU.
A la izquierda, abajo, se encuentra el puerto RS485 de comunicación de la
CPU. Las CPUs más avanzadas de la gama tienen dos y son totalmente
idénticos, tienen la misma funcionalidad y funcionan en paralelo. El puerto de
la CPU puede funcionar en modo PPI, protocolo estándar de Siemens, o en
modo Freeport, esto es, en modo carácter y completamente controlado por el
usuario. El uso del puerto es un punto clave en el desarrollo de este proyecto,
por lo que se describe en detalle más adelante en este capítulo.
Las características de las distintas CPUs que conforman la gama S7-200 se
resumen en el cuadro siguiente:
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 15/103
El slot para cartucho: es una posición para alojar alguno de los cartuchos
opcionales, que pueden ser de memoria para carga del programa, de memoria
para funciones de datalogging, de pila o de reloj de tiempo real.
Los LEDs de estado: indican el modo de funcionamiento actual de la CPU,
RUN o STOP, y el posible fallo de CPU (SF)
Módulos de ampliación
El S7-200 tiene estructura modular, es decir, la gama dispone de numerosas
tarjetas de ampliación que permiten configurar y añadir funcionalidad de
forma personalizada a las necesidades de la instalación.
Este carácter modular permite optimizar la funcionalidad del PLC y el coste en
hardware y en espacio en el armario eléctrico. Además ofrece otras ventajas,
como facilidad para el mantenimiento (en caso de fallo solo hay que reponer
la tarjeta dañada) o como la posibilidad de realizar ampliaciones en el futuro, a
medida que crecen las necesidades del sistema.
La CPU 221 no permite ampliaciones, pero la 222 admite añadir 2 módulos de
ampliación y el resto de la gama admite hasta 7.
El S7-200 dispone de 3 familias diferentes de tarjetas de ampliación: las de
entrada/salida, ( digital o analógica), las de comunicación (ethernet, profibus,
etc.), y las de función especial (posicionamiento, pesaje, etc.)
1.- Módulos de entradas y salidas
Los módulos digitales sirven para añadir puntos digitales de entrada, salida, o
ambos al tiempo. Se caracterizan por el número de señales que incorporan (8
ó 16) y por el tipo. Las salidas pueden ser a transistor o a relé, las entradas
normalmente a 24Vcc pero también hay alguna tarjeta que admite 220 Vac.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 16/103
Estas señales van asociadas siempre a una variable booleana del programa,
por ejemplo I0.2 o Q2.1
Los módulos de señal analógica permiten capturar el valor medido por un
sensor en su rango continuo de trabajo (temperatura, presión, nivel, distancia,
etc.). Igualmente, permiten actuar de forma variable ante un dispositivo de
operación (luminosidad, calor, velocidad, etc.).
Entradas analógicas: la señal eléctrica que produce el sensor de medida
analógico puede variar en un rango de tensión (0 – 10 V) o de intensidad (0 –
20 mA). Este rango es convertido por la tarjeta analógica de entrada en un
valor numérico entre 0 y 32000, de forma que el PLC, realizando sobre él una
conversión matemática, puede obtener el valor real medido.
Dentro del grupo de tarjetas de entrada analógica hay un conjunto específico
para conexión a sensores de temperatura, tipo termopar o termorresistencias,
que realizan un procesado de la señal recibida algo más complejo, y que
directamente ofrece el valor numérico de temperatura medido.
Salidas analógicas: la tarjeta de salidas analógicas realiza el proceso contrario.
Convierte en tensión o intensidad, según se realice el cableado del sensor, un
valor numérico entre 0 y 32000.
2.- Módulos de comunicaciones
Los módulos de comunicación añaden al PLC numerosas posibilidades de
conexión con otros dispositivos. En algunos casos a través de buses de campo
específicos del entorno industrial, en otros por medio de vías de comunicación
más estandarizadas.
� Módulo EM277 Profibus: este módulo permite al S7-200 integrarse
como esclavo en una red Profibus DP, mapeando parte de su área de
variables en el mapa de entrada/salida del dispositivo maestro de la
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 17/103
red. Una red Profibus DP se utiliza como bus de campo porque
garantiza al maestro realizar un intercambio de información completo
con todos y cada uno de los esclavos de la red en un tiempo de ciclo
determinado y conocido.
� Módulo CP243-2 Asi: este módulo habilita al S7-200 para actuar como
maestro de una red ASI, que es una red de actuador sensor. Se
caracteriza por ser mucho más rápida que Profibus en el tiempo de
refresco, pero a costa de simplificar al máximo el tipo de información
intercambiada. Se utiliza para conectar al maestro sensores y
actuadores digitales, principalmente, aunque también los admite
analógicos.
� Módulo EM241 módem: se trata de un módem analógico, que permite
realizar comunicaciones tanto por línea dedicada entre dos S7-200,
como a través de la red conmutada de telefonía. En la época previa al
desarrollo de las redes móviles, supuso un gran avance porque también
permite al entorno de desarrollo realizar una conexión remota con el
equipo, de cara a labores de mantenimiento y supervisión.
� Módulo CP 243-1 Ethernet: tarjeta con un puerto para conectar el
equipo a una red Ethernet. Esto le permite intercambiar grandes
volúmenes de información a través de este medio tan extendido. Se
utiliza sobre todo para información no crítica de operación, pues
Ethernet no es una red determinista en el tiempo.
� Módulo CP243-1 Ethernet IT: es una tarjeta como la anterior, pero
incorpora una serie de capacidades para realizar tareas en el ámbito de
internet: esto es, el envío de email, el intercambio de ficheros por ftp, y
el alojar páginas html que pueden visualizarse desde un navegador.
Ésta última funcionalidad es muy interesante porque, si se asocian
valores de operación al fichero html, permite realizar un monitorización
vía web de la instalación.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 18/103
3.- Módulos de función especial
� Módulo EM 253 de posicionamiento: se utiliza para gobernar motores
paso-paso, que requieren un tren de pulsos como señal de control. La
tarjeta convierte perfiles de movimiento en un tren de pulsos de la
frecuencia y duración adecuada. Dispone además de numerosas
herramientas de desarrollo, puesta en marcha y diagnóstico.
� Módulo de pesaje Siwarex MS: realiza todo el procesado de la señal
procedente de una célula de carga. Proporciona herramientas de
gestión de este tipo específico de mediciones, como gestión de taras,
desplazamientos del cero, pesos netos y brutos, pesajes dinámicos, etc.
Áreas de Memoria del S7-200
El S7-200 posee diferentes áreas de memoria, en general de mayor tamaño a
medida que se sube en la gama de CPUs disponibles.
1.- Memoria de programa
Es la que aloja el programa de usuario, con un tamaño entre 4 Kb y 24 Kb. La
CPU debe pasar a STOP para realizar una carga de programa. En las CPUs a
partir de la 224 se puede habilitar el modo de edición en RUNTIME y realizar
modificaciones del programa sin parar la operación, aunque a costa de
consumir memoria de programa. Es decir, si se habilita el modo de edición en
RUNTIME no está disponible para programa el 100%, sólo dos terceras partes.
Esta memoria es una EPROM y no se borra nunca, es decir, aunque se deje la
unidad sin alimentación durante un largo periodo, el programa permanece.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 19/103
2.- Memoria de variables
La memoria V se utiliza para almacenar toda la información y las variables de
trabajo. Es una memoria uniforme, no tipada, de un tamaño entre 2 Kb y 10 Kb.
Esta memoria no se inicializa al paso de STOP a RUN, es decir, los valores
permanecen igual durante una parada y en el rearranque. Por el contrario, si
se quita la alimentación de la CPU no retiene información por defecto. Es
necesario declarar específicamente las áreas “remanentes”, que vendrán
soportadas por la pila interna (un condensador interno de alta capacidad con
una duración de unos 2 meses).
El usuario puede destinar la memoria V para lo que considere oportuno, salvo
las áreas que ocasionalmente puedan ocupar librerías de operación o
configuraciones para pantallas táctiles, etc. Se puede inicializar en la carga de
programa, mediante el llamado “Bloque de Datos”.
3.- Memoria de marcas
La memoria M o área de marcas se utiliza generalmente para almacenar
información a nivel de bit o variables auxiliares de trabajo. Es una memoria
uniforme, no tipada, de un tamaño de 32 bytes para todas las CPUs. Es decir,
es muy pequeña en comparación con la memoria V. Es por eso que
habitualmente se usa para almacenar información booleana, mientras que la
memoria V se usa deja para gestión de variables numéricas, de tamaños Word
o DobleWord.
Respecto al mantenimiento de los datos, su comportamiento frente a paradas
o pérdidas de alimentación es exactamente el mismo que para la memoria V.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 20/103
4.- Memoria de entrada/salida
En realidad se trata de 4 áreas de memoria diferentes, que mapean las señales
digitales y analógicas de entrada y de salida. Tienen un tamaño máximo, por
supuesto, pero están supeditadas a la presencia física real de esas entradas o
salidas, es decir, están directamente relacionadas con el hardware del equipo.
Las señales digitales se mapean a nivel de bit, por ejemplo I2.4 o Q0.6, y las
analógicas como tipo WORD, por ejemplo AIW2 o AQW4.
5.- Memoria local
El S7-200 dispone de 64 bytes de memoria local (L), de los cuales 60 se
pueden utilizar como memoria “borrador” para transferir parámetros formales
a las subrutinas.
La memoria local es similar a la memoria V (memoria de variables), con una
excepción: la memoria V tiene un alcance global, en tanto que la memoria L
tiene un alcance local. El término “alcance global” significa que a una misma
dirección de la memoria se puede acceder desde cualquier parte del
programa (programa principal, subrutinas o rutinas de interrupción). El
término “alcance local” significa que la dirección de la memoria está asociada
a una determinada parte del programa.
El S7-200 asigna 64 bytes de la memoria L al programa principal, 64 bytes a
cada nivel de anidado de las subrutinas y 64 bytes a las rutinas de
interrupción. A los bytes de la memoria L asignados al programa principal no
se puede acceder ni desde las subrutinas ni desde las rutinas de interrupción.
Una subrutina no puede acceder a la asignación de la memoria L del programa
principal, ni a una rutina de interrupción, ni tampoco a una subrutina diferente.
Una subrutina tampoco puede acceder a la asignación de la memoria L del
programa principal, ni a la de otra subrutina.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 21/103
El S7-200 asigna la memoria L según sea necesario en ese momento. Por
consiguiente, mientras se está ejecutando la parte principal del programa, no
existen las asignaciones de la memoria L para las subrutinas y las rutinas de
interrupción. Cuando ocurre una interrupción o cuando se llama a una
subrutina, la memoria local se asigna según sea necesario. La nueva
asignación de la memoria L puede reutilizar las mismas direcciones de la
memoria L de una subrutina o de una rutina de interrupción diferentes.
6.- Memoria de marcas especiales
La memoria SM o área de marcas especiales es un área de memoria destinada
a intercambiar información con el sistema operativo de bajo nivel de la CPU.
Es una memoria completamente estructurada en la que se localizan
numerosos campos y registros, de distinto tipo y formato dependiendo de la
información que alberguen.
En los campos de lectura de la memoria SM el usuario puede obtener valores
procedentes del sistema operativo, como el tiempo en milisegundos empleado
en el último ciclo de programa o el estado del bit de desbordamiento de
operaciones matemáticas.
Igualmente, usando los campos de escritura, el usuario puede configurar
numerosos sistemas, como la velocidad del puerto de comunicaciones o el
tiempo para una interrupción temporizada.
En la tabla se puede ver la definición del primer byte, el SMB0, con 8 bits de
estado, algunos de los cuales son muy importantes en la programación
cotidiana.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 22/103
Tipos de variables en el S7-200. Criterio del tamaño
El S7-200 admite diversos tipos de variables para realizar sus operaciones de
control. El primer criterio a tener en cuenta es el tamaño de datos que se
puede implementar.
� Bit: Es la mínima información asumible, una variable booleana con dos
estados. Muy utilizado en control puesto que viene asociado a todo tipo
de sensores y actuadores digitales, así como a condiciones
verdadero/falso de operación. Se direcciona indicando el área de
memoria, el byte que lo contiene, y la posición del bit (entre 0 y 7)
dentro del byte. Por ejemplo, M0.3 o Q2.1
� Byte: Unidad formada por 8 bits. Se direcciona indicando el área de
memoria, la letra B y el número de byte correspondiente. Por ejemplo,
VB220 o MB4.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 23/103
� Word: Unidad formada por 2 bytes. Se direcciona indicando el área de
memoria, la letra W y el número del byte de comienzo. Por ejemplo,
VW80 hace referencia a la variable WORD que ocupa los bytes 80 y 81
de la memoria V.
� DobleWord: Unidad formada por 4 bytes. Se direcciona indicando el
área de memoria, la letra D y el número del byte de comienzo. Por
ejemplo, VD20 hace referencia a la variable DOBLEWORD que ocupa
los bytes 20, 21, 22 y 23 de la memoria V.
Tipos de variables en el S7-200. Criterio del formato.
El S7-200 puede almacenar variables en formatos muy diversos, cada uno con
sus características particulares.
� BIT: Es la variable booleana, admite verdadero/falso.
� INT: El formato INT o Entero representa un valor numérico entero con o
sin signo, en tamaño WORD, lo que proporciona un rango de
representación de 65.536 valores.
� DINT: El formato DINT o Doble Entero representa un valor numérico
entero con o sin signo, en tamaño DOBLEWORD, lo que proporciona un
rango de representación de 4.294.967.296 valores.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 24/103
� REAL: El formato REAL o de Coma Flotante representa un valor
numérico real en tamaño DOBLEWORD. Al utilizar una codificación
interna de signo, mantisa y exponente, proporciona un rango de
representación amplísimo, y se utiliza principalmente para representar
valores con decimales.
� CHAR: El formato ASCII o Carácter representa un único carácter de
escritura (letras, cifras y signos de puntuación), en tamaño byte.
� STRING: El formato STRING o Cadena de caracteres representa un
texto de hasta 254 caracteres. El formato interno consiste en un primer
byte que indica el tamaño del texto alojado en la variable y a
continuación comienza la cadena de caracteres, en formato ASCII.
Por tener un tamaño variable y en ocasiones mucho mayor de 4 bytes,
no puede ser tratado en el acumulador de la CPU (el registro de trabajo
del microprocesador). Es por ello que se direcciona haciendo referencia
al byte de inicio, y siempre se gestionan a alto nivel, mediante las
funciones que el S7-200 proporciona en su entorno de programación.
� POINTER: El formato POINTER o Puntero representa la dirección de
una posición de memoria. Indica área de memoria y posición de byte
(no puede contener información a nivel de bit)
Bloques de programación
El programa para S7-200 puede estructurarse usando bloques de programa
reutilizables y parametrizables, que permiten una mayor eficacia de la
programación, la optimización del código empleado y la simplificación y
ordenamiento del programa. Existen 3 tipos de bloques de programa
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 25/103
1.- Bloque Principal
Es el bloque básico del programa, desde el que se estructura todo el resto de
unidades de programa y se ejecuta permanentemente, una y otra vez.
2.- Subrutinas
Son bloques que permiten albergar parte del código del programa y que por
tanto permiten optimizar el código (son reutilizables) y generar un programa
ordenado. El S7-200 admite hasta 127 subrutinas.
Se pueden parametrizar con variables de entrada, salida, o entrada/salida.
La llamada a estos elementos de programa se produce desde el bloque
principal o desde otra subrutina, pero siempre de forma síncrona, esto es, la
llamada se produce en un momento concreto desde dentro del programa.
3.- Bloques de Interrupción
Son bloques de programa que presentan 2 diferencias fundamentales
respecto a las subrutinas.
La primera, derivada en parte de la segunda, es que no son parametrizables.
La segunda característica diferencial es que las interrupciones se ejecutan de
forma asíncrona, esto es, su llamada no está localizada en un punto concreto
dentro del programa sino que está asociada a un evento determinado
(eventos de comunicación, de cambio de estado de una entrada digital, de
temporización, de contaje rápido, etc.)
Según el evento de llamada se asocia un nivel de prioridad, de forma que al
ocurrir, se interrumpe la ejecución del programa principal o subrutina en
curso, y se da paso al código de la interrupción. En caso de concurrencia de
varias interrupciones se procesan por orden de prioridad.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 26/103
Las interrupciones se asocian a los eventos mediante una instrucción dentro
del programa principal, indicando el número del bloque de interrupción y el
código de evento asociado.
Ciclo de ejecución del programa
El programa para S7-200, como el del común de los autómatas industriales, se
ejecuta de forma cíclica indefinidamente en el tiempo, lo que redunda en un
control permanente sobre la instalación, pero que determina una forma
característica de enfocar la programación.
La dinámica es la siguiente: el PLC lee el estado de todas las entradas
conectadas y lo vuelca sobre la “imagen de proceso de entradas”, esto es, la
memoria que recoge el estado de la instalación. Esta memoria, junto con el
estado de las memorias internas de trabajo, son los inputs para ejecutar el
programa de usuario, cuyos resultados se concretan en modificar las
memorias internas de trabajo y en escribir la “imagen de proceso de salidas”,
que se vuelca directamente sobre las salidas del PLC q actúan sobre la
instalación. Terminado el proceso, se vuelve a empezar por el principio y de
forma indefinida.
En resumen, se puede contemplar esta dinámica como un proceso constante
de captura, procesado y actuación sobre del estado de la instalación.
Esta característica de trabajo de los autómatas hace que la integración con
elementos ajenos, como por ejemplo un módem, requiera un ejercicio extra de
gestión en el programa mediante estados, interrupciones y transiciones.
Módem GSM TC65iT
El terminal módem CINTERION TC65T es un dispositivo de comunicación
GSM/GPRS enfocado a una amplia variedad de aplicaciones. No está
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 27/103
concebido como un producto de propósito industrial, pero esto no quita que
pueda incorporarse a este ámbito. El equipo fue desarrollado originalmente
por SIEMENS, que luego vendió la división correspondiente a la empresa
alemana CINTERION.
El TC65iT es módem GSM/GPRS cuatribanda lo que permite su uso en las
redes de comunicación GSM de todo el mundo, y con cualquier operador.
Una de sus características particulares es que dispone de un microprocesador
que le permite ejecutar programas JAVA (J2ME) y que le proporciona una
grandísima versatilidad. Esta funcionalidad, sin embargo, no se ha utilizado en
el desarrollo del presente proyecto, que utiliza solo comandos AT para control
de modem.
Dispone de varios interfaces de comunicación con dispositivos externos, lo
que lo hace muy versátil, y de una capacidad interna de procesado que lo
hace muy potente.
Descripción del módulo físico
El módem TC65iT se encierra en un terminal plástico de 190 gr de peso y
dimensiones 130 x 90 x 38 mm que tiene los siguientes elementos de
alimentación, interfaz y antena:
1. 24 puntos para alimentación y entrada/salida digital y analógica.
2. Puerto serie con conector hembra de 9 pines sub.-D
3. Conector hembra SMA para la antena
4. Botón de encendido y apagado
5. Conector hembra Western de 4 polos para audio
6. Bandeja para alojar la tarjeta SIM del operador de telefonía
7. Conector hembra Western de 6 polos para alimentación y señales de
encendido y apagado
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 28/103
8. Además en la cara superior dispone de un LED azul configurable para
(a) mostrar el estado del módulo (encendido, conectado o apagado) o
(b) la actividad de comunicación.
Alimentación
El módem TC65iT admite un rango de alimentación entre 8 y 30 V en
continua. Se puede alimentar a través de los puntos al efecto en el bloque de
24 conectores, o a través del conector Western de 6 polos, que además
incluye una señal para encendido.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 29/103
Antena
La antena estándar que se utiliza con el módem TC65T es una FMA de 3
metros que con ganancia de 0 dBm.
Cable de comunicación entre PLC y módem
El control del módem se realiza introduciendo comandos a través del puerto
serie del terminal, con protocolo ASCII de 8 bits. Las velocidades más
comunes de trabajo son 9600, 19200 o 115200 baudios.
El cable PC/PPI MULTIMAESTRO de Siemens se utiliza para programar PLCs
S7-200 desde el puerto serie de un PC. En definitiva se trata de un conversor
RS232-RS485 que puede configurarse para unir el puerto serie del módem
con el puerto RS485 del PLC.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 30/103
El cable PC/PPI multimaestro disponer de una mochila de procesado
electrónico de la señal que permite configurar el tipo de comunicación entre
ambos extremos.
El cable autoconfigura su velocidad de trabajo, por lo que los 3 primeros
interruptores no son necesarios.
El quinto interruptor indica comunicación freeport o ASCII, lo que anula buena
parte de la electrónica de la mochila y deja el cable como un mero conversor
RS232-RS485.
El microswitch 6 permite realizar una comunicación serie cruzada, necesaria
para esta unión de dispositivos en concreto.
El interruptor 7 configura comunicación a 10 bits por carácter
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 31/103
Adaptador para la conexión cable-módem
Se requiere un adaptador de 9 pines macho-macho para la conexión del
conector serie del cable al puerto del módem, ya que ambos son hembra.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 32/103
Elementos Software
STEP7 - MicroWIN
El STEP7-MicroWIN es el entorno de desarrollo y programación para PLCs S7-
200. Es un software de SIEMENS que permite configurar, programar y
mantener un proyecto, orientado tanto a trabajo offline como online.
Dispone de una multitud de subareas que permiten realizar distintas tareas,
como son:
� Desarrollar el programa del PLC.
� Asignar nombres simbólicos a las variables de un proyecto.
� Mapear y cargar en memoria un conjunto de valores de salida.
� Monitorizar y escribir en tiempo real sobre las variables y el programa
de un PLC en marcha.
� Visualizar el comportamiento del programa en ejecución dentro de un
PLC.
� Configurar características del PLC, como la velocidad del puerto de
comunicación o el grado de protección con contraseña del equipo.
� Definir el interfase de comunicaciones del PC con el PLC y gestionar
dicha comunicación.
La forma de programación de PLCs que ofrece este entorno está muy
orientada a lenguaje KOP o de contactos, y resulta muy visual pues se trata de
un sistema que representa gráficamente el flujo de información, y con cajas la
ejecución de funciones.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 33/103
Distribución del entorno de trabajo
En la parte superior de la ventana se localizan los menús e iconos de trabajo
para las funciones más comunes.
A la izquierda de la ventana se localiza un área con iconos para la navegación
por las distintas áreas y funcionalidades del entorno.
A continuación está el árbol de navegación, que recoge de forma ordenada
todos los elementos que conforman el proyecto, así como las herramientas de
programación.
A la derecha, en la subventana principal, es donde se desarrolla el trabajo:
programación, configuración, gestión de los símbolos, etc.
Finalmente, en la parte inferior está la ventana de información, que ofrece
datos sobre errores, compilación, etc.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 34/103
Bloques de programa
La definición de bloques de programa se realiza en el árbol de navegación,
creando una nueva subrutina en la carpeta de programa. Por defecto se crea
con el nombre de la subrutina libre más baja, por ejemplo SBR4. El
programador puede cambiarle el nombre para otorgarle un significado acorde
a su funcionalidad.
Dentro de las funciones el programa se estructura en segmentos, cada uno
con su número, título y recuadro para comentario.
La definición de los parámetros de entrada y salida de la función se hace en la
tabla que se muestra en la parte superior de la función. Se indica nombre, tipo
de variable y tipo en el interfaz. STEP7 MicroWIN permite incluso el paso de
punteros y cadenas como parámetros.
A continuación en la tabla se definen las variables temporales que se vayan a
usar en la función, que se mapean en la memoria dinámica L.
Desarrollo de Librerías
STEP7 – MicroWIN permite crear una librería a partir de una o varias funciones
ya programadas.
Las funciones que forman una librería se pueden integrar así en la estructura
de funciones disponibles en el entorno de programa y usarse de forma fácil y
flexible.
Las funciones y variables que usa en su interior quedan transparentes al
usuario de la librería. Igualmente la librería incorpora de forma transparente
las interrupciones que se hayan definido desde las funciones de la librería.
Las funciones de una librería deben estar programadas en su totalidad con
representación simbólica. La imposibilidad de usar direccionamientos
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 35/103
absolutos permite que el mapeo del área de memoria para el procesado de
datos internos de la librería sea flexible. La única excepción en esta
programación simbólica está en el uso de las variables de la memoria local de
las funciones, que es libre.
Creación de librerías
El proceso para crear una librería es el siguiente:
� Crear un proyecto donde se encuentren todas las funciones que se
quieren integrar en la librería, y teniendo en cuenta que toda la
programación debe ser simbólica.
� Ir a Archivo � Crear librería… La ventana correspondiente contiene 3
pestañas.
� La primera pestaña permite seleccionar las subrutinas del proyecto que
forman el conjunto de funciones de usuario de la librería (las funciones
que se llaman internamente, así como las interrupciones, se añaden
automáticamente)
� La segunda pestaña se utiliza para nombrar la librería, definir
propiedades, número de versión y ruta en la que guardarla.
� La tercera pestaña permite al programador indicar una contraseña para
la librería, lo que permite ocultar la programación interna de sus
funciones.
El resultado es un fichero de extensión .mwl que puede ser abierto desde
STEP7-MicroWIN para integrar la librería.
Integración de librerías
Para integrar una librería en STEP7-MicroWIN el proceso es:
� Ir a Archivo � Agregar o quitar librería…
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 36/103
� Se muestra la lista de las librería que ya han sido integradas en el
entorno de programación. Hay que pulsar el botón Agregar.
� Seleccionar la ruta de la librería (archivo .mwl).
� Pulsar el botón Aceptar.
Como resultado se genera en la carpeta librerías una subcarpeta con el
nombre de la librería y que contiene las funciones de usuario que estén
incluidas en ella.
Uso de las funciones de una librería
Para usar las funciones de una librería en un proyecto, el proceso es:
� Abrir la carpeta de la librería en el árbol de navegación.
� Incorporar la función pretendida en el programa del proyecto como si
fuera una subrutina más del proyecto.
� De forma automática se añadirán al programa esta función y todas
aquellas que se llamen internamente. Se localizarán, reunidas en una
subcarpeta Librerías, en la carpeta de bloques de programa del árbol de
navegación.
� Finalmente hay que asignar una zona de memoria para que la librería
sitúe las variables que utiliza internamente, en Archivo � Asignar
memoria a librería…
Acceso remoto por teleservicio
El teleservicio es la funcionalidad que permite al entorno de desarrollo
comunicar vía módem con un PLC remoto y trabajar como si estuvieran
físicamente conectados con un cable.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 37/103
Para ello se necesita un módem a ambos extremos de la comunicación, esto
es, uno conectado al PC desde el que se llama al PLC, y otro conectado al
puerto de éste.
Esta utilidad es muy demandada, pues evita a los programadores tener que
hacer desplazamientos para realizar pequeñas mejoras o en su caso un primer
diagnóstico de incidencias, que en muchos casos pueden solucionarse
fácilmente.
El teleservicio es una funcionalidad integrada de serie en STEP7-MicroWIN, y
requiere que tanto el módem local del PC como el del PLC estén
correctamente configurados. También requiere que el PLC tenga el puerto de
acceso en modo PPI.
Como las aplicaciones de PLC para control del módem utilizan el puerto en
modo freeport, es necesario habilitar vías para que, ya sea de forma remota o
localmente, se indique al PLC que debe detener la aplicación, conmutar el
puerto a modo PPI y permitir así el acceso remoto.
Comandos AT para control del modem GSM
La configuración y control estándar de un módem GSM se realiza mediante la
introducción de comandos AT a través de alguno de los interfaces habilitados.
En el presente proyecto se utiliza el puerto serie, a 9600 baudios y sin control
de flujo, lo que obliga a las partes a gestionar las colisiones convenientemente:
la iniciativa de la comunicación la toma siempre el PLC, y el modem se limita a
responder a los comandos recibidos.
La mayoría de los comandos AT admitidos por el módem se corresponden
con las convenciones GSM, pero en ocasiones los fabricantes introducen
variaciones, en general comandos añadidos o formatos diferentes.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 38/103
Lista de comandos utilizados
La lista de los comandos que se han utilizado en este proyecto, para gestión
del módem, son:
Configuración general del módem:
� AT+IPR=9600 � se utiliza para marcar al módem una velocidad en el
puerto de 9600 baudios
� AT&f0 � configura el módem con la parametrización de fábrica.
� ATE0 � elimina el ECO del puerto del módem.
� AT+cpin? � consulta si el PIN está cargado (para no repetir la
operación si no es necesario).
� AT+cpin=1234 � carga el PIN de la tarjeta SIM alojada en el módem.
� AT+gsn � consulta el código IMEI del módem.
� AT&w � graba la configuración realizada
� AT^moni � petición de características generales de la red GSM, entres
ellas la cobertura actual.
Configuración de la gestión de SMS:
� AT+cnmi=0,0,0,0 � configura el modo en el que se comporta el
módem ante la recepción de un SMS entrante. Para facilitar la
comunicación con el PLC, se ha inhibido el aviso, de forma que es el
PLC el que hace un polling preguntando al módem si tiene SMSs
nuevos.
� AT+cmgf=1 � configura el modo texto para el formato de SMS.
� AT^ssmss=1 � indica que para cualquier acción relacionada con los
mensajes SMS (lectura, almacenaje, borrado, etc) la memoria
preferentemente es la de la SIM.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 39/103
� AT+cpms=MT,MT,MT � configura las memorias de escritura, lectura y
borrado para SMSs como la suma de las disponibles en el módulo y en
la tarjeta SIM.
Configuración del módem para aceptar llamadas de teleservicio desde STEP7-
MicroWIN:
� AT&D0 � configura el puerto serie para ignorar el control DTR (Data
Terminal Ready) en el flujo de datos.
� AT\Q0 � deshabilita el control de flujo en el puerto serie.
� ATS0=1 � respuesta automática al segundo timbre para llamadas
entrantes de datos
Comandos para envío y recepción de SMS
� AT+cmgs=”+34666123456” � Comando para solicitar el envío de un
SMS al número de teléfono indicado. Ante la respuesta positiva, se debe
introducir el texto y finalizar con Control_Z.
� AT+cmgr=1 � Lectura del SMS alojado en el buzón 1 de la memoria de
SMS.
� AT+cmgd=1 � Borrado del SMS alojado en el buzón 1 de la memoria de
SMS.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 40/103
Requisitos de la aplicación final
Enfoque comercial
El programador típico de PLCs al nivel del S7-200 tiene unas nociones medias
en programación de autómatas. Una aplicación con unas necesidades de
gestión de datos y de las comunicaciones tan complejas como la gestión de
SMSs escapa a las posibilidades de la mayoría de ellos.
Es por eso que se hace necesario enfocar la creación de esta librería desde un
aspecto que haga completamente transparente la gestión del módem, los
aspectos de la comunicación, la gestión del puerto, etc.
En este sentido, con Nubitek SMS Manager la primera preocupación fue lograr
que todos los aspectos relacionados con el módem fueran ajenos al
programador:
Los modems compatibles, TC35i, TC65iT y MC55iT, vienen de fábrica con
diferente velocidad del puerto por defecto. Lo primero que hace Nubitek SMS
Manager es configurar la velocidad del módem a 9600 baudios, pero se lo
comunica varias veces, haciendo un barrido inicial a diferentes velocidades.
Así se evita que el programador tenga que entrar a configurar la velocidad del
puerto por sí mismo, con el hiperterminal.
Nubitek SMS Manager no se limita a hacer el envío y recepción de SMS, sino
que se encarga de la gestión total del módem. El módem se puede sacar de la
caja según llega de fábrica y conectarse a la aplicación, que carga toda la
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 41/103
configuración necesaria. Esto aumenta el tamaño que ocupa la librería en la
memoria de programa del PLC, pero facilita muchísimo al programador la
puesta en marcha.
Otra preocupación durante el desarrollo fue evitar que el programador tuviera
que gestionar las colisiones entre acciones, esto es, que la aplicación pudiera
asimilar órdenes de envío y recepción de SMSs de forma asíncrona y
simultánea, pero que la ejecución de todas ellas se realizara de forma síncrona
y ordenada. Dos alarmas pueden saltar al mismo tiempo, pero el módem no
puede mandar dos SMS al mismo tiempo, su envío debe ser secuencial.
Igualmente un SMS de entrada no puede perderse porque en ese momento se
esté procesando un SMS de salida.
Por último, la recepción de SMS no podía limitarse a recibir una cadena y
servirla al programador para que él la analice, puesto que en muchos casos el
procesado de cadenas de texto resulta ajeno al programador de PLCs. El
enfoque va más allá y lo que ofrece es la detección de un SMS con un patrón
determinado, mediante la búsqueda de palabras clave. Es decir, la aplicación
no sirve el SMS recibido, sino que avisa de cuál es el SMS recibido.
La clave de protección
La comercialización de la aplicación requiere que se pueda cobrar un precio
por ella, lo cual ofrece dos enfoques:
� Cobrar por la descarga: las desventajas son enormes, pues no se puede
controlar el número de veces que un cliente la usa, el cliente no puede
conocer el producto antes de comprarlo, su publicación en Internet
anularía la capacidad de venta por pago, etc. La única ventaja: la
aplicación se simplifica y ocupa menos espacio.
� Cobrar por una licencia: permite descargar la aplicación para conocerla
antes de comprarla, pero el principal obstáculo era cómo generar una
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 42/103
licencia para un PLC, y sobre todo que esa licencia no pudiera aplicarse
a todas las instalaciones (un cliente con una única licencia podría poner
50 estaciones en marcha).
La solución para optar por el sistema de licencias está en ligar la clave de uso
a un parámetro único de cada instalación, fácilmente accesible y declarable
por el usuario final, y a su vez accesible por la aplicación del PLC: el parámetro
que reúne todas estas condiciones es IMEI del módem, puesto que el PLC no
dispone de un número de serie accesible internamente por programa.
Las aplicaciones de Nubitek, durante la inicialización y aleatoriamente durante
el uso, consultan el IMEI del módem que está conectado al PLC, lo procesan
según un algoritmo matemático y obtienen un valor entero entre 1 y 32000.
Debe coincidir con la clave de licencia que se introduce como parámetro de
entrada de la función principal. Si no la aplicación apaga el módem y luego se
bloquea.
El uso de la clave ofrece una ventaja extra, que es la opción de crear claves de
prueba. Las aplicaciones de Nubitek admiten el cero como clave de prueba, lo
que otorga a la aplicación funcionalidad completa, salvo que se bloquea cada
cinco horas y debe reiniciarse la CPU.
En definitiva, un usuario puede descargar la librería y probarla en su totalidad
sin tener que desembolsar nada de dinero, y al mismo tiempo Nubitek se
asegura de que la librería no se puede usar indiscriminadamente y de que
venderá una licencia por cada una de las instalaciones en las que se vaya a
aplicar.
Fiabilidad y Robustez
Nubitek SMS Manager es una aplicación que por su propia naturaleza está
enfocada a instalarse en lugares remotos, y es por esto que no se puede
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 43/103
contar con un servicio de mantenimiento que se haga cargo de ella de manera
corriente.
Dicho de otra forma, la aplicación debe ser capaz de reponerse a cualquier
eventualidad: pérdida de cobertura, perdida de alimentación, fallo de envío de
sms, etc.
Por un lado la aplicación vigila que su ritmo de progreso sea normal. Si se
reinicia el PLC por una pérdida de alimentación o si detecta alguna anomalía
(el módem no responde o su respuesta no es la esperada, etc), entonces se
reinicia la aplicación y se reconfigura el módem, y sigue intentándolo hasta
que se normaliza la situación de nuevo.
Por otra parte, el buffer de envío de SMSs salientes queda a salvo de errores,
esto es, si un SMS saliente no se envía correctamente, o si la alarma salta en un
momento en el que el módem no está disponible, o si saltan varias al mismo
tiempo, el buffer queda con la información almacenada hasta que se
consiguen sacar los envíos de SMS adelante. Es el único área de datos que no
se reinicializa, pero para evitar problemas también hay un proceso que elimina
registros que hayan quedado incoherentes.
La gestión de errores
En aplicaciones técnicas que resultan ajenas a los programadores la garantía
de un soporte técnico resulta tan importante como el realizar una aplicación
accesible. Para ello la librería incluye un campo interno que indica el tipo de
error que haya podido ocurrir: problemas con el PIN de la tarjeta SIM o con la
clave Nubitek, falta de cobertura, de comunicación con el módem, de
recepción de SMSs, etc.
Es una información accesible para que el propio programador solucione
rápidamente algún problema, pero también un dato que puede indicar al
soporte técnico para facilitar el diagnóstico remoto de un problema.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 44/103
Estudios previos
Antes de abordar la construcción final de la aplicación, y teniendo en cuenta
los requisitos funcionales que se habían marcado para el producto final, se
realizaron en paralelo una serie de trabajos previos en investigación, diseño,
creación de herramientas software, etc.
Control del modem desde el hiperterminal
El primer paso para el desarrollo de la aplicación para el PLC consistió en
conocer a fondo el protocolo de intercambio de información con el modem,
mediante los comandos AT. Este estudio se realizó prescindiendo del PLC, y
conectando el modem directamente a la aplicación hiperterminal del PC, que
permite el acceso directo al puerto serie. De esta forma el puerto serie del
modem queda directamente enlazado a la pantalla y teclado del ordenador.
El objetivo de este estudio fue primero conocer la lista de comandos para
configurar el modem exactamente según las necesidades y para procesar el
envío y recepción de SMSs de una forma asumible por el PLC. Uno de los
objetivos principales en esta fase fue alcanzar una configuración del modem
en el que todas las comunicaciones pudieran ser siempre iniciativa de la parte
del PLC (por ejemplo ante la llegada de un nuevo SMS al modem, su
configuración por defecto es enviar una trama de aviso, pero se buscó la
opción de que las consultas al buffer de entrada se hicieran siempre a petición
del controlador).
Un segundo objetivo fue conocer la familia de respuestas a los comandos
utilizados. La más común de todas, especialmente a los comandos de
configuración, es “OK”.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 45/103
Un tercer objetivo fue conocer el comportamiento del modem ante fallos,
incidencias y errores, para generar en el PLC un driver de comunicaciones
robusto y capaz de reponerse de forma autónoma a respuestas de error y a
cualquier eventualidad.
Por último se estudió el tiempo de respuesta a los comandos del proceso,
para establecer de forma correcta la gestión de tiempos del driver de
comunicaciones.
Desarrollo del driver de comunicaciones
El driver de comunicaciones es una pieza del código del PLC que se desarrolló
para facilitar de forma completamente transparente al resto del proyecto una
funcionalidad de diálogo a través del puerto del PLC, en protocolo ASCII. Este
driver es transparente al usuario final de la aplicación, es decir, está concebido
para facilitar la programación a nivel interno para esta y para otras librerías de
comunicación entre un PLC y un módem.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 46/103
El driver se contempla como una herramienta de comando y respuesta para
gestión dentro de una máquina de estados, de forma que en cada estado se
lanza de salida una cadena de texto como comando (o consulta), a
continuación se pasa a modo de escucha, y en función de la respuesta
recibida la máquina cambia a otro estado, donde si procede se puede iniciar
de nuevo el proceso de comunicación.
El driver gestiona eventos asíncronos de la comunicación (fin de mensaje
saliente, nuevo mensaje entrante, etc.) pero ofrece a la capa superior una
interfaz síncrona que facilita su uso en la librería. En cada ciclo de
comunicación internamente el driver pasa por los siguientes estados: reposo,
mensaje de salida en marcha (síncrono por evento de programación), mensaje
de salida finalizado y transición a modo de escucha (asíncrono por evento del
puerto de comunicaciones), mensaje recibido (asíncrono por evento del
puerto de comunicaciones), cuerpo del mensaje recibido listo para análisis
(síncrono e interno al driver), fin del análisis (síncrono por evento de
programación), y de nuevo a reposo.
Este driver ofrece a la capa superior funcional un conjunto de dos funciones,
una para realizar un envío de una cadena y otra para detectar qué respuesta
se ha recibido. Esto permite que desarrollar muy fácilmente cualquier nuevo
protocolo de relación con el módem, enviando comandos y analizando
respuestas.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 47/103
La función de envío de cadena se llama “Enviar_Cadena” y tiene como
parámetros el texto a enviar, una variable booleana para indicar si hay o no
que concatenar un parámetro en el comando (debe ser colocado con
anterioridad en una posición predeterminada de la librería), otra variable para
indicar si el parámetro debe concatenarse entrecomillado, y finalmente un
parámetro para expresar el tiempo máximo que requiere la respuesta en
recibirse completa una vez que comienza a recibirse (por ejemplo la cadena
con el grado de cobertura requiere más de los 500 ms previstos por defecto).
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 48/103
La función de análisis de la respuesta se llama “Buscar_Cadena” y tiene como
parámetro de entrada una palabra que hay que encontrar en la respuesta y
como parámetro de salida el bit que activa el nuevo estado al que se pasa si la
búsqueda ha resultado positiva. Dentro de un estado se puede llamar varias
veces a la función “Buscar_cadena”, en caso de que se puedan esperar varias
respuestas.
El driver también indica a la capa superior funcional si hay un error por
timeout en la respuesta es decir, no ha habido respuesta al último comando) o
si la respuesta recibida no coincide con ninguna de las que se han previsto.
Como lo que prima es la robustez del sistema, y dadas también las
limitaciones de un sistema PLC, en general ante cualquier imprevisto en las
comunicaciones la opción es reiniciar el modem y reconfigurarlo todo de
nuevo antes de retomar la aplicación.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 49/103
Diseño de la máquina de estados
La máquina de estados es la arquitectura ideal para gestionar una aplicación
de este tipo. Permite trabajar de forma muy ordenada sobre un proceso
complejo y lleno de eventos asíncronos. Los tipos de procesos que se han
aplicado a estados particulares son:
� Realizar un ciclo completo de comando y respuesta con el modem. En
función de la respuesta se hace la nueva transición a un estado u otro.
� Realizar un periodo de espera. Por ejemplo, después de cargar el PIN
se pasa a un estado que consiste en esperar 10 segundos antes de
continuar con la configuración del modem.
� Realizar un procesado de la respuesta del modem. Por ejemplo, al
solicitar el nivel de cobertura la cadena recibida es compleja y contiene
mucha información adicional. Por tanto tras este ciclo de comunicación
se pasa a un estado en el que lo que se hace es analizar la cadena
recibida (que permanece en el buffer de recepción) para extraer el dato
de cobertura.
� Realizar un procesado para generar un comando de salida al modem.
Por ejemplo, cuando se está enviando un SMS de salida, se realizan dos
ciclos de comunicación con el modem, uno para indicar el teléfono al
que se envía el SMS, y un segundo con el texto. Entre ambas fases de
comunicación (2 estados) existe un tercer estado en el que se
construye la cadena de texto.
� Reposo. En el estado de reposo no se realizan acciones concretas, sino
que se monitorizan de manera continua los eventos que lanzan
procesos, como por ejemplo, enviar un nuevo SMS, consultar los SMSs
entrantes, etc.
Utilizando estas 4 acciones, más la gestión del estado de reposo, la máquina
de estados permite construir la aplicación como una secuencia controlada.
Desde el punto inicial se realiza una larga cadena secuencial de pasos que
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 50/103
tiene como objeto inicializar y configurar el modem, y que una vez que
termina da paso al estado de reposo. Desde el estado de reposo se pueden
lanzar, de forma ordenada, determinados procesos. Todos ellos vuelven al
estado de reposo una vez finalizados.
Si se encuentra una nueva orden de salida en el buffer de mensajes salientes,
se arranca la secuencia de estados que envían un SMS.
Si vence el temporizador de lectura entrante, se arranca la secuencia de
estados que consultan si hay nuevos mensajes en el buffer de SMS entrantes
del modem, y si la respuesta es positiva se lee el mensaje y se analiza.
Si se ha solicitado un paso a modo teleservicio, se arranca la secuencia de
estados que modifica la configuración del puerto para pasarlo de modo
freeport a modo PPI, y a continuación se detiene la aplicación de gestión de
SMSs.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 51/103
Estructura del programa
Bloques funcionales del programa
La máquina de estados
La forma óptima de afrontar una aplicación orientada a la comunicación por
módems es utilizando la máquina de estados, donde cada estado está ligado a
un ciclo pregunta-respuesta con el módem, a un periodo de espera, o a una
operación concreta de procesamiento de datos.
La secuenciación de estados viene dada por la lista de comandos y sus
respuestas posibles, estableciéndose un árbol de estados en función de las
repuestas que da el módem. Por ejemplo, al preguntar si el PIN está cargado,
una respuesta negativa hace pasar al estado de carga de PIN y una positiva
hace saltar al comando siguiente, la consulta del IMEI.
En el estado de reposo es un gestor de transiciones el que decide salir a un
estado ejecutivo si procede. Los eventos que pueden provocar salir del reposo
son la existencia de SMSs en el buffer de salida, la temporización de consulta
de SMSs entrantes.
El gestor de salida de SMSs
Durante el reposo, en cada ciclo de programa el gestor de salida de SMS
consulta si hay nuevos mensajes en el buffer de salida, en cuyo caso hace salir
al sistema del estado de reposo e iniciar el proceso de envío de SMS, que se
compone de 4 estados: indicación al módem del teléfono de destino,
construcción del texto del SMS, envío del texto y fin del envío.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 52/103
El buffer de salida de SMSs es un buffer para 7 mensajes diferentes, donde se
guarda información sobre el estado de progreso de cada envío, el/los
número(s) de destino, la posición de memoria donde se encuentra el mensaje,
y en su caso el valor que se quiere integrar en el cuerpo del mensaje.
La separación entre las operaciones que introducen datos en el buffer y las
que ejecutan el envío de los SMS es un pilar básico de la estructura de esta
aplicación. Esto permite simplificar los procesos y a su vez hacerlos más
eficientes.
La petición de envío de un SMS es un proceso controlado por el programador
y está asociado a eventos ajenos a la aplicación, por lo que se puede producir
en cualquier estado. Con la separación de procesos se permite que se ordenen
varios envíos simultáneamente o que se haga cuando el modem esté ocupado
en otro proceso.
El envío de SMSs se dispara siempre que la aplicación está en estado de
reposo y hay mensajes en el buffer. Durante el reposo el sistema recorre el
buffer buscando algún registro ocupado, en cuyo caso lo marca como activo y
dispara el proceso de envío.
A efectos prácticos, aunque la entrada de un SMS enviado a 2 destinos
diferentes sea un único registro en el buffer, el proceso de envío lo considera
completamente como 2 envíos diferentes. Primero se envía el SMS al primer
número de teléfono, una vez finalizado el proceso y vuelto al estado de
reposo, el sistema volverá a recorrer el buffer y encontrará que este registro
sigue ocupado y que falta por enviar al segundo destino, por lo que lanzará un
segundo proceso de envío.
El sistema de buffer de salida hace que el sistema sea aún más robusto,
puesto que el buffer no se libera hasta que el SMS ha sido enviado con éxito.
Si hubiera un problema con el envío, la aplicación realizará un proceso de
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 53/103
inicialización y reconfiguración del módem, tras el cual volverá a un estado de
reposo, en el que encontrará de nuevo que tiene un SMS en el buffer de salida.
El gestor de recepción de SMSs
La llegada de SMSs al módem puede ocurrir en cualquier momento, no ya solo
en cualquier estado, sino en cualquier momento de la ejecución del programa.
Es un evento completamente asíncrono. Por eso la aplicación, durante la
configuración, indica al módem que no notifique la llegada de SMSs, sino que
espere a ser consultado sobre ello.
Así la aplicación sí que puede gestionar la recepción de SMSs de una forma
controlada y síncrona, en el momento que le interesa. Durante el estado de
reposo el sistema hacer correr un temporizador. Cuando se acumulan 5
segundos en estado de reposo, el gestor de recepción hace salir del estado de
reposo y entrar en el proceso de recepción de SMS.
Lo primero que hace es consultar si hay algún mensaje nuevo. La respuesta
puede ser negativa, en cuyo caso vuelve al estado de reposo, o positiva, en
cuyo caso la respuesta es el propio SMS, junto con todos los datos asociados:
fecha y hora, remitente, etc.
En caso de haber recibido un nuevo SMS se coloca el texto en un buffer y se
lanza el proceso de reconocimiento, tras lo cual se borra el mensaje de la SIM
y se vuelve al proceso de reposo.
El gestor de fallo
El gestor de fallo es un proceso dentro de la aplicación que gestiona de una
forma centralizada cualquier incidente que se haya podido producir.
Cuando un proceso detecta un problema aborta su ejecución y activa un bit
de fallo específico, que es analizado por el gestor de fallo. La actuación
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 54/103
posterior consiste en informar del error o incidencia ocurrida, escribiendo el
código de error en el campo al efecto, y acudir a un estado apropiado, como
pueda ser el de bloqueo (por ejemplo por fallo de PIN o de clave), el de
inicialización de la aplicación (por ejemplo por fallo de comunicación con el
módem) o el de continuar por donde iba (por ejemplo por medida de
cobertura escasa).
El gestor de fallo es una herramienta fundamental para este tipo de
aplicaciones si se pretende que sea válida para que una comunidad de
programadores haga uso de ella, pues es necesario que dispongan de
opciones de depuración de fallos para cuando realizan la puesta en marcha de
la aplicación, en muchas ocasiones desplazados, con pocas opciones de
recibir soporte, y con plazos de finalización ajustados.
El área de variables de usuario
La aplicación dispone de dos vías de intercambio de información con el
programador/usuario.
La primera es el propio programa, a través del intercambio de parámetros en
la llamada a las funciones de la librería: pin de la tarjeta SIM, teléfonos de
destino, etc.
El otro interfaz es el área de intercambio de variables de usuario, que se
mapea al comienzo del área de memoria V asignado a la librería. En este
grupo de variables se encuentra información de interfaz con la aplicación en
ambos sentidos, y se enfoca a procesos de puesta en marcha y de eventos
puntuales paralelos al programa, como el código de error, la medida de la
cobertura, la gestión del teleservicio, etc.
Esta forma de intercambiar información con el usuario permite englobar un
amplio surtido de datos para que programadores avanzados puedan
integrarlas en la aplicación de SMS, para que aplicaciones un poco más
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 55/103
complejas dispongan de su interfaz, para que el soporte y el proceso de
puesta en marcha sea más claro. Igualmente con este sistema se limita el
interfaz de las funciones de usuario a los parámetros estrictamente
indispensables.
Enviar SMS
Función de envío de SMSs
La función de envío de SMS se usa una vez por cada mensaje SMS que se
quiera enviar. Dispone de 4 parámetros de entrada, 2 de los cuales son de
obligada definición: la posición del texto del mensaje y de un número de
destino. Aparte se puede incluir un segundo teléfono de destino y un valor
numérico que se desea integrar en el texto del mensaje, (usando el
procedimiento previsto para ello).
La función de envío de mensaje funciona internamente como un administrador
que busca un hueco libre en el buffer de salida de mensajes e introduce en él
todos los datos necesarios para que el mensaje sea procesado.
Así, la orden de enviar un mensaje, desde el punto de vista del usuario, se
procesa incluso cuando el modem no está habilitado o cuando hay otro SMS
siendo enviado.
Estructura de buffer de salida de SMS
El buffer de salida de SMS consta de 7 registros de 18 bytes cada uno. La
llamada a la función Send_SMS busca un registro libre y lo rellena con los
datos del SMS que se quiere enviar.
La cabecera del registro se utiliza en modo binario, teniendo cada bit un
significado. El primero indica que el registro está ocupado, y el segundo que el
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 56/103
registro está activo, es decir, que se está procesando el envío de uno de sus
SMSs. En la cabecera hay además 2 bits para indicar qué registros de teléfono
están ocupados (el primero, el segundo, o los dos) y 2 bits para hacer el
seguimiento de envío de los textos.
A continuación hay 4 registros de 4 bytes cada uno. El primero es un puntero
al comienzo del texto del SMS, el segundo y tercero son los punteros al
comienzo de las cadenas de los números de teléfono de destino, y el último es
un puntero a la variable que se desea insertar en el texto.
La importancia del buffer es que permite desligar la parte síncrona de la
asíncrona en el envío de SMSs. Además permite que la gestión del proceso de
envío se gestione de una forma síncrona por parte de la aplicación principal, y
que las órdenes de envío se generen de forma asíncrona y distribuida por las
funciones de envío SMS.
Proceso de envío de un SMS
Cuando la máquina de estados está en reposo el proceso de salida de SMS
escanea permanentemente el buffer de salida en busca de registros ocupados
y pendientes de ser enviados.
Cuando encuentra uno lo primero que hace es marcarlo como activo y guarda
el puntero al inicio del buffer en el campo reservado para ello.
A continuación salta al primer estado del proceso de salida de un SMS: la
petición de envío de SMS a un teléfono de destino. Se envía el comando
at+cmgs al módem, seguido del primer teléfono de destino, que se concatena
a la cadena de comando gracias a que se dispone del puntero a su comienzo.
Cuando se recibe la respuesta “>” el modem está listo. Entonces se pasa al
siguiente estado, que es la construcción del texto y su colocación en el buffer
correspondiente. Se copia, usando el puntero al comienzo del texto, y si
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 57/103
procede se sustituye el identificador de variable por la cadena con el valor
actual de la variable que se quiera insertar (cuyo puntero está en el cuarto
campo del registro).
A continuación se pasa al siguiente estado, que es el envío del texto. Se
comunica directamente al módem, acabando con el marcador Control^Z.
La respuesta “CMGS” indica que el envío ha resultado con éxito, y entonces se
pasa al último paso de un envío, que es el cierre. En este proceso se actualizan
los datos del registro. Si no hay un segundo teléfono de envío, se libera el
registro. Si lo hay, se borran los datos del campo de cabecera que indican que
hay que enviar el primer SMS y se desactiva el bit de registro activo.
Finalmente se vuelve al modo de reposo, que volverá a recorrer el buffer en
busca de SMSs que enviar.
Construcción del texto e inclusión de valores numéricos
La aplicación de envío de SMSs permite insertar de forma automática el valor
de una variable en el lugar que se precise del cuerpo del SMS. Para ello es
necesario cubrir dos aspectos:
En la cadena de texto general debe colocarse un identificador adecuado que
marca la posición en la que se pone la variable, y el tipo de dato que es.
En la llamada al bloque envío SMS, debe incluirse el puntero al dato que debe
ser insertado. Por supuesto, debe coincidir en tipo de dato con el del
identificador.
Llegado el momento del envío del SMS, en la fase de construcción del texto la
aplicación coloca la cadena en el buffer de envío y lo escanea en busca de un
identificador de tipo &. Si no lo encuentra se da el visto bueno al envío, pero si
lo encuentra se inicia el proceso de inserción de la variable:
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 58/103
Se identifica el tipo de dato que debe ser insertado, en función del carácter
localizado a continuación del modificador “&”. Puede ser I,D o R, para indicar
un valor entero, doble entero o de tipo real.
Se lee el valor de la variable a la que apunta el puntero y se hace la conversión
a cadena de texto.
Se elimina de la cadena a enviar el identificador y se sustituye por la cadena
generada con el valor numérico de la variable.
Ahora sí se da el visto bueno al envío.
Recibir SMS
Función de recepción de SMS
La función de recepción de SMSs se utiliza para declarar un patrón que, de ser
reconocido en un SMS entrante, hará que se active un bit de reconocimiento.
La función principal es la que gestiona el flujo de SMSs entrantes, y captura el
texto para servirlo limpio a las funciones de recepción de SMS, que se limitan a
analizarlo y activar el bit de reconocimiento de SMS si procede. Es por así
decirlo, una gestión centralizada y un análisis distribuido.
Muestreo de recepción de SMS
La recepción de un mensaje en el módem es un evento absolutamente
asíncrono, que depende de la red GSM, no del PLC. Para que no interfiera en la
cadencia de comunicaciones por el puerto del PLC, el módem se configura
para que no anuncie de manera activa la llegada de un nuevo mensaje. Así, es
el PLC el que, cada 5 segundos aproximadamente, le consulta al modem si
tiene un nuevo mensaje recibido. Esta forma de consulta se integra fácilmente
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 59/103
dentro del orden del PLC, y le permite seguir manteniendo la iniciativa en
cualquier tipo de comunicación con el módem.
Para facilitar la tarea de muestreo, se utiliza una de las características del
almacenamiento de SMSs: el sistema de la SIM dispone de una serie de
buzones, entre 1 y n, en los que puede guardarse el mensaje recibido, y un
mensaje entrante siempre se almacena en el que esté libre con el valor de
dirección más bajo. La aplicación utiliza el buzón 1, de forma que lo mantiene
siempre vacío. Si llega un mensaje, lo lee, lo sirve al análisis y lo borra, para
que el siguiente mensaje vuelva a guardarse en el buzón 1.
Las 3 posibles respuestas a una consulta de lectura de SMS son: a) que el
buzón está vacío, con lo que no se hace nada y se vuelve a preguntar
transcurrido un tiempo, b) que el buzón tiene un mensaje ya leído, con lo que
el modem lo sirve pero el PLC lo ignora y lo que hace es borrar el mensaje
para dejar el buzón libre, y c) que el buzón tiene un mensaje nuevo, con lo que
el modem también lo sirve y la aplicación actúa.
La actuación en caso de mensaje entrante, siempre dentro de la gestión
central, consiste en capturar de la respuesta global del modem lo que es el
texto limpio del SMS, y colocarlo en una posición de memoria predeterminada.
A continuación se activa un bit de “mensaje recibido y listo para ser
analizado”, que permita a las funciones distribuidas de recepción de mensaje
analizarlo y compararlo con cada uno de los patrones definidos.
Tras el ciclo de análisis se borra el mensaje del buzón para volver a dejarlo
vacío. Si el mensaje recibido no se ajustara a ningún patrón, se activaría el
aviso de “mensaje recibido no ajustado a ningún patrón”.
En resumen, toda la gestión de mensajes entrantes queda bajo la
responsabilidad de la función principal, que cuando recibe uno nuevo lo deja
dispuesto para que las funciones de “análisis de patrón” lo identifiquen.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 60/103
Análisis de mensajes entrantes
Las función de análisis de SMS entrante están siempre activas, en todos los
ciclos de programa. Sin embargo solo actúan si está activo el bit de “mensaje
recibido y listo para ser analizado”. En ese caso cotejan el patrón que tienen
definido a la entrada con la cadena de texto del mensaje entrante, y avisan si
el resultado es positivo.
La función puede utilizarse en el programa tantas veces sea necesario para
definir todos los patrones diferentes que se quiera. Cada llamada debería
activar un bit diferente, correspondiente a cada patrón diferente.
La función de recepción de SMS permite que se declaren 1 ó 2 palabras clave.
Si son encontradas en el texto de un mensaje entrante, se activa el bit de
salida (en el caso de tener dos palabras clave definidas, deben encontrarse las
dos para dar respuesta positiva).
El sistema incorpora tres vías para robustecer la identificación de mensajes:
� Permite que las palabras clave se integren en un texto con más
información aparte de las propias palabras clave, es decir, solo es
necesario que las palabras estén contenidas en el mensaje. Si hay
palabras o texto de más, es ignorado.
� Permite que el orden en el que se encuentran las palabras sea
cualquiera, es decir, no requiere que el orden en el que se sitúan las
palabras clave dentro del mensaje sea el mismo que con el que se
definen en la función.
� No diferencia entre letras en mayúsculas y minúsculas, lo que minimiza
errores por este motivo. La aplicación primero convierte a minúsculas el
texto del mensaje y también las palabras clave, y luego hace la labor de
cotejado. Así, si el patrón estuviera definido en minúsculas, no dejaría
de identificarse en un mensaje enviado en mayúsculas, o que tenga la
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 61/103
primera letra en mayúsculas por acción correctora automática del
móvil.
Captura de valores numéricos
Si el patrón definido por palabras clave es localizado de forma positiva, la
función de análisis de mensajes entrantes lanza una segunda funcionalidad,
tratando de localizar valores numéricos en el cuerpo del mensaje. Si localiza
alguno, lo convierte a valor de tipo real y lo sirve a través del otro de los
parámetros (en este caso de entrada/salida) de la función.
Esto permite al usuario dar comandos al sistema no solo de tipo maniobra,
sino también de configuración o parametrización.
Teleservicio
El teleservicio es una funcionalidad propia de los sistemas Siemens. Permite
que el entorno de desarrollo del S7-200, STEP7 MicroWIN, acceda de forma
remota al equipo, al igual que lo haría si estuviese físicamente conectado con
un cable. La aplicación está integrada en el entorno MicroWIN y resulta de
gran utilidad a los programadores porque les permite realizar un acceso
remoto para mantenimiento y modificaciones.
El teleservicio consiste en realizar una llamada de datos desde un módem
GSM conectado al PC hasta el módem GSM conectado al PLC. MicroWIN, el
PLC y ambos modems deben estar correctamente configurados para soportar
esta operación. Una vez establecida la llamada de datos, que inicia la parte del
PC, se habilita el enlace entre MicroWIN y el PLC para trabajar con el
programa en la forma habitual (tan solo difiere en la velocidad de trabajo, que
se reduce considerablemente). El enlace se conforma sobre una llamada de
datos, no sobre enlace de tipo GPRS.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 62/103
El teleservicio no es un desarrollo de Nubitek, pero Nubitek SMS Manager es
compatible con él. Desde el punto de vista del PLC, hay dos aspectos
fundamentales a tener en cuenta para permitir esta compatibilidad:
El modem del PLC, receptor de la llamada, debe estar correctamente
configurado. Mediante los comandos AT adecuados el software Nubitek SMS
Manager le deshabilita el control de flujo en la comunicación del puerto, le
deshabilita la señal DTR del puerto, y lo más importante, habilita la respuesta
automática al primer tono cuando se reciba una llamada de datos entrante.
La carga de estos comandos no interfiere en el funcionamiento habitual de la
aplicación Nubitek SMS Manager, por lo que la aplicación los carga en el
modem por defecto, durante la configuración inicial, y así queda preparado
para una eventual llamada de teleservicio.
El puerto del PLC debe estar configurado en modo PPI, para que un vez que
se ha establecido el enlace entre los modems, se pueda establecer el enlace
entre MicroWIN y PLC. La aplicación Nubitek SMS Manager en régimen normal
trabaja con el puerto del PLC en modo freeport, que es el que le permite
comunicarse mediante comandos AT. Por tanto la aplicación debe ser avisada
previamente de que se va a hacer un acceso por teleservicio para que pueda
parar la aplicación de mensajes, liberar el puerto y conmutarlo a modo PPI.
Petición y finalización
Un bit interno de la aplicación se utiliza para solicitar la conmutación a modo
Telerservicio. Cuando este bit está activado ocurren varias cosas. Lo primero
es que se deja terminar el proceso en marcha (envío de un SMS saliente,
consulta o lectura de un SMS entrante, etc). Cuando se vuelve a la situación de
reposo la aplicación para todos los procesos relacionados con la gestión de
SMS (sin reiniciar los buffers ni nada) y conmuta el puerto a modo PPI.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 63/103
BLOQUE II
UTILIZACIÓN DE LA LIBRERÍA DE GESTIÓN DE MENSAJES
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 64/103
Requerimientos mínimos
CPU S7-200
Nubitek SMS Manager requiere ejecutarse en una CPU 224 o superior, y de
última generación (es decir, con referencia xxx23, firmware 2.0). La lista de
CPUs válidas es:
CPU 224 DC 6ES7 214 1AD23 0XB0
CPU 224 AC 6ES7 214 1BD23 0XB0
CPU 224XP DC 6ES7 214 2AD23 0XB0
CPU 224XP AC 6ES7 214 2BD23 0XB0
CPU 226 DC 6ES7 216 2AD23 0XB0
CPU 226 AC 6ES7 216 2BD23 0XB0
Cable PC/PPI
El cable PC/PPI que se ha considerado para el desarrollo de la aplicación es el
cable PC/PPI Multimaestro de ref. Siemens 6ES7 901 3CB30 0XA0. Por tanto
este es el que Nubitek recomienda para conectar el puerto de la CPU con el
módem GSM. Versiones anteriores del cable u otros modelos de adaptador
PC/PPI podrían ser válidos, pero no se puede garantizar el correcto
funcionamiento de la comunicación.
STEP7 MicroWIN
Para instalar y utilizar Nubitek SMS Manager se precisa de STEP7 MicroWIN
4.0 Service Pack 2 o una versión superior.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 65/103
Memoria de programa
La librería Nubitek SMS Manager requiere 6.0 Kbytes de la memoria de
programa del S7-200.
Memoria de variables
La librería Nubitek SMS Manager se reserva un total de 771 bytes en la
memoria V para poder realizar la gestión interna de sus variables de trabajo. El
usuario no debe usar esta área en su programa de control.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 66/103
Instalación de Nubitek SMS Manager
Nubitek SMS Manager es una librería para gestionar el envío y recepción de
SMS que está lista para integrarse en el entorno de programación STEP7-
MicroWIN.
¿Qué es una librería?
Una librería es un subprograma que realiza una función de control
determinada, de forma autosuficiente y encapsulada. Así, quien usa una
librería no necesita preocuparse por el funcionamiento interno de la misma.
Un ejemplo de librería es Nubitek SMS Manager. Quien la usa en sus
programas sólo tiene que proporcionarle los parámetros de uso, como el
número de móvil del destinatario y el texto. La librería se encarga de la
compleja gestión del módem y del envío del SMS.
Una característica importante de una librería es que se integra en el entorno
de desarrollo/programación como una función más del sistema, lo que
permite al programador usarla en cualquiera de sus programas de control, con
un importante ahorro de tiempo de desarrollo y con una mayor fiabilidad.
Pasos para instalar la librería en STEP7-MicroWIN
Para poder hacer uso de la herramienta Nubitek SMS Manager, en primer lugar
se debe proceder a la instalación de la librería en el entorno de programación
STEP 7 MicroWIN.
1. Debe obtenerse el archivo nubitek_sms_manager_v1.3.mwl de la
librería Nubitek SMS Manager (por ejemplo desde la página de
descargas de la web www.nubitek.com).
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 67/103
2. Abrir STEP7-MicroWIN
3. En la barra de menú, hacer clic en Archivo -> Agregar o quitar librería...
4. Hacer clic en Agregar, acceder al directorio donde está el archivo
nubitek_sms_manager_v1.3.mwl de la librería. Una vez agregada, pulsar
Aceptar para salir.
5. En este punto la librería Nubitek SMS Manager ya debe estar instalada.
Puede verificarse accediendo al icono Librerías que hay en el árbol de
operaciones: debe aparecer la carpeta de la librería y las 3 funciones
que la componen.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 68/103
La librería está instalada: pueden usarse estas 3 funciones de gestión de SMS
como si fueran una función más de MicroWIN.
Asignación de memoria a la librería
Una vez que se empiezan a usar las funciones de la librería en un proyecto, y
siempre antes de cargarlo o compilarlo, se debe asignar a la librería un rango
de memoria: su gestión interna requiere 771 bytes en memoria V, cuya
ubicación puede definir el usuario.
1. Hacer clic en Archivo->Asignar memoria a librería:
2. En la ventana que se abre, seleccionar la pestaña Nubitek SMS Manager
(si no se tiene otras librerías instaladas será la única pestaña existente)
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 69/103
3. Pulsar el botón Proponer dirección y MicroWIN indicará un rango de
memoria libre.
Si por cualquier razón se prefiere otro rango distinto basta con volver a
pulsar sobre Proponer dirección o escribir directamente la posición de
inicio deseada.
Importante: nunca deben incluirse variables de usuario del programa de
control en este rango de memoria que usa la librería.
4. Pulsar Aceptar.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 70/103
Hardware: conexionado y configuración
Equipos necesarios
Los elementos hardware necesarios para la instalación son:
� Una CPU SIMATIC S7-200 (mínimo CPU224 v2.0)
� Un módem GSM, con antena y fuente de alimentación. Se puede usar
cualquiera de las siguientes opciones:
� Cinterion TC35i Dual-Band EGSM900 / GSM1800 MHz
� Cinterion TC65iT Quad band: GSM 850/900/1800/1900 MHz
� Cinterion MC55iT Quad band: GSM 850/900/1800/1900 MHz
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 71/103
� Una tarjeta SIM activa de cualquier operador de telefonía móvil.
� Un cable PC/PPI multimaestro (ref. 6ES7 901 3CB30 0XA0, de
Siemens)
� Un adaptador macho-macho de 9 pines sub-D.
Configuración del cable PC/PPI
El cable multimaestro tiene 8 microinterruptores en el lateral de la mochila
que permiten configurar su modo de operación.
Para que Nubitek SMS Manager pueda comunicar correctamente con el
módem GSM, el cable PC/PPI debe disponerse en modo 9600 baudios, 10 bits,
PPI/Freeport y conexión remota: 01000110
Microinterruptor 1 2 3 4 5 6 7 8
Posición 0 1 0 0 0 1 1 0
Si se usara un cable PC/PPI de la generación previa, con solo 6
microinterruptores, la configuración es 000110, pero no se puede garantizar el
funcionamiento de todas características de Nubitek SMS Manager si se utiliza
este cable, especialmente para las funciones de Teleservicio.
NOTA: Cada vez que se modifique la configuración de los microinterruptores
se debe quitar la alimentación del cable PC/PPI para que se asuma la nueva
configuración. Para ello se debe desconectar el cable del puerto de la CPU S7-
200. Una vez que se hayan apagado los pilotos del lateral, debe volverse a
conectar.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 72/103
Conexionado de los equipos
Los pasos para el conexionado de los equipos son:
1. Introducir la tarjeta SIM en el módem GSM. La ranura donde debe
insertarse está etiquetada en el módem como SIM y tiene al lado un
pequeño el botón amarillo. Presionando este botón con un objeto
punzante saldrá la bandeja donde colocar la tarjeta SIM. Es importante
asegurarse que la bandeja está correctamente introducida.
2. Colocar el adaptador de 9 pines macho-macho en el puerto serie
hembra del módem GSM.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 73/103
3. Conectar al módem la antena y la fuente de alimentación (en la entrada
RJ11)
4. Configurar el cable PC/PPI como se indica en el punto anterior.
5. Conectar el extremo serie del cable PC/PPI (hembra) al módem
mediante el adaptador de 9 pines macho-macho. El extremo PPI
(macho) debe conectarse al puerto 0 del PLC S7-200.
Atención: la aplicación no funciona si se conecta el cable PC/PPI al
puerto 1 de la CPU.
6. Dar alimentación a ambos equipos. En algunas versiones de TC65 hay
que pulsar el botón On/Off durante un segundo.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 74/103
El módem GSM
Velocidad del puerto
Lo normal es que el módem venga de fábrica con el puerto configurado a
9600 baudios (TC35i) o a 115200 baudios (TC65). En estos casos Nubitek SMS
Manager conectará sin problema con el módem, el usuario tan sólo debe
conectarlo al cable PC/PPI.
Si el puerto no está configurado en una de estas dos velocidades, Nubitek
SMS Manager no podrá comunicar con el módem. Si esto ocurriera se puede
tratar de cambiar la velocidad del puerto manualmente: conectando el módem
con el puerto serie de un PC, abriendo el hiperterminal y estableciendo una
comunicación por el puerto COM a la velocidad que corresponda, y 8 bits de
datos, paridad ninguna, 1 bit de parada y ningún control de flujo. Para verificar
que ha establecido conexión puede escribirse AT (+ enter), y se debe recibir
respuesta OK. El comando ‘AT+IPR=9600’ fija la velocidad del módem a un
nivel que sí permite a Nubitek SMS Manager comunicar.
Cobertura
Nubitek SMS Manager indica la cobertura que mide el módem y escribe este
nivel, en dBm, en una posición del área de variables de usuario, en la memoria
V. Si no hubiera nivel de señal suficiente para trabajar con garantías lo indicará
con el código de error correspondiente, y se activará el bit de baja cobertura.
En el capítulo sobre el área de variables de usuario se dan más detalles.
Para comprobar de manera rápida la cobertura en la instalación se puede
probar con un móvil normal, situándolo en el lugar donde se coloca la antena
y observando su indicación de cobertura en el display.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 75/103
Módem TC35i
El módem TC35i se enciende automáticamente al recibir alimentación.
Conviene introducir o extraer la tarjeta SIM siempre con la alimentación
desconectada.
El LED del módem puede presentar 3 estados:
� Apagado: el módem no tiene alimentación o ha recibido una orden de
apagado.
� Intermitencia regular (1 segundo iluminado y otro apagado): el módem
está encendido y activo, pero aún no se ha establecido un enlace con el
operador de telefonía móvil (equivale a tener un teléfono móvil
encendido pero sin el PIN cargado)
� Destello fugaz cada 2 segundos: se ha establecido el enlace con el
operador de telefonía móvil, se produce al poco de cargar el PIN en la
tarjeta SIM. Este es el modo en el que debe operar el módem, y debe
alcanzarse a los pocos segundos de activar la instalación. Si no
ocurriera así compruebe el código de error consultando el capítulo
sobre el área de variables de usuario .
Módem TC65iT
Las versiones 2.0 y 3.0 del TC65 se comportan de forma equivalente al TC35i.
La versión 1.4 del TC65iT, también compatible con Nubitek SMS Manager,
presenta un comportamiento diferente. El LED es usado para indicar el estado
de comunicación, con lo que parpadea cuando se envía o recibe un SMS.
Además el modem no se enciende automáticamente: una vez alimentado y
conectados los puertos requiere que se pulse el botón on/off durante casi un
segundo.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 76/103
Modo de prueba y clave Nubitek
La librería Nubitek SMS Manager se caracteriza porque:
� Es de libre descarga y distribución y se puede instalar libre y
gratuitamente en STEP7-MicroWIN.
� Requiere una clave para ejecutarse con éxito en el S7-200.
� Admite un modo de pruebas para poder probarlo gratuitamente
Clave Nubitek
Es la clave que habilita a Nubitek SMS Manager para que funcione de forma
ilimitada en el tiempo. Sin una clave correcta el programa apaga el módem y
se bloquea.
Debe indicarse en el propio programa del PLC, como parámetro Nubitek_KEY
de la función SMS_Manager.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 77/103
IMPORTANTE: la clave Nubitek está ligada al módem GSM que se va a usar en
la instalación, es decir:
� Para obtener la clave hay que declarar el IMEI del módem GSM que se
va a emplear.
� La clave permite a Nubitek SMS Manager funcionar única y
exclusivamente con ese módem, y no con otro.
¿Qué es el IMEI?
El IMEI es un identificador único para cada dispositivo hardware GSM (un
módem, un móvil, etc.)
Es un número de 15 cifras donde se indica el fabricante, país y número de
serie: es único para cada módem.
En el caso de los modems de Cinterion, el IMEI viene indicado en la pegatina
del reverso, bajo el código de barras.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 78/103
Modo de prueba
Se configura indicando el valor cero en el campo donde se situaría la clave
Nubitek, es decir, haciendo el parámetro Nubitek_Key = 0.
El modo de prueba permite usar Nubitek SMS Manager con todas sus
prestaciones y hacer tantas pruebas o demos a clientes como sean necesarias.
Tan sólo presenta una limitación: en este modo la gestión de SMS se bloquea
aproximadamente cada 5 horas, y se apaga el módem. Para continuar las
pruebas sólo hay que encender de nuevo el módem y reiniciar la CPU.
Si se desea conocer cuando se producirá el bloqueo, el campo Minutes_LEFT
del área de variables de usuario muestra el número de minutos que quedan
para el siguiente bloqueo.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 79/103
Funciones de programa: introducción y ejemplo
La librería Nubitek SMS Manager consta de 3 funciones sencillas y muy fáciles
de integrar en cualquier programa de control.
Descripción
SMS_Manager realiza toda la gestión general de la aplicación, además del
control del puerto y la inicialización del módem. Debe llamarse en todos los
ciclos de programa una única vez, al inicio.
Send_SMS se usa una vez para cada uno de los SMS que hay que enviar. Se
llama con la condición de disparo o envío y hay que indicarle el texto y los
teléfonos de destino. No hay limitación en cuanto al número de SMS diferentes
que se pueden enviar.
Receive_SMS se usa para definir las palabras clave que el programa de control
debe reconocer en los SMS de entrada. La función analiza los SMS recibidos y
activa un bit de salida cuando las encuentra. No hay limitación en el número
de mensajes diferentes a reconocer.
Un ejemplo sencillo
En el sencillo ejemplo de programa que se muestra en la siguiente imagen se
llaman a las 3 funciones desde el bloque principal de programa.
� Segmento 1: SMS_Manager configura el módem y realiza todo el control
de la aplicación de SMS. Se le indica el PIN de la tarjeta SIM y para el
modo de prueba se pone Nubitek_Key =0. Cuando la aplicación está
lista activa el bit de salida Q0.0.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 80/103
� Segmento 2: cuando Alarm_Stop tiene un flanco de subida se llama a
Send_SMS, que envía el aviso SMS_Stop al móvil de David. Tanto el
texto del mensaje como el número de teléfono se definen en el Bloque
de Datos.
� Segmento 3: Receive_SMS define las palabras clave que forman la
consigna de arranque del proceso. Cuando se recibe el SMS “active
process” se activa el bit Start_Production.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 81/103
SMS Manager: la función principal
Es el bloque principal de control y gestión de la aplicación, necesario para que
funcione.
Debe llamarse sólo una vez y ejecutarse en todos los ciclos de programa,
antes de cualquier otra función de la librería. Lo mejor es realizar la llamada
con el contacto SM0.0 al comienzo del Bloque Principal OB1.
Parámetros de SMS_Manager
� PIN: (STRING) Código PIN de la tarjeta SIM que hay en el interior del
módem.
Se escribe directamente como cadena de 4 caracteres a la entrada de
la función. Por ejemplo “2244”
Si se usa una tarjeta SIM con el código PIN deshabilitado se indica con
la cadena vacía “”
� Nubitek_KEY: (INT) Clave que proporciona Nubitek para que la librería
se ejecute de forma indefinida.
Para trabajar en modo de pruebas, poner el valor 0.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 82/103
Se escribe como variable entera (sin comillas).
� Ready: (Bool) Bit de salida que indica que la aplicación está ok y lista
para enviar y recibir SMS.
En la fase de inicialización, en condiciones normales, tarda unos 30
segundos en ponerse a 1.
Puede resultar conveniente aplicarlo a una salida del S7-200 para poder
observar de un vistazo que la aplicación y el módem están funcionando
correctamente.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 83/103
Enviar SMS
La función Send_SMS envía un SMS a uno o dos móviles de destino. Se usa
una vez por cada SMS diferente que se desea enviar.
Parámetros de Send_SMS
� SMS: (Puntero a String) Texto del SMS, que se ha definido en el Bloque
de Datos como variable tipo String. Se indica en modo puntero a la
posición de inicio del texto, usando la notación de puntero “&”.
Por ejemplo, para enviar el SMS definido como VB3000 “ALARMA:
maquina parada por fallo motor”, se indica &VB3000.
Se aconseja hacer uso de notación simbólica para facilitar la
compresión y mantenimiento del programa.
� Tel_1: (Puntero a String) Número de teléfono de destino del SMS, que
se ha definido en el Bloque de Datos como variable tipo String. Se
indica en modo puntero a la posición de inicio, usando la notación de
puntero “&”.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 84/103
Por ejemplo, para el teléfono definido como VB3100 “+34600123456” ,
se indica &VB3100.
Se aconseja hacer uso de notación simbólica para facilitar la
compresión y mantenimiento del programa.
� Tel_2: (Puntero a String) Número de teléfono de destino adicional. Se
define igual que Tel_1 y permite enviar el SMS a un segundo móvil en la
misma acción.
Si no se desea especificar un segundo teléfono debe ponerse 0.
� Value: (Puntero) Puntero a la posición de la variable numérica que se
desea incluir de forma automática en el texto SMS. Puede ser un valor
INT, DINT o REAL.
Si no se desea insertar ninguna variable en el texto del SMS el
parámetro Value no tiene utilidad, debe ponerse 0.
Definición de los textos y teléfonos de destino
Tanto el texto de los SMS como los teléfonos de destino se definen
cómodamente en el Bloque de datos, como variables tipo String. Importante:
hay que usar comillas dobles.
Por ejemplo:
VB3000 “ALARMA: maquina parada por fallo motor”
VB3100 “+34600123456”
Nubitek SMS Manager no tiene limitación en cuanto al número de SMS y
teléfonos de destino. Admite todos los SMS y teléfonos diferentes que el
bloque de datos pueda almacenar.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 85/103
Los textos de los SMS se definen de forma flexible:
� Pueden tener cualquier longitud siempre que no superen los 160
caracteres.
� Admiten cualquier texto, pero determinados caracteres locales o poco
comunes pueden no ser aceptados por el módem o el operador GSM.
Conviene probar que estos caracteres se envían correctamente.
� Nubitek SMS Manager permite insertar variables numéricas en el texto
de forma fácil y automática. Se explica en detalle en el apartado
específico de este mismo capítulo.
Los teléfonos de destino:
� Deben definirse usando el signo ‘+’ y el identificador de país. Por
ejemplo, para el caso de España (prefijo 34) el teléfono 600123456
debe indicarse como +34600123456.
� En un mismo proyecto pueden usarse teléfonos de diferentes países,
siempre que se indiquen sus respectivos prefijos.
� Importante: en determinados países u operadores no debe ponerse el
prefijo de país. Si las pruebas dan fallo en el envío de SMS (código de
error 32) conviene probar el cambio en la definición del teléfono.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 86/103
Condición de envío
La función Send_SMS debe ser llamada cuando se cumpla la condición de
envío del SMS.
Importante: Send_SMS debe ejecutarse sólo una vez, es decir, un único ciclo
de programa. Para evitar que se reenvíe repetidamente el mismo SMS,
conviene indicar la condición de disparo seguida de un flanco de subida.
Nota: la función Send_SMS ignora las órdenes de envío cuando el bit Ready
no está activo.
Filtro antirrebote
Puede ocurrir que por efecto rebote en la condición de disparo se envíe varias
veces el mismo SMS. Esto ocurre si la condición de disparo no es del todo
fiable, por ejemplo por un mal contacto, una falta de histéresis en el umbral de
una señal analógica, etc.
Si se desea poner un filtro antirrebote para no recibir varios SMS por el mismo
aviso se debe usar un temporizador a la desconexión antes del flanco de
subida. Por ejemplo, para una protección de 10 minutos, hacer como en la
figura:
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 87/103
Cómo insertar un valor en el texto del SMS
Nubitek SMS Manager puede insertar una variable en la posición deseada de
un SMS, de forma fácil y automática. El modo de proceder es el siguiente:
1. Incluir en el texto del SMS un identificador en la posición donde debe
situarse el valor. Según el tipo de variable y el formato deseado, el
identificador que hay que usar es:
� &I para una variable INT
� &D para una variable DINT
� &R para una variable REAL (se muestra con tres decimales)
2. Poner el puntero a la variable en el parámetro Value de la función
Send_SMS.
Conviene tener en cuenta que:
� La variable indicada en el parámetro Value debe ser coherente con el
identificador que se incluya en el texto. Nubitek SMS Manager no puede
comprobarlo.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 88/103
� La notación de puntero es“&”, es decir, para insertar por ejemplo la
variable VW4000 hay que indicar &VW4000. MicroWIN lo traducirá de
forma automática a una posición byte, (&VB4000) pero Send_SMS
funcionará correctamente.
� Se aconseja hacer uso de notación simbólica para facilitar la
compresión y mantenimiento del programa.
Ejemplo
Para enviar un SMS que contenga por ejemplo la temperatura de un horno, se
deberá definir el texto en el bloque de datos e incluir el identificador del valor
en la posición adecuada:
VB1000 “La temperatura del horno es de &R grados”
Si por ejemplo la variable de temperatura en formato REAL está contenida en
VD2500, se llama a la función Send_SMS y se le indica el puntero en el
parámetro Value:
Value = &VD2500
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 89/103
Si en el momento de enviar el SMS la temperatura es tal que VD2500 es
313.6324, el SMS recibido es:
“La temperatura del horno es de 313.632 grados”
Beneficios del uso de símbolos
El uso de símbolos para nombrar las variables de programa es siempre
beneficioso en cualquier aplicación. En un programa de gestión de SMS puede
mejorar notablemente la legibilidad y mantenimiento del programa.
Cada mensaje, cada teléfono, cada condición de disparo y cada variable a
insertar puede tener su nombre simbólico.
Si se compara el ejemplo de la imagen anterior con el de la siguiente. se
observan dos formas de enviar un aviso a mantenimiento cuando se produce
una alarma por exceso de temperatura en el horno, la segunda es
evidentemente más clara.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 90/103
Cómo aplicar la notación simbólica
Conviene nombrar los mensajes y los teléfonos de destino directamente desde
el bloque de datos. Hay que pulsar el botón derecho sobre la línea en que se
definen y seleccionar “Definir símbolo…”.
Los nombres de las variables a insertar y de las condiciones de disparo se
asignan de la forma habitual, ya sea en el programa o desde la tabla de
símbolos.
Por ejemplo en el bloque de datos:
SMS_Alarma “La temperatura del horno es de &R grados”
Tel_Mantenimiento “+34600123456”
Y en la función Send_SMS:
SMS � &SMS_Alarma
Tel_1 � &Tel_Mantenimiento
Tel_2 � 0
Value � &T_Horno
Nota: si se desea usar notación simbólica en el parámetro Value, se debe
escribir directamente el puntero del símbolo (&T_Horno por ejemplo). Si se
escribe la forma absoluta (&VD2500) MicroWIN lo convertirá a formato
puntero (&VB2500) y no aplicará la conversión a símbolo.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 91/103
Recibir SMS
La función Receive_SMS reconoce un SMS de entrada en base a una o dos
palabras clave. Permite además capturar de forma automática un valor
numérico contenido en el texto del mensaje.
Receive_SMS debe usarse una vez para cada tipo de mensaje diferente que se
quiera reconocer. No hay limitación en el número de veces que se use.
Se debe llamar a la función en todos los ciclos de programa, usando el
contacto SM0.0.
Parámetros de Receive_SMS
� TXT_1 y TXT_2: (String) Palabras clave a reconocer en el mensaje de
entrada.
Se escriben directamente como cadena a la entrada (por ejemplo
“activar” y “riego”)
Si solo se quiere definir una palabra clave hay que dejar TXT_2 sin uso y
poner la cadena vacía “”.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 92/103
� SMS_Rcv: (Bool) Bit de salida que se activa cuando se recibe un SMS
que contiene las palabras clave.
Importante: El bit de salida SMS_Rcv solo se activará durante un único
ciclo de programa. Luego vuelve a quedar en reposo.
� Value: (Real) Recoge el valor numérico que ha capturado del mensaje
de entrada y lo guarda en formato REAL, aunque en el SMS se reciba
como entero.
Es un parámetro de entrada/salida. Por ello el valor permanece en la
variable después de recibirse el mensaje.
Es un parámetro de uso opcional. Si no se va a usar debe escribirse una
posición cualquiera en desuso.
Reconocimiento flexible
Receive_SMS reconoce los SMS de forma robusta y flexible, liberando al
usuario de recordar un formato estricto.
� Permite que en el SMS haya más texto aparte del de las palabras clave.
� Localiza las palabras clave en cualquier orden y posición.
� No discrimina entre mayúsculas y minúsculas (dentro del alfabeto
estándar internacional)
� Captura el valor numérico ya sea entero o con decimales, y en cualquier
lugar del mensaje.
Por ejemplo, si en una llamada a la función Recibir_SMS se definen las
palabras clave “Activar” y “riego”, entonces se reconocerá cualquiera de los
siguientes mensajes:
� “activar riego”
� “ACTIVAR RIEGO”
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 93/103
� “riego activar”
� “Activar el sistema de riego.”
Otras características
� Si un SMS se ajusta a dos patrones diferentes sólo se activará la salida
SMS_Rcv de la función Receive_SMS que esté primero en el programa.
� Si se desea ahorrar memoria de programa se pueden definir las
palabras clave en el bloque de datos y poner como parámetros TXT_1 y
TXT_2 solo las posiciones de memoria (por ejemplo VB3000 y
VB3020). Utilizando simbólicos no se perderá legibilidad del programa.
Ejemplo de captura de valores
En el ejemplo de la figura se configura Receive_SMS para recibir la orden de
activación del riego y el tiempo que se desea activar.
Al recibir por ejemplo el mensaje “activar el riego 35 minutos” el sistema
activará el bit Iniciar_Riego (lo pone a 1 sólo un ciclo de programa) y escribirá
el valor 35.0 en la variable Tiempo_de_Riego (en formato REAL y de forma
permanente).
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 94/103
Área de variables de usuario
En el área de variables de usuario se localizan un grupo de variables que usa la
aplicación Nubitek SMS Manager para ofrecer información al usuario, o recibir
órdenes para un uso concreto. Puede hacerse una similitud con el área SM de
marcas especiales del S7-200.
Se localizan en la memoria V, al comienzo del área reservada para la librería.
Se puede consultar la posición exacta de cada variable en la tabla de
símbolos, en la pestaña con el nombre de la librería (una vez que se haya
asignado memoria a la librería).
Estas variables se pueden integrar en el programa de control para un uso
avanzado. Sin embargo, aunque en la tabla de símbolos aparecen con un
nombre simbólico, en la aplicación solo pueden usarse con direccionamiento
absoluto (es una regla de Step7-MicroWIN, debido a que son variables
internas de una librería)
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 95/103
Mapa del área de variables de usuario
Suponiendo que el área asignada a la librería comienza en VBn, es:
SMS_Ready (Read, Bool, VBn + 0.0)
Indica que la aplicación está lista para enviar y recibir SMS. En la fase de
inicialización, en condiciones normales, tarda unos 30 segundos en
ponerse a 1. Es equivalente a la salida SMS_Ready de la función
principal.
PPI_Mode (Read, Bool, VBn + 0.1)
Indica que el puerto 0 de la CPU del S7-200 está en modo PPI.
En este modo se puede realizar una conexión desde STEP7-MicroWIN,
ya sea por teleservicio o directamente, desconectando el módem y
conectando la programadora al puerto.
En este modo la gestión de SMS queda temporalmente deshabilitada.
PPI_Request (Write, Bool, VBn + 0.2)
Bit para solicitar a la aplicación un cambio del puerto 0 a modo PPI.
Importante: No debe actuarse directamente sobre el campo SMB30 de
control del puerto 0. Activando este bit la aplicación hace el cambio de
forma ordenada.
Puede conectarse a una entrada del sistema para facilitar el acceso del
programador sin tener que poner la CPU en STOP.
Solo es necesario activar el bit un ciclo. La aplicación lo pondrá a 0 de
nuevo cuando se complete el paso a modo PPI.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 96/103
END_Teleservice (Write, Bool, VBn + 0.3)
Bit para solicitar la vuelta al modo de operación normal desde el modo
PPI. Se usa para indicar a la aplicación que ya se han terminado las
labores de mantenimiento y que puede hacer de nuevo uso del puerto y
del módem.
Al escribir un valor 1 en esta variable, se inicia un periodo de 90
segundos en los que el bit estará intermitente. Al acabar se produce el
cambio a modo normal.
Low_Signal_Level (Read, Bool, VBn + 0.4)
Indica que la medición del nivel de cobertura refleja un bajo nivel de
señal de la operadora, por debajo del umbral que asegura una correcta
comunicación.
El valor medido de señal, en dBm, se muestra en la variable
Signal_Level.
La medición no se realiza de forma continuada, sólo cuando se reinicia
la aplicación.
FULL_Licence (Read, Bool, VBn + 0.5)
Indica que se está usando una clave Nubitek y que la aplicación
funcionará de forma ininterrumpida.
TEST_mode (Read, Bool, VBn + 0.6)
Indica que se está trabajando en el modo de pruebas. La aplicación se
bloquea aproximadamente cada 5 horas.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 97/103
Se pueden consultar los minutos que quedan para el siguiente bloqueo
en la variable MINUTES_LEFT.
ERROR (Read, Bool, VBn + 0.7)
Indica que ha ocurrido algún error o evento. Este bit se pone a 1 tan
sólo un ciclo de programa.
En el campo Last_ERROR se almacena el código que indica qué clase
de error o evento se ha producido.
Last_ERROR (Read, INT, VBn + 2.0)
Código del último error o evento que se ha producido, y lo mantiene
hasta que ocurre uno nuevo.
Se puede consultar el significado de cada código de error en el
siguiente apartado de este capítulo.
SMS_Counter (Read, INT, VBn + 4.0)
Contador de SMS enviados por la aplicación.
Puede usarse para numerar los SMS salientes, de forma que el
destinatario puede saber que los va recibiendo correctamente y en su
totalidad.
Signal_Level (Read, INT, VBn + 6.0)
Valor medido de señal GSM, en dBm.
Un valor mayor de -91dBm es suficiente. Menor de -95 dBm es muy
deficiente.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 98/103
Minutes_LEFT (Read, INT, VBn + 8.0)
Está asociado al modo de pruebas. En modo normal es 0.
Es un contador decreciente que indica el número de minutos que restan
para que la aplicación se bloquee.
Last_Value_RCV (Read, REAL, VBn + 10.0)
Recoge el último valor que se ha capturado por una función
Receive_SMS. Este mismo valor también es proporcionado por la misma
función con el parámetro Value.
Códigos de error / evento
Nubitek SMS Manager facilita una serie de códigos para ayudar al
programador en la fase de desarrollo y en la de mantenimiento. El campo
Last_ERROR del área de variables de usuario almacena el código del último
error o evento producido.
Se actualiza cada vez que se activa el bit ERROR del área de variables de
usuario y puede consultarse desde el propio programa de control para actuar
en consecuencia.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 99/103
La lista de códigos es:
Código
de error
Descripción
11 El módem no responde al comando enviado por el PLC: posible
desconexión del cable PC/PPI o pérdida de alimentación del módem.
12 Error inesperado: la respuesta del módem no se reconoce por el PLC
13 El módem indica ERROR: posible fallo de parametrización.
14 El PIN de la tarjeta SIM no es correcto
15 La cobertura no es suficiente para poder establecer una
comunicación con garantías
23 Modo de pruebas: la desconexión del módem se ha ejecutado.
Rearranque CPU y módem para disponer de otras 5 horas.
24 La clave Nubitek no es correcta: módem apagado
31 Se ha recibido un SMS que no corresponde a ningún patrón definido
32 El SMS no se ha podido enviar correctamente: causa desconocida.
33 El buffer de salida de SMS está lleno (admite hasta 7 SMS encolados).
El último SMS no ha sido enviado.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 100/103
Teleservicio y gestión del puerto cero
Nubitek SMS Manager utiliza el puerto cero de la CPU S7-200 para la conexión
con el módem GSM. La aplicación se encarga de toda la configuración del
puerto y también de cargar en el módem todos los parámetros para soportar
Teleservicio desde un PC remoto.
Importante: el puerto cero debe reservarse en exclusiva para la comunicación
con el módem GSM, no debe tratarse bajo ningún concepto de crear una red
con más elementos.
Importante: el programador no debe en ningún caso tratar de controlar el
puerto de manera externa a la aplicación. Puede entrar en conflicto y
ocasionar que la gestión de SMS no funcione.
Cómo acceder a la CPU desde STEP7-MicroWIN
El funcionamiento normal del puerto bajo el control de Nubitek SMS Manager
es en modo freeport, necesario para gobernar el módem GSM y la aplicación
de SMS. Este modo es incompatible con el acceso de STEP7 - MicroWIN a
través del puerto, ya sea de forma directa o mediante Teleservicio.
Para acceder con STEP7-MicroWIN a la CPU a través del puerto 0 es necesario
que esté configurado en modo PPI.
Las formas de acceder a la CPU son 4:
� Usar una CPU de dos puertos y conectar a través del puerto 1 en modo
PPI.
� Poner la CPU en STOP: esto configura automáticamente los puertos en
modo PPI.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 101/103
� Solicitar de forma local a Nubitek SMS Manager que suspenda
temporalmente la gestión de SMS y conmute el puerto a modo PPI de
forma controlada. Esto permite desconectar del puerto el cable del
módem y acceder con la programadora. Para más detalle consulte el
apartado relacionado de este mismo capítulo.
� Solicitar a la aplicación, de forma remota mediante un SMS, que se
configure para permitir un acceso por Teleservicio a través del módem
GSM. Para más detalle consulte el apartado relacionado de este mismo
capítulo.
Acceso remoto por Teleservicio
El asistente para módems de STEP7-MicroWIN se utiliza para configurar los
módems remoto y local.
Será necesario configurar el módem local en la forma habitual, pero no es
necesario configurar el módem remoto, ya que lo hace la aplicación por sí
misma.
Para hacer un acceso remoto por Teleservicio se deben seguir los pasos
siguientes:
� Enviar un SMS al número de teléfono de la estación remota con la
palabra ‘teleservicio’. Esto hará conmutar el puerto a modo PPI.
� Esperar un plazo prudente, por ejemplo 1 minuto, y proceder a hacer el
acceso por Teleservicio desde STEP7-MicroWIN como se hace
habitualmente.
� Una vez que se envía el SMS dispone de un tiempo de 2 horas de
acceso. Al finalizar la estación volverá de forma automática al modo de
gestión de SMS.
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 102/103
Cuando se finalizan las tareas de mantenimiento se puede colgar la llamada y
dejar que la estación vuelva por sí sola al modo normal de trabajo,
transcurridas las dos horas.
Si no se quiere que la estación espere el plazo normal de 2 horas sino que
conmute lo antes posible se deben seguir los pasos siguientes:
� Al finalizar la tarea de mantenimiento el operador no debe colgar sino
mantenerse online.
� Abrir la tabla de símbolos asociada a la librería.
� Localizar la posición asignada al bit END_Teleservice del área de
variables de usuario.
� Abrir la tabla de estado y ponerse online.
� Visualizar el valor del bit END_Teleservice, que estará en FALSE
(MicroWIN obliga a usar direccionamiento absoluto para ver esta
variable, por pertenecer a una librería)
� Forzar el valor TRUE en el bit END_Teleservice. No lo fuerce de manera
continua, es suficiente con escribirlo puntualmente, un ciclo. Se
observará que inicia una intermitencia.
� A partir de ese momento se dispone de 90 segundos para desconectar,
transcurridos los cuales la estación volverá al modo de gestión de SMS.
Acceso local por el puerto cero
El área de variables de usuario habilita para el programador el bit
PPI_Request, cuya activación hace que Nubitek SMS Manager realice el
cambio del puerto a PPI de forma controlada.
El programador puede activar el bit PPI_Request desde una botonera o un
panel de operador y solo debe actuar sobre él un único ciclo de programa. El
Proyecto Fin de Carrera Lorenzo Rivas Kaiser Gestor de comunicación por SMS para PLC S7-200 103/103
bit permanecerá activo hasta que se haga efectivo el cambio de modo:
entonces PPI_Request se pondrá a 0 y PPI_Mode a 1.
Una vez que PPI_Mode está a 1 dispone de un tiempo de 2 horas de libre
acceso PPI por el puerto 0, tras lo cual volverá de forma automática al modo
de gestión de SMS. Durante este tiempo la aplicación de SMS estará en
suspenso.
Para volver al modo de gestión de SMS antes de finalice el periodo de 2 horas
hay q actuar sobre el bit END_Teleservice un único ciclo de programa. El bit
END_Teleservice iniciará una intermitencia de 90 segundos, luego se hará la
conmutación del puerto, END_Teleservice dejará de parpadear, PPI_Mode se
desactivará, y a los pocos segundos SMS_Ready se activará de nuevo.
ANEXO I
CÓDIGO DE LA LIBRERÍA NUBITEK SMS MANAGER
��������������� � �����������������������������������
������� ����������������������� �!"�����!���!�#��� $�%&'%$&&(�����$�&)�&*� �!"���������+�!�!�#��� &(%�&%$&�$�����'��&��'�
� ������ ,����-��% ,�����������. /���������
�&%& 0���1 ,2�3 ���� �
� � ,2�3 � �
��������
34��������/#���������56
��������������� � ������������ � ���������� �0�&&�
������� � �������������� �!"�����!���!�#��� &*%&�%$&&6�����6�$5�7*� �!"���������+�!�!�#��� �*%&$%$&&)�����(�77�&$�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& 38 8 ,08: 38�������+��"�� 8��!������%�%�;((((;�
�<7 ������=2> 8 8, =�1����-������1��������������"��������1%�?.��&�+���,2 ,�����
� � 8��?, � �
�5%& 0���1 �?, ���� 1.����0���1����.����������!��-�� � .
�5%� �� ,2�3 ���� �
�5%$ 3�������.��-�!�� ,2�3 ���� �
�96 0�����@ ,2�3 02�� �
� � ,2�3 � �
�8�0�0>����� ������ � ��������
���/=���2� � ��������
A20 8�� �%*%*
9�,2� &(�$&�&
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
?�8,2=� � ����:20��.����������!��-�� � �.�����"�� 6B$&&
,"�.��.��"����8� ?/,8��+����"��������1������� � ��������%�8���.���!�..��1��������@�!�����-��1���������!1!��C�.���!�������+�����������!��.���� �&%&�!����!�%
,"�����.�����.!���������+�D"�����!"���B�����������.C�����"��!�������+������+��"����+�������������%
,"��?.���������+��������� � ����������.��-�������������D������+�������������D��.�����DDD%������%!��
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
200�0�/�92 �
��%B�������������.D����������.��.����+�����"��3�/
�$%B�?��@��!������.���.�����3�/�����.�
�*%B�2�����.��������"�������
�7%B�8�!����!��38������
�(%B�: ��.��������-����.��������������"������.����"��!����!�!����
$*%B�,2 ,���������������.!���!������-��1�(�"��.
$7%B�8�!����!��������=�1
*�%B�8�!������ � ����.�E��+�@������1������+�����
*$%B��������� � �.�������+�����%�/"�!�� � �.�F��������!������������
**%B��������� � ��++����.�+��
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
/�98:� �92�200�0�
��%B�2�������������.���������!���������-������������3�/
�$%B������.��.����������������!����.������������.��������������3�/
�*%B� �����������������F�!��������������������������.������!���200�0
�7%B�2��38�����.�!����!��
�(%B����!������������.�.+�!������������������.�����!������!����!�!�#��!�����������.
$*%B��������������.�������.!���@�#������������.���G�!���!����(�"���.%�
$7%B����!��-������������.�!����!��
*�%B� ��"����!�������� � �������!����.�����������������������+�����
*$%B� �������������-������ � %�0�-�.�������H������ � �1���������������.����
**%B�2���++������.��������� � ��.��������
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
�!��$&�&�/��1���"��������8��.������8,C� �
DDD%������%!��
��������
�
8��!����F�!���
2
� �
�&%�
&&�8��!����F�� &���!��-�
������ 9���!!�#� /���������
&&�8��!����F�� A�6%&
&���!��-� A�6%�
��������
�
3�����&
2
�&%&
34��������/#�����$���56
��������������� � ������������ � ���������� �0�&&�
���������
� � �?,
0
�
� 0�
�
:3&&� ������� 3&&�3�I 0���1 J0���1
:3&��,���.��-�!��
&���!��-�
������ 9���!!�#� /���������
3&&�3�I A$$%&
&���!��-� A�6%�
:3&&� ������� A$�%& 3������������� �������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
0���1 A&%& 1.����0���1����.����������!��-�� � .
���������
� 02,
&���!��-�
������ 9���!!�#� /���������
&���!��-� A�6%�
��������
�
:�.�����/��-�
2
�������K/�����3?=
:3&&� �������
J������=2> J ��
������ 9���!!�#� /���������
:3&&� ������� A$�%& 3������������� �������
���������
�
0
38�&�������F��� � 2&$� � �����+���
�
38�&$�������� �
�
38�&�������F��� �
�
������ 9���!!�#� /���������
2&$� � �����+��� A$'%$
38�&�������F��� � A$6%�
38�&$�������� � A$6%$
���������
�
�����F���0/A
2
:3&&� �������
������ 9���!!�#� /���������
:3&&� ������� A$�%& 3������������� �������
���������
�
:�.�����8
2
�&%&
34��������/#�����*���56
��������������� � ������������ � ���������� �0�&&�
���������
�
:�.�����2�����.
2
:3&&� �������
������ 9���!!�#� /���������
:3&&� ������� A$�%& 3������������� �������
���������
�
,0�/3>
2�2
�?,8
3&5�38
LJ38 /���3��������
������ 9���!!�#� /���������
/���3�������� A�*76
3&5�38 A$*%*
��������
�
:�������M�,
2
��
:3&&� �������
J ��
������ 9���!!�#� /���������
:3&&� ������� A$�%& 3������������� �������
��������
�
:�.����� � ��?,
2
0���1
������ 9���!!�#� /���������
0���1 A&%& 1.����0���1����.����������!��-�� � .
���������
�
0�!��-�� �
2
� �0!-,M,��
,M,�$
A���
�
0���1
;���.��-�!;
;;
J0�����@
J3�������.��-�!��
J3�������.��-�!�� :3&7� ���!�,���.��-
�
������ 9���!!�#� /���������
:3&7� ���!�,���.��- A$�%7
0���1 A&%& 1.����0���1����.����������!��-�� � .
���������
�
��A��
2�2
�?,8
�&%�
�1��� ���������� �1��� ����������
������ 9���!!�#� /���������
�1��� ���������� A�66&
34��������/#�����7���56
��������������� � ������������ ���� � �� �0�&��
������� ���� � ������ �!"�����!���!�#��� �)%&7%$&&6�����$�((�&$� �!"���������+�!�!�#��� $6%&$%$&&)�������77��&�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& � 8 9<�09 3���������� � ���@��.����������"��9�������!����%�%�NA�$&&&�
�97 ,���� 8 9<�09 3�������������������������.����������"��9�������!�
�9) ,���$ 8 9<�09 3�������������������������.����������"��9�������!�%�?.��&��+�����D�����
�9�$ A��� 8 9<�09 3�����������������!�-����+�����!�.��������"�� � ���@�%�?.��&��+�����D�����
� � 8��?, � �
� � �?, � �
�9�5 3�0���.��� ,2�3 9<�09 �
��$& /���!��� ,2�3 �>,2 �
�<$� 8���!� ,2�3 8, �
��$* /���!�����@ ,2�3 �>,2 �
�$7%& 0���.����2�!������� ,2�3 ���� �
�9$( 3�0���.�����@ ,2�3 9<�09 �
� � ,2�3 � �
�8�0�0>����� ������ � ��������
���/=���2� ���� �
A20 8�� �%*%*
9�,2� &(�$&�&
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
?.���"�.�+�!�������� 29��� � %
,"��+�!����� ���� � ��.�����1����.����2�,8�2�+�����!"� � %�0�������������.����"����"��."�������!���������"�.���0�.����29:2%
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
�!��$&�&�/��1���"��������8��.������8,C� �
DDD%������%!��
�����.�.�����++������ � �.��������1��.����!�������0���.����B����������
� 0
��A�9<
2�2
�?,8
�&%& J0���.����2�!�������
�
N�++��� � ��?, J3�0���.�����@
������ 9���!!�#� /���������
�++��� � ��?, A�5&
�����.�.�����++������ � �.��������1��.����!�������0���.����B�$��������
�
�0
2�2
89M
88,
8��
�&%&
J8���!�
�
6
�����.�.�����++������ � �.��������1��.����!�������0���.����B�*���������
�
��A��
2�2
�?,8
�&%&
LJ3�0���.�����@ J/���!�����@
34��������/#�����(���56
��������������� � ������������ ���� � �� �0�&��
�����.�.�����++������ � �.��������1��.����!�������0���.����B�5���������
�$*%6��.������������/?3�9����������.�����!��������!��
� �
��A�9<
2�2
�?,8
�$*%6 J0���.����2�!������� J0���.����2�!�������
�
J3�0���.�����@ J3�0���.���
�����.�.�����++������ � �.��������1��.����!�������0���.����B�6��������
�
�99�98
2�2
�?,8�
8$
�&%&
O�)
J3�0���.�����@
J3�0���.�����@
�����.�.�����++������ � �.��������1��.����!�������0���.����B�)���������
2M,
�����.�.�����++������ � �.��������1��.����!�������0���.����B��&���������
�
02,
J0���.����2�!������� 2&�� ����@ ��
�
������ 9���!!�#� /���������
2&�� ����@ �� A$'%�
/��.��!!����������!���!������������
�
��A��
2�2
�?,8
PQ9
<�0��
2�2
�?,8�
8$
PQ9
<�0��
2�2
�?,8�
8$
��A��
2�2
�?,8
�&%&
$J& J/���!�����@
J,����
&
$J�&&&��&&
J/���!�����@
J/���!�����@
J,���$
&
$J�&&&&&��
J/���!�����@
J/���!�����@
J/���!�����@ LJ3�0���.���
34��������/#�����5���56
��������������� � ������������ ���� � �� �0�&��
/�����!������3���������,�@�����������
�
�99�98
2�2
�?,8�
8$
��A�9<
2�2
�?,8
�&%&
O$
J3�0���.���
J3�0���.���
J � LJ3�0���.���
/�����!������3���������,�������������
�
�99�98
2�2
�?,8�
8$
��A�9<
2�2
�?,8
�&%&
O7
J3�0���.���
J3�0���.���
J,���� LJ3�0���.���
/�����!������3���������,���$��������
�
�99�98
2�2
�?,8�
8$
��A�9<
2�2
�?,8
�&%&
O7
J3�0���.���
J3�0���.���
J,���$ LJ3�0���.���
/�����!������A�����������A������������!�.���������� � ��������
�
�99�98
2�2
�?,8�
8$
��A�9<
2�2
�?,8
�&%&
O7
J3�0���.���
J3�0���.���
LJA��� LJ3�0���.���
34��������/#�����6���56
��������������� � ������������:�.����� � ��?,�� �0�&$�
������� :�.����� � ��?,������ �!"�����!���!�#��� �)%&7%$&&6�����*�&$�$'� �!"���������+�!�!�#��� ��%&$%$&&)�����$�7)�(&�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
�&%& �.!�� � ��� ,2�3 ���� �
�&%� /���!�����!��-� ,2�3 ���� �
�<� 8���!� ,2�3 8, �
�9* 3�0���.�����@ ,2�3 9<�09 �
��6 /���!�����@ ,2�3 �>,2 �
�9) 3�,�@�� ,2�3 9<�09 �
�9�$ ,�@�� ,2�3 9<�09 �
�9�5 3�A���� ,2�3 9<�09 �
�9$& A���� ,2�3 9<�09 �
�9$7 3�,�� ,2�3 9<�09 �
�9$) ,�� ,2�3 9<�09 �
�*$%& � ������ ,2�3 ���� �
��** �@�98, ,2�3 �>,2 �
� � ,2�3 � �
�����.�.������.�4��.�������.!��.��"�1����.�G�.�������-�����������++��� � ��?,��������
� � �
3&&�3�I :3&&� ������� J�.!�� � ���
������ 9���!!�#� /���������
3&&�3�I A$$%&
:3&&� ������� A$�%& 3������������� �������
��������
�
��A�9<
2�2
�?,8
J�.!�� � ���
N�++��� � ��?, J3�0���.�����@
������ 9���!!�#� /���������
�++��� � ��?, A�5&
�.��������������.����!��� � ����������.������-����B�����������
�
�0
2�2
89M
88,
8��
�&%&
J8���!�
�
6
34��������/#�����)���56
��������������� � ������������:�.����� � ��?,�� �0�&$�
�.��������������.����!��� � ����������.������-����B�$���������
�6%6�"�!����+����!�������������0���.�����!�����������/���!��������0���.�����������++������ � ��?,
�
��A��
2�2
�?,8
�
��A�9<
2�2
�?,8
0
0
�99�98
2�2
�?,8�
8$
J�.!�� � ���
LJ3�0���.�����@ J/���!�����@
�6%6
J3�0���.�����@ 3� � ��?,��!��-�
3�� � ��!��-�
�
3&&�3�I
�
J�.!�� � ���
�
O�)
J3�0���.�����@
J3�0���.�����@
������ 9���!!�#� /���������
3&&�3�I A$$%&
3�� � ��!��-� A$)%&
3� � ��?,��!��-� A9(5
�.��������������.����!��� � ����������.������-����B�*��������
2M,
2�-������ � ��?,�B�&����/�����������/���!������������.���� � ������++����������1�������.����%���������
�
��A��
2�2 �
�?,8
3�� � ��!��-� J/���!�����!��-�
L3� � ��?,��!��-� J/���!�����@
������ 9���!!�#� /���������
3�� � ��!��-� A$)%&
3� � ��?,��!��-� A9(5
34��������/#�����'���56
��������������� � ������������:�.����� � ��?,�� �0�&$�
2�-������ � ��?,�B�&$��/�����������!�!��������-������ � ���������
� � 0
0
� 0
0
�99�8
2�2
�?,8�
8$
0
3��&*� ���= 3�� � � 3�� � �
�
�6%$
�
3�� � $ 3�� � $
�
�6%&
�
�
� �/�����
� �/�����
3��&*� ���=
�
������ 9���!!�#� /���������
3��&*� ���= A$5%*
3�� � � A$)%�
3�� � $ A$)%$
� �/����� A<7 /�������+� � �.����.��!����.�����.����.�����
2�-������ � ��?,�B�&*����!���F�!�#����������+������������-������������
� �
0
� �
0
3�� � ��!��-� �6%* 3�� � �
�
3��&&�,��� �
�
�6%*
�
�6%5
�
�6%� 3�� � � 3�� � $
�
3��&&�,��� �
�
�6%�
�
�6%5
�
������ 9���!!�#� /���������
3��&&�,��� � A$5%&
3�� � � A$)%�
3�� � $ A$)%$
3�� � ��!��-� A$)%&
34��������/#������&���56
��������������� � ������������:�.����� � ��?,�� �0�&$�
2�-������ � ��?,�B�&7�� �����"�1�����+������!���F���C�!��������������.���� � ���������
� � �
��A��
2�2
�?,8
0
3�� � ��!��-� 3�� � � 3�� � $
& J/���!�����@
3&&�3�I
�
3�� � ��!��-�
�
������ 9���!!�#� /���������
3&&�3�I A$$%&
3�� � � A$)%�
3�� � $ A$)%$
3�� � ��!��-� A$)%&
2�-������ � ��?,�B�&(����!��������,���+����������������!���������-��� � ���������
� � �
�99�98
2�2
�?,8�
8$
�
�99�98
2�2
�?,8�
8$
��A�9<
2�2
�?,8
,0�/3>
2�2
�?,8
3��&&�,��� � /&&�/�� 3�� � �
3� � ��?,��!��-�
O5
J3�,��
3�� � $
3� � ��?,��!��-�
O�&
J3�,��
LJ3�,�� J,��
LJ,�� /���3��������
������ 9���!!�#� /���������
/���3�������� A�*76
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
3��&&�,��� � A$5%&
3�� � � A$)%�
3�� � $ A$)%$
3� � ��?,��!��-� A9(5
34��������/#����������56
��������������� � ������������:�.����� � ��?,�� �0�&$�
2�-������ � ��?,�B�&5��/��.��!!����������@��������-����������
�
�99�98
2�2
��A�9<
2�2
�?,8�
8$
�?,8
�99�98
2�2
�?,8�
8$
8�.������A����
2
/�����
A����
0
3��&��/��.����� �
3� � ��?,��!��-�
O$
J3�,�@�� LJ3�,�@�� J,�@��
3� � ��?,��!��-�
O�7
J3�A����
LJ,�@��
J3�A����
3��&$�,�@��� �
�
3��&��/��.����� �
�
������ 9���!!�#� /���������
3��&��/��.����� � A$5%�
3��&$�,�@��� � A$5%$
3� � ��?,��!��-� A9(5
2�-������ � ��?,�B�&6��2.!�����������1�������.�����������/���!������������.���� � ������++����������
�
��A��
2�2
�?,8
J/���!�����!��-�
J/���!�����@ L3� � ��?,��!��-�
������ 9���!!�#� /���������
3� � ��?,��!��-� A9(5
34��������/#������$���56
��������������� � ������������0�!��-�� � �� �0�&*�
������� 0�!��-�� � ������ �!"�����!���!�#��� &5%&�%$&&6�����&�*$�(5� �!"���������+�!�!�#��� �(%&�%$&&'����$$�*6�75�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& ,M,�� 8 ,08: <�����������!����F������"����!������ � ���%�%�;�/,8A2;�
�97 ,M,�$ 8 ,08: <����$������!����F������"����!������ � ���%�%�;��/R82;�%�8+�����D�����C�.��;;
�9) A��� 8��?, 02�� ����!�-����!�������+�����"����!������ �
��$%& � �0!- �?, ���� �� � �D��"�,M,�������,M,�$�"�.��������!��-��%��!��-��+������1�����!1!��%
� � �?, � �
��$%� ,@����= ,2�3 ���� �
��$%$ ,@�$��= ,2�3 ���� �
��$%* R�1������ ,2�3 ���� �
���* ���������@� ,2�3 �>,2 �
���7 8���!��� ,2�3 �>,2 �
���( 8���!���� ,2�3 �>,2 �
�9�5 A���� ,2�3 02�� �
�$&%& 2.�������-� ,2�3 ���� �
��$� �2�$ ,2�3 �>,2 �
�$$%& ,@�$�A�!�� ,2�3 ���� �
� � ,2�3 � �
�8�0�0>����� ������ � ��������
���/=���2� 0�!��-�� �
A20 8�� �%*%*
9�,2� &(�$&�&
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
?.���"�.�+�!��������02/�:8I2�<�09 ���������!������ � %
,"��+�!�����0�!��-�� � ��.���!�..��1��������@�!�����-��1���������!1!��C�.��!�������.���� �&%&�!����!�%
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
�!��$&�&�/��1���"��������8��.������8,C� �
DDD%������%!��
��������
� 0
� 02,
38�&�������F��� � J � �0!-
�
&���!��-�
������ 9���!!�#� /���������
38�&�������F��� � A$6%�
&���!��-� A�6%�
��������
�
,0��2
2�2 SS� �
�?,8
�&%& J�2�$
&
J,@�$�A�!��
LJ,M,�$ J�2�$
34��������/#������*���56
��������������� � ������������0�!��-�� � �� �0�&*�
���������
�
,0�/3>
2�2
�?,8
���.!��.
2
/�9���
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
Q� �
�&%&
LJ,M,�� /����@�����
N/����@�����
� J���������@�
/���3��������
/����@�����
J���������@�
J���������@�
&
J,@����=
������ 9���!!�#� /���������
/����@����� A��)5
/���3�������� A�*76
���������
� �
,0�/3>
2�2
�?,8
���.!��.
2
/�9���
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
J,@����= J,@�$�A�!��
LJ,M,�$ /����@�����
N/����@�����
� J���������@�
/���3��������
/����@�����
J���������@�
������ 9���!!�#� /���������
/����@����� A��)5
/���3�������� A�*76
��������
� �
� Q�
J,@�$�A�!�� J,@�$��=
J,@�$�A�!�� J���������@�
&
34��������/#������7���56
��������������� � ������������0�!��-�� � �� �0�&*�
���������
� � �
0
J,@����= J,@�$��= J � �0!-
38�&�������F��� �
�
38�&$�������� �
�
������ 9���!!�#� /���������
38�&�������F��� � A$6%�
38�&$�������� � A$6%$
���������
�
��A��
2�2
�?,8
/R0� 89
2�2
�?,8�
8$
Q�
�0
2�2 �
�?,8
89M
J � �0!-
� J8���!���
/���3��������
;&�$*7(56)';
J8���!���
J8���!���
&
JR�1������
/���3��������
J8���!���
JA����
������ 9���!!�#� /���������
/���3�������� A�*76
���������
�
��A��
2�2
�?,8
/R0� 89
2�2
�?,8�
8$
Q�
8/��
2�2 SS� �
�?,8
�
�?��0
2�2
�?,8�
8$
JR�1������
� J8���!����
/���3��������
;B;
J8���!����
J8���!����
&
J8���!����
J8���!���
J2.�������-�
J8���!���� J8���!����
J2.�������-�
B�%&
JA����
JA����
������ 9���!!�#� /���������
/���3�������� A�*76
34��������/#������(���56
��������������� � ������������0�!��-�� � �� �0�&*�
���������
�
��A�0
2�2
�?,8
��A�0
2�2
�?,8
JR�1������
JA���� JA���
JA���� ��.��A����0/A
������ 9���!!�#� /���������
��.��A����0/A A9�& ��.��A����!�������+���������!������ �
34��������/#������5���56
��������������� � ������������:�.�����8�� �0�&7�
������� :�.�����8������ �!"�����!���!�#��� $$%&7%$&&6�����5�$&�(*� �!"���������+�!�!�#��� $7%&�%$&&)����$&�*��&7�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
�&%& /��.����� � ,2�3 ���� �
��� 8���!���.���� ,2�3 �>,2 �
��$ �������,���� ,2�3 �>,2 �
��* ������� � ,2�3 �>,2 �
� � ,2�3 � �
/�������!�#�������.�!�!��.���������!��!�������������������
� �
�99�8
2�2
�?,8�
8$
QS8 �
3&&�3�I 2&(� � �8��2����
�<$$
,�/��.���� � �8
,�/��.���� � �8
,�/��.���� � �8
(&&&
J/��.����� �
������ 9���!!�#� /���������
3&&�3�I A$$%&
2&(� � �8��2���� A�'%(
,�/��.���� � �8 A<*5
��������
� � 0
0
3&&�3�I 2&(� � �8��2���� 2&(� � �8��2����
�
38�&$�������� �
�
3&&�3�I
�
������ 9���!!�#� /���������
3&&�3�I A$$%&
38�&$�������� � A$6%$
2&(� � �8��2���� A�'%(
���������
�
��A�<
2�2
�?,8
0
J/��.����� �
& ,�/��.���� � �8
38�&&�/��.����� �
�
3&&�3�I
�
������ 9���!!�#� /���������
3&&�3�I A$$%&
38�&&�/��.����� � A$6%&
,�/��.���� � �8 A<*5
34��������/#������6���56
��������������� � ������������:�.�����8�� �0�&7�
���������
�
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
,0��2
2�2
�?,8
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
,0�/3>
2�2
�?,8
89M
38�&�������F��� �
(& J8���!���.����
�++���/��
;T0T;
J8���!���.����
J8���!���.����
$
>2
J8���!���.����
�
�
�++���/�� J�������,����
J�������,����
J8���!���.����
�
J�������,����
>2
�
J�������,����
(
�
J������� �
>2
�
�++���/��
J8���!���.����
J������� �
/���3��������
������ 9���!!�#� /���������
�++���/�� A�(&)
/���3�������� A�*76
38�&�������F��� � A$6%�
� A�5%�
>2 A�5%&
��������
�
���.!��.
2
/�9���
38�&�������F��� �
N/���3��������
������ 9���!!�#� /���������
/���3�������� A�*76
38�&�������F��� � A$6%�
34��������/#������)���56
��������������� � ������������8��!����F�!����� �0��&�
������� 8��!����F�!��������� �!"�����!���!�#��� $�%&'%$&&(�����$�&)�&*� �!"���������+�!�!�#��� $6%&$%$&&)�����6�(5�()�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
�9& 3�0���.�����@ ,2�3 9<�09 �
�<7 8���!� ,2�3 8, �
� � ,2�3 � �
88/8��8I�/8��92�A�08���2 �92��2 ,�9�0��������
�
0
0
�&%& >2
�
�
�
,��
�
,��
�
������ 9���!!�#� /���������
� A�5%�
,�� A�5%*
,�� A�5%$
>2 A�5%&
9���������������������������������
�
0
0
0
0
�&%& :3&&� �������
�
:3&��,���.��-�!��
�
:3&$�29�,���.��-
�
29�,���.��-�!�
�
:3&*��!����3����
�
:3&7� ���!�,���.��-
�
������ 9���!!�#� /���������
29�,���.��-�!� A&%* 0���.�����.����"�������&���!����������������
:3&&� ������� A$�%& 3������������� �������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
:3&7� ���!�,���.��- A$�%7
���������
� 0
0
0
�&%& 0���1
�
338�����
�
338�0���.�
�
������ 9���!!�#� /���������
338����� A&%� 3����&��+��"��/3?����338�����
338�0���.� A&%$ 0���.�����.����"�������&����338�����
0���1 A&%& 1.����0���1����.����������!��-�� � .
34��������/#������'���56
��������������� � ������������8��!����F�!����� �0��&�
0�.���������.���.�+���.����!����!�!������������
� 0
0
0
0
0
0
0
0
0
�
0
�&%& /&&�/��
�
/&��M�,
�
/&$� ���M�,
�
/&*�0/A
�
/&7� ���0/A
�
/&(������F��0/A
�
2&��0/A������
�
2&$�0/A�����
�
&*�/����I
�
�&%� &$�830'5&&
�
2&(� � �8��2����
�
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&��M�, A�)%�
/&$� ���M�, A�)%$
/&*�0/A A�)%* ��"����!��������.��.��
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
&$�830'5&& A�6%$
&*�/����I A�6%*
2&��0/A������ A�'%&
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
2&(� � �8��2���� A�'%(
��������
� 0
0
0
�&%& 3�� � ��!��-�
�
3�� � �
�
3�� � $
�
������ 9���!!�#� /���������
3�� � � A$)%�
3�� � $ A$)%$
3�� � ��!��-� A$)%&
���������
�
��A�<
2�2
�?,8
�&%&
(&&& ,�/��.���� � �8
������ 9���!!�#� /���������
,�/��.���� � �8 A<*5
34��������/#�����$&���56
��������������� � ������������8��!����F�!����� �0��&�
0�.����������.�+���.���������������������
�
��A�<
2�2
�?,8
0
�&%&
& ,����2.����
��D� ��������-��
�
������ 9���!!�#� /���������
��D� ��������-�� A&%7 : �� ������������D������.����"��!�����!�����
,����2.���� A<*&
���������
�
��A�<
2�2
�?,8
��A�0
2�2
�?,8
�&%�
& � �/�����
&%& ��.��A����0/A
������ 9���!!�#� /���������
��.��A����0/A A9�& ��.��A����!�������+���������!������ �
� �/����� A<7 /�������+� � �.����.��!����.�����.����.�����
8��!����F�!���������.��8, ������.���������.��-����.����+����%���������
�
0
0
0
0
��A�<
2�2
�?,8
�&%� &���!��-�
�
=&&��������
�
=&���@/��-�.
�
=&$�9�+����
�
=&7�2��3��-
�
& ��.��200�0
������ 9���!!�#� /���������
=&&�������� A$&%&
=&���@/��-�. A$&%�
=&$�9�+���� A$&%$
=&7�2��3��- A$&%7
&���!��-� A�6%�
��.��200�0 A<$ /�����+��"����.������������-��������!���
34��������/#�����$����56
��������������� � ������������8��!����F�!����� �0��&�
8��!����F������++������!����!�!����1����������������������
�
,0�/3>
2�2
�?,8
,0�/3>
2�2
�?,8
,0�/3>
2�2
�?,8
�&%&
;; �++���/��
;; /���3��������
;; /����@�����
������ 9���!!�#� /���������
�++���/�� A�(&)
/����@����� A��)5
/���3�������� A�*76
:��������.�!�����.��@������.����!��.��!!�������!������.��������
�
,0�/3>
2�2
�?,8
,0�/3>
2�2
�?,8
,0�/3>
2�2
�?,8
�&%&
;T0; /��������
;T��; /���!������I
;T;; /���!������.
������ 9���!!�#� /���������
/���!������. A�7$
/���!������I A�7&
/�������� A�*)
8��!����F�!���������++������ ��������� � �1���.� ���.��.�!����.�B����������
� 0
0
�&%& 2&�� ����@ ��
�
2&$� � �����+���
�
������ 9���!!�#� /���������
2&�� ����@ �� A$'%�
2&$� � �����+��� A$'%$
���!�����+����������!������!��+����!�#��������������������
�
������� �.�.
2
�&%&
3&��8��*.
�
������ 9���!!�#� /���������
3&��8��*. A$$%� �.������.��������*�.�����.�������������������������
34��������/#�����$$���56
��������������� � ������������8��!����F�!����� �0��&�
������������!����F�!������������
� 0
�&%& &&�8��!����F��
�
������ 9���!!�#� /���������
&&�8��!����F�� A�6%&
8��!����F�����.��++��.������-������������1� � �.������������!������/3?��������
� 02,
�&%�
8��!����F�!���������++������ ��������� � ���������
�
��A�9<
2�2
�?,8
�&%&
N�++��� � ��?, J3�0���.�����@
������ 9���!!�#� /���������
�++��� � ��?, A�5&
8��!����F�!���������++������ ��������� � ���������
�
�0
2�2
89M
88,
8��
�&%&
J8���!�
�
5*
8��!����F�!���������++������ ��������� � ���������
�
��A�<
2�2
�?,8
�99�98
2�2
�?,8�
8$
�&%&
& LJ3�0���.�����@
O$
J3�0���.�����@
J3�0���.�����@
8��!����F�!���������++������ ��������� � ���������
2M,
34��������/#�����$*���56
��������������� � ������������3�����&�� �0����
������� 3�����&������ �!"�����!���!�#��� $�%&'%$&&(�����$�&)�&*� �!"���������+�!�!�#��� �&%&(%$&�&�����'�&&�$*�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
�&%& ��� �.��3����! ,2�3 ���� �
�&%� ���9�.!���,�� ,2�3 ���� �
:�.���������!��������,���.��-�!����������
� � � �
3&&�3�I :3&&� ������� =&&�������� :3&(�/������3�.����
������ 9���!!�#� /���������
=&&�������� A$&%&
3&&�3�I A$$%&
:3&&� ������� A$�%& 3������������� �������
:3&(�/������3�.���� A$�%(
:�.���������!��������,���.��-�!����������
� � 0
�
0
0
:3&7� ���!�,���.��- :3&(�/������3�.���� :3&&� �������
�
338�0���.� :3&��,���.��-�!��
�
:3&*��!����3����
�
:3&7� ���!�,���.��-
�
338�����
�
338�0���.�
�
������ 9���!!�#� /���������
:3&&� ������� A$�%& 3������������� �������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
:3&7� ���!�,���.��- A$�%7
:3&(�/������3�.���� A$�%(
338����� A&%� 3����&��+��"��/3?����338�����
338�0���.� A&%$ 0���.�����.����"�������&����338�����
/��+��������������&��������������338���������
� �
��A��
2�2
�?,8
0
:3&��,���.��-�!�� :3&*��!����3����
) ��*&
:3&*��!����3����
�
������ 9���!!�#� /���������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
34��������/#�����$7���56
��������������� � ������������3�����&�� �0����
,������F�!�������.�����������������,���.��-�!�����������
�
,��,�
2
� �!��-�
>��.
,���
/�������
�&%&
:3&��,���.��-�!��
6$&&&&&
,��
,�3����!�,���.��-
J ��� �.��3����!
������ 9���!!�#� /���������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
,�� A�5%$
,�3����!�,���.��- A97)
/����!����.�������!��������������������.!���@�����������
�
� �
J ��� �.��3����! :3&$�29�,���.��-
�
29�,���.��-�!� :3&��,���.��-�!��
������ 9���!!�#� /���������
29�,���.��-�!� A&%* 0���.�����.����"�������&���!����������������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
8���������!������� ��:���� ������,���.��-�!��C����������.�*&�.�����������������
� � �
:3&$�29�,���.��- �&%( 29�,���.��-�!�
������ 9���!!�#� /���������
29�,���.��-�!� A&%* 0���.�����.����"�������&���!����������������
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
,������F�!���������.�*&�.����� �.����� ������,���.��-�!�����������
�
,��,�
2
� �!��-�
>��.
,���
/�������
�&%&
:3&$�29�,���.��-
'&&&&
,��
,�9�.!���!��,��
J ���9�.!���,��
������ 9���!!�#� /���������
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
,�9�.!���!��,�� A9($
,�� A�5%$
34��������/#�����$(���56
��������������� � ������������3�����&�� �0����
:�.���������!������������� ����������������
�
0
0
0
������� �.�.
2
J ���9�.!���,�� :3&&� �������
�
:3&��,���.��-�!��
�
:3&$�29�,���.��-
�
:3&*��!����3����
�
29�,���.��-�!�
�
&&�8��!����F��
�
������ 9���!!�#� /���������
29�,���.��-�!� A&%* 0���.�����.����"�������&���!����������������
&&�8��!����F�� A�6%&
:3&&� ������� A$�%& 3������������� �������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
34��������/#�����$5���56
��������������� � ������������3�����&�� �0����
���������
/��+��������������&�������������� ����������������������"������������������!��!�#�%
� � �
��A��
2�2
�?,8
�
��A��
2�2
�?,8
��A��
2�2
�?,8
��A�<
2�2
�?,8
��A�<
2�2
�?,8
��A��
2�2
�?,8
0/A
2�2
,��
3�0,
�,/R
2�2
8,
2A,
�,/R
2�2
8,
2A,
28
0
0
:3&&� ������� :3&*��!����3���� &$�830'5&&
$( ��*&
&$�830'5&&
' ��*&
�5J�/ ��)6
( �<'&
$(&& �<'$
$(( ��'7
�++���/��
&
��0/A
$*
��M�,
'
338�����
�
:3&*��!����3����
�
������ 9���!!�#� /���������
�++���/�� A�(&)
��0/A 8,��$
��M�, 8,���
&$�830'5&& A�6%$
:3&&� ������� A$�%& 3������������� �������
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
338����� A&%� 3����&��+��"��/3?����338�����
34��������/#�����$6���56
��������������� � ������������:�.�����/��-��� �0��$�
������� :�.�����/��-������� �!"�����!���!�#��� $�%�$%$&&5����$��()�&�� �!"���������+�!�!�#��� �*%&$%$&&)�����(�76�7)�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�<& /�����3?= 8 8, �
� � 8��?, � �
�$%& ������� �?, ���� �
� � �?, � �
�$%� 3����� ,2�3 ���� �
�$%$ 2���F�����.� ,2�3 ���� �
�<* /�����3?=���� ,2�3 8, �
�<( 8,�9�-������ ,2�3 8, �
�96 98,�/�!�����0�.�� ,2�3 98, �
�9�� 0���G ,2�3 98, �
�9�( /����0���G�� ,2�3 98, �
�9�' /����0���G�$ ,2�3 98, �
� � ,2�3 � �
8��!�����F�!����.��������
� 0
Q8
0
SS8
0
��A�<
2�2
�?,8
�&%� =&(���������
�
J/�����3?=
&
?�����!��!�
�
,2 ,�����
�
J/�����3?=
&
,2 ,�����
�
?�����!��!�
�
J/�����3?= ������=�1
������ 9���!!�#� /���������
=&(��������� A$&%(
?�����!��!� A&%( ?���������=�1�.��
������=�1 A<*$
,2 ,����� A&%5 ,2 ,�����
A���+�!�!����������������!������������������
Q8 � �
�
SS8 �
�
PQ8
J/�����3?=
&
?�����!��!� J3�����
,2 ,����� =&���@/��-�.
�
J/�����3?=
&
?�����!��!�
,2 ,�����
������=�1
J/�����3?=
������ 9���!!�#� /���������
=&���@/��-�. A$&%�
?�����!��!� A&%( ?���������=�1�.��
������=�1 A<*$
,2 ,����� A&%5 ,2 ,�����
34��������/#�����$)���56
��������������� � ������������:�.�����/��-��� �0��$�
A����������.1��.�������!��!����.����������������
� Q8
0
SS8
0
��A�<
2�2
�?,8
J3����� J/�����3?=
&
?�����!��!�
�
,2 ,�����
�
J/�����3?=
&
,2 ,�����
�
?�����!��!�
�
J/�����3?= ������=�1
������ 9���!!�#� /���������
?�����!��!� A&%( ?���������=�1�.��
������=�1 A<*$
,2 ,����� A&%5 ,2 ,�����
���������
�
�:�8,8�2
2�2
�?,
�&%&
J0���G
/�������!�#�������.�!�!��.���������!��!�������������������
� �
<�9�9<
2�2
�?,8�
8$
98A�98
2�2
�?,8�
8$
?��98
2�2
�?,8�
8$
98�8
2�2
�?,8
SS8 �
,2 ,����� J3�����
�5J&&
J0���G
J/����0���G��
J/����0���G��
O5&�&&
J/����0���G��
$6'
J/����0���G��
J/����0���G��
J/����0���G�� �����.��2 ,
�����.��2 ,
&
J2���F�����.�
=&7�2��3��-
�
������ 9���!!�#� /���������
=&7�2��3��- A$&%7
�����.��2 , A<) ?.����,2 ,�����C����������������.����������
,2 ,����� A&%5 ,2 ,�����
34��������/#�����$'���56
��������������� � ������������:�.�����/��-��� �0��$�
���������
� � �
�
�
J3����� /&&�/�� J�������
J2���F�����.� =&(���������
�
=&(���������
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
=&(��������� A$&%(
/�����������F�������8�28�1����/��-����������������
� � �
<�9�9<
2�2
�?,8�
8$
SS9
0
:3&&� ������� 3&&�3�I ?�����!��!�
�5J&&&
J0���G
J/����0���G�$
J/����0���G�$
�5J&&&
3 &&�8�28
�
3&&�3�I
�
������ 9���!!�#� /���������
3&&�3�I A$$%&
3 &&�8�28 A$(%&
?�����!��!� A&%( ?���������=�1�.��
:3&&� ������� A$�%& 3������������� �������
34��������/#�����*&���56
��������������� � �����������������F���0/A�� �0��*�
������� �����F���0/A������ �!"�����!���!�#��� �7%&�%$&&6�����5�&&�(5� �!"���������+�!�!�#��� $$%&�%$&&)�����$�$7�$(�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
� � ,2�3 � �
��������
� 02,
/&7� ���0/A
������ 9���!!�#� /���������
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
��������
� 0
0
/&7� ���0/A /&*�0/A
�
/&7� ���0/A
�
/&(������F��0/A
�
������ 9���!!�#� /���������
/&*�0/A A�)%* ��"����!��������.��.��
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
���������
�
�.!���/�����
2
3�.���/�����
� �
0
�&%& 2&7�����72����
�
;200�0; 2&��0/A������
2&��0/A������ 38�&&�/��.����� � 2&(� � �8��2����
�
2&7�����72����
�
������ 9���!!�#� /���������
38�&&�/��.����� � A$6%&
2&��0/A������ A�'%&
2&7�����72���� A�'%*
2&(� � �8��2���� A�'%(
���������
�
�.!���/�����
2
3�.���/�����
3&*�0�.��,/
;�=; 3&7��2/�
������ 9���!!�#� /���������
3&*�0�.��,/ A$*%&
3&7��2/� A$*%�
34��������/#�����*����56
��������������� � �����������������F���0/A�� �0��*�
��������
�
�.!���/�����
2
3�.���/�����
3&7��2/�
;�=; 3&(�/��.�����38
������ 9���!!�#� /���������
3&7��2/� A$*%�
3&(�/��.�����38 A$*%$
,��������.����������������
/�������������.�������
�
�.!���/�����
2
3�.���/�����
3&(�/��.�����38
; 8��38; 3&5�38
������ 9���!!�#� /���������
3&(�/��.�����38 A$*%$
3&5�38 A$*%*
,��������.����������������
/�������������.�������
�
�.!���/�����
2
3�.���/�����
3&(�/��.�����38
;02�9>; 3&)�8�28
������ 9���!!�#� /���������
3&(�/��.�����38 A$*%$
3&)�8�28 A$*%(
,��������.����������������
/�������������.�������
�
�.!���/�����
2
3�.���/�����
3&5�38
;�=; 3&6�3�.�38
������ 9���!!�#� /���������
3&5�38 A$*%*
3&6�3�.�38 A$*%7
���������
�
�.!���/�����
2
3�.���/�����
3&)�8�28
;�=; 3&'�/�8
������ 9���!!�#� /���������
3&)�8�28 A$*%(
3&'�/�8 A$*%5
���������
�
�.!���/�����
2
3�.���/�����
3&'�/�8
;�=; 3�&�/:�
������ 9���!!�#� /���������
3&'�/�8 A$*%5
3�&�/:� A$*%6
34��������/#�����*$���56
��������������� � �����������������F���0/A�� �0��*�
��������
�
�.!���/�����
2
3�.���/�����
3�&�/:�
;�=; 3�$�/3�
������ 9���!!�#� /���������
3�&�/:� A$*%6
3�$�/3� A$7%�
��������
�
�.!���/�����
2
3�.���/�����
3�$�/3�
;/3� ; 3��� �
������ 9���!!�#� /���������
3��� � A$7%&
3�$�/3� A$7%�
���������
�
�.!���/�����
2
3�.���/�����
3��� �
;�=; 3�*��9,0
������ 9���!!�#� /���������
3��� � A$7%&
3�*��9,0 A$7%$
���������
�
�.!���/�����
2
3�.���/�����
3�*��9,0
;�=; 3�7�� �G�
������ 9���!!�#� /���������
3�*��9,0 A$7%$
3�7�� �G� A$7%*
��������
�
�.!���/�����
2
3�.���/�����
3�7�� �G�
;�=; 3�(�0�.����
������ 9���!!�#� /���������
3�7�� �G� A$7%*
3�(�0�.���� A$7%7
���������
�
�.!���/�����
2
3�.���/�����
3�(�0�.����
;�=; 3�5�:�����
������ 9���!!�#� /���������
3�(�0�.���� A$7%7
3�5�:����� A$7%(
34��������/#�����**���56
��������������� � �����������������F���0/A�� �0��*�
���������
�
�.!���/�����
2
3�.���/�����
3�5�:�����
;�=; 3�6�/�������
������ 9���!!�#� /���������
3�5�:����� A$7%(
3�6�/������� A$7%5
���������
�
�.!���/�����
2
3�.���/�����
3�6�/�������
; ��-���; 3�)������F������
������ 9���!!�#� /���������
3�6�/������� A$7%5
3�)������F������ A$7%6
���������
�
�.!���/�����
2
3�.���/�����
3��&&�,��� �
;Q; 3��&��/��.����� �
������ 9���!!�#� /���������
3��&&�,��� � A$5%&
3��&��/��.����� � A$5%�
���������
�
�.!���/�����
2
3�.���/�����
3��&$�,�@��� �
;/�: ; 3��&*� ���=
������ 9���!!�#� /���������
3��&$�,�@��� � A$5%$
3��&*� ���= A$5%*
��������
�
�.!���/�����
2
3�.���/�����
38�&&�/��.����� �
;O/�:0��&CC&; 3&&�3�I
������ 9���!!�#� /���������
3&&�3�I A$$%&
38�&&�/��.����� � A$6%&
��������
�
�.!���/�����
2
3�.���/�����
38�&&�/��.����� �
;02/�?02�9; 38�&�������F��� �
������ 9���!!�#� /���������
38�&&�/��.����� � A$6%&
38�&�������F��� � A$6%�
34��������/#�����*7���56
��������������� � �����������������F���0/A�� �0��*�
���������
�
�.!���/�����
2
3�.���/�����
38�&&�/��.����� �
;02/�02�9; 38�&$�������� �
������ 9���!!�#� /���������
38�&&�/��.����� � A$6%&
38�&$�������� � A$6%$
���������
�
�.!���/�����
2
3�.���/�����
38�&$�������� �
;�=; 3&&�3�I
������ 9���!!�#� /���������
3&&�3�I A$$%&
38�&$�������� � A$6%$
��������
�
�.!���/�����
2
3�.���/�����
3 &&�8�28
;�=; 3&&�3�I
������ 9���!!�#� /���������
3&&�3�I A$$%&
3 &&�8�28 A$(%&
2:�2,�� 8�����������
�
0
0
/&(������F��0/A 2&$�0/A�����
�
/&&�/��
�
/&(������F��0/A
�
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
34��������/#�����*(���56
��������������� � ������������:�.�����2�����.�� �0��7�
������� :�.�����2�����.������ �!"�����!���!�#��� �7%&�%$&&6�����5�&��$&� �!"���������+�!�!�#��� $6%&$%$&&)�����$�$)��$�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 ���� �
� � 8��?, � �
� � �?, � �
�&%& /���/������ ,2�3 ���� �
�&%� ��D���-�� ,2�3 ���� �
�&%$ 2-���� ,2�3 ���� �
�&%* 0����!��� ,2�3 ���� �
��� 8���!��� ,2�3 �>,2 �
� � ,2�3 � �
��������
� 0
�&%& J0����!���
�
/������������������������!����!�!�����������
�
,��,�
2
� �!��-�
>��.
,���
/�������
�&%&
/&&�/��
$$&&&
,��
,� �����/��
J/���/������
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
,� �����/�� A977
,�� A�5%$
:�.�����������!����������������
�
��A��
2�2
�?,8
/R0� 89
2�2
�?,8�
8$
Q�
�8
2�2 PS8 �
�?,8
89M
SS�
0
3�)������F������
� J8���!���
�++���/��
;B;
J8���!���
J8���!���
&
��������-��
B'�
J��D���-��
�++���/��
J8���!���
��������-��
J8���!���
&
2&$�0/A�����
�
3�)������F������
�
3&&�3�I
�
������ 9���!!�#� /���������
�++���/�� A�(&)
3&&�3�I A$$%&
3�)������F������ A$7%6
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
��������-�� A<5 �����+��"��: �� ��������Q�B'������.��=�
34��������/#�����*5���56
��������������� � ������������:�.�����2�����.�� �0��7�
:�.��������2-����.���� �����B�����������
� �
�
�
J��D���-�� J2-����
2&�� ����@ ��
2&$� � �����+���
������ 9���!!�#� /���������
2&�� ����@ �� A$'%�
2&$� � �����+��� A$'%$
:�.��������2-����.���� �����B�$��������
� �
�
�
�
�
J2-���� 200�0
J/���/������
2&��0/A������
2&$�0/A�����
=&&��������
������ 9���!!�#� /���������
200�0 A&%6 2���������-�����!����C�.�����.��200�0�+����
=&&�������� A$&%&
2&��0/A������ A�'%&
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
���������
��%B�2�������������.���������!���������-������������3�/
*$%B�2�����������������-������ � %�0�-�.��������������.����%
� �
��A�<
2�2
�?,8
�
��A�<
2�2
�?,8
J/���/������ 3�� � ��!��-� J0����!���
�
�� ��.��200�0
3�� � ��!��-�
*$ ��.��200�0
������ 9���!!�#� /���������
3�� � ��!��-� A$)%&
��.��200�0 A<$ /�����+��"����.������������-��������!���
34��������/#�����*6���56
��������������� � ������������:�.�����2�����.�� �0��7�
:�.��������2-����.���� �����B�*%���������
�(%B����!������������.�.+�!������������������.�����!������!����!�!�#��!�����������.
*�%B� ��"����!�������� � �������!����.�����������������������+�����
**%B�2���++������.��������� � ��.��������
� �
��A�<
2�2
�?,8
�
��A�<
2�2 0
�?,8
�
��A�<
2�2 0
�?,8
J2-���� J��D���-�� ��D� ��������-��
�
�( ��.��200�0
2&�� ����@ �� 2&�� ����@ ��
�
** ��.��200�0
2&$� � �����+��� 2&$� � �����+���
�
*� ��.��200�0
������ 9���!!�#� /���������
2&�� ����@ �� A$'%�
2&$� � �����+��� A$'%$
��.��200�0 A<$ /�����+��"����.������������-��������!���
��D� ��������-�� A&%7 : �� ������������D������.����"��!�����!�����
:�.��������2-����.���� �����B�7%� ����.����/��-�.���������
$�%B��������!���������.�����.���.����.�������
$*%B��������������.�������.!���@�#����������������������.��"���G�!����%�
$7%B����!��-����+�����-������������.�!����!��
� �
��A�<
2�2
�?,8
� SS8
��A�<
2�2
�?,8
� �
��A�<
2�2
�?,8
0
=&&�������� =&���@/��-�.
$� ��.��200�0
,2 ,����� �����.��2 ,
&
$* ��.��200�0
?�����!��!� =&$�9�+����
$7 ��.��200�0
&���!��-�
�
������ 9���!!�#� /���������
=&&�������� A$&%&
=&���@/��-�. A$&%�
=&$�9�+���� A$&%$
&���!��-� A�6%�
?�����!��!� A&%( ?���������=�1�.��
��.��200�0 A<$ /�����+��"����.������������-��������!���
�����.��2 , A<) ?.����,2 ,�����C����������������.����������
,2 ,����� A&%5 ,2 ,�����
34��������/#�����*)���56
��������������� � ������������:�.�����2�����.�� �0��7�
:�.��������2-����.���� �����B�(%�0�.��.���!�����������������
�*%B� �����������������F�!��������������������������.������!���200�0
�7%B�2��38�����.�!����!��
� �
��A�<
2�2 0
�?,8
� �
��A�<
2�2
�?,8
�
��A�<
2�2
�?,8
2&��0/A������ 3&5�38 &���!��-�
�
�7 ��.��200�0
3&5�38 3�� � ��!��-� J0����!���
�
�* ��.��200�0
3�� � ��!��-�
*$ ��.��200�0
������ 9���!!�#� /���������
3&5�38 A$*%*
3�� � ��!��-� A$)%&
&���!��-� A�6%�
2&��0/A������ A�'%&
��.��200�0 A<$ /�����+��"����.������������-��������!���
:�.��������2-����.���� �����B�5%�0�.��.��.����.������.���������
�$%B������.��.����������������!����.������������.��������������3�/
*$%B� � ����.��"�����������-����!����!�������
� �
��A�<
2�2
�?,8
�
��A�<
2�2
�?,8
2&$�0/A����� 3�� � ��!��-� J0����!���
�
�$ ��.��200�0
3�� � ��!��-�
*$ ��.��200�0
������ 9���!!�#� /���������
3�� � ��!��-� A$)%&
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
��.��200�0 A<$ /�����+��"����.������������-��������!���
��������
�
������� �.�.
2
J0����!���
&&�8��!����F��
�
������ 9���!!�#� /���������
&&�8��!����F�� A�6%&
34��������/#�����*'���56
��������������� � ������������:�������M�,�� �0��(�
������� :�������M�,������ �!"�����!���!�#��� �7%&�%$&&6�����5�&&�$5� �!"���������+�!�!�#��� $'%&�%$&&)�����&�76�($�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
�&%& �� 8��?, ���� �
� � �?, � �
� � ,2�3 � �
��������
�
����..�
2
J ��
,2�3�08I�/8��92���00�U?2�92����92��B����������
�
�.����2.����
2
3�.����.
3&��8��*.
*(&& 3&$��830'5&&
������ 9���!!�#� /���������
3&��8��*. A$$%� �.������.��������*�.�����.�������������������������
3&$��830'5&& A$$%$
���������
� �
0
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&$��830'5&& &$�830'5&& 3&*�0�.��,/
�
3&$��830'5&&
�
&$�830'5&&
;��O���S'5&&;
�
�
&
������ 9���!!�#� /���������
3&$��830'5&& A$$%$
3&*�0�.��,/ A$*%&
&$�830'5&& A�6%$
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&*�0�.��,/
;��N+&;
�
�
*&&&
������ 9���!!�#� /���������
3&*�0�.��,/ A$*%&
� A�5%�
34��������/#�����7&���56
��������������� � ������������:�������M�,�� �0��(�
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&7��2/�
;���&;
�
�
&
������ 9���!!�#� /���������
3&7��2/� A$*%�
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&(�/��.�����38
;��O!���V;
�
�
&
������ 9���!!�#� /���������
3&(�/��.�����38 A$*%$
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&5�38
;��O!���S;
>2
�
&
������ 9���!!�#� /���������
3&5�38 A$*%*
� A�5%�
>2 A�5%&
���������
�
�.����2.����
2
3�.����.
3&6�3�.�38
�&&&& 3&)�8�28
������ 9���!!�#� /���������
3&6�3�.�38 A$*%7
3&)�8�28 A$*%(
���������
�
2�-����/�����
2
�
/������
3��������
/������.
�F��0/A
3&)�8�28
3 &&�8�28 ;��O�.�;
�
�
&
������ 9���!!�#� /���������
3&)�8�28 A$*%(
3 &&�8�28 A$(%&
� A�5%�
34��������/#�����7����56
��������������� � ������������:�������M�,�� �0��(�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3&'�/�8
;��O!���S&C&C&C&;
�
�
&
������ 9���!!�#� /���������
3&'�/�8 A$*%5
� A�5%�
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�&�/:�
;��O!��+S�;
�
�
&
������ 9���!!�#� /���������
3�&�/:� A$*%6
� A�5%�
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3��� �
;��W..�..S�;
�
�
&
������ 9���!!�#� /���������
3��� � A$7%&
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�$�/3�
;��O!��.S�,C�,C�,;
�
�
&
������ 9���!!�#� /���������
3�$�/3� A$7%�
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�*��9,0
;��N9&;
�
�
&
������ 9���!!�#� /���������
3�*��9,0 A$7%$
� A�5%�
34��������/#�����7$���56
��������������� � ������������:�������M�,�� �0��(�
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�7�� �G�
;��XU&;
�
�
&
������ 9���!!�#� /���������
3�7�� �G� A$7%*
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�(�0�.����
;��.&S�;
�
�
*&&&
������ 9���!!�#� /���������
3�(�0�.���� A$7%7
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�5�:�����
;��ND;
�
�
&
������ 9���!!�#� /���������
3�5�:����� A$7%(
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3�6�/�������
;��W����;
�
�
�$&&
������ 9���!!�#� /���������
3�6�/������� A$7%5
� A�5%�
���������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3��&&�,��� �
;��O!��.S;
>2
>2
&
������ 9���!!�#� /���������
3��&&�,��� � A$5%&
>2 A�5%&
34��������/#�����7*���56
��������������� � ������������:�������M�,�� �0��(�
���������
� �
2�-����/�����
2
/������
3��������
/������.
�F��0/A
3��&$�,�@��� � /&&�/�� &*�/����I
�
;;
>2
�
�$&&
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
3��&$�,�@��� � A$5%$
&*�/����I A�6%*
� A�5%�
>2 A�5%&
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
38�&&�/��.����� �
;��O!���S�;
�
�
*&&&
������ 9���!!�#� /���������
38�&&�/��.����� � A$6%&
� A�5%�
��������
�
2�-����/�����
2
/������
3��������
/������.
�F��0/A
38�&$�������� �
;��O!���S�;
�
�
�$&&
������ 9���!!�#� /���������
38�&$�������� � A$6%$
� A�5%�
34��������/#�����77���56
��������������� � ������������8�.������A������ �0��5�
������� 8�.������A���������� �!"�����!���!�#��� &5%&�%$&&6�����&�**�&&� �!"���������+�!�!�#��� $'%&�%$&&)�����&�$7�&)�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& /����� 8 ,08: �
�97 A���� 8 9<�09 �
� � 8��?, � �
� � �?, � �
�)%& R�1�A���� ,2�3 ���� �
�)%� A�����0 ,2�3 ���� �
�)%$ A�����98 ,2�3 ���� �
�)%* A�����8 ,2�3 ���� �
��' 8���!�����!� ,2�3 �>,2 �
���& 8���!���@ ,2�3 �>,2 �
���� �F��!����� ,2�3 �>,2 �
���$ �F��-���� ,2�3 �>,2 �
� � ,2�3 � �
��!��������!������1�.��;��.���;�������"�1�-���������.�������������
�
,0�/3>
2�2 0
�?,8
�&%& JR�1�A����
�
LJ/����� /���3��������
������ 9���!!�#� /���������
/���3�������� A�*76
�.��������0���������
�
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
Q�
�
�&%&
� J8���!�����!�
/���3��������
;N0;
J8���!�����!�
J8���!�����!�
&
JR�1�A����
�
JA�����0
������ 9���!!�#� /���������
/���3�������� A�*76
34��������/#�����7(���56
��������������� � ������������8�.������A������ �0��5�
�.��������98,���������
�
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
Q�
�
JR�1�A����
� J8���!�����!�
/���3��������
;N9;
J8���!�����!�
J8���!�����!�
&
JR�1�A����
�
JA�����98
������ 9���!!�#� /���������
/���3�������� A�*76
�.��������8,���������
�
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
Q�
�
JR�1�A����
� J8���!�����!�
/���3��������
;N8;
J8���!�����!�
J8���!�����!�
&
JR�1�A����
�
JA�����8
������ 9���!!�#� /���������
/���3�������� A�*76
��R�1�A������.��!��������!������1�������������
� 02,
JR�1�A����
8�R�1�A������/� ,0?//8�������� �.����������/��������������
�
,0��2
2�2
�?,8
92/��
2�2
�?,8
�&%&
LJ/����� J �F��!�����
J8���!�����!� /���3��������
������ 9���!!�#� /���������
/���3�������� A�*76
34��������/#�����75���56
��������������� � ������������8�.������A������ �0��5�
8�R�1�A�������!����F�!�#�����3�����.�����������.���������/��������������
�
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
�&%&
J8���!�����!�
$
>2
J8���!�����!�
�
�
J �F��!�����
J8���!�����!�
�
J �F��!�����
�
>2
������ 9���!!�#� /���������
� A�5%�
>2 A�5%&
8�R�1�A�������/��-��.��������A��������/��������������
� �
0�
2�2
�?,8
�,
�
98�
2�2
�?,8
�,
�
8�
2�2
�?,8
�,
�&%& JA�����0
LJA����
$J��&&&&��
/����@�����
JA�����98
LJA����
&
/����@�����
JA�����8
LJA����
&
/����@�����
������ 9���!!�#� /���������
/����@����� A��)5
34��������/#�����76���56
��������������� � ������������8�.������A������ �0��5�
/� ,0?//8������A�����������/��������������
�
��A��
2�2
�?,8
/R0� 89
2�2
�?,8�
8$
,0��2
2�2
�?,8
����1��
2
A����A��
A�$
?��0
02 ,�0
/�92�
,0�/3>
2�2
�?,8
89M
,0�/�,
2�2
�?,8
�&%&
� J8���!���@
/����@�����
;B&�$*7(56)';
J8���!���@
/����@����� J �F��-����
J �F��-����
J8���!���@
�
J �F��-����
�
>2
/����@�����
J8���!���@
J �F��-����
/����@�����
/����@����� /���3��������
������ 9���!!�#� /���������
/����@����� A��)5
/���3�������� A�*76
� A�5%�
>2 A�5%&
/� ,0?//8��������3����� �����������/��������������
�
,0�/3>
2�2
�?,8
89M
,0�/�,
2�2
�?,8
�&%&
LJ/�����
J8���!�����!�
J �F��!�����
/����@�����
/����@����� /���3��������
������ 9���!!�#� /���������
/����@����� A��)5
/���3�������� A�*76
34��������/#�����7)���56
��������������� � ���������������.!��.�� �0��'�
������� ���.!��.������ �!"�����!���!�#��� $6%&6%$&&������)�&6��5� �!"���������+�!�!�#��� $*%&7%$&&6�����$�7��$5�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& /�9��� 8 9<�09 �
� � 8��?, � �
� � �?, � �
�<7 �2�D��� ,2�3 8, �
�<5 8���!� ,2�3 8, �
�9) 3������D��� ,2�3 9<�09 �
�<�$ 8����@ ,2�3 8, �
���7 �����@ ,2�3 �>,2 �
� � ,2�3 � �
��������
�
,0��2
2�2
�?,8
��8
2�2
�?,8
�&%&
LJ/�9��� J�����@
J�����@ J�2�D���
��������
�
��A�9<
2�2
�?,8
�&%&
J/�9��� J3������D���
���������
�
�0
2�2
89M
88,
8��
�&%&
J8���!�
�
J�2�D���
���������
�
�99�98
2�2
�?,8�
8$
�&%&
�
J3������D���
J3������D���
34��������/#�����7'���56
��������������� � ���������������.!��.�� �0��'�
��������
QS� PS�
��8
2�2
�?,8
�99�8
2�2
�?,8�
8$
8��
2�2
�?,8
LJ3������D���
5(
LJ3������D���
'&
LJ3������D��� J8����@
*$
J8����@
J8����@
J8����@ LJ3������D���
���������
2M,
34��������/#�����(&���56
��������������� � ������������������� �.�.�� �0�$&�
������� ������� �.�.������ �!"�����!���!�#��� $'%�$%$&&5�����&�(6�&(� �!"���������+�!�!�#��� $$%&�%$&&)�����*�*'�7(�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
�<& �!�� ,2�3 8, �
�9$ 3��@ ,2�3 9<�09 �
� � ,2�3 � �
��������
8�2/�,0��� ����/�92����00��� �2���? 20�>��/,8A��� �2���8,�92���� � 2� 8:?82,2
�
��A�<
2�2
�?,8
��A�9<
2�2
�?,8
�&%&
* J�!��
NI����3����!��� J3��@
������ 9���!!�#� /���������
I����3����!��� A�$$
��������
���
(
���������
�
��A�<
2�2
�?,8
�99�98
2�2
�?,8�
8$
?��8
2�2
�?,8�
8$
Q8 Y�3
�&%&
& LJ3��@
$
J3��@
J3��@
J�!��
�
J�!��
J�!��
&
(
34��������/#�����(����56
��������������� � ������������ �.����2.������ �0�$��
������� �.����2.���������� �!"�����!���!�#��� $6%�$%$&&5�������$6�$(� �!"���������+�!�!�#��� �5%&�%$&&6�����&�$��$��
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�<& �. 8 8, �
� � 8��?, � �
�$%& 3�.��� �?, ���� �
� � ,2�3 � �
,��������.���������������
/�������������.�������
�
�99�8
2�2
�?,8�
8$
�&%&
�<$$
,����2.����
,����2.����
������ 9���!!�#� /���������
,����2.���� A<*&
,��������.���������������
/�������������.�������
Q8
��A�<
2�2
�?,8
������� �.�.
2
�
,����2.����
J�.
& ,����2.����
J3�.���
������ 9���!!�#� /���������
,����2.���� A<*&
34��������/#�����($���56
��������������� � ������������,��,� �� �0�$$�
������� ,��,� ������ �!"�����!���!�#��� $6%�$%$&&5�������$6�$(� �!"���������+�!�!�#��� &$%&�%$&&6�����6�$$�7$�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�&%& �!��-� 8 ���� �
�9� �. 8 98, �
�(%& ,��� 8 ���� �
�95 /������� 8��?, 98, �
��&%& >� �?, ���� �
�9�� �@�98� �<$$ ,2�3 98, �
��������
�
8�98
2�2
�?,8
�&%&
�<$$ J�@�98� �<$$
,����������
� �
��A�9<
2�2
�?,8
J,��� J�!��-�
& J/�������
,�����������
� � P9
�99�98
2�2
�?,8�
8$
J,��� J�!��-� J/�������
J�.
J�@�98� �<$$
J/�������
J/�������
,�� ���������
� �
��A�9<
2�2
�?,8
J,��� J�!��-�
J�. J/�������
,�� ��������
� � Q9
?��98
2�2
�?,8�
8$
J,��� J�!��-� J/�������
&
J/�������
J�@�98� �<$$
J/�������
����!�!���������.��������������
� QS9 �
� Q9
J,��� J/�������
J�.
J>�
J,��� J/�������
&
34��������/#�����(*���56
��������������� � �������������.!���/������� �0�$*�
������� �.!���/����������� �!"�����!���!�#��� &�%��%$&&(�����)�&��((� �!"���������+�!�!�#��� *&%�&%$&&'�����*�7'�&&�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& /����� 8 ,08: �
� � 8��?, � �
�7%& 3�.��� �?, ���� �
��( 3�.�,M, ,2�3 �>,2 �
�5%& /���2�!������� ,2�3 ���� �
��������
� 0
02,
/&(������F��0/A J3�.���
�
������ 9���!!�#� /���������
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
��������
�? /�����/�92��U?2�2 ,��� �2 320�9��3�0��2 ,��2,�3�
�
,0�/3>
2�2
�?,8
��A��
2�2
�?,8
,0� 89
2�2
�?,8�
8$
�&%&
LJ/����� /����@�����
� J3�.�,M,
�++���/��
/����@�����
J3�.�,M,
������ 9���!!�#� /���������
�++���/�� A�(&)
/����@����� A��)5
���������
8�2/�,0��� ����/�92����00��� �2���? 20�>��/,8A��� �2���8,�92���� � 2� 8:?82,2
PQ� �
J3�.�,M,
&
J/���2�!�������
���������
8�2/�,0��� ����/�92����00��� �2���? 20�>��/,8A��� �2���8,�92���� � 2� 8:?82,2
� �
������� �.�.
2
�
0
0
J/���2�!������� 2&7�����72����
J3�.���
/&(������F��0/A
�
/&&�/��
�
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
2&7�����72���� A�'%*
34��������/#�����(7���56
��������������� � ������������2�-����/������� �0�$7�
������� 2�-����/����������� �!"�����!���!�#��� �(%&�%$&&6�����6�**�$)� �!"���������+�!�!�#��� �)%&�%$&&)�������(��7$�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�9& /������ 8 ,08: �
�7%& 3�������� 8 ���� �
�7%� /������. 8 ���� �
�<( �F��0/A 8 8, �
� � 8��?, � �
� � �?, � �
� � ,2�3 � �
9�!�.���������-������!�������������
� 02,
/&&�/��
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
��������
�
,0�/3>
2�2
�?,8
�
,0�/�,
2�2
�?,8
�
,0�/�,
2�2
�?,8
�
,0�/�,
2�2
�?,8
�
,0�/�,
2�2
�?,8
�
,0�/�,
2�2 0
�?,8
�&%&
LJ/������ �++���/��
J/������.
/���!������. �++���/��
J3��������
/���3�������� �++���/��
J/������.
/���!������. �++���/��
&*�/����I
/�������� �++���/��
&*�/����I &*�/����I
�
/���!������I �++���/��
������ 9���!!�#� /���������
�++���/�� A�(&)
/���!������. A�7$
/���!������I A�7&
/�������� A�*)
/���3�������� A�*76
&*�/����I A�6%*
34��������/#�����((���56
��������������� � ������������2�-����/������� �0�$7�
0��!��-�������.���������.!!"��������������������
�
��A�<
2�2
�?,8
Q8
��A�<
2�2
�?,8
�&%&
(&& �<'$
J �F��0/A
(&&
J �F��0/A �<'$
2�-���������/�������������������&���������
� 0
0/A
2�2
,��
3�0,
M�,
2�2
,��
3�0,
�&%& �)6%6
�
�++���/��
&
�++���/��
&
/&&�/��
�
/&��M�,
�
������ 9���!!�#� /���������
�++���/�� A�(&)
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&��M�, A�)%�
34��������/#�����(5���56
��������������� � ������������3��������8�28�� �0�$(�
������� 3��������8�28������ �!"�����!���!�#��� $�%�$%$&&5����$��()�&�� �!"���������+�!�!�#��� &�%�&%$&&6�����$��*�*5�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
�<& /��-��3���!�� 8 8, �
� � 8��?, � �
�$%& ������� �?, ���� �
� � �?, � �
�9* 8�28 ,2�3 9<�09 �
�<6 /�����3?= ,2�3 8, �
�9' 3�������@ ,2�3 9<�09 �
���* /���!���� �8, ,2�3 �>,2 �
���7 �8,�� ,2�3 �>,2 �
���( �8,�� ,2�3 �>,2 �
���5 �8,�/ ,2�3 �>,2 �
���6 �8,�9 ,2�3 �>,2 �
�<�) 8,�9�-������ ,2�3 8, �
�<$& 8,�9�-�.�� ,2�3 8, �
�9$$ 98,�/�!�����0�.�� ,2�3 98, �
�<$5 0�.�� ,2�3 8, �
�<$) 8,��@�� ,2�3 8, �
�<*& 0�?������. ,2�3 8, �
�<*$ 0�9�!���. ,2�3 8, �
�<*7 0�/������. ,2�3 8, �
�<*5 0��������. ,2�3 8, �
�<*) 0�.����� ,2�3 8, �
�7&%& ���� ,2�3 ���� �
� � ,2�3 � �
��������
QS8 �
PS8 Y�3
������=�1
*&&&&
J ����
������=�1
''''
�
������ 9���!!�#� /���������
������=�1 A<*$
��,2/8��92��/�,0�3?=��������
� QS8
?��8
2�2
�?,8�
8$
P8
?��8
2�2
�?,8�
8$
�&%& ������=�1
$&&&&
������=�1
O$&&&&
J/�����3?=
������=�1
$&&&&
������=�1
O�&&&&
J/�����3?=
������ 9���!!�#� /���������
������=�1 A<*$
/��/?�� �3�0������8/2/8��320��2,2���������
�
��A�9<
2�2
�99�98
2�2
�?,8 �?,8�
8$
��A��
2�2
�?,8
�&%&
N�++���/�� J8�28 $
J8�28
J8�28
7 J/���!���� �8,
������ 9���!!�#� /���������
�++���/�� A�(&)
34��������/#�����(6���56
��������������� � ������������3��������8�28�� �0�$(�
��,2/8��92��� �/8 0� �/�1���U?2� �0���2��02 ?�,�9��3�0��320��2,2���������
�
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�&%&
J8�28
O�(
J3�������@ LJ3�������@ J �8,��
J8�28
O�7
J3�������@ LJ3�������@ J �8,��
J8�28
O��
J3�������@ LJ3�������@ J �8,�/
J8�28
O�$
J3�������@ LJ3�������@ J �8,�9
��������
�
�8
2�2
�?,8
89M
�99�8
2�2
�?,8�
8$
98A
2�2
�?,8�
8$
R0�9<
2�2
�?,8
98�8
2�2
�?,8
98A�8
2�2
�?,8�
8$
�?��8
2�2
?��8
2�2
�?,8�
8$
�?,8�
8$
�&%&
J/���!���� �8,
�
J8,�9�-������
O6�
J/��-��3���!��
J8,�9�-�.��
J8,�9�-������
J8,�9�-�.��
J98,�/�!�����0�.��
J98,�/�!�����0�.��
�5
J98,�/�!�����0�.��
J98,�/�!�����0�.�� J0�.��
J0�.��
O�&
J0�9�!���.
J0�9�!���.
O�&
J8,��@�� J0�.��
J8,��@��
J0��������.
34��������/#�����()���56
��������������� � ������������3��������8�28�� �0�$(�
��,2/8��92��� �/8 0� ���1�9�U?2� �0���2��02 ?�,�9��3�0��320��2,2���������
�
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�99�98
2�2
��A��
2�2
�?,8�
8$
�?,8
�&%&
J8�28
O�(
J3�������@ LJ3�������@ J �8,��
J8�28
O�*
J3�������@ LJ3�������@ J �8,��
J8�28
O5
J3�������@ LJ3�������@ J �8,�/
J8�28
O)
J3�������@ LJ3�������@ J �8,�9
���������
�
�8
2�2
�?,8
89M
�?��8
2�2
?��8
2�2
�?,8�
8$
�?,8�
8$
98A
2�2
�?,8�
8$
R0�9<
2�2
�?,8
98�8
2�2
�?,8
98A�8
2�2
�?,8�
8$
�?��8
2�2
?��8
2�2
�?,8�
8$
�?,8�
8$
�&%&
J/���!���� �8,
�
J8,�9�-������
J/��-��3���!��
O*
J8,��@�� O')
J8,��@��
J8,�9�-�.��
J8,�9�-������
J8,�9�-�.��
J98,�/�!�����0�.��
J98,�/�!�����0�.��
�5
J98,�/�!�����0�.��
J98,�/�!�����0�.�� J0�.��
J0�.��
O�&
J0�/������.
J0�/������.
O�&
J8,��@�� J0�.��
J8,��@��
J0�?������.
34��������/#�����('���56
��������������� � ������������3��������8�28�� �0�$(�
:220�/8��92��02 ?�,�9��3�0��320��2,2���������
�
��A�<
2�2
�?��8
2�2
�?,8 �?,8�
8$
�99�8
2�2
�?��8
2�2
�?,8�
8$
�?,8�
8$
�99�8
2�2
�?��8
2�2
�?,8�
8$
�?,8�
8$
�99�8
2�2
�?,8�
8$
PQ8 �
�&%&
J0��������. J0�.����� O�&
J0�.�����
J0�.�����
J0�/������.
J0�.�����
J0�.����� �&
J0�.�����
J0�.�����
J0�9�!���.
J0�.�����
J0�.����� �&
J0�.�����
J0�.�����
J0�?������.
J0�.�����
J0�.�����
J0�.�����
J/�����3?=
J ����
���������
���
�
:�.��#�����!��-����+�����-����!����!�����������
� �
J ���� J�������
=&$�9�+����
�
=&(���������
�
������ 9���!!�#� /���������
=&$�9�+���� A$&%$
=&(��������� A$&%(
34��������/#�����5&���56
��������������� � ����������������..��� �0�$5�
������� ����..������� �!"�����!���!�#��� &*%&$%$&&6�����6�*��(6� �!"���������+�!�!�#��� �)%&�%$&&)�������*5�&5�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
� � 8 � �
� � 8��?, � �
� � �?, � �
� � ,2�3 � �
��������
�
,0�/3>
2�2
�?,8
,0�/�,
2�2
�?,8
�&%&
;��W.�.�; �++���/��
/�������� �++���/��
������ 9���!!�#� /���������
�++���/�� A�(&)
/�������� A�*)
2�-���������/�������������������&��������
� 0
0/A
2�2
,��
3�0,
M�,
2�2
,��
3�0,
�&%& �)6%6
�
�++���/��
&
�++���/��
&
������ 9���!!�#� /���������
�++���/�� A�(&)
2.���������������������.��������������
�
������� �.�.
2
0
0
0
�&%&
3&&�3�I
�
/&&�/��
�
/&7� ���0/A
�
=&&��������
�
=&(���������
�
������ 9���!!�#� /���������
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
=&&�������� A$&%&
=&(��������� A$&%(
3&&�3�I A$$%&
34��������/#�����5����56
��������������� � ����������������1���� �0�$6�
������� ����1�������� �!"�����!���!�#��� &5%&�%$&&6�����*�7&�*$� �!"���������+�!�!�#��� &5%&�%$&&6�����'��6�77�
� ������ ,����-��% ,�����������. /���������
� 2 8 ���� �
��& A�� 8 �>,2 �
��� A�$ 8 �>,2 �
�$%& ?��0 8 ���� �
�$%� 02 ,�0 8 ���� �
�$%$ /�92� 8 ���� �
� � 8��?, � �
��* A���� �?, �>,2 �
� � �?, � �
�<7 8���A� ,2�3 8, �
�<5 8���A$ ,2�3 8, �
�<) 8���A���� ,2�3 8, �
� � ,2�3 � �
,��������.���������������
/�������������.�������
�
��8
2�2
��8
2�2
�?,8 �?,8
�&%&
JA�� J8���A� JA�$ J8���A$
��������
�
�99�8
2�2
�?,8�
8$
J ?��0
J8���A�
J8���A$
J8���A����
���������
�
?��8
2�2
�?,8�
8$
J02 ,�0
J8���A�
J8���A$
J8���A����
���������
�
?��8
2�2
�99�8
2�2
�?,8�
8$
�?,8�
8$
J/�92�
J8���A�
J8���A$
J8���A���� �
J8���A����
J8���A����
��������
�
8��
2�2
�?,8
�&%&
J8���A���� JA����
34��������/#�����5$���56
��������������� � ������������ ��M�,��8,����
������� ��M�,������ �!"�����!���!�#��� &)%&6%$&&7�����&�7*�*'� �!"���������+�!�!�#��� �)%&�%$&&)�������*(�((�
� ������ ,����-��% ,�����������. /���������
� � ,2�3 � �
� � ,2�3 � �
� � ,2�3 � �
��������
� 02,8
=&&��������
������ 9���!!�#� /���������
=&&�������� A$&%&
��������
� 0
0
02,8
3&$��830'5&& 3&$��830'5&&
�
&$�830'5&&
�
&&�8��!����F��
�
������ 9���!!�#� /���������
3&$��830'5&& A$$%$
&&�8��!����F�� A�6%&
&$�830'5&& A�6%$
���������
� 0
�&%& /&��M�,
�
������ 9���!!�#� /���������
/&��M�, A�)%�
0��!��-�������.���������.!!"��������������������
�
0/A
2�2
,��
3�0,
�&%& �)6%6
�
�++���/��
&
������ 9���!!�#� /���������
�++���/�� A�(&)
��������
�
�&%& /&$� ���M�,
�
/&*�0/A
�
������ 9���!!�#� /���������
/&$� ���M�, A�)%$
/&*�0/A A�)%* ��"����!��������.��.��
34��������/#�����5*���56
��������������� � ������������ ��0/A��8,��$�
������� ��0/A������ �!"�����!���!�#��� &6%&6%$&&7�������7��$)� �!"���������+�!�!�#��� $$%&(%$&&6����$&�7$��6�
� ������ ,����-��% ,�����������. /���������
�&%& A���+�!���8�28 ,2�3 ���� �
�&%� �� ,2�3 ���� �
� � ,2�3 � �
��������
�
0
�&%& /&7� ���0/A
�
/&$� ���M�,
�
������ 9���!!�#� /���������
/&$� ���M�, A�)%$
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
��������
� � �
�
?�����!��!� 3&)�8�28 JA���+�!���8�28
3 &&�8�28
������ 9���!!�#� /���������
3&)�8�28 A$*%(
3 &&�8�28 A$(%&
?�����!��!� A&%( ?���������=�1�.��
���������
� 02,8
JA���+�!���8�28
���������
�
3��������8�28
2
�������K/��-��3��K
�&%&
� J ��
��������
�
����..�
2
J ��
34��������/#�����57���56
��������������� � ������������ ��: �!������
������ 9���!!�#� /���������
� ���� A��$&&
0���1 A&%& 1.����0���1����.����������!��-�� � .
338����� A&%� 3����&��+��"��/3?����338�����
338�0���.� A&%$ 0���.�����.����"�������&����338�����
29�,���.��-�!� A&%* 0���.�����.����"�������&���!����������������
��D� ��������-�� A&%7 : �� ������������D������.����"��!�����!�����
?�����!��!� A&%( ?���������=�1�.��
,2 ,����� A&%5 ,2 ,�����
200�0 A&%6 2���������-�����!����C�.�����.��200�0�+����
>2 A�5%&
� A�5%�
,�� A�5%$
,�� A�5%*
&&�8��!����F�� A�6%&
&���!��-� A�6%�
&$�830'5&& A�6%$
&*�/����I A�6%*
/&&�/�� A�)%& �!��-����.�����.����-��������"�.������.����!������.��.��
/&��M�, A�)%�
/&$� ���M�, A�)%$
/&*�0/A A�)%* ��"����!��������.��.��
/&7� ���0/A A�)%7 �!��-����.������ ��M�,�"�.��� ��0/A
/&(������F��0/A A�)%( ,��.���!�������.��.��C���������������C�.���������������F����
2&��0/A������ A�'%&
2&$�0/A����� A�'%� �����.��.�����!���������!���!����!�����������������.������
2&7�����72���� A�'%*
2&(� � �8��2���� A�'%(
=&&�������� A$&%&
=&���@/��-�. A$&%�
=&$�9�+���� A$&%$
=&7�2��3��- A$&%7
=&(��������� A$&%(
:3&&� ������� A$�%& 3������������� �������
:3&��,���.��-�!�� A$�%� 3�������������338C������,���.��-�!��
:3&$�29�,���.��- A$�%$ 2�����!"�����!���������.��������-��-������.�.������������ �������
:3&*��!����3���� A$�%* ��������!�!���������G�!������.�!�����.����!��+����!�������������
:3&7� ���!�,���.��- A$�%7
:3&(�/������3�.���� A$�%(
3&&�3�I A$$%&
3&��8��*. A$$%� �.������.��������*�.�����.�������������������������
3&$��830'5&& A$$%$
3&*�0�.��,/ A$*%&
3&7��2/� A$*%�
3&(�/��.�����38 A$*%$
3&5�38 A$*%*
3&6�3�.�38 A$*%7
3&)�8�28 A$*%(
3&'�/�8 A$*%5
3�&�/:� A$*%6
3��� � A$7%&
3�$�/3� A$7%�
3�*��9,0 A$7%$
3�7�� �G� A$7%*
3�(�0�.���� A$7%7
3�5�:����� A$7%(
3�6�/������� A$7%5
3�)������F������ A$7%6
3 &&�8�28 A$(%&
3��&&�,��� � A$5%&
3��&��/��.����� � A$5%�
3��&$�,�@��� � A$5%$
3��&*� ���= A$5%*
38�&&�/��.����� � A$6%&
38�&�������F��� � A$6%�
38�&$�������� � A$6%$
3�� � ��!��-� A$)%&
3�� � � A$)%�
3�� � $ A$)%$
2&�� ����@ �� A$'%�
2&$� � �����+��� A$'%$
I����3����!��� A�$$
/�������� A�*)
/���!������I A�7&
/���!������. A�7$
/����@����� A��)5
�++��� � ��?, A�5&
/���3�������� A�*76
�++���/�� A�(&)
�1��� ���������� A�66&
��.��A����0/A A9�& ��.��A����!�������+���������!������ �
,� �����/�� A977
,�3����!�,���.��- A97)
,�9�.!���!��,�� A9($
3� � ��?,��!��-� A9(5
��.��200�0 A<$ /�����+��"����.������������-��������!���
� �/����� A<7 /�������+� � �.����.��!����.�����.����.�����
34��������/#�����5(���56
��������������� � ������������ ��: �!������
������ 9���!!�#� /���������
��������-�� A<5 �����+��"��: �� ��������Q�B'������.��=�
�����.��2 , A<) ?.����,2 ,�����C����������������.����������
,����2.���� A<*&
������=�1 A<*$
,�/��.���� � �8 A<*5
34��������/#�����55���56
��������������� � ������������ ������.�?�3
������ 9���!!�#� /���������
� �������� �0�&& �8�0�0>������������ � ��������
���� � �0�&� �8�0�0>������������ � ��������
:�.����� � ��?, �0�&$
0�!��-�� � �0�&* �8�0�0>������������ � ��������
:�.�����8 �0�&7
8��!����F�!��� �0��&
3�����& �0���
:�.�����/��-� �0��$
�����F���0/A �0��*
:�.�����2�����. �0��7
:�������M�, �0��(
8�.������A���� �0��5
���.!��. �0��'
������� �.�. �0�$&
�.����2.���� �0�$�
,��,� �0�$$
�.!���/����� �0�$*
2�-����/����� �0�$7
3��������8�28 �0�$(
����..� �0�$5
����1�� �0�$6
��M�, 8,���
��0/A 8,��$
����������������� ���
34��������/#�����56���56