Step 7 Prozessabbild einlesen/schreiben

TimeOUT

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

ich hänge zur Zeit an folgendem Problem:

Über meine Hardwarekonfig habe ich 2 Module für ein PROFINET-Device konfiguriert:

1.Trigger (WORD) A-Adresse = 512...513
2.Ergebnis (12Byte) E-Adresse = 512...523

Da die Adressen ja auch mal variieren können möchte ich in meinen FB (der mit den Werten aus den beiden Modulen arbeitet) den Zugriff auf den E-/ und A-bereich variabel halten.
Also übergebe ich die Startadressen für "Trigger" und "Ergebnis" (hier zufälligerweise jeweils:512) an meinen FB.
Code:
Call FB1, DB1
TriggerAddresse = 512,
ErgebnisAdresse = 512,
Sonstige Ein/Ausgänge = ,

Wie genau der "Trigger" auslöst ist erstmal irrelevant. Wichtig ist, dass ich irgendeinen Wert an dessen Adresse übergeben möchte.
Also z.B W#16#FFFF an A-Bereich 512..513

In früheren Programmen habe ich unter zur Hilfenahme einer temp_Variablen das ganz so gehändigt und es hat reibungslos funktioniert:

Allerdings habe ich dort nur auf den E-Bereich zugegriffen:

Code:
L Beispiel_Eingangsadresse (Input als INT, hier z.B.:512)
SLD 3
T tmp_beispieladdresse (TEMP als DINT)
L EW [tmp_beispieladdresse]

-->anschließend konnte ich mit dem Wert weiter arbeiten.

Das gleiche habe ich jetzt vor auf das Prozessabbild zu übertragen(sprich: W#16#FFFF in 512...513 schreiben):

Code:
L Trigger_Address (INPUT als INT, hier:512)
SLD 3
T tmp_Triggeraddress (TEMP als DINT)
L W#16#FFFF
T AW [tmp_Trigggeraddress]

Im Diagnospuffer zeigt er mir nun "Bereichslängenfehler" an dieser Stelle an.

Aber ich verstehe nicht wieso?

Was ist mein Denkfehler?

Danke und Gruß
Timeout
 
Hallo,
ich nehme an, dass du dich mit deinen Adressen außerhalb des in der/ für die CPU eingestellten Prozess-Abbildes bewegst - dieses geht bei dir wahrscheinlich nur bis einschließlich Adresse 255 oder ggf. auch 511.
Du müßtest die Adresse jetzt mit "L PEW" und "T PAW" ansprechen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,
also so scheint es zu funktionieren.

Mich wundert es jetzt allerdings, dass ich in den anderen FB's auch auf das Prozessabbild 512 zugegriffen habe (die selbe SPS) und es dort mit EW funktioniert hat :confused:

Trotzdem vielen Danke
Gruß

/edit: Vergesst meine Aussage, hab nochmal nachgeschaut. Dort lagen die Adressen Unterhalb von 512...
 
Zurück
Oben