Immer noch ein Problemm mit SFC 14&15

fubu16

Level-1
Beiträge
50
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo alle zusammen,
ich möchte gerne einen Slave mit dem SFC 15 ab der Adresse

LADDR :=W#16#200 (Ausgang)
mit 16 Bytes beschreiben die so aussehen:

00 00 00
47 00 00
00 00 00 00
00 00 00 00 00 00

und danach muss ich die Werte mit SFC 14 ab der Adresse

LADDR :=W#16#200 (Eingang)
lesen.....danach den wert irgendwo ablegen, damit ich ihn später lesen kann, oder den wert betrachten, der sich ständig aktualisiert!
kann mir jemand helfen SFC 14 & SFC 15 richtig zu parametrisiere.
ich habe von Step 7 keine ahnung...AWL oder KOP code wäre hilfreich!
ich danke euch allen im voraus
fubu16
 
Hallo fubu,

wenn die Adresse stimmt (hexa), dann muss eigentlich nur noch der ANY-Pointer, der auf den Datenbereich zeigt, die gleiche Zugriffsbreite haben wie du sie in der HW-Konfig für den Teilnehmer konfiguriert hast.
Wenn die Funktion nicht ausgeführt wird, gibt sie über RET_VAL einen Fehlercode aus. Die Bedeutung des Fehlercodes erfährst du in der Step7-Hilfe.


Gruss, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
anbei mal einen Beispielaufruf. ACHTUNG Englische Darstellung

Code:
      A     "ONE"
      JNB   _001
      CALL  "DPRD_DAT"
       LADDR  :=W#16#200
       RET_VAL:=#RETVAL
       RECORD :=P#DB101.DBX0.0 BYTE 24
_001: NOP   0

Code:
      A     "ONE"
      JNB   _002
      CALL  "DPWR_DAT"
       LADDR  :=W#16#200
       RECORD :=P#DB101.DBX36.0 BYTE 24
       RET_VAL:=#RETVAL
_002: NOP   0
 
wo und vor allem wie trage ich den diese werte in einem merker die ich gerne schreiben möchte??
00 00 00
47 00 00
00 00 00 00
00 00 00 00 00 00
 
Hallo,

also was muss Du jetzt wohl tun.
Die Daten zu den Merkern transferieren hört sich doch nicht schlecht an 8)
=>
Nehmen wir an Du hast HEX werte
Code:
      L     B#16#AB
      T     MB     0
      L     B#16#3C
      T     MB     1

etc.

EDIT: Das sollte vor dem Aufruf des SendeFC passieren...

Man kann dafür auch einen DB nehmen und dort die Werte als Anfangswert eintragen.
 
Zurück
Oben