Schrittkettendiagnose

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich nehme den Ball mal auf ...
Ist dieser Programmierstil aus eurer Sicht "unsauber"??
Nö ... warum das ...?
Ich persönlich arbeite mit der Merker-Variante weil ich das schöner finde (Geschmackssache !!!) - das heißt aber nicht, dass du die Zähl-Variablen-Variante nicht genauso gut machen kannst.

.
2. Leider "schluckt" das schon bei mittleren Programmen recht viel Speicher. Gibt es eine "speicherschonende" Variante, die dem nahekommt?
:cool: ... die Merker-Variante ...(!?).
Eine bestimmte Vorgehensweise erfordert möglicherweise einen gewissen Speicher ... das ist eben so.

Gruß
Larry
 
passt vielleicht nicht ganz in diesen thread...

Ich möchte aber die Aussage von Larry zum Anlass nehmen, mal die Antwort auf eine Frage zu bekommen.
Ich programmiere Schrittketten schon seit einiger Zeit nicht mehr "im klassischen Stil" mit Setze/Rücksetze Schrittkettenmerker, sondern benutze eine INT-Variable, die bei der Schrittweiterschaltung mit der Schrittnummer des nächsten Schritts beschrieben wird (MOVE-Befehl). Im jeweiligen Schritt frage ich dann die Schritt-Variable mit CMP==I ab.

Ich würde mich nicht als besonders professionell oder innovativ einstufen, daher denke ich, das hat vielleicht schon jemand so oder ähnlich gemacht.

Nun zu meiner Frage:
1. Ist dieser Programmierstil aus eurer Sicht "unsauber"?
2. Leider "schluckt" das schon bei mittleren Programmen recht viel Speicher. Gibt es eine "speicherschonende" Variante, die dem nahekommt?

HI,

also wir benutzen beides, unsere Schrittketten haben einen INT wert als Schrittnummer und auch ein Schrittkettenbit.

Natürlich kann man die Schrittkette nun ein bissl aufblähen mit Überwachungszeiten etc. aber "unsauber" würde ich dieses nicht nennen.

Du sparst dir nur ne menge OUT Parameter an dem Schrittketten FC / FB.
Du musst nur gewährleisten, das es so programmiert ist, das deine Aktoren nicht beim wechsel der Schritte wenn sie angesteuert werden kurz absteuern. Aber das kann dir auch mit Schrittmerkern passieren.

Die Schrittnummer brauchst du sowieso für die Textliste in der Visu, um in Klartext deinen Schritt anzugeben.

Der Vorteil der Schrittmerker als OUT ist, "Fremde" können den Schrittketten Baustein online besser beurteilen und können das "Ziel" (Aktoren) besser nachverfolgen.

Den Speicher sehe ich nicht als Problem. So groß sind unsere Schrittketten nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Tigerente1974,

habe auch schon Varianten von Schrittketten gesehen und selbst ausprobiert. Deine Variante ist mit Sicherheit nicht unsauber, da dein Code eindeutig nachvollzogen werden kann und funktioniert. Im Gegenteil, du hast z.B. den Vorteil beim Rücksetzen nur eine Variable zu beschreiben und nicht z.B. eine ganze Anzahl boolsche Variablen. Nachteile sehe ich eventuell bei der Diagnose.

Man findet diese Art der Schrittketten öfter in Initialisierungsbausteinen für Geräte. Da die meist in AWL geschrieben sind wird auch oft eine Sprungleiste benutzt, die Sprungmarken bezeichnen den Schritt (S1, S2, S3...) und es spart deine genannten CMP==I.

MfG
 
Hallo.

Erst mal Danke für die Antworten.

Also scheint es nicht abwegig zu sein, was ich mir da im stillen Kämmerlein überlegt habe.

Die genannten Vorteile waren auch für mich der Grund von dem abzuweichen, was ich mal in der Ausbildung gelernt habe.
Noch dazu sehe ich einen großen Vorteil darin, dass man "mal eben" einen Schritt dazwischen einfügen kann, wenn man beim programmieren in 10-er Schritten arbeitet.

@Larry: Die Schrittkettenvariable wird als IN-Parameter an den FC übergeben und ist ein Wort in einem DB (z.B. DB100.DBW0). Da diese Teil einer Struktur (UDT) ist, die auch noch in einem Array liegt, werde ich versuchen bei der bisherigen Variante zu bleiben.
Ich habe es trotzdem mal gestestet und ein MW anstelle des Worts aus dem DB angehängt. Und siehe da! Der Baustein war um 20 Byte kleiner. Bei mehreren Aufrufen kann man da bestimmt einiges "sparen". Ist also auch noch einmal ein guter Tip
icon7.gif
 
passt vielleicht nicht ganz in diesen thread...

Ich möchte aber die Aussage von Larry zum Anlass nehmen, mal die Antwort auf eine Frage zu bekommen.
Ich programmiere Schrittketten schon seit einiger Zeit nicht mehr "im klassischen Stil" mit Setze/Rücksetze Schrittkettenmerker, sondern benutze eine INT-Variable, die bei der Schrittweiterschaltung mit der Schrittnummer des nächsten Schritts beschrieben wird (MOVE-Befehl). Im jeweiligen Schritt frage ich dann die Schritt-Variable mit CMP==I ab.

Ich würde mich nicht als besonders professionell oder innovativ einstufen, daher denke ich, das hat vielleicht schon jemand so oder ähnlich gemacht.

Nun zu meiner Frage:
1. Ist dieser Programmierstil aus eurer Sicht "unsauber"?
2. Leider "schluckt" das schon bei mittleren Programmen recht viel Speicher. Gibt es eine "speicherschonende" Variante, die dem nahekommt?

Ich nutze eine Sprungleiste (SPL in Step7). Für Schrittweiterschaltung, Laufzeitüberwachung, Startbedingungen etc. habe ich einen speziellen eigenen Baustein, aber das kann jeder machen wie er will.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab ich bis dato noch nirgends gesehen. Ist mir komplett neu, dass es das gibt.
Werde mal das Beispielprojekt von Siemens runterladen mir genauer ansehen, wie das gemacht wird. Klingt aber interessant!
 
Zurück
Oben