Step 7 Darstellung in FUP

Geht. Die Typkonvertierungs-Bausteine findest du im Order "Umwandler"

DI_DTR_DIVR_FUP.jpg
 
Zuletzt bearbeitet:
L LW7
SLW 4
SRW 4
T LW7
L LB 7
BTI
T DBx.x
Überlege mal, was dieser Code tun soll und formuliere dann neu in FUP.
Ein 1:1-Übersetzen dieses dirty AWL in FUP ist ohne zusätzliche Informationen bzw. zusätzliche Hilfsvariablen nicht möglich.
Probleme:
- die ersten 4 Zeilen lassen sich am besten mit WAND_W übersetzen, sind jedoch im gezeigten Kontext sinnlos
- das BCD_I braucht ein WORD am Eingang

Harald
 
SLW 4
SRW 4
löschen im Wort7 die linken 4 Bits.

L LB7
damit wird das linke Byte mit den 4 gelöschten Bits weiterverarbeitet.
(Ich komm mit der blöden Reihenfolge in Step x nie richtig zurecht. Aber ich denke, dass es stimmen müsste)

Somit machen die ersten 4 Befehle wohl auch einen Sinn.
Man müsste mal den kompletten Code dazu sehen.
 
Du solltest wie PN/DP schreibt dir langsam Gedanken machen, was der Code überhaupt macht.
Das irgendwie umwandeln, ohne es zu verstehen was es soll, dann lass es besser.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Call SFC 1
Ret Val:=#ACT_RETVAL
CD :=OUT_DATE_AND_TIME
[...]
L LW7
SLW 4
SRW 4
T LW 7
L LB 7
BTI
DBx.x
Den Sinn von obigem Code kann man so umsetzen:
Code:
        +--------+
        | WAND_W |
      --|EN      |            +--------+
   LW6--|IN1  OUT|--#tmpWord  |  MOVE  |
W#16#7--|IN2  ENO|------------|EN   OUT|--DBx.DBxx
        +--------+  #tmpWord--|IN   ENO|--
                              +--------+
Das ist ein ziemlich dirty Schweinecode den Du da hast. Das Übersetzen in FUP macht ihn auch nicht besser.

Harald
 
Somit macht der AWL-Code genau das, was er machen soll.

Etwas gefährlich dürften die Befehle "L LW7" und "T LW7" sein, da sie Speicher ausserhalb der definierten Variable lesen/schreiben.

Für die Darstellung in FUB würde ich den Code nicht nachbilden, sondern den fertigen IEC-Baustein "FC7 DT_DAY" verwenden.
Der macht genau das Gleiche wie die AWL-Routine und ist direkt in FUB verwendbar.
 
Und die ganze Umkopiererei (LB0-LB6) wäre hinfällig, wenn du beim SFC1 gleich den DB-Bereich angibst.
Somit hättest du im FUB nur den Aufruf vom SFC1 und vom FC7.
 
Zurück
Oben