| Automatisch software genereren |
|
Parkeerproblemen. Wie kent ze niet? Je hebt een werkplek, een woning of bezoekadres in een stedelijk gebied en je zoekt steeds eindeloos naar een parkeerplek. Om gestresst van te raken toch…? Maar hoe ontkom je eraan? Parkeerruimte is tenslotte een schaars goed. EWW Technische Bedrijven - Amsterdam biedt uitkomst in de vorm van haar Ecosafe Automatische Parkeer Systemen. Dit - in feite - horizontale magazijnsysteem met stalen schuifpallets maakt optimaal gebruik van praktisch iedere beschikbare ruimte. Automatisering vereenvoudigt en stroomlijnt de logistieke beslissingen en besturingen binnen dit mechanische systeem. Bedenker en maker van die automatisering, in opdracht van EWW Technische Bedrijven BV, is Raster Industriële Automatisering B.V. in Dreumel.
Automatisch Parkeer Systeem De parkeerbewegingen binnen een Ecosafe systeem hebben veel weg van de alom bekende schuifpuzzels met - om operationele redenen - op iedere parkeerlaag continu één - en soms twee - vrije parkeerplaatsen. Een hydraulische schaarlift, voorzien van stroomstoringbeveiliging, verzorgt het transport naar hoger of lager gelegen parkeerlagen. Garage in- en uitgangen zijn er in vele uitvoeringsvormen die in alle gevallen zijn voorzien van een toegangssysteem, een systeem voor controle van de afmetingen van de auto, informatiesystemen voor de parkeerder (denk aan de systemen in autowasstraten) en noodstopvoorzieningen. Parkeerders met abonnementen die ineens met een andere auto komen, kunnen afgewezen worden wanneer ‘hun andere auto’ de bij die kaart (abonnement) toegestane afmetingen overschrijdt. Toegelaten auto’s krijgen steeds ieder een eigen parkeerplatform dat ze gedurende hun verblijf in de garage ook niet meer verlaten. Draaitafels kunnen, desgewenst, platforms zo draaien dat auto’s altijd voorwaarts de garage kunnen verlaten.
Automatisering Een PLC zorgt voor de Ecosafe systeembesturing met onder andere input, afkomstig van de bij de parkeerautomaat aangeboden gecodeerdeparkeertickets of -pasjes. De PLC zorgt ervoor dat het parkeerplatform waar de vertrekkende parkeerder om vraagt (met zijn of haar auto erop) via de kortste weg naar de vaak gecombineerde in-/uitgang gebracht wordt. Zelfs wanneer meerdere parkeerders min of meer tegelijkertijd willen vertrekken, kiest het systeem altijd voor maximum efficiëntie. Hierdoor kunnen ‘laatkomers’ voorrang krijgen op basis van het simpele feit dat hun auto sneller bij de in-/uitgang kan zijn. Optioneel kunnen parkeerders ook telefonisch kenbaar maken dat ze hun auto weer retour willen hebben. Na zo’n telefonische melding, en het intoetsen van een persoonlijke pincode, krijgt de auto met parkeerplatform dan een tijdelijke parkeerplek dicht bij de uitgang met minimale wachttijd voor de betreffende parkeerder als gevolg. Via een display bij de in-/uitgang, en desgewenst ook op andere plaatsen, kunnen parkeerders de bewegingen van hun auto (aangeduid met een uniek nummer) volgen. Dit is niet alleen leuk om te zien, maar het geeft de parkeerders direct ook een indicatie van de resterende wachttijd.
Automatisch software genereren Verstandig of niet. Rob Kits, mede-eigenaar van Raster en technisch manager, heeft een systeem ontwikkeld voor het automatisch genereren van software voor machinebesturing, en zo ook voor de Ecosafe-systemen. EWW’s Ecosafe-ontwerpers kunnen hierdoor, zonder bemoeienis van Raster, zelfstandig garagespecifieke besturingssoftware genereren. Raster’s systeem genereert daarbij direct ook automatisch de bijbehorende visualisatie, remote maintenance en materiaallijsten. Kortom: met het besturingsontwerp rolt dus direct ook een materiaalbestellijst uit de printer. Snijdt Raster zichzelf hiermee niet in de vingers? Rob Kits: “Misschien wel. Op zich zouden wij, of anderen, eerdergenoemde besturingen natuurlijk steeds opnieuw kunnen maken, hetgeen misschien ook best nog een redelijk belegde boterham zou kunnen opleveren. De keerzijde hiervan is echter dat wij, of anderen, steeds opnieuw bijna dezelfde werkzaamheden zouden moeten uitvoeren. Persoonlijk stort ik mij liever op nieuwe breinkrakers, zoals de automatisering die wij in 2001 voor de berging van de Koersk gedaan hebben voor Mammoet.” Kits beaamt dat het idee, en de uitwerking, van hun Software Generator erg simpel en logisch aandoet. Toch zijn er nogal wat voetangels volgens hem. Kits: “Sowieso moet de applicatie er zich voor lenen. De objecten moeten vaak genoeg hergebruikt worden. Bovendien is het niet direct in het belang van de doorsnee softwareman om zich overbodig te maken en dat maakt de acceptatie van de Software Generator weer lastig.”Jan Dekker, de andere eigenaar van Raster en account manager: “Onze Software Generator werkt object-georiënteerd, en is geprogrammeerd in Delphi en C++. Er wordt code gegenereerd voor de PC en de PLC. Ook bevat het pakket een eigen interpreter (redactie: een parser) voor gebruikerscode voor unieke delen van de installatie die niet als objecten te vangen zijn. Dit geeft het systeem soft-PLC kenmerken. De functionaliteit van alle garagebesturingselementen is ondergebracht in softwareobjecten die de Generator vervolgens - op aanwijzing van de EWW Ecosafe ontwerper - bij elkaar sleept, direct automatisch alle communicatieverbindingen legt en uiteindelijk van de objectenverzameling een compleet werkend besturingsprogramma maakt. De ‘mastermind’ (redactie: het routing algoritme) hiervoor bevindt zich in de PC. Het uitvoeren van de logische taken gebeurt door de PLC, terwijl de PC voor de aansturing zorgt.” Volgens Dekker blijft het systeem flexibel inzetbaar voor speciale handelingen doordat de Software Generator is voorzien van een gebruikersvriendelijke interpreter. Hij merkt wel op dat bij het gebruik van de interpreter er toch sprake is van een stuk ‘man made’ software, zodat dit deel natuurlijk wel getest dient te worden. Ook blijft het altijd mogelijk het gegenereerde PLC-programma aan te vullen met ‘speciaaltjes’.In dat laatste geval dient ook de bijbehorende visualisatie op de PC zelf te worden aangemaakt. Dekker: “Gebruikers moeten nooit iets in objecten hoeven te wijzigen, dat moet de programmeur doen. Voor gebruikers zijn de objecten ‘slechts’ bouwstenen.” Hij noemt hun Software Generator het gouden ei voor gebruikers. “Iedere keer wanneer de gebruiker ‘op de knop drukt’ en de besturingssoftware gereed is, verdient hij of zij namelijk een enorm bedrag, zijnde de besparing op het arbeidsintensieve schrijven van software, voor een compleet unieke applicatie.”
Kits: “Ons objectniveau is gelegd op één parkeerplaats: een metalen pallet die zich bevindt op een deel van de rollenbaan. Op het niveau van de besturende logica echter bevat ieder pallet alle intelligentie die nodig is om zelfstandig de kortst mogelijke weg te kunnen vinden naar de uitgang van de garage. Deze software is vergelijkbaar met die van een zelfstandig opererende robottruck. In tegenstelling tot zo’n robottruck, kan de pallet niet zelfstandig bewegen maar is deze afhankelijk van de onderliggende rollenbaan. Binnen de software is er dan ook een nauwe samenwerking tussen de pallets en de rollenbaan. Alle actieve pallets (de pallets waarop auto’s staan die de garage uit moeten) geven aan de rollenbaan door welke richting ze op willen. De rollenbaan combineert alle aanvragen en zorgt er voor dat de aandrijvingen zo worden aangestuurd dat de pallets in de gewenste richtingen bewegen. Alle pallets verplaatsen zich dan een positie waarna het spel zich herhaalt. Steeds opnieuw, voor elke teverschuiven plek, bepalen de pallets dus de route. Reden: er kan tussentijds een andere aanvrager komen (redactie: een parkeerder die zijn of haar auto wil hebben) wiens auto veel dichter bij de uitgang staat. Een andere reden kan zijn een tussentijdse storing in het systeem waardoor een stukje van de geplande route uitvalt. Het systeem speelt hiermee dus in op veranderingen/verstoringen. Iedere gebruiker heeft een uniek nummer en dus is altijd te zien waar de auto zich bevindt en of andere voorgaan.”De software die deze logistiek regelt, draait op de PC. De reden hiervoor is dat het bepalen van de meest efficiënte route door het parkeersysteem een iteratief (zichzelf aanroepend) proces is. PLC’s lenen zich aanmerkelijk minder voor dergelijke routines, de PC echter voert de benodigde berekening in een fractie van een seconde uit. Zodra de combinatie van gewenste bewegingen bepaald is, geeft de PC de verplaatsingsinstructies door aan de PLC die verder de acties zelfstandig afhandelt.
Object Oriëntatie Object Oriëntatie (OO) verandert de structuur van systemen voor industriële automatisering. Het kenmerk van objecttechnologie is dat data, en functies die deze data bewerken, samengevoegd worden in een eenheid die object genoemd wordt. Elk object is een zelfstandige entiteit binnen het totale systeem. De structuur van het systeem bestaat uit objecten die met elkaar verbonden zijn en met elkaar communiceren.Een object verbergt zijn binnenkant (‘hoe worden operaties uitgevoerd, wat wordt er precies opgeslagen en hoe enz.’) voor alle andere objecten in het systeem. Dit heet inkapseling (encapsulation) en heeft belangrijke voordelen. Bij niet-OO software leiden zelfs kleine wijzigingen namelijk vaak tot een domino-effect met ongewenste en onverwachte neveneffecten.Belangrijk bij het structureren van software is een goede verdeling van alle activiteiten of taken binnen het systeem. Om die reden ligt binnen objecttechnologie de nadruk ook altijd op de verantwoordelijkheid van het object. Ieder object heeft een duidelijk afgebakende - meestal beperkte - verantwoordelijkheid voor het uitvoeren van bepaalde activiteiten in het systeem. Deze verdeel-en-heers tactiek maakt het mogelijk om fouten (bugs) makkelijker te lokaliseren. Maar niet alleen fouten: ook veranderingen zijn makkelijker te plaatsen en de consequenties ervan zijngemakkelijker te doorgronden. In het algemeen is ook het hele ontwerp eenvoudiger te begrijpen. Elk object dient zijn taak (verantwoordelijkheid) goed uit te voeren en elk object dient samen te werken met andere objecten. Soms objecten van dezelfde soort, soms objecten van een andere soort. Objectgeoriënteerd programmeren leidt, potentieel, dan ook niet alleen tot software die ook na herhaaldelijk aanpassen op een hoog peil blijft, maar ook tot minder werk. De heldere structuur maakt aanpassen eenvoudiger en minder tijdrovend en maakt de gebruiker en haar organisatie dus extra flexibel. OO vs. traditionele softwareontwikkeling Het ontwikkeltraject van de traditioneel functioneel-georiënteerde systeemontwikkeling leidt tot functionele decompositie tot een niveau waarop de functies eenvoudigweg geprogrammeerd kunnen worden. Aanpassingen en uitbreidingen zijn binnen zo’n systeem vaak lastig en kostenveel tijd, want alle subfuncties worden in eerste instantie gemaakt om de oorspronkelijke functies te ondersteunen.Een kleine wijziging in een oorspronkelijke hoofdfunctie betekent dus ook meestal aanpassingen in vele subfuncties, tot op het laagste niveau. Het toevoegen van een geheel nieuwe functie betekent het geheel opnieuw maken van die functie en bijbehorende subfuncties. Er is dan ook weinig reden om aan te nemen dat een van de bestaande subfuncties binnen de context van de nieuwe functie ook zal werken. Objectgeoriënteerde systeemontwikkeling gaat echter uit van domeinmodellering. De werkelijkheid waarin het systeem een rol speelt (het domein) wordt hierbij in kaart gebracht. Dit levert een domeinmodel op met daarin de domeinconcepten met hun kenmerken, gedrag enonderlinge relaties. Hoewel dit model via 1 op 1 transformaties geïmplementeerd kan worden, is dit model nog volledig onafhankelijkvan de gevraagde functies. Het toevoegen van de systeemfuncties komt nu voornamelijk neer op het in bepaalde volgorde en onder bepaalde omstandigheden gebruiken van de al gedefinieerde operaties van de objecten, gedefinieerd in het model. Het toevoegen van nieuwefuncties vergt op deze manier weinig wijzigingen en meestal weinig werk. De functionaliteit zit al in de objecten en hoeft slechts in de juiste combinatie ingezet te worden. Dit levert bijzonder flexibele systemen op met voldoende aandacht voor de dynamiek van softwaresystemen. Oftewel… Raster’s Automatische Software Generator levert met name voordelen op wanneer de besturingssoftware niet in een hogere programmeertaal, zoals bijvoorbeeld Modicon’s Concept, geschreven is. Kits: “Concept bijvoorbeeld maakt het namelijk mogelijk om relatief eenvoudig representaties (redactie: structuren voor communicatielinks) met bijvoorbeeld 20 variabelen één naam te geven, iets dat in een conventionele PLC niet kan en waardoor in een PLC representaties variabele voor variabele geprogrammeerd moeten worden, en dat hou je niet foutvrij in de hand. Wordt Concept, of een andere hogere programmeertaal, gebruikt dan is het ook niet absoluut noodzakelijk om Automatisch Software te Genereren (redactie: het automatisch aanbrengen van de communicatielinks tussen de geselecteerde objecten; een exercitie die normaal decompiler doet). De structuur maakt het namelijk doenlijk om de links met de hand te leggen.”Hiermee kan Raster’s Software Generator goede diensten bewijzen voor ontwerpers van bepaalde machinesturingen en als tool voor OEM-ers. |
