TIA Optimierten Datenbaustein in einen nicht optimierten kopieren

Erema

Level-1
Beiträge
57
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

wie kann ich bei der S7-1500 einen optimierten Datenbaustein welche nicht mit Array und User Definierten Datentyp angelegt ist in einen
Datenbaustein kopieren der nicht optimiert ist z.b. für Anbindung an FremdVisu die auf keine optimierten Datenbausteine zugreifen kann?
Wenn ein Datenbaustein mit User Definierten Datentypen oder Array angelegt wird kann ich Ihn den jeweiligen Datentyp kopieren.

Danke

LG

Markus
 
Einfach kopieren und anschließend die Optimierung in den Bausteineigenschaften ausschalten?
Oder wo ist das Problem?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nein ich habe gemeint im Programm zu kopieren. Nicht optimierte Bausteine hat man bei der S7-300 ja mit dem Befehl BLKMOV kopieren können.
Wie geht das bei der S7-1500?

Danke

LG

Markus
 
In dem der Quell- und Zielbereich die gleiche Datenstruktur besitzen und sich alles in nur einer Struktur befindet. Dann ist es eine einfache Zuweisung.
Wenn sich nicht alle Daten in nur einer Struktur befinden, dann entweder eine solche Struktur schaffen oder mehrfach zuweisen.

Wenn im Zielbereich eine andere Struktur benötigt wird als im Quellbereich, kann man z.B. über einen Baustein mittels Sichten "AT" von einer Struktur in eine andere wandeln.
 
Wie meinst du das? Ich kann ja einen DB nur mit BLKMOV kopieren ohne dass ich jede Variable einzeln kopiere oder meinst du da was andres?

lg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab' ja keine Ahnung, wie Dein DB aufgebaut ist.
Wenn Du darin z.B. ein Array of UDT hast, kannst Du es komplett in ein gleichartiges Array durch eine einfache Zuweisung kopieren:
Code:
MyArray:= DBArray;
Das gleiche gilt auch für (andere) STRUCTs. Notfalls musst Du also alle Einzelvariablen im DB in ein gemeinsames STRUCT einbinden.
Diese Struktur ändern bzw. an die Visu anpassen kannst Du dann durch AT.


Vlt. gibt's auch noch andere Möglichkeiten. Aber da bin ich als Hobbyprogrammierer eher der falsche Ansprechpartner.
 
Hallo ich hab den db in gar keiner struct und mit gar keinen udts aufgebaut sondern einfach bool, int,.. Wild durcheinander gewürfelt. Das es funktioniert wenn ich udt usw habe, das hab ich schon herausgefunden. A ok was verstehst du bei dir unter hobbyprogrammierer? Machst dus nicht beruflich?

Gesendet von meinem LG-E975 mit Tapatalk
 
Hallo ich hab den db in gar keiner struct und mit gar keinen udts aufgebaut sondern einfach bool, int,.. Wild durcheinander gewürfelt. Das es funktioniert wenn ich udt usw habe, das hab ich schon herausgefunden.

Aus was für einem Grund hast du denn diesen DB überhaupt optimiert?

Einen optimierten DB in einen nicht Optimierten DB unstrukturiert zu kopieren ist so ohne weiteres nicht möglich, da zwingend jedes einzelne Element an die nicht optimierte Stelle geschoben werden muss. Es gibt da auch keine Pointermöglichkeiten oder dergleichen.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich hab den db in gar keiner struct und mit gar keinen udts aufgebaut sondern einfach bool, int,.. Wild durcheinander gewürfelt.
Und was hindert Dich, da ein Gesamt-STRUCT daraus zu machen?
Dass Du bei der Verwendung der einzelnen Variablen einen Namen mehr angeben musst?

Und die Frage vom vollmi, warum der DB überhaupt optimiert sein muss, ist natürlich auch berechtigt.



was verstehst du bei dir unter hobbyprogrammierer? Machst dus nicht beruflich?
Nicht wirklich.
Bin halt ein überbetrieblicher Instandhalter, der ggf. auch mal ein paar Bugs im SPS-Programm auf die Schnelle beseitigt.
 
Hallo,

@vollmi
Ich bin mir eh noch nicht sicher ob ich optimierten Bauteinzgriff verwenden soll. Wir bauen Serienmaschinen und da bin ich gerade dabei die Machinen auf der S7-1500 neu zu entwickeln. Daher schaue ich mit gerade den optimierten Bausteinzugriff an um Vorteile / Nachteile herauszufinden. Und wenn ich eine Kommunikation zu S7-300 etc machen möchte brauche ich zwingend den nicht optimierten Bausteinzugriff.

@hucki
Es hindert mich eh nichts aber ich möchte es möglichst gleich zu dem machen wie wir es jetzt haben

lg
 
