Jump to content
OMRON Forums



Recommended Posts

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


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

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

This topic is now closed to further replies.

  • Create New...