29
2012
Siemens S7 – FIFO tabel (deel 1)
In de Siemens PLC heb je de mogelijkheid om gegevens op te slaan in een datablock. Met de zogeheten FIFO tabel (wat staat voor First In First Out) kan je, zoals de naam al doet vermoeden, gegevens opslaan en deze gegevens op volgorde weer uitlezen. De gegevens die hier als eerste ingevoerd worden worden ook als eerste weer uitgevoerd. Een tegen hanger van de FIFO is de LIFO (Last In First Out) en deze werkt omgekeerd als de FIFO. De gegevens die als laatste zijn ingevoerd worden als eersten terug gegeven. Nu even een voorbeeld waar een FIFO tabel gebruikt kan worden is een verkeersplein met een aantal verkeerslichten en sensoren voor het detecteren van verkeer. Je kunt hiermee dan het verkeer in volgorde van aankomst een groen verkeerslicht geven voor een optimale verkeersstroom.Bij het gebruiken van de FIFO tabel gebruik je een twee tal Simatic S7 standaard functies, dit is de FIFO (FC85) zelf en de ATT (FC84). Deze laatste, ATT, voegt gegevens toe aan een datablock. En ook hebben we nog een datablock nodig om de gegevens in op te slaan, maar dit gaan we natuurlijk stap voor stap behandelen.
Datablock
Voordat we beginnen met het programmeren van de FIFO functies hebben we iets nodig waar we gegevens in kunnen opslaan zodat we deze later weer in volgorde kunnen opvragen. Hiervoor heb je een datablock nodig, een datablock is eigenlijk een verzameling van informatie in ieder formaat (Integer, Bit, Word, etc.) Een datablock aanmaken gaat het zelfde als een OB of FC aanmaken alleen kies je nu voor Data block. (In je PLC blocks, rechtermuisknop, Insert new object, Data block) Nu kun je een aantal gegevens instellen, als eerste het data block nummer. Hiervoor kan je een getal kiezen (mits nog niet gebruikt) en vervolgens kies je voor Shared DB (Dit geeft aan dat iedere OB of FC gebruik kan maken van de gegevens in het Data Block) Nu kan je het datablock nog een naam geven en van comentaar voorzien om aan te geven wat het nut van het Data block is.
Nu heb je het Data Block aangemaakt nu gaan we Adressen toevoegen waar we later onze gegevens aan toe kunnen voegen.Voordat we alleen deze adressen kunnen toevoegen moet je weten hoe de FIFO tabel werkt.De FIFO tabel zelf heeft twee adressen nodig om gegevens in op te slaan. De eerste wordt gebruikt om bij te houden hoeveel adressen die er zijn om gegevens in op te slaan vast te stellen en de tweede houdt het aantal gevulde adressen bij. Deze twee vastgestelde adressen zitten op DBW10 en DBW12. Dat betekent dat je eerst 5 lege adressen moet aanmaken om de eersten adressen te vullen. Hoe je dit doet zie je in onderstaande video.
Nu moeten we gaan bepalen hoe groot onze tabel moet worden, dus hoeveel gegevens wil je opslaan. Als voorbeeld neem ik hier weer het verkeersplein met 4 stoplichten. Dat betekent dat er maximaal 4 rijen staan te wachten op groen licht dus hebben we 4 adressen nodig. Hierna maken we de twee verplichten adressen aan op 10.0 en 12.0, de eerste krijgt de naam Lengte (Je mag hem ook aan andere naam geven, maar dit vind ik persoonlijk een logische keuze omdat je hierin opslaat hoeveel adressen met gegeven je hebt) we geven dit adres het Type WORD omdat ik alle informatie als WORD wil opslaan en als en de initial value is het aantal adressen die de tabel krijgt. In dit geval dus W#16#4 (4 adressen) Nu maken we het volgende adres aan en deze noemen we lengte, en tevens WORD formaat. De initial value hier is W#16#0 omdat er nog geen gegevens in de tabel staan. En nu maken we de 4 adressen aan waar we de gegevens van de FIFO tabel in kunnen opslaan.
We hebben nu de tabel aangemaakt waar we de gegevens voor de FIFO tabel in kunnen opslaan. In Deel 2 kan kan je verder lezen hoe de FIFO en ATT functies van de Siemens S7 werken.

Geschreven door
Waar kan ik deel 2 van de fifo vinden?
Er is ergens iets mis gegaan waardoor het artikel inderdaad nog niet te vinden was. Maar je kan deel 2 hier lezen: http://www.mechatronicus.nl/besturingstechniek/fifo-tabel-2/