Help: Position Feedback with Mitsubishi Servos

Position Feedback with Mitsubishi Servos
Does anybody have experience with Mitsubishi servos and time to answer a question?
Most parameters, except target positions, are set by GX-Configurator QP.
All the equipment in question is from Mitsubishi. I've got a QD75M4 motion control module and four MR-J2S servo amplifiers. They are controlling four HC-KFS43K motors. The PLC involved is a Q12H, not a dedicated motion control PLC.
I'm using simple single-step (end) or two step (continue, then end) motions to send servos to PLC-specified positions. I'm using a couple of bits to generate a "move complete" status in my PLC:     X14 (positioning complete--the step is complete)     NOT XC (busy--the servo is executing a move) And I'm monitoring position feedback using Md.20.
The problem is that in certain moves when the servo is mechanically prevented from achieving its target position, I still see X14 AND NOT XC And my position feedback (via Md.20) shows that I have reached my target position.
I have tried to find another method using this equipment to achieve the goal, but I'm having no luck.
I want to send the servo to a position, get feedback indicating "at position" when it's there, and monitor the actual position whether the servo
reachse setpoint or not. Has anybody successfully done this? How might this be done with the equipment above (using the general- purpose Q12H PLC, not a dedicated mitsubishi motion control PLC)?
A more detailed version of the above question is restated below.
Thanks for your help!
The manual I reference below is QD75M Position Module Software Manual V2-D.pdf, identified as Type QD75M Positioning Module User's Manual IB(NA)-0300062-B(0404)MEE
The servos drive ball screws with "sleds" mounted on the nut to carry workpieces That's not really important as the encoders are attached to the motors, not the ball nut.
All axes are independant and all moves are simple "go-to-position" commands. The moves all use CTRL Method 1: ABS line 1 (Axis #1 Linear control (ABS)) move, which controls speed to a set position. Each move can consist of either a 0: END (End command) segment a 1: CONT (continue positioning control) segment followed by an 0: END (End command) segment. The second type of move is for high speed approach followed by creep speed final positioning.
Two of the axes are pick-and-place, and reliably reach their commanded position every time.
The other two axes bring two workpieces together, and due to lack of precision in prior measurement sometimes cannot reach their final position.
For all axes, I create a "move complete" bit in the PLC using X14 (positioning complete) and NOT(XC) BUSY per p6.3 (Fig. 6.3 ON/OFF timing of each
signal at start of positioning).
Also, for all axes, I read current feed value via Md.20
For axes which do not achieve target position, we expect to see either the "move complete" (generated in the PLC as above), or an error. We also monitor the current feed value from Md.20 as above. This is so that we can adjust the position of the next equipment in the process.
It seems that the QD75M4 reports move complete and current feed value Md.20 = target event though position has not been achieved.
To test this, the Engineer onsite installed an oversized workpiece so that the ball screw could not achieve final position, then executed the move to
go to that position.
1. We get "move complete" (X14 TRUE and XC FALSE with no faults, per sec. 6.3 above) even though the sled doesn't make it to the specified position.
The command in-position width is .00100"
We would expect the servo to fault on a following error if it never made position, but it just stops with no fault and maintains force against the
workpiece. We monitor axis faults at Md.23 (Active Error Code).
2. The current feed value Md.20 shows that actual position = target position, even though we can see it has not occurred.
Previously, the Engineer scribed a line on the ballscrew carrier while the sled was at the target position. During this test he observed the sled is around an inch short of the line, even though the current feed value Md.20 reported target position had been
I would expect the feedback to report the actual position, not the target position. If not at Md.20, then I would expect some other parameter to
report the actual position.
To check this, the Engineer grabbed the sled and moved it back about 6" against the force of the motor. After releasing the sled, the motor returns
it to the position against the workpiece where he grabbed it. Current Feed value at Md.20 and Machine Feed Value Md.21 never changes.
If the Engineer drops 240V power, but not control power to the servos, (just opens the safety gate) current feed value from Md.20 abruptly changes
without the sled observably moving. Reported value in Md.20 is roughly consistent with actual observed positon. At that point, moving the sled produces the expected change in current feed value Md.20.
We have tried:
Monitoring Md.21 instead of Md.20    Both behave similarly, except that Md.20 reflects the offset applied during setup via OPR. Changing Pr.21 (Current feed value during speed control) to 1 (The current feed value will be updated.) produces no change in the problem. Ref 5.34,
I've read multiple Mitsubishi motor, PLC, servo, and motion controller manuals, reviewed the parameters the software GX-Configurator-QP, looking for
some parameter I have set wrong, or the correct parameter I should be monitoring. I'm finding nothing.
I want to send the servo to a position and get feedback to the PLC that tells me: 1. I've reached position within tolerance. 2. The actual position of the encoder at all times
This seems like a fairly straightforward application of a servo (a very basic one, actually), but I just don't see how to do it with these products.
Has anybody successfully done this? How did you do it?
Thank you very much for your kind assistance!
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file
On Jun 12, 6:22 am, ""

So there is only one position from the controller and that is the target position? This is one way to make a controller look good. When the actual position does not reach the target position there should be an error generated when the output builds due to integrator wind up.

Are you sure there isn't another register for the actual position?

Yes, but not with a Mitsubishi controller. There are other motion controllers that can communicate with the Mitsubishi PLC via Ethernet and can do these application easily without the PLC.
There is a Mitsubishi forum on I think there is a person from Mitsubishi that answer questions but that my only apply to PLC questions. Some one there should be able to answer your question or point you to someone who can.
You should also try
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file

I've looked in the manual and tried the registers I could find. That is the core issue here, though. Md.20 and Md.21 seem to be the likely places for actual position. If somebody knows what this "other register" might be, I'd love to hear about it!

And, this is the other possible answer: If I can document an authoritative statement that you can't do it with a Mitsubishi Controller (MR-J2S, Q12H), then we know that the wrong equipment was specified for the task at hand and we can move on.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file
Upload is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.