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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: SCL vs. AWL

  1. #11
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von JOHKU Beitrag anzeigen
    Ich persönlich finde die Debatte SCL vs. AWL nicht sehr produktiv.
    Was soll denn dabei herauskommen?
    "Wir sind die Tollsten Programmierer?"
    Das erinnert mich einwenig daran "Ich bin der bessere Broker und schlage den DAX" (3 Wochen)
    Was ist mit mathematischen Formeln z.B aus Physik und Verfahrenstechnik?
    Möchtest Du das auch in AWL programmieren? (z.B einen Logarythmus?)
    Oder möchest Du auch F-Systems in AWL?
    Ich habe vor 30 Jahren noch 8080 Assembler und Maschinencode programmiert und bin dankbar dass ich heute suboptimale Werkzeuge und Softwarwgeneratoren habe.
    ... und ich dachte immer, "suboptimal" (neusprech) wäre "katastrophal" (altsprech).

    Was soll also bei dieser Diskussion rauskommen? Klar kann nun jeder daherkommen und seine persönlichen Präferenzen kundtun. Selbstverständlich mit dem Verweis darauf, dass seine persönliche Vorgehensweise ihm schon seit Jahren Erfolg beschert.

    Ich gehs mal sachlich an: aufgrund der vorhandenen Rechenkraft war ich seither gezwungen, in AWL zu koden. Nun besteht mit Aufkommen leistungsfähigerer CPUs für mich die Möglichkeit, Dinge, die ich seiter mit der 318er in AWL gelöst habe, nun statt dessen in SCL formulieren zu können.

  2. #12
    Avatar von epy
    epy ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2009
    Beiträge
    19
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi,

    wollte eigentlich nur wissen warum der SCL Code mehr Speicher braucht und langsamer ist.
    Da ich zukünftig mehr Bausteine in SCL erstellen will und ich gerne weis was los ist. SCL ist halt in vielen Bereichen Effektiver.
    Danke an alle die mir hier weiter geholfen haben.

    Ich habe heute noch einen Test gemacht. Beide Bausteine SCL und AWL funktionieren absolut gleich.
    Hier mal das Ergebnis, ist einfach mal Interessant.
    Getestet auf einer CPU 315-2 PN/DP mit 1000 DW.

    AWL-Baustein:
    Arbeitsspeicher 196 Bytes
    Zykluszeit: 11 ms

    SCL-Baustein:
    Arbeitsspeicher: 526 Bytes
    Zykluszeit: 56 ms

    Gruß
    Epy
    Angehängte Dateien Angehängte Dateien

  3. Folgender Benutzer sagt Danke zu epy für den nützlichen Beitrag:

    Perfektionist (01.09.2010)

  4. #13
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von epy Beitrag anzeigen
    AWL-Baustein:
    Arbeitsspeicher 196 Bytes
    Zykluszeit: 11 ms

    SCL-Baustein:
    Arbeitsspeicher: 526 Bytes
    Zykluszeit: 56 ms
    Oh je, Du machst mir nicht grad Mut ...

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

    Markus (02.09.2010)

  6. #14
    Registriert seit
    19.04.2009
    Beiträge
    302
    Danke
    31
    Erhielt 40 Danke für 32 Beiträge

    Standard

    Ganz einfach wenn ich mir den SCL Code umgewandelt ansehe
    Code:
     SET   
          SAVE  
          =     L      2.1
          L     0
          T     #Index
          L     #Anzahl_Stoerungs_DW
          L     1
          -I    
          SPO   I007
          SPA   I008
    I007: CLR   
          =     L      2.1
    I008: L     2
          *I    
          SPO   I009
          SPA   I00a
    I009: CLR   
          =     L      2.1
    I00a: L     0
          T     #Index
          TAK   
          T     LW     4
          TAK   
    A7d0: L     #Index
          L     LW     4
          <=I   
          SPBN  A7d1
          L     #Index
          ITD   
          L     L#8
          *D    
          SPO   I00b
          SPA   I00c
    I00b: CLR   
          =     L      2.1
    I00c: AUF   #DB_Stoerung
          LAR1  
          L     DBW [AR1,P#0.0]
          L     W#16#0
          <>I   
          SPBN  A7d2
          SET   
          =     #Stoerung
    A7d2: L     #Anzahl_Stoerungs_DW
          L     2
          *I    
          SPO   I00d
          SPA   I00e
    I00d: CLR   
          =     L      2.1
    I00e: L     #Index
          +I    
          SPO   I00f
          SPA   I010
    I00f: CLR   
          =     L      2.1
    I010: ITD   
          L     L#8
          *D    
          SPO   I011
          SPA   I012
    I011: CLR   
          =     L      2.1
    I012: L     #Index
          ITD   
          TAK   
          T     LD     6
          TAK   
          L     L#8
          *D    
          SPO   I013
          SPA   I014
    I013: CLR   
          =     L      2.1
    I014: AUF   #DB_Stoerung
          LAR1  
          L     DBW [AR1,P#0.0]
          L     W#16#FFFF
          XOW   
          LAR1  LD     6
          T     DBW [AR1,P#0.0]
          L     #Index
          L     2
          +I    
          SPO   I015
          SPA   I016
    I015: CLR   
          =     L      2.1
    I016: T     #Index
          SPA   A7d0
    A7d1: CLR   
          U     #Stoerung_loeschen
          SPBN  A7d3
          L     0
          T     #Index
          L     #Anzahl_Stoerungs_DW
          L     1
          -I    
          SPO   I017
          SPA   I018
    I017: CLR   
          =     L      2.1
    I018: L     2
          *I    
          SPO   I019
          SPA   I01a
    I019: CLR   
          =     L      2.1
    I01a: L     0
          T     #Index
          TAK   
          T     LW     4
          TAK   
    A7d4: L     #Index
          L     LW     4
          <=I   
          SPBN  A7d5
          L     #Index
          ITD   
          L     L#8
          *D    
          SPO   I01b
          SPA   I01c
    I01b: CLR   
          =     L      2.1
    I01c: L     W#16#0
          AUF   #DB_Stoerung
          TAK   
          LAR1  
          TAK   
          T     DBW [AR1,P#0.0]
          L     #Index
          L     2
          +I    
          SPO   I01d
          SPA   I01e
    I01d: CLR   
          =     L      2.1
    I01e: T     #Index
          SPA   A7d4
    A7d5: CLR   
          =     #Stoerung
    A7d3: CLR   
          U     L      2.1
          SAVE  
          BE
    und den AWL code den du programmiert hast ist deiner kürzer. Kürzer=weniger Speicher=schneller

  7. #15
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von epy Beitrag anzeigen

    Ich habe heute noch einen Test gemacht. Beide Bausteine SCL und AWL funktionieren absolut gleich.
    Hier mal das Ergebnis, ist einfach mal Interessant.
    Getestet auf einer CPU 315-2 PN/DP mit 1000 DW.

    AWL-Baustein:
    Arbeitsspeicher 196 Bytes
    Zykluszeit: 11 ms

    SCL-Baustein:
    Arbeitsspeicher: 526 Bytes
    Zykluszeit: 56 ms
    Funktionieren gleich, aber du hast dir auch alle Mühe gegeben durch maximale Blödheit den SCL-Code langsam zu machen. Oder was soll die dreimalige Berechnung der Schleifengrenzwerte mit Multiplikation und Addition? Wieso programmierst du das nicht auch so wie in AWL mit einem rücklaufenden Zähler?

    Klar wird bei so trivialem Code das vom Compiler generierte AWL nie so kompakt wie handverlese AWL. Aber so ein bißchen nachdenken und den Compiler unterstützen kann man auch, vor allem weil der Siemens SCL-Compiler mit Optimierung nicht ganz viel am Hut hat muss man da noch mehr nachhelfen.

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

    Bernard (02.09.2010)

  9. #16
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Funktionieren gleich, aber du hast dir auch alle Mühe gegeben durch maximale Blödheit den SCL-Code langsam zu machen.
    Eine ausgewogene Wortwahl sollte selbst überstreßten Programmierern möglich sein.


    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Oder was soll die dreimalige Berechnung der Schleifengrenzwerte mit Multiplikation und Addition? Wieso programmierst du das nicht auch so wie in AWL mit einem rücklaufenden Zähler?
    Wenn ich AWL nehme, denke ich in AWL.
    Wenn ich SCL nehme, denke ich in SCL.

    Wenn ich SCL nehme, will ich ja gerade den PASCAL/MODULA-Stil haben.
    Da ist ja gerade die bessere Lesbarkeit von Vorteil. Wenn ich jetzt ständig
    darüber nachdenken müßte, wie das dann ich AWL aussehen könnte,
    da könnte ich gleich AWL nehmen. Dehalb sollte man ja für die mickrigen
    Steuerungsvarianten kein SCL/GRAPH/CFC-Monster programmieren.

    Ich habe schon C++ Programme aus Verifikationsgründen Strukturgleich
    in SCL umgesetzt, damit nachher der Codereview schneller und einfacher
    geht (das war so vorgesehen und gewollt).
    Da nimmt man natürlich eine S7-400 genauso wie man für CFC eine
    S7-400 nehmen sollte.

    Wie gesagt, wenns schnell gehen soll, dann muss man es eben im Maschinencode (AWL)
    programmieren.

    Frank
    Grüße Frank

  10. Folgender Benutzer sagt Danke zu IBFS für den nützlichen Beitrag:

    epy (02.09.2010)

  11. #17
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    Wenn ich AWL nehme, denke ich in AWL.
    Wenn ich SCL nehme, denke ich in SCL.
    Der AWL-Code ist aber auch nicht von einem Anfänger geschrieben. Genauso lernt man eben mit der Zeit welcher SCL-Code sich effizient umsetzen lässt.
    Und wenn ich in SCL denke, setzt doch nicht der Verstand bei dem Punkt aus das eine arithmetische Operation Zeit kostet!?

    Bei C-Programmierung auf Mikrocontrollern gibt es von den Herstellern oftmals Dokumente, wie man in C programmieren sollte sodass dieser in effizienten Assembler übersetzt werden kann. Das sind ja nicht viele Dinge die man beachten muss, nachher geht es in Fleisch und Blut über, genauso wie AWL eben auch wenn man es jahrelang macht.

  12. #18
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    bike & Perfektionist ihr kommt gleich in die Krabbelgruppe
    Zitat Zitat von IBFS Beitrag anzeigen
    Eine ausgewogene Wortwahl sollte selbst überstreßten Programmierern möglich sein.
    Hallo Frank,

    machst Du heute auf Anstandsdame?
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  13. #19
    Avatar von epy
    epy ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2009
    Beiträge
    19
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Reden

    Hallo Thomas V2.1,

    ist ja wirklich ein sehr nettes Forum hier.
    Ja habe bisher viel mehr in AWL als in SCL Programmiert.
    Sehr nett das dir das aufgefallen ist.

    Und wenn der SCL Code wenigsten dazu taugt
    das sich ein frustrierter schlecht gelaunter Programmierer auskotzen kann
    hat es sich ja gelohnt.

    Mit freundlichen Grüßen
    Epy
    Zitieren Zitieren Danke für die Blumen...  

  14. #20
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von epy Beitrag anzeigen
    Und wenn der SCL Code wenigsten dazu taugt
    das sich ein frustrierter schlecht gelaunter Programmierer auskotzen kann
    hat es sich ja gelohnt.
    Zumindest taugt er nicht dazu Zykluszeiten und Speicherverbräuche der beiden Varianten zu vergleichen.

Lesezeichen

Berechtigungen

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