BSEND/BRCV ungewöhnliches Problem am BRCV

dk7as

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

habe ein kleines Problem beim BRCV - SFB13.

Habe 1 Microbox IPC mit WinAC RTX und eine S7 315 über Profinet verbunden und rufe über je einen Multiinstanz DB bei beiden SPSen ein Programm auf was einen DB immer zwischen den SPS en hin und her sendet.
Wenn ich bei beiden am
SD_1 und am RD_1 den Zeiger auf den Datenbereich angebe in der Form
P#DB603.DBX 0.0 DWORD 4096
Funktioniert die Kommunikation 100 %
nun möchte ich aber den Datenbereich für Send und RCV am In und IN/OUT Parameter des FBs den Datenbereich vorgeben können
Dazu habe in in IN einen ANY Pointer SD_DATA erstellt und RD_DATA am IN/OUT und einen ANY Pointer für Send und einen ANY Pointer für RCV in TEMP
Temp Send hat die Lokaladresse 14 und Temp RCV hat die Lokaladresse 4
Über
L #AR1_SAVE
LAR1
TAR2
UD DW#16#FFFFFF
L P##SD_DATA
+D
LAR1

L B [AR1,P#0.0]
T LB 14
L B [AR1,P#1.0]
T LB 15
L W [AR1,P#2.0]
T LW 16
L W [AR1,P#4.0]
T LW 18
L D [AR1,P#6.0]
T LD 20
bei Send und
TAR2
UD DW#16#FFFFFF

L P##RD_DATA
+D
LAR1
L W [AR1,P#0.0]
T LW 4
L W [AR1,P#2.0]
T LW 8
L W [AR1,P#4.0]
T LW 12
L D [AR1,P#6.0]
T LD 14
bei RCV kopiere ich die Zeiger von IN bzw IN/OUT in die Temp Variablen die ich dann im jeweils nächstfolgenden Netzwerk an die SFC BSend bzw BRCV übergebe.

wenn ich den BSend mit der Temp Variable und den BRCV mit dem direkten Verweiss P#DB603.DBX 0.0 DWORD 4096
versorge funktioniert die Verbindung auch 100 %
wenn ich aber bei der S7 315 alle beide mit den Temp Variablen versorge meldet die Microbox Status 7 und die S7 315 Status 4
Bei der Microbox habe ich Bsen und BRCV mit
P#DB3004.DBX 0.0 DWORD 4096 versorgt.

Die Datenbereichs DBs bei der Microbox ist der DB 3004 und bei der S7 315 der DB603.


Als Anlage hänge ich den FB der 315 als PDF an und das 1 Bild und 2 Bild ist der Status am RCV SFC Anhang anzeigen FB101.pdf.

Programmstruktur
OB1 ruft
FB100

und der FB 100 ruft dann den FB 101 als Multiinstanz auf

Momentan wird der FB 101 nur einmal im FB 100 aufgerufen
später soll er dann 3 mal für 3 S7 Verbindungen aufgerufen werden aber das kommt später wenn diese Konfig funktioniert.



Was könnte da falsch sein? Hat jemand von euch eine Idee?


Wenn ich mir die Pointer im Status ansehe stimmt eigentlich alles
 
Diese absoluten Zugriffe auf L.. sind es mal wieder! Wenn man sich dann auch noch verzählt...
Sie sehen zwar scheixxe aus, so sollte es aber funktionieren:
Code:
//Netzwerk 1
TAR2
UD DW#16#FFFFFF
L P##RD_DATA
+D
LAR1
L W [AR1,P#0.0]
T LW 4
L W [AR1,P#2.0]
T LW 6
L W [AR1,P#4.0]
T LW 8
L D [AR1,P#6.0]
T LD 10

//Netzwerk 8
//L #AR1_SAVE #AR1_SAVE  //sinnlos
//LAR1                   //sinnlos

TAR2
UD DW#16#FFFFFF
L P##SD_DATA
+D
LAR1
L W [AR1,P#0.0]
T LW 14
L W [AR1,P#2.0]
T LW 16
L W [AR1,P#4.0]
T LW 18
L D [AR1,P#6.0]
T LD 20
Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
kleiner Fehler große Wirkung jetzt funktionierts danke für den Hinweiss - PN/DP

:D Das die Adressen falsch waren hatte ich gar nicht gesehen. Zuerst hatte ich die RCV Temp Variable auf 0.0 liegen da hatte er mich schon vor einem absolut Zugriff gewarnt das kam wohl dadurch, dass ich den Baustein mal in FUB erstellt hatte und dadurch ein L0.0 im Baustein war.
 
Zurück
Oben