Ausgangswert neu berechnen und ausgeben - S7 200 - MikroWin

akrapovic

Level-1
Beiträge
36
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier ist das Programm:

spurqualiw.jpg



ich möchte ich durch den "OUT_7" zusätzlich die Fahrgeschwindigkeit "MW6" halbieren.

Allerdings ist der Ausgang OUT_7 nicht immer aktiv, sondern nur wenn die Spurqualität schlecht ist.

Welchen Wert IN1 kann ich also an den Motor weitergeben ?

Könnte ich bei DIV_I als Ausgang nochmal MW6 verwenden oder kommt das Programm dann durcheinander ??
 
Laut dem Code-Schnipsel wird das MW6 aus MW8 berechnet und damit immer wieder initialisiert, bevor die Division kommt. Wenn das die einzigen Verwendungsstellen von MW6 sind und die Netzwerke in dieser Reihenfolge stehen, wird der Code funktionieren, wenn Du MW6 noch einmal verwendest.

Edit: Ich kenne die 200-er Steuerung nicht so gut. Es kommt natürlich darauf an, dass die Division vom VKE des Merkers davor abhängt. Ggf. brauchst Du ein neues Netzwerk mit einer Abfrage des Merkers für die halbe Geschwindigkeit.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
erstmal zur eigentlichen Frage - da wo noch die 3 Fragezeichen sind, muss jeweils das MW6 hin:



Dann ein bißchen Grundsätzliches:

Verriegelungen gehen zwar auch mit den SR-Gliedern, aber das ist wie mit Spatzen auf Kanonen schießen.
In den meisten Fällen reicht ein einfaches UND, so wie im Bild oben.

Dann sieht man im Bild oben links das Menü Ansicht. Dort kann man einfach die Ansicht von FUP auf AWL (oder KOP) umschalten. Der AWL-Code läßt sich einfach als Text kopieren und hier als Code (Symbol #) posten. Dann sieht das Ganze so aus:
Code:
[FONT=courier new]//Netzwerk 1
LD     Out_8:E0.7
O      Out_7:E0.6
MOVW   Geschw_Fakt:MW8, Geschw_Fahr:MW6
UENO
*I     +1000, Geschw_Fahr:MW6
UENO
U      Out_7:E0.6
/I     2, Geschw_Fahr:MW6

//Netzwerk 2
LD     Out_8:E0.7
O      T36
MOVW   Geschw_Fahr:MW6, Geschw_M1:MW2
UENO
+I     PID_Signal:MW16, Geschw_M1:MW2
UENO
MOVW   Geschw_M1:MW2, Soll_M1:AAW0[/FONT]
So gepostet, kann man die Code-Schnipsel als Helfer bei sich ins Programm wieder einfügen und muss nicht alles neu schreiben. Das bedingt allerdings, das keine Fehler mehr im Programm sind und auch keine Fragezeichen. Also notfalls erstmal irgendeinen wert dort eintragen und in AWL dann wieder ersetzen, damit man sieht, wo die Probleme sind.
Das Netzwerk 1 und 2 hab ich per Hand eingefügt, damit man sie erkennt. Durch die // wird dies als Kommentar gekennzeichnet.

Und drittens würde ich persönlich die Halbierung der Fahrgeschwindigkeit in ein separates Netzwerk schreiben, um so etwas mehr Lesbarkeit zu erzielen, da sie ja nicht in jedem Fall benötigt wird (incl. einiger Vereinfachungen in AWL, wenn die Abhängigkeit vom Vorbefehl nicht unbedingt notwendig ist):
Code:
[FONT=courier new]//Netwerk 1
LD     Out_8:E0.7[/FONT][FONT=courier new]O      Out_7:E0.6[/FONT]
[FONT=courier new]MOVW   Geschw_Fakt:MW8, Geschw_Fahr:MW6[/FONT]
[FONT=courier new]*I     +1000, Geschw_Fahr:MW6[/FONT]
[FONT=courier new]
//Netzwerk 2[/FONT]
[FONT=courier new]LD     Out_7:E0.6[/FONT]
[FONT=courier new]/I     2, Geschw_Fahr:MW6

//Netzwerk 3
[/FONT][FONT=courier new]LD     Out_8:E0.7[/FONT]
[FONT=courier new]O      T36[/FONT]
[FONT=courier new]MOVW   Geschw_Fahr:MW6, Geschw_M1:MW2[/FONT]
[FONT=courier new]+I     PID_Signal:MW16, Geschw_M1:MW2[/FONT]
[FONT=courier new]MOVW   Geschw_M1:MW2, Soll_M1:AAW0[/FONT]
 
Zuletzt bearbeitet:
Zurück
Oben