Optimizing Alarm Sequences in PLC for Improved Overall Equipment Effectiveness (OEE)

Question:

Title: Solving a Complex Coding Challenge: Optimizing Alarm Sequences for Enhanced OEE Hello everyone, I’m currently facing a significant coding challenge involving a machine system equipped with 3,000 alarms. Our engineering team is eager to enhance Overall Equipment Effectiveness (OEE) by understanding the correct alarm sequence, but reprogramming the entire alarm logic for all 3,000 alarms isn't feasible. I previously attempted to implement an alternative method by utilizing a database to monitor when specific bits are triggered, but unfortunately, that approach has not yielded satisfactory results. The delay in data acquisition from SCADA and HMI systems also proves to be an issue. This limitation prompts me to seek a solution directly within the Programmable Logic Controller (PLC). Here's my plan for optimizing the alarm sequence within the PLC: 1. **Block Copying**: Transfer the alarm bit data to a new database structured as an array of bits. 2. **Time of Day (TOD) Database**: Create a database containing an array of corresponding Time of Day values (retrieved from the clock). 3. **Recording Trigger Times**: Whenever one or more bits are triggered, we'll log the Time of Day in the TOD array. 4. **Sorting**: Implement a Bubble Sort algorithm to organize all arrays based on the recorded TOD values. I would appreciate any feedback or suggestions on this approach. What do you all think? Thank you for your insights!

Top Replies

Several PLC vendors offer time-stamp functionality through OPC Alarm and Event (AE), but it's essential to have a compatible Human-Machine Interface (HMI) for seamless integration. For example, using ControlLogix combined with RSView SE is likely the simplest solution in terms of implementation effort. This combination can enhance your system’s efficiency and responsiveness to alarms and events.

I recommend exploring various XOR and AND commands to address the issues outlined in these discussion threads related to alarm PDF printing and Cengage: 1. [PLC Talk Thread 1](http://www.plctalk.net/qanda/showthread.php?t=113938) 2. [PLC Talk Thread 2](http://www.plctalk.net/qanda/showthread.php?t=102972) 3. [PLC Talk Post](http://www.plctalk.net/qanda/showpost.php?p=690996&postcount=10) Begin by creating an array of bits measuring 3,000 in length. Following the example provided in the PDF, generate arrays for raw alarms, current alarms, unacknowledged alarms, and acknowledged alarms, ensuring they are organized separately. During each PLC scan, loop through these bits to identify new alarms. You can achieve this by generating a single pulse whenever an alarm is detected. By monitoring the bits that transition to the alarm state since the last PLC scan, you can log the Time of Day (TOD) for each alarm. Since the pulsed bits share the same TOD, all information gathered during one scan is synchronized. Once you have recorded the TOD for the alarms, transfer this data to your newly updated alarm list, eliminating the need for complex bubble sorting. The challenge lies in removing alarms from this list; you may require acknowledgment bits and mechanisms to rotate bits, ensuring accurate alignment of alarms that share the same timestamp when new alarms are being processed. By copying raw alarms into the list and filtering for their states, you can remove any identified bits from your alarm list and migrate them to the most recent alarm list—all within a single PLC scan. If an alarm activates and deactivates quickly, you can reintegrate those alarms back to your raw alarm search list to maintain integrity. Conducting checks for new alarms during each scan will ensure that only the latest alarms are passed to the most current list, enhancing reliability in alarm management.

Certainly, receiving 3,000 alarms in rapid succession seems excessive, doesn’t it? By conducting a thorough analysis—an essential step in troubleshooting—it’s likely that some of these alarms can be categorized and addressed individually. This approach may allow you to establish a trigger system and store relevant data in a database, including the timestamps for each alarm activation within a selected group. While alternative methods may also be effective, it’s crucial to focus on data collection that serves a purpose; otherwise, the sheer volume of data may overwhelm the individuals requesting it, rather than helping them identify which data is truly necessary. If you're working with Siemens PLCs, consider leveraging ServiceLab as an option. If I recall correctly, it provides an impressive acquisition speed (I’ve utilized it for machine movement commissioning) and allows you to set defined triggers for data recording. This could be particularly beneficial when you’re aiming for a targeted and efficient data management strategy.

Can both the Human-Machine Interface (HMI) and Programmable Logic Controller (PLC) be utilized simultaneously? Absolutely! The HMI can be designed to handle alarm management, track operator responses, maintain lists, and log timestamps. Meanwhile, the PLC should focus solely on identifying which alarm was triggered first. For instance, the HMI can record alarm notifications along with approximate timing, making it easier to manage alarms and acknowledge them as needed. In the PLC, implement a circular integer buffer to store the sequence of triggered alarms. You only need to track the order in which these alarms occur; record the alarm number and increment the array counter accordingly. Additionally, you can correlate the HMI alarm data to retrieve timestamps, messages, and tag names effectively. This comprehensive approach ensures efficient alarm management and streamlined operations in your automation system.

It sounds like you're in need of an effective SCADA (Supervisory Control and Data Acquisition) system that not only monitors real-time data but also archives alarm history for analysis. This is one of its primary functions. As noted by Cardosocea, if you're required to handle logic-based tasks, you could spend several days manually tracking alarms to identify which ones should be prioritized for your Overall Equipment Effectiveness (OEE) goals. However, this manual approach prompts many businesses to invest in a comprehensive SCADA solution, as it streamlines the process and enhances operational efficiency.

Your approach sounds interesting, especially the use of a Time of Day database to capture and sort trigger times! One thing to consider might be a more efficient sorting algorithm; Bubble Sort can become quite slow with large data sets like yours. Perhaps exploring a merge sort or quick sort could improve performance significantly. Additionally, if you encounter delays in data acquisition, implementing a timestamping mechanism directly within the PLC could help capture the events more accurately. Good luck with your project!

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.

You must be a registered user to add a comment. If you've already registered,
sign in. Otherwise, register and sign in.

Frequently Asked Questions (FAQ)

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  →