Datenaustausch zwischen zwei Steuerungen

Limette

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

würde gerne zwischen zwei Steuerungen eine Kommunikation aufbaufen, alles per Profinet über ein PN/PN Koppler.

habe eine 319 PN
2 x 100 byte wurde in der hardwareconfig projektiert.
In OB1

NW1
Code:
CALL "DPRD_DAT"
LADDR :=W#16#[B]00
[/B]RET_VAL:=#_ret_val
RECORD :=P#DB1.DBX0.0 100 Byte
NOP 0
NW2
Code:
FB1 mit[B] IDB 1
[/B]
NW3
Code:
CALL "DPWR_DAT"
LADDR :=W#16#[B]00
[/B]RECORD :=P#DB1.DBX100.0 100 Byte 
RET_VAL:=#_ret_val
NOP 0
NW4
Code:
CALL "DPRD_DAT"
LADDR :=W#16#[B]50
[/B]RET_VAL:=#_ret_val
RECORD :=P#DB1.DBX0.0 100 Byte
NOP 0
NW5
Code:
FB1 mit [B]IDB 2
[/B]
NW6
Code:
CALL "DPWR_DAT"
LADDR :=W#16#[B]50[/B]
RECORD :=P#DB1.DBX100.0 100 Byte
RET_VAL:=#_ret_val
NOP 0
und eine 414 PN
2 x 100 byte wurde in der hardwareconfig projektiert.
In OB1
NW1
Code:
CALL "DPWR_DAT"
LADDR :=W#16#[B]00
[/B]RET_VAL:=#_ret_val
RECORD :=P#DB1.DBX100.0 100 Byte
NOP 0
NW2
Code:
FB1 mit[B] IDB 1
[/B]
NW3
Code:
CALL "DPRD_DAT"
LADDR :=W#16#[B]00
[/B]RECORD :=P#DB1.DBX0.0 100 Byte
RET_VAL:=#_ret_val
NOP 0
NW4

Code:
CALL "DPWR_DAT"
LADDR :=W#16#[B]50
[/B]RET_VAL:=#_ret_val
RECORD :=P#DB1.DBX100.0 100 Byte

NOP 0
NW5
Code:
FB1 mit [B]IDB 2
[/B]
NW6
Code:
CALL "DPRD_DAT"
LADDR :=W#16#[B]50[/B]
RECORD :=P#DB1.DBX0.0 100 Byte
RET_VAL:=#_ret_val
NOP 0
Will den den FB also zwei mal übertragen, funktioniert halt nur nicht. :D. einmal von 0..99 byte( und das andere mal von 100..199 byte( ab 50 Word)
FC11 und FC12 sind nur für 300er ?!

Tipp ?

anbei bild, beide PN Koppler sind so projektiert:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke mal an RECORD muss noch ein ANY Pointer der genauso Breit ist wie die projektierten E/A-Bereiche.
hab ich, hab ich. habs nur nicht hingeschrieben.
pro Steuerung
Code:
 P#DB1.DBX0.0 100 Byte und [SIZE=2]P#DB1.DBX100.0 100 Byte[/SIZE]

habs mal noch in Beitrag 1 editiert.
 
Zuletzt bearbeitet:
Für den zweiten Block ( E/A_Bereich ab 100 ) müstte es doch W#16#64 heißen - denn W#16#50 wäre Byte 80...

Oder irre ich mich?
 
Ach ja, deine Schreib-/ Lesepointer sind im Instanz-DB wenn der DB1 der IDB des FB1 ist...

Ist der dann auch groß genug?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was steht in _ret_val als Fehlermeldung. Es wäre aber gut, jedem SFC einen eigenen ret_val_x zu spendieren, damit man auch sicher die richtige Fehlerinformation hat und nicht ein vorheriger Baustein die Fehlerinfo des vorhergehenden überschreibt.
 
Was steht in _ret_val als Fehlermeldung. Es wäre aber gut, jedem SFC einen eigenen ret_val_x zu spendieren, damit man auch sicher die richtige Fehlerinformation hat und nicht ein vorheriger Baustein die Fehlerinfo des vorhergehenden überschreibt.

ok. könnte ich noch machen.
irgendwas mit -32xxx, weiß nicht mehr genau.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
:eek:
ich denke nicht. sind ja hex. kanns jetzt leider grad nicht mehr probieren obs allein daran liegt.

Da denkst du definitiv Falsch!

Start ist Byte 100, und somit Hex 64.

ok. könnte ich noch machen.
irgendwas mit -32xxx, weiß nicht mehr genau.
Das mit -32 ... war von Haus aus klar, sonst würds ja funktionieren, aber der Rest wäre äußerst entscheidend ...
 
Da denkst du definitiv Falsch!

Start ist Byte 100, und somit Hex 64.

Ich meinte damit, dass ich falsch liege und dtsclipper richtig.

Das mit -32 ... war von Haus aus klar, sonst würds ja funktionieren, aber der Rest wäre äußerst entscheidend ...

Das ist jetzt natürlich blöd. kann leider erst morgen wieder genaueres liefern. :(
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

also bei den Profibuskopplern konnte man die E/A´s doch direkt ansprechen, und sogar ein konsistentes verhalten einrichten, geht das bei Profinet denn nicht mehr ?

gruß Thomas
 
Wäre auch schön zu wissen WAS nicht geht...

Und RET_VAL bringt keine Fehlermeldung - was dann?

Was passiert wenn neue Werte im DB stehen?
 
Zurück
Oben