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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 37

Thema: Speichern von Daten in SCL

  1. #1
    Registriert seit
    25.07.2012
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe SPS-Freunde,

    seit einer Woche beschäftige ich mich mit SCL. Ich würde gerne mit SCL daten mit schreiben (trend anzeige). Es handelt sich um eine Einführung in SCL Laborbeschreibung).

    Eine Symbol-Tabelle wurde schon eingefügt. Die Werte die mitgeschrieben werden sind:
    Analog_IN_1 EW 520 INT
    Analog_IN_2 EW 526 INT
    Analog_IN_3 EW 522 INT
    Analog_IN_4 EW 524 INT

    Analog_OUT_1 AW 514 INT
    Analog_OUT_2 AW 512 INT

    Nach langer suche habe ich heraus gefunden das der Trend über OPC oder über DB ablaufen kann. Ich würde gerne die DB-Variante wählen. Es sei denn einer von euch hat ein externes Programm zur Datenerfassung

    Die komplette Programmierung läuft in einem OB. Inzwischen bin ich soweit das die Berechnung in dem OB funktioniert und der DB auch erstellt wird. Jedoch werden keine Werte mitgeschrieben. Momentan sind der SCL-Code verkürzt wie folgt aus:

    ###########################################
    DATA_BLOCK DB1
    STRUCT
    Analog_IN_1:INT;
    Analog_IN_2:INT;
    Analog_IN_3:INT;
    Analog_IN_4:INT;

    Analog_OUT_1 AW:INT;
    Analog_OUT_2 AW:INT;

    END_STRUCT
    BEGIN
    END_DATA_BLOCK

    ORGANIZATION_BLOCK OB1
    CONST
    ...
    ...
    ...
    END_CONST
    VAR_TEMP
    ....
    ...
    ...
    END_VAR

    BEGIN

    Analog_OUT_1:=......;
    Analog_OUT_2:=......;

    END_ORGANIZATION_BLOCK


    ###################################

    Wie kann ich die beiden Analogen OUTPUTS und vier Analogen INPUTS speichern? Mitschreiben?

    Vielen Dank im Voraus
    Zitieren Zitieren Speichern von Daten in SCL  

  2. #2
    Registriert seit
    30.07.2011
    Ort
    Uithuizen,Niederlande
    Beiträge
    45
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Normale weise wird das nicht in OB1 gemacht, die werte alle 1 DB oder jeder wert eigenes DB ?
    Welche zeit span solte das geschrieben werden ?

    Wenn DB "voll" ist wieder nach anfang ?

    Jeder takt ist es met relative sprung möglich nach der nachte DB adresse zu springen



    Schreibtakt
    Berechnung DB adress oder erhöhen
    Test DB adress zu gross > rucksetzen oder stop ?
    Laden Int wert
    Schreiben nach DB
    Geändert von PeterHollanda (28.07.2012 um 09:36 Uhr)

  3. #3
    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 für die schnelle Antwort.
    Die Berechnung der Analogen Ein und Ausgänge ist nicht komplex daher dachte ich kann ich es auch in einem OB schreiben.

    Der OB1 wird alle 1000ms aufgerufen und es sollen um die 500 Werte aufgeschrieben werden. Mir geht es eigentlich um die Code wie ich es formuliere das Werte in einen DB geschrieben werden.

  4. #4
    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 Karlson Beitrag anzeigen
    Der OB1 wird alle 1000ms aufgerufen
    Hmm.. von welcher Steuerung schreibst Du hier?
    Dein Rest klingt ja nach Siemens S7, doch OB1 alle 1000ms? Das ist bei Siemens normal nicht möglich bzw. absolut unsinnig. Der OB1 wird zyklisch so oft wie möglich aufgerufen (von mindest-Zykluslängen abgesehen). Typische Aufrufintervalle liegen bei 2ms bis 100ms.
    Wenn Du zeitgesteuerte Aufrufe brauchst, dann mußt Du bei S7 die Weckalarm-OBs OB30 bis OB38 benutzen (Achtung: nicht jede CPU unterstützt alle OB, OB35 ist aber eigentlich immer möglich, siehe Deine HW Konfig). Oder mit Timern, Taktmerkern oder Systemzeit Dir eigene Schreib-Event-Impulse erzeugen.

    Egal wie kurz Dein Programmcode werden wird, ich würde ihn auf keinen Fall in einem OB schreiben sondern in einem FC oder FB.
    Ein OB1 in SCL ist für mich das absolut unmöglichste, was ich mir vorstellen kann. Sowas würde ich bei Lieferanten niemals durchgehen lassen.

    Analog-Ausgänge können nur mitgeschrieben werden, wenn die Kanaladressen im Prozessabbild liegen (also Lesen über AW..., Lesen PAW... ist nicht möglich).

    Mir geht es eigentlich um die Code wie ich es formuliere das Werte in einen DB geschrieben werden.
    Dafür werden sich sicher noch SCL-Spezialisten melden. Die Forumssuche sollte auch jede Menge Beispiele für Deine Aufgabe ausspucken.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    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

    Bei der Hardware handelt es sich um eine414-3 CPU.
    Die Abtastzeit des OB1 wurde nicht elegant über die Mindestzykluszeit der CPU eingestellt. Die Berechnung der Werte soll jede Sekunde durchgeführt werden.

    Wenn ich nur wüsste wie ich die Struktur aufbaue um es sauber zu programmieren. Leider bin ich Neuling auf diesem Gebiet.
    Wenn ich die Funktion in einen FB oder FC erstellen wird dieser nicht bearbeitet.

    Wie ich es verstanden habe muss ich einen OB- generieren und aus diesem die FCs oder FBs aufrufen. Jedoch kenne ich nicht den Befehl.

    Könnte mir jemand wie eine ordentliche Programmierung aussieht? Die Suchfunktion hat mir sehr gute Ansätze geliefert jedoch weiß ich nicht wie so ein komplettes Programm aussehen soll.

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Du müsstest erstmal definieren wie deine Datenerfassung aussehen soll.

    Sollen Messwerte über einen längeren Zeitraum in der SPS gespeichert werden?
    Wird ein Zeitstempel wann der Messwert erfasst wurde benötigt?
    Wer und wie soll aus den Daten ein Trenddiagramm erstellt werden, externes Programm, Panel mit Visualisierung?

  7. #7
    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 Karlson Beitrag anzeigen
    Wie ich es verstanden habe muss ich einen OB- generieren und aus diesem die FCs oder FBs aufrufen. Jedoch kenne ich nicht den Befehl.

    Könnte mir jemand wie eine ordentliche Programmierung aussieht?
    Also mein SCL-Editor hat eine umfangreiche Programmhilfe, wo z.B. auch der Aufruf von Funktionen erklärt wird.
    Aufruf von Funktionen (FC)
    Der Aufruf einer Funktion erfolgt unter Angabe des Funktionsnamens (FC-, SFC-BEZEICHNUNG oder BEZEICHNER), sowie der Parameterliste. Der Funktionsname, der den Rückgabewert bezeichnet, kann absolut oder symbolisch angegeben werden:

    Code:
    FC31 (X1:=5, Q1:=Quersumme) ;  // Absolut
    ABSTAND (X1:=5, Q1:=Quersumme) ;  // Symbolisch
    Nach dem Aufruf stehen die Ergebnisse der Funktion als Rückgabewert oder als Ausgangs- und Durchgangsparameter (Aktualparameter) zur Verfügung.
    Den Aufruf aller Hilfen hat Siemens im Menüpunkt "Hilfe" versteckt ... Sehr empfehlen würde ich Dir den Punkt Hilfe > Erste Schritte. Dies bringt Dich zu "Willkommen beim Einsteigerbeispiel "Messwerterfassung"". Dieses Beispiel beinhaltet eigentlich alles, was Du für Deine Aufgabe brauchst, inklusive indirekter Adressierung eines Umlaufpuffers. Das lies Dir mal durch ... Für den Schreibtakt würde ich eine Flanke eines Taktmerkers nehmen (siehe CPU-Konfigurations-Hilfe in HW Konfig).

    Normalerweise sind bei jeder SCL-Installation auch PDF-Handbücher "S7-SCL - Erste Schritte" und "S7-SCL für S7-300 und S7-400 - Handbuch" dabei, die man über Start > SIMATIC > Dokumentationen > ... finden kann.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #8
    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

    Danke Harald, für den Tipp die Handbücher habe ich auch schon gefunden jedoch ist mir nicht ganz klar wie ich die in einem OB Aufrufe... Mit dem FC gebe ich dir recht das steht als beispiel gut beschrieben. jedoch nicht wie ich die Werte in ein DB schreibe.

  9. #9
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von Karlson;
    Es sei denn einer von euch hat ein externes Programm zur Datenerfassung
    http://www.sps-forum.de/showthread.p...aseProtokoller
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Siehe SCL-Hilfe > Index > Datenbausteine > Übersicht der Datenbausteine
    -> Absoluter Zugriff auf Datenbausteine
    -> Strukturierter Zugriff auf Datenbausteine
    -> Indizierter Zugriff auf Datenbausteine

    Ein Beispiel für strukturierter Zugriff:
    Code:
    DATA_BLOCK DB1
    STRUCT
      Analog_IN_1:INT;
      Analog_IN_2:INT;
      Analog_IN_3:INT;
      Analog_IN_4:INT;
    
      Analog_OUT_1:INT;
      Analog_OUT_2:INT;
    END_STRUCT
    BEGIN
    END_DATA_BLOCK
    
    FUNCTION FC1 : VOID
    VAR_INPUT
      Wert1 : INT ;
    END_VAR
    
      DB1.Analog_IN_1 := Wert1;
    
    END_FUNCTION
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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