Datenbausteinwörter automatisch generieren

Michel007

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

Ich möchte mit einer S7-300er in Abhängigkeit von E2.0 einen Analogwert (PEW 464) einlesen und fortlaufend in einen Datenbaustein (DB 15) schreiben.(Erster Wert in DB15.DBW0, zweiter Wert in DB15.DBW2, dritter Wert in DB15.DBW4, usw.).
Dieses habe ich mit der indirekten Adressierung hin bekommen.
Jetzt habe ich das Problem, wenn ich z.B. 4000 Datenwörter im DB15 ablegen möchte, diese nicht vorher im Datenbaustein von Hand erstellen möchte.

Gibt es hierfür einen Befehl oder einen anderen Trick ?



Danke Michel
 
Kannst ja ein array anlegen array[1..4000] of word oder int ... ist eigtl keine lange sache...

Man kann auch DBs zur Laufzeit erzeugen und beschreiben zb. zum sichern von daten auf die mmc karte oder zum widerherstellen .... aber da kenne ich mich so aus. Kuck mal SFC82 ff.


GRuß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst im DB ein ARRAY [1..4000] OF WORD (oder INT) anlegen.

Gruß Kai
 

Anhänge

  • DB_Deklarationssicht.jpg
    DB_Deklarationssicht.jpg
    222 KB · Aufrufe: 32
  • DB_Datensicht.jpg
    DB_Datensicht.jpg
    387,2 KB · Aufrufe: 34
in dem Sinne frage ich hier auchmal nach.
Gibt es denn eine Übersicht über befehle die man in solche DB´s, oder auch in UDT´s schreiben kann. Wie z.B. dieses Array oder das erstellen von einzelnen abschnitten mit diesem "End_structure" oder wie man es nennt :)


Gruß
 
Na das sind ja keine befehle... das dient ja alles nur dazu dir das programmieren zu erleichtern in dem du eine Logische strukturierte Symbolik hinbekommst. Arrays sind ja perfekt für alle arten von magazinen puffern, stationen, rundtische, paletten... und auch sonst zum abkürzen.
struct ist leidglich zur ansicht, bzw. verschachtelung, um alles etwas lesbarer zu machen, in der symbolik wird immer ein "." draus ... Auch die übergabe von Any-Zeigern wird lesbarer wenn man ein ganzes struct übergibt wird wieder eine symbolik draus. :)
DB Palette.Palette[1].Reihe[2].Spalte[33].Lage[4] oder auch mehrfach arrays (2oder mehrdimensional) Palette[1,2,33,4].
Programmtechnisch hat das eigtl keinen hintergrund. der sps ist das wurst, da kannst du sogar über variablen quer drüber lesen und schreiben ....

Gruß Philip
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nunja... da habe ich mich wohl etwas falsch Ausgedrückt :)
Hatte an diese Sachen wie :

Messwerte: STRUCT Temperatur: INT; Druck: REAL; END_STRUCT;

gedacht, als ich das geschrieben hab.
So eine Art erleichterung für das Programmieren und der Übersicht.
Hab jedoch nun bei Google etwas dazu gefunden, was mir da weiter geholfen hat :)

Gruß
 
Gut :) ja das meinte ich ja:

"DB Teilestatus"

Messwerte struct
Zyklus array[1..100]
struct
Temperatur INT
Druck REAL
end_struct
end_struct


oder so ähnlich ...
 
Viele Dank

Vielen Dank für die interessanten Antworten. Will ich Montag umbedingt sofort einspielen.
Ich wünsche allen ein schönes Restwochende und keinen allzudicken Kopf.

Chio Michel :grin:
 
Zurück
Oben