Senden über Ethernet

Power_Pete

Level-1
Beiträge
46
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich mach gerade meine Technikerarbeit und versuche eine Kommunikation zwischen Mitsubishi Robotern und ner S7 314 über Ethernet herzustellen.

Dazu brauche ich ja höchstwahrscheinlich diesen FC 5 AG_Send und den AG_RECV oder ? und was muss ich dort auf die Eingänge Send und Leng anlegen ich kann mit der Simatic Hilfe nichts anfangen.

Nächstes Problem: Für den Vorgang muss ich die zu übertragenden Daten in einen DB legen oder ? wenn ja wie ?

Helfet dem Dummen...


Greetz Pete
 
und was muss ich dort auf die Eingänge Send und Leng anlegen ich kann mit der Simatic Hilfe nichts anfangen.
Send ist ein Any-Zeiger auf deine Sendedaten, z.B.:
Code:
P#db99.dbx10.0 byte 240
In LEN gibtst du die Länge der gesendeten Daten in bytes vor.
Nächstes Problem: Für den Vorgang muss ich die zu übertragenden Daten in einen DB legen oder ? wenn ja wie ?
Ja, die Empangs- oder Sendedaten werden in einem Datenbaustein oder Merkerbereich abgelegt. Einfügen S7-Baustein -> DB -> Global DB

Ich bin mir aber nicht sicher, ob die AG_SEND und die AG_RECV für deine Anwendung geeignet sind?

Beispiel mit AG_SEND und AG_RECV:
http://support.automation.siemens.com/WW/view/de/17853532
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok danke erstmal, was ist das mit dem

P#db99.dbx10.0 byte 240
Der db99 ist der db den ich erstellt hab und für was steht das dbx10.0 und die 240 byte ?

Kann ich in dem db eine Beispiel Variable anlegen ? z.B.

Adresse Name Typ Anfangswert
+0.0 Var1 INT 23

wie bekomm den AG_Send dazu diese Variable an meine ID 1 zuschicken ?
 
Genau DB99 ist der Datenbaustein, in diesem Fall 99.
DBX10.0 ist die Adresse im DB, in diesem fall 10 (DBW10 für Wort oder DBX10.0 für Bool). Und die 240 byte ist der Wiederholfaktor. Dieses Beispiel gibt einen Bereich von 240 bytes, beginnenend bein Datenwort 10 im DB99 an.
Adresse Name Typ Anfangswert
+0.0 Var1 INT 23
Genau so. Du kannst auch zur bessereren Übersicht Strukturen verwenden. In diese Strukturen kannst du wieder deine einzelnen Variablen anlegen.

wie bekomm den AG_Send dazu diese Variable an meine ID 1 zuschicken ?
Beispiel für deine Variable:
Code:
SEND := P#DB99.DBX0.0 byte 2
LEN:=2
Zunächst muss dieser Datenbereich auch vorhanden sein. Mit dem Parameter ACT(bool) kannst du einen Auftrag anstoßen.

Geh mal auf den Link im Beitrag #2, da findest du ein Beispiel. Vielleicht hilft dir das weiter.
 
Zuletzt bearbeitet:
Ok check,...

Sieht jetzt so aus Ich hab nen db1 darin hab ich die variable angelegt

+0.0 var1 INT 23

dann den AG_Send so beschaltet

send p#db1.dbx0.0 byte 2
len 2
ACT E124.0 hardwaremäßig von 0 ->1 geschaltet

dann bringt er error und im status 8181 und 8183

wenn ich den len auf 3 setze bringt er nur noch 8185
???

Hab das Programm mal durch geschaut hat mir aber net viel geholfen irgendwie.

Was heisst "Zunächst muss dieser Datenbereich auch vorhanden sein." Ich leg den Datenbereich mit der Variable doch fest ?


pete
 
Was mir gerade noch einfällt. Das ganze funktioniert nur mit projektierten Verbindungen. Du musst erst in NetPro eine Verbindung zu deinem Partner projektieren.
Auszug aus der Hilfe:
Eingeben einer neuen Verbindung

Eine Verbindung definiert die Kommunikationsbeziehung zwischen zwei Teilnehmern. In ihr sind festgelegt:

  • die beiden Kommunikationsteilnehmer.
  • der Typ der Verbindung (z. B. S7-, Punkt-zu-Punkt-, FMS-, ISO-on-TCP-, FDL-Verbindung oder ISO-Transportverbindung).
  • spezielle Eigenschaften, die vom Typ der Verbindung abhängen (z. B. ob eine Verbindung permanent aufgebaut bleibt oder ob sie im Anwenderprogramm dynamisch auf- und abgebaut wird).
