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

Ergebnis 1 bis 6 von 6

Thema: Amperestundenzähler

  1. #1
    Registriert seit
    19.06.2005
    Beiträge
    56
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat schonmal jemand einen Amperestundenzähler programmiert oder gibt es da vieleicht schon einen fertigen Baustein im Step7 ?
    Zitieren Zitieren Amperestundenzähler  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Lars Bizare
    Hat schonmal jemand einen Amperestundenzähler programmiert oder gibt es da vieleicht schon einen fertigen Baustein im Step7 ?
    Programmiert schon, auf einer S5. Analogeingang liefert Stromistwert. Wenn Anlage (Galvanik) läuft, addiert ein Zeit-OB(13?) in jedem Aufruf den Strom zu einer Gesamtsumme hinzu. Wenn die Summe den Wert für eine Ah überschritten hat, wurde der eigentliche Ah-Zähler um 1 erhöht und von der Summe der genaue Wert für 1 Ah abgezogen.
    Zitieren Zitieren Re: Amperestundenzähler  

  3. #3
    Registriert seit
    19.06.2005
    Beiträge
    56
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Verstehe ich nicht so recht.

    Ich dachte eigentlich das die abgelaufene Zeit mit dem Istwert des Stromes multipliziert werden müsste.

  4. #4
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Lars Bizare
    Verstehe ich nicht so recht.

    Ich dachte eigentlich das die abgelaufene Zeit mit dem Istwert des Stromes multipliziert werden müsste.
    Muß sie auch. Aber wenn die Addition des Stromistwerts in gleichen Zeitabständen erfolgt, steckt die Zeit schon drin:
    z.B. alle 100ms 100A addiert gibt 1000A in einer Sekunde. Wenn du durch 10 teilst, hast du wieder A*Sekunde, mit einer Stelle hinter dem Komma.
    Ein bischen konkreter: Der Analogeingang liefert z.B. 16383 bei 650A
    Eine Ah entspricht nun:

    3600 Sekunden * 10 * 16383
    ---------------------------------- 907366.1538...
    650A

    Der Faktor 10 kommt aus den 10 Additionen pro Sekunde. Jemehr Messungen und Additionen du machst, um so besser ist die Auflösung (bei Ganzzahl-Rechnung) und um so besser wird der wahre Stromverlauf erfasst.

    Da das nicht in ein Wort paßt, braucht es hier ein Doppelwort. Da das auf der S7 kein Problem ist, will ich hier nicht das Vorgehen für S5 erklären.
    Wenn dein Zähler also 907366 überschreitet, ziehst du 907366 ab und addierst eine Ah auf dem Ah-Zähler dazu.

  5. #5
    Registriert seit
    19.06.2005
    Beiträge
    56
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das hilft mir schon viel weiter

    Also nochmal langsam zum Verständnis...

    Angenommen:

    20A //Eingang
    + //alle 100ms
    20A //Eingang
    = DBW 0 //200 nach 1s
    /
    10
    = DBW 4 //20 As
    -------------------------
    DBW4
    *
    3600s
    *
    10
    = DBW 8 // 720000
    -------------------------


    Das würde bedeuten das 720000 = 1 AH entsprechen?

    Oder wäre es nicht einfacher es nach der Formel K = I * T zu berechnen:

    20 A
    *
    0,0027h //10s die abgelaufene Zeit
    = 0,05 Ah


    ??

  6. #6
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ohne deinen Rechengang genau nachzuvollziehen: So wie ich es gemacht habe, hatte ich die geringste CPU-Belastung durch die fortlaufende Berechnung (nur eine Addition und ein Vergleich). Gleichzeitig konnte ich alles in Integer durchführen (S5) und, indem ich für Vergleich und Abziehen nicht den Wert für eine sondern für 1/10 Ah genommen habe (also 90736 im Beispiel), ereeichen, daß ich im Ah-Zähler Zehntel Amperestunden hatte. Diese werden als Ganzzahl an ein OP5 übergeben, daß dann per Konfiguration den Dezimalpunkt einfügt.
    Generell sind Integer-Operationen auch auf der S7 schneller als Gleitkomma-Operationen.

    Mit Gleitkomma kannst du natürlich im OB35 rechnen:
    Summe:=Summe+20A*0.1Sekunden. Dann hast du die Summe in As immer korrekt. Wenn du die Anzeige aber in Amperestunden willst, teilst du im Hauptprogramm immer noch durch 3600.
    Das kannst du theoretisch vermeiden indem du vorher aus den Faktoren 0.1 und 1/3600 einen Faktor errechnest: 0.1/3600=2.77e-5.

    Im OB35 rechnest du dann:
    Summe:=Summe+20A*2.77e-5.Stunden

    Deine Gleitkomma-Zahlen haben 23 Mantissen-Bits. Das entspricht etwa 7 Zehnerpotenzen. So ab 100 oder 1000 Ah wird dann der Zählerstand nicht mehr höher, weil die zu addierende Zahl unterhalb der Rechengenauigkeit für die Summe liegt.

    Da kannst du dir wieder helfen, indem du die A nicht 10 mal pro Sekunde sondern nur noch alle 10 Sekunden summierst. Aber damit erfaßt du Schwankungen im Strom weit weniger genau...

  7. Folgender Benutzer sagt Danke zu Zottel für den nützlichen Beitrag:

    orion (19.10.2011)

Lesezeichen

Berechtigungen

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