Principios básicos de la ejecución del programa
10.2 Instrucciones que funcionan asíncronamente
Procesamiento paralelo de peticiones de una instrucción asíncrona
Una CPU puede procesar paralelamente varias peticiones de una instrucción asíncrona. La
CPU procesa las peticiones paralelamente cuando se cumplen las condiciones siguientes:
• Se llaman varias peticiones de una instrucción asíncrona al mismo tiempo.
• No se ha superado el número máximo de peticiones simultáneas para la instrucción.
La figura siguiente muestra el procesamiento paralelo de dos peticiones de la instrucción
WRREC. Ambas instrucciones se ejecutan paralelamente durante cierto tiempo.
Figura 10-2 Ejecución paralela de la instrucción WRREC que funciona asíncronamente
NOTA
Dependencias entre instrucciones asíncronas
El orden de llamada en el programa de usuario puede diferir del orden de ejecución de las
instrucciones asíncronas. Esto puede provocar problemas en caso de dependencias entre
instrucciones asíncronas.
Solución: Para garantizar la ejecución temporal correcta, utilice las salidas de estado de las
instrucciones asíncronas en una cadena secuencial. Una instrucción asíncrona no debe
iniciarse hasta que la instrucción asíncrona anterior haya terminado y su finalización se acuse
mediante el parámetro DONE.
Ejemplo: Para las funciones de receta RecipeImport y RecipeExport se necesita un archivo
CSV para los datos de receta. Si para la importación y la exportación se utiliza el mismo
archivo CSV, las dos instrucciones asíncronas dependen la una de la otra. Vincule en una
cadena secuencial el estado del parámetro DONE de la instrucción RecipeImport a la
transición hacia la etapa siguiente, en la que se ejecutará RecipeExport. De este modo, el
vínculo garantiza la ejecución correcta.
Asignación de la llamada a la petición de la instrucción
Para ejecutar una instrucción a lo largo de varias llamadas, la CPU debe poder asignar
claramente una llamada subsiguiente a una petición en curso de la instrucción.
Para asignar la llamada a la petición, la CPU utiliza uno de los dos mecanismos siguientes, en
función del tipo de instrucción:
• Mediante el bloque de datos de instancia de la instrucción (con tipo "SFB").
• Por medio de los parámetros de entrada de la instrucción que identifican la petición. Estos
parámetros de entrada deben coincidir en cada llamada mientras se procesa la instrucción
asíncrona.
Ejemplo: una petición de la instrucción "Create_DB" se identifica mediante los parámetros
de entrada LOW_LIMIT, UP_LIMIT, COUNT, ATTRIB y SRCBLK.
204
Sistema de periferia descentralizada
Manual de sistema, 11/2023, A5E03576852-AN