Una pila FIFO es un área de memoria donde el primer elemento en entrar es el primer elemento en salir. Los datos se almacenan en el mismo orden en el que han sido escritos en la pila, y se leen en el orden de almacenamiento, comenzando por el primer dato almacenado. Se utiliza para almacenar los objetos en orden secuencial.
Utilizando la instrucción FP_FIFO_DEFINE se define el área de almacenamiento como una pila FIFO. (Solo es necesario hacer esto una vez, antes de la lectura o de la escritura.)
Los datos se deben escribir utilizando la instrucción FP_FIFO_WRITE, y se leen utilizando la instrucción FP_FIFO_READ.
Cuando se escriben los datos, los elementos se almacenan en orden secuencial, comenzando por la primera área de almacenamiento. Los punteros de escritura apuntan a la siguiente área en la que se van a almacenar datos. El número de palabras almacenadas se incrementa en 1.
Si se llena el área de almacenamiento, es decir, el número de palabras almacenadas es igual a n-1, ya no se permite la escritura de más datos.
Cuando se leen datos, estos son transferidos comenzando por el primer elemento almacenado. Los punteros de lectura muestran la siguiente área desde la que se van a leer datos. El número de palabras almacenadas se disminuye en en 1.
Se producirá un error si se intenta hacer una lectura de datos cuando la zona de almacenamiento está vacía, si el número de palabras almacenadas es igual al tamaño de la pila FIFO o igual a 0.
Si los datos se escriben cuando la pila FIFO se encuentra en el estado que se muestra abajo, los datos se almacenan en el área 3. El puntero de escritura se mueve a 4, es decir, el siguiente elemento se escribe en el área 4. En la lectura de datos, estos se leen desde el área indicada por 0. El puntero de lectura se mueve a 1, es decir, el siguiente dato se leerá desde 1.