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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: SPS-Neuling und Kommunikation zwischen PC und S7 1200 per Ethernet

  1. #1
    Registriert seit
    04.09.2012
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, ich bin hier der neue.
    Als (leider) ziemlicher SPS-Anfänger stehe ich momentan vor dem Problem, per Ethernet eine Zeichenkette vom PC an meine S7-1212-CPU schicken und dort verarbeiten zu müssen. Leider bin ich mit Rumprobieren und eigenständiger Suche im Internet und in diesem Forum nicht wirklich weit gekommen, weshalb ich nun hier um Denkanstöße oder Litareturhinweise bitten möchte. Dass ich keine fertige Lösung erwarte ist klar, aber ich weiß momentan nichtmal, in welche Richtung ich suchen muss.

    Ich habe bereits den Baustein TRCV_C im TIA V11 gefunden, der ja scheinbar für die offene Kommunikation über Ethernet verwendbar sein sollte, aber alle Hinweise die ich dazu im Netz finden konnte, bezogen sich auf die Kommunikation von SPSen untereinander, nicht mit einem PC und ich habe es auch nicht geschafft, dies entsprechend abzuändern.

    Vielen Dank schonmal fürs Durchlesen bis hierhin und vielleicht möchte (und kann!) mir ja jemand helfen.

    Viele Grüße, Christian
    Zitieren Zitieren SPS-Neuling und Kommunikation zwischen PC und S7 1200 per Ethernet  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Den TRCV_C hatte ich noch nicht im Einsatz.

    Die andere Vorgehensweise ist mit den Bausteinen TCON und TRCV. TCON ist für den Aufbau der Verbindung (aktiv oder passiv) zuständig, TRCV für den Datenaustausch.

    Als erstes ziehst du den TCON in den Programm und lässt dir automatisch einen Instanz DB erzeugen.
    Wenn du den Baustein markierst gibt es im Feld Eigenschaften (wo sich das bei TIA öffnet weiß man nicht, musst einfach mal suchen), zumindest gibt es eine Eingabe für die Verbindungsparameter und die Bausteinparameter.
    Unter den Verbindungsparametern stellst du die Verbindungsdaten ein. Dazu gehört die Partner IP-Adresse (als Partner kannst du unspezifiziert lassen) und die Portnummer über den du mit der SPS kommunizieren willst. Wenn du vom PC aus die Verbindung aufbauen möchtest, musst du auf der rechten Seite die Option für "aktiver Verbindungsaufbau" setzen. Dann wartet die SPS auf eine eingehende Verbindungsanfrage.

    Den Eingang REQ kannst du direkt mit true beschalten.

    Dann brauchst du den TRCV-Baustein. An den Parameter ID gibst du die gleiche Nummer wie am TCON Baustein an, am Parameter DATA gibst du deinen Datenbereich an in dem die Daten landen sollen.
    Soll dein Telegramm meinetwegen 10 Zeichen lang sein, legst du in der SPS eine Variable vom Type array[0..9] of char an und parametrierst dieses an den Baustein.

    Eigentlich sollte das schon reichen. Wenn du das in der SPS geladen hast kannst du dich über den eingestellten Port mit der SPS verbinden. Wenn du 10 Zeichen gesendet hast (und nur nach diesen 10 Zeichen) landen diese in dem Datenbaustein. Die Verbindung wird dann so lange offengehalten bis du sie vom PC aus trennst.
    Auf die weiteren Probleme die sich bei der TCP Verbindung ergeben wirst du später noch stoßen

  3. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Deep Thought (06.09.2012),wave (23.01.2017)

  4. #3
    Deep Thought ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Thomas,
    vielen Dank schonmal für deine hilfreiche Antwort. Sie hat mich ein Stück weitergebracht, nach ein bisschen weiterem Gebastel scheint das Senden der Daten vom PC aus auch zu funktionieren. Nur ankommen tun sie leider nicht richtig. Ich musste allerdings den Verbindungsaufbau von der SPS initiieren lassen.
    Im angefügten Screenshot sieht man, wie das Ganze momentan aussieht und dazu hab ich gleich mal ein paar konkrete Fragen:

    1) Beim TCON-Status steht 7000, was übersetzt bedeutet: "Keine Auftragsbearbeitung aktiv". Nach meinem Verständnis müsste da nach erfolgtem Verbindungsaufbau "0000" stehen, oder?
    2) Wie genau muss ich das Array of Char an den TRCV parametrieren? Das TIA schlägt immer "#Empfang[]" vor, das gibt aber einen Syntaxfehler. Alternativ kann ich bsp. "#Empfang[1]" schreiben, aber damit addressiere ich ja nur ein Element aus dem Array (??) - in dem spannender Weise sogar immer irgendwas drinzustehen scheint, was aber mit der gesendeten Nachricht nicht soooo sehr viel zu tun hat. Die einzige andere mir eingefallene Möglichkeit ist die im Screenshot gezeigte "#Empfang" - aber geht das so?
    3) Der TRCV-Status behauptet, es würden Daten in den Empfangsbereich geschrieben - aber wie kann das gehen, wenn meine Vermutung stimmt und noch gar keine funktionierende Verbindung aufgebaut wurde (siehe 1.)? Auch bleibt der Wert an RCVD_LEN beharrlich auf 0...

    Wohlgemerkt: ein Netwerkanalyse-tool zeigt mir, dass die Daten korrekt gesendet werden. Es scheint also irgendwas auf der Empfangsseite in der SPS noch nicht zu stimmen.
    Für Hinweise die zur Ergreifung des Fehlers führen wäre ich sehr dankbar

    Viele Grüße,
    Christian

    Verbindung herstellen screen.jpg

  5. #4
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    1) Deine Verbindung steht nicht, am TCON müsste DONE==1 sein!
    2) Zieh doch mal das erste array-Element per Drag and Drop
    3) Als status hast du einmal MW1(TCON) und MW2(TRCV), MB2 gehört hier zu beiden und wird 2x geschrieben!

    MfG MK
    and we all support the team (S.King - Die Arena)

  6. #5
    Deep Thought ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Mäuseklavier!
    Okay, aber warum steht die Verbindung nicht?
    Hab alles so gemacht wie Thomas_v2.1 das beschrieben hat - und ich kann die SPS anpingen, sie antwortet ganz brav. Unser Netzwerkadmin meinte daraufhin, dass also aus Netzwerksicht alles stimmen sollte.

    Drag & Drop werd ich morgen mal testen wenn ich wieder da bin, meine aber, das schon probiert zu haben.

    Und was du zu 3) schreibst versteh ich leider nicht
    Die Variablen hab ich da nur, um überhaupt lesen zu können was da steht, ich verwende die ja gar nicht weiter. Von daher müsste es doch eigentlich egal sein, ob ich da zwei getrennte Variablen hab oder die dann vom TRCV wieder überschreiben lasse? Oder bin ich völlig auf dem Holzweg? Und was ist MB2? Sorry, bin echt noch sehr neu in der Materie...

    Gibts vielleicht irgendwo sowas wie "S7 für Dummies" für mich zum Einstieg, dass ihr mir hier nicht die ganzen Grundlagen erklären müsst? Hab zwar schon ganz viel gegoogelt und hier im Forum gelesen, habe aber das Gefühl, dass mir da noch vieles fehlt...

    Viele Grüße,
    Christian

  7. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Wenn du am Parameter LEN von TRCV den Wert 10 angegeben hast, werden die Daten erst in den Empfangsbereich eingetragen wenn 10 Zeichen empfangen wurden. Man sieht nicht welchen Datentyp deine Variable #Empfang besitzt, kann sein dass diese zu klein ist.

    An den Parameter DATA von TRCV brauchst du einen entsprechend großen Empfangspuffer. Du kannst z.B. der Einfachheit halber einen Global-DB anlegen (Beispiel "DB_TRCV") in dem du eine Variable "data" vom Datentyp Array[0..99] of char anlegst.
    Dann gibst du am Parameter DATA von TRCV die Variable "DB_TRCV".data an. Wenn nun 10 Zeichen vom Partner empfangen wurden, werden in data[0] bis data[9] die empfangenen Zeichen eingetragen. Sind die nächsten 10 Zeichen eingetroffen so werden diese Variablen wieder überschrieben.

    Warum du nur von der SPS aus die Verbindung aufbaust kann man nur sagen wenn du mal die Verbindungsparametrierung am TCON zeigst.
    Im von mir angehängten Screenshot ist eine passive Verbindung parametriert. Die SPS hat die IP 192.168.1.191, der PC der die Verbindung aktiv aufbaut hat die IP 192.168.1.10. Kommuniziert wird über Port 2000.
    TIA-TCP-Verbindungsparameter.png

  8. #7
    Deep Thought ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Thomas,
    Die Variable #Empfang ist ein Array [0 .. 9] of Char - so wie Du es geschrieben hattest. Sollte also meinem Verständnis nach hinkommen mit LEN=10. Ich hatte es aber auch schon mit anderen Werten für LEN probiert, sowohl größer als auch kleiner als 10. Keine Änderung. Die Nachricht die ich sende sollte eigentlich 10 Zeichen haben.

    Das mit dem globalen Datenbaustein werde ich morgen mal ausprobieren, danke für den Tip.

    Wie ich der SPS sage, dass der PC die Verbindung aufbauen soll ist mir schon klar, dazu muss ich ja nur den Haken (bzw Punkt) auf der anderen Seite setzen. Das Problem ist eher, dass die Software, aus der die Zeichenkette abgeschickt werden soll (NeuroCheck 6.0) nur mit nichtssagenden Fehlermeldungen um sich wirft, sobald ich ihr sage, dass sie sich um den Verbindungsaufbau kümmern soll

  9. #8
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    Thomas hat recht, mach doch mal ein größeres Empfangsarray und sende eine kürzere Nachricht.
    Ich lege im übrigen den TCON.DONE auf den TRCV.EN_R -- > nur wenn Verbunden, dann auch Empfangsbereit.
    NeuroCheck kenn ich nicht, ich nehme zum testen Hercules, hier TCP Server wählen,einfach Port eingeben und erstmal Listen drücken.

    MfG MK
    and we all support the team (S.King - Die Arena)

  10. #9
    Deep Thought ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo ihr beiden,
    ich hab jetzt mal versucht, alle eure Anregungen umzusetzen. Leider ohne Erfolg - es wird einfach keine Verbindung aufgebaut.
    Verbindungsparameter sehen bei mir so aus wie im angefügten Screenshot gezeigt. sieht eigentlich genauso aus wie bei Thomas (andere IPs, aber das sollte ja kein Problem darstellen, solange sie zueinander passen?) - allerdings ist der nicht spezifizierte Partner bei mir gelb unterlegt und er zeigt den fehler bei den Verbindungsparametern an. Warum ist das bei Thomas anders?

    Herkules tut übrigens auch nicht viel, nach Druck auf "Listen" sagt er zwar, dass er eine Verbindung aufgebaut hätte, aber die SPS behauptet halt was anderes. DONE ist nach wie vor auf False.
    Und im Test-Mode sowie bei TCP-Client krieg ich immer "TCP connection timeout" - über die Windows-Eingabeaufforderung kann ich die SPS aber ohne Probleme anpingen...
    Angehängte Grafiken Angehängte Grafiken

  11. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Deep Thought Beitrag anzeigen
    Hallo ihr beiden,
    ich hab jetzt mal versucht, alle eure Anregungen umzusetzen. Leider ohne Erfolg - es wird einfach keine Verbindung aufgebaut.
    Verbindungsparameter sehen bei mir so aus wie im angefügten Screenshot gezeigt. sieht eigentlich genauso aus wie bei Thomas (andere IPs, aber das sollte ja kein Problem darstellen, solange sie zueinander passen?) - allerdings ist der nicht spezifizierte Partner bei mir gelb unterlegt und er zeigt den fehler bei den Verbindungsparametern an. Warum ist das bei Thomas anders?
    Gelb ist nicht gut, und bei dir ist auch noch ein rotes Kreuz - irgendwas passt da also noch nicht.
    Bei mir ist das TIA Portal auch einmal beim Anlegen der Verbindung abgeschmiert, aber bei dem Programm kommt das öfters mal vor.
    Ansonsten kannst du evtl. eine PC-Station mit IE-Schnittstelle mit der entsprechenden IP-Adresse anlegen, und diese als Verbindungspartner auswählen.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 07.11.2011, 14:29
  2. Antworten: 5
    Letzter Beitrag: 13.07.2011, 22:15
  3. Kommunikation zwischen S7 1200 und WinAC RTX
    Von Nockenwelle im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 03.03.2010, 15:15
  4. Antworten: 2
    Letzter Beitrag: 17.01.2008, 14:01
  5. Kommunikation zwischen Sps und PC
    Von Hotsch im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.09.2007, 16:41

Lesezeichen

Berechtigungen

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