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

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

Thema: Windsensor an CPU312C in m/s auswerten

  1. #1
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Abend.


    Ich hab mir nun wieder etwas Zeit genommen und mich mit meiner 312C wieder gespielt.....

    Augenblicklich versuche ich einen Windsensor des Herstellers Somfy an einem meiner schnellen Zählereingänge auszuwerten.
    Grundlegend erhalte ich von meinem Sensor pro Umrehung 4 Impulse.
    An meinem HMI würde ich gerne m/s ausgeben.

    Meine ersten Versuche beziehen sich auf die Bausteine SFB47 & SFB48.

    Das Problem ist für mich jedoch, verwende ich den SFB47, so müsste ich den Counterwert nach 1 Sekunde zurücksetzen.
    => kA wie das laufen sollte

    Verwende ich wiederum den SFB48, habe ich einerseits keine Möglichkeit von Hz auf m/s zu rechnen, weiters erhalte ich bei geringen Impulsen keine Hz-Ausgabe.

    Die Errechnung würde wie folgt aussehen:

    Impulse/4 = Impulse pro Sekunde (IpS)

    IpS * 2 * r (6,5cm => 0,065m) * pi = m/s

    Bissal schwer die Rechnung hier zu erklären.

    Sieht jemand eine weitere eventuell viel einfachere Möglichkeit von meinen Impulsen auf meine m/s zu kommen?


    mfg,
    Andy
    Zitieren Zitieren Windsensor an CPU312C in m/s auswerten  

  2. #2
    Registriert seit
    04.04.2006
    Beiträge
    239
    Danke
    31
    Erhielt 61 Danke für 51 Beiträge

    Standard

    Hallo Andy,

    stell in der Hardwarekonfig den Zählereingang auf Frequenzmessen. Die Integrationszeit kannst du bis auf 10 Sekunden hochstellen.

    Mit dem SFB48 kannst du die Frequenz einlesen. Warum du nicht von Hz auf m/s umrechnen kannst verstehe ich nicht.

  3. #3
    Avatar von Andy082
    Andy082 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Morgen Woldo.

    ....dir und allen anderen einen schönen Ostersonntag.

    Den Versuch selbst habe ich bereits getätigt, wobei ich mir eben bei meiner zusammengedachten Umrechnung von Hz auf m/s sowas von gar nicht sicher bin....

    v [m/s] = (2*pi*r[m]*t[s]*f[Hz])/Impulsanzahl = (2*pi*0,065*1*f[Hz])/Impulsanzahl =>

    => v[m/s] = 0,102102*f[Hz]

    ....weshalb ich zu dem Schluss gekommen wäre, es könnte nicht möglich sein. Ich lasse mich aber gerne eines Besseren belehren und ich hoffe das tut auch jemand.

    Die HW-Cfg ist, wie auch von dir empfohlen, eingestellt.

    Mein kleines Programm sieht wie folgt aus:

    Code:
    Netzwerk 1:
          CALL  "FREQUENC" , "Instanz-DB-Frequenz"
           LADDR   :=W#16#300
           CHANNEL :=0
           SW_GATE :=TRUE
           MAN_DO  :=
           SET_DO  :=
           JOB_REQ :=
           JOB_ID  :=
           JOB_VAL :=
           STS_GATE:=
           STS_STRT:=
           STS_DO  :=
           STS_C_DN:=
           STS_C_UP:=
           MEAS_VAL:=DB113.DBD0     "Frequenzerrechnung".Hz
           COUNTVAL:=
           JOB_DONE:=
           JOB_ERR :=
           JOB_STAT:=
     
    Netzwerk 2:
          L     DB113.DBD0     "Frequenzerrechnung".Hz
          DTR                                     //Um Hz in eine Gleitzahl umzuwandeln;
          L     1.021020e-001                     
          *R    
          T     DB113.DBD4     "Frequenzerrechnung".MpS_GZ
          L     DB113.DBD4     "Frequenzerrechnung".MpS_GZ
          RND                                    //Um das Ergebniss in eine Ganzzahl umzuwandeln
          T     DB113.DBD8     "Frequenzerrechnung".MpS
    Nun ergeben sich wieder zwei Probleme:
    Einerseits erhalte ich erst eine Ausgabe an MEAS_VAL:=, wenn sich der Sensor bereits mit einigen Hz dreht, d.h.: langsame Windgeschwindigkeiten würden nicht ausgewertet werden.
    Andererseits bin ich mir bei meinen Umwandlungen von Ganzzahlen in Gleitzahlen (durch meine Umrechnungszahl von 1.021020e-001) auch nicht sicher.

    mfg,
    Andy

  4. #4
    Avatar von Andy082
    Andy082 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Idee

    ....wäre die Verwendung des Zählerbausteins SFB47.

    Code:
         CALL  "COUNT" , "Instanz-DB-Counter"
           LADDR   :=W#16#300
           CHANNEL :=0
           SW_GATE :=TRUE
           CTRL_DO :=
           SET_DO  :=
           JOB_REQ :=
           JOB_ID  :=
           JOB_VAL :=
           STS_GATE:=
           STS_STRT:=
           STS_LTCH:=
           STS_DO  :=
           STS_C_DN:=
           STS_C_UP:=
           COUNTVAL:=DB113.DBD0         //"Frequenzerrechnung".Impulse
           LATCHVAL:=
           JOB_DONE:=
           JOB_ERR :=
           JOB_STAT:=
    Was wäre, wenn ich nun anhand meines Taktmerkers den Wert von COUNTVAL jede Sekunde auf 0 zurücksetze? So würde ich quasi "Impulse pro Sekunde" erhalten und könnte auch kleinere Windgeschwindigkeiten auswerten.
    Mein Problem ist nur, dass ich weder den DINT-Wert in DB113.DBD0 noch jene im Instanzbaustein für SFB48 beschreiben und so auf 0 setzen kann.

    Unter http://support.automation.siemens.co...24&caller=view wir die Möglichkeit aufgezeigt, einen Wert per WR_Count_value (Auftragsanstoß für "Zählwert schreiben") und WR_Job_value (Wert für den jeweiligen Schreibauftrag) in den SFB47 zu schreiben.
    Ich komm aber nicht dahinter, wie ich denn diese Befehle verarbeiten soll.

    Außerdem kommt mir, wenn ich hier wiederum Eigenkritik übe, die ganze Berechnung etwas schwammig vor. Immerhin ist das Löschen des Zählers doch wiederum von der Zykluszeit der SPS abhängig. Somit würden bei hohen Windgeschwindigkeiten einmal mehr, einmal weniger Zählimpulse erfasst werden.

    Eventuell fällt jemandem, der wie ich nicht weiß, wass er denn Sonntags bei strahlendem Sonnenschein machen soll, etwas dazu sein.


    mfg
    Zitieren Zitieren ein anderer Lösungsansatz....  

  5. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Warum machst du dir das Leben eigentlich so schwer?

    Die Frequenzmessung ist doch exakt was du brauchst.
    Zu deinen niedriegen Frequenzen solltest du dir in den Zählerparametern die "Integrationszeit" mal näher betrachten,
    dann klappts auch mit niedrigen Frequenzen ...

    Für deine Rechnung oben, die auf den ersten Blick so i.O. scheint musst du nur noch den Frequenzwert vom SFB geteilt durch 1000 nehmen ... weil der SFB das ganze ja in mHz ausgibt ...

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  6. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Andy082 (13.04.2009)

  7. #6
    Avatar von Andy082
    Andy082 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Abend, Manuel.

    Danke für den Tip....

    Ich habe nun nochmals folgendes versucht:

    HW-Cfg auf Frequenzmessen, Messwert ausgeben: Direkt und einer Integrationszeit von 1000s, alle weiteren Werte wurden auf Standart belassen.

    Heute war bei mir gutes Wetter zum Messen der Windstärke. Soll heißen, dass der Wind lt. Anometer immer schier konstant war.

    Der Grund weshalb ich die Frequenzmessung nicht so ganz begrüsse ist, dass bei geringen sowie normalen Windstärken mal ein Wert an der Variable Meas_Var:= ansteht und mal wieder nicht, obwohl am Eingang stetig ein Impulssignal ansteht.

    Auch mit anderen Integrationszeiten hatte sich das Problem nicht gelöst. (egal ob 10ms, 100ms oder 10000ms)
    Brauchbar ist das Ganze nur, wenn ich "Messwert ausgeben: Mittelwert" aktiviere. Nur lassen sich so keine Windböhen entdecken und meine Raffstore "retten".

    Mit der Messung meiner Impulse per Counter würde ich so selbst kleine Böhen entdecken.

    Die Umrechnung der mHz wurde unter den Tisch gekehrt, da die Anzeige mit 3 Dezimalstellen ausgegeben wird.
    Somit hebt sich dies quasi auf....

    mfg,
    Andy


    P.S.:
    Ich mach mir nicht mein Leben schwer...
    Ich springe einfach gerne mal ins kalte Wasser und versuche mich mit einigen Ideen wieder ans Ufer zu strampeln. Wenn's dann gar nicht mehr geht, lass ich mich hier im Forum "retten".
    Geändert von Andy082 (12.04.2009 um 23:20 Uhr)

  8. #7
    Avatar von Andy082
    Andy082 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Standard

    So, 2:00 Uhr früh ist's und ich denke ich hab die Lösung für mein Problem gefunden.....

    Code:
          
    Netzwerk 1:
        CALL  "COUNT" , "Instanz-DB-Counter"
           LADDR   :=W#16#300
           CHANNEL :=0
           SW_GATE :=M100.7
           CTRL_DO :=
           SET_DO  :=
           JOB_REQ :=
           JOB_ID  :=
           JOB_VAL :=
           STS_GATE:=
           STS_STRT:=
           STS_LTCH:=
           STS_DO  :=
           STS_C_DN:=
           STS_C_UP:=
           COUNTVAL:=DB113.DBD0        //Impulse
           LATCHVAL:=
           JOB_DONE:=
           JOB_ERR :=
           JOB_STAT:=
    
    Netzwerk 2:
          U     M    100.7
          SPB   END
          L     "Frequenzerrechnung".Impulse
          L     102                                 //Rechnungszahl
          *I    
          T     "Frequenzerrechnung".MpS
       END:  NOP   0
    Anhand des Taktmerkers aktiviere und deaktiviere ich mein SW-Gate.
    Bis zur nächsten positiven Flanke bleiben meine Impulse im Zählwert gespeichert. Die Errechnung der "Meter pro Sekunde" wird dann sekündlich durchgeführt und am Panel ausgegeben. So können auch kleinere Böhen erkannt und ausgewertet werden.

    Über Feedback, egal ob positiv oder negativ, würde ich mich freun....

    mfg,
    Andy
    Zitieren Zitieren Lösung gefunden......  

  9. #8
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard

    Hallo Andy082,

    das ist ja interessant.
    Ich möchte auch so etwas machen.
    Kannst du mir nähere Info's zu deinem Windsensor geben (Genaue Bezeichnung und ev. Preis + Lieferant).
    Wo genau schliesst du dann den Windsensor an und kannst du mir das Stück Code posten.
    Wäre dir sehr dankbar.

    Habe auch eine CPU (315-2DP) im Keller hängen zur Hausautomation und möchte die Rollladen runterfahren, sobald ein Sturm kommt (Insektengitterschutz)

    noeppkes ...

  10. #9
    Avatar von Andy082
    Andy082 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Ort
    M nähe Sbg in AUT
    Beiträge
    159
    Danke
    35
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo.

    Da bereits mehrere Anfragen bezüglich dem verwendeten Windsensor ankommen, hier der Link zur Herstellerseite. (hoffe das wird nicht als Werbung gesehen)
    http://www.somfy.at/index.cfm?page=/...O&userpref=A|3
    Der hier gezeigte Sensor ist leider bereits für Funkbetrieb. Habe im Verkauf einen sehr guten Bekannten sitzen und bekam daher ein älteres, liegen gebliebenes Exemplar.

    Grundsätzlich kann man jeden beliebigen Windsensor einsetzen, sofern dieser einen potenzialfreien Kontakt zur verfügung stellt. Ich selbst habe bei meinem das Ganze noch mit einem Transistor entkoppelt, da ich den kleinen Reedkontakt nich unbedingt mit 24V und 2A konfrontieren wollte.

    Die Anbindung erfolgt bei mir über einen meiner schnellen Zähleingänge, daher auch die CPU312C. Ob es bei einer älteren 315-2DP funktioniert kann ich nicht sagen, würde aber meinen, dass es eher recht ungenau wird. Bei hohen Windstärken, ergo schnellen Impulsen am Eingang kommt die CPU sicherlich nicht mehr mit. d.h. es gehen Impulse verlohren und das Ergebnis wird unbrauchbar.

    Was den Code betrifft, so wurde in etwa jener wie zuletzt beschrieben verwendet. Der Aufruf call "COUNT" bezieht sich auf den SFB47.

    mfg,
    Andy

  11. #10
    Registriert seit
    20.02.2005
    Beiträge
    246
    Danke
    3
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Eine Frage habe ich noch:

    kann man das auch mit einem "normalen" Digitaleingang machen?
    Von Eltako gibts da einen Sensor der macht bei 32m/s Wind 94 Pulse/sec also 94Hz.

    Überfordert das einen normalen DI und das Programm dahinter, oder könnte das funktionieren?

Ähnliche Themen

  1. CPU312C Zählen
    Von sps-welt im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.03.2010, 15:03
  2. Windsensor gesucht
    Von klaus1 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 05.11.2009, 21:16
  3. CPU312C und Step7 V5.2 SP1
    Von pascal im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.02.2008, 11:03
  4. Speicherproblem CPU312C
    Von bernd67 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.10.2006, 08:28
  5. Dilomarbeit in China mit CPU312C und FM357-2
    Von Kai9678 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 13.04.2006, 06:10

Stichworte

Lesezeichen

Berechtigungen

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