Jump to content
OMRON Forums

different behavior between plc command and terminal command


Recommended Posts

Posted
I see a different behavior between plc and terminal: command "#9j/" gives a fatal following error when run from the plc (even if given repeatedly or with time delays) and works without problem when given from the terminal. My axis is a rotary motor with hall and encoder feedback, I have a secondary encoder (linear feedback). Both encoders and motor/hall are connected to a GeoMacro drive controller via Macro from a GeoBrickLV. Vertical application. This problem happens during initialization: At start-up, position and velocity feedback are from primary encoder. First do "$" with hall sensor, turn off brake, then "hm" to primary encoder index. Run axis into limit and reverse out of limit. Next apply brake, disable and change position feedback to linear encoder: Ixx03, Ixx08, Ixx23 and Ixx25 to the proper values. Velocity feedback remains from rotary encoder. Then enable again: this is what works when done through terminal and always gives a fatal position error when done in the plc, even waiting 5 sec does not help. After it faults in the plc, I can enable from the terminal without a problem. Open loop runs fine with both feedback options, same current amount needed to lift. It seems that the error is caused by the fact that the feedback channel is changed. Is there any command I can give to prevent this error from occurring?
  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted
Question: What is the change on Ix25? On a different note, why do you need to change the encoders at all? It seems you're final homing is based upon limit switches and not the index of the primary encoder. Regards,
Posted
Ix25 is initially $3440, then changed to $3444. Ix42 and Ix43 are both $3440. $3440 is the primary encoder, $3444 the secondary encoder. Amplifier & limit flags are on the primary encoder. I use the index of the primary encoder to do the setphase. I use the index of the secondary encoder for the position referencing. The limit is only to used to approach the index from one side. The secondary encoder has no fixed relation to the commutation.
Posted
[quote='Sina' pid='1140' dateline='1295542051'] Question: What is the change on Ix25? On a different note, why do you need to change the encoders at all? It seems you're final homing is based upon limit switches and not the index of the primary encoder. Regards, [/quote] Sina, I want to use the secondary encoder as the position feedback and the primary as the velocity feedback. So I do not need to change encoders at all. However, I do want to capture both index markers. The index marker of the primary encoder for the setphase, the index marker of the secondary encoder for the position zero. Can I do this without switching Ix25? Ernst
Posted
Ernst, You can achieve the same thing by setting your Ixx25 to your secondary encoder all the time, but for doing your fine phasing instead of using homing mechanism on primary encoder, you have to do some manual work. here is how it can be done: 1. Phase based upon hall sensors to give you initial commutation capability. 2. Move the motor until you see the capture flag on status word of your primary encoder. (assuming your I7mn2 is setup to capture index high) 3. stop the motion. read the captured position from primary channel and comparing it to phase capture value of primary encoder channel, you know where the index is compared to your current position, and if you know the phase angle at index, you can calculate the phase angle at current position. 4. set the phase angle based upon the calculation in previous step. (if you can do all your calculation in a single line, you can even do it while moving and not stop) 5. continue homing based upon the index of your second encoder. Regards,
Guest
This topic is now closed to further replies.

×
×
  • Create New...