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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: beim FC aufruf den IDB des im Baustein verwenden FB angeben

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Eigentlich geht es dem TE doch garnicht darum, den Siemens-FB als "Multiinstanz" laut Definition zu benutzen.
    Er will doch nur mehrere "normale" Instanzen des FB aufrufen - selbstverständlich jede mit eigenem IDB.
    Doch er hat ein Problem, in SCL die gewünschte IDB-Nummer als Variable beim FB-Aufruf anzugeben.

    Was ist daran verwerflich, falls Siemens nicht sagt, von dem FB darf es nur 1 Instanz geben?

    Es ist natürlich möglich, daß der Siemens-FB irgendwelche begrenzten Ressourcen oder Aufträge verwaltet und
    darüber den Überblick behalten muß. Dann darf es von diesem FB tatsächlich nur 1 Instanz geben.
    Dann ist es auch egal, ob man eine elegante oder eine Krücken-Lösung benutzt, um trotzdem mehrere Instanzen
    aufzurufen - es darf einfach nicht sein.

    @taucherd
    Was sagt Siemens, wieviele Instanzen des FB "KNX/EIB2S7 RW" zulässig sind?

    Wieviele Instanzen brauchst Du denn?
    Bei wenigen Instanzen könnte man in einer CASE-Anweisung mehrere verschiedene Instanz-Aufrufe komplett ausprogrammieren
    und dann je nach Case nur eine bestimmte Instanz aufrufen.

    Wie man eventuell in SCL die IDB-Nummer für den FB-Aufruf variabel gestalten kann, weiß ich nicht.
    Doch imho ist es selbst in AWL nicht möglich, einen FB mit Parameterübergabe mit variabler IDB-Nummer aufzurufen.
    Gut möglich, daß es deshalb auch in SCL keine Möglichkeit gibt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    taucherd (08.03.2011)

  3. #12
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Doch imho ist es selbst in AWL nicht möglich, einen FB mit Parameterübergabe mit variabler IDB-Nummer aufzurufen.
    Aber in AWL kann man sich ja dann mit dem Manuellen öffnen von DI und nutzen eines UC weiterhelfen.

    Vielleicht wäre ja das einfachste sich einen Hilfs FC zu machen welcher den FB aufruft, und welchem man an einem IN Parameter die gewünschte DB Nummer mitgibt!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Aber in AWL kann man sich ja dann mit dem Manuellen öffnen von DI und nutzen eines UC weiterhelfen.
    Dann kann man den FB aber nur ohne Parameter aufrufen.
    (Die Aufrufparameter könnte man aber notfalls vorher direkt in den IDB schreiben.)

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Vielleicht wäre ja das einfachste sich einen Hilfs FC zu machen welcher den FB aufruft, und welchem man an einem IN Parameter die gewünschte DB Nummer mitgibt!
    Das hat der TE nach eigener Aussage bereits gemacht. Es gefällt ihm aber nicht.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #14
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    @PN/DP du hast richtig erkannt.
    Es gibt keine Beschränkung wegen dem Aufruf des FB's nur halt immer einen eigenen IDB. Es wird nur der Auftrag nicht abgearbeitet wenn im Kommunikationsbaustein der Speicher voll ist. was aber nichts macht. Da der Auftrag nicht verloren geht, sondern dieser Baustein es nochmals, nochmals... versucht.

    In KOP würde es funktionieren, aber auch nicht elegant.
    Ich bin jetzt dabei mir zu überlegen ob ich das nicht mit Block_move oder einen indirekten Zuweisung machen kann/soll.
    Ich benötige das >50 mal im Programm (für alle Lichter)

    Derzeitige Stand, siehe Abbildung.
    In dieser Konstellation geht es auch nicht, dass ich eine Hilfs FC mache.
    Da ich beim meinem Baustein „dimmen_KL2751“ eine Struktur habe und diese nicht durchreichen kann im Hilfs FC. Ich muss diese Baustein derzeit wie in Abbildung aufrufen.
    Angehängte Grafiken Angehängte Grafiken

  6. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von taucherd Beitrag anzeigen
    In KOP würde es funktionieren, aber auch nicht elegant.
    Was ist daran nicht elegant, wenn man für 50 Objekte 50 mal die zugehörige FB-Instanz voll ausprogrammiert aufruft?
    Ich meine, das ist in SPS-Programmen normal. Es muß nicht immer eine Schleife mit indirekter Adressierung sein
    oder ein Kapselungs-Baustein, nur um sich das Eintippen von Übergabeparametern zu sparen.
    Deine KOP-Variante sieht doch gut aus. Ich würde es genauso machen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    so wie du bin auch ich schon mal über dieses "Feature" gestolpert.
    Wenn ich es richtig verstanden habe, dann ist es so, dass du den DB als IN-Parameter an den FC übergeben willst, der seinerseits wiederum diesen Parameter als I-DB an den aufgerufenen FB übergibt.
    Das geht in AWL genau so zu machen - in SCL geht es, warum auch immer, NICHT ...

    Gruß
    Larry

  8. #17
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    das stimmt, es muss am Compiler von SCL liegen

  9. #18
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    nur um sich das Eintippen von Übergabeparametern zu sparen.

    Harald


    genau das ist es, bei so vielen Aufrufen ist es auch eine Fehlerquelle

Ähnliche Themen

  1. Probleme beim FB-Aufruf
    Von matzek im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 23.09.2010, 21:07
  2. Baustein aufruf
    Von zloyduh im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 19.08.2010, 19:40
  3. Problem beim Baustein Hochladen in Simatic 5.4
    Von mac_hawk im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.04.2010, 16:58
  4. Baustein mehrfach verwenden (gleicher Zeitstempel)
    Von SPSstudent im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.02.2010, 12:57
  5. oscat Baustein R2_Add verwenden
    Von pjoddi im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 22.07.2009, 20:20

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •