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

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

Thema: Trendberechnung mit S7

  1. #1
    Registriert seit
    13.04.2009
    Beiträge
    502
    Danke
    101
    Erhielt 118 Danke für 74 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    heute stellte sich die Frage, ob eine Trendberechnung mit S7 möglich ist und vor allem wie.

    Folgendes Szenario:

    Der Füllstand zweier Maschinenbunkern wird mit einer Radarsonde überwacht. Die Analogwerte werden in der Steuerung eingelesen.

    Maschine A hat einen Verbrauch von 300 kg Material in der Minute. Die Wegezeit Maschinenversorgung - Maschine beträgt 130 Sekunden.
    Maschine B hat einen Verbrauch von 500 kg Material in der Minute. Die Wegezeit Maschinenversorgung - Maschine beträgt 170 Sekunden.

    Z.Zt. geschieht die Materialanforderung mit einfachen Schaltpunkten. Es gibt eine Prioritätssteuerung, wodurch die Wegezeiten mit einbezogen werden. Die Schaltpunkte sind aber relativ starr gehalten. Der Bediener hat zwar die Möglichkeit die Schaltpunkte einzustellen, allerdings geschieht dies manuell. Der Materialverbrauch der Maschinen kann stark variieren. Die oben genannten 300 bzw. 500 kg dienen nur als Beispiel. Ich kann allerdings immer nur eine Maschine mit Material versorgen.

    Ich würde die Schaltpunkte gerne optimieren bzw. automatisieren. Ich stelle mir eine Trendberechnung vor, bei der ich den Mittelwert des Materialverbrauches z.B. der letzten 30 Sekunden nehme und dann berechne, wo ich in 300 Sekunden bin. Somit kann ich -zumindest theoretisch- erkennen, wann Maschine A oder B leer ist und darauf meine Steuerung so ausrichten, das die Maschine welche zuerst leer ist, zuerst mit Material versorgt wird.

    Habe beim suchen Trendberechnung - Algorithmen ? gefunden. Hilft mir aber irgendwie nicht wirklich weiter. Kann man so etwas mit dem Regelbaustein FB 41 bzw. FB 42 machen?? Ich habe von der Regelungstechnik mit S7 nicht wirklich viel Ahnung. Wie kann man sonst an das Problem herangehen?? Kann man solch ein Problem mit dem "klassischen" Step7 lösen oder geht das nur in SCL o.ä.?

    P.S. Als Steuerung habe ich je eine 315 2DP/PN mit WinCC V7 als Visualisierung.

    Gruß
    MeisterLampe81
    So viel Technik und nur Probleme!!
    Zitieren Zitieren Trendberechnung mit S7  

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

    Standard

    .

    Vielleicht kannst du mit den Bausteinen aus der oscat-Bibliothek was anfangen:


    trend.jpg
    kind regards
    SoftMachine

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

    MeisterLampe81 (10.10.2014)

  4. #3
    Registriert seit
    16.10.2012
    Beiträge
    737
    Danke
    51
    Erhielt 33 Danke für 27 Beiträge

    Standard

    Lineare Interpolation gibt es ja in der OSCAT beispielweise

  5. Folgender Benutzer sagt Danke zu Draco Malfoy für den nützlichen Beitrag:

    MeisterLampe81 (10.10.2014)

  6. #4
    Avatar von MeisterLampe81
    MeisterLampe81 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.04.2009
    Beiträge
    502
    Danke
    101
    Erhielt 118 Danke für 74 Beiträge

    Standard

    Danke für die Antworten.

    In der Oscat Bibliothek hatte ich gestern schon geguckt, allerdings noch nichts passendes gefunden. Den "Trend" Baustein hatte ich gesehen, aber der gibt mir nur ein Signal, ob es auf oder ab geht.
    Nach einem Baustein für Lineare Interpolation werde ich mal suchen.

    Ich habe mir heute überlegt, das ich ein Schieberegister mit 30 Werten (jede Sekunde einen) nehme, dann den letzten Wert vom ersten Wert subtrahiere, das ganze dann mit 10 multiplizierte (das Delta x 10 wg. 300 Sekunden) und dann mal gucke wie sich die Werte verhalten und ob es klappt. Der Vorteil ist, das der Füllstand des Bunkers fast linear abnimmt. Hierrüber kann ich dann mit einem Vergleicher einfluss auf die Prioritäten und die Schaltpunkte nehmen.

    In meiner Phantasie klappt es, mal gucken was die Realität sagt..

    Gruß
    MeisterLampe81
    So viel Technik und nur Probleme!!

  7. #5
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Hallo MeisterLampe,

    wenn ich's richtig verstanden habe, dann musst du den Wert über der Zeit integrieren. Daraus erhältst du als Ergebnis die Abnahme der Höhe bzw. des Gewichts in m/s oder kg/s oder wie auch immer.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

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

    MeisterLampe81 (12.10.2014)

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

    Standard

    .
    @ Meister Lampe

    Nur als Hinweis:
    Bei oscat gibt es mehrere Trend-Bausteine...

    .
    kind regards
    SoftMachine

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

    MeisterLampe81 (12.10.2014)

  11. #7
    Avatar von MeisterLampe81
    MeisterLampe81 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.04.2009
    Beiträge
    502
    Danke
    101
    Erhielt 118 Danke für 74 Beiträge

    Standard

    Nabend,

    also, die Oscat Bibliothek ist echt super. Da findet der faule Instandhalter, der nicht wirklich viel Ahnung von indirekter Adressierung hat sogar ein FiFo Baustein. Aber damit geht es schon los. Ich kriege den Baustein zwar zum laufen, allerdings wird immer nur der erste Speicherplatz im DB beschrieben, das FiFo Prinzip klappt nicht.

    Mit Direktzugriff auf den Instanz-DB auf "pw" kann ich den Speicherplatz bestimmen, aber das ist bestimmt nicht im Sinne des Erfinders. Ich verstehe den Baustein so, das der Wert vom "DIN" Eingang bei anlegen eines True-Signals auf "WR" den anstehenden Wert immer einen weiterschiebt.

    Was mache ich falsch bzw. verstehe ich das falsch?

    Die Interpolationsbausteine habe ich gesehen. Ich würde es aber gerne erstmal mit einem Schieberegister und der Delta-Änderung bezogen auf die Zeit versuchen.. wie gesagt.. Instandhalter

    FiFo DB.jpgFiFo DB2.jpgFiFo Anleitung.jpg

    Ist es eigentlich Erlaubt, den Code des Oscat Bausteins hier zu veröffentlichen?? Ist ja eigentlich für jeden zugänglich. Habe dazu ein Paar fragen..

    Gruß
    MeisterLampe81
    So viel Technik und nur Probleme!!

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

    Standard

    Zitat Zitat von MeisterLampe81 Beitrag anzeigen
    Nabend,

    also, die Oscat Bibliothek ist echt super.
    ...

    Ist es eigentlich Erlaubt, den Code des Oscat Bausteins hier zu veröffentlichen??

    Ist ja eigentlich für jeden zugänglich. Habe dazu ein Paar fragen..

    Gruß
    MeisterLampe81
    Also erstmal freut es mich, wenn du mit deiner Aufgabenstellung weitergekommen bist.


    Über Oscat kannst du dir HIER die Lizenzbedingungen anschauen, wo es u.a. heisst:
    Code:
    Die Verwendung der OSCAT Bibliothek ist kostenfrei und kann ohne Lizenzvereinbarung für private oder gewerbliche Zwecke eingesetzt werden.
     
    Eine Verbreitung der Bibliothek ist ausdrücklich erwünscht, hat aber kostenfrei und unter Hinweis auf unsere Webpage WWW.OSCAT.DE zu erfolgen.
    Ich glaube, bei oscat ist für Fragen dort ein User-Forum eingerichtet, ich habe es aber noch nie benutzt.

    Aber auch hier im Forum wirst du über die Suchfunktion einiges zu oscat finden.

    .
    kind regards
    SoftMachine

  13. #9
    Avatar von MeisterLampe81
    MeisterLampe81 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.04.2009
    Beiträge
    502
    Danke
    101
    Erhielt 118 Danke für 74 Beiträge

    Standard

    Hier ist der Code, zudem ich ein paar Fragen habe. Der Baustein wurde laut Information aus einer SCL Quelle generiert und ist komplett kommentarlos..


    Code:
    SET   
          SAVE  
          =     L      0.1   //Was bedeutet L 0.1?? Lokalvariable 0.1??
          U     #RST
          SPBN  A7d0
          L     #pr          //pr ist eine statische Variable, die immer auf null steht. Was hat dies für einen Zweck? 
          T     #pw        //pw gibt mir den Speicherplatz im FiFo an. Wenn ich denn über pr jeweils einen hoch zähle, habe ich ich in meinen Augen kein FiFo, sondern                               einen Speicherbaustein mit 32 Plätzen
          CLR   
          =     #FULL
          SET   
          =     #EMPTY
          L     DW#16#0
          T     #Dout
          SPA   A7d2
    A7d0: CLR   
          U     #E
          SPBN  A7d2
          U     #EMPTY
          NOT   
          U     #RD
          SPBN  A7d3
          L     #pr      //Hier ist wieder der pr
          ITD   
          L     L#0
          +D    
          SPO   I007
          SPA   I008
    I007: CLR   
          =     L      0.1    //Warum wieder L 0.1?
    I008: L     L#32       //Warum jetzt 32 laden und..
          *D                  //...multiplizieren??
          SPO   I009
          SPA   I00a
    I009: CLR   
          =     L      0.1   //Wieder die L 0.1
    I00a: TAR2             //Akkutausch??
          +D                  //Warum addieren??
          SPO   I00b
          SPA   I00c
    I00b: CLR   
          =     L      0.1
    I00c: LAR1                          //UND AB HIER HÖRT ES FÜR MICH ENDGÜLTIG AUF. Indirekte Adressierung ist für mich ein Böhmisches Dorf..
          L     DID [AR1,P#12.0]
          T     #Dout
          L     #pr
          T     LW     2
          L     32
          T     LW     4
          TAR2  LD     6
          UC    FC    53     //Warum soll ich in den FC53 springen und darf nicht mehr in meinen Ausgangsbaustein zurück?? Wenn ich wieder in meinen Ausgangsbaustein springe kriege ich einen Verschachtelungsfehler.
          LAR2  LD     6
          L     LW    10
          T     #pr
          L     #pr
          L     #pw
          ==I   
          =     #EMPTY
          CLR   
          =     #FULL
    A7d3: CLR   
          U     #FULL
          NOT   
          U     #WD
          SPBN  A7d2
          L     #pw
          ITD   
          L     L#0
          +D    
          SPO   I00d
          SPA   I00e
    I00d: CLR   
          =     L      0.1
    I00e: L     L#32
          *D    
          SPO   I00f
          SPA   I010
    I00f: CLR   
          =     L      0.1
    I010: TAR2  
          +D    
          SPO   I011
          SPA   I012
    I011: CLR   
          =     L      0.1
    I012: L     #Din
          TAK   
          LAR1  
          TAK   
          T     DID [AR1,P#12.0]
          L     #pw
          T     LW     2
          L     32
          T     LW     4
          TAR2  LD     6
          UC    FC    53
     
          LAR2  LD     6
          L     LW    10
          T     #pw
          L     #pw
          L     #pr
          ==I   
          =     #FULL
          CLR   
          =     #EMPTY
    A7d2: CLR   
          U     L      0.1
          SAVE  
          BE
    Meine Hauptfrage ist eigentlich: Warum werden die Daten nicht durchgeschoben??

    Gruß
    MeisterLampe81
    So viel Technik und nur Probleme!!

  14. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Warum guckst du dir nicht die SCL-Quelle an? Die ist doch dabei.

Ähnliche Themen

  1. Trendberechnung - Algorithmen ?
    Von Onkel Dagobert im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 24.02.2007, 19:32

Lesezeichen

Berechtigungen

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