iDevice - keine Daten

Pico1184

Level-2
Beiträge
332
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hab gerade das erste mal mit iDevice zu tun, und zwar mit folgender Hardeware:

- 315-2 PN/DP V3.2
- IM151-8 CPU PN V3.2

alle beide in einem step7 Projekt angelegt ( zwei s7 300 Stationen)

zuerst habe ich die et200 konfiguriert wie im Profinethandbuch (Kapitel iDevice) beschrieben. Dann das iDevice Mapping durchgeführt und die GSD Datei erzeugt und installiert.

im Projekt der 315er CPU dann die GSD Datei des iDevices eingefügt und dann auf beiden Seiten die Hardeware übertragen und CPUs neu gestartet.

die Kommunikation scheint auch zu funktionieren zumindest sieht auf beiden Seiten in der online hardewarekonfig alles okay aus! Station vorhanden und ok.


nur bekomme ich die aktuellen Daten welche zuvor im iDevice angelegt wurden nicht auf den io Controller! Im idevice sind Werte da, auf dem io Controller ist alles 0.

das Mapping hab ich gefühlte 100 mal überprüft sollte eigentlich passen.

nach was soll man suchen wenn kein Fehler angezeigt wird???????

Grüße Pico
 
Hast du schon mal geschaut ob in der Hardware Konfig der 315er der richtige Name angegeben ist für den iDevice Teilnehmer?
Der Name muss genau dem Gerätenamen der ET200 entsprechen.

Mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh jetzt wo du's sagst, da gab es ein Problem und zwar hab ich ja beide Stationen im gleichen Projekt und dann hatte die hardewarekonfig beim einfügen des idevices in den io Controller gemeckert, dass dieser Name schon existiert und gefragt ob er auf der gleichen physikalischen Hardeware sitzt!

Hab das mit ja bestätigt, vielleicht hat es damit etwas zu tun? Aber warum sagt dann die online config alles vorhanden und okay?

grüße PicoPico
 
Hatten das auch schon mal!Das beim einfügen der iDevice GSD einfach der Name umgeändert wird (automatisch)!
Das funktioniert nur so nicht!

Mfg
 
Hallo,
bezüglich der Namens-Vergabe hat Siemens sicht da etwas richtig Tolles hingebastelt - damit muss man (aber nicht nur bei I-Device sondern bei PN generell) schon ein bißchen aufpassen.

@Pico:
Ich denke nicht, dass, so wie du es beschreibst, in deinem Projekt alles OK befunden wird.
Mach doch mal die Kopplung der beiden Devices über die SFC's (14 und 15). Ich denke mal, dass du mit denen eine Fehler-Meldung bekämst.
Für die HW-Konfig ist natürlich (!?) erstmal alles in Ordnung da die die Kommunikation nicht checkt ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also der Name passt, habe im iDevice den gleichen Namen wie im IO Controller. Definitiv richtig.
Auch über den SFC14 bekomme ich keine aktuellen Werte, aber einen Fehler bringt der auch nicht.
RetVal = 0

Kein blasser Schimmer was jetzt noch das Problem sein sollte?!?

Grüße Pico
 
Halloechen,

die beiden CPU's müssen nicht im gleichen Projekt sein um Daten auszutauschen. Du musst nur die GSD Datei in die Hardware Deiner Master CPU einfügen. Wichtig ist, dass die Namensvergabe richtig ist. Bei der Namensvergabe wird auch noch der Name des Netzes als .xxxxx angehängt. Den Namen des I-Devices kannst Du in der Hardware unter der CPU X1 sehen. Um Daten auszutauschen musst Du dann in beiden CPU's jeweils einen schreibenden und lesenden Zugriff auf den Peripheriebereich ausführen und so die Daten aus Deinem (wahrscheinlich DB) in die Ausgänge zu schreiben und von den Eingängen in den DB zu lesen. SFC14/15 wird nicht benötigt, ein einfacher Blockmove reicht aus.

Hier als Beispiel das Schreiben der Daten in die Ausgänge, startend ab Adresse 200.0, Länge der Daten 50 Byte.

Source SFC20 : P#DB101.DBX0.0 BYTE 50

Destination SFC20: P#A 200.0 BYTE 50

Das Lesen der Daten erfolgt genauso, nur ist die Quelle dann Dein Eingangsbereich und das Ziel Dein DB.

Erst wenn in beiden CPU's lesen und schreiben erfolgt, bekommst Du Daten hin und her.

Lesen tust Du am Anfang des Zyklusses, schreiben am Ende

Gruss

Oliver
 
die beiden CPU's müssen nicht im gleichen Projekt sein um Daten auszutauschen.

ja das ist klar, hätte es halt gerne in einem Projekt gehabt um nicht immer zwischen Projekten umzuschalten. Aber egal dann leg ich halt ein Multiprojekt an.

Also ich habs nun zum laufen bekommen. Habe die Projekte aufgesplittet und die Namen nochmal eingestellt und überprüft und dann noch die Perepherieadressbereiche
des IO Controllers und des iDevices erhöht da die Adressen bei Byte 200 aufwärts waren. Weiß zwar nicht genau ob es damit was zu tun hatte aber es funktioniert!

SFC14/15 wird nicht benötigt, ein einfacher Blockmove reicht aus.

Also ich verwende auch den Blockmove nicht. Im iDevice schreibe ich direkt auf die gemappten Ausgänge (z.B. A252.0) und im IO Controller über (z.B. E288.0) geht ohne jegliche Zusatzbausteine!

Nach anfänglichem Zweifel bin ich eigentlich ziemlich begeistert so Daten zwischen zwei PN CPUs austauschen zu können, von dem Aufwand bei der Fehlersuche mal abgesehen (sollte aber das zweite Mal schneller gehn :D).

Jetzt sollte nur noch VIPA in die Pötte kommen und iDevice unterstützen dann bin ich glücklich.

Grüße Pico
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die E/A-Adressen des iDevice im Prozessabbild des Controllers liegen, dann braucht man in der Tat keine SFC14/15. Man liest/schreibt direkt mit den E/A-Adressen und überlässt die Aktualisierung des iDevice der Firmware des Controllers.
Wenn jedoch die E/A-Adressen außerhalb des Prozessabbildes des Controllers liegen, dann muß man sehr wohl für Konsistenzen ungleich 1, 2, 4 Bytes die SFC14/15 benutzen.

Harald
 
Zurück
Oben