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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 37

Thema: Speichern von Daten in SCL

  1. #11
    Karlson ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für die schnellen und präzisen Antworten. Jetzt hätte ich noch zwei Fragen. Wie kann ich die Zeit einstellen wann ein FC/FB aufgerufen wird und wie kann ich aus konstanten eine neue konstante berechnen? Werden die konstanten für die Berechnung im OB definiert oder im FC? Könntet Ihr mir bitte noch für die zwei Fragen ein Beispiel zeigen? Vielen Dank nochmal Ihr seit mir eine riesengroße Hilfe.

  2. #12
    Karlson ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Leider habe ich im Handbuch nichts gefunden wie man aus 2 konstanten eine neue konstante kreiert. Ich bin für jeden Ratschlag damit die Programmierung ordentlich aussieht sehr dankbar

    was ich bis jetzt gemacht habe:

    Code:
    DATA_BLOCK DB1
    STRUCT
    a:REAL :=2.0;                  
    b:REAL := 2.5; 
    END_STRUCT
    BEGIN
    END_DATA_BLOCK
    
    FUNCTION ab: REAL
    VAR_TEMP
    a:REAL;
    b:REAL;
    END_VAR
    a:=DB1.a;
    b:=DB1.b;
    ab:=a+b;     
    END_FUNCTION
    /////////////////////////////////////////////////////////////////
    ORGANIZATION_BLOCK OB1
    
    VAR_TEMP
        info : ARRAY[0..19] OF BYTE;
        a:REAL;
    END_VAR
    BEGIN
    
    a:=ab();
    
    END_ORGANIZATION_BLOCK
    Die Berechnung Funktioniert Vielen Dank für euren Tipps. Jedoch stellt sich noch die Frage wie kriege ich es eingestellt das a im OB nur einmal berechnet wird?
    Geändert von Karlson (28.07.2012 um 17:39 Uhr)

  3. #13
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.582
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard

    Der Tip wurde ja schon gegeben.
    Deklariere das Taktmerkerbyte in den Eigenschaften der SPS.
    Um den Aufruf nur 1x zu machen benötigst Du noch eine Flankenauswertung.
    In SCL gibt es keinen fertigen "Baustein" dafür, wie in AWL,KOP,FUP.

    Flankenauswertung in SCL:

    Code:
    //Flankenauswertung Taktsignal
    FP_Takt := "Takt" AND NOT HM_Takt;
    HM_Takt := "Takt";
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  4. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.297
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Zitat Zitat von Karlson Beitrag anzeigen
    Leider habe ich im Handbuch nichts gefunden wie man aus 2 konstanten eine neue konstante kreiert.
    Wozu brauchst Du Deine "Konstanten"? Kannst Du die Frage präzisieren?
    Konstanten kannst Du direkt in Berechnungen einsetzen, z.B.: Ergebnis := (a * 3 + b) / 100 ;
    "Konstanten", welche zur Programmlaufzeit berechnet werden, sind keine Konstanten, sondern gewöhnliche Variablen.

    wie kriege ich es eingestellt das a im OB nur einmal berechnet wird?
    Wozu? Das macht der CPU nichts aus, a in jedem Zyklus neu zu berechnen. Dann läßt sich der Code sogar besser beobachten.

    Wenn es denn unbedingt nur einmal sein muß (wenn z.B. die Werte zur Berechnung in nur einen Zyklus gültig sind), dann gibt es da viele Möglichkeiten: Du kannst Dir ein Signal erzeugen, was nur 1 Zyklus lang aktiv ist, z.B. mit einer Flankenauswertung und die Berechnung dann nur bei aktivem Signal ausführen. Oder mit einem Hilfsmerker Dir merken, daß Du die Berechnung schon einmal ausgeführt hast und den Du vor einer Berechnung löschst. Oder einen Hilfsmerker benutzen, der die Berechnung anfordert und nach der Berechnung gelöscht wird. Oder ...

    Dir ist sicherlich klar, daß Du den Wert in a erst verwenden kannst, nachdem Du a einen Wert zugewiesen hast. (Du willst bestimmt nicht mit zufälligen Werten rechnen.) Weil Du a als VAR_TEMP deklariert hast, MUSST Du a aber in genau dem Zyklus berechnen, in dem a verwendet werden soll. Das Ergebnis älterer Berechnungen ist ungültig, weil "vergessen". VAR_TEMP haben kein Gedächtnis von einem zum nächsten Zyklus. Der Wert in temporären Variablen vor einer Zuweisung ist als zufällig bzw. unbestimmt zu betrachten.
    Soll sich a Werte für länger als den aktuellen Zyklus merken, dann muß a eine statische Variable sein (Merker oder Datenbaustein-Variable).


    Bis wann mußt Du denn Deine Datenspeicherung fertig haben? Mußt Du es unbedingt selbst und in SCL programmieren? Mit Deinen SCL- und SPS-Kenntnissen könnte das noch eine ganze Weile dauern bis zum fertigen Programm.

    Es wäre ganz gut, wenn Du Deine Aufgabe mal genauer erklärst und die Fragen aus den Beiträgen #6 und #2 beantwortest. Dann könnten wir Dir helfen bei der Entscheidung, ob ein fertiges externes Programm vielleicht ausreichend wäre oder ob Du das Mitschreiben unbedingt in der CPU machen mußt und wie das Programm dann aussehen müsste. Normalerweise fängt man erst dann an zu programmieren, wenn die Aufgabenstellung und der Lösungsweg klar sind.

    Schönen Sonntag.

    Harald


    PS:
    Beispielprojekt: Wie kann ich in S7-SCL einen Flankenmerker programmieren?
    Wobei niemand wirklich einen selbstgeschriebenen Baustein für eine Flankenerkennung nutzt, womöglich noch einen FB. Sowas macht man direkt im Code, siehe Beitrag #13
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #15
    Karlson ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank nochmal für eure Tatkräftige Unterstützung.

    Es geht genau um eine Prädikate Regelung.
    Die Regelung wurde mit Matlab und einer Messdatenerfassungskarte Problemlos realisiert, jedoch ist dies nicht Industrie tauglich . Daher auch SCL und mein erster Ansatz alles in den OB zu programmieren. Die Regelung in einem einzelnen OB funktioniert auch (auch wenn die Programmierung nicht schön ist). Jedoch muss ich die Werte die ich ausgebe/einlese loggen um auch grafisch zu sehen das die Regelung läuft.

  6. #16
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von Karlson Beitrag anzeigen
    ...jedoch ist dies nicht Industrie tauglich .
    sorry, hier nochmal der Hinweis auf die Hilfe und die Handbücher. Falls Du wirklich einen "industrietauglichen" Reglerbaustein entwickeln willst, wirst Du Dich erstmal mit den Grundlagen der SPS-Programmierung befassen müssen. Irgendeinen theoretischen Regelalgorithmus aus Matlab in SCL umzusetzen macht es noch lang nicht industrietauglich!
    Ausserdem sind für den praktischen Einsatz noch ne Menge zusätzlicher Dinge einzubauen, die mit dem eigentlichen Regelalgorithmus nix zu tun haben, Bedienmöglichkeit aus der Visu, Hand/Automatikumschaltung, Nachführung im Handbetrieb und und und... Da mal am besten jemanden fragen der "industrietaugliche" Praxiserfahrung hat, sonst wirds wie so oft ne schöne aber nie eingesetzte Uni-Praktikumsarbeit...

    Das Loggen von Daten macht man üblicherweise nicht in der SPS sondern in ner externen Leittechniksoftware (z.B. WinCC...) da heisst es dann Trend oder Archiv.

    Gruß und noch schönen Sonntag.

  7. #17
    Karlson ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo ducati, vielen Dank für deinen Tipp aber mir ist schon bewusst das ich damit nicht in die industrie gehen kann. Jedoch wäre es trotzdem schön zu wissen wie man die Daten loggen kann abgesehen von WinCC und co. Die Auflage die mir gemacht wurde ist, ist S7 mit der Begründung das der großteil der Industrie S7 und nicht PCS7 benutzt. Von daher denke ich mal falls die aussage richtig ist das es bestimmt paar nette Tools gibt um Daten zu erfassen, auch für nicht industrie Regelungen

  8. #18
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von Karlson Beitrag anzeigen
    Die Auflage die mir gemacht wurde ist, ist S7 mit der Begründung das der großteil der Industrie S7 und nicht PCS7 benutzt. Von daher denke ich mal falls die aussage richtig ist das es bestimmt paar nette Tools gibt um Daten zu erfassen, auch für nicht industrie Regelungen
    Die zwei Sätze verstehe ich inhaltlich nicht. Was hat das Ganze mit PCS7 ja/nein zu tun?

    Ansonsten wurde Dir ja hier schon erklärt, wie Du Daten in der SPS speichern kannst.
    Nur bist Du in der Speichermenge sehr begrenzt und ausserdem wird das in der Praxis so nicht gemacht (nicht zum loggen von Messwerten).

    ...

  9. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    bike (29.07.2012)

  10. #19
    Karlson ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich bin noch etwas durch den Wind... Es hat nichts mit PCS7 zu tun. Ich dachte für einen kleinen Augenblick das WinCC mit PCS7 zusammen hängt.

  11. #20
    Registriert seit
    03.04.2008
    Beiträge
    6.205
    Danke
    237
    Erhielt 817 Danke für 691 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von ducati Beitrag anzeigen
    Die zwei Sätze verstehe ich inhaltlich nicht. Was hat das Ganze mit PCS7 ja/nein zu tun?

    Ansonsten wurde Dir ja hier schon erklärt, wie Du Daten in der SPS speichern kannst.
    Nur bist Du in der Speichermenge sehr begrenzt und ausserdem wird das in der Praxis so nicht gemacht (nicht zum loggen von Messwerten).

    ...
    So geht es mir auch.
    Was und welche Werte willst du warum und wie loggen?

    Hilfreich für uns und auch für dich wäre ein sinnvolle Beschreibung der Aufgabenstellung.
    Wenn dies geklärt ist, dann kann man auch ein Lösungsweg gesucht und gefunden werden.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 29.06.2012, 14:35
  2. SCL: Daten Speichern/Verschieben
    Von zloyduh im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.08.2011, 09:38
  3. "Speichern" von Daten
    Von 817Christoph im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 11.11.2010, 13:49
  4. OPC-Daten (von Allen Bradley) am PC in ASCII-File speichern
    Von ANo im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 25.05.2005, 09:37
  5. Daten speichern
    Von Sascha77 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.03.2004, 06:33

Lesezeichen

Berechtigungen

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