Simulatie vs emulatie in automatisering: wat is het verschil?
By Mirko Peters ·
Simulatie vs emulatie in automatisering: simulatie modelleert hoe een systeem zich gedraagt, emulatie vervangt een echt onderdeel en draait in realtime. Lees wanneer je welke inzet.
Automatically translated with AI from the original post. Read the English original
In automatisering is een simulatie een model dat het gedrag van een systeem nabootst, vaak sneller dan realtime, om opties te verkennen. Een emulatie vervangt een deel van het echte systeem door een model, of bootst een apparaat na, zodat het echte tegenhangerstuk ermee werkt alsof het op het echte ding is aangesloten, en draait in realtime. Deze gids is bedoeld voor managers operational excellence die offertes en projectplannen lezen waarin de twee woorden door elkaar worden gebruikt, bijvoorbeeld bij virtual commissioning. Je leert de definities, waarvoor elk wordt gebruikt, hoe software en hardware in the loop erin passen, en krijgt een uitgewerkt voorbeeld met doorlooptijden.
Belangrijkste punten
- Een simulatie modelleert hoe een systeem zich gedraagt en kan sneller dan realtime draaien; een emulatie vervangt een deel van het echte systeem door een model, of bootst een apparaat na, en draait in realtime.
- Gebruik simulatie om ontwerpopties, lay-outs, capaciteit en besturingsstrategieën te verkennen; gebruik emulatie om besturingslogica te testen tegen een procesmodel en om mensen te trainen.
- Emulatie kan niet versneld worden, omdat besturingstimers en communicatie afhankelijk zijn van realtime. Het is daardoor een slecht hulpmiddel om veel scenario's te draaien.
- Software in the loop en hardware in the loop zijn emulatieopstellingen: de echte besturingscode of een echte controller werkt samen met een gesimuleerd proces.
- De termen worden vaak losjes gebruikt. Vraag daarom wat in realtime draait, wat echt is en wat gemodelleerd is, voordat je een offerte of specificatie accepteert.
Simulatie vs emulatie: het korte antwoord
De termen overlappen elkaar, en de literatuur erkent dat. Emulatie en simulatie creëren beide een virtuele omgeving waarin je kunt debuggen en testen voordat je aan fysieke hardware komt. Een praktijkrapport over industriële netwerksimulatie van Duque Anton en medeauteurs, beschikbaar op arXiv, stelt dat simulatie gericht is op het nabootsen van de toestanden van een systeem en emulatie op het reproduceren van het gedrag ervan. De auteurs merken op dat de twee woorden vaak door elkaar worden gebruikt, en dat ze in het algemeen "simulatie" schrijven omdat veel tools beide kunnen.
Een praktischere definitie komt van Ian McGregor, in een paper voor de 2002 Winter Simulation Conference. Hij definieert een emulatiemodel als een model waarin een functioneel deel wordt uitgevoerd door een deel van het echte systeem, en andersom geldt dat ook: een deel van het echte systeem wordt vervangen door een model. McGregor werkte voor een bedrijf dat emulatietools verkoopt, dus houd daar rekening mee bij zijn claims. De definitie zelf is makkelijk te toetsen aan elk project.
Simpel gezegd is het werkbare onderscheid in automatisering het volgende:
- Simulatie is een model van het hele systeem dat je op zichzelf draait. Je past de invoer aan en ziet wat er gebeurt, en je kunt het snel laten draaien. Je kunt vraag, stops en bezetting simuleren, en je kunt een prototype van een lay-out in het model bouwen voordat er iets wordt gebouwd.
- Emulatie koppelt iets echts aan een model. Dat echte kan een besturingsprogramma zijn, een controller of een operatorpaneel, en het model speelt de machine of installatie eromheen. Omdat er iets echts bij betrokken is, duurt een run echte tijd.
Hetzelfde verschil zie je in de tools, waar het onderscheid tussen emulator en simulator afhangt van wat ze nabootsen. Een simulator kan de installatie of de programmalogica van de controller in een model simuleren. Een emulator probeert de functionaliteit van de echte controller te emuleren, tot in het gedrag van de CPU en de communicatie, zodat de echte code erop kan draaien en reproduceert wat die op het doelsysteem zou doen. In de praktijk noemen leveranciers een PLC-emulator en -simulator vaak met dezelfde naam, dus controleer wat er achter het label zit. Simulators en emulators voor dezelfde controller kunnen sterk verschillen in hoe goed ze het doelsysteem nabootsen.
Gebruikssituaties: waarvoor elk wordt gebruikt in automatisering
McGregor beschrijft de typische gebruikssituaties. Simulatiemodellen worden gebruikt om verschillende oplossingen te testen en te ontwikkelen, zodat je de beste kunt vinden. Ze verkennen ontwerpopties, indeling, operationele grenzen en regelstrategie. Ze draaien snel, vaak sneller dan realtime, en ze zijn reproduceerbaar zolang de parameters niet veranderen. Dat maakt ze geschikt voor veel experimenten en voor geautomatiseerde optimalisatie.
Emulatiemodellen worden gebruikt om de logica van het besturingssysteem te testen onder verschillende belastingscondities, om het regelgedrag te verifiëren vóór de ingebruikname, en om operators en onderhoudspersoneel te trainen. Ze draaien in realtime, met het besturingssysteem van buitenaf aangesloten.
McGregor noemt ook de beperkingen. Emulatiemodellen zijn slecht geschikt voor experimenten, omdat ze vaak alleen in realtime draaien. Sneller dan realtime draaien veroorzaakt fouten, omdat de timers van het besturingssysteem zich niet kunnen aanpassen. De resultaten zijn bovendien minder reproduceerbaar, omdat de communicatie tussen het model en de controller asynchroon is en afhangt van het netwerk en het besturingssysteem.
Duque Anton en medeauteurs komen vanuit de andere kant tot een vergelijkbaar punt. Simulatie is kosten-, middelen- en tijdefficiënt, maar elk fysiek kenmerk moet worden gemodelleerd, wat soms veel inspanning kost. Emulatie is per ontwerp even nauwkeurig als het productiesysteem waar de omgeving echt is, maar er zijn meer apparaten en meer ruimte voor nodig, en het kost meer. Hun conclusie is dat er geen algemene oplossing bestaat die aan alle eisen voldoet.
Software in the loop, hardware in the loop en de digitale tweeling
In automatiseringsprojecten komen de twee ideeën samen in de "in the loop"-tests. De leverancierspagina van realvirtual beschrijft ze:
- Software in the loop: het besturingsprogramma draait als software op een pc, bijvoorbeeld in een PLC-emulator, en werkt samen met het machinemodel. Er is geen hardware nodig.
- Hardware in the loop: een echte PLC koppelt via een netwerk aan het machinemodel. De echte hardware bestuurt een virtuele machine.
Beide zijn emulaties in de zin van McGregor, omdat een echt onderdeel, de besturingscode of de controller, samenwerkt met een model van de rest. Ze vormen de kern van virtuele ingebruikname. De pagina is een leverancierbron en de beschrijvingen zijn consistent met de academische definities hierboven.
Een productiestroommodel is een ander geval. Factory simulation is een gecontroleerd model van hoe werk door een deel van een fabriek stroomt, op basis van de huidige bedrijfsregels, middelen, orders en normale variatie. Zo kun je een wijziging, zoals een extra ploeg, een nieuwe machine of een kleinere buffer, testen voordat je ze doorvoert. Er zit geen controller in de lus. Het is een simulatie in de pure zin van het woord, en die draait veel sneller dan realtime.
Een digitale tweeling, een onderhouden digitale weergave van een fysieke resource die op basis van observaties actueel wordt gehouden, kan in beide gevallen als model dienen. Wat telt is niet het model zelf maar hoe je het gebruikt: als op zichzelf staand experiment, dat is een simulatie, of gekoppeld aan iets echts in realtime, dat is een emulatie.
Emulator of simulator: welke gebruik je
Gebruik dit als snelle leidraad. Het is onze eigen samenvatting, geen standaard.
- Hoeveel capaciteit hebben we nodig, en waar zit de bottleneck? Simulatie. Je wilt veel scenario's, snel.
- Kan het besturingsprogramma een storing, een ontbrekend onderdeel of een defecte sensor aan? Emulatie, eerst in software.
- Voldoet de echte controller aan zijn timing- en interfacevereisten? Hardware in the loop, of een test op de echte installatie. Duque Anton en medeauteurs stellen dat echte hardware de meest realistische resultaten geeft, maar het moeilijkst op te zetten is.
- Kunnen we operators trainen voordat de installatie opstart? Emulatie. Een model dat is aangesloten op het echte bedieningspaneel gedraagt zich zoals de machine zou doen.
- Welke van twee indelingen is beter? Simulatie.
Een project heeft vaak beide nodig. Eerst dimensioneert een simulatie de lijn. Later test een emulatie het besturingsprogramma voor die lijn.
Voorbeeld: één verpakkingslijn, twee vragen
Dit is een illustratief voorbeeld, geen gemeten casus. Een verpakkingslijn maakt 3.000 dozen per uur. De fabriek stelt twee vragen.
Vraag 1: verhoogt een tweede etiketteermachine de output naar 3.600 dozen per uur? Dit is een simulatievraag. Een productiemodel draait één dienst van 8 uur in ongeveer 2 minuten, dat is 240 keer sneller dan realtime. Het team test 30 scenario's, zoals verschillende batchgroottes, bufferformaten en stilstandpatronen. De 30 runs duren samen ongeveer 60 minuten. Dezelfde 30 scenario's in realtime zouden 30 × 8 uur = 240 uur kosten, oftewel 30 werkdagen. Realtimetests zijn voor deze vraag geen optie.
Vraag 2: kan het besturingsprogramma een dozenstoring bij de etiketteermachine aan? Dit is een emulatievraag. Het besturingsprogramma draait in een PLC-emulator en het model speelt de lijn. Elk storingsgeval duurt in realtime ongeveer 5 minuten en kan niet worden versneld, omdat de timers van het programma afhankelijk zijn van de echte tijd. Twaalf storingsgevallen duren ongeveer 60 minuten. Dat is goedkoop vergeleken met het ontdekken van een fout in de storingsafhandeling tijdens de opstart op de echte lijn.
Beide tests duren ongeveer een uur en beantwoorden verschillende vragen. Een snelle simulatie kan niet laten zien of de besturingstimers werken, en een emulatie in realtime kan niet 30 scenario's op één dag testen.
Veelgemaakte fouten
- Woorden als synoniemen gebruiken in een specificatie. Een leverancier die "simulatie" aanbiedt, levert misschien een puur model, terwijl jij besturingstests nodig had.
- Besturingstiming beoordelen op basis van een simulatie. Een model dat sneller dan realtime draait, zegt niets over timers en communicatie.
- Een emulatie versnellen. De resultaten zijn onjuist wanneer de besturingstimers het tempo niet kunnen bijhouden.
- Te gedetailleerde modellen. Een model met elke kabel en bout kost moeite die de vraag niet nodig heeft.
- De emulator vertrouwen als echte controller. De emulatie van de controller is niet de PLC. Plan een controle op de echte hardware voor timing en interfaces.
- Geen acceptatietest op de echte lijn. Een geslaagde virtuele test verlaagt het risico. Hij haalt het risico niet weg.
Hoe software kan helpen
Er bestaan tools voor beide doelen. Productiestroommodellen draaien in simulatiesoftware, en besturingstests gebruiken PLC-emulatie en machinemodellen. Vraag een leverancier wat in realtime draait, wat echt is en wat gemodelleerd is. Voor softwaretests van besturingscode vraag je hoe tests worden geautomatiseerd en vastgelegd, zodat een testrun na elke wijziging in het programma opnieuw kan worden uitgevoerd. Vraag naar de koppeling met jouw PLC-platform en naar de inspanning om het model te bouwen. Software beslist niet voor jou welke vraag je stelt, en een heldere vraag is de beste manier om tussen de twee te kiezen.
Volgende stap
Schrijf voor je volgende automatiseringsproject elke gewenste test op als vraag en markeer elke test als "veel scenario's, snel" of "echte besturing, realtime". Gebruik die lijst daarna om te beslissen tussen simulatie en emulatie voordat je offertes opvraagt.