TIA V13: SCL: Sinnvolle CASE-Anweisung? (Statemachine)

Automatinator

Level-1
Beiträge
115
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Gibt es eine sinnvolle Art im SCL V13 die CASE-Konstanten anzulegen?

Als Beispiel: Im B&R Automation Studio (Auto Basic) kann ich globale Enumeratoren als CASE-Konstanten verwerden.

Meine Frage nun kann ich im SCL auch Strukturen oder Enums verwenden dafür verwenden? Oder muss ich dafür unschönerweise lokale Konstanten verwenden? (globale Konstanten wären zuviel, zu unübersichtlich)


Danke im Vorraus
 
Tja, leider bietet das TIA (zumindest bis V12, ich geh' aber davon aus, dass das auch auf V13 zutrifft) keine lokalen Konstanten.

Und CASE selbst verarbeitet nur INT-Werte. Ich seh da jetzt nicht, welche Strukturen Du da gedenkst, einzusetzen.
Außer einem INT-Array, dass Du natürlich verwenden kannst.


Könntest Du mal ein konkretes Beispiel von B&R zeigen? Bin schon neugierig, wie man sich in anderen Welten das Leben vereinfachen kann.
 
Also Schrittnummern mit Konstanten festzulegen stelle ich mir sehr umständlich vor. Du brauchst ja dann pro Schritt eine Konstante der du auch noch händisch in der Deklaration einen Wert zuweisen musst. Da läufst du dann noch Gefahr durch Copy-Pasta Nummern doppelt zu vergeben.
Wenn TIA Enumeratoren beherrscht, dann würde ich so eine Lösung auf jeden Fall vorziehen. Bei einem Enum kann man sicher sein, das die Schrittnummer nur einmal exisitiert. Man kann einfach neue Werte einfügen ohne sich um den Rest einen Kopf machen zu müssen (solange man nicht mit dem Enum rechnet).
 
Also Schrittnummern mit Konstanten festzulegen stelle ich mir sehr umständlich vor. Du brauchst ja dann pro Schritt eine Konstante der du auch noch händisch in der Deklaration einen Wert zuweisen musst. Da läufst du dann noch Gefahr durch Copy-Pasta Nummern doppelt zu vergeben.
Wenn TIA Enumeratoren beherrscht, dann würde ich so eine Lösung auf jeden Fall vorziehen. Bei einem Enum kann man sicher sein, das die Schrittnummer nur einmal exisitiert. Man kann einfach neue Werte einfügen ohne sich um den Rest einen Kopf machen zu müssen (solange man nicht mit dem Enum rechnet).

Ich würde ja auch gerne eine Aufzählung verwenden, aber TIA beherrscht immer noch keine Enums :sm23: soweit ich weiss... (obwohl das klassische SIMOTION dies kennt...)
 
Zurück
Oben