Wert von Array an Stelle auslesen, wo Array nicht beschrieben ist

Zuviel Werbung?
-> Hier kostenlos registrieren
Nicht die Inline-Code Tags [ICODE] nehmen (die sind für Code innerhalb einer Textzeile), sondern die Code-Block Tags [CODE]
Anhang anzeigen 71946
dann sieht der Code-Block so aus:
Code:
FOR nSchrittSuche:=GVL.iSchritt+1 TO iSchrittgrenze DO
                    IF GVL.aHydroProgramm[1][nSchrittSuche] > 0 THEN
                        EXIT;
                    END_IF
                END_FOR
Wieder was gelernt, den Inline-Code kannte ich noch nicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Idee klingt gut und die hatte ich auch bereits. Mein Kollege (der sehr viel mehr Ahnung hat als ich) meinte allerdings, dass man Schleifen nicht abbrechen soll. Ich habe das ehrlich gesagt nicht wirklich hinterfragt und einfach so hingenommen. Gibt es einen Grund dafür, weshalb das "schlechter" oder "unschöner" wäre? Ich werde dennoch mal eine For-Schleife daraus machen.
Genau das ist ja der Sinn dahinter, nämlich dass diese abgebrochen werden können und so weniger Zykluszeit in Anspruch nehmen.
Wäre interessant was für eine Erklärung dein Kollege liefert es nicht zu tun (es gibt keine sinnvolle).

-Stirni
 
Genau das ist ja der Sinn dahinter, nämlich dass diese abgebrochen werden können und so weniger Zykluszeit in Anspruch nehmen.
Wäre interessant was für eine Erklärung dein Kollege liefert es nicht zu tun (es gibt keine sinnvolle).
Ganz einfach: lange ZyklusZeiten sind schlecht, aber stark schwankende ZyklusZeiten sind auch schlecht. ;)
Da sollte man schon abwägen, welche Schlechtigkeit jeweils die angenehmere ist.

Außerdem will man ja in der Regel eh irgendwo hindurchiterieren, da drängt sich dann eine iterative Schleife direkt auf.
:unsure: Häää? Eine iterative Schleife? Ich dachte immer, 'Iteration' sei die vornehme Ausdrucksweise für 'Schleife'. ;)
 
Zuletzt bearbeitet:
Ganz einfach: lange ZyklusZeiten sind schlecht, aber stark schwankende ZyklusZeiten sind auch schlecht. ;)
Da sollte man schon abwägen, welche Schlechtigkeit jeweils die angenehmere ist
Wobei die zyklische Abarbeitung je nach Hersteller unterschiedlich ist. Bei Beckhoff gibt es keine Schwankungen, weil immer nach der eingestellten Zeit erneut ausgeführt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wobei die zyklische Abarbeitung je nach Hersteller unterschiedlich ist. Bei Beckhoff gibt es keine Schwankungen, weil immer nach der eingestellten Zeit erneut ausgeführt wird.
Du hast Recht, Oliver. mikoborn schrieb ja in Beitrag #1, dass er in TwinCat 3 programmiert:
Geschrieben ist das ganze in TWINCat 3
Aber es war ja nach einer generellen Erklärung dafür gesucht, warum ein vorzeitiger Abbruch einer Schleife auch ausnahmsweisemal als etwas Negatives betrachtet werden könnte. ;)
 
Genau das ist ja der Sinn dahinter, nämlich dass diese abgebrochen werden können und so weniger Zykluszeit in Anspruch nehmen.
Wäre interessant was für eine Erklärung dein Kollege liefert es nicht zu tun (es gibt keine sinnvolle).

-Stirni
Seine Erklärung war, dass das Abbrechen einer For-Schleife nie logisch notwendig ist. Die Bedingung, die dazu führt, dass das Exit aufgeführt wird, kann man auch so in eine While-Schleife verbauen, dass diese abbricht. Er hat aber zugegeben, dass er nicht wirklich weiß, wie Clean Coding Literatur dem Thema gegenübersteht. Wie ich das also sehe, treffen hier lediglich zwei Programmierstile aufeinander
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wobei die zyklische Abarbeitung je nach Hersteller unterschiedlich ist. Bei Beckhoff gibt es keine Schwankungen, weil immer nach der eingestellten Zeit erneut ausgeführt wird.
Wie würde es aussehen, wenn mein Programm länger braucht, als die Zeit die ich eingestellt habe? Ich nehme mal an es kommt einfach eine Fehlermeldung?
 
