Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 4 of 4

Thread: Methode überlagern ähnlich wie FB_Init

  1. #1
    Join Date
    28.02.2014
    Posts
    28
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,

    OOP rückt ja tatsächlich immer näher und immer mehr Kunden verlangen es sogar.
    Mit FB_Init und Vererbung auch eine feine Sache, doch bei Methoden habe ich noch ein Problem mit Überlagern.

    FB_Init lässt sich einfach inkl. Schnittstelle überlagern, bzw. erweitern.
    Code:
    METHOD FB_Init: BOOL // Basis-FB
    VAR_INPUT    
    bInitRetains: BOOL; // TRUE: Die Retain-Variablen werden initialisiert (Reset warm / Reset kalt)    
    bInCopyCode: BOOL;  // TRUE: Die Instanz wird danach in den Kopiercode kopiert (Online-Change)
    usiBitRes : USINT; // bit resolution, example: 10 -> 2^10 -> 1024 values available (0-1023)
    END_VAR
    Code:
    METHOD FB_Init: BOOL // Erweiterung
    VAR_INPUT    
    bInitRetains: BOOL; // TRUE: Die Retain-Variablen werden initialisiert (Reset warm / Reset kalt)    
    bInCopyCode: BOOL;  // TRUE: Die Instanz wird danach in den Kopiercode kopiert (Online-Change)
    usiBitRes : USINT; // bit resolution , example: 10 -> 2^10 -> 1024 values available (0-1023)
    usiBitResTurns : USINT; // bit resolution or turns, example: 10 -> 2^10 -> 1024 values available (0-1023)
    END_VAR

    eine Methode, nennen wir sie mal setOutputs, benötigt 3 Eingänge und 1 Ausgang im Basis-FB. In der Ableitung einen zusätzlichen Ausgang.
    Ist das überhaupt möglich oder ist eine derartige Überlagerung nur bei FB_Init möglich?[/CODE]
    Reply With Quote Reply With Quote Methode überlagern ähnlich wie FB_Init  

  2. #2
    Join Date
    25.11.2010
    Location
    OWL
    Posts
    1,012
    Danke
    32
    Erhielt 264 Danke für 228 Beiträge

    Default

    Die VAR_INPUT/OUTPUT/IN_OUT einer Methode können in abgeleiteten FBs nicht erweitert werden, mit einer Ausnahme: Nennt sich FB-Aufruf

  3. #3
    Join Date
    20.02.2008
    Posts
    389
    Danke
    17
    Erhielt 49 Danke für 46 Beiträge

    Default

    Eigentlich sollte das prinzipiell gehen, nur nicht so.
    Ich habe das auf der FB-Ebene schon öfter gemacht.
    Das Problem ist, dass Du in der abgeleiteten Methode die gleichen Eingänge nochmal deklarierst. Du versuchst ein Shadowing, das geht bei TC nicht.
    Lass die Deklarationen weg, nur die zusätzlichen Eingänge deklarieren, dann sollte es gehen.

    Wo ich jetzt nur nicht sicher bin: Du musst der Vererbung nur noch sagen, von wem die erbt - ob das bei Methoden geht? Kann ich gerade nicht ausprobieren.
    Last edited by asci25; 05.08.2020 at 07:52.
    Also wenn das die Lösung sein soll ... dann hätte ich gerne mein Problem zurück.

    Modulare SPS-Programmierung, UI- und UX-Design www.efaro.de

  4. #4
    Join Date
    25.11.2010
    Location
    OWL
    Posts
    1,012
    Danke
    32
    Erhielt 264 Danke für 228 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nein, das geht nicht, weder prinzipiell noch sonstwie.
    Wenn man in einem abgeleiteten FB eine Methode des Basis-FBs überschreibt, muss sie exakt die gleichen INPUT/OUTPUT/IN_OUT-Parameter aufführen wie die Methode des Basis-FBs. Sie kann nur zusätzliche lokale Variablen haben.

  5. Folgender Benutzer sagt Danke zu StructuredTrash für den nützlichen Beitrag:

    Aikapan (05.08.2020)

Similar Threads

  1. Twincat3 FB_Init() und Referenzen. Bleibenn Referenzen stabil?
    By drfunfrock in forum CODESYS und IEC61131
    Replies: 9
    Last Post: 09.12.2019, 13:38
  2. TIA Byte/Array mit AT überlagern
    By Limette in forum Simatic
    Replies: 1
    Last Post: 17.01.2019, 13:30
  3. Methode aus Methode aufrufen
    By Flo123 in forum CODESYS und IEC61131
    Replies: 3
    Last Post: 17.02.2016, 08:26
  4. Replies: 0
    Last Post: 21.01.2016, 03:50
  5. Flankenabfrage ähnlich wie bei S7-200
    By blue dun in forum Simatic
    Replies: 18
    Last Post: 28.04.2010, 11:20

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •