Troubleshooting Allen-Bradley CompactLogix L18ER: One-Shot Timer Issue with Move Instruction

Question:

In the reset process, there is a step involving rollers controlled by a pneumatic cylinder. The rollers are raised when the output is on and return to the home position when the output is off. However, there is no feedback to confirm their position. To address this, a 4-second timer has been added to allow the cylinders to move before proceeding. If the rollers are already at the home position, the step is skipped. Despite various attempts to modify the logic, the reset cycle still gets stuck at this step until the timer runs out. This issue persists even when using the OSR instruction or creating custom one-shot logic. When SAW_RESET.Step is set to 50 and O_ROLLERS_UP_SV is off, zzz_CJV.7 turns on but SAW_RESET.Step remains at 50 until ResetRollersTimer.DN is on. Suggestions for improving the code are welcome, as I am struggling to grasp the scan order for Allen-Bradley PLCs and determine where I am going wrong.

Top Replies

Installing a position sensor in the pneumatic cylinder is essential for accurately tracking the cylinder's position. This method is highly efficient and reliable for monitoring the location of the cylinder.

I am unable to attach a sensor to the cylinder as I lack the necessary control. My task is to program it to function effectively within the existing parameters.

Could the issue be related to writing a value of 50 to that tag? It is possible that the MOV instruction is causing a trigger, resulting in two simultaneous writes to the tag. Consequently, the value temporarily jumps to 60. Consider adding a test latch bit after the MOV 60 instruction for added assurance, even though you may have already verified it. My hypothesis is that whenever the timer is finished, it consistently writes 60 when the input value is 50. This could potentially lead to multiple consecutive scans triggering until the other write instruction resolves the discrepancy and stops attempting to write 50.

I am having trouble comprehending your code, but have you considered implementing this on the lower section of rung 5? The code snippet includes a timer function and a move command to control rollers based on certain conditions. Make sure to include the necessary logic for the rollers to move up.

When zzz_CJV.7 activates, it indicates that RollersResetOSR_OB was active but the move instruction failed to write a 60 to SAW_RESET.Step. The accuracy of this statement is crucial. If the condition is met, the next action sets SAW_RESET.Step to 60. To verify this, add an OTL bit parallel to the MOVE instruction. The key question to address is, "What caused SAW_RESET.Step to revert to 50 before the logic section was reached again?" In addressing your issue, it is essential to consider the following factors: the rollers' position at the home position and the lack of feedback to determine if they are extended or at home. Essentially, you want the system to act based on data that is not provided. Incorporating a position sensor to detect when the rollers are at home is the recommended solution. If this is not feasible, using a timer on the output being off could be a temporary workaround. However, this method is not ideal and could pose risks, such as incomplete retraction of the cylinder or potential flow restrictions. It is important to assess the implications of relying solely on a timer for this process. Consider the possibility of the cylinder not fully retracting or encountering obstacles that affect its movement. Assess the potential risks and determine if occasional mishaps are acceptable in your operation. It is vital to ensure the safety and efficiency of the system by addressing these concerns.

I faced a similar issue in one of my projects. What you might need is an effective way to confirm the roller's position to ensure the reset cycle doesn't get stuck. One approach could be integrating limit switches into your system. By placing one at the home position and another at the fully raised position, you can have simple yet effective feedback that will tell you where your rollers are positioned. As your cylinder moves, your PLC can observe changes in the limit switch conditions and adjust its actions accordingly. Also, about your struggle with Allen-Bradley PLCs, always remember that they use ladder logic, which reads from left to right and top to bottom. Get comfortable with this order, and coding will feel much easier. Be patient with yourself; mastering PLCs takes a bit of practice.

It seems like you have a thorough system in place to control your reset cycle but the issue with the reset step might stem from a different area than you think. Allen-Bradley PLCs use ladder logic for scan order, which means the code is read from left to right, top to bottom. If a rung fails, it will stop scanning the rest. Therefore, the problem might lie somewhere earlier in the scan that trips everything following it up. Try trouble-shooting by looking for potential problems that may arise during the early steps of the reset cycle. Also, consider using a position sensor, like a limit switch or proximity sensor, for the rollers. This might help to provide the feedback you're looking for.

More Replies →

Streamline Your Asset Management
See How Oxmaint Works!!

✅   Work Order Management

✅   Asset Tracking

✅   Preventive Maintenance

✅   Inspection Report

We have received your information. We will share Schedule Demo details on your Mail Id.

To add a comment, please sign in or register if you haven't already..   

Frequently Asked Questions (FAQ)

FAQ: 1. Why is my Allen-Bradley CompactLogix L18ER reset cycle getting stuck at the step involving a one-shot timer with a move instruction?

Answer: Answer: The issue could be related to the logic sequence and timing configuration in your PLC program. It seems like the feedback mechanism for confirming the position of the rollers controlled by the pneumatic cylinder is causing the cycle to get stuck. You may need to review and adjust the logic to ensure proper operation.

FAQ: 2. How can I improve the code to address the one-shot timer issue with the move instruction in my Allen-Bradley PLC program?

Answer: Answer: To improve the code and address the issue with the one-shot timer, consider reviewing the scan order and sequence of operations in your program. Ensure that the logic for controlling the rollers and the timer is correctly structured to allow smooth operation without getting stuck at any step.

FAQ: 3. Are there specific programming techniques or instructions that can help resolve the problem with the one-shot timer in Allen-Bradley PLCs?

Answer: Answer: Using techniques like the OSR (One-Shot Rising) instruction and creating custom one-shot logic can be beneficial in handling timer-based operations in Allen-Bradley PLC programming. Make sure to properly implement these instructions in your code to manage the timing and sequencing of your control system effectively.

Ready to Simplify Maintenance?

Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.

Request Demo  â†’