SCL ARRAY Konstante

wwwandy

Level-1
Beiträge
70
Reaktionspunkte
15
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle,
ist es möglich in SCL eine Array Konstante zu definieren?

ich habe schon z.B. sowas probiert:
Code:
CONST
   list:=ARRAY of REAL [1..3] (1.23, 2.34, 3.45);
END_CONST

Also ich will dann später list[1] als 1.23 ansprechen usw.
Einfach eine Lookup-Table.

Natürlich gibt es auch ein Workaraound:
Code:
VAR
   list:array[1..3] of real:=1.3,4.5,7.8;
END_VAR

Aber das sind ja dann keine Konstanten... Macht der SCL Kompiler dann vernünftigen Code draus?
Obiger Code funktioniert übrigens in VAR, allerdings nicht in VAR_TEMP(initialisierung in diesem Kontext nicht erlaubt), weshalb?
Gruß von Andy
 
Zuletzt bearbeitet:
Die einzigen Konstanten die der Weltmarktführer kennt sind die als solche im Quellcode stehen z.B. 2 oder 'Hello World' oder auch 2.23 und sei froh das es es die bei SCL wenigsten TRUE und FALSE verstehen.
Konstanten und Enumerationen wie man sie aus den Hochsprachen oder von anderen SPS Herstellern kennt sind denen beim großen S, leider noch fremd.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Natürlich gibt es auch ein Workaraound:
Code:
VAR
   list:array[1..3] of real:=1.3,4.5,7.8;
END_VAR

Aber das sind ja dann keine Konstanten... Macht der SCL Kompiler dann vernünftigen Code draus?
Obiger Code funktioniert übrigens in VAR, allerdings nicht in VAR_TEMP(initialisierung in diesem Kontext nicht erlaubt), weshalb ?

Der obige Code stellt im Grunde das Zuweisen der Initialwerte von DB-Variablen dar. So ist das auch zu betrachten. Das wird auch nicht mit-compiliert, sondern dem I-DB zugewiesen.

Bei den Konstanten gibt es keine ARRAY-Deklarationen. Du kannst dort nur Einzel-Variablen (aber unterschiedlichen Typs) zuweisen bzw. deklarieren.

Gruß
LL

Nachsatz:
Im Temp-Bereich funktioniert das nicht, weil es dort für die Variablen keine Initialiwerte gibt, die einmal voreingestellt werden können. - Halt TEMP-orär
 
Zurück
Oben