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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: SCL oder AWL

  1. #1
    Registriert seit
    30.11.2012
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    mich interessiert eure Meinung, wann es sinnvoll wäre SCL einzusetzen. Bei der folgenden Aufgabe stellten wir fest (Ablaufkette und Schiebefunktion), das die Lösung fehlerhaft bzw nicht vollständig ist.
    Da sich die Codes in den Lösungen in den Netzwerken nahezu wiederholen, dachte ich an etwas abgespecktes und das es auch eine schöne Aufgabe ist um SCL zu lernen.

    Hier meine Lösung:

    Code:
    FUNCTION_BLOCK FB101
    
    VAR
        b : INT := 1;
        a : WORD;
    END_VAR
        
    VAR_INPUT
        //Eingangsparameter
        IN:WORD;
        STOP : BOOL;
    
    END_VAR
    
    VAR_OUTPUT
        //Ausgangsparameter
        OUT : WORD;
    END_VAR
    
        // Anweisungsteil
        // Berechnet IN mit b. 
        // Beispiel: 0000 1000 UND 0000 1000 = 0000 1000 --> Ausgang soll nach der IF-Anweisung geschaltet werden
        // Beispiel: 0000 1000 UND 0000 0111 = 0000 0000 --> Ausgang soll nach der IF-Anweisung nicht geschaltet werden
        // Das Ergebnis wird für die IF Anweisung gebraucht um so festzustellen, das in der richtigen Reihenfolge geschaltet wird
        
        a := IN AND INT_TO_WORD(b);  
           
        IF INT_TO_WORD(b) = a THEN      
            OUT := IN OR OUT;
            b := WORD_TO_INT(SHL (IN := INT_TO_WORD(b), N := 1));
        END_IF;
    
        IF STOP THEN
            OUT := 0;
            b := 1;
        END_IF;
        
    END_FUNCTION_BLOCK
    Kritik und Anregungen, wie man es besser machen könnte, ist erwünscht. Macht hier ein SCL-Code Sinn oder kann man es mit AWL eleganter lösen?

    Viele grüße Evo
    Zitieren Zitieren SCL oder AWL  

  2. #2
    Registriert seit
    09.08.2006
    Beiträge
    3.665
    Danke
    917
    Erhielt 666 Danke für 546 Beiträge

    Standard

    Zitat Zitat von evolem Beitrag anzeigen
    mich interessiert eure Meinung, wann es sinnvoll wäre SCL einzusetzen.
    Wenn Der Kunde SCL fordert, nimmst Du SCL. Wenn der Kunde AWL fordert, nimmst AWL. Wenn der Kunde FUP fordert, nimmst Du FUP. usw.

    Wenn der Kunde nichts fordert, nimmst Du dass, was Du am besten kannst.

    Jemand, der AWL gelernt hat, wird sicherlich bei AWL bleiben. Jemand der neu anfängt, und schon mal früher etwas mit Basic oder C oder Pascal oder sonstwas zu tun hatte, wird mit SCL besser klarkommen.

    Zitat Zitat von evolem Beitrag anzeigen
    Macht hier ein SCL-Code Sinn oder kann man es mit AWL eleganter lösen?
    Das hat nichts mit der Sprache zu tun. Mann kann in beiden Sprachen "elegant" programmieren.

    Gruß.

  3. #3
    Registriert seit
    09.08.2006
    Beiträge
    3.665
    Danke
    917
    Erhielt 666 Danke für 546 Beiträge

    Standard

    Zitat Zitat von evolem Beitrag anzeigen
    Kritik und Anregungen, wie man es besser machen könnte, ist erwünscht.
    Was soll der FB denn machen? Dann könnte man auch schauen, ob es richtig programmiert ist. Für mich macht das ganze momentan wenig Sinn...

    Das Du Out nicht in jedem Aufruf zuweist ist unschön, erstrecht, da Du bei der Deklaration von OUT keinen Wert zugewiesen hast.

    Gruß.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.840
    Danke
    400
    Erhielt 2.427 Danke für 2.023 Beiträge

    Standard

    Hallo,
    ich würde Ducati nicht in Allem vorbehaltlos zustimmen.
    Es gibt so ein paar Dinge, die würde ich ohne SCL nicht mehr machen wollen. Dazu gehören Funktionen, die Schleifen (im weiteren Sinne) beinhalten bzw. Berechnungen.
    Bei Schrittketten (z.B.) könnte man sich drüber streiten - das liegt im Auge des Betrachters.
    In beiden Fällen gilt aber : Man kann sich auch Einen zusammenprorammieren (so von hinten durch die Brust ins Auge) - das sollte immer vermieden werden ...

    Gruß
    Larry

  5. #5
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 819 Danke für 693 Beiträge

    Standard

    Man nehme die Erstellsprache die gefordert wird.
    Denn der Kunde hat seine Forderungen und Spezifikationen und daran muss man sich halten.
    Berechnungen in KOP oder FUP schauen scheiße aus, funktionieren aber auch.(Denn bei Ladder gibt es nur KOP.)
    Ich denke man sehr wohl sowohl in AWL als auch SCL gut Schleifen oder Berechnungen programmieren.
    In SCL geht es leichter (wenn man SCL kann).
    Ein Kollege von mir macht es in AWL ebenso schnell.


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

  6. #6
    Registriert seit
    09.08.2006
    Beiträge
    3.665
    Danke
    917
    Erhielt 666 Danke für 546 Beiträge

    Standard

    Jo,

    und möglichst sollte man in einem Programm nicht alle mögliche Programmiersprachen mischen. OK wäre für mich SCL+FUP oder AWL+FUP usw. aber ungern AWL+SCL ...

    Gruß.

  7. #7
    evolem ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.11.2012
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe bereits Erfahrungen mit c, basic uvm. Nichtsdestotrotz habe ich die Aufgabe auch mit AWL programmiert. Ist etwas mühseliger aber ich habs auch abgespeckt geschafft

    Zitat Zitat von ducati Beitrag anzeigen
    Was soll der FB denn machen?
    Mit SCL wollte ich diese Aufgabe lösen: http://www.kleissler-online.de/PDF/Schrittkette.pdf

    Das Du Out nicht in jedem Aufruf zuweist ist unschön, erstrecht, da Du bei der Deklaration von OUT keinen Wert zugewiesen hast.
    Kann dir da nicht ganz folgen. Muss ich bei der Deklaration zwangsmäßig den Wert 0 zuweisen als Anfangswert? ist es nicht automatisch ohnehin schon 0? OUT soll auch nur gesetzt werden, wenn der Eingang in der richtigen Reihenfolge gesetzt wurde.


    Zitat Zitat von ducati Beitrag anzeigen
    SCL+FUP oder AWL+FUP usw. aber ungern AWL+SCL ...
    Gruß.
    Wie ist das gemeint? kann man in SCL auch auf FUP umschalten? Oder meintest du innerhalb eines Bausteins? ich glaube du meinst letzteres

  8. #8
    Registriert seit
    09.08.2006
    Beiträge
    3.665
    Danke
    917
    Erhielt 666 Danke für 546 Beiträge

    Standard

    Zitat Zitat von evolem Beitrag anzeigen
    Kann dir da nicht ganz folgen. Muss ich bei der Deklaration zwangsmäßig den Wert 0 zuweisen als Anfangswert? ist es nicht automatisch ohnehin schon 0? OUT soll auch nur gesetzt werden, wenn der Eingang in der richtigen Reihenfolge gesetzt wurde.
    Ich sag ja auch nicht, dass es u.U. nicht auch funktioniert, es ist nur unschön.


    Zitat Zitat von evolem Beitrag anzeigen
    Wie ist das gemeint? kann man in SCL auch auf FUP umschalten? Oder meintest du innerhalb eines Bausteins? ich glaube du meinst letzteres
    Nein innerhalb einer SPS, des gesamten Programms, finde ich 2 Sprachen OK, mehr unschön.

    Gruß.

  9. #9
    evolem ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.11.2012
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Ich sag ja auch nicht, dass es u.U. nicht auch funktioniert, es ist nur unschön.
    Ich mach das zum ersten mal. Wie würde es denn eigentlich schöner aussehen oder wie macht es mehr Sinn?

  10. #10
    Registriert seit
    09.08.2006
    Beiträge
    3.665
    Danke
    917
    Erhielt 666 Danke für 546 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von evolem Beitrag anzeigen
    Ich mach das zum ersten mal. Wie würde es denn eigentlich schöner aussehen oder wie macht es mehr Sinn?
    Auf jeden Fall bei der Deklaration einen Wert mitgeben.

    Ausgangsvariablen in jedem Bausteinaufruf zuweisen. Für alles andere interne Variablen definieren.

    Gruß.

Ähnliche Themen

  1. Step 7 AWL Code interpretieren oder in SCL umschreiben
    Von SanjaDO im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.11.2013, 09:24
  2. Step 7 SCL oder AWL Eingänge abfragen
    Von Legosteine im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.09.2013, 21:33
  3. Schrittkette IN SCL oder mit SPL in AWL
    Von Bensen83 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 22.06.2010, 11:40
  4. Heiz und Kühlvorgang in SCL oder AWL
    Von Roland1 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 20.06.2009, 10:18
  5. PWM in SCL, AWL oder FUP?
    Von stefanblitz im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.02.2009, 20:47

Lesezeichen

Berechtigungen

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