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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 36

Thema: Werte in DB archivieren bzw schieben

  1. #21
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MK_Auto Beitrag anzeigen
    Hallo zusammen suche eine einfache Lösung um einen wert in den DB zu schreiben und bei dem nächsten wert immer einen weiterzuschieben also das die Werte praktisch gespeichert werden.
    Zitat Zitat von MK_Auto Beitrag anzeigen
    Also Wert kommt geht sage ich mal ins datenword 0
    2 ter Wert kommt erster ins word 2 und der neue ins 0
    usw
    Du könntest mit einem FIFO-Speicher arbeiten:

    http://www.sps-forum.de/showpost.php...73&postcount=3

    http://www.sps-forum.de/showpost.php...75&postcount=4

    Gruß Kai

  2. Folgende 2 Benutzer sagen Danke zu Kai für den nützlichen Beitrag:

    Fabix (10.11.2009),MK_Auto (21.10.2009)

  3. #22
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich vrstehe das irgendwie nicht ist vieleicht schon zu spät heute danke erstmal werde mich morgen damit beschäftigen
    Zitieren Zitieren Ok  

  4. #23
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von MK_Auto Beitrag anzeigen
    ich muss immer in der lage sein die 100 Werte auszudrucken daher in DB und dann über Panel im Protokol einlesen und drucken
    Wenn Du Dein Panel mit VBScript programmieren kannst, dann könntest Du den FIFO-Speicher auch direkt als VBScript im Panel programmieren.

    Siehe dazu das nachfolgende Programmbeispiel für WinCC flexible:

    http://www.sps-forum.de/showthread.php?t=22745

    Gruß Kai

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

    MK_Auto (19.10.2009)

  6. #24
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    habe mich mit der Materie noch nicht beschäfzigt geht das beim op77b ?? und kann man das auch drucken ??
    Gruß Micha
    Zitieren Zitieren Danke Kai  

  7. #25
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Das OP77B kann man leider nicht mit VBScript programmieren.

    Gruß Kai

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

    MK_Auto (21.10.2009)

  9. #26
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also hilft es doch nur alle 100 Variabeln im Protokoll einzutragen
    Zitieren Zitieren Danke Kai  

  10. #27
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    MW hatte im chat grad den FC90(??sicher war er sich auch nicht) ins feld geworfen ... der kann das schieberegister wohl auch in KUP
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    MK_Auto (21.10.2009)

  12. #28
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    Wenn du in AWL nicht so fit bist, kannst du auch einen fertigen Baustein aus der Siemens Lib nehmen, dass ist der FC90 "WSR" aus der Standart Library->TI-S7 Converting Blocks. Der stellt die von dir benötigte Schiebefunktion bereit.

    Ja der VL war wieder schneller oder ich zu langsam
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

  13. Folgender Benutzer sagt Danke zu MW für den nützlichen Beitrag:

    MK_Auto (21.10.2009)

  14. #29
    Registriert seit
    17.10.2009
    Beiträge
    37
    Danke
    4
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo Micha,

    ich weiß nicht ob Du in SCL fit bist. Mit 20 Zeilen Code wäre das Problem sicher
    abgeschlossen. Sogar noch mit einem Zeitstempel zu dem Wert und einem
    zusätzlichen Bit das nach 100 Werten gesetzt wird und was Du dann in Deinem
    Panel, als Bitmeldung, zum autom. Ausdruck des Protokolls verwenden kannst.

    Hier die Grundidee :

    VAR
    Datenpuffer : ARRAY[0..99] OF
    STRUCT
    Wert : INT ; //Format evtl. ändern
    Datum : DATE_AND_TIME ; //mit READ_CLK
    END_STRUCT ;
    END_VAR

    Der zugehörige Instanzdatenbaustein mit 100 Indexvariablen wird dann automatisch angelegt.

    Jetzt muß man einmal eine FOR-Schleife durchlaufen und die Werte jeweils eine Indexvariable nach vorn kopieren und den neuen Wert in das letzte Fach eintragen.
    In der FOR-Schleife dann eine Varable jeweils um +1 erhöhen und bei 100, ein Bit zum
    Ausdrucken des Protokolls setzen und vom Panel wieder zurücksetzen.

    Gruß fmbux

  15. Folgender Benutzer sagt Danke zu fmbux für den nützlichen Beitrag:

    MK_Auto (21.10.2009)

  16. #30
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Micha,

    Zitat Zitat von MK_Auto Beitrag anzeigen
    also der zu letzt gemessene muss oben stehn
    Zitat Zitat von MK_Auto Beitrag anzeigen
    dachte halt es gibt ne funktin wo man die int im DB komplett verschieben kann
    Muß der zuletzt gemessene Wert unbedingt oben = am Anfang des Array stehen?

    Üblicherweise steht am Anfang der älteste Wert und am Ende der neueste Wert.
    Dann sind die Meßwerte historisch richtig sortiert, so daß das Array auch gleich
    als Trendkurve ausgegeben werden kann (ältester=Links, neuester=Rechts).

    Und dann kann man statt der Schleife eine fertige Funktion für das Umkopieren der
    99 Meßwerte vor dem Einspeichern des neuen Wertes benutzen: SFC20 "BLKMOV"
    Der SFC20 kopiert immer aufsteigend und benötigt nur etwa ein siebtel der Zeit
    einer Schleife.
    Code:
          U     #Trigger
          SPBN  END
    
          CALL SFC20
           SRCBLK :=P#DB100.DBX 2.0 WORD 99
           RET_VAL:=#Temp_Int
           DSTBLK :=P#DB100.DBX 0.0 WORD 99
    
          L     #Messwert
          T     DB100.DBW 198
    
    END:  NOP   0
    Aber wie gesagt, SFC20 geht nur, wenn der neueste Meßwert unten/hinten steht.

    Gruß Harald
    Zitieren Zitieren Umkopieren mit SFC20 "BLKMOV"  

  17. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    MK_Auto (21.10.2009)

Ähnliche Themen

  1. CodeSys Verschiedene INT Werte in einen Ausgang schieben
    Von c-teg74 im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 08.08.2011, 07:22
  2. Werte in DB schieben (FUP)
    Von anne im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.03.2011, 11:42
  3. Werte von SPS zu SPS schieben
    Von Blackhawk89 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.10.2010, 19:00
  4. DateandTime schieben
    Von MK_Auto im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 21.10.2009, 17:02
  5. Schieben von Bits
    Von Florian im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 31.07.2006, 15:19

Lesezeichen

Berechtigungen

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