Step 7 AWL Frage

Thomashmr

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute bin noch am SPS Programmieren Lernen.

Könnte mir vl jemand von euch erklären was genau in dem Abschnitt Passiert und vl. auskommentieren
Code:
 CALL SFC      20       
  SRCBLK:=P#DB112.DBX 22.0 BYTE 2
         RET_VAL:=#TEMP1
         DSTBLK:=P#L 0.0 WORD 1
       L    #TEMP0            
       TAW            
       T    MW       10
       CALL SFC      20
         SRCBLK:=P#DB112.DBX 24.0 BYTE 2
         RET_VAL:=#TEMP1
         DSTBLK:=P#L 0.0 WORD 1
       L    #TEMP0
       TAW
 
Code:
[COLOR="#0000FF"]       CALL SFC      20
         SRCBLK:=P#DB112.DBX 22.0 BYTE 2
         RET_VAL:=#TEMP1
         DSTBLK:=P#L 0.0 WORD 1
       L    #TEMP0[/COLOR]            
       TAW            
       T    MW       10

[COLOR="#0000FF"]       CALL SFC      20
         SRCBLK:=P#DB112.DBX 24.0 BYTE 2
         RET_VAL:=#TEMP1
         DSTBLK:=P#L 0.0 WORD 1
       L    #TEMP0[/COLOR]
       TAW
Da wird die Reihenfolge von 2 Bytes umgedreht (Endianness). Eventuell im Zusammenhang mit einem Kommunikationspuffer. Der SFC20 "BLKMOV" wird vielleicht benutzt, um symbolisch adressiert aus einem Speicherbereich zu lesen? Nicht-symbolisch würde das auch so gehen (die blaue Anweisung ersetzt die blauen Anweisungen mit dem SFC20):
Code:
[COLOR="#0000FF"]L DB112.DBW22[/COLOR]  //lade 2 aufeinanderfolgende Bytes
TAW            //tausche L-Byte mit H-Byte im Word
T MW10         //lege die getauschten Bytes in MW10

[COLOR="#0000FF"]L DB112.DBW24[/COLOR]  //lade die nächsten 2 Bytes
TAW

Beschreibung was der SFC20 "BLKMOV" tut: setze den Cursor in die Zeile mit dem CALL und drücke F1

Harald
 
Wir wissen ja nicht, wo der Programmteil herkommt. Vielleicht liegt auf DB112.DBW22 eine Struktur aus 2 Bytes und es wurde original symbolisch adressiert? Das geht nur mit SFC20:
Code:
//     L    "MyDB".My2ByteStruct   //geht nicht --> aber mit SFC20

       CALL "BLKMOV"
         SRCBLK:="MyDB".My2ByteStruct
         RET_VAL:=#tempInt
         DSTBLK:=#tempWord

       L    #tempWord
       TAW
       T    MW       10

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja richtig,
Themenstartet, du könntest im AWL Editor ich glaube mit CTRL + Q einmal auf symbolische Darstellung umschalten.
Dann siehst du evtl. ob eine Struktur an SRCBLK übergeben wird.

Mit Grüßen
 
Zurück
Oben