7. Temporización

Anuncio
7. Temporización
Un aspecto importante en el sistema será mantener una buena sincronización
entre todos los sistemas que actúa simultáneamente para la transmisión de datos entre el
modelo de Simulink y el Cliente OPC.
7.1. Bucle principal del programa. Timer.
En primer lugar, el funcionamiento del servidor esta apoyado sobre un Timer.
Para cada paso por el timer se comprueba que se cumple la condición de que se haya
puesto en funcionamiento el servidor (variables bandera que indica si esto es así). Si es
así se ejecuta la función principal (Rutina_ppal) que se encarga del intercambio de
datos. Lo único que hay que hacer es inicializar el timer usando SetTimer, y pasando
como parámetro cada cuanto tiempo queremos que salte el Timer. A partir de hay cada
vez que pase ese tiempo se mandará al programa un mensaje WM_TIMER. Trataremos
ese mensaje de manera que se ejecute la función principal. Antes de finalizar el
programa se destruye el timer: KillTimer.
Con esto aseguramos que de manera periódica se intercambien datos entre
servidor OPC y entorno de trabajo de Matlab.
7.2. Simulación en tiempo cuasi real
Utilizamos una S-function, desarrollada sobre lenguaje Matlab (M-file), para
intentar simular el tiempo real: tpo.m. La colocación de un bloque S-function con
nombre “tpo” y parámetros Tm, tendrá como consecuencia que cada Tm segundos se
realiza una actualización de todos los bloques presentes en el modelo, de manera que la
simulación se ejecute en tiempo cuasi-real, siendo más realistas en tanto en cuanto mas
podamos minimizar el valor de Tm.
Los bloques de entrada y salida de Simulink (que explicaremos a continuación),
tomaran o dejaran valores del entorno de Matlab cada Tm segundo. El valor de Tm ha
sido inicializado anteriormente (ConfigParam).
El funcionamiento del bloque tpo es el siguiente. La S-function configura el
bloque a 0 entradas y 0 salidas, 1 tiempo de muestreo y 1 solo estado. En cada bucle en
la función mdlOutputs simplemente utilizamos la orden pause( Tm) que para la
ejecución de toda la simulación (todos los bloques deben ejecutarse a la vez). El hecho
de haber configurado (ConfigParam) el paso fijo de la simulación a Tm consigue que la
simulación se produzca casi en tiempo real.
Comunicación entre Simulink y Sistemas de control
Simulink OPC Server
28
Figura 16. S-function tpo.m
Por ultimo como elemento de interés, seria conveniente asegurarse de que el
sistema se ejecuta hasta el infinito.
Comunicación entre Simulink y Sistemas de control
Simulink OPC Server
29
Descargar