Schnelle Übertragung mit AG-Send

Johannes F

Level-1
Beiträge
232
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
habe ein problem, ich muss mit einer s7-300 sehr schnell daten an einen pc senden. bei meiner cpu handelt es sich um eine vipa 315sn.
für die ethernet übertragung verwende ich ein beispiel progamm von siemens welches ich auch schon mehrfach erfolgreich eingesetzt habe. die beiden bausteine ag-send und ag-recv habe ich von vipa genommen. die normale übertragung funktioniert auch ohne probleme, solange ich zum anstoßen des sendeauftrages einen taktmerker nutze bis 10hz. da ich aber auf 100hz kommen müsste, stoße ich an meine grenzen.
kann ich das ganze in den ob35 oder so packen um die geschwindigkeit noch zu erhöhen?
im ob35 habe ich mit taktmerker ja keine chance, wie bekommen ich dann den auftrag angestoßen?
oder hat jemand noch andere ideen?
 

Anhänge

  • ag_send.jpg
    ag_send.jpg
    93,1 KB · Aufrufe: 38
wir habens mal so gemacht, dass wenn das BUSY vom AG_Send weg ist und kein Fehler da ist, sofort wieder gesendet wird. aber da hast natürlich keine genaue Zykluszeit... macht die cpu denn auch die 100hz noch mit?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich schätze, dass da das Problem eher in der Übertragungsstrecke und nicht beim Taktmerker liegt. Hast du mal überlegt, was du für einen Daten-Durchsatz haben mußt um 256 Byte 100 Mal in der Sekunde zu übertragen ? Bedenke bitte, dass da auch immer noch ein Protokoll mitläuft ...

Eine neue Übertragung ist immer erst möglich wenn die alte abgeschlossen ist ...

Gruß
LL
 
kann ich noch nicht sagen, also ihr habt einfach das senden und empfangen in den ob35 erledigt und den taktmerker gegen den BUSY getauscht?
 
wir habens mal so gemacht, dass wenn das BUSY vom AG_Send weg ist und kein Fehler da ist, sofort wieder gesendet wird. aber da hast natürlich keine genaue Zykluszeit... macht die cpu denn auch die 100hz noch mit?
Dann einfach noch die SPS-Zeit mit in die Daten verpacken, dann kann der PC dies entsprechend berücksichtigen.
@Johannes F:
Was soll denn mit dieser Geschwindigkeit übertragen werden? Und wieviel Daten pro Sendeauftrag? Grundsätzlich hast Du mit deiner Vorgehensweise immer noch einen entsprechenden Jitter auf dem Zeitraster (im Mittel halbe Zykluszeit wenn ich es noch richtig weiß). Wie hoch ist die Zykluszeit eigentlich?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
übertragen weden 256byte, es sind durchflüsse und drücke von öl & co.
hier handelt es sich um ein prüfstand für die auto industrie.
z.z. habe ich ca. 1ms zykluszeit aber das programm wird auch noch nicht durchlaufen.
 
Die Bausteine brauchen idr. länger als einen Zykluss zur Bearbeitung, deswegen sollte das Busy Bit bzw. das Diagnosewort ausgewertet werden.

Frage ist ob man überhaupt eine ETH Kommunikation mit 10ms realisieren kann. Bei den 300ern von Siemens kann man ja froh sei wenn alle 2sek mal die Daten ankommen :(
 
+

die beiden bausteine ag-send und ag-recv habe ich von vipa genommen.

Wenn ich das richtig verstehe, werden die 256 Bytes von der SPS gesendet und vom PC quittiert. Ist die Quittierung wirklich notwendig? Das spart nämlich ganz enorm Zeit, wenn man die weglässt. Oder ist das Ethernet zwischen beiden Teilnehmer ziemlich dicht? Was natürlich für die Geschwindigkeit auch nicht gut ist.

256 Bytes 100 mal in der Sekunde, das sind 20kBit/sec ohne Quittierung. Damit sollte nicht mal eine serielle Schnittstelle Schwierigkeiten haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
256 Bytes 100 mal in der Sekunde, das sind 20kBit/sec ohne Quittierung. Damit sollte nicht mal eine serielle Schnittstelle Schwierigkeiten haben.
Das sind 25 KByte/s. Und das bereite den Siemens-SPSen bereits deutliche Probleme. Einer seriellen Übertragung selbst mit 115200 kBit/s übrigens auch.
Über einen Kanal kommt z.B. die 416er mit 443-1 auf ca. 60 kByte/s an Nutzdaten (quittiert). Die 300er liegt da noch weit darunter. Wie die Vipa in der Kommunikation ist, kann ich nicht sagen.
Ändern sich denn alle Werte immer in diesem Zeitraster?
 
Kenne Deine Vipa CPU nicht, aber mit einer 315-2 PN/DP ist es nach meiner Erfahrung so, dass man mit Libnodave (zumindest via Ethernet und bei dieser CPU) erheblich schneller Daten schreiben und lesen kann, als über AG Send/Receive.
Evtl. ist Deine CPU ja auch mit Libnodave kompatibel. Einen Versuch wäre es dann sicherlich mal wert.
 
@LL: gern geschehen, eine SPS ist halt kein PC.

Wenn dieser Durchsatz wirklich erforderlich ist, dann kenne ich nur eine Siemens-SPS-Klasse die damit auch noch zurecht kommt => WinAC
Wenn die Vipa das schafft => super
Wenn sich die Werte nicht permanent ändern, bleibt noch die Möglichkeit eines anderen Ansatzes => Änderungen mit Zeitstempel protokollieren, puffern und dann am Stück senden => Mehr Aufwand in der SPS und im PC
 
habs am laufen, wenn der ob35 alle 10ms aufgerufen wird ereiche ich eine übertragungszeit von ca.20ms. wenn ich es im ob1 aufrufe dann erreiche ich mit meiner normalen sps zykluszeit von 1ms eine übertragungszeit von ca.2,5ms. also das ist mir schnell genug.
:D
 
Zurück
Oben