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

Ergebnis 1 bis 7 von 7

Thema: FB SMIUp setzt Ausgangsvariable bBusy nicht

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    bin gerade an der Programmierung der Stop-Funktion der SMI Motoren dran.
    Mein Aufbau in der Solution (TwinCAT 3) ist:

    Funktionsbaustein FB_SMIUp so wie die anderen FB für SMI Kommunikation liegen in einem Programm SMI
    In der Main rufe ich diese mit SMI(); auf.

    smi.PNG
    In dem Programm GA greife ich auf die Variablen der FB in SMI zu.
    In der Main rufe ich diese mit GA(); auf.
    GA.jpg

    Mein Problem ist, dass beim Hoch den FB für das Stoppen aufrufen möchte.
    Der FB FB_SMIUp setz die Variable upBusy beim Hochfahren leider nicht auf True.
    Hätte jemand eine Idee woran das liegt?

    Laut Anleitung sollte upBusy solang true sein bis komplett hochgefahren wurde.#
    https://infosys.beckhoff.com/index.p...ew.htm&id=5315

    Grüße
    Stefan
    Zitieren Zitieren FB SMIUp setzt Ausgangsvariable bBusy nicht  

  2. #2
    Registriert seit
    12.10.2017
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Laut Anleitung sollte upBusy solang true sein bis komplett hochgefahren wurde.#
    Bist Du sicher dass Du das richtig interpretiert hast? In der Beschreibung des FB steht:
    bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv bis der Befehl abgearbeitet wurde.
    Das könnte man so interpretieren dass es sich auf die reine Signal-Verarbeitung bezieht, also das Senden des Befehls.

  3. #3
    Darkghost ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.05.2014
    Beiträge
    163
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ElektrikTrick Beitrag anzeigen
    Das könnte man so interpretieren dass es sich auf die reine Signal-Verarbeitung bezieht, also das Senden des Befehls.
    Ich hab mal versucht über ein TP das Signal wenn eine Signalflanke kommt es für 10 Sekunden zu halten. Aber der Ausgang wurde nie True.
    Von der Beschreibung hört es sich nicht ganz eindeutig an aber ich hab sonst in der Doku auch kein andere Möglichkeit gefunden, um herauszubekommen, ob noch hoch- bzw. noch runtergefahren wird.

    Grüße
    Stefan

  4. #4
    Registriert seit
    12.10.2017
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Geht es dir denn jetzt darum herauszufinden wann der Antrieb die obere- oder untere Endlage erreicht hat? Ich kenne das System jetzt zwar nicht aber vom lesen der FB-Dokus würde ich dafür den FB_SMIPosRead verwenden.

  5. #5
    Darkghost ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.05.2014
    Beiträge
    163
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ElektrikTrick Beitrag anzeigen
    Geht es dir denn jetzt darum herauszufinden wann der Antrieb die obere- oder untere Endlage erreicht hat?
    So direkt nicht, eigentlich geht es darum herauszubekommen ob aktuell der Motor noch fährt, um in dem Fall die Taste anstatt für das Hoch- bzw. Runterfahren fürs stoppen zu verwenden.
    Doch theoretisch könnte ich auch solang die Taste für das Stoppen nutzen bis die Endlage erreicht ist. Beim Anfahren einer Position müsste ich dann anstatt der Endlage die Position nehmen.
    Muss ich mal ausprobieren. Danke für den Tipp.

  6. #6
    Registriert seit
    11.07.2017
    Beiträge
    130
    Danke
    1
    Erhielt 20 Danke für 16 Beiträge

    Standard

    Zitat Zitat von Darkghost Beitrag anzeigen
    Aber der Ausgang wurde nie True.
    Also ich kenne jetzt die Implementierung des konkreten Bausteins nicht, aber diese Art von Ausgang ist ja dafür gedacht, daß z.b. bei langsamen Verbindungen oder großen Datenmengen das Senden auf mehrere Zyklen aufgeteilt werden kann. Dann kann man anhand des bBusy-Ausgangs erkennen, ob man den Baustein erneut aufrufen muß, damit der seine Arbeit fortsetzen kann. Solange das innerhalb eines Zyklus abgearbeitet werden kann, wird der bBusy-Ausgang also nicht auf TRUE gesetzt, da ja mit Rückkehr der Ausführung aus dem Baustein auch der Befehl schon fertig verarbeitet war.

  7. #7
    Darkghost ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.05.2014
    Beiträge
    163
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    die Endlage je Fenster zu speichern und dann abzufragen ist recht umständlich. (ist mir gerade mal so eingefallen *g*)
    Eigentlich kann man ja auch herausbekommen, ob der Motor noch fährt, wenn sich die Pos nach einem weiteren Zyklus nicht mehr ändert.

    Wie kann ich den einen Wert über genau einen Zyklus am besten halten?

    Grüße
    Stefan

Ähnliche Themen

  1. Step 7 Wert bei Ausgangsvariable vom Typ DINT
    Von Mc52 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.09.2017, 14:28
  2. Antworten: 4
    Letzter Beitrag: 07.03.2012, 11:12
  3. PWM setzt Ausgang
    Von Domi55 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 04.06.2011, 23:45
  4. S7-Graph: Ausgangsvariable mit Integerwert belegen
    Von spsfreak12345 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.12.2009, 14:43
  5. S7-300 setzt keine ausgänge
    Von the bang 2 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 09.11.2007, 09:52

Stichworte

Lesezeichen

Berechtigungen

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