S7 300 globale Datenbausteine kopieren

D0m1n1k

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

ich möchte eine Ampelsteuerung mit globale DB-Bausteinen aufbauen. Dazu habe ich einen DB1 erstellt und darin entsprechende Struktur angelegt (jedes Lichtzeichen ein Bit). Diesen DB1 habe ich nun etliche male kopiert und in DB2, DB3, .. umbenannt. Wenn ich nun mit einen MOVE-Baustein ein Byte aus DB1 nach AB0 schiebe, so funktioniert das. Schiebe ich aber ein Byte aus den übrigen Bausteinen nach AB0, so hat AB0 stets den Wert 0.
Wenn ich jedoch ein DB-Baustein komplett neu erstelle statt kopiere, dann funktioniert dieser wieder:

Frage: Wieso lassen sich DB-Bausteine nicht kopieren, bzw. funktionieren nach dem kopieren offenbar nicht mehr?


Danke im voraus,
Dominik
 
Hi,

vielleicht weil alle Bits in den anderen DBs einfach nur FALSE sind.
Zeig doch mal Deinen Code.

Gruss Daniel
 
Nein, die Bits wurden defintiv in den DBs alle entsprechend der Ampelphasen gesetzt! Das war ja gerade der Sinn!

Code liegt jetzt leider in der Lehrwerkstatt.
 
Was sind denn die Aktualwerte in den DBs? Stehen dort wirklich die vermuteten Werte?

Ja! Wir haben uns die DBs sogar direkt in der CPU angeschaut! Die Bits waren noch gesetzt! In der Variabelansicht lieferte DB2.DBB0 auch 0 zurück. Aber wenn man den DB2 Baustein aus der CPU öffnet, sind die Bits gesetzt.

Zum Nachstellen des Problemes, haben wird DB2 in DB20 umbenannt und DB2 neu erstellt. Dann funktionierte DB2! Dann haben wir DB3 in DB30 umbenannt und den DB2-Baustein noch mal kopiert (Ctrl-C) und beim Einfügen (Ctrl-V) auf Nachfrage in DB3 umbenannt. DB3 lief so wieder nicht, sprich DB3.DBB0 immer nur Null.
 
Zuletzt bearbeitet:
Das kann nicht sein! Denn am Programm (OB1) haben wir absolut nichts geändert. Wir haben nur den jeweiligen Datenbaustein neu erstellt und geladen! Und dann funktioniert es ja. Montag kann ich das Archiv eventuell mal hochladen!
 
Was sagt der Bausteinstatus bei der Zuweisung an das AB? Was wird aus dem DB geladen und in das AB geschrieben?
Wenn hier alles passt, dann die Verwendungsstelle mal bemühen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, hier mal das Archiv: DB2 wurde von Hand neu erstellt und funktioniert. DB3, DB4, ... sind noch die Kopien, welche NICHT funktionieren.
Uns ist aufgefallen, dass Änderungen im funktionierenden Datenbaustein nach Reinladen in die SPS auch nicht übernommen werden!

Woran liegt das?

Danke im voraus,
Dominik
 

Anhänge

  • Ampel.zip
    347,1 KB · Aufrufe: 12
Ampel

Hallo zusammen,


da AB 0 wohl die Ausgabe ist, würde ich online schauen, welches Netzwerk aktuell als letztes auf das AB schreibt!

Und gib den Merkern doch bitte Namen.

Merker markieren, rechts Klick, Symbol bearbeiten, ...

Viel Erfolg


Gruß Dominik
 
Wenn ich das richtig nachvollziehe, kopiert ihr einen Datenbaustein, der bereits einmal auf die CPU geschrieben wurde und damit im Step7-Manager als initialisiert gilt.

Beim Kopieren wird dieser Status mitkopiert und eine Änderung der Anfangswerte wird nicht in die Aktualwerte übernommen. Wenn Du die DBs öffnest und auf Datenansicht umschaltest, kannst Du sehen, das alle Bits immer noch den ursprünglichen Zustand von DB1 haben.

Wenn ihr also die Startwerte ändert, müßt ihr über Bearbeiten den Baustein neu initialisieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Besten Dank! So hat es geklappt! Mir war nicht bewußt, dass man die Datenbausteine noch mal initialisieren muss. Und dass das nur geht, wenn man die Ansicht umstellt, hätte ich ohne Deine Hilfe wohl auch kaum herausgefunden!
Werder die beiden Simatic-Bücher, noch die Hilfe gaben das her!

Vielen Dank noch mal,
Dominik
 
Zurück
Oben