Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Position Compare initializing

we have started to use the new Omron CK3M controller with Power PMAC IDE 4.
There are 8 motors connected to the controller, but only first output (Gate3[0].Chan[0] and Gate3[1].Chan[0]) is wired for hardware output pulse.
So, for what I want to ask we have the following:

Gate3[0].Chan[0] - motor 1 (X)
Gate3[0].Chan[1] - motor 2 (Y)
Gate3[0].Chan[2] - motor 3 (Z)
Gate3[0].Chan[3] - motor 4 (W)

I want to have position compare feature working for each of them, but separately.
I know there is a flag Gate3[0].Chan[0].EquOutMask, but I did not understand how it works. Please, explain with examples.

Right now, I can see the hardware output signal coming out from motor 1 only. For this I need to set all Gate3[i].Chan[j].EquOutMask to 0, except the first one (Gate3[0].Chan[0].EquOutMask=1).

Thank you in advance.
If you would like each channel to have their own, independent EQU output that is separate from other channels, you should be able to leave Gate3.Chan.EquOutMask at its default value, as this should be the normal behavior. However, specifically it should be set to:

Gate3[0].Chan[0].EquOutMask = 1
Gate3[0].Chan[1].EquOutMask = 2
Gate3[0].Chan[2].EquOutMask = 4
Gate3[0].Chan[3].EquOutMask = 8
I want to have EQU output from all channels on chan[0]. Is it possible to make with Gate3[i].Chan[j].EquOutMask?
To use all 4 channels’ internal compare states in a channel’s compare output, this element would be set to $F (15). After the logical OR, the output level can be inverted with Gate3[i].Chan[j].EquOutPol.

I have changed it to $F, but when I try it manually with Gate3[0].Chan[0].EquWrite=1(3), it worked for the first channel only. It means
Gate3[0].Chan[1(2,3)].EquWrite = 1(3) didn't work. I didn't get any hardware output.
I tried to do that when all other channels had Gate3[0].Chan[j].EquOutMask=0 and also with their defaults.

Can you give me an example how to initialize this?
We have double-checked this here, and everything works as documented.

Remember that the other channels can affect this channel's EquOut state, not the internal Equ state.

Try monitoring all channels' internal Equ states in the watch window, as well as the first channel's EquOut state, as you force values onto the internal Equ states.
Thank you for the answer, but it does not help me. I still have same problem.
Can you send the instructions of what you were doing while double checking?
Thank you in advance.
In the IDE watch window, add entries for all 4 channels of the internal compare states.


You should be able to toggle each of these on and off by writing to the channel's EquWrite element.

Now also put up in the Watch window:


Set Gate3[0].Chan[0].EquOutMask to $F (15).

Now if you force any of the 4 internal Equ values to 1, then Chan[0].EquOut should also go to 1.

Forum Jump:

Users browsing this thread: 1 Guest(s)