Step 7 Verbinden con CPU314C-2 PN/DP und CPU 315-2 PN/DP über S7 Verbindung FB14 FB 15 PUT/G

bluebird277

Level-1
Beiträge
100
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

versuche oben genannte Verbibdung zu realisieren jedoch zeigen mir die Bausteine FB15 bzw. FB14 beim setzen des Req keine Fehler aber auch kein Done an. Daten werden auch nicht kopiert.
In der Netpro Verbindung steht Verbindung aufgebaut.

Hatte von euch schonmal jemand das selbe Problem?
Bzw. habt Ihr eine Idee an was es liegen kann?

Ich dachte erst vielleicht brauche ich einen CP dazwischen jeodch laut Siemens Anleitung:

FB14/FB15 für S7-Kommunikation über integrierte PROFINET-Schnittstelle der CPU
Wenn Sie die integrierte PROFINET-Schnittstelle der CPU für den Datenaustausch
über S7-Verbindungen nutzen, dann verwenden Sie die Funktionsbausteine FB14
"GET" und FB15 "PUT" aus der Standard Library > Communication Blocks >
Blocks" mit der Familie "CPU_300".

Vielen Dank
 

Anhänge

  • capture_002_24072015_075607.jpg
    capture_002_24072015_075607.jpg
    63,8 KB · Aufrufe: 67
  • capture_001_24072015_075543.jpg
    capture_001_24072015_075543.jpg
    33,3 KB · Aufrufe: 42
  • Schnitts.zip
    1,1 MB · Aufrufe: 9
Du hast doch zweiseitigen Aufbau angelegt. Also muss die gegenseite auch stimmen. Du programmierst ein PUT und die Gegenstelle erhält es über GET.
Im Anhang Infos.
 

Anhänge

  • S7_Connection_de.pdf
    3 MB · Aufrufe: 34
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast doch zweiseitigen Aufbau angelegt. Also muss die gegenseite auch stimmen. Du programmierst ein PUT und die Gegenstelle erhält es über GET.
Im Anhang Infos.

Wenn das so wäre, müsste man bei Put kaum den Zielbereich der Gegenstelle angeben ;)
Put braucht keine programmierung auf der gegenseite. Allerdings hatte ich das noch nie dass sowohl status wie auch done und error 0 sind.
Sieht ja aber so aus als wäre cpu in run und der baustein würde auch aufgerufen. ist instanz geladen und aktuell?

irgendwelche diagnoseeinträge in der cpu?

mfG René
 
Hast du das Siemens Bsp als Vorlage genommen?MB 10 ist doch zum Anstossen?MB Taktmerkerbyte auf der CPU.Hast du das eingerichtet?
 
FB14 beim setzen des Req keine Fehler aber auch kein Done an.

Das glaube ich nicht, Error wird ja garnicht ausgewertet.

Du solltest:

1. Bei gesetzem Error Bit das Status Word umkopieren und nur damit weiterarbeiten.
> Wenn der Fehler nur einen Zyklus ansteht, ist die Online Ansicht eine ganz schlechte Wahl.
2. Beachten, dass der Baustein nur auf positive Flanken reagiert. Hier passiert nur etwas wenn M0.0 händisch von 0 > 1 gesteuert wird (Taktmerker ist aus).
3. ADDR_1 der Bereich in der Partner CPU und SD_1 der lokale ist. Die 315 hat keinen DB10 und das muss auch einen entsprechenden Fehlerstatus ausgeben.
> Die Parameter ADDR_1,SD_1 sind vertauscht / falsch.
 
put get unspezifiziert

ich habe auch probleme mit den fb's gehabt. wollten einfach nicht vernünftig laufen. ausserdem kommt hinzu das da ne menge unnötiger kram intern gemacht wird.
die kommunikation läuft in endefekt aber über sfc14/15.

wichtig ist das die namen der pn teilnehmer auf allen seiten stimmen.

und die config auf jeden fall mit netpro übertragen. nur hw-config reicht nicht unbedingt aus

anbei mal 3 projekte (315pn/dp, 315pn/dp, cp343) die untereinander als unspezifizierte verbindung mittels sfc14/15 kommunizieren.
 

Anhänge

  • put-get_unspezifiziert.zip
    3,4 MB · Aufrufe: 20
Zuletzt bearbeitet:
Müsste bei PUT/GET im Gegensatz zu Send/Recv Error und Done nicht anstehen bis Req zurückgenommen wird?

Ehrlich gesagt habe ich da schon lange nicht mehr drauf geachtet, hier steht es aber auch so:

Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die
Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig

https://support.industry.siemens.com/cs/ww/de/view/49450152


wichtig ist das die namen der pn teilnehmer auf allen seiten stimmen.

Wie kommst du darauf? Die PN Namen werden m.W. nicht übertragen und können folglich auch nicht geprüft werden.
(Gibt ja auch Baugruppen komplett ohne PN, die trotzdem S7 Kommunikation beherrschen.)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie kommst du darauf? Die PN Namen werden m.W. nicht übertragen und können folglich auch nicht geprüft werden.
(Gibt ja auch Baugruppen komplett ohne PN, die trotzdem S7 Kommunikation beherrschen.)
also soweit ich das festgestellt habe funktioniert es nur richtig wenn das so ist. vlt war es ja auch nur zufall das es nicht klappte als ich es nicht so gemacht habe. seitdem trage ich das immer passend ein.
feldveruch hab ich nicht gemacht ;)
 
Ehrlich gesagt habe ich da schon lange nicht mehr drauf geachtet, hier steht es aber auch so:

ich ehrlichgesagt auch schon lange nicht mehr drauf geachtet. Aber du hast recht.

Ich hab das jetzt schnell mal aufgebaut weils mich auch interessiert hat. Und so funktioniert es.

Code:
#PUT_Instance(REQ:=#request,
              ID:=W#16#100,
              ADDR_1:=p#db6.dbx0.0 byte 4,
              SD_1:=p#db6.dbx0.0 byte 4);


IF #PUT_Instance.ERROR THEN
    #put_err_status_sav := #PUT_Instance.STATUS;
END_IF;


IF #PUT_Instance.DONE THEN
    #put_done_status_sav := #PUT_Instance.STATUS;
END_IF;


#request := true;
IF #PUT_Instance.ERROR OR #PUT_Instance.DONE OR #Requestreset.Q THEN
    #request := false;
END_IF;


#Requestreset(IN:=#request,
              PT:=t#5s);

unspezifizierte Verbindung aktiv auf 1500er. nach 300 lean.
in 300er ist nur der DB, 300 hat sonst keine konfiguration ausser natürlich die IP.

An SD_1 muss zwingend ein nicht optimierter Adressbereich.

mfG René

edit: zwischenmerker für done/error/status sind unnötig da instanziert.
 
Zuletzt bearbeitet:
Zurück
Oben