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

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

Thema: Aufruf von BSEND mit AWL

  1. #1
    Registriert seit
    07.12.2011
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo AWLer

    ich habe eine Frage zu nachfolgendem Code-Ausschnitt:

    +AR2 P#32.0;
    UC FB 12;
    +AR2 P#8160.0;

    Mir geht es um den Aufruf des FB12 (BSEND). Der FB12 erwartet ja verschiedene Parameter (ID, R_ID, ...). Ich verstehe nicht, wie in obigen Code die Parameter an den FB übergeben werden. Ich hätte ein CALL FB 12 (ID :=, ....) erwartet.


    Vielen Dank!
    Grüße
    Zitieren Zitieren Aufruf von BSEND mit AWL  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    UC FB12 ist ein Bausteinaufruf ohne Parameterübergabe

    Call FB12,DB12 <---Jetzt kommt ID:= usw...

  3. #3
    svkers ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.12.2011
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Beim FB12 handelt es sich um den BSEND-Baustein. Der Zweck ist ja Daten über eine S7-Verbindung zu versenden. Irgendwie muss dem FB ja die Informationen übergeben werden, sonst kann ja nix verschickt werden. Was bezweckt also der Aufruf? Können die Daten noch auf eine andere Weise übergeben werden? Der AWL-Code wurde aus SCL in STEP 7 generiert. Der SCL-Code sieht so aus:

    BSEND( REQ := REQ,
    R := R,
    ID := ID,
    R_ID := RID,
    SD_1 := Daten,
    LEN := 10 );

    Der FB12 bekomt also sehr wohl Daten übergeben. Die Frage ist nur, wie das in dem aus der SCL-Quelle generierten Code gemacht wird...

    Vielen Dank!
    Grüße

  4. #4
    svkers ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.12.2011
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hmm, es muss irgendwie das AR eine Rolle spielen, da:

    +AR #P32.0
    UC FB 12;

    Der Block hat eine STAT-Section, in welcher an Adresse 32 eine Variable VAR vom Typ BSEND startet. Direkt vor dem UC FB 12 Aufruf wurden genau VAR.ID, VAR.R_ID, ... gesetzt.

    Aber leider verstehe ich es noch nicht.
    Für Hinweise wäre ich sehr dankbar

    Grüße

  5. #5
    Registriert seit
    14.02.2012
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Gehe doch einfach in das Menü Einfügen->Bausteinaufruf. Dann geht die Maske für die Bibliotheken auf.
    Wähle dann den BSend aus und Du bekommst eine der folgenden Code-Vorlage.

    [code]

    BSEND.DBxxx(REQ := // IN: BOOL
    ,R := // IN: BOOL
    ,ID := // IN: WORD
    ,R_ID := // IN: DWORD
    ,SD_1 := // INOUT: ANY
    ,LEN := // INOUT: WORD
    );
    := DBxxx.DONE; // OUT: BOOL
    := DBxxx.ERROR; // OUT: BOOL
    := DBxxx.STATUS; // OUT: WORD

    [code]

    Die braucht Du dann nur noch Parametrieren.

  6. #6
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Das ist MC7-Code, letzten Endes wird jeder Call Aufruf so gewandelt, auch wenn du das als "Normal"-Anwender nicht sehen solltest ...
    Ergo ist der ganze Baustein wohl irgendwann mal inkonsistent gespeichert oder auch von einer CPU hochgeladen worden.
    Ergo2 ist es mit dem bloßen Wandeln des FB-Aufrufs nicht getan, in dem Baustein ist mit Sicherheit noch mehr im Argen, was nicht "normal" ist.

    Wann und wodurch es zu dem Effekt kommt weiß ich auch nicht genau, aber das ist mir auf jedenfall auch schon so passiert ...

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #7
    Registriert seit
    14.02.2012
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich bin mir noch nicht einmal sicher ob "svkers" den Aufruf in AWL oder SCL haben wollte.
    Aber wie auch dem die Aufrufe von FB's kann man in Step7 grundsätzlich über die
    Bibliotheks-Funktion erzeugen um den Aufbau des Aufruf's keine Gedanken machen.

    MfG
    Günther

  8. #8
    svkers ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.12.2011
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    vielen Dank für die zahlreichen Anregungen! Ja, ich bin eigentlich nicht an dem SCL interessiert, sondern dem AWL-Code interessiert. Ich versuche zu verstehen,
    warum der STEP7-Compiler aus dem BSEND-Aufruf, eine UC FB 12 generiert und vor allem wie dann die Parameterübergabe stattfindet, welche ja im SCL-Code vorhanden ist. Im entsprechenden AWL-Code müssen die Parameter also auch irgendwie an den FB 12 übergeben werden.

    Grüße,
    Sven

  9. #9
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Was ist der Unterschied zwischen der CALL- und der UC- bzw. CC-Aufrufanweisung?

    http://support.automation.siemens.co...subtype=130000
    kind regards
    SoftMachine

  10. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von SoftMachine Beitrag anzeigen
    Was ist der Unterschied zwischen der CALL- und der UC- bzw. CC-Aufrufanweisung?

    http://support.automation.siemens.co...subtype=130000
    Ich denke, das meint er nicht. Wir hatten das schon einmal hier im Forum, vielleicht findet der TE das über die Forensuche. Ich glaube mich zu erinnern, dass der Compiler die Call-Aufrufe zerlegt und die zu übergebenden Daten vorher auf den LStack schiebt, bin aber nicht ganz sicher, hab mich damit nicht eingehender befaßt. 4L wußte da ein wenig mehr zum Thema.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 23.05.2017, 16:03
  2. Benutzung von BSEND
    Von quant81 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 05.04.2013, 13:39
  3. FB Aufruf mit DB übergabe in AWL/SCL
    Von Admec im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.10.2010, 09:24
  4. Antworten: 1
    Letzter Beitrag: 07.04.2009, 12:02
  5. Antworten: 3
    Letzter Beitrag: 07.03.2008, 11:09

Stichworte

Lesezeichen

Berechtigungen

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