if then else unter awl ??

prinz1978

Level-2
Beiträge
149
Reaktionspunkte
2
hallo,

wie könnte man so etwas wie if then else befehle in awl programmieren mit sprungmarken ?? wenn ja könnt ihr ein paar beispiele reinstellen um nachvollziehen zu können.


mfg
 
Code:
*
      U     E      0.0
      SPB   then
      SPBN  else
then: =     A      0.0
      SPA   ifen
else: =     A      1.0
ifen: NOP   0
 
Code:
      U     E      0.0
      SPB   then
      SPBN  else
then: =     A      0.0
      SPA   ifen
else: =     A      1.0
ifen: NOP   0

Das SPBN sollte wohl besser durch ein SPA ersetzt werden, da ein bedingter Sprung das VKE auf 1 setzt. Wenn E0.0 false ist, wird so trotzdem nicht in den Else-Zweig gesprungen.
 
Das SPBN sollte wohl besser durch ein SPA ersetzt werden, da ein bedingter Sprung das VKE auf 1 setzt. Wenn E0.0 false ist, wird so trotzdem nicht in den Else-Zweig gesprungen.

es sollte auf jeden fall durch ein SPA ersetzt werden - recht du hast

und damit der test auch funktioniert:

Code:
*
      U     E      0.0
      SPB   then
      SPA   else
then: =     A      0.0
      R     A      0.1
      SPA   ifen
else: =     A      0.1
      R     A      0.0
ifen: NOP   0
 
hallo,

wie ist das dann genau mit lade und transeriere ?? angenommen ich muss 2 werte vergleichen wenn ergebnis ok dann ein anderes wert laden sonst wieder ein anderes wert dann wieder vergleichen unsw.

mfg
 
Dann nimmst du statt "U E 0.0" an gleicher Stelle deinen Vergleich rein ...

Wäre es nicht sinnvoller, du fragst nach der kompletten Aufgabenstellung ?

Gruß
LL
 
ok ich möchte 1 wert vergleichen wenn der wert kleiner oder gleich ist als max_grenze und grösser gleich wie min_grenze ist dann wird der defaultwert übernommen.

mfg
 
Du meinst sicher, dass du den Wert akzeptierst, wenn er zwischen min.- und max.-Grenze ist und ansonsten den Defaultwert wieder laden möchtest .,..

Das ginge dann so ...
Code:
L #Eingabe
L #min_Wert
< R
SPB xChk
L #Eingabe
L #max_Wert
> R
SPB xChk
SPA OK
 
xChk: L #Default
T #Eingabe
OK: nop 0
oder so :
Code:
U(
L #Eingabe
L #min_Wert
>=R
)
u(
L #Eingabe
L #max_Wert
<=R
)
SPB OK
 
 L #Default
T #Eingabe
OK: nop 0
Gruß
LL
 
danke für die lösung wo sind denn jetzt die if then bedingungen ?? zu sehen im code?



L MW 10 // if
L MW 20
<I
SPB xChk //then

L MW 10 //if
L MW 40
>I
SPB xChk //then
SPA OK //else

xChk: L MW 60 //then
T MW 10
OK: NOP 0 //endif

so ???
 
Zuletzt bearbeitet:
Code:
*
      U     E      0.0
      SPB   then
      SPBN  else
then: =     A      0.0
      SPA   ifen
else: =     A      1.0
ifen: NOP   0


zu beginn solltest du die in den Sprüngen gesetzten Bits Rücksetzen!
oder in den anderen Sprüngen rücksetzen

u #signal_high // permanentes True Signal
R A0.0
R A1.0

U E 0.0
...
...
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…