Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
18. Mai 2012, 13:01:26
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: VAR ; PERS ; CONST :( 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: VAR ; PERS ; CONST :(  (Gelesen 1287 mal)
Sven2009
Neuling
*
Offline Offline

Beiträge: 3


« am: 03. Juni 2008, 20:52:21 »

Hi Leute ,

wäre nett wenn mir jmd . weiterhelfen könnte undzwar verstehe ich nicht ganz die bedeutung von VAR ; PERS und CONST bzw. die Anwendungsmöglichkeiten ..
Wäre echt nett wenn mir dies jmd einigermaßen erklären könnte bzw. ein guter Link könnte auch nicht schaden . Danke im vorraus !!!

Jeder fängt ma klein an Sad
Gespeichert
Robcheck01_MJ
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 269



« Antworten #1 am: 03. Juni 2008, 21:03:38 »

Hallo Sven,

kein Thema. Also ist relativ simple.

VAR - bedeutet das dein angegebener Datentyp Variable ist. Also relativ unsicher, bei Stromausfall, Runterfahren der Steuerung ist die Varaible wieder im Ursprungszustand.Ist aber manchmal ganz gut zu nutzen in kleinen Programmen. (Typ ist beschreibbar).
PERS - ist vom Typ speichernd(auch beschreibbar). Bleibt beim runterfahren bestehen.
CONST - ist vom Typ Konstant(nicht beschrebbar). Bleibt beim runterfahren bestehen. Wird da genutzt wo man nicht mehr dran rumschrauben tut.

Gruss...
Gespeichert

„Herr, lass mich ein guter Mensch sein. Aber bitte nicht sofort.“
Sven2009
Neuling
*
Offline Offline

Beiträge: 3


« Antworten #2 am: 03. Juni 2008, 21:32:44 »

danke Smile das is ja schonma was !!!

also das würde heißen es ist egal welches ich dieser Befehle im Programm verwende es ist nur wichtig im Bezug auf das Speichern beim runterfahren ?!
Also im Prog. wird es z.B. so verwendet wobei ich nicht weiss wieso ..

VAR bool Stoerung:=FALSE;

PERS num n_Greifer:=6;
PERS num nStk:=0;
PERS num nStk2:=15;
PERS num nProdukt:=9;

CONST speeddata V_Ablegen:=[500,500,5000,1000];
CONST speeddata v_langsam:=[1000,500,5000,1000];
CONST speeddata V_Mittel:=[2000,500,5000,1000];

  VAR string date;
  VAR string time;
  VAR num nCur_Hour:=0;
  VAR num nCur_Min:=0;
  VAR num nCur_Sec:=0;
  VAR num HourWandel:=0;
  PERS num FruehPuffer:=300;
  PERS num SpaetPuffer:=117;
  PERS num Nachtpuffer:=423;
  PERS num Fruehschicht:=339;
  PERS num Spaetschicht:=518;
  PERS num Nachtschicht:=423;
  PERS num Stueck:=0;
  PERS num Schicht:=2;

Kann jmd. aus den paar Auszügen vllt. sagen wieso die bestimmten Befehle davor stehn könnten und halt nicht die anderen .. danke !!
Gespeichert
Robcheck01_MJ
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 269



« Antworten #3 am: 03. Juni 2008, 21:41:52 »

Ja es gibt schon noch ein paar Einzelheiten( wie z.B Beschreibbarkeit des Typs), aber im groben ja.

Also das ist ja nur der Deklarationsteil. Hier spielt es keine Rolle in welcher Reihenfolge die Deklarationen kommen, da ja kein Zuweisung oder Code kommt.

Gruß..
Gespeichert

„Herr, lass mich ein guter Mensch sein. Aber bitte nicht sofort.“
rmac
Global Moderator
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 282


« Antworten #4 am: 03. Juni 2008, 23:02:57 »

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.  applaus
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  pfeif
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
Gespeichert
Sven2009
Neuling
*
Offline Offline

Beiträge: 3


« Antworten #5 am: 04. Juni 2008, 18:15:09 »

DANKEEEEEEEEEEEEE !!! SEHR FREUNDLICH VON EUCH DAS HILFT MIR ECHT WEITER !!!!

 grinser043                         good Posting                     danke
Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: VAR ; PERS ; CONST :( « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS