Typische Fehler: Doppelzuweisungen
- Matthias
- SPSTreff-Profi User
- Beiträge: 288
- Registriert: 19 Jun 2010, 11:16
- Wohnort: Bretten
- Kontaktdaten:
Typische Fehler: Doppelzuweisungen
Für SPS-Anfänger ist es natürlich sehr interessant zu lesen, welche typische Fehler man vermeiden sollte.
Anfangen möchte ich mit diesen typischen Fehlern:
1. Mehrfachzuweisungen von Operanden
Operanden (also Merker, Ausgänge) sollten möglichst an einer Stelle im SPS-Programm gesetzt bzw. zugewiesen werden.
Wenn man dies nicht macht, wird das Programm sehr unübersichtlich und vor allem sehr fehlerträchtig.
Wenn Sie z.B. einen Baustein beobachten und sehen, das der Ausgang über eine Zuweisung in Zeile xy auf '1' gesetzt wird und die entsprechende Ausgangs-LED trotzdem nicht auf '1' wechselt, kommt der eine oder andere ins Grübeln.
Die Ursache ist vermutlich, dass irgendwo an einer anderen Stelle der Ausgang nochmals beeinflusst wird.
Die Stelle bekommt man zwar über die Querverweis-Funktion heraus- besser wäre aber eine einmalige Zuweisung.
Besonders wenn nach einem Jahr eine Programmänderung gemacht werden muss, kann das schnell schief gehen.
Ein besonders merkwürdiges Verhalten tritt auf, wenn der gleiche Timer an mehreren Stellen gestartet wird.
Auch nicht zu empfehlen.
2. Doppelverwendung von Flankenmerker
Die Flankenbefehle FP und FN benötigen einen Flankenmerker, damit erkannt werden kann, ob eine Flanke (0->1 bzw. 1->0 Wechsel) stattfindet.
Das kann aber nur funktionieren, wenn bei jedem FP/FN ein anderer Flankenmerker benutzt wird.
------------------------------------------------------
Ich werde weitere Tipps in diesem Forum hier posten.
Ich lade auch andere Programmierer ein, an dieser Stelle Ihre persönlichen Tipps niederzuschreiben.
Für jeden Tipp sollte ein eigener Thread/Thema eröffnet werden.
Viele Grüße
Matthias
Anfangen möchte ich mit diesen typischen Fehlern:
1. Mehrfachzuweisungen von Operanden
Operanden (also Merker, Ausgänge) sollten möglichst an einer Stelle im SPS-Programm gesetzt bzw. zugewiesen werden.
Wenn man dies nicht macht, wird das Programm sehr unübersichtlich und vor allem sehr fehlerträchtig.
Wenn Sie z.B. einen Baustein beobachten und sehen, das der Ausgang über eine Zuweisung in Zeile xy auf '1' gesetzt wird und die entsprechende Ausgangs-LED trotzdem nicht auf '1' wechselt, kommt der eine oder andere ins Grübeln.
Die Ursache ist vermutlich, dass irgendwo an einer anderen Stelle der Ausgang nochmals beeinflusst wird.
Die Stelle bekommt man zwar über die Querverweis-Funktion heraus- besser wäre aber eine einmalige Zuweisung.
Besonders wenn nach einem Jahr eine Programmänderung gemacht werden muss, kann das schnell schief gehen.
Ein besonders merkwürdiges Verhalten tritt auf, wenn der gleiche Timer an mehreren Stellen gestartet wird.
Auch nicht zu empfehlen.
2. Doppelverwendung von Flankenmerker
Die Flankenbefehle FP und FN benötigen einen Flankenmerker, damit erkannt werden kann, ob eine Flanke (0->1 bzw. 1->0 Wechsel) stattfindet.
Das kann aber nur funktionieren, wenn bei jedem FP/FN ein anderer Flankenmerker benutzt wird.
------------------------------------------------------
Ich werde weitere Tipps in diesem Forum hier posten.
Ich lade auch andere Programmierer ein, an dieser Stelle Ihre persönlichen Tipps niederzuschreiben.
Für jeden Tipp sollte ein eigener Thread/Thema eröffnet werden.
Viele Grüße
Matthias
-
- SPSTreff-User
- Beiträge: 1
- Registriert: 05 Okt 2014, 11:26
Doppelte Zuweisungen
Also ich bin ja neu und wollte mal wissen wie sich das im Fall der VISU verhält. Ich habe mit "flexible 2008" und "WinCC Scada" gearbeitet. Dort konnte ich z.B dem Taster E0.0 einen Merker M0.0 zuweisen. Den hatte ich dann einfach mit in die Symboltabelle genommen und beim Programmieren "ver ODER t". (U E0.0; O M0.0) Also bei meinen ersten Schritten mit VISU ging das nicht wirklich. Version: SPS-VISU S5/S7 V4.941 (20€)
Wahrscheinlich habe ich mich bestimmt zu umständlich ausgedrückt. Es sei mir verziehen..
Wahrscheinlich habe ich mich bestimmt zu umständlich ausgedrückt. Es sei mir verziehen..
Hallo,
wenn in SPS-VISU einem Taster ein Operand zugewiesen wurde (in Ihrem Beispiel der E0.0), dann kann kein weiterer Operand angegeben werden.
Wenn Sie einen zweiten Taster platzieren und diesen dann mit dem Operanden M0.0 verknüpfen, dann können Sie natürlich die beiden Operanden im SPS-Programm mit einer ODER-Operation verknüpfen und das Ergebnis auswerten.
Mit Doppelzuweisungen, also dem eigentlichen Grund des Threads, hat dies aber nichts zu tun.
Gruss
wenn in SPS-VISU einem Taster ein Operand zugewiesen wurde (in Ihrem Beispiel der E0.0), dann kann kein weiterer Operand angegeben werden.
Wenn Sie einen zweiten Taster platzieren und diesen dann mit dem Operanden M0.0 verknüpfen, dann können Sie natürlich die beiden Operanden im SPS-Programm mit einer ODER-Operation verknüpfen und das Ergebnis auswerten.
Mit Doppelzuweisungen, also dem eigentlichen Grund des Threads, hat dies aber nichts zu tun.
Gruss