Hello Joan,
the integrated "Function Generator" should do it!
I only have German Docu, sorry!
HTH
Tobi
Hello Joan,
the integrated "Function Generator" should do it!
I only have German Docu, sorry!
HTH
Tobi
Hello Joan,
decl fold d_PosS1[9]
d_PosS1[1]="PosAct.X = %parAktPos.X"
d_PosS1[2]="PosAct.Y = %parAktPos.Y"
d_PosS1[3]="PosAct.Z = %parAktPos.Z"
d_PosS1[4]="PosAct.A = %parAktPos.A"
d_PosS1[5]="PosAct.B = %parAktPos.B"
d_PosS1[6]="PosAct.C = %parAktPos.C"
d_PosS1[7]="PosAct.S = %parAktPos.S"
d_PosS1[8]="PosAct.T = %parAktPos.T"
d_PosS1[9] = "LIN PosAct"
is your Fold really like this? Be aware that you have to have a space after your parameter!
Like this
decl fold d_PosS1[9]
d_PosS1[1]="PosAct.X = %parAktPos.X "
d_PosS1[2]="PosAct.Y = %parAktPos.Y "
d_PosS1[3]="PosAct.Z = %parAktPos.Z "
d_PosS1[4]="PosAct.A = %parAktPos.A "
d_PosS1[5]="PosAct.B = %parAktPos.B "
d_PosS1[6]="PosAct.C = %parAktPos.C "
d_PosS1[7]="PosAct.S = %parAktPos.S "
d_PosS1[8]="PosAct.T = %parAktPos.T "
d_PosS1[9] = "LIN PosAct"
HTH
You're welcome!
Here you go!
DECL PARAM parAktPos = {VALUE {FREE: DEFAULT[] ""}}
DECL PARAM parVar = {SHORTNAME[] "Var:" , SHORTCUT[] "Var" ,VALUE {NAME: DEFAULT[] "POS_Variable" }}
DECL PARAM parIndVar1 = {SHORTNAME[] "Index 1:" , SHORTCUT[] "Ind1" ,VALUE {NAME: DEFAULT[] "INDEX_Variable1" }}
parIndVar1 is for arrays of "POS" only! For example POS posArray[10]
HTH
Hello,
this works fine for my application:
DEFSCRIPT scrTeachenPos_INDEX1
SHOWVAR(FULLPATH[] "$Pos_Act.X", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ].X", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.Y", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .Y", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.Z", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .Z", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.A", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .A", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.B", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .B", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.C", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .C", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.S", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .S", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act.T", PARAM parAktPos)
SETVAR(Fullpath[] " %parVar [%parIndVar1 ] .T", Value[] " %parAktPos ")
SHOWVAR(FULLPATH[] "$Pos_Act", PARAM parAktPos)
MESSAGE "Punkt '%parPosName ' erfolgreich geteacht!"
MESSAGE "Position '%parVar [%parIndVar1 ] ' = %parAktPos "
DO ACCEPTINLINEFORM
ENDSCRIPT
Alles anzeigen
Maybe try "Do AcceptInlineForm"
HTH
Tobi
hmm jetzt steh ich aufm Schlauch...
warum $TOOL=$NULLFRAME und nicht tool_data[1]????
Im Prinzip macht ihr ja nix anderes als die Vektor-Subtraktion (nur nich mit Tool_Data[1])
In TOOL_DATA[fTcpCenter]=INV_POS($POS_ACT) steht dann doch die Differenz, also der Abstand der beiden Vektoren, dies wäre ja dann wieder Tool_Data[2]=Tool_Data[1]:Vektor_Differenz
hab kein Handbuch zur Hand: was macht INV_POS()???
Tobi
Servus,
der Wert von Product_Center bezieht sich ja noch auf Base_data[1].
Du musst noch die beiden Vektoren subtrahieren (Pickup_Position - Product_Center)
Hmm was mir jetz nich klar ist wenn du das Teil gegriffen hast und der Federstössel wieder in seiner Ausgangslage ist dann müsste Tool_Data[2]=Tool_Data[1]:Vektor_Differenz sein
ansonsten Tool_Data[1]=Tool_data[1] - Suchweg_in_Stoßrichtung und dann Tool_Data[2]=Tool_Data[1]:Vektor_Differenz
so oder so ähnlich
HTH
Tobi
Hallo bobbl,
ZitatAm liebsten wäre es mir, wenn das R in der Systemleiste unten schwarz wird.
Also wie ein Programmende.
so könnte das aussehen ohne Interrupts, ohne cwrite und ohne Systemfiles zu ändern , nur ein GOTO :angel:
DEF HAUPT ( )
LOOP
...
IF UNTER ( )
;DoSomeThing
ELSE
GOTO PROGENDE
ENDIF
...
ENDLOOP
PROGENDE :
END
DEFFCT BOOL UNTER ( )
...
; Bei Fehlerfall Abfrage Bediener
IF Abbruch Then
RETURN (FALSE)
ENDIF
...
ENDFCT
Alles anzeigen
HTH
Bewareofthis
Servus,
Einfache Meldungen bzw. Dialoganfragen sind kein Problem schau mal "MSG_DEMO.SRC"
Gruß
Tobi
Zitat
z.B kannst du einfach sagen $base=$tool
somit liegt dein base genau in der Lage wie dein Tool...
... ist aber nicht die aktuelle Position !!!
Servus,
vorausgesetzt dein Tool und Base ist korrekt vermessen, würd ich mal den geometrischen Operator vorschlagen:
$BASE=BASE_DATA[2]:TOOL_POS_BEZOGEN_AUF_BASE2 ;Dein neues Base ist nun die aktuelle POS des TCP und senkrecht dazu
LIN {Z 100}
Das Ganze ist aber mit Vorsicht zu genießen !
HTH
Tobi
Moin,
hmmm mal ne Vermutung (hab kein Robi da zum Testen, da im Urlaub ), durch simple Vektoraddition?
HTH
Bewareofthis
Servus,
weiss jetz nicht ob ich dich richtig verstanden habe aber ich versuchs mal:
INI
PTP HOME
;Base-Initialisierung
BASE[1]={X 0,Y 0,Z 0,A 0,B 0,C 0}
FOR X=1 TO 50
BASE[1].A=BASE[1].A+(X-1)*360/50
$BASE=BASE_DATA[1]:BASE[1]
PTP....
PTP.... -> Abarbeitung Kreisbereich (UP)
PTP....
Endfor
PTP HOME
END
Alles anzeigen
HTH
Bewareofthis
für die Info.
*klugscheissmodusan*
Aber diese Info sollte auch in die Doku (hab hier Prog Experte V5.2) übernommen werden! Da steht
ZitatInsbesondere können auch andere Verbunde und Felder Bestandteil eines Verbundes
sein.
*klugscheissmodusaus*
Mist das hat mir jetzt ein paar Stunden arbeit gekostet . . .
Naja egal trotzdem big thx
Bewareofthis
hmmmmm
keiner ne Idee???
Moin zusammen,
kann man ein Pos-Array in einer Struc deklarieren, also so
Sobald ich irgend ein Array (ausser Char) in der Struc deklariere, kommt die Fehlermeldung 2090 - "Eindimensionales CHAR-Feld erwartet"
Ach ja Version ist 5.2.OL
Thx vorab
Bewareofthis
Uuuupss,
Ringleitung geht ja nur mit LWL usw.
Sorry
Bewareofthis
Servus,
an der Kabellänge sollte es nicht scheitern und die Übertragungsgeschwindigkeit kannste bei 1,5Mbit lassen.
Hatte sowas ähnliches auch mal würde auf Verkabelung tippen, d.h. Stecker nicht richtig montiert, irgendwo Quetschstellen, Abschlußwiderstände auf den Bussteckern falsch geschalten, u.s.w.
Sind die Slaves in Stern angebunden? Vielleicht mal provisorisch ne Ringleitung versuchen . . .
HTH
Bewareofthis