Plant Simulation: egy darab útjának a követése

Szimulációs modell készítése során többször is szükség lehet arra, hogy egy darab (MU) útját kövessük.

Ilyen esetek lehetnek:

  • átfutási idő vizsgálata
  • vezérlési logika tesztelése
  • modell jobb megértése

A darab útvonal követés egyik megoldása lehet, hogy az érintett gépek kilépési vagy belépési kontrollját módosítva készítünk valamilyen naplófájlt a darab útvonaláról. Ez nem túl elegáns megoldás és nem is túl rugalmas, ha új gépek kerülnek a rendszerbe. A cikkben nézzük meg egy másik megoldást.

Az alap ötlet, hogy a Part objektumhoz készítünk egy figyelőt, observert, ami vizsgálja, hogy hol található éppen az adott darab, és ha változik a darab helye, magyarul átkerül másik gépre, akkor ezt naplózza az adott darabhoz tartozó táblázatba.

A lépések a következők:

  • Part objektumra új attribútumok beállítása
  • Observer létrehozása és vezérlő logikájának elkészítése

Part objektumra új attribútumok beállítása

Az MU-s mappa Part objektumából készítsünk egy másolatot a helyi menü Duplicate parancsával és a másolatot nevezzük el TracePartnak.

A TracePart objektumot megnyitva hozzuk létre az alábbi felhasználói attribútumokat a megfelelő adattípussal.

Observer létrehozása és vezérlő logikájának elkészítése

A TracePart objektum ablakában a Tools menü Edit Observers… menüpontot választva létre tudunk hozni egy új figyelőt az alábbi paraméterekkel:

Az Executed method mezőben egy új metódust az F4 gombbal vagy a helyi menü Create Control parancsával lehet létrehozni.

A metódus kódja pedig ez lehet:

A kód megnézni, hogy az adott Partra (MU-ra) aktív-e a követés (TraceActive), ha igen, akkor az aktuális szimulációs időt és a darab helyét (Location) beleírja az MU-hoz tartozó TraceTable-be.

Azért, hogy minden futtatásnál üres legyen a követés tábla, az MU reset metódusába még ezt a kódot érdemes beleírni. Megjegyzés, hogy ez komoly túlbiztosítás, hiszen az MU-k, amikor létrejönnek a Source objektumban, akkor úgyis üres táblával indulnak.

Fontos még, hogy a Source objektumban ne feledjük el beállítani, hogy ezt a TracePart objektumot hozza létre az alapértelmezett Part helyett.

A komponenst használva egy modellben, ilyesmi TraceTable jöhet létre.

2 hozzászólás

  1. Marc szerint:

    Nagyon tetszik a megoldás. Tuningolásként javasolnám, hogy nem csak newValue használnám, de oldValue is, így rögtön lehet tudni hogy honnan, hova kerül a darab.

    • digitalisgyartas szerint:

      Köszi az ötletet 🙂 Bár az oldValue értéke az előző sorban megtalálható. Olyan meg ugye nincs, hogy egy gyárban egy darab két állomás között eltűnik? 😀

Leave a Reply