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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: FB IN-Parameter nicht beschalten

  1. #1
    Registriert seit
    13.11.2009
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Gemeinde,

    ich möchte einen Standard-FB programmieren, bei den als IN-Parameter Datentypen von "BLOCK_DB" deklariert sind.
    Diese IN-Parameter werden jedoch aussen nicht zwingend beschalten.

    Falls diese nicht beschalten werden, soll auch der Programmteil im inneren des FB's nicht bearbeitet werden.

    Wie kann ich nun herausfinden ob die IN-Parameter verschalten sind?

    Kann man das über Pointer machen? Nur wie funktioniert das bei "BLOCK_DB"?

    Merci im Voraus!!!
    Zitieren Zitieren FB IN-Parameter nicht beschalten  

  2. #2
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Wenn sich die Parameter vom Typ Block_DB während der Laufzeit für die jeweilige Instanz nicht ändern, könntest Du sie einfach auf 0 abfragen.
    Gruß
    Michael

  3. #3
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Bei einem Block_DB Eingang ist es nicht so einfach. Da bekommst Du normal rinen Fehler, wenn die DB Nummer Null ist oder nicht existiert. (Oder hab ich was übersehen?).
    Ich würde einen Int Eingang nehmen und den auf eine INT temp Variable legen.
    Diese dann vergleichen und entsprechend verschalten.
    Wenn OK dann öffne Z.B. DB über indirekten Aufruf.
    z.B.
    L IN_INT_BSP
    T TMP_INT_BSP
    L 0
    ==I
    SPB END

    AUF DB[TMP_INTBSP]
    { Dein Code}
    END: NOP 0

  4. #4
    reinip ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.11.2009
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    INT Eingang würde gehen, verwende ich aber mit Absicht nicht, da bei einer DB-Nummern-Übergabe mit INT, diese DB's in der Referenzliste nicht aufscheinen.

    Der Parameter vom Typ Block_DB ändert sich normalerweise nicht und ist mit 0 vorbelegt. Wenn aber jemand den IN Parameter aussen mit einem DB verschaltet und die Verschaltung anschließend wieder löscht, ist mein Aktualwert leider nicht mehr "0".
    Deshalb müsste ich wissen ob der IN-Parameter von aussen wirklich beschalten ist.

  5. #5
    Registriert seit
    05.06.2012
    Beiträge
    65
    Danke
    13
    Erhielt 10 Danke für 10 Beiträge

    Standard

    edit: Ich habe deinen Post über Dir nicht gelesen gehabt beim posten. Dann hat sich meine "Lösung" wohl erledigt. Hab es auch noch nicht weiter ausprobiert.


    Ich denke, so könnte es gehen. Vorraussetzung ist, das meine Beobachtung stimmt, und ein nicht beschalteter Block_DB eingang wirklich immer '1' liefert. Das müsstest du dann noch rausfinden.

    Code:
          AUF   #i_DB1
          L     DBNO
          L     1
          <>I   
          SPBN  END
    
    // Dein Code
    
    END:  NOP   0
    Geändert von Tuffi (02.06.2015 um 16:21 Uhr)

  6. #6
    reinip ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.11.2009
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie gesagt, das Problem ist: IN-Parameter mit DB verschalten (z.Bsp. DB20) -> runtergeladen -> IN-Parameter (DB20) wieder gelöscht wird -> runtergeladen -> dann steht im Aktualwert im Instanz-DB der Wert "20" obwohl der IN-Parameter nicht verschalten ist.

  7. #7
    Registriert seit
    05.06.2012
    Beiträge
    65
    Danke
    13
    Erhielt 10 Danke für 10 Beiträge

    Standard

    Das hatte ich erst danach gelesen und gemerkt das sich die DBNO nicht ändert, wenn man die Beschaltung wieder weg nimmt.
    Ich hab mal ein bisschen gestöbert und diesen Thread gefunden: Unbelegter Eingang am FB erkennen
    Da ist wohl der Tenor: Nur mit Pointer lösbar, und das auch nicht schön.

  8. #8
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Evtl. lässt sich das ganze ja kombinieren.
    Eine vorgeschalteten FC mir Block_DB Eingang, dort DB Nummer mit DBNO aus lesen und an FB übergeben.
    Dort dann Auswertung wie von mir beschrieben.
    Dann hast die Referenz und kannst den Programmteil ab Blocken wie von mir beschrieben.

    Dann hätte sich auch die Vorbelegung erledigt, denn im FC wird kein Wert gespeichert sondern default genommen.
    Nur wirst Du bei der Vorbelegung mit 0 immer einen Fehler erhalten.

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von schaible.r Beitrag anzeigen
    Dann hätte sich auch die Vorbelegung erledigt, denn im FC wird kein Wert gespeichert sondern default genommen.
    Nur wirst Du bei der Vorbelegung mit 0 immer einen Fehler erhalten.
    In FC gibt es keine Default-Werte, FC-In/Out-Parameter können nicht unbeschaltet bleiben. Es kann auch keinen Fehler geben, denn FC mit unbeschalteten Eingängen können garnicht erst in die CPU geladen werden.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #10
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oh man stimmt wo war nur mein Kopf. Sorry.

Ähnliche Themen

  1. Parameter p9611 und p9811 werden im STARTER nicht erkannt
    Von elmusto im Forum Antriebstechnik
    Antworten: 21
    Letzter Beitrag: 06.06.2014, 16:34
  2. Inbetriebnahme Sinamics S110 - Parameter p0003 nicht sichtbar
    Von Stefan1312 im Forum Antriebstechnik
    Antworten: 16
    Letzter Beitrag: 20.03.2014, 10:37
  3. Lenze SMD-FU - nicht alle Parameter verfügbar
    Von Xplosion im Forum Antriebstechnik
    Antworten: 4
    Letzter Beitrag: 04.11.2010, 14:57
  4. Parameter übergabe nicht Korrekt
    Von Björn im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.03.2010, 10:35
  5. FB inout parameter wird nicht beschrieben!
    Von Jochen Kühner im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.04.2005, 09:42

Stichworte

Lesezeichen

Berechtigungen

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