Studio 5000 MAM instruction enabled but not initiated.

JTPLC

Member
Join Date
Jul 2022
Location
Manchester
Posts
2
Hi All,

I currently have an intermittent issue on a CompactLogix 1769-L30ERM with firmware 28.11. When I get to the machine, all conditions for automatic running are true and it looks as if the machine is in sequence.

When looking in the program the next rung in the sequence is a motion axis move instructions. The conditions are true and the EN flag is true. However the move never starts its movement and the IP or DN flags never become true (pictured). I can move the servo with a motion direct command and use the position and speed of the MAM instruction and it moves as it should.

The only way I can seem to clear the issue is to drop power and reinstate.

I am under the suspicion it may be a bug in the firmware, does anyone know of this issue?

Thanks

MAM fault.png
 
Welcome to the forum!

It is the rising edge of the MAM instruction's input rung that triggers it. So for it to execute a second time, that rung needs to change back to false for at least one scan before it goes to true again. Is that happening? I would think that is what the [EQU Stripper_Seq.CurrentStep] instructions does, but we don't see the rest of your code.

I am under the suspicion it may be a bug in the firmware
This is a common reaction. But I can tell you from hard experience that a more likely scenario is that the PLC is doing exactly what you told it to do, not what you want it to do.

I'm not saying a firmware bug is out of the question, just that such events are fairly rare. Can you reduce the program to a minimal test case and duplicate the problem?
 
Last edited:
Welcome to the PLCTalk forum community !

Double-triple-quadruple-check to be sure that the Motion Control tag is not being used elsewhere in the program. I know it's part of a UDT, but it's just as easy to fat-finger "M2" as it is "Move_1".

When I troubleshoot this sort of logic, I add a CTU instruction in parallel with the Motion instruction since it requires the same false -> true transition to increment that the Motion instruction does to execute.

Also of course check the logic that's summarizing the the servo-ready bit. If you've got an unrelated servo faulting and being auto-reset it's possible that the symptom shows up here.

What model of servo is being controlled, and how many total axes are in the system ?
 
Hi, thanks for your feedback, I have been to similar issue again and there are 3 servo drives on the equipment and it isn't always the same drive which has an instruction issue similar to the one described above. it also isn't always the same rung which gets stuck.

The latest fault was on a MAG (Gear On) instruction, when I got to the machine I could not see any fault codes etc on the drive, however there was an error code when expanding the Tag, ERR 5 which I believe means the servo loop was open. and also a safe torque off alarm was present in the drive status after clearing the log.

if anyone could take a quick look at the screenshots/explanation attached, and has any ideas that would be a big help.

Thanks

Screenshot 1.jpg Screenshot 2.png
 
If you're going to do your narrative with a PDF file, please post it as a PDF instead of as screenshots of the pages of the PDF. The screenshots lack sufficient resolution to read the tag names or even distinguish the bit instruction icons.

Can you explain why the logic simultaneously commands the Axis to "Stop" (decelerate to a standstill) as well as Gearing it to another axis at the same time ? They both happen when the sequencer reaches Step 48.

Your post touches on one of the things I dislike about how Studio 5000 handles motion faults. Instead of showing you an enumerated or labeled fault code or description, it requires you to to the Motion Control tag, find the .ERR values, and then look up their meanings.

A bit of general advice: never use logic to manipulate the Status bits of a motion control instruction. Use the successful or unsuccessful execution of the instruction to allow the status bits to be set or cleared by the controller.

Look very carefully in your code for any logic that attempts to address the .ER bits for the motion control tags. You may be seeing "the .ERR value is nonzero but the .ER bit is false" because logic is attempting to write over the .ER bit after the Motion Instruction has set it.

Similarly, you should not use logic to set or clear the .EN Enable bit of the motion control instruction. That could give the controller conflicting control commands for the instruction: one from the .EN bit you're setting, and one from the actual rung conditions of the instruction.

Your system needs to account for emergency stop conditions in your sequencer logic. You can't expect the motion axes to continue as though they've been continuously enabled when an event has occurred that forces them into an e-stop shutdown state.

It makes sense to me that you're experiencing an emergency stop event, and the MAG instruction correctly cannot execute a Gearing function for an axis that's been e-stopped, and is correctly telling you with .ERR = 5 that the axis needs to be Enabled (with an MSO Servo On) before it can be Geared.
 

Similar Topics

Does anyone know if there is a position tolerance parameter that controls the PC flag on MAM instructions? We're measuring a conveyor index and...
Replies
3
Views
2,753
Hi, how do I convert 2x Integer registers to a Real? The two integers are from Modbus registers that contain a floating point value, I need to...
Replies
2
Views
84
What is the best way to extract the hour and minute from the register that comes from Yaskawa VFD. In studio 5000 I have a register saved as INT...
Replies
3
Views
93
I have an Allen Bradley temperature switch that I am trying to use in studio 5000. I am getting the message "Unable to interpret the IODD file"...
Replies
0
Views
60
Hi all. I want to ask what may seem a stupid question, as I have a project to send live data to a Yeacode line printer which will print meterage...
Replies
4
Views
122
Back
Top Bottom