IchBinsNur
Level-1
- Beiträge
- 12
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Leute,
ich möchte die Feldgrenzen eines Array in SCL ermitteln um hier gezielt löschen zu können. Die Übergabeparameter meines FB sind leider fix, sodass ich intern die Struktur erkennen muss.
Beispiel:
Die DB-Nummer, DB-Länge etc. habe ich schon mittels Hilfspointer ermittelt.
siehe hier:
Mit LEN_in_Word kann ich jetzt mühsam berechnen wo das zu bearbeitende Feldelement(das bekomme ich übergeben) liegt. Geht zwar auch, aber ist doch nicht elegant, oder??
Ausserdem könnte ich schon vorher auf Gültigkeit des übergebenen Feldelementes checken!
Ich hoffe auf die Experten hier im Forum Danke schonmal...
ich möchte die Feldgrenzen eines Array in SCL ermitteln um hier gezielt löschen zu können. Die Übergabeparameter meines FB sind leider fix, sodass ich intern die Struktur erkennen muss.
Beispiel:
Code:
TYPE
XYXY : STRUCT
XXXX : DatX;
[B] YYYY : ARRAY [2000..2100] OF DatX; (*Dies ist Variabel !!!*) [/B]
END_STRUCT
END_TYPE
DATA_BLOCK TESTDB
STRUCT
DATA : XYXY;
END_STRUCT
BEGIN
END_DATA_BLOCK
siehe hier:
Code:
TempPtr := TESTDB.YYYY; (* Hilfsvariable auf Hilfs-Any-Pointer kopieren um so den aktuellen DB herauszubekommen *)
(* Info zum Any-Ptr *)
DUMMY_IDCode_DataTyp := InternAny1.IDCode_DataTyp;
DUMMY_Anzahl := InternAny1.Anzahl;
DUMMY_DB_Nr := InternAny1.DB_Nr;
DUMMY_Speicherbereich := InternAny1.Speicherbereich;
DUMMY_Start_DW := InternAny1.Start_DW;
DUMMY := TEST_DB(DB_NUMBER := InternAny1.DB_Nr, DB_LENGTH := LEN_in_Word, WRITE_PROT := Done); (* Länge des DB ermitteln *)
Ausserdem könnte ich schon vorher auf Gültigkeit des übergebenen Feldelementes checken!
Ich hoffe auf die Experten hier im Forum Danke schonmal...