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

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 53

Thema: Linearisierung der Messwerte / Gauß'sche Glockenverteilung / CPK-Werte / S7-400

  1. #21
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Wegen der 416er CPU: Wieso, die ist doch eigentlich mit wenigen mS Zykluszeit doch recht fit, gerade für schnelle Abläufe ? Klar muss sie in der Anlage auch noch etwas anderes machen, als die Messwete verarbeiten, aber trotzdem die 400er steuern ja ganze Produktionsstraßen problemlos. Mein Sensor fährt etwa 10 Messwerte ab pro Sekunde, das sind 100mS für nen Messwet. Sollte reichen ?
    Hast Du schon mal eine PCS7 Anlage gebaut?

    Bei unseren PCS7-Anlagen (Prozessautomatisierung) ist ne 416 in der Regel schon sehr ausgelastet. Und selbst ne 417 hat bei Verwendung der APL schon ne Menge zu tun. Das liegt einfach an der Größe der Bibliotheken. Unter 100ms Zykluszeit kommt bei uns selten eine CPU. Durch die Weckalarme kann man aber etwas Code in nen schnellen (50ms) legen und etwas in nen langsamen (500ms).

    Ob bei Dir jetzt noch was reinpasst hängt einfach davon ab, was schon drin ist und wie aufwändig Deine Statistikberechnung ist und wie schnell die Berechnungen ausgeführt werden müssen.

    Gruß.

  2. #22
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Code:
    // Häufigkeit berechnen -----------------------------------------------------------------------------------------------
       // letzte Kurve löschen
       FOR i:= 1 TO cCheck_max BY 1 DO 
          Kurven_Werte.Haeufigkeit [i] := 0 ;
       END_FOR ;    
       // Schrittweite für das Häufigkeits-Array errechnen
       // -> aus maximalem und mininimalem Wert der Quelldaten
       intern.Raster_Haeufigkeit := (Kurven_Werte.Haeufigkeit_max_XSkala - Kurven_Werte.Haeufigkeit_min_XSkala) / INT_TO_REAL(cCheck_max) ;
       // Quelldaten durchsuchen und feststellen in welches Häufigkeits-Raster die Werte fallen
       FOR i:= 1 TO cCheck_max BY 1 DO 
          h_Wert := Kurven_Werte.Trend [i] - Kurven_Werte.Haeufigkeit_min_XSkala ;
          j := REAL_TO_INT(h_Wert / intern.Raster_Haeufigkeit) ;
          IF (j < 1) THEN j := 1 ; END_IF ;
          IF (j > cCheck_max) THEN j := cCheck_max ; END_IF ;
          Kurven_Werte.Haeufigkeit [j] := Kurven_Werte.Haeufigkeit [j] +1 ; 
       END_FOR ;    
       Kurven_Werte.Haeufigkeit_max_YSkala := Int_to_Real(cCheck_max) ;
       
       // Scheitelpunkt der Häufkeitskurve bilden
       intern.Haeufigkeit_Peak := 0 ;
       FOR i:= 2 TO cCheck_max-1 BY 1 DO 
          IF (Kurven_Werte.Haeufigkeit [i] > intern.Haeufigkeit_Peak) THEN intern.Haeufigkeit_Peak := Kurven_Werte.Haeufigkeit [i] ; END_IF ;
       END_FOR ;    
      
       // min.-Anstiegs-Gradient der Häufkeitskurve bilden  (linke Seite)
       intern.Haeufigkeit_minGrad := 0.0 ;
       FOR i:= 2 TO cCheck_max-1 BY 1 DO 
          IF (Kurven_Werte.Haeufigkeit [i] > (intern.Haeufigkeit_Peak / 3)) THEN
             intern.Haeufigkeit_minGrad := (INT_TO_REAL(i) * intern.Raster_Haeufigkeit) + Kurven_Werte.Haeufigkeit_min_XSkala ; 
             EXIT ;
          END_IF ;
       END_FOR ;    
       
       // max.-Anstiegs-Gradient der Häufkeitskurve bilden  (rechte Seite)
       intern.Haeufigkeit_maxGrad := INT_TO_REAL(cCheck_max) ;
       FOR i:= cCheck_max-1 TO 2 BY -1 DO 
          IF (Kurven_Werte.Haeufigkeit [i] > (intern.Haeufigkeit_Peak / 3)) THEN
             intern.Haeufigkeit_maxGrad := (INT_TO_REAL(i) * intern.Raster_Haeufigkeit) + Kurven_Werte.Haeufigkeit_min_XSkala ; 
             EXIT ;
          END_IF ;
       END_FOR ;  
       
       // wo liegt die Kurve im Auswertebereich und wie "breit" ist sie  
       Kurven_Werte.Haeufigkeit_Streuung := intern.Haeufigkeit_maxGrad - intern.Haeufigkeit_minGrad ;
       Kurven_Werte.Haeufigkeit_ScheitelLage := (Kurven_Werte.Haeufigkeit_Streuung / 2.0) + intern.Haeufigkeit_minGrad ;
    Hallo Draco,
    hier mal ein Code-Beispiel von mir, so wie ich es verwende - ich hoffe, du kannst damit etwas anfangen - sonst einfach Rückfragen ...

    Bei deiner Problematik mit der Kurven-Linearisierung bin ich mir nicht sicher, ob ich es richtig verstanden habe.
    Du scannst mehrfach den gleichen Bereich ab und speicherst die Daten als eine Art Profilkurve f(x) ab.
    Nun möchtest du diese "mehreren" Kurven zu einer neuen kumulierten (und ggf. geglätteten) Kurve umrechnen ?

    Ansonsten kann ich die hier geäußerten Bedenken bezüglich der Fähigkeit einer SPS derartige Aufgaben zu bewältigen nicht teilen.
    Es ist natürlich hierbei immer auch noch eine Frage, was die SPS sonst noch zu tun hat ...

    Gruß
    Larry

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

    Draco Malfoy (23.06.2014)

  4. #23
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    um bei Mathlab zu bleiben, du hattest doch über einen IPC nachgedacht, dann nimm doch
    gleich die Soft SPS mit rein. Zusätzlich hat Siemens ein ODK für Mathlab. Preiswerter und
    Leistungsfähiger als eine 416 ist der der IPC eh. Irgenwo hatte der JesperMP auch mal ein über
    ein preiswertes Tool gepostet womit du deine Kurve auch darstellen kannst.
    Hmm, früher gabs nen Matlab AddOn auch für PCS7 (dass lief aber m.M. nach auf nem IPC und nicht innerhalb der WinAC). Bei den neuen PCS7 Versionen bin ich mir da nicht sicher.

    @rn Du meinst das WinAC Target? http://support.automation.siemens.co...ew/de/56969417


    Zum WinAC, das gibt's als mEC, als Microbox für PCS7 oder auch auf dem BOX PC 627C, aber ob es generell auf jedem IPC für PCS7 freigegeben ist, würde ich auch erstmal prüfen, ich denke eher nein.

    Gruß.

  5. #24
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ansonsten kann ich die hier geäußerten Bedenken bezüglich der Fähigkeit einer SPS derartige Aufgaben zu bewältigen nicht teilen.
    Es ist natürlich hierbei immer auch noch eine Frage, was die SPS sonst noch zu tun hat ...
    Die PCS7-SPSn sind in der Regel ziemlich voll, zumindest wenn es sich um reale Anlagen handelt und nicht um ne akademische Labor-Versuchsanlage... Das liegt einfach an den dicken PCS7-Bibliotheken (PTE400 oder APL egal)... und daran, dass PCS7 in der Regel für große Anlagen verwendet wird, und nicht für ne kleine Minimaschine.

    Wenn jetzt für die Statistikberechnung alle 100ms ausreicht, wird es sicherlich klappen. Bei 10ms und langem Code wird's schon schwieriger. Also wie Du und auch ich ja schon geschrieben haben, es kommt drauf an, wie aufwändig die Berechnung ist.

    Gruß.

  6. #25
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    741
    Danke
    51
    Erhielt 35 Danke für 29 Beiträge

    Standard

    Moin !

    Bei deiner Problematik mit der Kurven-Linearisierung bin ich mir nicht sicher, ob ich es richtig verstanden habe.
    Du scannst mehrfach den gleichen Bereich ab und speicherst die Daten als eine Art Profilkurve f(x) ab.
    Nun möchtest du diese "mehreren" Kurven zu einer neuen kumulierten (und ggf. geglätteten) Kurve umrechnen ?
    Nun, sagen wir mal ich scanne einen Messwert f(x) an der Stelle x. Jetzt ist es so, daß die Messgröße keinen linearen Zusammenhang zu dem Sensorsignal aufweist. Daher werden die Kalibrierwerte auf den Plan gerufen, welche insgesamt eine Korrelationsgerade (Methode der kleinsten Quadrate) ergeben. Anhand dieser Geraden wird ausgewählt, welcher Realwert F(x) meinem gemessenen Fiktivwert f(x) entspricht.

    Jetzt habe ich aber diese eine Stelle x nicht 1 mal, sondern Y mal abgefahren, und alles zusammen ergibt natürlich eine Gauß'sche Verteilung, wo möglicherweise auch ein Paar "krumme" Werte drin liegen. Diese werdem auf meinem vorher gewählten Sicherheitsinterwall (sagen wir mal, ro = 5%) ausgefiltert und die restlichen 95% gemittelt und dem Kunden in einem Balken dargestellt. Wenn er aber diesen Balken anklickt, so möchte er aber die zu dieser Stelle X zugehörige Glockenkurve mit allen Y gemessenen Werten und deren Verteilung sehen.

    Die Idee mit einem separaten IPC + MathLab ist in der Tat nicht völlig abwegig, allerdings müsste man hier schon sowohl die Lizenzkosten als auch den realen Implementierungsaufwand korrekt rechnen. Wie heißt denn dieses Verbindungsgateway zwischen PCS 7 und dem Mathlab ? Da weiß ich noch gar nicht so viel von.

    Wegen Kostenlage: 400er gibts derzeit in guter Kondition bei Händlern für wenig Geld, ich muss nicht alles neu von Siemens kaufen. Und möglicherweise haben einige Kollegen ja schon etwas rumliegen.

    Was da sonst noch laufen soll: Verfahrbausteine für ne gewisse Postionierungsgeschichte + möglicherweise Überwachung vom Extrusionsvorgang.

  7. #26
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Nun, sagen wir mal ich scanne einen Messwert f(x) an der Stelle x. Jetzt ist es so, daß die Messgröße keinen linearen Zusammenhang zu dem Sensorsignal aufweist. Daher werden die Kalibrierwerte auf den Plan gerufen, welche insgesamt eine Korrelationsgerade (Methode der kleinsten Quadrate) ergeben. Anhand dieser Geraden wird ausgewählt, welcher Realwert F(x) meinem gemessenen Fiktivwert f(x) entspricht.
    Das heißt, du ermittelst für jeden eingehenden (gemessenen) Wert wo er zu deiner Vorgabe-Kurve liegt ...?
    Dein Ergebnis (ungeachtet von Linearisierungen und Anpassungen) müßte dann also eine Art Gauß-Hügelkette sein (also eine Anzahl n Gauß-Kurven, die abhängig von der x-Position hintereinander liegen). Innerhalb dieser Kurven willst du dann den jeweiligen Peak ermitteln (vermute ich mal) um daraus die wahrscheinlichste Ausgabe-Kurve zu bestimmen - passt das so in etwa ?

    Von wie vielen x und y-Werten sprechen wird denn hier pro Messung (also pro 1 Fahrt) ?

    Gruß
    Larry

  8. #27
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    741
    Danke
    51
    Erhielt 35 Danke für 29 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Das heißt, du ermittelst für jeden eingehenden (gemessenen) Wert wo er zu deiner Vorgabe-Kurve liegt ...?
    Dein Ergebnis (ungeachtet von Linearisierungen und Anpassungen) müßte dann also eine Art Gauß-Hügelkette sein (also eine Anzahl n Gauß-Kurven, die abhängig von der x-Position hintereinander liegen). Innerhalb dieser Kurven willst du dann den jeweiligen Peak ermitteln (vermute ich mal) um daraus die wahrscheinlichste Ausgabe-Kurve zu bestimmen - passt das so in etwa ?
    Sehr richtig, genau so möchte ich verfahren.
    Von wie vielen x und y-Werten sprechen wird denn hier pro Messung (also pro 1 Fahrt) ?
    Eine Fahrt sind etwa 28 Messungen (je nach Rollenbreite). Eine Rolle läuft ca. 3,5h und pro Fahrt braucht mein Sensor 3-4 Sekunden etwa. Könnten schlimmstenfalls auch 5-6 sein.
    D.h. es sind etwa 4200 Messungen je eine x Position. Wobei die müssen natürlich nicht einzeln dargestellt werden.

  9. #28
    Registriert seit
    13.06.2007
    Ort
    Amberg
    Beiträge
    89
    Danke
    15
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Hallo Draco,

    ich glaube die gleiche/ähnliche Aufgabe hatte ich bereits vor ein paar Jahren bei einem Kunden gelöst,
    handelt es sich vielleicht um Flachfolienextrusion und Profilmessung?

    Die mathematischen Aufgaben hatte ich in meinem Visu Fontend ausgelagert (Korrelationsgerade und cpk Werte), dies war ein IPC, der Code dazu wurde damals in Pascal geschrieben, dieser sollte relativ einfach in SCL portierbar sein,
    nur habe ich bedenken diese Berechnungen in einer SPS ablaufen zu lassen, da es sich um mathematische Operationen handelt, die in einer "Schleife, FOR TO NEXT" laufen müssen.

    Eine normale SPS (S7-400er) ist nicht besonders schnell bei mathematischen Operationen, und wenn man diese Aufgaben in der SPS programmiert, steigt bei Berechnung die Zyklus Zeit immens an.

    Falls DU Interesse an den Code (Biblio) in Pascal für die Funktionen hast kurze Meldung.

  10. #29
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Die Idee mit einem separaten IPC + MathLab ist in der Tat nicht völlig abwegig, allerdings müsste man hier schon sowohl die Lizenzkosten als auch den realen Implementierungsaufwand korrekt rechnen. Wie heißt denn dieses Verbindungsgateway zwischen PCS 7 und dem Mathlab ? Da weiß ich noch gar nicht so viel von.

    Wegen Kostenlage: 400er gibts derzeit in guter Kondition bei Händlern für wenig Geld, ich muss nicht alles neu von Siemens kaufen. Und möglicherweise haben einige Kollegen ja schon etwas rumliegen.

    Was da sonst noch laufen soll: Verfahrbausteine für ne gewisse Postionierungsgeschichte + möglicherweise Überwachung vom Extrusionsvorgang.
    Ist das ne Neuanlage welche Du komplett in PCS7 umsetzen sollst??? Oder ist PCS7 nicht zwingend? Wenn Du auch noch ne komplette PCS7 Anlage ohne entsprechende Kenntnisse aufbauen sollst dann viel Erfolg. Das ist überhaupt nicht mal eben gemacht!

    Bei PCS7 sollte man nix basteln, da gibt es genaue Regeln, was, wie und warum gemacht werden muss. Ohne Einarbeitung wird das nix ordentliches. Da hast Du mal noch ne schöne Nebenbaustelle aufgemacht.

    Welche Matlabkopplung funktioniert und zugelassen ist, hängt von der verwendeten PCS7-Version ab.


    viel Spass.

  11. #30
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Wie heißt denn dieses Verbindungsgateway zwischen PCS 7 und dem Mathlab ? Da weiß ich noch gar nicht so viel von.
    Matlab/Simulink DDE Client: http://www.automation.siemens.com/w2...glish_2010.pdf Seite 29

    für PCS7 8.x gibt's das aber scheinbar nicht mehr. Also nur bis 7.1

    Gruß.

Ähnliche Themen

  1. Linearisierung einer Regelstrecke
    Von toto45 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.01.2012, 09:29
  2. Min/Max Werte der Spannungsversorgung
    Von eYe im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 1
    Letzter Beitrag: 13.01.2009, 23:08
  3. Aufzeichnung der Werte
    Von rumkiker im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 24.02.2007, 17:29
  4. FB 58 Genaue Definition der einzelnen Werte
    Von Lars Bizare im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.11.2005, 10:37
  5. Laden der Bausteine funktioniert nicht! (S7-400)
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 09.08.2005, 16:14

Lesezeichen

Berechtigungen

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