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

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

Thema: Simulationsbaustein im FB

  1. #1
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Liebe Forum-User,
    vor kurzem hatte ich mal ein Problem mit hochzählen gepostet was auf meiner jetzigen Funktion aufbaut. An dieser Stelle nochmal danke für den Einstieg!

    So zu meinem Problem.
    Folgenden Code verwende ich:

    U #TAKT_DRE -> Taktmerker der das ganze in best. Takt ausführen soll
    U #FRG_ANL -> Freigabebedingung

    SPBNB end0 -> wenn nicht erfüllt springe zu end0
    S #MER_ANLAUF -> Merker setzen damit ich weiß dass ich im Anlauf bin
    L #SOLL_DRE -> im Folgenden die Mittelwertbildung
    L #IST_DRE
    +I
    T #ZW_WERT_ANL
    L #ZW_WERT_ANL
    L 2
    /I
    T #IST_DRE -> wenn 999 erreicht ist soll weiter unten automatisch auf L #IST_DRE ->1000 gesetzt werden (könnte auch mit Runden gemacht L 999 -> werden)
    ==I
    SPBNB end1
    L 1000
    T #IST_DRE
    R #MER_ANLAUF
    end0: NOP 0
    end1: NOP 0

    Damit soll ein Motorenanlauf über Mittelwertbildung simuliert werden. Grundsätzlich funktioniert diese Thematik wie ich es mir vorstelle, aber ich wollte diese Funktion in einen FB schrieben, weil ich sie öfter verwenden will. Nun habe ich das genauso reingeschrieben den FB parametriert und schön. Es funktioniert auch, aber ich habe das Gefühl bzw. es ist so dass es nicht mehr in dem Takt bzw. durch den Taktmerker zyklisch ausgeführt wird, sondern dass er alles sehr schnell hoch rechnet und die gewünschte 1000 erreicht.
    Wieso funktioniert das mit dem Taktmerker über einen FB nicht mehr so ohne weiteres und wie kann man das Problem lösen?

    Danke für eure Hilfe!
    Zitieren Zitieren Simulationsbaustein im FB  

  2. #2
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Zitat Zitat von motamas Beitrag anzeigen
    Wieso funktioniert das mit dem Taktmerker über einen FB nicht mehr so ohne weiteres und wie kann man das Problem lösen?
    das hat nix miteinander zu tun.
    Der Fehler liegt woanders.

    Kannst du den Baustein mit Aufruf(en) mal reinstellen?
    "arbeite klug, nicht hart" - deutsches Sprichwort

  3. Folgender Benutzer sagt Danke zu SPSKILLER für den nützlichen Beitrag:

    motamas (10.06.2010)

  4. #3
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Da fehlt noch eine Pulsbildung.

    Wenn du z.B. den CPu takt nimmst von 1s, so wird 1s lang nix gezählt, aber in der nächsten sekunde 1s lang in jedem SPS Zyklus.

  5. #4
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von SPSKILLER Beitrag anzeigen
    Kannst du den Baustein mit Aufruf(en) mal reinstellen?
    Ähm da bin ich jetzt überfragt was du meinst


    Was die Pulsbildung angeht jabba, die hatte ich vor dem ersten Sprung drin aber irgendwie ändert das nichts deswegen hatte ich diese zu Testzwecken mal rausgenommen!

  6. #5
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen
    Da fehlt noch eine Pulsbildung.

    Wenn du z.B. den CPu takt nimmst von 1s, so wird 1s lang nix gezählt, aber in der nächsten sekunde 1s lang in jedem SPS Zyklus.
    das ist richtig. Aber er schreibt ja, dass es ausserhalb des FB klappt.
    Deshalb nehme ich mal an, dass es ne Flanke gibt.

    Was ist der Istwert für ein Parameter? IN/OUT?
    Sind bei mehreren Aufrufen die gleichen Variablen dran?
    "arbeite klug, nicht hart" - deutsches Sprichwort

  7. #6
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Code:
    U     #TAKT_DRE -> Taktmerker der das ganze in best. Takt ausführen  soll
    U     #FRG_ANL   -> Freigabebedingung
     FP #Pulsbildung // Neu Als Stat anlegen Nicht Temp !
    SPBNB end0       -> wenn nicht erfüllt springe zu end0
    S     #MER_ANLAUF -> Merker setzen damit ich weiß dass ich im Anlauf  bin
    L     #SOLL_DRE -> im Folgenden die Mittelwertbildung
    L     #IST_DRE
    +I    
    T     #ZW_WERT_ANL
    L     #ZW_WERT_ANL
    L     2
    /I    
    T     #IST_DRE -> wenn 999 erreicht ist soll weiter unten automatisch  auf L     #IST_DRE ->1000 gesetzt werden (könnte auch mit Runden  gemacht L     999         -> werden)
    ==I   
    SPBNB end1
    L     1000
    T     #IST_DRE
    R     #MER_ANLAUF
    end0: NOP   0
    end1: NOP   0

  8. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    motamas (10.06.2010)

  9. #7
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard

    Zitat Zitat von motamas Beitrag anzeigen
    Ähm da bin ich jetzt überfragt was du meinst
    Du musst doch irgendwo nen Call FBn stehen haben.
    Poste den mal und auch die Schnittstelle des FB.

  10. Folgender Benutzer sagt Danke zu ssound1de für den nützlichen Beitrag:

    motamas (10.06.2010)

  11. #8
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von SPSKILLER Beitrag anzeigen
    das ist richtig. Aber er schreibt ja, dass es ausserhalb des FB klappt.
    Ich muss meine Aussage revidieren ich hab mir noch mal schnell nen Test FC erstellt und es klappt nicht also ignoriert er die Taktsteuerung ansteuerung! Sry!

    Durch die eingebaute Flankensteuerung geht es dass heißt im FB muss ich wohl auf stat gehen weil ich die in Temp stehen hatte!
    Ich werde es noch mal testen!

  12. #9
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Genau, kannst zum testen mal einen Merker nehmen , wenn es den FB im Moment nur einmal gibt. Aber für die Pulsbildung darf man auf keinen Fall einen Temp nehmen, dann kannst du das auch weg lassen.

  13. #10
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    SO um nochmal die anderen Fragen zu beantworten im Anhang mal nen Screenshot zu den Schnittstellen!
    Und nein es werden keine Variablen doppelt verwendet!
    Beim testen bekomm ich jetzt immer nen Sammelfehler muss noch mal gucken was ich da jetzt verhauen habe

    Also jetzt setzt er die Drehzahl sofort auf 1000 da ist nichts mehr mit hochzählen
    Vielleicht macht es sinn die Pulssteuerung als Eingang zu setzen und von außen zu beschalten?
    Angehängte Grafiken Angehängte Grafiken
    Geändert von motamas (10.06.2010 um 10:13 Uhr)

Lesezeichen

Berechtigungen

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