Frage

F

fabrice

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich habe hier eine Anweisung im OB1 geschrieben, mein Problem ist aber,
dass das Programm immer in den FC1 springt.

R M5.0
U M5.0
CALL "Test 1"


Liege ich hier richtig? Er dürfte erst in Test 1 springen wenn der Merker
logisch 1 wäre und da ich den Merker vorher "Reset" müsste das VKE 0 sein??



grüsse Fabrice
 
Hi!

Der CALL-Befehl ist nicht VKE-abhängig, wird also immer ausgeführt. Du kannst stattdessen den Befehl CC (Conditional Call) verwenden.

Gruß
berty
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Call ist ein unbedingter Aufruf. D.h. der Aufruf ist vom Verknüpfungsergebnis unabhängig.

Probier mal:

u Mx.x
CC FC1

Gruß

Andreas

Edit: Da war wohl einer schneller
 
Danke für die Antworten und gleich nochmal eine Frage :lol:

U E 0.0
U E 0.1
U E 0.2
U E 0.3
U E 0.4
SPBN F1

F1: UN E 0.0
L B#16#2
T "Eingang".InputA0
UN E 0.1
L B#16#2
T "Eingang".InputA1
UN E 0.2
L B#16#2
T "Eingang".InputA2
UN E 0.3
L B#16#2
T "Eingang".InputA3
UN E 0.4
L B#16#2
T "Eingang".InputA4

Mein Problem hier ist: auch wenn die Eingänge 1 sind
geht das Programm in den F1: und setzt alle Felder

Meiner Meinung nach dürfte das Programm doch nur
bei Logisch 0 in den F1?
 
Antwort !

Die Sprunganweisung ist in diesem Fall überflüssig. Wenn nicht alle Eingänge 1 sind, springt er nach F1, sonst macht er mit der nächsten Anweisung weiter.
Was steht denn bei dir in der nächsten Zeile??
Davon ab ist der Rest auch Quatsch, da der Lade und Transferbefehl auch nicht verknüpfungsabhängig ist. D.h. Dein
U X.X
ist sinnlos...

Torsten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
fabrice schrieb:
Danke für die Antworten und gleich nochmal eine Frage :lol:

U E 0.0
U E 0.1
U E 0.2
U E 0.3
U E 0.4
SPBN F1

F1: UN E 0.0
L B#16#2
T "Eingang".InputA0
UN E 0.1
L B#16#2
T "Eingang".InputA1
UN E 0.2
L B#16#2
T "Eingang".InputA2
UN E 0.3
L B#16#2
T "Eingang".InputA3
UN E 0.4
L B#16#2
T "Eingang".InputA4

Mein Problem hier ist: auch wenn die Eingänge 1 sind
geht das Programm in den F1: und setzt alle Felder

Meiner Meinung nach dürfte das Programm doch nur
bei Logisch 0 in den F1?

Hallo,
in diesem Fall müsste es dann heissen:
SPB F1
Die Sprungmarke F1 muß am Ende der Anweisungen stehen z.B.
F1: NOP 0
In Deinem Fall wird bei VKE=0 nach F1 gesprungen, bei VKE=1 arbeitet das Programm aber auch an dieser Stelle weiter. Ein Sprung nimmt man, um z.B. ein Programmteil zu überspringen.
Gruß Andre
 
fabrice schrieb:
U E 0.0
U E 0.1
U E 0.2
U E 0.3
U E 0.4
SPBN F1
SPA ENDE

F1: UN E 0.0
L B#16#2
T "Eingang".InputA0
UN E 0.1
L B#16#2
T "Eingang".InputA1
UN E 0.2
L B#16#2
T "Eingang".InputA2
UN E 0.3
L B#16#2
T "Eingang".InputA3
UN E 0.4
L B#16#2
T "Eingang".InputA4

ENDE: NOP 0

Hallo!

Hier noch mal mein Vorschlag.... ;)

Viele Grüße, Tobias
 
Der Code innerhalb des umsprungenen Bereiches ist aber Unsinn:

Code:
U E 0.0 
U E 0.1 
U E 0.2 
U E 0.3 
U E 0.4 
SPBN F1 
SPA ENDE

F1: NOP 0
U E 0.0 
SPB F2

L B#16#2 
T "Eingang".InputA0 

F2: NOP 0
U E 0.1
SPB F3
 
L B#16#2 
T "Eingang".InputA1 

F3: NOP 0
U E 0.2 
SPB F4

L B#16#2 
T "Eingang".InputA2 

F4: NOP 0
U E 0.3 
SPB F5

L B#16#2 
T "Eingang".InputA3 

F5: NOP 0
U E 0.4 
SPB ENDE

L B#16#2 
T "Eingang".InputA4 

ENDE: NOP 0

Natürlich kannst du in diesem Fall das Umspringen aller Anweisungen bei
Code:
U E 0.1 
U E 0.2 
U E 0.3 
U E 0.4 
SPBN F1 
SPA ENDE
auch gleich komplett weglassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Meinst Du mich?
Wenn E0.0=0, dann wird der Sprungbefehl ausgeführt... das VKE=0, das ist ja der Auslöser für den negativen Sprungbefehl...

U e0.0
SPBN BLA....>---
SPA ENDE.........|
........................|
BLA: ...........<---

ENDE: NOP 0

Wenn E0.0=1, dann wird der Sprungbefehl nicht ausgeführt.... VKE=1...

U E0.0
SPBN BLA
SPA ENDE....>----
.........................|
BLA: .................|
.........................|
ENDE: NOP 0..<--

...naja, absoluter Sprung...

Viele Grüße, Tobias
 
Hallo!

...jetzt sehe ich das erst... ;)

natürlich ist der Code in dem Umsprungenen Bereich nicht wirklich sinnvoll... hab ich eben übersehen...

Viele Grüße, Tobias
 
Zurück
Oben