Step 7 Hilfe !!! Sprungbefhle und Zeitglieder !!!

Guerriller0

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

ich versuche gerade vergebenss ein Problem zu lösen.
Beim ersten Starten des progamms , startet mein zeit glied wie von mir gewollt ,
bei weiteren schritten sprich "sprung zurück" oder "erneutest trigern (FN E250.7)"

subtrahiert sich zwar der gewünschte wert 200 aus dem MW110 aber das zeitglied "T SV 10" Startet nicht mehr
Habe das ganze mit fast allen Zeitgliedern , mit merkern zum triggern , mit flanken Positiv/negativ probiert
Und weis nicht mehr weiter..

Kann mir jemand erklären was das problem ist und wie eine lösung ausehen könnte .

PS.: Der durch TIMER "T 10" ausgelöste Ausgang A6.0 fällt auch nicht ab

Danke schon im vorraus

AWL:
U E 250.6
SPB M10k

U E 250.7
FN M 140.0
SPB M200

U E 250.0
FP M 140.1
SPB M040

SPB END

M10k: L 10000
T MW 110

BE

M040: L MW 110
L 40
-I
T MW 110

BE

M200: L MW 110
L 200
>=I
SPBN M100


L MW 110
L 200
-I
T MW 110


L S5T#3S
SV T 10


U T 10
= A 6.0

U T 10
FN M 142.0
SPB M200

BE

M100: L MW 110
L 100
>=I
= A 6.1
BE

END: NOP 0
BE
 
Ich würde mir einmal die Funktion und Beschaltung des SV anschauen.
Schon einmal etwas von Signalwechsel bei Timern gehört?


bike
 
Du solltest Dir noch einmal überlegen, ob Du den Code ohne Sprungbefehle schreiben kannst.
In den meisten Fällen wird ein Programm durch viele Sprünge schwer nachvollziehbar. Dazu kommen einige Fehlerquellen, wie Du nun erfahren durftest...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du solltest Dir noch einmal überlegen, ob Du den Code ohne Sprungbefehle schreiben kannst.
In den meisten Fällen wird ein Programm durch viele Sprünge schwer nachvollziehbar. Dazu kommen einige Fehlerquellen, wie Du nun erfahren durftest...

Arithmetische funktionen mit Folgeverknüpfungen sind leichter mit Sprungmarken zu bewältigen , und den überbick habe ich immer noch , danke auch an dich ! gruss "ein padavan"
 
Arithmetische funktionen mit Folgeverknüpfungen sind leichter mit Sprungmarken zu bewältigen , und den überbick habe ich immer noch , danke auch an dich ! gruss "ein padavan"

Nein, das glaube ich dir nun gar nicht, denn dann müßtest du nicht nach dem Fehler suchen.
Eine Zeit benötigt zum starten immer einen Signalwechsel an ihrem Input.
Durch die Sprünge ist es für Außenstehende nur mühsam nachvollziehbar, wann genau der Timer umsprungen wird und wann nicht.
Daher vermuten hier einige zu Recht, dass du, nachdem der Timer abgelaufen ist, um ihn herumspringst und mit dem nächsten Ereignis wieder in den Code mit dem Timer springst.
Das würde dann bedeuten, der Timer bekommt nichts von einer Flanke mit, für ihn ist sein Eingang immer True, denn wenn du um ihn herumspringst, dann bekommt er nicht mit das zu diesem Zeitpunkt sein Input False ist.
Du solltest also genau dort noch einmal suchen.
Es wäre besser, den Timer auszuführen und nur seinen Input entsprechend mit den richtigen Signalen zu versorgen.
Durch deine vielen BE geht das aber so gar nicht. Statt BE lieber an das Ende des Bausteins springen und dort am Ende den Timer aufrufen, dann bekommt der auch alles mit.
 
Ich habe mir Deinen Code nicht so genau angesehen... So gesehen hast Du absolut Recht.
Für die Übersichtlichkeit und auch zum Ausmerzen der Fehler könntest Du evtl. Deine Sprünge nach diesem Prinzip "optimieren":

Code:
U     E    250.6
SPBN   M10k
L     10000
T     MW   110
M10k: nop 0

U     E    250.0
FP    M    140.1
SPBN   M040
L     MW   110
L     40
-I    
T     MW   110
M040: nop 0

Es bleibt natürlich in Deiner "künstlerischen Freiheit", wie Du zum Ziel kommst.
 
Zurück
Oben