Jump to content
OMRON Forums

Position Compare initializing


kandauru
 Share

Recommended Posts

Hi,

 

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.Chan[j].EquOutMask to 0, except the first one (Gate3[0].Chan[0].EquOutMask=1).

 

Thank you in advance.

Link to comment
Share on other sites

  • Replies 7
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to comment
Share on other sites

Hi,

 

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

In the IDE watch window, add entries for all 4 channels of the internal compare states.

 

Gate3[0].Chan[0].Equ

Gate3[0].Chan[1].Equ

Gate3[0].Chan[2].Equ

Gate3[0].Chan[3].Equ

 

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:

 

Gate3[0].Chan[0].EquOut.

 

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...