Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Buchstaben als Variable deklarieren, Welchen Ty braucht man

Beitrag 26.02.2008, 23:15 Uhr
craschmaster
craschmaster
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 16.01.2005
Beiträge: 71
Hallo an alle,
Würde gerne mal wissen welchen Variablentyp man definieren muss, damit man Buchstaben als Variableninhalt schreiben kann.

DEF REAL FORM=A

geht nicht.
Welchen Typ müsste man nehmen, damit meine Variable "Form" auch den Buchstaben "A" als Inhalt haben kann.

Danke im Vorraus.
   
Beitrag 26.02.2008, 23:21 Uhr
geni
geni
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 16.03.2005
Beiträge: 509
hi

hm REAL ist in Programmiersprachen ne Fliesskommazahl, die kann keine Buchstaben beinhalten. Versuch es mit CHAR für einzelne Buchstaben oder STRING für Zeichenketten. Ob das in einer CNC Steuerung geht weiss ich nicht aber gut möglich smile.gif

gruss marques


--------------------
Meine Beiträge enthalten nur rudimentäre Hilfe, eine detallierte Hilfe bezüglich meiner Beiträge kann man im CNC Arena Chat ersuchen. Detaillierte Hilfe bezüglich CAD, FEA, CFD und derivate wie Bewegungssimulationen auf die von mir unterstützten Systeme können allenfalls gegen ein geringer Obulus ersucht werden.
   
Beitrag 26.02.2008, 23:48 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Doch Siemens kann das. Steht alles in der Anleitung Arbeitsvorbereitung drin. Die gibts bei DoconWeb

Oder in der allgemeinen Programmieranleitung im Anhang. Aber halt nur ultrakurz
   
Beitrag 27.02.2008, 00:32 Uhr
craschmaster
craschmaster
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 16.01.2005
Beiträge: 71
HM?
Char? na mal probieren.
Hatte schon mal "DEF STRING[6] FORM" versucht. Ging leider auch nicht.
Und die Siemens-Anleitung? HM naja. Ingenieure, die versuchen einem Laien wie mir, die Steuerung zu Erklären und sich dabei oft in Widersprüche verzwicken?
Mal salopp gesagt.
Danke jedoch erst mal. Muss mal schauen ob das geht.
   
Beitrag 27.02.2008, 07:45 Uhr
2beeze2
2beeze2
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 24.10.2006
Beiträge: 29
ein Beispiel für die Syntax
Quelle: DOCONCD 11/2006

DEF STRING[20] ZIEL
ZIEL = "Marke2" ;Sprung mit variablem Sprungziel
GOTOF ZIEL

Wichtig dabei: die DEF-Zeile muß am Anfang des Programms stehen


Gruß
2beeze2


--------------------
-This is the End-
   
Beitrag 27.02.2008, 11:15 Uhr
craschmaster
craschmaster
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 16.01.2005
Beiträge: 71
HM.
Und wie verhält es bei mehreren Kanälen?
Ist diese Variable dann nur in einem Kanal wirksam, oder wirkt diese Kanalübergreifend wie die globalen Anwenderdaten??
   
Beitrag 27.02.2008, 22:04 Uhr
Traori
Traori
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 18.10.2004
Beiträge: 249
So so, nun das kann ich so nicht stehen lassen.

1. In der Programmieranleitung PG, sowie in der Programmieranleitung Arbeitsvorbereitung PGA ist das Arbeiten mit Variablen umfassend beschrieben. (Definitionen, Typen, Verhalten etc.)

2.
QUOTE
DEF STRING[20] ZIEL
ZIEL = "Marke2" ;Sprung mit variablem Sprungziel
GOTOF ZIEL

Das ist grundsätzlich die richtige Lösung, wobei es bei Sprüngen glaube ich nur mit der Stringverkettung funktioniert:
GOTOF <<ZIEL
Bin mir aber nicht hundertprozentig sicher.

3. Eine lokale Variable ist, wie es der Name schon sagt, nur lokal gültig und nicht mit globalen Anwenderdaten gleichzusetzen. Wobei letztere entsprechend der Definition kanalspezifisch oder -übergreifend gültig sein können.

