TIA Adressraum

Outrider

Level-1
Beiträge
745
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Habe ein Grundsätzliches Problem
Ich habe eine 315F an der über den Profibus Ventilinseln von Festo gesteuert werden CPV14
Bei uns war der Adressraum bisher immer unkritisch. Die Ventilinseln bewegten sich meist im Adressbereichbereich 100-110
Nun wollte ich sie auf 200 legen ! Kann sie aber dort nicht ansprechen.
Was ist Faul.
Wenn ich Antriebsregler üb den Bus anspreche oder Analoge Karten bearbeite dann gehts bis 800 oder mehr .
Es gibt ja Prozessabbild und dem Peripherieadressbereich.
Kann ich irgendwo was verändern dass es höher geht?
Gruß und Danke für Tipps
 
Ist etwas Versteckt unter Zyklus ...

Gerätekonfiguration
Doppelklick auf die CPU
Allgemein
Zyklus
Größe des Prozessabbilds

ScreenShot434.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nun wollte ich sie auf 200 legen ! Kann sie aber dort nicht ansprechen.
Was ist Faul.
Wenn ich Antriebsregler üb den Bus anspreche oder Analoge Karten bearbeite dann gehts bis 800 oder mehr .
Man kann die Ventilinseln auch ansprechen, wenn die E/A-Adressen außerhalb des Prozessabbildes liegen - genauso wie Du auch die Antriebsregler oder analoge Karten ansprichst.
- wenn die Adressen innerhalb des Prozessabbildes liegen, dann kann man auf das Prozessabbild (%EW, %AW) oder direkt auf die Peripherie (%EW:p, %AW:p) zugreifen
- wenn die Adressen außerhalb des Prozessabbildes liegen, dann muß man auf die Peripherie (%EW:p, %AW:p) zugreifen. Falls das ein Profibus-/Profinet-Teilnehmer mit eingestellter Konsistenz 3 Byte oder > 4 Byte ist, dann muß man SFC14 "DPRD_DAT" und SFC15 "DPWR_DAT" für den Zugriff benutzen.

Auf die Peripherie kann man nicht bitweise zugreifen (%A200.0:p geht nicht). Wenn man einzelne Bits des Adressbereichs ansprechen will, dann legt man die Bits in ein Merkerword oder DB-Word und transferiert dann dieses Word zur Peripherie.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei den EW:p bzw AW:p musst du aber aufpassen, meines erachtens gelten die
nicht für die Classic CPUs, der 300er Reihe.

Dochdoch, das ist auch bei der Classic so. Bzw da ist es speziell so. bei den neuen weiss ich garnicht obs da Unterschiede zwischen Prozess und Peripherieabbild gibt. ich hab auf jedenfall noch keine Einstellmöglichkeit bei den 1500ern gefunden wo man das Bild vergrössern oder verkleinern könnte.
 
Dochdoch, das ist auch bei der Classic so. Bzw da ist es speziell so. bei den neuen weiss ich garnicht obs da Unterschiede zwischen Prozess und Peripherieabbild gibt. ich hab auf jedenfall noch keine Einstellmöglichkeit bei den 1500ern gefunden wo man das Bild vergrössern oder verkleinern könnte.

Ich glaube er meinte die Schreibweise mit dem ":p" das geht im TIA auch bei einer S7-300 .
Eine S7-1500 hat kein Peripherieabbild mehr, das Prozessabbild umfast hier den kompletten E/A Adressbereich.

Gruß
Christoph
 
Zuletzt bearbeitet:
Verstehe ich das richtig: bei S7-1500 kann man Peripherie nicht mehr direkt lesen/schreiben? :confused:

Dochdoch. Geht immernoch und muss man immernoch wenn man Azyklisch was schreiben/lesen will.

einfach mit :p hinterm TAG (Symbolischen Tag)

Code:
"Ausgangsymbol":P  := "Eingangssymbol":P;

EDIT: Ich glaube neu kann man auf den 1500er und 1200er direkt auch auf Peripheriebits zugreifen. Hab ich aber noch nicht ausprobiert.

mfG René
 
Zuletzt bearbeitet:
Ich habe es nicht ausprobiert. Aber vermutlich hat man bei der 1500 keinen Geschwindigkeitsvorteil wenn man aufs prozessabbild zugreift statt auf die Peripherie. Bei der Classic waren das ja noch Faktoren.


Sent from my iPhone using Tapatalk
 
... Aber vermutlich hat man bei der 1500 keinen Geschwindigkeitsvorteil wenn man aufs prozessabbild zugreift statt auf die Peripherie. Bei der Classic waren das ja noch Faktoren.

Hi vollmi

Faktoren ... in welche Richtung.

Ein Zugriff auf E oder A ist ein Zugriff auf Speicher, d.h. genauso schnell wie M. Das gilt für alle 300/400/1200/1500.
Ein Zugriff auf DB is auch Speicher, aber jetzt kommt es drauf an, wie direkt das angegeben ist.
Bei 300/400 muss immer ein AUF DB sein. Der folgende L DBW 124 prüft auf vorhandensein und Länge.
Bei der 400 ist der DB Zugriff langsamer als bei der 300.
Die 300, also konkret seit 319 kann aber schneller auf den DB zugreifen wie die 400! Aber nur dann wenn innerhalb eines FC mehrere Zugriffe auf den DB stattfinden. Je mehr DB da sind desto langsamer wird es bei der 400. Die 300 hält sich wacker.
Bei 1200 und 1500 scheinen die DB-Register gar nicht mehr vorhanden zu sein. Ob ich jetzt 2 oder 20 verschiedene DB im FC adressiere macht keinen Unterschied.
Bei diesen CPU gibt es Unterschiede zwischen der - wie sag ich das jetzt? - "Flexibilität" der Zugriffe. Wenn man mit Variable auf das Array zugrieft ist das langsamer als mit Konstante. Am Längsten dauert VARIANT.

Aber das Thema ist ja der direkte Zugriff auf E und A. Also PE und PA oder eben "Tag_1":p. Hier hängt es davon ab, wie schnell der Prozessor im Vergleich zum Bussystem ist. Und wie weit weg die Adresse ist. Zentrale Peripherie am Rückwandbus ist schneller als Dezentrale über ProfinetIO. In der 1518 steckt ein GHz taktender Intel oder MIPS oder ARM, für den ist der Unterschied zwischen ProfiNet und eigenem Speicher (am besten noch Level1 Cache) in der Größenordnung von 10000. Die 1518 schafft drei DB Zugriffe auf optimierte DB mit Addition in wenigen 10ns. Also sowas wie DBa.m_a := DBb.m_b + DBc.m_c. Über den CP auf die dezentrale Periphery dauerts dann schon mal 100µs ...
Bei einer 314 aus dem Jahre 2000 sieht die Welt ganz anders aus. Hier taktet vermutlich ein Infineon-Eigengewächs mit 33MHz bis 133MHz. Von Caches weit und breit keine Spur. Bei der Zykluszeit liegst du im Bereich von 100ms. Da ist es dann konsequenter weise schneller wenn man zwischen durch die 1ms spendiert um über den Rückwandbuss auf P zu greifen. Und das obwohl am Zyklusende alle A raus und zu Beginn alle E rein gelesen werden.

Ich würde eindeutig für Geschwindigkeitsvorteil bei E und A reden.

'n schön' Tach auch
HB
 
Zurück
Oben