S7-319 <- SFC14 <- ABB IRC5p DP-Slave <- SFC15 <- S7-319 (Profibus)

cosmomaster

Level-2
Beiträge
72
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hat jemand schon mal hin bekommen eine IO-Karte eines ABB Roboters mit IRC5p-Steuerung (DSQC 352A) mit SFC14 konsistent auszulesen?

Mein Code:
Code:
     CALL  "DPRD_DAT"
       LADDR  :=W#16#3E8
       RET_VAL:=#ret_in
       RECORD :=P#M 1000.0 BYTE 16
HW_Config siehe Anhang.

Ich bekomme an RET_VAL immer nur den Fehler:
80B1 Die Länge des angegebenen Zielbereichs ist ungleich der mit STEP 7 projektierten Nutzdatenlänge.
Kann mir nicht erklären warum.
 

Anhänge

  • HW_Config.JPG
    HW_Config.JPG
    54,3 KB · Aufrufe: 30
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe leider keine Erfahrung mit ABB.
Normalerweise klappt es ziemlich einfach mit SFC14/SFC15 wenn es mit der HW Konfig übereinstimmt.

Eine weitere Idée: Ist vielleicht die Grösse von der Proces-Image vergrössert geworden ? So das der PI ganz oder teilweise überlapt mit der ABB Roboters E/A ?
 
Habe leider keine Erfahrung mit ABB.
Normalerweise klappt es ziemlich einfach mit SFC14/SFC15 wenn es mit der HW Konfig übereinstimmt.

Eine weitere Idée: Ist vielleicht die Grösse von der Proces-Image vergrössert geworden ? So das der PI ganz oder teilweise überlapt mit der ABB Roboters E/A ?

Process-Image? Meinst Du Größe des PAE / PAA in den Eigenschaften-CPU?

Hab ich geändert ja auf jeweils 1200.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, meine ich.
Wenn das Process-Image enthält die E/A von der ABB Roboter brauchst du SFC14 und SFC15 gar nicht.
Wenn du trotzdem SFC14 oder SFC15 verwendest bekommst du Fehlermeldungen.

Hab auf 900 reduziert. Funktioniert trotzdem nicht. Anzeige in Variablentabelle und DWORD-weises einlesen über Pointer ging vorher übrigens.

Noch jemand ne IDEE?
 
Nö hat nicht geholfen. Der SFC14 liest ja auch nur ein also warum sollten ihn die 8word out kümmern. Die behandelt dann der SFC 15 beim schreiben.

ja stimmt. ich habe jetzt deinen Anhang der Hardwarekonfig angesehen

da hast du 1000....1015(1 word) bei den Eingängen stehen, das sind definitiv keine
8 word,oder?
 
Zuletzt bearbeitet:
1000-1015 das sind doch immer Bytes, also doch 8 Word ?

Ich hatte gerade einen DP-DP koppler mit 16 Worten jede Richtung ergab 32 Bytes und hat Funktioniert

oder bin ich jetzt falsch?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist bei den 8 Word auch Konsistenz über gesamte Länge eingestellt?
Mit Konsistenz über Einheit tun´s SFC14/15 m.W. nicht.
Alternative: Leg wieder alles ins Prozessabbild und schieb dir die Daten per Blockmove (SFC20) dahin, wo du sie haben willst (oder greif direkt drauf zu).

Grüße von HaDi
 
Ist bei den 8 Word auch Konsistenz über gesamte Länge eingestellt?
Mit Konsistenz über Einheit tun´s SFC14/15 m.W. nicht.
Alternative: Leg wieder alles ins Prozessabbild und schieb dir die Daten per Blockmove (SFC20) dahin, wo du sie haben willst (oder greif direkt drauf zu).

Grüße von HaDi

In Eigenschaften DP-Slave kann ich nur die Anfangsadresse und Prozessabbild einstellen. Alles andere ist ausgegraut. Kann man da was an der GSD-Datei drehen?

Was ich letztendlich will ist den gesamten Bereich in einem Rutsch auf eine statische Variable vom Typ UDT (1:1 Abbild des DP-Slave) in einem FB schreiben und zwar über Pointer.
 
Wenn du das irgendwie so löst, müsste eigentlich gehen


L 1000 // Startadresse laden
SLD 3 // Verschieben
LAR1

L P##UDT_STruct // Anfangsadresse des UDT LAden
LAR2

L PEW [AR1,P#0.0] // Peripherie holen
T DIW [AR2,P#0.0] // in DI Ablegen
L PEW [AR1,P#2.0]
T DIW [AR2,P#2.0]


.....

Umgegekehrt zürück.
 
Zuletzt bearbeitet:
Zurück
Oben