AnthonyLH Posted March 18, 2013 Share Posted March 18, 2013 Rotary... i use it through the "gpascii -i" macro (just for info "gpascii -2 -i" works well with P, Q, structures..) There is 5 differents questions below: 1/ End a rotary inside the program 2/ End a rotary outside the program 3/ Local variables in rotary 4/ Index of structure (ex: "Coord[x].") in rotary 1/ What is the good way to end a rotary INSIDE a rotary program? Currently i use the following sequence: dwell 0 dwell 0 abort 1 begin 1:1 dwell 0 close It ends the rotary correctly but the buffer isn't cleared (this sequence is still inside). 2/ What is the good way to end a rotary OUTSIDE the rotary program? First i use a standard "abord" to stop the move: rotary prog is ended (ProgActive=false…), "gpascii -i" is still running. Then i tried different commands: - « close rotary » : it restarts the move!! (the rotary restarts where it stopped) - « begin 1 :1 » : rejected with error - « delete rotary » : is the only command i found which end the rotary ( "gpascii -i" is ended with error) 3/ Are local variables allowed in rotary? - I did not succeed to declare locals like "local Lvar0, Lvar1, Lvar2, and Lvar3;" - It is possible to use "undeclared" local ("L0", "L10"...) but I got some "rotary prog" crash/stop using them (the rotary prog just stop behing active/executing, no error). I did some checks after reading the thread "http://forums.deltatau.com/showthread.php?tid=789". What i could observe was: a/ locals are shared between "prog", including the rotary (or prog0) b/ it is very dangerous to use "undeclared local" as the kinematics use some local memory (after the "stack offset") for its needs ("Ln for Motor n position") c/ but... the line "b/" doesn't seem to be true in a rotary... the position(Ln) i was able to observe (Coord[x].Ldata[0],10,1) in the test didn't changed. d/ where are stored the local of the .kin ("forward" and "inverse" fonctions) ? 4/ I succeed to index structures ONLY by using local variables: - « Coord[Ldata.coord].DesTimeBase=0; » don't work in a rotary - « Coord[Q_Gr_Rotary_iGr].DesTimeBase=0 ; » don't work in a rotary - « Coord[L10].DesTimeBase=0 ; » is working.. but use undeclared locals.. which crash the rotary (see 3/) Link to comment Share on other sites More sharing options...
Recommended Posts