Hem SIGBI Automation ABKontaktSitemap

OOP - Objekt

Objektet är en instans av en klass

OOP objekt
Man kan skapa hur många objekt av en klass som helst. Det är objekten som används i applikationenvars metoder man anropar.
Objektet är en instans av en klass. En klass kan ha flera objekt men ett objekt kan bara vara en instans till en klass. Det finns ingen begränsning i antalet objekt av en klass. Allt som är implementerat i en klass går att använda i objektet.
  • Skapa så många objekt man vill
  • Ett objekt är en instans av en klass
  • Objektet utnyttjar allt som är implementerat i klassen

Objektet knyts till en unik komponent - luftcylinder, servomotor, lampa

unika objekt OOP objektorienterad programmering
FoldBottom och CloseLid är två objekt från klassen Actuator
Det är objekten som lagrar våra faktiska värden och som utför och exekverar våra metoder. En klass beskriver, i vårt fall, en generell komponent. Det kan vara en luftcylinder, en servomotor, en lampa m.m. I slutet av förra stycket implementerade vi klassen Actuator och skapade två objekt som hette FoldBottom och CloseLid. Objekten beskriver alltså en verklig komponent medans klassen bara definerar en modell av den allmänna komponenten.
  • Ett objekt knyts till en unik komponent
  • Objektet beskriver den verkliga komponentens tillstånd och värde

I LASAL Class: Egenskaper för objekten i utvecklingsmiljön

Som vi beskrev i avsnittet med klasser så kan man implementera standardmetoder som anropas automatiskt av operativsystemet. När vi skapat vårt objekt med Drag-&-Drop så kan vi nu trimma in objektet så att det konfigureras på ett optimalt sätt. Har man implementerat RtWork-metoden i vår klass så kan man ställa in den cykliska tiden mellan varje anrop. Ex. en PID-reglering kan ha olika uppdateringsintervall även om just själva PID-regleringen fungerar på samma sätt på en temperaturövervakning eller en servomotor.
  • Konfigurera objektet individuellt för sin unika uppgift
  • PID-reglering fungerar på liknande sätt oavsett applikation
  • Beroende på applikation så har PID-reglering olika sampletider, definieras i objektet

Välj vilka objekt som ges möjlighet att visas i ert HMI

Ögat uppe i högra hörnet markerar att objektet är synligt för vårt HMI
Det är objektets Servrar som kan läsas och skrivas i maskinens HMI. En server kan göras "synlig" via ett attribut. Även om en server är "synlig" så kommer den inte att synas i vårt HMI om inte det aktuella objektet är "synligt" också. På så sätt sorteras de Servrar som är viktiga för ert HMI. Skulle alla variabler som används i programmet vara synliga för HMI:t skulle det bli svårt att hitta önskad variabel.
  • Objekt och servers markeras som synliga och kan därmed läsas in i visualiseringen

En av all fördelarna med objekt - uppdateringar sker direkt

objektorienterad programmering källkod klass
Källkoden för vår uppdatering. Vi skapar två klienter, cForwardLimitSwitch och cBackwardLimitSwitch som läser av våra digitala ingångar. If-satsen kontrollerar om någon givare är till. Om vi harn ått en givare står vi still och servern sInPosition sätts till 1, annars 0
När vi har skapat objekt av vår klass Actuator för alla våra luftcylindrar så inser projektledaren att vi måste ha koll på om cylindern rör på sig eller om vi har nått fram till vårt ändläge. Programmerarna svarar: "Inga problem, implementerar bara CyWork-metoden metod som kontrollerar ändlägesgivaren. Det gör vi bara på ett ställe dessutom!"
  • Vi ändrar bara på ett ställe och alla instanser uppdateras
  • Ändringen uppdateras genast i alla objekt

Ändringar i klassens källkod uppdateras genast i alla objekt

objekt klienter servers
Klassens nya klienter cForwardLimitSwitch och cBackwardLimitSwitch samt server sInPosition syns genast i alla objekt
Ändringar i källkoden uppdateras genast i alla klassens objekt. Man behöver inte kompilera eller liknande. Direkt efter deklareringen är klar så har alla objekten uppdaterats.