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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: goto SCL

  1. #21
    Registriert seit
    29.03.2004
    Beiträge
    5.800
    Danke
    144
    Erhielt 1.708 Danke für 1.240 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von IBFS Beitrag anzeigen
    In der Firmenvorschrift, die ich beachten muss, wird nur eine FOR-Schleife und IF-THEN erlaubt.
    Halte ich für eine übliche Schwachsinnsvorschrift.
    Ein Sortieralgorithmus wie Bubble- oder Quicksort beispielsweise würde dadurch entweder unübersichtlicher oder langsamer.

    So eine Vorschrift macht vielleicht Sinn wenn in der Firma nur Leute arbeiten die nicht wissen wann man welche Anweisung einsetzt. Da wäre eine Mitarbeiterschulung zweckdienlicher als so eine Vorschrift.

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

    00alex (21.06.2013)

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

    Standard

    nebenbei bemerkt versuche ich, Schleifen grundsätzlich zu meiden, wenn ich entsprechende Möglichkeiten hab, die Laufvariablen nur Zyklus für Zyklus weiterzählen zu können. Wenn ich das Ergebnis der Schleife nicht sofort im gleichen Zyklus brauche.

    dass repeat-until unübersichtlich sein soll ist wohl genauso Ansichtssache, wie dass goto und exit als unschön betrachtet werden. Ich finde eigentlich an Repeat nichts unschönes.

    Dass Schleifen ausschließlich in der FOR-Form erlaubt werden, ist, denke ich mal, dem Umstand geschuldet, dass diese Form niemals endlos laufen kann (jedenfalls nicht, solange man die Laufvariable in der Schleife nicht manipuliert, oder meckert da der Compiler?). Was aber auch bedeutet, dass man mit IF-THEN und GOTO ebenfalls keine Schleifen bauen sollte, deren Abbruchbedingung unter Umständen niemals eintritt.

    Letztlich ist eigentlich jede bedingte Codeausführung im Bereich Automatisierung (da spreche ich jetzt von Einzelmaschinen, die Zykluszeiten von oftmals <10ms erfordern) problematisch, wenn man sich nicht gerade im Status befindet, sondern nur den Code vor Augen hat, bei dem unklar ist, ob er überhaupt wirksam ist.

  4. #23
    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
    Halte ich für eine übliche Schwachsinnsvorschrift.
    Naja, die Firma, um die es geht, stellt u.a. Waschmaschinen her ..... also keine Gurkenbude.

    Außerdem haben die einen Codescanner geschrieben - genial wie ich finde - der scannt den kompletten ST-Quellcode, also
    das gesamte CoDeSys-Projekt auf Konformität mit dieser .....-vorschrift und der gibt nachher exakt aus, wo der Programmierer
    etwas zu virtuos gehandelt hat. Man mag davon halten was man will, der Softwareeinheitlichkeit und -qualität ist das mit
    Sicherheit dienlich.

    Frank
    Grüße Frank

  5. #24
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Warum ist CASE OF nicht in die Firmenvorschriften ?
    CASE OF ist genau so "sicher" wie IF THEN. CASE OF ist eigentlich nur eine saubere Variante von verschacktelte IF THEN.
    Jesper M. Pedersen

  6. #25
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard

    Ich verwende FOR Schleifen nur dann, wenn mir die Anzahl der Schleifendurchläufe bekannt ist (z.b. ein Array von 100 Elementen durchsuchen). WHILE und REPEAT kommen wohl eher bei Sortieralgorithmen zum Tragen. Ich denke die meisten nehmen deswegen eine FOR-Schleifen weil sie noch am einfachsten zum debuggen ist (meiner Ansicht nach). EXIT habe ich auch schon oft gebrauchen können, aber wie steht es denn bei euch mit CONTINUE???
    Soweit ich weiß beendet diese Anweisung ja den aktuellen Schleifendurchlauf und der Index wird dann um eins weitergezählt.

  7. Folgender Benutzer sagt Danke zu nutellahase für den nützlichen Beitrag:

    00alex (21.06.2013)

  8. #26
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    ... sodenn man auf goto verzichten kann. Exit gehört, glaube ich, auch eher in die Kategorie deprecated, wenn ich da meinen Informatikunterricht noch richtig im Ohr behalten habe.
    Das u.ä. haben die Unterrichtenden schon vor min. 25 Jahren erzählt.

    Und trotzdem kann ich nicht nachvollziehen, warum ich mich freiwillig in meinen Möglichkeiten einschränken soll, wenn es die Programmierer der jeweiligen Hochsprache (immer noch?) anbieten und demzufolge nicht für überholt halten.

    Auch wenn's nicht viele Situationen gibt, aber wenn es in einer am Besten passt - warum nicht?

  9. #27
    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 hucki Beitrag anzeigen
    Das u.ä. haben die Unterrichtenden schon vor min. 25 Jahren erzählt.
    ...
    ...aber wenn es in einer am Besten passt - warum nicht?
    in meine Ohren ist dies schon vor 30 Jahren gedrungen.

    das "warum nicht" wurde damals so beantwortet, dass der Leser (und auch der Urheber des Codes) davon ausgehen kann, dass die Schleife auch wirklich vollständig abläuft. Und wenn eben nicht ein vollständige Ablauf vonnöten ist, dann eben "UNTIL done", dann kann man sich auf die Suche im Code nach dem "done" machen.

    Aber wie so oft: was schön ist und was weniger schön ist, liegt auch hier vermutlich rein im Auge des Betrachters.

  10. #28
    Registriert seit
    20.01.2007
    Ort
    Grünkraut
    Beiträge
    103
    Danke
    31
    Erhielt 19 Danke für 16 Beiträge

    Standard

    Wenn schon GOTO dann das "COMPUTET GOTO" aus Fortran (ist wenn man es beherrscht universeller als jede CASE-Verzweigung bzw. SPL in Step7). Leider unterstützt SCL, ST, VB usw. diese Anweisung nicht.

    Corrado

  11. #29
    Registriert seit
    20.06.2010
    Beiträge
    170
    Danke
    14
    Erhielt 18 Danke für 12 Beiträge

    Standard

    Zitat Zitat von corrado Beitrag anzeigen
    Wenn schon GOTO dann das "COMPUTET GOTO" aus Fortran (ist wenn man es beherrscht universeller als jede CASE-Verzweigung bzw. SPL in Step7). Leider unterstützt SCL, ST, VB usw. diese Anweisung nicht.

    Corrado
    .... eventuell gibt es auch in COBOL, FORTH, ADA, MODULA2, PL/M, Prolog, Lisp oder 8080 Assembler irgendwas schönes was STEP7 nicht unterstützt

    Gruß

    Johannes

  12. #30
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Daumen runter


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es ist klar, GOTO entspricht einer Sprunganweisung an ein direktes Ziel. Wer von der AWL kommt oder Assembler gemacht hat, kennt es erst einmal gar nicht anders.

    Aber die Zeit ist nicht stehen geblieben, man hat höhere Sprachen entwickelt mit Kontrollanweisungen wie IF, ELSE, END_IF.

    Diese wurden weiter entwickelt in Konstrukte wie FOR, WHILE, CASE ... bis hin zu foreach xxx in yyy.

    Hinzu kam das Konzept der Blöcke und die seinerzeit geniale neue Forderung
    "Eine Funktion hat nur EINEN Eingang und auch nur EINEN Ausgang".

    All das dient einzig und allein dazu, die Programme übersichtlicher und damit sicherer zu machen. Der CPU ist es egal, wenn es richtig gemacht wird, woher der Sprung
    kommt. Es basiert das "Kein GOTO" also auf Erfahrung, kommt meist aber daher wie ein pädagogisch erhobener Zeigefinger und wie immer fühlen sich die Anfänger stark
    und müssen erst noch Lehrgeld zahlen, bis sie lernen "Shit happens".

    Wenn es ein kleines Programmchen ist, überblickt es der Entwickler, wenn er mal so eben GOTO sagt, aber wenn später mal jemand anderes was ändert und gar nicht
    bemerkt, dass irgendwo quer rausgesprungen wird, dann ist das Problem gewaltig.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Kein GOTO  

  13. Folgender Benutzer sagt Danke zu RobiHerb für den nützlichen Beitrag:

    Perfektionist (07.02.2013)

Ähnliche Themen

  1. GOTO in ST
    Von RobiHerb im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 15.10.2012, 10:39
  2. SCL: FB Aufruf unter SCL mit Variablen DB
    Von ThorstenK im Forum Programmierstrategien
    Antworten: 32
    Letzter Beitrag: 10.02.2011, 19:15
  3. GOTO Anweisung
    Von Felse im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 13.03.2009, 10:17
  4. Antworten: 4
    Letzter Beitrag: 07.10.2006, 00:34
  5. Brauche Hilfe bei SCL.SFC Aufrufen in SCL
    Von Gerold im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:47

Lesezeichen

Berechtigungen

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