Realzahlen über den Speicher hinaus.

winpapst

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Ich bin absoluter Neuling in der Siemens Welt und nun steh ich halt vor einem (für mich schweren) Problem.:roll:
Ich setze die CPU 314C-2 PN/DP ein, Programmierung läuft ueber das TIA-Portal.

Nun meine Frage, da ich bisher nur Mitsubishi programmiert habe.
Ich moechte 54 Realzahlen im Projekt verarbeiten, diese sind aufgeteilt in 4 FB´s (Analog-Soll, Analog-Ist, Temp-Ist usw.).
Wenn ich aber die analogen Werte in der Variablenliste durchadressiere und übersetze, sagt mir die Software das die Adressen ausserhalb des Bereiches liegen (Denke das der Bereich jenseits der 254 gemeint ist in der CPU.)
Wie kann man das nun lösen das man auch z.B. ein MD700 oder MD500 verbauen kann ?
 
ew /aw kannst du nur soweit anzeigen wie es im pae / paa abgebildet werden kann.
das ist bei vielen cpu einstellbar aber nicht bei allen. in der hwconfig der cpu.

höhere e kannst du in der vat mit pew einlesen.
ein paw kann man in der vat nicht beobachten. hier kannst du den weg über merker- oder datenworte machen

wie hoch der maximale adressbereich von merkern, datenworten liegt ist cpu abhängig.
musst du ins handbuch deiner cpu schauen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ew /aw kannst du nur soweit anzeigen wie es im pae / paa abgebildet werden kann.
das ist bei vielen cpu einstellbar aber nicht bei allen. in der hwconfig der cpu.

höhere e kannst du in der vat mit pew einlesen.
ein paw kann man in der vat nicht beobachten. hier kannst du den weg über merker- oder datenworte machen

wie hoch der maximale adressbereich von merkern, datenworten liegt ist cpu abhängig.
musst du ins handbuch deiner cpu schauen

Die EW/AW hab ich ja bereits im Programm stehen, nur wenn ich halt in der Variablentabelle die Werte zuweisen will sagt er halt ausserhalb des Adressbereiches. Da der wohl nur bis MD254 (realzahlen) geht...
 
Das schreit förmlich danach, die Werte in einem DB zu speichern. Da Du noch total am Anfang stehst, verzichte ich mal bewusst auf Feinheiten.

Möglichkeit 1: Du legst einen Global-DB an. Dort deklarierst Du die REAL-Variablen.
Möglichkeit 2: Du nutzt einen FB und speicherst die Variablen im Instanz-DB. Hierzu musst Du Dich aber noch etwas einlesen.
 
Ich bin mir jetzt bei der 314 nicht ganz sicher, aber sehr oft geht der Merkerbereich "nur" bis M255.7!
Da der wohl nur bis MD254 (realzahlen) geht...

MD 254 beinhaltet ja MB254,MB255,MB256,MB257 und MB256+MB257 kann deine CPU nicht.

Es gibt natürlich CPU´s, die mehr als 256 Merkerbyte haben. Das müsstest du mal nachschauen.

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin mir jetzt bei der 314 nicht ganz sicher, aber sehr oft geht der Merkerbereich "nur" bis M255.7!


MD 254 beinhaltet ja MB254,MB255,MB256,MB257 und MB256+MB257 kann deine CPU nicht.

Es gibt natürlich CPU´s, die mehr als 256 Merkerbyte haben. Das müsstest du mal nachschauen.

Gruß wolder

Hallo,

die 314 hat nur 256 Merkerbyte. Was wäre denn wenn du statt Merker ein Datenbaustein verwendest, die können bis 64kB ;)?


Gruß Marcel
 
Zuletzt bearbeitet:
Hab nicht behauptet dass er Datenbausteine nicht kennt, habs nur vorgeschloagen ;). Er hat ja nicht unbedingt die Wahl bei den verfügbaren Möglichkeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Doch den DB kenn ich mittlerweile damit geht es auch das ich z.B. ein MD700 erzeugen kann. Nuuur jetzt hatte ich versucht das MD700 aus einem Beijer Display anzusprechen, was wohl laut Hersteller nicht ginge wenn geht es wohl nur mit den TP´s da man ja dort die Variablen "verknüpfen" kann, sprich ich nehme die Variable aus dem DB und setze den Analogwert auf das Display auf.
 
damit geht es auch das ich z.B. ein MD700 erzeugen kann
:confused:

Du hast im DB eine Variable angelegt und diese MD700 genannt. Hab ich das richtig verstanden?
Warum nicht gleich einen vernünftigen Namen nehmen?!

Den Rest hab ich jetzt mal gerade gar nicht verstanden.
Warum willst du ne Variable aus dem DB "verknüpfen"?

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe in der Vaiablentabelle ein Temperaturwert mit md700 (kann auch md400 sein) angelegt, da die CPU aber nur bis 255 unterstützt habe ich die Variablen in den DB gezogen damit die im FB angesprochen werden koennen da ich für das Projekt min. 50 Real Zahlen brauche Ist wie Soll Werte.
Weil bevor ich das gemacht hatte kam es immer zur Fehlermeldung ausshalb des Adressbereiches.
 
Doch den DB kenn ich mittlerweile damit geht es auch das ich z.B. ein MD700 erzeugen kann. Nuuur jetzt hatte ich versucht das MD700 aus einem Beijer Display anzusprechen, was wohl laut Hersteller nicht ginge wenn geht es wohl nur mit den TP´s da man ja dort die Variablen "verknüpfen" kann, sprich ich nehme die Variable aus dem DB und setze den Analogwert auf das Display auf.

Zum Teil ist es nicht ganz einfach nachzuvollziehen, was genau Du gemacht hast. Auch die Problematik mit dem Beijer Display verstehe ich nicht ganz. Selbst die "alten" Geräte von Lauer (jetzt Beijer) konnten für die Kommunikation mit einem Global-DB parametriert werden. Möglicherweise kann aber das Bediengerät selbst nicht so viele Adressen ansprechen. Für diesen Fall musst Du halt einen Zeiger auf die Werte machen und diese auf eine Variable zur Anzeige umkopieren.
So wie ich Deinen Kenntnisstand einschätze brauchst Du dafür aber noch viel Input.
 
Ahhhh, ich habs im Bedienfeld gefunden, klar es geht man kann den DB ansprechen vom Bedienfeld. Danke für den Hinweis

Mein Problem ist einfach ich arbeite seit 8 Jahren mit Mitsubishi Steuerungen und dort ist es einfach anderes, allein der Aufbau usw..
 
Zuletzt bearbeitet:
Zurück
Oben