Seine Erklärung war, dass das Abbrechen einer For-Schleife nie logisch notwendig ist. Die Bedingung, die dazu führt, dass das Exit aufgeführt wird, kann man auch so in eine While-Schleife verbauen, dass diese abbricht. Er hat aber zugegeben, dass er nicht wirklich weiß, wie Clean Coding Literatur dem Thema gegenübersteht. Wie ich das also sehe, treffen hier lediglich zwei Programmierstile aufeinander
Die Erklärung begreife ich jetzt nicht wirklich. Wenn man in einem Array etwas sucht und es findet, muss man doch die Schleife nicht bis zum Ende ausführen.
 
Seine Erklärung war, dass das Abbrechen einer For-Schleife nie logisch notwendig ist. Die Bedingung, die dazu führt, dass das Exit aufgeführt wird, kann man auch so in eine While-Schleife verbauen, dass diese abbricht. Er hat aber zugegeben, dass er nicht wirklich weiß, wie Clean Coding Literatur dem Thema gegenübersteht. Wie ich das also sehe, treffen hier lediglich zwei Programmierstile aufeinander
Man kann entweder eine For Schleife durchlaufen lassen oder eben bedingt beenden.. was daran "nie logisch notwendig" sein soll, erschliesst sich mir nicht. Was das mit "clean coding Literatur" zu tun hat erschliesst sich mir auch nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Man kann entweder eine For Schleife durchlaufen lassen oder eben bedingt beenden.. was daran "nie logisch notwendig" sein soll, erschliesst sich mir nicht. Was das mit "clean coding Literatur" zu tun hat erschliesst sich mir auch nicht.
Was er sagen möchte ist, dass man die Kombination For und Exit auch immer mit einer While-Schleife bauen kann. Was aber "richtig" oder "cleaner" ist konnte er mir nicht sagen
 
Die Schleife läuft doch in jedem Zyklus durch, wofür das While? Das ist ja keine Einweg-Schleife die danach weggeworfen wird.. entweder er findet was und verlässt dann die Schleife, oder die läuft einfach noch bis zum letzten Inkrement durch..
Warte, die Bedingung ob die Schleife laufen soll, wird nicht nach jedem Schleifendurchlauf nochmal gecheckt?
 
Die Schleife läuft doch in jedem Zyklus durch, wofür das While? Das ist ja keine Einweg-Schleife die danach weggeworfen wird.. entweder er findet was und verlässt dann die Schleife, oder die läuft einfach noch bis zum letzten Inkrement durch..
Habe es nachgelesen, die Bedingung wird nach jedem While-Schleifen Durchlauf neu gecheckt. Dann verstehe ich deine Frage nicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was er sagen möchte ist, dass man die Kombination For und Exit auch immer mit einer While-Schleife bauen kann. Was aber "richtig" oder "cleaner" ist konnte er mir nicht sagen
In der Steuerungstechnik möchte man immer mit Bedingungen arbeiten, nur so ist es nachvollziehbar und auch steuerbar. Das hat nichts mit richtig/falsch zu tun.

Habe es nachgelesen, die Bedingung wird nach jedem While-Schleifen Durchlauf neu gecheckt. Dann verstehe ich deine Frage nicht
Ich hatte bisher noch keine Funktion, wofür ich eine While Schleife gebrauchen hätte können. Arrays sind immer definiert, ich kann die Grenzen auslesen und so meine Interationsanzahl für meine For Schleife festlegen, entweder die Schleife läuft durch bis zum letzten Fach, oder ich finde vorher das was ich suche und beende dann einfach meine Schleife.

While [nichts gefunden]:
Suche!
Warum muss ich endlos suchen wenn ich nicht's finde, wo ich etwas erwarte? Wenn ich nichts finde, dann sollte ich nachschauen wieso denn der gesuchte Wert nicht gefunden wird.
 
In der Steuerungstechnik möchte man immer mit Bedingungen arbeiten, nur so ist es nachvollziehbar und auch steuerbar. Das hat nichts mit richtig/falsch zu tun.


Ich hatte bisher noch keine Funktion, wofür ich eine While Schleife gebrauchen hätte können. Arrays sind immer definiert, ich kann die Grenzen auslesen und so meine Interationsanzahl für meine For Schleife festlegen, entweder die Schleife läuft durch bis zum letzten Fach, oder ich finde vorher das was ich suche und beende dann einfach meine Schleife.


Warum muss ich endlos suchen wenn ich nicht's finde, wo ich etwas erwarte? Wenn ich nichts finde, dann sollte ich nachschauen wieso denn der gesuchte Wert nicht gefunden wird.
Ja okay, natürlich hätte die While-Schleife noch weitere Bedingung, das war nur ein sehr vereinfachtes Beispiel, nichts was man auf die Goldwaage legen sollte. Aber wie gesagt, hier treffen anscheinend einfach zwei Stile aufeinander
 
Zurück
Oben