Datentransportieren

Rose

Level-1
Beiträge
58
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen,

ich möchte die Daten von DB10.DBD0 zu PAD transportieren, wie kann ich das mit AWL realisieren?
was bedeutet der Zahl "100" im code " T PAD 100 " ? ist der eine Adresse?

vielen Dank im Voraus!

MFG,
Rose
 
hallöchen

L DB10.DBD0
T PAD 100

100 = Adresse die du beschreiben willst


m 100.0
mb 100
mw 100
md 100
 
gibt es möglichkeit, die ich die ganzen DB ins PAD laden kann?
oder kann man vieleicht mit AWL eine schleife schreiben, damit die daten im DB wortweise ins PAD geladet werden?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

folgende Code habe ich im OB1:
L DB11.DBD 0
T PAD 100
L DB11.DBD 4
T PAD 104
L DB11.DBD 8
T PAD 108
L DB11.DBD 12
T PAD 112
....
Ralle und CrazyCat haben gesagt, dass ich mit sfc 20 die Code vereinfacht kann, so habe ich die neue Code erzeugt:

CALL "BLKMOV"
SRCBLK :=P#DB11.DBX0.0 BYTE 16
RET_VAL:=MW0
DSTBLK :=PAD100

das Problem ist auf die letzte Zeile DSTBLK :=PAD100, denn auf PAD 100 gibt es bei mir nur 4 BYTE Speicher. ich habe auch mit P#PAD 100 byte 16 probiert, klappt es leide nicht. Weißt jemand hier wie ich das Problem lösen kann?

MFG,
Rose
 
der DSTBLK muss wie auch der SRCBLK
ein any-pointer sein
peripherie ist am sfc20 nicht erlaubt

musst du so machen.
Code:
      CALL  SFC   20
       SRCBLK :=P#DB11.DBX 0.0 BYTE 16
       RET_VAL:=MW100
       DSTBLK :=P#A 100.0 BYTE 16
      NOP   0
oder so mit der sfc15
Code:
      CALL  SFC   15
       LADDR  :=W#16#100
       RECORD :=P#DB11.DBX 0.0 BYTE 16
       RET_VAL:=MW100
      NOP   0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
null problemo

der unterschied ob du das mit sfc20 oder 15 machst ist dir klar?
mit der 20 schreibst du ins prozessabblid. mit der 15 direkt in die peripherie.
 
....
Ralle und CrazyCat haben gesagt, dass ich mit sfc 20 die Code vereinfacht kann, so habe ich die neue Code erzeugt:

CALL "BLKMOV"
SRCBLK :=P#DB11.DBX0.0 BYTE 16
RET_VAL:=MW0
DSTBLK :=PAD100

das Problem ist auf die letzte Zeile DSTBLK :=PAD100, denn auf PAD 100 gibt es bei mir nur 4 BYTE Speicher. ich habe auch mit P#PAD 100 byte 16 probiert, klappt es leide nicht. Weißt jemand hier wie ich das Problem lösen kann?

Was soll das heisen was du da von dir gibst ???

kannst du das ganze gar nicht eingeben werden deine Daten nicht kopiert oder.

Zum ersten ich hab denn SFC 20 noch nie genommen aber wenn man mal die beschreibung durchliest

Dann steht dort das DSTBLK ein ANY sein SOLLTE :rolleyes:
und zweitens steht dort glaub ich das es auf P Adressen nicht geht wenn ich mich irren sollte dann verbessert mich hab leider im moment nur die hilfe von S7 5.1 SP3 bei mir deshalb könnte es ja sein das sich was geändert hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
null problemo

der unterschied ob du das mit sfc20 oder 15 machst ist dir klar?
mit der 20 schreibst du ins prozessabblid. mit der 15 direkt in die peripherie.

habe gerade mit deiner Code probiert, mit sfc 20 hat das Programm richtig funktioniert. ich copiere zuerst die Nutzdaten mit sfc 20 ins Ausgang der DP-Slave, und von Eingang der Master lese ich die Daten und weiter im Master arbeite...
mit sfc 15 weiß ich noch nicht, ich werde später auf jeden fall noch mal versuche.
 
Zurück
Oben