4. @ crashmaster
CNC-Steuerungen sind nie was für Laien. (Wie vieles auf der Welt)

5. Über Anleitungen kann man sich in der Regel streiten. Aber über Siemens-Anleitungen wohl kaum. Es gibt praktisch nichts, was sich nicht in irgend einer Anleitung nicht finden liesse. Die Beschreibungen sind sicher nicht für den Laien gedacht (wie auch nicht jene Handbücher von Astronauten...), dennoch zähle ich Sie von der inhaltlichen Qualität zu den besten überhaupt. Wer es nicht glaubt soll sich mal mit Okuma, Fanuc und dergleichen herumschlagen...

Sorry, aber das musste ich jetzt mal loswerden. Aber nicht persönlich nehmen!

Gruss


PS: Falls ich Mist geschrieben habe, lasse ich mich gern belehren.


--------------------
"Wenn die Torte spricht, hat der Krümel zu schweigen!"
   
Beitrag 28.02.2008, 00:02 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
QUOTE
dennoch zähle ich Sie von der inhaltlichen Qualität zu den besten überhaupt.

Damit hast du zweifellos recht, wenns nur nicht so viele wären.
Wenn man sich alle die Handbücher, die man gelegentlich mal brauchen könnte ins Reagl stellt hat man ungefähr nen Meter Regal belegt.
Wenn man alle dies gibt nimmt kommt man wohl schon auf gute 2m.

Aber im Gegensatz zu allen anderen Herstellern gibts das alles kostenlos im Netz. Von den anderen Firmen kriegt man entweder gar nix oder nur zu Preisen gegenüber denen die Apotheke billig ist.
   
Beitrag 28.02.2008, 10:18 Uhr
craschmaster
craschmaster
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 16.01.2005
Beiträge: 71
HM??
Zu den Handbüchern könntet ihr recht haben, kenne leider nur Siemens und Heller.

Zu den Variablendefinitionen:
mit "DEF STRING[20] Form=A" oder mit "DEF CHAR FORM=A" funktioniert es nicht.
Fehler lautet "Objekt mit Datentyp nicht verträglich" und "DIN Adresse A nicht projektiert"

Hintergrund ist der, eir haben Teile laufen, die sich lediglich in dem Winkel einer Bohrung unterscheiden. Mein Gedanke ist nun am PGM-Anfang zu sagen Form=A oder B
und an der entsprechenden Stelle dann
IF Form=A
C=0
ELSEIF Form=B
C=180
ENDIF

Da es sich um einen Doppelspindler handelt, und ich ein Loch, welches auf der Hauptspindel gebohrt wird, auf der Gegenspindel nochmal treffen muß würde mich noch interressieren ob die selbst definierten Variablen global wirken oder nur in einem Kanal.
Auf der Hauptspindel wird also ein Loch im 2. Kanal gebohrt. Mit dem ersten Kanal muß ich dieses Loch nochmal auf der Gegenspindel treffen.
Sollten die selbst definierten Variablen nicht global wirken, so kann ich mir den Inhalt dieser Variable, für jeden Kanal, in ein globales Anwenderdatum schreiben und diese dann vergleichen um einen Crash zu vermeiden.
Hab halt eben nur noch nicht rausbekommen, wie man Buchstaben als Variable definiert.
   
Beitrag 28.02.2008, 10:56 Uhr
Protte
Protte
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 12.04.2003
Beiträge: 284
Hallo,

wenn du es so

"DEF STRING[20] Form=A"

im Programm stehen hast, kanns nicht gehen.

Das A gehört in " " also

DEF STRING[20] Form="A"

das ist wichtig, sonst ist A ja auch wieder eine Variable die allerdings noch nicht definiert wurde.


--------------------
No brain no pain!

www.JackTools.Net
   
Beitrag 28.02.2008, 11:06 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Und logisch, die kannst keine Variablen definieren die schon vom System belegt sind. XYZ,IJK,ABC,FST,UVW und noch einige mehr sind vordefiniert.
wenn du nen Unterstrich davorsetzt, dann gehts aber.
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: