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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

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

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, habe folgendes Problem oder bräuchte einen anderen Lösungsvorschlag.
    Ich habe in SCL einen FC erstellt indem ich einen "Siemens FB" der nicht Multiinstanzfähig ist aufrufe, der einen IDB benötigt. Jetzt möchte ich die DB NR von außen übergeben, was aber mit folgenden nicht funktioniert hat:

    VAR_Input
    DB_NR : Block_DB;
    END_VAR

    //daten zur gruppenadresse senden
    "KNX/EIB2S7 RW".DB_NR (CREATE_TASK := _mb[6],// IN: BOOL
    CONFIGDB := "Interface_1_Cnfg", // IN: BLOCK_DB
    GROUPADDRESS_MAIN :=rw_hauptg, // IN: INT
    GROUPADDRESS_MIDDLE :=rw_mittelg, // IN: INT
    GROUPADDRESS_SUB := rw_unterg, // IN: INT
    DPT := rw_dpt, // IN: INT
    RW := true, // IN: BOOL
    DATA := _mb[5]);
    _test := DB_NR.QSTATE; // OUT: WORD

    oder
    VAR_Input
    DB_NR : INT;
    END_VAR
    “KNX/EIB2S7 RW".WORD_TO_BLOCK_DB(INT_TO_WORD(DB_NR)


    Derzeitige Lösung ist jene, dass ich einen weiteren FC erstellt habe und den FB „KNX/EIB2S7 RW“ und meinen FC in diesem FC aufrufe. Bin mit dieser Lösung aber nicht zufrieden, konnte aber nichts finden im Forum. Nur ähnliche Problemstellungen, wo es auch nicht funktioniert in SCL.

    Vielleicht hat jemand eine Idee, Danke.
    Zitieren Zitieren beim FC aufruf den IDB des im Baustein verwenden FB angeben  

  2. #2
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von taucherd Beitrag anzeigen
    Ich habe in SCL einen FC erstellt indem ich einen "Siemens FB" der nicht Multiinstanzfähig ist aufrufe, der einen IDB benötigt
    Kann es sein, dass es Sinn macht, wenn Siemens keine Multiinstanz zulässt, dass du nicht über eine Eselsbrücke diese Vorgabe umgehen kannst?


    Wenn der Baustein den Datenbaustein absolut braucht, dann ist dies so.



    bike


    P.S: Speicherverwaltung ist hier das Stichwort

  3. #3
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Frage

    Per Variable eine IDB-Nr. vorzugeben ist mir auch noch nicht gelungen!

    Ich weiß nicht genau ob das funktioniert, aber meine Idee dazu wäre, das Du für jede Multiinstanz einen IDB anlegst und vor Aufruf des eigentlichen FBs per Blockmove den kompletten Instanz-DB-Inhalt kopierst und nach dem beenden wieder in eine Instanz-DB-Kopie sicherst! Das Ganze könne je nach Größe des IDB's und Häufigkeit des Aufrufes natürlich um einiges die Zykluszeit verlängern!
    Geändert von MCerv (07.03.2011 um 17:34 Uhr)
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  4. #4
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von MCerv Beitrag anzeigen
    Per Variable eine IDB-Nr. vorzugeben ist mir auch noch nicht gelungen!

    Ich weiß nicht genau ob das funktioniert, aber meine Idee dazu wäre, das Du für jede Multiinstanz einen IDB anlegst und vor Aufruf des eigentlichen FBs per Blockmove den kompletten Instanz-DB-Inhalt kopierst und nach dem beenden wieder in eine Instanz-DB-Kopie sicherst!
    Der Sinn dieser Operation erschließt sich mir jetzt nicht.
    Warum nicht akzeptieren, dass es nicht möglich aus einem nicht multiinstanzfähigen DB einen mit Gewalt bauen zu wollen?



    bike

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

    Standard

    bike, ich habe da eine SCL Quelle und den FC muss ich meine Projekt ca. 50mal verwenden- das ist der Sinn dahinter, weshalb ich eine andere Lösung suche!

  6. #6
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von taucherd Beitrag anzeigen
    bike, ich habe da eine SCL Quelle und den FC muss ich meine Projekt ca. 50mal verwenden- das ist der Sinn dahinter, weshalb ich eine andere Lösung suche!
    Vor solchen Problemen stehen alle Entwickler.
    Doch wenn Siemens dies nicht direkt zulässt, warum dann schimpfen und mit aller Gewalt eine Lösung zu suchen, die zunächst funktioniert und ggF dann irgendwann Mist macht?

    Mir ging es schon oft so, dass ich mich gefragt habe, warum geht das nicht wie ICH es will.
    Ganz einfach, weil ich nicht das Programm geschrieben habe und nicht jeden Hintergrund kenne.


    bike

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Du kannst auch den Bausteinschutz entfernen und den Baustein selber Multiinstantfähig machen. Wenn Siemens nicht will muss man eben selber nachhelfen

  8. #8
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Du kannst auch den Bausteinschutz entfernen und den Baustein selber Multiinstantfähig machen. Wenn Siemens nicht will muss man eben selber nachhelfen
    Das ist möglich.
    Doch versuche ich immer zuerst bevor ich das Rad neu erfinde, das vorhandene Rad zu nutzen.


    bike

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

    Standard

    Das wäre eine Lösung. Wie ist es aber mit dem Eingang beim FB CONFIGDB als BLOCK_DB? hätte das eine Auswirkung? Ich glaube nicht, dass dieser Baustein von Siemens unbewusst als nicht Multiinstanzfähig erstellt wurde. Es ist auch, das dieser Baustein in den Kommunikationsbaustein schreibt und dieser nur einen Puffer für 23 Schreibaufträge hat. Wenn also der Puffer voll ist und beim QState diese Aktion auftritt muss der Schreibauftrag nochmals gestartet werden.
    Das Ganze ist für eine EIB/KNX Anbindung zu S7.

  10. #10
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von taucherd Beitrag anzeigen
    Ich glaube nicht, dass dieser Baustein von Siemens unbewusst als nicht Multiinstanzfähig erstellt wurde.

    Stimmt.


    bike

Ä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
  •