TIA SCL, Was passiert bei [+ #I]

GrauesHaar

Level-2
Beiträge
117
Reaktionspunkte
70
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
habe eine Frage zu SCL.

In einem Programm sehe ich Befehle wie in der folgenden Zeile:

Variable[+#I]."Name" := 1.0;

#I ist eine temporäre Schleifenvariable

Meine Frage:
Was bewirkt das "+" vor dem "#I"?
Ja, ich könnte es ausprobieren. Aber ggf. gibt es ja jemanden, der es weiss.

Vielen Dank für die Unterstützung.
Lieben Gruss
Graues Haar
SCL.JPG
 
Also CD_Str muss ein Array sein, dann kann man folgendes ohne Fehlermeldung schreiben

1706178307994.png
Ich habe es nicht getestet aber da es sich über setzen lässt, hat das + anscheinend keine Funktion, außer das es alles komplizierter macht.
 
Welchen Datentypen hat #CD_Str ?
Und kannst du mal die gesamte Schleife zeigen?
#CD_Str ist vom Datentyp Array [1..6] of "PLC-Datentyp".
Die gesamte Schleife ist extrem länglich und ich kann sie daher nicht zeigen.

TIA denkt NICHT!!!
Das ist vermutlich die Lösung!

Also CD_Str muss ein Array sein, dann kann man folgendes ohne Fehlermeldung schreiben

Anhang anzeigen 74693
Ich habe es nicht getestet aber da es sich über setzen lässt, hat das + anscheinend keine Funktion, außer das es alles komplizierter macht.
Super! Vielen Dank!
 
Ein "-" negiert den folgenden Wert, ein "+" bewirkt als "Vorzeichen" garnichts
Wäre jetzt mal interessant, ob ein negativer Wert in der Indexvariable bei dem Minuszeichen invertiert wird.

Also welcher Index wird nun genommen
Code:
i := -1;
MeineVariable[-i];
-1 oder +1

Der Logik nach -1 aber wer weiß es bei TIA schon.

EDIT:
Laut NBerger wird bei -1 negiert
Ein "-" negiert den folgenden Wert, ein "+" bewirkt als "Vorzeichen" gar nichts
Dann frage ich mich aber, wenn i einen negativen Wert hat, warum dann ein + nichts bewirken soll.
 
Zuletzt bearbeitet:
Allerdings verwirrt mich das ganze schon, ob die roten markierten nun der reale Werte sind oder ein Anzeigefehler ist müsste man probieren

1706180455356.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist wie in der Mathematik. Bei einer Positiven Zahl kann man das Vorzeichen weglassen, aber es ist auch Erlaubt.
Bei C/C++/C# ist das auch so, ein Unäres + (Also ein + vor einer Zahl oder Variable) hat keine Auswirkung.
Wenn die Variable Positiv ist bleibt sie Positiv und wenn sie Negativ ist, bleibt sie Negativ.
 
Da steht ja auch ein Minus vor dem Array-Zugriff. Ein einzelnes Minus ist der Negations-Operator...

Das ist das gleiche wie hier:
Code:
j := 123;
i := -j; // i ist jetzt -123
 
-#variable ist ein Ausdruck, der den Wert der Variable negiert. +#variable ist ein ebenso zulässiger, aber unnötig kompliziert formulierter Ausdruck - das + bewirkt da nichts - deswegen schreibt fast niemand sowas.
 
Zurück
Oben