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

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 36 von 36

Thema: Werte in DB archivieren bzw schieben

  1. #31
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Aber wie gesagt, SFC20 geht nur, wenn der neueste Meßwert unten/hinten steht.
    nicht unbedingt, man kann ja zweimal kopieren, in einen tempDB auslagern und beim zurückkopieren nur die 99 werte übernehmen ... aber zykluszeittechnisch sollte das aufs selbe wie das shiften rauskommen ... man kann es allerdings in KUP machen...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    MK_Auto (21.10.2009),PN/DP (22.10.2009)

  3. #32
    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

    erstmal an alle die mir geholfen haben ja der letzte Wert muss oben stehen Zeit denke ich ist relativ es werden mit ner 313c nur die werte ausgelsen und eine bewegung und nen paar Lampen mehr macht das ding nicht ok es sind 3 mal 100 werte aber sollte funzen
    nein mit er Hochsprache habe ich mich leider noch nicht beschäftigt
    Micha
    Zitieren Zitieren Also Danke  

  4. #33
    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

    danke der baustein vom kai hat mir sehr geholfen habe noch abschließend ne frage weiß ist die falsche rubrik aber bekomme ich die Daten auf einen schlag ins OP 77B
    oder Variable für Variable
    Micha
    Zitieren Zitieren oki  

  5. #34
    Registriert seit
    25.08.2003
    Beiträge
    332
    Danke
    46
    Erhielt 54 Danke für 46 Beiträge

    Lächeln

    Zitat Zitat von PN/DP Beitrag anzeigen
    Der SFC20 kopiert immer aufsteigend und benötigt nur etwa ein siebtel der Zeiteiner Schleife.
    Hi PN/DP,

    mal so 55% Offtopic:

    Wie macht der SFC20 das eigentlich in 1/7 der Zeit einer Schleife?
    Ist in dem SFC nicht auch nur "normaler" AWL-Code? Wenn ja, AWL ist ja bekanntlich sehr Maschinencode-nahe. Hmmm, wie geht's denn dann noch schneller? Grübel... Werde ich heute wohl nicht schlauer ins Bett gehen können...

    Gruß
    Flinn

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

    MK_Auto (21.10.2009),vierlagig (20.10.2009)

  7. #35
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Flinn Beitrag anzeigen
    Wie macht der SFC20 das eigentlich in 1/7 der Zeit einer Schleife?
    Ist in dem SFC nicht auch nur "normaler" AWL-Code? Wenn ja, AWL ist ja bekanntlich sehr Maschinencode-nahe.
    Vielleicht hat der in S7-300 verbaute Prozessor einen Blockmove-Befehl im Microcode (MOVSB)?
    Vielleicht arbeitet die SFC20 auch mit Speicheradressen in einem Flat-Modell und muß nicht für
    jeden Speicherzugriff die DBx.DBWy-Adresse auf die tatsächliche Speicheradresse umrechnen?

    Auch AWL ist nur eine (Hardware-nah aussehende) Interpretersprache. Der SFC20 ist aber schon
    in echtem Maschinencode in der Firmware der CPU enthalten.

    Das für uns Programmierer zugängliche AR1-Register enthält nur den "halben" Pointer (nur den
    Offset zum Beginn des DB). Der Prozessor muß bei jedem AWL-Zugriff auf den Speicher den Wert im
    AR1 prüfen, die Nummer des aktuell geöffneten DB (Selektor) ermitteln, dann aus einer Tabelle die
    Anfangsadresse dieses DB auslesen und zum Offset aus dem AR1 addieren. Der SFC20 macht diese
    Prüfung und Berechnung nur einmal.

    Ich hatte mal für eine Thema, wo es um das Umspeichern von 2879 INT-Werten in einem FIFO ging,
    auf einer echten CPU 315-2PN/DP (315-2EH13) verschiedene Programmversionen programmiert und
    die benötigte Bearbeitungszeit gemessen: jede Minute einen Datensatz aufzeichnen
    Code:
    Normal verständliche AWL-Schleife    : 19,3ms
    Optimierte Schleife                  : 16,2ms
    2 INT-Werte gleichzeitig umspeichern :  8,7ms
    mit SFC20 umspeichern                :  2,7ms
    Daher kommt meine Aussage, daß der SFC20 nur ein siebtel der Bearbeitungszeit einer in AWL
    programmierten Programmschleife benötigt.

    Manche Sachen muß man einfach in der Praxis ausprobieren, um solche Erkenntnisse zu gewinnen.

    Gruß Harald
    Geändert von PN/DP (22.10.2009 um 03:19 Uhr)
    Zitieren Zitieren Benchmark  

  8. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    Flinn (22.10.2009),funbiker69 (17.03.2010)

  9. #36
    Registriert seit
    25.08.2003
    Beiträge
    332
    Danke
    46
    Erhielt 54 Danke für 46 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    CPU 315-2PN/DP


    Vielen Dank für die interessante Info, PN/DP.
    Jetzt erklärt sich auch dein Nickname.

    Gruß
    Flinn

Ä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
  •