Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: TCP/IP Verbindung zwischen Simatic und Simotion

  1. #1
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    bin noch ziemlich neu auf dem Gebiet, darum einige teilweise wahrscheinlich simple Fragen.
    Meine Aufgabe besteht darin, eine TCP/IP Verbindung zwischen einer CPU317-2PN/DP und einer Simotion D435 herzustellen.

    Ich komme vom PC über Ethernet auf den ersten Ethernet-Eingang der CPU317. Dort von der zweiten Ethernet Schnittstelle auf die D435.

    Laut den Siemens Dokumentationen enfällt die Projektierung in Netpro, da die diese auf der Anwendungsseite (mit TCON,...)realisiert wird. Darum steht die D435 auch unvernetzt im Netpro, also weder eine Verbindung zum PG noch zur CPU317.

    Nun folgende Verständnisfragen:
    - Vom Pc habe ich keine dirkete Verbindung auf die D435, nur über die CPU317. Ist denn das so überhaupt richtig? Anpingen kann ich sie problemlos. Wenn ich im Simatic Manager alles markier und auf Upload drücke, werden dann die Programmdaten über die 317 auf die D435 weitergegeben? Im Simotion Scout kann ich mich auf jeden Fall mich weder mit dem Zeilsystem verbinden noch die Station auf run schalten
    - Wie kann ich dann Daten von der D435 über den PC auslesen?

    Und noch eine weitere Frage:
    Beim Baustein "TCON" muss die Portnummer angegeben werden. Wo kann ich denn diese auslesen/einstellen wenn ich die Stationen nicht über Netpro vernetzt habe?

    Danke schonmal
    Zitieren Zitieren TCP/IP Verbindung zwischen Simatic und Simotion  

  2. #2
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok, dieses Problem hat sich erledigt.
    Mit "entfällt die Verbindungsprojektierung in NetPro" laut Siemens Doku meint man nur, dass die genauen Spezifikationen in NetPro nicht angegeben werden müssen. Jedoch müssen alle Stationen miteinander vernetzt werden.

  3. #3
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der Datenaustausch funktioniert nun. Jetzt habe ich noch folgendes Problem:

    in der Simotion wird im StartUp-Task die Funktion tcpOpenServer aufgerufen. Im Backgroundtask dann die Funktionen tcpSend/tcpReceive.
    Wenn ich nun bei laufender Verbindung mit der Simotion in "STOP" gehe und anschließend wieder auf RUN läuft die Datenübertragung weiter.
    Geh ich nun mit der Simatic in "STOP" und anschließend wieder in "RUN" steht die Datenübertragung, da ja tcpOpenServer nicht wieder aufgerufen wird.

    Ich wollte nun den Rückgabewert der Send/Recv Funktionen der Simotion verwenden um den Server erneut zu öffnen. Beim Rückgabewert "16#FFFF8FFD Verbindung wurde geschlossen" sollte die tcpOpenServer Funktion wieder gestartet werden:

    IF test = 1 OR sRetValueTcpSend = 36861 THEN

    sRetValueTcpOpenServer := _tcpOpenServer( //StructRetTcpOpenServer
    port := 2222, //UINT, 1024-65535
    backLog := 3, //DINT
    nextCommand := IMMEDIATELY //IMMEDIATELY , EnumTcpNextCommandMode
    );


    Allerdings Funktioniert dies nichteinmal wenn ich die test-Variable auf "1" steuere. tcpOpenServer gibt mit nun "16#FFFFFFFC" zurück, was nicht in der Hilfe beschrieben ist.

    Hatte denn schon einmal jemand ein ähnliches Problem oder kennt eine Alternative. Die Verbindung soll automatisch hergestellt werden, sobald die Stationen im Zustand "Run" sind.



  4. #4
    Registriert seit
    16.03.2006
    Ort
    Franken
    Beiträge
    3.797
    Danke
    30
    Erhielt 917 Danke für 798 Beiträge

    Standard

    Hi,

    16#FFFFFFFC bedeutet " Funktion ist in einer anderen Task bereits aktiv"

    Gruß
    Christoph

  5. Folgender Benutzer sagt Danke zu ChristophD für den nützlichen Beitrag:

    fab (26.11.2012)

  6. #5
    Registriert seit
    12.05.2007
    Ort
    recht weit im Süden
    Beiträge
    93
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    generell zur Kommunikation zwischen Simatic und Simotion:
    ich stand kürzlich vor einem ähnlichen Problem und habe mich dann für die Kommunikation über "IO-Devices" gelöst. Die Kommunikation findet dann einfach über schreiben in den Peripherie-Bereich der jeweiligen Steuerung statt.
    Hat sicherlich seine Nachteile, die mir jedoch nicht bekannt sind ... ?
    Geändert von dennisbz (26.11.2012 um 21:03 Uhr) Grund: wer lesen kann ...

  7. #6
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay, aber ich muss laut Aufgabe bei TCP/IP bleiben. Also fallen alle Alternativen weg...

    Bin immer noch am rumtesten wie ich den automatischen Wiederaufbau der Verbindung programmieren kann. AUch folgender Versuch liefert nicht das gewünschte Ergebnis. Als Result von tcpOpenServer bekomm ich nun 16#7001 Funktion gestartet. Allerdings wars das dann auch^^
    IF test = 1 THEN

    sRetValueTcpCloseConnection := _tcpCloseConnection(connectionId := sRetValueTcpOpenServer.ConnectionId);

    sRetValueTcpCloseServer := _tcpCloseServer(port := 2222); //1024 - 65535

    sRetValueTcpOpenServer := _tcpOpenServer(
    port := 2222, //UINT, 1024-65535
    backLog := 3, //DINT
    nextCommand := IMMEDIATELY //IMMEDIATELY
    );

    END_IF;

    Ich will also im Fehlerfall (hier test=1) den Server schließen, und dann neu starten. Funktionieren tut dies bereits wenn ich manuell in STOP, dann wieder in START gehe. Dann wird der StartUp-Task ausgeführt wo tcpOpenServer gestartet wird und die Verbindung läuft wieder.
    Geändert von fab (27.11.2012 um 12:18 Uhr)

  8. #7
    Registriert seit
    16.03.2006
    Ort
    Franken
    Beiträge
    3.797
    Danke
    30
    Erhielt 917 Danke für 798 Beiträge

    Standard

    Hallo,

    hast du auch auf S7 Seite auch wieder open Client aufgerufen? 16#7001 ist ja erstmal nicht verkehrt, der Server wartet jetzt auf die Verbindungsaufnahme der Gegenseite.
    Auf der SIMOTION Utilities & Applications CD ist auch eine FAQ dazu abgelegt inkl. Beispielprojekt.

    Gruß
    Christoph
    Geändert von ChristophD (27.11.2012 um 12:25 Uhr)

  9. #8
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, das geschieht mit dem Neustart der Simatic automatisch. Dieser zeigt mir sogar nach dem Hochfahren Status 16#0000 (Verbindung erfolgreich hergestellt) an.

    Du meisnt die LCOM Funktionen, oder? Diese lese ich gerade durch.

    Grüße fab

  10. #9
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Da das Porgramm Teil einer Bachelor-Arbeit ist fällt die Verwendung von LCOM wohl flach. Die ganzen Bausteine haben Know-how Schutz und darum kann ich diese kaum in meiner Arbeit verwenden.

    Das Problem besteht weiterhin wobei die Konstellation egal (Simatic oder Simotion Server/Client) ist. Jedes Mal erfolgt die Datenübertragung nach Ausschalten der Simatic erst nach Neustart der Simotion(Stop-Run).

    Weiterhin komisch ist, dass wenn ich einen Stecker ziehe und ihn kurz danach wieder einstecke Die Datenübertragung weiterläuft. Ist er jedoch längere Zeit ausgesteck (ca. 30s) muss man erst wieder die Simotion neu starten um die Übertragung fortzusetzen...

    Scheinbar bin ich nicht der Einzige mit diesem Problem:
    http://www.automation.siemens.com/WW...82&Language=de

    mfg fab

  11. #10
    fab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.11.2012
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay hab nun eine Lösung gefunden. Scheinbar hatte es mit den Parametern nextCommand Immediately und When_command_done zu tun.
    Man muss im Fehlerfall einen Motion Task restarten:

    IF sRetValueTcpSend = -28675 THEN //Neustarten der OpenServer-Funktion im Fehlerfall

    restartTask_Stat := _restartTaskId (
    _task.motionTask_1 );

    END_IF;

    Im neu gestarteten MotionTask wird dann der Server erneut geöffnet (nextCommand := WHEN_COMMAND_DONE).

Ähnliche Themen

  1. ISO-On-TCP zwischen CP343-1 und PC
    Von jeito im Forum Simatic
    Antworten: 33
    Letzter Beitrag: 24.06.2009, 00:03
  2. TCP Kommunikation zwischen S7 SPS und PC
    Von SWI im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 29.04.2009, 08:00
  3. Antworten: 3
    Letzter Beitrag: 27.12.2007, 19:26
  4. Unterschied TCP- und ISO-on-TCP-Verbindung
    Von kassla im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.08.2007, 07:27
  5. Proble mit S7 TCP Verbindung zwischen S7 300 und 400
    Von Jochen Kühner im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.11.2006, 12:15

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •