Step 7 S7-400 : Welche PEW Adressen darf ich verwenden?

Kieler

Level-2
Beiträge
764
Reaktionspunkte
86
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sitze gerade vor einer schönen alten S7-400. Diese verfügt aber inzwischen schon über einen Profinet Anschluss. Über diesen lese ich diverse Signale ein.

Ich habe einen Teilnehmer, welchen ich auf die Adresse PEW 4001 gelegt habe. Obwohl die Verbindung steht, bekomme ich beim Zugriff immer Fehler. Ich habe den Verdacht, dass die Adresse PEW4001 einfach so groß ist. Eine andere Adresse bei 1600 geht ohne Probleme. Gibt es hier eine Grenze ? Eventuell bei 2048? Kennt sich jemand aus? Ich muss bei der Änderung der Hardware leider immer ein ganzes BHKW abschalten.
 
Ist bei BigS ja wie immer vom Typ abhängig was die 400er kann.

So kann z.B. die 412-1 4kB E/A, die 414-3 8kB und die 416-3 16kB.

Also sollte ein Bereich so um die 4000 noch passen.

Ich sehe eher das Problem das Du ein ungerades PEW ansprechen willst...

Ich würde 4000 nehmen anstatt 4001.

aber Du kannst bei der 400 ja auch das Prozessabbild aufbohren bis zum Ende, das geht dann aber auf die Zykluszeit.

hoffe geholfen haben zu können
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ja es gibt bei der Anzahl der PEW eine Grenze, wo die liegt habe ich nicht nachgesehen. Diese steht im technischen Datenblatt der CPU. "Prozessabbild"

Ich glaube bei einigen ist das 4kbyte oder so

Um Dir genauer weiterhelfen zu können wäre die Bestellnummer der CPU interessant.
 
Moin Kieler,

was hast Du denn für eine CPU?

BTW: Warum PEW4001? Sinnvoll ist es immer bei geraden Byteadressen zu starten (PEW4000 oder PEW4002).

VG

MFreiberger
 
Ich habe eine CPU 414-2DP. Ich habe keine Möglichkeit gefunden hier etwas einzustellen.

Das mit man bei Siemens "gerade" Wörter verwendet ist mir schon klar. Mit 4001 habe ich nur angefangen, weil die Gegenseite auch bei 1 anfängt. Aber da ich noch drehen und schieben muss, kann ich das auch wieder anpassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

also die aktuelle 414 hat einen Peripherieadressbereich von 8kbyte für Aus- und Eingänge.
Und zwar die 6ES7414-2XL07-0AB0.
Welche hast Du (Bestellnummer)?

Was Anderes: was bekommst Du denn für einen Fehler?


VG

MFreiberger
 
Ihr habt mich schon auf die richtige Spur gebracht. Die Grenze lieft bei 4094. Meinen Teilnehmer habe ich die Adressen 4001 bis 4384 gegeben. Dann liest er vermutlich nichts richtig ein. Mal sehen wo ich noch Platz find.
 
Du nimmst die genaue Bestellnummer Deiner CPU und schaust im zugehörigen Gerätehandbuch in den technischen Daten nach, wie groß der Peripherieadressbereich dieser CPU ist. Weil Du nicht angegeben hast, welche CPU Du verwendest, kann ich nicht für Dich im Handbuch nachschauen.

Alternative: schau in HW Konfig nach, welche Diagnoseadressen HW Konfig automatisch vergeben hat (*). Die werden als Systemvorgabe automatisch von der höchstmöglichen Adresse absteigend vergeben - bis zu diesen Adressen kannst Du Peripherieadressen projektieren und zugreifen.
(*) Ansicht > Adressübersicht... die hohen aufeinanderfolgenden E*-Adressen

Welchen Zugriffsfehler genau bekommst Du?
Gibt es überhaupt eine Adresse PEW4001 in HW Konfig? (Warum ist das eine ungerade Adresse??)
Ist die Adresse vielleicht Baugruppen-übergreifend (PEB4000 in einer Baugruppe und PEB4001 in einer anderen Baugruppe)?
Liegt die Adresse womöglich in einem größeren Konsistenzbereich, der mit SFC14/SFC15 gelesen/geschrieben werden muß?

PS: zu langsam...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Grenze lieft bei 4094. Meinen Teilnehmer habe ich die Adressen 4001 bis 4384 gegeben.
Wie geht das, wenn die CPU nur bis 4094 kann? Das dürfte HW Konfig gar nicht übersetzen. Hast Du nicht die korrekte CPU in HW Konfig verwendet?

Harald
 
Ich habe eine CPU 6ES7 414-2XK05-0AB0 Firmenware V5.3.

Die Diagnose Adressen liegen alle bei >8000. Da müsste nach meiner Meinung auch die Grenze sein. Als weit weg von meinen 4000. Ich bekomme einen klassischen Zugriffsfehler (OB122). Die Daten werden über einen CP 443-1 über Profinet eingelesen. Hier werden keine Bausteine benötigt. Kann es wirklich daran liegen, dass ich mit 4001 und nicht mit 4000 begonnen habe? Das ist zwar unschön aber eigentlich doch egal. Oder?
 
