CPU geht auf STOP, ich finde den Fehler nicht :(

nikilouder

Level-1
Beiträge
74
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider geht meine 95U immer auf Stop wenn ich folgenden Code ausführe.
Zuerst will ich mit Hilfe von Fb 250 einen Analogeingang Normieren und in MW 120 ablegen. Die Normierung erfolgt auf 0 - 1000.
Aus diesen Werten will ich zwei Zeitwerte für Timer bilden. Diese Timer sollen sich abwechseln und zwar soll ein ganzer Takt dieser beiden Timer genau eine Sekunde dauern. Sprich : 3V am Analogeingang bedeutet, dass T2 300ms und T3 700ms 1 ist.
Der Code nach dem Aufruf von FB 250 wandelt KF in KT um. Leider weiss ich auch nicht, wie genau dieser Code funktioniert - ich habe ihn hier aus diesem Forum - leider wurde er an der Stelle nicht ausführlich erklärt :/

Code:
    :SPA  FB 250  
NAME:RLG:AE 
BG  :KF+00008  //Adresse Onboard-Peripherie
KNKT:KY000,004 //EW40 unipolar
OGR :KF+01000 //1000ms            
UGR :KF+00000 //0ms    
EINZ:M0.0 //M0.0 ist 0 => Auslesen aus PAE       
XA  :MW120 //Ergebnis transferieren in MW120
FB  :M90.0                       
BU  :M90.1  
:                                                                                                                                   
:L    MW 120 // Folgender Code soll KF in KT wandeln     
:L    KF 100                                                                         
::F                                                                 
:DUF                                                  
:TMW130                           
:L  KH1000
:+F                                                                                                       
:T MW130                                                                               
:                                                                                                           :                                                                                                         
:                                                                                                          
:L    KF 1000 //Gegenwert für den Zweiten Timer bilden
:L    MW 120                                      
:-F                  
:T MW120                                                  
:                                     
:L    MW 120 //Selbe Prozedur nochmal                                            
:LKF100                        
::F                                                                                                        
:DUF                                                                                                     
:T MW140                                                            
:L KH1000                                       
:+F                                                                   
:T MW140 
:
:                     
:UN   T    3  //Timer sollen sich abwechseln
:L    MW 130                                                             
:SE T2                                                         
:            
:U T2         
:L    MW140                                                                                          :SE T3  
:                                                                                                                             :***                                                                                                                       
Netzwerk 2 von 2        
:
:U    T 2                 //Testweise Timer auf Ausgänge legen
:=    A   32.0                                                       
:U    T    3                                                           
:=    A   32.1
Ich hoffe ihr könnt mir irgendwie helfen...
 
Ohne mal deinen Code analysiert zu haben.
Schaue doch mal in deinen USTACK bzw. BSTACK was da drin steht.
Das hilft dir auch in Zukunft Fehler zu finden, wenn du verstehst wie diese Stacks funktionieren.
 
Aus dem Tabellenheft S5-115U (CPU 945)

DUF:

Festpunktwandlung (16 Bit) dual​
® BCD

Der Inhalt von AKKU 1​
>L wird als 16>Bit>Festpunktzahl interpretiert und in eine dreistelige BCD>codierte Zahl mit Vorzeichen umgewandelt.

Ergebnis im AKKU 1
>L, AKKU 1>H bleibt unverändert.

Die S5-95U kennt diesen Befehl nicht.

Als Ersatz für den Befehl den integrierten FB 241 benutzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay.... leider kommt ich nicht aus der S5-Zeit (Ausbildung 2008 angefangen). Hätte nicht gedacht, dass die S5 so viele banale Sachen nicht ohne weiteres kann.
Ich habe jetzt über einen Timer Impulse erzeugt, die gezählt werden. Einen Vergleichswert lege ich über meinen Poti fest. Schien mir so am einfachsten - und ich muss keine Bits hin und her schieben ;)
 
Zurück
Oben