Komplett gleich zu dem, was ihr bis jetzt habt, geht es eh' nicht, wie Du ja schon bemerkt hast.
Mit dem STRUCT wäre die Sache zumindest voll symbolisch.
 
Wobei Du für die Fremd-Visu wohl um zumindest einen nichtoptimierten DB trotzdem nicht drum herum kommen wirst, sofern diese den symbolischen Zugriff nicht kann.
 
Ja das ist auch ein Grund warum ich wissen wollte wie das kopieren in einen nicht optimierten DB funktioniert.
Aber wir haben gott sei dank ganz selten FremdVisu anbindungen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@vollmi
Und wenn ich eine Kommunikation zu S7-300 etc machen möchte brauche ich zwingend den nicht optimierten Bausteinzugriff.

Das wiederum ist nicht nötig. Du kannst auch Strukturen aus Optimierten Bausteinen an eine 300er Senden und empfangen. Nur Put/Get von einer 300er auf eine 1500er geht nicht.

mfG René
 
Ah ok Danke das hab ich nicht gewusst.
Jetzt mal eine allgemeine Frage: Wer von Euch nutzt überhaupt schon den optimierten Bausteinzugriff bei der S7-1500?

LG
 
Ah ok Danke das hab ich nicht gewusst.
Jetzt mal eine allgemeine Frage: Wer von Euch nutzt überhaupt schon den optimierten Bausteinzugriff bei der S7-1500?

Bisher nicht bewusst. Ich lass mal FBs auf optimiert. Aber viele muss ich direkt deoptimieren da ich schon sehr oft mit überlagerungen arbeite. da müsste ich ja ständig move und zurückmove (oder beides bei INOUT). Ich weiss nicht ob ich da viel gewinne wenn ich auf AT verzichte dafür n haufen move_blk_variant zusätzlich verwenden muss.

Mit der klassischen programmierweise sind die zykluszeiten derzeit noch wesentlich besser wie erwartet.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was meinst du mit "Aber viele muss ich direkt deoptimieren da ich schon sehr oft mit überlagerungen arbeite" ?
Da wir standartnahe maschinen erzeugen haben wir eine Vorlage wo wir die nicht benötigten Bausteine rauslöschen daher muss ich mir das ganz gut überlegen
ob wir auf Optimierten Bausteinzugriff gehen.

 
Eine überlagerung per AT ist in optimierten FBs und komischerweise auch in FCs nicht möglich.

Eine Struktur am Eingang anzulegen, z.B. 2 Worte und dann mit einer 32Bit Struktur zu überlagern ist nicht möglich. Man muss diese 32Worte dann erstmal per Blockmove in die neue Struktur kopieren, kann dann mit den 32Bit arbeiten (und zwar nur mit denen) und muss es am ende des Bausteins wieder zurückkopieren (Wenn man die 2 Worte wieder im rest des Programms bearbeiten muss). Das ist ja auch Aufwand der den Zyklus belastet. Ob das verwenden von optimierten Bausteinen so viel Zyklusoptimierter ist um die Verlangsamung des Zyklus durch den erhöhten Aufwand auszugleichen, ist IMHO fraglich. Da gibts hier aber Experten die sich vielleicht noch zu wort melden.

Anypointer Bearbeitung ist gar nicht möglich, zumindest wüsste ich nicht wie.

Derzeit sehe ich für die Verwendung optimierter Bausteine, überhaupt keinen rationellen Grund. Von Siemens kommt ja nur die geringere Belastung des Zyklus beim Arbeiten mit optmierten DBs. Was wohl eher theoretisch ist.

Die Vorteile wenn man als Programmierer weiss wie breit eine Struktur abgelegt ist und man indiziert auf Elemente darin zugreifen kann will man wohl nicht einfach aufgeben.

Die AWL Programmierer kotzen sowieso bei optimierten Bausteinen.

Und die Rechenleistung der 1500er ist so krass, das man da ja erstmal ein Programm schreiben muss das den Speicher nicht überfüllt und den Zyklus so stark belastet. Die hat sich ja nahezu verdoppelt.

Ich muss aber mal einen Bubblesorter optimiert und nicht optimiert ausprobieren was der so mit der Zykluszeit anstellt.

mfG René
 
Ah ok verstehe. Ja nur wegen der Zykluszeit brauchen wir auch nicht auf optimiert wechseln. Unsere Maschinen brauchen keine sehr kurze Zykluszeit.
Da wir ja eine Vorlage für unsere Maschinen mit S7-1500 erstellen muss ich auch in die Zukunft denken. Was ist wenn Siemens den nicht optimierten Zugriff in den nächsten Jahren einstellt?
Wie stehst du dazu? Mal was diesbezüglich von Siemens gehört?
Zu mir hat ein Support Mitarbeiter mal gesagt er kann es sich nicht vorstellen das dies nicht mehr unterstützt wird.
Lg
 
Zurück
Oben