Hi,
[...]Kann jmd. aus den paar Auszügen vllt. sagen wieso die bestimmten Befehle davor stehn könnten und halt nicht die anderen .. danke !!
Also im Grunde genommen sind das keine
Befehle, sondern nähere Angabe um welche
Art von Datenobjekt es sich dabei handelt. Zusammen mit dem Kontext, in dem diese Daten deklariert sind (also z.B. ob in Modul oder Unterprogramm/Funktion), geben diese Angaben an wie lange die Daten gültig sind, ob sie beschreibbar sind, ob sie global oder lokal bekannt sind (=von Code aus anderen Modulen/Routinen verwendet werden können) usw.
Steht alles im Handbuch beschrieben und das alles hier zu erklären würde bedeuten das Handbuch abzuschreiben....
Also, auch auf die Gefahr hin, dass es unhöflich klingt: Doku besorgen -> lesen -> verstehen
Wenn du dann was nicht verstehst, hier nochmal gezielt im Forum fragen.
Wieso die Daten so deklariert sind wie im Beispiel angegeben, läßt sich pauschal nicht sagen, da müsstest du eigentlich den Programmierer fragen der das verzapft hat. Normalerweise hat ein Programmierer seine Gründe dafür warum er was, wie deklariert, weil er feste Vorstellungen davon hat wie die Daten zu verwenden sind.
Aber prinzipiell hat das Robcheck01 alles schon erklärt.

Ich kann das nochmal versuchen mit anderen Worten zu sagen:
CONST (=konstant) die Daten können nicht geändert werden (d.h. nicht durch das Programm selbst, sondern höchstens durch Änderung des Programm-Codes/Quelltextes) und bleiben zur Laufzeit des Programms gleich!
VAR (=variabel) der Inhalt des Datenobjektes kann durch das Programm geändert werden (schreiben/lesen). Wird zum allgemeinen Berechnen von irgendwas benutzt, zum Speichern von Zwischenergebnissen u.dgl.
Wenn die Steuerung heruntergefahren wird, oder der Kontext verlassen wird in dem die Daten deklariert sind (= Rücksprung aus Unterprogramm), dann sind die Daten verloren.
PERS (=persistent=speichernd) können wie Variablen gelesen/geschrieben werden haben aber dabei den wichtigen Vorteil, dass der Dateninhalt beim Beenden des Programms/Herunterfahren der Steuerung NICHT verloren geht.
Wenn man dieses Wissen jetzt auf die genannten Datenobjekte anwendet, wird einem meisten ziemlich schnell klar
warum das so deklariert ist.
Ein Beispiel:
PERS num Nachtschicht:=423;Ich vermute mal messerscharf, dass es sich dabei um einen Zähler handelt, der die bearbeiteten Teile/Objekte der Nachtschicht zählt (muß nicht so sein, ist aber sehr wahrscheinlich).
Wenn du das als Konstante deklarierst
CONST num Nachtschicht:=423;ist der Wert nicht änderbar und somit als Zähler nicht wirklich geeignet

Die Steuerung würde dir das Programm direkt mit mindestens einer Fehlermeldung um die Ohren hauen, weil irgendwo schreibend auf das Objekt
Nachtschicht zugegriffen wird (=hochgezählt), was bei einer Konstanten aber nicht geht.
Bei dieser Deklaration
VAR num Nachtschicht:=423;würde das Programm als Solches (wahrscheinlich) funktionieren, hätte aber den Nachteil, dass beim Runter- und anschließenden Hochfahren der Steuerung der Zähler wieder bei 423 beginnt auch wenn er beim Runterfahren auf 499 stand...
Bei einer PERS wird der Zählerstand beim Runterfahren gespeichert(!) und nach dem Hochfahren wieder bei 499 fortgesetzt.
Der Zähler bleibt also so lange erhalten bis er durch das Programm (oder manuell per TeachPanel) zurückgesetzt wird.
Hoffe das reicht erstmal als Erklärung....
Gruß
rmac