Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Variablen Definition, Gültigkeit einer variable

Beitrag 12.11.2004, 08:14 Uhr
Osca
Osca
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.11.2004
Beiträge: 5
Ist eine Variable die man im Unterprogramm oder Zyklus Definiert hat
auch im Hauptprogramm gültig ?


mfg Osca
   
Beitrag 12.11.2004, 08:23 Uhr
Dirk B
Dirk B
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 10.11.2004
Beiträge: 4
Hallo Osca,

eine Variable ( R ) ist solange gültig, bis sie neu gesetzt ( überschrieben ) wird. Die Variablen können auch in verschiedenen Haupt- und Unterprogrammen verwendet werden und bleiben selbst nach ausschalten der Steuerung gültig.
Du kannst auch im Unterprogramm mit der Variablen rechnen ( R1=R1+5 )
und im Hauptprogramm mit der Variablen arbeiten ( G81 R3=R1 ) oder umgekehrt.

Gruß von
Dirk
   
Beitrag 12.11.2004, 08:54 Uhr
Osca
Osca
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.11.2004
Beiträge: 5
Hallo Dirk

Ich weis nicht ob es ein unterschied ist aber ich meinte Variable die man mit DEF definiert hat

z.b. DEF INT OS_WERT


mfg Osca
   
Beitrag 12.11.2004, 12:25 Uhr
CNCAlex
CNCAlex
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 20.10.2004
Beiträge: 11
Hallo Osca,

Meines Wissens nach "Nein".

Aber, wenn Du die Variable vorher als GUD (Ordner Datenhaltung \Definitionen) anlegst, dann ist diese überall bekannt (falls nicht eine gleichnamige lokale Variable existiert).
GUD = Global User Data.
Für den Anwender stehen im Normalfall die UGUD-Variablen zur Verfügung.
Wie diese definiert werden siehe in DocOnWeb:
http://www3.ad.siemens.de/doconweb

Gruß
Alex
   
Beitrag 12.11.2004, 12:54 Uhr
Der Meister
Der Meister
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 22.09.2003
Beiträge: 114
Hallo Osca,
mit der Def-Anweisung legst Du eine lokale Variable an die nur lokal gültig ist !

Das heißt: (Beispiel)
1)Du legt die Variable (Def) im Unterprogramm an. Dann ist sie auch nur im Unterprogramm gültig.
2)Du legt die Variable im Hauptprogramm an. Dann ist sie im Hauptprogramm und im Unterprogramm gültig.
3)Legst Du eine globale Variable an (UGUD)(oder einfach einen R-Parameter) dann ist sie immer und in allen Programmen gültig.



Gruß
Der Meister


--------------------
Debugging? Klingonen debuggen nicht.
Unsere Software ist nicht dazu gedacht,
die Schwachen zu verhätscheln.
   
Beitrag 15.11.2004, 23:02 Uhr
Osca
Osca
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.11.2004
Beiträge: 5
Danke an alle

Ich muss zugeben das ich nicht gedacht hätte das die R-variabeln auch nach einen Neustart
Im Speicher erhalten bleiben

Für meine Zwecke ist das eine gute Lösung biggrin.gif
   
Beitrag 24.01.2005, 08:41 Uhr
Incubus
Incubus
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2005
Beiträge: 83
coangry.gif Wie lege ich eine GUD Variable an ? kann diesbezüglich nix finden confused.gif

Danke!

Gerwin
   
Beitrag 24.01.2005, 22:39 Uhr
sinus
sinus
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.01.2005
Beiträge: 5
Die GUD's legt man im Verzeichnis "Definitionen" im Bereich Dienste an.
Die GUD's sind schon sinnigerweise eingeteilt in "Nutzerbereiche"
So sollte der Hersteller der Maschine den Bereich MGUD nutzen und der User den Bereich UGUD, SGUD Siemens System usw...
Beim Anlegen einer neuen Definitionsdatei läßt die Steuerung nur diese Dateitypen zu und noch GUD1 bis GUD7. Die Definition der Variablen ist der Definition über das Teileprogramm sehr ähnlich.

z.B.:

DEF NCK REAL WERT1 ;variable in allen kanälen bekannt, typ real
DEF CHAN INT WERT2 ; variable nur im 1. Kanal bekannt; typ integer
...
M17

Wenn die Tabelle angelegt wurde , muss sie noch aktiviert werden. Dafür gibt es dann einen separaten Softkey.
Man kann die Variablen natürlich auch gleich mit einem Wert initialisieren.
Den Inhalt der Variablen kann man sich ähnlich den R-Parametern im Bereich "Parameter" -> "Anwendervariablen" ansehen. Leider muss man sich dann durch die Verschieden GUD-Tabellen wühlen. Man kann seine eigenen GUD aber auch in eigen Variablenansicht zusammenfassen.
Die Anzahl der maximal zur Verfügung stehenden GUD-Variablen ist durch Maschinendaten begrenzt. Genügend freien Speicher vorrausgesetzt, läßt sich die Anzahl der GUD's aber ordentlich aufbohren.

Gruß
sinus
   
Beitrag 25.01.2005, 08:25 Uhr
Incubus
Incubus
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2005
Beiträge: 83
"Alles klar" das werd ich mir gleich mal ansehen, Danke thumbs-up.gif
   
Beitrag 28.01.2005, 23:32 Uhr
danomas
danomas
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2005
Beiträge: 3
Hallo Incubus,

suche in den Maschinendaten nach extendet_scope wenn dieses Datum eine 0 ist dann ist die im Programm definierte Variable local gültig, wenn es eine 1 ist ist die Variable global ab der definition im Progamm gültig.

Gruß TP
   
Beitrag 30.01.2005, 16:39 Uhr
Traori
Traori
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 18.10.2004
Beiträge: 249
Hallo danomas

Wie wird diese Variable denn genau behandelt, oder welche Eigenschaften hat sie in dem Fall, wie Du beschrieben hast? (Ebenenübergreifende lokale Variable (Common variable)?, Call-by-reference? Call-by-value?)

Gruss
Traori


--------------------
"Wenn die Torte spricht, hat der Krümel zu schweigen!"
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: