Industrial Controller Event Queue for Signal Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Industrial control systems face challenges in handling increased input and output signal rates due to complexity and distribution, leading to timing issues and potential inaccuracies in processing, as higher processor speeds create radiated emissions and interrupt handling becomes inefficient with rising interrupt frequencies.
Innovation Solution
An event handling system with an I/O module and processor module that generates events responsive to signal states, stores them in an event queue for processing, and executes event tasks based on priority, allowing for efficient handling of multiple events and reducing the likelihood of inaccurate signal processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If processor clock speed is increased to handle higher input signal rates, then processing speed is improved, but timing issues between hardware components and radiated emissions occur
Solution Approach 1:
The control program is divided into periodic control code execution and interrupt control code execution. The periodic control code runs at a fixed clock speed to maintain timing precision, while interrupt control code handles high-rate input signals asynchronously through interrupt handlers, separating the deterministic timing requirements from the high-speed signal processing requirements.
Solution Approach 2:
An event queue data structure is introduced as an intermediary between input signal reception and control code execution. Events are queued with timestamps and processed in chronological order, allowing the system to handle high-rate inputs without increasing the processor clock speed, thus avoiding radiated emissions and timing issues.
2Productivity
If interrupt handling is used to process inputs at increased frequency, then processing rate is improved, but interrupt control code execution time increases and may prevent general control code completion
Solution Approach 1:
Instead of executing complete control logic for each interrupt, the system generates event records with essential information (input state, timestamp, event type) and processes them periodically. This partial action during interrupts minimizes interrupt execution time while ensuring all necessary data is captured for subsequent periodic processing.
Solution Approach 2:
Event data is prepared and queued in advance during interrupt handling, with full processing deferred to the periodic control code execution. This preliminary action captures critical information quickly during interrupts while leaving detailed processing for when the processor is available, ensuring both high processing rate and complete control code execution.
3Productivity
If multiple interrupts occur simultaneously, then high input rate handling is achieved, but subsequent interrupt control code may not be executed
Solution Approach 1:
Each interrupt generates a copy of the event data structure that is queued for later processing. Multiple simultaneous interrupts create multiple event copies in the queue, ensuring that no interrupt information is lost even if processing is deferred. The periodic control code then processes each queued event independently, guaranteeing complete execution of all interrupt control code.
4Ease of operation
If interrupt handler executes control code based on remote input signals, then responsive control is achieved, but input state may have changed by the time interrupt is received
Solution Approach 1:
The interrupt handler captures the input signal state, event type, and timestamp into an event record immediately when the interrupt occurs. This preliminary capture preserves the exact state at the moment of the interrupt, even though processing is deferred. The periodic control code then processes this preserved state information, ensuring both responsiveness and accuracy.
Data Source
AI summary
An improved system for handling events in an industrial control system is disclosed. A module in an industrial controller is configured to generate an event responsive to a predefined signal or combination of signals occurring. The event is transferred to an event queue for subsequent execution. The event queue may also be configured to store a copy of the state of the module at the time the event is generated. The event queue may hold multiple events and each event is configured to trigger at least one event task. Subsequent events that occur during execution of the event task are stored in the event queue for later execution. An event, or combination of events, may trigger execution of an event task within the module, within the controller to which the module is connected, or within multiple controllers.


