Step 7 Daten per FB14 GET holen (S7-300 -> S7 300)

Imens0

Level-1
Beiträge
9
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich versuche gerade an einem Testaufbau mit dem Standardbaustein FB14 "GET" mit einer CPU 315-2 PN/DP V2.6.5 von einer CPU 319-3 PN/DP V3.2.4 Daten zu holen. Dazu hat die CPU 315 einen CP 343-1 V2.3 und die CPU 319 eine CP 343-1 V2.6. (An der Anlage später habe ich 2x CPU319 und CP343-1, geht über das Hallennetz, deswegen kein CPU-PNIO Port möglich)

Zunächst habe ich eine TCP-Verbindung eingerichtet und per AG_SEND/AG_RECV die Daten rüber gereicht. Das funktioniert auch einwandfrei.
Jetzt möchte ich parallel dazu mit dem FB GET Daten holen. Ich habe auf der CPU315 eine S7-Verbindung mit unspezifiziertem Partner eingerichtet. (Siehe Anhang)
Programmiert habe ich das mal so:
Code:
      U     "m_impulsmerker_2,0_sec"
      UN    "m_daten_holen"
      S     "m_daten_holen"

      CALL  "FB_GET" , "DB_GET"
       REQ   :="m_daten_holen"
       ID    :=W#16#1
       NDR   :="m_daten_geholt"
       ERROR :="m_error_holen"
       STATUS:="mw_status_holen"
       ADDR_1:=P#DB101.DBX0.0 BYTE 26
       RD_1  :=P#DB101.DBX0.0 BYTE 26


      U     "m_daten_geholt"
      R     "m_daten_holen"

Leider funktioniert das nicht wie gewünscht. Ich bekomme immer einen Fehler und im Status steht 0x19. Laut Handbuch: "Für diesen Baustein existiert in der CPU kein Funktionscode. (nur bei S7-300)". Diese Meldung sagt mir jedoch nichts. Kann mir jemand erklären was sie bedeutet und warum das so nicht funktioniert?

Habe das gleiche von der CPU 319 aus mit FB PUT versucht, jedoch mit dem selben Ergebnis.

Vielen Dank schonmal!


Edit: Step7 V5.5 SP2 HF4
 

Anhänge

  • detail.jpg
    detail.jpg
    60,9 KB · Aufrufe: 67
  • Verb.jpg
    Verb.jpg
    74,5 KB · Aufrufe: 53
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin der Meinung, dass ich den aus genau der Bibliothek geholt habe. Habe ihn gerade nochmal neu rausgeholt, gleiches Verhalten wie vorher.

Habe gerade noch gesehen, dass im Statusword neben der 0x19 auch noch kurz die 0x1 kommt.
Kommunikationsprobleme, z. B.·
- Verbindungsbeschreibung nicht geladen (lokal oder remote)·
- Verbindung unterbrochen (z.B. Kabel, CPU ausgeschaltet, CP in STOP)·
- Verbindung zum Partner noch nicht aufgebaut·
- FB ist auf einer S7-400-CPU nicht ablauffähig·
- zusätzlich S7-300:- Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten.

Laut Netpro wird die Verbindung "gerade aufgebaut". Es ändert sich aber nichts. (Bleibt in dem Status)



Edit: Ich habe mir das Programmbeispiel von Siemens runtergeladen und den GET Baustein daraus genommen (Klein wenig älter): Jetzt wird mir die Verbindung als aufgebaut angezeigt in Netpro. Es bleibt nur die 0x19 im Status stehen.
 
Zuletzt bearbeitet:
Ich würde mal testweise beim unspezifizierten Partner den Steckplatz auch auf 4 setzen, denn es ist doch auch eine CP wie beim Sender selbst.
Zumindest in dieser Richtung sollte man ein paar Versuche machen, denn:
Solange die Verbindung im NetPro nicht als "aufgebaut" gekennzeichnet ist, kann der FB nicht laufen.
 
hier mal der fb mit dem ich das mache. ob man für eine unspezifizierte verbindung zwangslaüfig den FB14 nutzen muss weiß ich nicht.
bei mir mit einer spezifizierten vb funktioniert das einwandfrei
 

Anhänge

  • fb114.AWL.txt
    3 KB · Aufrufe: 82
Zuviel Werbung?
-> Hier kostenlos registrieren
Also mit dem etwas älteren Baustein aus dem Beispielprojekt funktioniert das Daten holen jetzt! Der Auftrag wird mit NDR quittiert. Der Errorausgang kommt nie, nur das Statusword wechselt bei jedem Auftrag kurz von 0x0 auf 0x16 ("Für diesen Baustein existiert in der CPU kein Funktionscode. (nur bei S7-300)"). Wenn jemand zu dem Statusword noch was einfällt, würde ich mich freuen.


