OOP Ansätze in Codesys(Twincat 2.11)

FrankVonWelt

Level-1
Beiträge
14
Reaktionspunkte
1
Hallo zusammen,

ich versuche in ein SPS Projekt sagen wir mal "Modularität" reinzubekommen um mit fertigen bausteinen schnell zum ziel zu kommen.

dafür wäre ein Objekt orientierter Ansatz meiner meinung nach sinnvoll.

Beispiel:

"Grundbaustein": Transportband.
"Vererbter Baustein1" : Transportband mit stopper
"Vererbter Baustein2" : Transportband mit stopper und hubtisch

usw

Direkt objektorientert geht ja nicht .. oder etwa doch? meines wissens nicht!

frage nun: wie kommt man am besten zurande mit solch eine Ziel?
wie würdet ihr das machen?

ich will nicht unbedingt (um am einfachen beispiel von oben zu bleiben) 3 versionen des Funktionsblocks haben und alle warten müssen, wenn es eine änderung gibt, die z.b. das Band betrifft.

Für Ideen und Anregungen bin ich dankbar :)

Ich verwende Twincat 2.11 !

Gruß

Frank
 
Da bleibt nur, in dem "vererbten FB" einen Grund-FB zu instanziieren. Dann musst Du aber die INPUT-/OUTPUT-Variablen des Grund-FB's durch den "vererbten FB" durchreichen. Ich würde mit dem Vorhaben lieber auf TwinCat 3 warten. Wer weiss, vielleicht kommt es ja noch in diesem Jahr?
 
Die einzigste Möglichkeit ist, einen FB in einem FB zu instanzieren. Das ist aber nicht so übel, wie es hier geschildert wird. Ich hab es schon gemacht und es ist besser, als den Code zu duplizieren. Es erspart nämlich bei Änderungen eine Menge Arbeit. Zum Beispiel bei den Stationen einer Montrac-Produktionsbahn (Monorail von Firma Montech). Halten, Starten etc wird von einem FB gemacht, während der spezifische Produktionsprozess den Grund-FB instanziert.

Anfangs kannte Montrac die Kommunikation per IR und Nummerierung der Wagen noch nicht. Da war nur ein Sensor für Halt und ein Start-Aktuator. Es war damals eine Fehlkonstruktion, weil die Wagen nach einer gewissen Zeit anfingen, über den Stoppunkt etwa 2-10mm hinauszufahren, um dann wieder zurückzukommen. Die Folge war eine Doppelregistrierung der Wagen. Der Grund-FB für das Handling dieses Fehlers wurde recht umfangreich.

Rundtische mit mehreren Produktionsprozessen sind auch gute Kandidaten. Hat man einmal den Kode, braucht man nur den Kode für die Prozesse auszutauschen.

Ich denke aber nicht, dass OO von vielen benötigt wird.
 
Zuletzt bearbeitet:
Zurück
Oben