Step 7 INT in Pointer integrieren

1010

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS Welt,

ich habe mal eine Frage:

Kann man ein INT-Wert in einen Pointer integrieren.

z.B wenn DB1.DBW0 den INT Wert 10 hat geht das das man diesen Wert in einen Pointer integriert also so

P#DB2.DBX(INT-Wert).0 also P#DB2.DBX(10).0

Geht das und wenn ja wie sieht die korrekte schreibweise aus? :confused:
 
Schau Dir in der Step7-Hilfe oder hier in der FAQ das Format des Datentyps ANY an, dann siehst Du wo Dein INT-Wert integriert werden muß.
Etwa so:
Code:
L    #IntWert
SLD  3
L    P#DBX0.0
+D
LAR1 P##MyAny
T    D [AR1,P#6.0]

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke schon mal aber ich glaube in meinem nächsten Leben werde ich Schlosser ;)

Ich habe die Hilfe schon durchgelesen komm aber damit nicht ganz klar.

Also ich will einen SFC 20 (Blkmov) beschreiben und so sollte das aussehen:

EN --- E0.0
SRCBLK ---DB1.DBX0.0 BYTE8
RET_VAL --- MW200
DSTBLK --- ????

???? --- hier soll dan der ANY bzw. DB2.DBX (INT-WERT).0 hin

wie sieht das denn dann genau aus??
 
In TEMP eine ANY-Variable "tempAny" anlegen, alle 10 Bytes der Variable mit den nötigen Werten beschreiben (siehe FAQ) und dann diese Variable an BLKMOV.DSTBLK angeben.

Beispiel für Zieladresse "DB2.DBX(IntWert).0 BYTE 8":
Code:
LAR1  P##tempAny                  //Adresse der TEMP-ANY-Variable in AR1 laden

L     B#16#10                     //Syntax-ID 10h für S7
T     B [AR1,P#0.0]
L     B#16#2                      //Datentyp BYTE
T     B [AR1,P#1.0]
L     8                           //Anzahl (Wiederholungsfaktor): 8 Byte
T     W [AR1,P#2.0]
L     2                           //Nummer des Ziel-DB: DB2
T     W [AR1,P#4.0]

L     #IntWert
SLD   3                           //--> P#(IntWert).0
L     P#DBX0.0
+D                                //--> P#DBX(IntWert).0
T     D [AR1,P#6.0]

CALL  "BLKMOV"
 SRCBLK :=P#DB1.DBX0.0 BYTE 8
 RET_VAL:=#tempInt
 DSTBLK :=#tempAny

Harald
 
Zurück
Oben