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

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

Thema: SCL Anfängerfragen

  1. #1
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    es gibt zwei Dinge, die mich im AUgenblick in SCL quälen:

    1. GOTO - Anweisung.
    Was gibt es dabei zu beacjten? Irgendwie kommt es mir vor als wäre
    das Verhalten anderst als in AWL.

    2. Return - Anweisung
    Wirkt diese wie BEA oder BEB? In einer if-Then Anweisung z.b.

    IF X = True THEN
    Return;
    END_IF;

    ...
    ...
    RETURN;

    3. In CPU laden. Richt es im SCL editor zu laden oder muss man im Simatic
    Manager ebenfalls laden?
    irgendetwas ist ja immer...
    ING. Gerald Miedler
    Zitieren Zitieren SCL Anfängerfragen  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    Hallo,
    es gibt zwei Dinge, die mich im AUgenblick in SCL quälen:

    1. GOTO - Anweisung.
    Was gibt es dabei zu beacjten? Irgendwie kommt es mir vor als wäre
    das Verhalten anderst als in AWL.
    Einfach nicht benutzen! GOTO ist Schrott!!!
    Nutze lieber Strukturierende Elemente wie IF-THEN-ELSE-ELSIF/CASE/FOR/WHILE/usw.

    Zitat Zitat von Gerri Beitrag anzeigen
    2. Return - Anweisung
    Wirkt diese wie BEA oder BEB?
    Ja (ich benutze diese Anweisung allerdings eher selten)

    Zitat Zitat von Gerri Beitrag anzeigen
    3. In CPU laden. Richt es im SCL editor zu laden oder muss man im Simatic
    Manager ebenfalls laden?
    [/QUOTE]
    Es reicht im SCL-Editor.
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    meinst du goto funktioniert nicht immer oder es ist einfach unschön damit zu arbeiten?
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  4. #4
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    unprofessionell
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  5. #5
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    meinst du goto funktioniert nicht immer oder es ist einfach unschön damit zu arbeiten?
    Edsger W. Dijkstra hat bereits 1968 die GOTO Anweisung ins visier genommen und sein Statement unter dem Namen "GOTO Considered Harmful" (in etwa GOTO als schädlich betrachten) veröffentlicht.

    GOTO führt nicht automatisch zu Spaghetticode, der Einsatz davon aber aber eben die Tendenz dazu. Es gibt kaum Anwendungen wo so ein GOTO zur besseren Struktur eines Programms beiträgt.

    Nicht zuletzt sieht die IEC61131-3 für ST (woran sich SCL ja anlehnt) gar keine GOTO Anweisung vor und das aus gutem Grund, wilde Sprünge führen zu undurchsichtigem Quellcode ala AWL.
    If you open your Mind too much, your Brain will fall out.
    Zitieren Zitieren Edsger W. Dijkstra  

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

    volle zustimmung für die verdammung von GOTO ... aber manchmal, wenn man ein/zweitausend zeilen code (sei es SCL oder C# oder ähnliches) debuggen muß, wünscht man es sich schon manchmal her
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    ich kann mich noch grau an meinen VB-Kurs erinnern, wo eine der ersten Anweisungen vom Trainer war: "Hände weg von GOTO!!!"
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

  8. #8
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Also ich würde sagen goto dort wo notwendig ist.

    Im Kernel von linux gibt es nach allgemeinen Schätzungen(keiner hat je gezählt )
    Interessant ist, was Linus Torvalds hier:
    http://kerneltrap.org/node/553/2131
    dazu schriebt

    Code:
    I think goto's are fine, and they are often more readable than large
    amounts of indentation. That's _especially_ true if the code flow isn't
    actually naturally indented (in this case it is, so I don't think using
    goto is in any way _clearer_ than not, but in general goto's can be quite
    good for readability).
    
    Of course, in stupid languages like Pascal, where labels cannot be 
    descriptive, goto's can be bad. But that's not the fault of the goto, 
    that's the braindamage of the language designer.
    
            Linus
    bike

  9. #9
    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 bike Beitrag anzeigen
    Also ich würde sagen goto dort wo notwendig ist.

    Im Kernel von linux gibt es nach allgemeinen Schätzungen(keiner hat je gezählt )
    Ich gerade mal die gotos in den Kernel-Sourcen auf meinem Rechner mit
    Code:
     grep -i 'goto ' /usr/src/linux-source-2.6.18/* -r | wc -l
    gezählt. Ergebnis:
    39149

    Dort werden zwar alle Stellen gezählt (auch in Kommentaren etc.), aber Verwendung von goto ist schon enorm.

    Eigentlich hat jede ernstzunehmende Sprache ein goto, und bestimmt nicht ohne Grund (wenns nach Pascals Wirth ginge, hätten Strings ja auch nur 255 Zeichen Länge).

  10. #10
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann zitiere ich mich halt mal wieder selbst:
    Zitat Zitat von zotos Beitrag anzeigen
    ...
    Es gibt kaum Anwendungen wo so ein GOTO zur besseren Struktur eines Programms beiträgt.
    ...
    im Bezug auf:

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    ...
    Code:
    grep -i 'goto ' /usr/src/linux-source-2.6.18/* -r | wc -l
    gezählt. Ergebnis:
    39149

    Dort werden zwar alle Stellen gezählt (auch in Kommentaren etc.), aber Verwendung von goto ist schon enorm.
    ...

    Was sind schon knappe 40k Verwendungsstellen bei fast 9Millionen Zeilen Quellcode des Linux-Kernel? ~0,4%

    [edit]
    OK bei der 2.6.18 Version sind es keine 9Millionen (wie beider aktuellen Version) sondern ~7Millionen... ergibt also irgend was um die 0,6%
    [/edit]
    Geändert von zotos (04.10.2009 um 11:19 Uhr)
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. Anfängerfragen zum Programmablauf
    Von Casimyr im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2011, 20:14
  2. Anfängerfragen zu BoschRexroth-Antrieben
    Von Jimmy im Forum Antriebstechnik
    Antworten: 5
    Letzter Beitrag: 23.09.2009, 18:44
  3. Step 5 V7.23 get started >Anfängerfragen<
    Von spsholle im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.03.2008, 00:04
  4. Step5 und s-95u <Anfängerfragen>
    Von spsholle im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 19.03.2008, 09:17
  5. Ethernet Powerlink - Anfängerfragen
    Von Lee im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 27.06.2007, 19:33

Stichworte

Lesezeichen

Berechtigungen

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