Edit: Habe gerade den Unterschied zwischen den beiden FB14 festgestellt: Der erste der nicht Funktioniert hat stammt aus der Familie CP300PBK und der aus dem Beispielprojekt der die Daten wirklich holt aus der Familie CPU_300. Eigentlich sollte es ja anders herum sein...mal suchen welche Typen ich noch finde :D
 
Zuletzt bearbeitet:
Dein Bausteinaufruf beendet nie den Kommunikationsauftrag und versucht es auch nie wieder, wenn ein Fehler auftrat. Ändere mal wie folgt
Code:
      U     "m_impulsmerker_2,0_sec"
      UN    "m_daten_holen"
      S     "m_daten_holen"

      CALL  "FB_GET" , "DB_GET"
       REQ   :="m_daten_holen"
       ID    :=W#16#1
       NDR   :="m_daten_geholt"
       ERROR :="m_error_holen"
       STATUS:="mw_status_holen"
       ADDR_1:=P#DB101.DBX0.0 BYTE 26
       RD_1  :=P#DB101.DBX0.0 BYTE 26


[COLOR="#FF0000"]      O     "m_daten_geholt"
      O     "m_error_holen"[/COLOR]
      R     "m_daten_holen"

Bei einseitig projektierter unspezifizierter Verbindung zu einer anderne S7-300 muß der Partner-Rack/Steckplatz 0 / 2 sein, der TSAP muß 03.02 sein - also alles richtig bei Dir.
Die Verbindungsprojektierung ist in die CPU geladen? Systemdaten Online/Offline sind gleich?

Harald
 
Habe den Code geändert. An der Funktion ändert das allerdings nichts. (Gleich wie mit U "m_daten_geholt") Wir programmieren Oder-Verknüpfungen öfters mal mit einem Und als erstes.;) Wenn ich online zuschaue, sehe ich wie der Taktimpuls den Start setzt und dieser dann nach einigen Zyklen wieder zurückgesetzt wird. Dann bleibt er auf 0 bis zum nächsten Impuls...wie es sein soll.

Ja die Projektierung ist geladen. Funktioniert ja alles soweit. Die Daten ändern sich auch in der CPU319 ständig, sodass ich mit jedem Taktimpuls neue Daten abholen kann. Das letzte was mich stutzig macht ist die Statusmeldung 0x19.
 
Edit: Habe gerade den Unterschied zwischen den beiden FB14 festgestellt: Der erste der nicht Funktioniert hat stammt aus der Familie CP300PBK und der aus dem Beispielprojekt der die Daten wirklich holt aus der Familie CPU_300. Eigentlich sollte es ja anders herum sein...mal suchen welche Typen ich noch finde :D
Also wenn der FB14 aus der Familie CP300PBK die Version V1.2 hat, dann ist das genau der Baustein, denn man laut Siemens-Dokumentation benutzen soll (aus der Library SIMATIC_NET_CP > CP 300).

Andererseits gibt es auch noch diese Aussage:
Welcher Bibliothek sind die Kommunikations-FBs zu entnehmen?
1. Kommunikation über die integrierte IE-Schnittstelle der CPU: schrieb:
Die S7-Kommunikationsbausteine USEND/URCV (FB8/FB9), BSEND/BRCV (FB12/FB13), GET/PUT (FB14/FB15) aus der Standard Library laufen auf allen SIMATIC S7-300 CPUs mit FW-Ausgabestand ab 2.x.y (z.B. 6ES7315-2AG10-...).
Diese Kommunikationsbausteine sind auch für den CP343-1 geeignet.

Harald
 
Die ist ganz normal
Sorry mein Fehler :s21: Hab nicht gesehen, dass es die Meldung auch ohn Error-Bit gibt.

PN/DP schrieb:
Also wenn der FB14 aus der Familie CP300PBK die Version V1.2 hat, dann ist das genau der Baustein, denn man laut Siemens-Dokumentation benutzen soll (aus der Library SIMATIC_NET_CP > CP 300).
Den hatte ich zuerst in Verwendung, hat aber nicht funktioniert. Habs jetzt nochmal probiert, nachdem der Baustein der CPU_300 Familie funktioniert hat und jetzt geht der aus der CP Bibliothek auch.

Jetzt muss ich wohl schauen, warum der Baustein aus der CP Familie die Verbindung am Anfang nicht zustande gebracht hat...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hatte letztens den BRCV (SFB13) aus der Standard Library auch nicht mit einer 315+343-1 zum Laufen bekommen. Mit dem FB13 aus der Simatic-Net-CP/CP300PBK gings dann irgendwann...

sowas kann einem zum Wahnsinn treiben :)

Gruß.
 
allerdings :D
was mich auch in den Wahnsinn treibt, dass beim ersten Versuch die Verbindung nicht geklappt hat, mit dem Baustein aus der CPU_300 Familie dann schon (ohne Änderungen in Netpro) und nachher gehts doch auch mit dem ersten Baustein.
Naja...am Montag habe ich eine halbe Stunde Mittagspause, in der ich das ganze an der Anlage einspiele. Bin gespannt:ROFLMAO:
 
Zurück
Oben