Voraussetzung
Sie befinden sich in der Netzansicht (NetPro).
Vorgehensweise

  1. Markieren Sie in der Netzansicht die Baugruppe, für die eine Verbindung angelegt werden soll.
    Ergebnis: Die Verbindungstabelle der markierten Baugruppe wird im unteren Teil der Netzansicht dargestellt.
  2. Doppelklicken Sie auf eine leere Zeile der Verbindungstabelle oder markieren Sie eine Zeile und wählen den Menübefehl Einfügen > Verbindung.
  3. Wählen Sie im Dialogfeld "Neue Verbindung" den gewünschten Verbindungspartner. Hilfe zur Auswahl des Verbindungspartners finden Sie in der Online-Hilfe zu diesem Dialogfeld.
  4. Legen Sie den Typ der Verbindung fest.
  5. Aktivieren Sie das Kontrollkästchen "Eigenschaftsdialog aufblenden", wenn Sie nach "OK" oder "Hinzufügen" die Eigenschaften der Verbindung anschauen oder ändern wollen:
    Der Inhalt des Dialogfeldes "Eigenschaften..." ist abhängig von der gewählten Verbindung; Hilfe zum Ausfüllen finden Sie in der Online-Hilfe zu diesem Dialogfeld.
    Ergebnis: STEP 7 trägt die Verbindung in die Verbindungstabelle des lokalen (d. h. des markierten) Teilnehmers ein und vergibt für diese Verbindung die Lokale ID und ggf. die Partner-ID, die Sie bei der Programmierung der Kommunikations-Funktionsbausteine benötigen (Wert für den Bausteinparameter "ID").
 
Ich hab schon alle Bausteine geladen das ist klar und die Netproübersicht hab ich sammt den Verbindungen auch erstellt. Von dort bekomm ich ja meinen LADDR und meine ID.

Also der parameter len muss gleich großm sein wie die größen angabe beim Send ?

Woher hast du die Fehlermeldung Beschreibung ?


mfg Pete
 
Zuviel Werbung?
-> Hier kostenlos registrieren
AG_send / AG_Recv sind schon richtig, wenn du eine CP verwendest (was du bei einer 314 wahrscheinlich musst).
Als Alternative kannst eine CPU 315-2PN/DP nehmen, da würdest du dann die Bausteine T_Connect, T_send, T_Recv verwenden.
 
Woher hast du die Fehlermeldung Beschreibung ?

Geh mal auf deinem Baustein und drück F1!
Ganz unten findest du 2 links mit den Fehlerbeschreibungen.

Die Hilfe von Step7 ist wirklich nicht schlecht. Man muss sie nur mal nutzen.

Hast du denn eine CP-Baugruppe? (vermutlich ja)
Was sagt denn der Diagnosepuffer der CP bzw. ist die CP in RUN oder hat sie einen Sammelfehler?

Gruß wolder
 
Also ich hab ne 314 c 2dp und nen cp 343 lean.
Die SPS bringt keine Fehler und der CP auch nicht.
Ich kann auch alle Teilnehmer(2 Mitsubishi Roboter, OP 177B) pingen.

Ich komm nur mit dem Senden und Empfangen nicht zurecht...

Ich probiers nochmal mit der Hilfe ich meld mich ....
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bin jetzt so weit das nur noch der fehler 8183 kommt,
kann des sein das es dran liegt das ich den ACT eingang über einen Takt merker setze

Oder was bedeutet

- der Iso Transport dienst im ethernet cp ist noch nicht gestartet
- die Projektirung fehlt
 
Hallo Pete,

bei Fehler 8183 solltest Du auf jeden Fall noch mal die Verbindung anschauen.
- ISO on TCP Verbindung (ich nehme immer eine unspezifiziert)
- richtige Karte (Wegwahl) und Verbindungsnummer wählen. (Bei nur einem CP und einer Verbindung stimmt die Voreinstellung schon.
- Nur ein Teilnehmer hat den Haken "Aktiver Verbindungsaufbau" (aber einer muss es haben)
- IP Adresse und TSAP von eigener Anlage und Teilnehmer einstelle. Genau das muss natürlich bei der Gegenseite auch passen.
- übersetzen und speichern
- übertragen
- auf Lean klicken und Diagnose anschauen ob Verbindung steht. (separat für Diagnose Online schalten).
- überprüfen ob der Stecker nun gesteckt ist. ;) (als Symbol)

An Deinem Baustein die richtige ID und LADDR einstellen, aber das hast ja schon gemacht.
Kleiner Tipp: Auf Baustein klicken > rechte Maustaste > Verbindung > jetzt bist im NetPro genau auf der eingestellten Verbindung.
Ist sehr hilfreich wenn mehrere Verbindungen und CPs hast.
 
Zurück
Oben