kandauru Posted July 24, 2018 Share Posted July 24, 2018 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 More sharing options...
Alex Anikstein Posted July 24, 2018 Share Posted July 24, 2018 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 More sharing options...
kandauru Posted July 25, 2018 Author Share Posted July 25, 2018 I want to have EQU output from all channels on chan[0]. Is it possible to make with Gate3.Chan[j].EquOutMask? Link to comment Share on other sites More sharing options...
steve.milici Posted July 25, 2018 Share Posted July 25, 2018 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.Chan[j].EquOutPol. Link to comment Share on other sites More sharing options...
kandauru Posted July 30, 2018 Author Share Posted July 30, 2018 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 More sharing options...
curtwilson Posted August 2, 2018 Share Posted August 2, 2018 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 More sharing options...
kandauru Posted August 3, 2018 Author Share Posted August 3, 2018 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. Link to comment Share on other sites More sharing options...
curtwilson Posted August 6, 2018 Share Posted August 6, 2018 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 More sharing options...
Recommended Posts