- Beiträge
- 21.977
- Reaktionspunkte
- 6.837
-> Hier kostenlos registrieren
Wenn man keine Ahnung vom speziellen S7-200-AWL und vom S7-200-VKE-Stack hat, dann sollt man besser nicht versuchen, in AWL zu programmieren. Dann ist es angebracht, zunächst nur in der FUP- oder KOP-Ansicht zu programmieren, sich dann die AWL-Ansicht des erzeugten Codes anzusehen und daraus zu lernen. (Das gilt auch für diejenigen, die helfen wollen - "einfach mal die Fresse halten" ).
Hier ein paar Grundsätze des S7-200-AWL:
Zu den Codestücken von Detto:
Die Taster-Eingänge E2.0 und E2.1 KEINEN Einfluß auf die Timer T39 und T40, weil nacheinander LD und LDN benutzt werden, das erste LD wird aber nicht beachtet. T39 und T40 sind nur von E0.0 abhängig, laufen also beide synchron, egal welchen Zustand die Taster haben.
Wenn bei diesem Code
das MW12 im Bereich 32001 .. 32767 ist, dann wird das +I und das MOVW NICHT ausgeführt.
Wenn das MW12 nicht noch anderswo beschrieben wird, dann kann AAW4 nur maximal 32100 werden.
AAW4 könnte aber auch negativ werden (-32768 .. -1), weil UW<= das Vorzeichen in MW12 auswertet.
Die Ansteuerung und Begrenzung des Ausgangs auf 6400 ... 32000 könnte man z.B. so machen:
Harald
Hier ein paar Grundsätze des S7-200-AWL:
- Fast alle Befehle sind VKE-abhängig, auch MOVx. MOVx müssen nicht übersprungen werden.
- Jede NEUE Verknüpfung muß mit LD.. beginnen, U.. und O.. verknüpfen nur das schon bestehende VKE weiter. Auch nach einer Zuweisung!
Folgt nach einer Zuweisung (= S R) ein U.. oder O.., dann wird KEINE neue Verknüpfung begonnen, sondern die vorherige fortgesetzt (das VKE der Zuweisung wird weiter-verknüpft) - Mehrere LD.. nacheinander machen keinen Sinn, wenn nicht danach ein ULD oder OLD kommt.
Jedes LD.. beginnt einen neuen Verknüpfungszweig, die Zweige müssen irgendwann auch zusammengeführt werden (mit OLD oder ULD). Wenn nicht, dann wird nur der letzte Zweig beachtet, die vorherigen sind überflüssig.
Zu den Codestücken von Detto:
Die Taster-Eingänge E2.0 und E2.1 KEINEN Einfluß auf die Timer T39 und T40, weil nacheinander LD und LDN benutzt werden, das erste LD wird aber nicht beachtet. T39 und T40 sind nur von E0.0 abhängig, laufen also beide synchron, egal welchen Zustand die Taster haben.
Wenn bei diesem Code
Code:
UW<= MW12, 32000
+I +100, MW12
MOVW MW12, AAW4
Wenn das MW12 nicht noch anderswo beschrieben wird, dann kann AAW4 nur maximal 32100 werden.
AAW4 könnte aber auch negativ werden (-32768 .. -1), weil UW<= das Vorzeichen in MW12 auswertet.
Die Ansteuerung und Begrenzung des Ausgangs auf 6400 ... 32000 könnte man z.B. so machen:
Code:
// inc
LD E2.0 // Taster Stellung PLUS
UN T39 // Taktgeber
...
+I +100, MW12
// dec
LD E2.1 // Taster Stellung MINUS
UN T40 // Taktgeber
...
-I +100, MW12
// auf 6400 .. 32000 begrenzen und Ausgabe
LD SM0.0
LPS
UW> MW12, 32000
MOVW 32000, MW12
LRD
UW< MW12, 6400
MOVW 6400, MW12
LPP
MOVW MW12, AQW4
Harald