Einfach so umschalten wird nicht gehen. Es funktioniert nur, wenn du den Code in FUP geschrieben hast und dann zwischen AWL und FUP switche willst.
Es funktioniert auch, wenn man nachträglich an den richtigen Stellen NOP 0 und Netzwerktrennungen einfügt.
Aber Du hast Recht, es ist nicht einfach. Denn wer weiß schon, wo welche Einfügung erwartet wird.
Da ist es einfacher, gleich neu zu erstellen. (Hab' ich auch so gemacht
)
Doch die Frage war ja, ob es überhaupt geht.
... außer bei dem Vergleicher. Bei FUP kann man kein BE angeben, ...
Auch das geht: Programmsteuerung -> [RET] = Bedingtes Bausteinende. Da vorher eh' ein Vergleich durchgeführt wird, kann man auch bedingt den Baustein beenden, statt das unbedingte Ende zu überspringen. Wäre in meinen Augen eh die bessere Variante (, allerdings hängt das auch davon ab, wo der Sprung überhaupt hingeht):
Code:
L #byPEB_1
L B#16#82
<>I
BEB
Was in FUP aber normalerweise beim INT-Vergleich Probleme macht, sind die beiden Byte-Werte.
Deshalb Frage @190B:
Wie hat bei Dir STEP7 den als Byte deklarierten Eingang #byPEB1 als Formalparameter am INT-Vergleicher zugelassen. Bei mir wird vorher eine Transformation zu INT erwartet und auch die B#16#82 muss ich als 130 (dezimal) angeben.
Daraus ergeben sich bei mir folgende grüne Einfügungen bzw. Netzwerktrennungen (------) und rote Änderungen (Sprung entfällt), damit man zu FUP/KOP umschalten kann:
... kann ich so einen AWL Code auch in FUP darstellen lassen.
Wenn ja was müsste ich hierfür ändern, Klammern oder ähnliches.
Code:
L B#16#C2
T #byPAB_1
L #DB_Number
T #DB_No
Auf DB [#DB_No]
L DBB 42
T #byPAB_2
L DBB 43
T #byPAB_3
L #byPEB_1
L B#16#82
==I
SPB I_SC
BE
Code:
[FONT=Courier New] L B#16#C2 //Hex-Wert C2 (Dez. 194)
T #byPAB_1 //an Ausgangsbyte 1 übertragen
[COLOR="#00FF00"]NOP 0
---------------------------------------[/COLOR]
L #DB_Number //Eingang DB-Number von Byte/Int?
T #DB_No //in WORD (temporär?) wandeln
[COLOR="#00FF00"]NOP 0
---------------------------------------[/COLOR]
AUF DB [#DB_No] //läßt sich wegen der variablen DB-Nummer nicht zu FUP ändern
[COLOR="#00FF00"]
---------------------------------------[/COLOR]
L DBB 42 //Datenbankbyte 42
T #byPAB_2 //an Ausgangsbyte 2 übertragen
[COLOR="#00FF00"]NOP 0
---------------------------------------[/COLOR]
L DBB 43 //Datenbankbyte 43
T #byPAB_3 //an Ausgangsbyte 3 übertragen
[COLOR="#00FF00"]NOP 0
---------------------------------------[/COLOR]
L #byPEB_1 //Eingangsbyte?
[COLOR="#00FF00"]T #iPEB_1[/COLOR] //in Integer wandeln
[COLOR="#00FF00"]NOP 0
---------------------------------------
L #iPEB_1[/COLOR] //zu INT gewandeltes Eingangsbyte
L [COLOR="#FF0000"] 130 [/COLOR] //Hex-Wert b#16#82 als Int 130
[COLOR="#FF0000"]<>[/COLOR]I //statt bei Gleichheit, Beenden überspringen - bei Ungleicheit den
[COLOR="#00FF00"]SAVE[/COLOR] //(für FUP-Befehl RET nötig)
BE[COLOR="#00FF00"]B[/COLOR] //Baustein beenden[/FONT]