TIA Verschieben von Struck mit SCL

BlueDogi

Level-1
Beiträge
48
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Ich hab grade das Problem das ich gerne Daten von einen Struct in einen Anderen schreiben mächte. Zum Auf des Struckts er wird in einem DB gespeichert und sieht wie folgt aus:
DB1
Struct1
Struct2
Struct2.1
Bit1
Bit2
Bit3
Bit4
Struct2.2
Struct2.3
Struct2.4


Ich hoffe mal das man das erkennt. Struct 2.1 bia Struct 2.4 sind gleich aufgebaut. Ich will jetzt mit möglichst wenig Aufwand die Daten im Struct 2 Verschieben. Idee wäre wie bei einem Move einfach Struct 2.1 in Struct 2.2 Schieben wie kann ich das mit SCL machen?

Ich habe es schon mit einer Zuweisung versucht:

DB1.Struct2.Struct2.1 := DB1.Struct2.Struct2.2;

Aber ohne erfolg...
 
Die Namen in der Deklaration können nicht ein punkt einhalten. Ich glaube nicht das dein STRUCT "Struct2.1" heissen kann.
Das Punkt ist ein Trenner zwischen STRUCTs.

Hier ein Bespiel das definitiv geht:

"MyDB".Produkt_1.Rezept_1 := "MyDB".Produkt_1.Rezept_2 ;

Wobei Rezept_1 und Rezept_2 sind STRUCTs mit den gleichen Aufbau.

Wenn man mit STRUCTs Daten hin und her schaufelt, dann lohnt es sich die STRUCT mittels UDTs zu definieren. Das erleichtert das Arbeit und meidet Fehler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit der Zuweisung Funkt jetzt bei mir... Die Struct namen die ich oben Benutzt habe waren nur Bspiele. Richtig sieht es z.B. so aus:

"DATA".Lager_1.Pos_1

Ich hab gedacht mit Zuweisungen geht das nicht weil der bei mir eben immer einen Fehler angezeigt hat "Ungültige Zuweisung". Aber Jetzt gehts auch... :ROFLMAO:

Danke für die Hilfe.
 
Die Namen in der Deklaration können nicht ein punkt einhalten. Ich glaube nicht das dein STRUCT "Struct2.1" heissen kann.
Das Punkt ist ein Trenner zwischen STRUCTs.

Hier ein Bespiel das definitiv geht:

"MyDB".Produkt_1.Rezept_1 := "MyDB".Produkt_1.Rezept_2 ;

Wobei Rezept_1 und Rezept_2 sind STRUCTs mit den gleichen Aufbau.

Wenn man mit STRUCTs Daten hin und her schaufelt, dann lohnt es sich die STRUCT mittels UDTs zu definieren. Das erleichtert das Arbeit und meidet Fehler.

Hi,

doch, leider doch. Die Namen dürfen Punkte enthalten. Wenn eine Name ein Rechen oder Satzzeichen enthält, dann muss dieser Name in doppelten Anführungszeichen eingeschlossen werden.

DB1.Struct2."Struct2.1" := DB1.Struct2."Struct2.2";

siehe auch http://www.sps-forum.de/simatic/70325-adressierung-symbolisch-oder-absolut-oder-wie.html#post487864


'n schön' Tach auch
HB
 
Tatsächlich? Wie kann man in dem TIA eine DB-Variable anlegen, welche einen Punkt im Name enthält? In Step7 Classic geht sowas nicht.

Harald
 
Zurück
Oben