TIA Bereichslängenfehler, Operandenbereich zu klein?

Määäx

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

seit ein paar Wochen beschäftige ich mich nebenher mit SPS-Programmierung in TIA.

Dabei habe ich bei einem einfachen Projekt zur analogen Datenverarbeitung ein kleines Problem.

Wenn ich einen analogen Wert einlesen möchte kommt immer folgende Fehlermeldung:

Bereichslängenfehler beim Lesen
E-Bereich, Wortzugriff, Zugriffsadresse: 290
FB-Nummer: 1
Bausteinadresse: 0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1

Anscheinend ist der Operandenbereich der CPU zu klein. Mit einer anderen CPU geht es, ich muss allerdings diese verwenden: 315-2 PN/DP

Es wäre super, wenn mir jemand einen Tipp geben könnte, wie ich das Problem lösen kann.

Besten Dank,
Määäx
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

danke für den Tipp!

Für mein AI/AO-Modul sind die E-Adressen: 288-295 und der Wertebereich geht von 0 - 2040

Was könnte ich denn überhaupt ändern, dass das dann passt?

Grüße
Määx
 
Unter eigenschaften zyklus kan man dass operande bereich einstellen, standard steht dass auf 128 aber man kan ein wert eingeben von 0 -2048

Operande bereich.JPG
 
Benutzt du auch das PEW (Peripherie Eingangswort) für das einlesen. Mach mal nen Screenshot von der Hardwareconfig und dem Programmteil.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

danke für den Tipp!

Für mein AI/AO-Modul sind die E-Adressen: 288-295 und der Wertebereich geht von 0 - 2040

Was könnte ich denn überhaupt ändern, dass das dann passt?

Grüße
Määx

I/O auf 300 einstellen, oder analoge adresse anspreche mit %IW288:p fur die analoge eingang oder %QW288:p fur analoge ausgang
 
Benutzt du auch das PEW (Peripherie Eingangswort) für das einlesen. Mach mal nen Screenshot von der Hardwareconfig und dem Programmteil.

Ok hier meine HW-Config und mein Programm (der ADD-Block ist nur dazu da, um überhaupt den Input zu verwenden... kann auch ein anderer Block sein is ja eigentlich egal...)
1.png2.jpg
 
Benutzt du auch das PEW (Peripherie Eingangswort) für das einlesen. Mach mal nen Screenshot von der Hardwareconfig und dem Programmteil.

Wie dentech schon sagte... du kannst entweder mit PIW290 einlesen (direkt vom Peripheriebereich) oder den Operandenbereich (Stichwort "Prozessabbild der Eingänge"), kannst du in der Hardwarekonfiguration der CPU - Nicht das Analgmodul noch oben schrauben.

IW290 liest aus dem Prozessabbild...
Standardmäßig steht bei den kleinen CPUs da 128 drin, das geht dann halt auch nur bis IW126...

Besser ist aber du verwendest PEW (oder PIW oder wie auch immer das in der englischen Menmonik heißt)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok danke sehr!
Bin ja noch Anfänger, wie kann ich denn mit PIW genau einlesen?

Ok das verstellen des EIngangsbereiches hat zumindest schonmal funktioniert -> erster Erfolg Super :D
 
Zuletzt bearbeitet:
In deinem Screenshot verwendet das Symbol "AI_Temperature_T1" die Adresse "%IW290", versuch mal mit "%IW290:p"...

EDIT: Ups... bei TIA heißt das jetzt ja %IWxxx:p oder %QWxxx:p...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das ist meine Eingangsgröße, soll mal eine Temperatur werden.

"%PIW290" oder "%PEW290" kann ich leider nicht einstellen, da meckert er...

"%IW288:p" geht auch leider nicht. Aber das Ändern des Operandenbereichs funktioniert ja schonmal und bringt das Programm zum laufen. Beeinflusst aber wahrscheinlich auch die CPU oder den Zyklus oder?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok danke an alle hier für die schnelle Lösung des Problems!
Ich mach jetzt erstmal zufrieden Feierabend, schließlich ist bei mir gleich schon 20:00. :)

Viele Grüße aus Malaysia
Määx
 
Sorry, Sorry.. mein Fehler ist ja TIA-Portal :rolleyes:

Dort sollte es eigentlich zb. "%IW290:p" sein, funktioniert bei einem schnellen Versuch von mir aber auch nicht...

Rein zur Erklärung für Määäx:
Was wir hier PIW oder IW:p bezeichnen ist der Peripheriebereich deiner CPU in dem das Analogmodul seine Daten ablegt/bereitstellt.
Den Operandenbereich (Auch Prozessabbild genannt) ist eine Kopie des Peripheriebereichs von z.B.: IW0:p bis IW128:p die automatisch am Anfang des CPU-Zyklus erstellt wird. Stichwort Abbild!
Dieses Abbild bleibt wärend des gesamten Zyklus gleich und wird von dir mit IW128 oder auch I8.0 gelesen.

Deshalb wird die Kopie in der Standardeinstellung auch nur bis Wort 128 erstellt und enthält somit keine Information für IW290...
 
Zuletzt bearbeitet:
Ah ok das klingt logisch. Danke, das hilft mir vielleicht noch bei zukünftigen Problemen. Das Ziel ist schließlich eine PID-Regelung zu implementieren. :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wen Sie hinten die symbolische name :p sets wurde das Periferie bereich angesproche. Z.B L "AnalogeTempratur_1":p

In bild ein beispiel mit Periferie zugrift und via das Prozesabbild.
 

Anhänge

  • Knipsel7-5-13-1919.JPG
    Knipsel7-5-13-1919.JPG
    87,5 KB · Aufrufe: 32
Zurück
Oben