Technische Daten CPU 6ES7 414-2XK05-0AB0 V5.3 im S7-400 Gerätehandbuch 2010
Peripherieadressbereich 8KByte

Wenn man auf Peripherieadressen eines (momentan) nicht erreichbaren Profibus- oder Profinet-Teilnehmers zugreift, dann bekommt man Peripheriezugriffsfehler. Das ist ganz normal.

Bei der CPU könnte man die E/A-Adressen ins Prozessabbild legen und bei den CPU-Eigenschaften (Zyklus/Taktmerker) festlegen, daß bei Peripheriezugriffsfehlern bei der Aktualisierung des Prozessabbildes der OB85 nicht aufgerufen wird.

Harald
 
Weil es mehrfach angesprochen wurde, habe ich jetzt den Teilnehmer mit beginnend mit der Adresse PEW4000 anstelle 4001 in der Hardware projektiert. Das macht aber keinen Unterschied. Wenn ich in der Hardware online gehe, kann ich sehen das der Teilnehmer online ist bekomme aber Peripheriezugriffsfehler wenn ich etwas lesen möchte. Mir fällt gerade nichts mehr ein.
 
Kann es wirklich daran liegen, dass ich mit 4001 und nicht mit 4000 begonnen habe?
Ausprobieren. Wenn Du problemlos das Byte 4001 laden kannst und separat auch problemlos das Byte 4002, aber nicht das Wort 4001, dann ist es tatsächlich so.
Wenn die Hardware z.B. nur wortweise beginnend auf geraden ByteAdressen addressieren kann, müsste das BetriebsSystem 2 Worte lesen und das erste Bytes des ersten Wortes sowie das zweite Byte des zweiten Wortes wegschmeissen und das zweite Byte des ersten Wortes und das erste Byte des zweiten Wortes zu 1 Wort zusammenwurschteln, um es Dir als Ergebnis zu liefern.
Das ist natürlich mit mehr Aufwand verbunden. Ob der Hersteller des BetriebsSytems diesen MehrAufwand spendiert bzw. spendieren sollte oder nicht ... ist Geschmackssache.
Für die Umsetzung in einer SPS ist wahrscheinlich der GesichtsPunkt ausschlaggebend, dass die AusführungsZeit für das Laden eines Wortes von einer ungeraden Adresse deutlich länger wäre als für das Laden vom einer geraden Adresse.
Der nächste SPS-Programmierer, der darüber stolpert, würde sich dann darüber beschweren und fordern, dass das Adressieren von Worten beginnend auf ungeraden ByteAdressen verboten wird. ;)

PS: Du versuchst doch nicht, ein PeripherieAusgangsWort zu lesen oder ein PeripherieEingangsWort zu schreiben?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Was sagt die detaillierte Teilnehmer-Diagnose? (Baugruppenzustand, Diagnosestatus)
Leuchten/blinken an dem Gerät rote LEDs?

Noch eine Nachfrage zu einer Angabe, die leider nicht im Eröffnungs-Post steht:
Was für ein Teilnehmer ist die "Gegenseite"? Ein PN/PN-Koppler? Spricht der Profinet-Controller der Gegenseite mit seiner Seite des Kopplers?
Ich meine, wenn der Profibus-Master oder Profinet-Controller eines Kopplers nicht mit seinem Teil des Kopplers spricht, dann wird das auf der anderen Seite signalisiert über Baugruppenausfall und Peripheriezugriffsfehler, weil das Gerät ja teilweise ausgefallen ist. (das sollte auch im Handbuch des Gerätes stehen)

Hast Du sonst noch überraschende Infos über Deine Anlage, die wir zum Helfen vielleicht wissen sollten?
z.B. Wie ist die Konsistenz der E-/A- oder Transferbereiche eingestellt?

Harald
 
Nicht das Du Deinen Teilnehmer an MPI/DP angeschlossen hast, oder?

Der Anschluß kann nur bis 2048.
DP/DP könnte bis 6144.
 
Bei meinem PN Teilnehmer handelt es sich um eine Steuerung von BR Automation. Diese werden über X20 communication modul an Profinet angebunden. Entsprechend den Vorgaben habe ich die Hardware in der S7-400 projektiert. Wenn ich im Hardwaremanager online gehe, wird mir dieser Teilnehmer als online angezeigt und die Teilnehmerdiagnose sagt, dass alles ok ist.

Wenn ich jetzt in meinem Programm auf etwas von diesem Teilnehmer zugreife, bekomme ich Peripheriefehler.

Ich habe die Hardware jetzt zweimal angepasst. Einmal habe ich den Start von 4001 auf 4000 verlegt. Danach habe ich den Start auf 3400 gelegt um unter 4000 zu kommen. Das hat alles nichts gebracht. Ich habe schon überlegt, ob das Device mit 380 Byte zu groß ist. Aber müsste das Step7 das nicht abfangen? Ich rate nur noch.
 
Zurück
Oben