Der AG_Sent Baustein

Ötzwurst

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

ich versuche mich auch gerade an der Kommunikation der S7 mit einem anderem Teilnehmer über Ethernet. Habe dazu schon einiges hier gelesen, aber dennoch nicht den Überblick bekommen. Hoffe ihr könnt mir helfen.
Also zu meiner S7:
CPU 318-2 mit CP 343-1 IT
Der andere Teilnehmer ist ein Sensor, dazu gleich mehr.

Ich möchte nun also mit dem Baustein AG_Sent einen bestimmten String, sagen wir "SJ001A" an den Sensor schicken. Wenn dies geschieht, führt der eine Aktion durch und gibt ein Resultat zurück.
Ich habe zu dem Sensor folgende Tabelle (Ausschnitt):
Picture0001.png.html
http://www.pic-upload.de/view-4540145/Picture0001.png.html
So, nun habe ich meinen AG_Sent folgendermaßen beschaltet:
Picture0002.png.html
Picture0001.png.html
http://www.pic-upload.de/view-4540194/Picture0002.png.html
In dem DB1 steht drin:
Picture0003.png.html
http://www.pic-upload.de/view-4540163/Picture0003.png.html
Als Antwort bekomme ich aber nicht den gewünschten String, sondern P#8181. So, jetzt schonmal 2 Fragen. Die Angabe BYTE 4 gibt die Länge des zu übertragendem Medium an. Was macht dann Length? Und sind 4 BYTE für meinen Fall ausreichend?
Als Antwort erwarte ich ja einen langen String, passt dieser überhaupt in mein MW2?
Dann noch etwas: Unter LADDR habe ich W#16#120 eingetragen, was ich nach langer Suche in der Hardwarekonfiguration gefunden habe. Aber was genau ist dieser LADDR?

Viele, Viele Fragen und ich hoffe ihr habt für mich die entsprechenden Antworten. Wäre euch auf jeden Fall sehr dankbar.

Gruß
Stefan
 
Zuletzt bearbeitet:
Ich möchte nun also mit dem Baustein AG_Sent einen bestimmten String, sagen wir "SJ001A" an den Sensor schicken. Wenn dies geschieht, führt der eine Aktion durch und gibt ein Resultat zurück.
..........
Als Antwort bekomme ich aber nicht den gewünschten String, sondern P#8181. So, jetzt schonmal 2 Fragen. Die Angabe BYTE 4 gibt die Länge des zu übertragendem Medium an. Was macht dann Length? Und sind 4 BYTE für meinen Fall ausreichend?
Als Antwort erwarte ich ja einen langen String, passt dieser überhaupt in

Mit dem AG_Send kann man nur Daten senden, empfangen tut der nix. Zum empfangen brauchst du dann den AG_Recv. Der Status Ausgang vom AG_Send gibt nur eine info über den Sendevorgang, wobei 8181 "Auftag in arbeit" bedeutet, genaueres dazu erfährst du in der Hilfe zu dem Baustein.

Damit der AG_Send weis über welche Verbindung er die Daten senden soll musst du ihm die richtige LADDR(Logische Addresse des CP´s) und die richtige Verbindungs ID mitteilen, die erfährst du bei der Projektierung der Verbindung in Netpro.

Welche Verbindung hast du den projektiert ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe bei beiden (CP und Sensor) eine Industrial Ethernet Verbindung eingerichtet. Dann über die CPU, unten über der Tabelle mit einem Doppelklick eine neue Verbindung mit dem Sensor vom Typ TCP-Verbindung eingerichtet. Im nächsten Fenster werden mir ja die LDDR und ID angezeigt. Ist doch soweit richtig, oder nicht?

Kann ich denn gleichzeitig den AG_Recv benutzen, um eben die Antwort des Sensors zu hören?

Kannst du/ihr mir noch was zu meinen anderen Fragen sagen?
So, jetzt schonmal 2 Fragen. Die Angabe BYTE 4 gibt die Länge des zu übertragendem Medium an. Was macht dann Length? Und sind 4 BYTE für meinen Fall ausreichend?
Als Antwort erwarte ich ja einen langen String, passt dieser überhaupt in mein MW2?
Dann noch etwas: Unter LADDR habe ich W#16#120 eingetragen, was ich nach langer Suche in der Hardwarekonfiguration gefunden habe. Aber was genau ist dieser LADDR?

Vielen Dank schonmal für deine Antwort.
 
Hallo,
ich versuch mal deine Fragen zu beantworten...

Ich habe bei beiden (CP und Sensor) eine Industrial Ethernet Verbindung eingerichtet. Dann über die CPU, unten über der Tabelle mit einem Doppelklick eine neue Verbindung mit dem Sensor vom Typ TCP-Verbindung eingerichtet. Im nächsten Fenster werden mir ja die LDDR und ID angezeigt. Ist doch soweit richtig, oder nicht?
Kann ich denn gleichzeitig den AG_Recv benutzen, um eben die Antwort des Sensors zu hören?

Ja (kommt aber auch auf den Kommunikationspartner an) und ja.

Wenn du nicht sicher bist, dann mach mal nen Rechtsklick auf den Bausteinanschluss "ID" im FUP/AWL Editor, und wähle "Kommunikation" aus.
Dann bietet dir der Simatic Manager eine Auswahl aller projektierter Verbindungen vom NetPro, die dieser Bausteintyp nutzen kann.

So, jetzt schonmal 2 Fragen. Die Angabe BYTE 4 gibt die Länge des zu übertragendem Medium an. Was macht dann Length? Und sind 4 BYTE für meinen Fall ausreichend?
Als Antwort erwarte ich ja einen langen String, passt dieser überhaupt in mein MW2?
Dann noch etwas: Unter LADDR habe ich W#16#120 eingetragen, was ich nach langer Suche in der Hardwarekonfiguration gefunden habe. Aber was genau ist dieser LADDR?

Der Baustein benutzt intern nicht die Längenangabe des Pointers, sondern "Length".
Beim Pointer kannst auch 100 hinschreiben.

In dein MW2 kannst du genau 2 Zeichen speichern. (1 Byte/Zeichen)
Ich weiß nicht, ob dein Partner "Siemens" spricht, oder ob das genormt ist, aber deine S7 braucht zusätzlich noch 2 Byte Header für den String.
Da stehen die Maximallänge und die tatsächlich benutzte Länge drin.
Das ist besonders wichtig, wenn die Strings in der S7 bearbeitet oder verglichen werden sollen...

Jetzt solltest du auch wissen ob 4 Byte für deine Zwecke ausreichen.

Gruß Micha
 
kommt aber auch auf den Kommunikationspartner an

Also kann mein Partner vll gar kein TCP? Wie kann ich das herausbekommen?

Wenn ich bei Length nun auch 100 eingebe, gibt es einen Fehler, wenn so viele Daten nicht vorhanden sind? Ich habe unterschiedlich lange Strings, deshlab frag ich...

Und noch ne ganz dumme Frage: Woher weiß mein Partner, ist ja nur ein Sensor, dass er der SPS was schicken soll. Oder hört der AG_Recv das ganze Netzwerk ab... aber dann müsste man ja keinen LADD angeben... hmmm...
 
Zurück
Oben