This application claims priority to United Kingdom Application No. 2003015.1, filed Mar. 3, 2020.
The present application relates to methods and apparatus for operating, diagnosing and resolving faults in an industrial machine. More particularly, but not exclusively, the application relates to methods and apparatus for diagnosing and resolving faults in a riveting system.
During operation, industrial machinery may develop faults that are difficult to detect as the system relies on the system inputs and outputs to determine the correct time to transition through the machine's operating sequence, and the timing or presence of these signals may change over time with incremental imperceptible changes which eventually lead to a fault condition. For example, during transition of an industrial machine from one state of its operating sequence to another state, the industrial machine may provide corresponding input and output signals. In certain situations, when errors occur in the operation of the industrial machine, the input and output signals provided by an industrial machine may not be an expected value or may not be provided within an expected time, indicating the presence of the fault. However, industrial machines are often large and complex, with many possible states and corresponding faults. This can make it difficult for an operator of the industrial machine to determine in which state the machine is currently operating, or in which state a fault occurred. As such there is a need for methods and apparatus to diagnose and resolve faults in industrial machines such as a riveting system.
It is an object of one or more of the embodiments described herein to obviate or mitigate at least one of the issues set out above.
According to a first example described herein, there is provided a method for diagnosing faults in an industrial machine. The method comprises identifying a first state associated with the industrial machine, identifying at least one second state associated with the industrial machine based on the first state; for each identified second state, determining a state time associated with the second state; determining a fault indicator condition responsive to determining, based on the at least one second state and the respective state times, that the industrial machine spent a time period different to a predetermined time period in at least one of the at least one second states; generating, responsive to determining the fault indication, diagnostic information comprising an indication of the one of the at least one second state; and outputting the diagnostic information in a user interface of the industrial machine.
The first aspect described herein, therefore allows for generation of diagnostic information based upon information associated with at least one-second state of a state machine modelling the operations of an industrial machine. The at least one second state may be a currently active state of a state machine. Based on the diagnostic information outputted in the user interface of the industrial machine the operator may determine in which state the machine is currently operating, or in which state a fault occurred.
The method may further comprise maintaining, during operation of the industrial machine, a history of states and associated state times, wherein identifying a second state and state time associated with the second state comprises identifying the second state and associated state time from the history of states and associated state times. The history of states and the associated state time may be stored in a circular buffer. The circular buffer may comprise a pointer pointing to a memory location storing the currently active state of the industrial machine. It will be appreciated that the use of circular buffer may further improve the speed of operation of the method associated with the first aspect. The history of states and the associated state times may also be stored in any fixed-size buffer.
The method may further comprise copying, responsive to determining the fault indicator condition, contents of a predetermined number of data entries in the history of states and associated state times. For example, predetermined number may be all of the current entries. In this way, subsequent overwriting of the entries (e.g. where the entries are stored in a circular buffer, or other fixed-size buffer) does not erase information that may be used to diagnose problems within the industrial machine. Indeed, it will be appreciated that for some industrial machines, state transitions may occur extremely quickly, such that relevant information may otherwise be lost from the state history data shortly after a fault is detected.
The state time associated with each of the at least one second states may be based upon a value of a global timer at a time of transition to the second state, wherein the global timer is used by the industrial machine to synchronise all operations of the industrial machine. Basing the state time upon the value of a global timer allows the state histories to be cross-checked against I/O signal, providing a further mechanism to enable diagnosis of the faults within the industrial machine.
The user interface may further comprise generating an indication of a state history of the industrial machine, the state history comprising a current state of the industrial machine, a state that will be active after the current state, a state that was active before current state and state times associated with the current state.
The method may further comprise displaying the user interface on a human-machine interface of the industrial machine. Industrial machines often have human-machine interfaces capable of displaying only a limited quantity of information and capable of refreshing the display only infrequently. The user interfaces generated according to the techniques described herein are particularly adapted to the technical limitations of human-machine interfaces that are commonly provided with industrial machines.
The user interface may further comprise an indication of a transition path followed by the industrial machine to arrive at the current state.
The method may further comprise providing in the user interface, a state-force user interface element, wherein selection of the state-force user interface element causes the industrial machine to transition to a predetermined state. For example, the state-force user interface may force the industrial machine to transition to a pre-set state (such as a starting or initial state), or may force the industrial machine to transition to a state of the operator's choosing. By forcing the industrial machine to transition to a particular state, the industrial machine may implement operations associated with that state.
The method may further comprise maintenance, during operation of the industrial machine, of a history of states and associated state times continues after selection of the state force user interface element. This feature allows continued diagnostic operations to be performed for the industrial machine even after a forced operator action. In this way, an operator may force an industrial machine to a particular state (for example a state suspected as a root of a fault condition) and continue to monitor operation of the industrial machine.
Generating a diagnostic output may further comprise processing the second state and state time information to generate an output indicating timing of state transitions. The method may further comprise providing a time calculation user interface element configured for display with the output indicating timing of state transitions, the time calculation user interface configured to allow an operator to select two positions within the output indicating timing of state transitions and to output a time period between the selected two positions. The time calculation user interface element allows the user to easily determine a time spent in a state.
The method may further comprise: identifying a change in an I/O signal associated with the industrial machine; assigning to a state indicator associated with the I/O signal a value indicative of the change, the assignment configured to persist for a predetermined time period; generating diagnostic information comprising an indication of a current value of the I/O signal and a current value of the state indicator; outputting a diagnostic output based on the diagnostic information in a user interface of the industrial machine.
According to a second example described herein, there is provided a method for diagnosing faults in an industrial machine. The method comprising: identifying a change in an I/O signal associated with the industrial machine; assigning to a state indicator associated with the I/O signal a value indicative of the change, the assignment configured to persist for a predetermined time period; generating diagnostic information comprising an indication of a current value of the I/O signal and a current value of the state indicator; outputting a diagnostic output based on the diagnostic information in a user interface of the industrial machine. By updating a state indicator with a value that is configured to persist for a predetermined time period, the changes in the I/O signals can be displayed on the types of human-machine interface that are often provided with an industrial machine. In particular, the state changes can be displayed on human-machine interfaces having relatively slow refresh rates. The diagnostic output may be the diagnostic information or may be an output based on the diagnostic information.
Generating diagnostic information may be performed at each refresh interval of a human-machine interface of the industrial machine. The predetermined time period may be greater than a refresh rate of a human machine interface of the industrial machine. For example, the predetermined time period may be greater than or equal to two refresh periods of the human machine interface.
The method may further comprise resetting the state indicator associated with the I/O signal after the predetermined time period has elapsed. Outputting the diagnostic information in a user interface of the industrial machine may further comprise outputting the diagnostic information using an indicator having four modes of operation, the four modes of operation comprising: a first mode indicating that the I/O signal is low and that no high signal has been received within a past predetermined time period, a second mode indicating that the I/O signal is low, but that a change of state occurred within the past predetermined time period, a third mode indicating that the I/O signal is high and a change of state occurred during the past predetermined time period, and a fourth mode indicating that the I/O signal is high and has not changed during the past predetermined time period.
The I/O signal may be one of a plurality of I/O signals, the state indicator associated with the I/O signal may be associated with the plurality of I/O signals and the diagnostic information may indicate changes to any of the plurality of I/O signals.
The method may further comprise maintaining a diagnostic signal history buffer for the plurality of I/O signals, the diagnostic signal history buffer configured to provide an historical indication of changes to any of the plurality of I/O signals.
The diagnostic signal history buffer may comprise a plurality of slots, each slot comprising an entry for each of the plurality of I/O signals and wherein each of the slots represents a state of the plurality of I/O signals at a different time in the past and the diagnostic output may be based on a slot of the diagnostic signal history buffer referenced by an index, wherein the index is updated to refer to a next one of the slots of the diagnostic signal history buffer with a predetermined frequency.
The method may further comprise decaying indications of changes to the plurality of I/O signals stored in at least one of the slots with the predetermined frequency. Decaying indications of changes to the plurality of I/O signals stored in a slot may comprise resetting the value stored in the slot.
The diagnostic information may comprise a bit for each of the plurality of I/O signals and each slot of the diagnostic signal history buffer comprises a bit for each of the plurality of I/O signals and the method may further comprise: in response to generating diagnostic information indicating a change to at least one of the plurality of I/O signals, updating the value stored in each slot by logically combining the diagnostic information with the value stored in the slot; and resetting the value of the currently indexed slot. It will be appreciated that the currently indexed slot may be reset before or after updating the index to the next slot. The number of slots may be equal to or greater than the number of I/O signals in the plurality of I/O signals.
The predetermined frequency may be based upon the sum of the number of slots in a diagnostic signal history buffer and a refresh period of a human machine interface of the industrial machine Assigning to a state indicator a value indicative of the change may further comprise storing a time associated with the change. Storing a time associated with the change may further comprise recording a time indicated by a global timer at the time of the change.
The industrial machine may be a riveting machine, an adhesive dispensing machine or a flow drill system.
According to a third example described herein, there is provided a system for diagnosing faults in an industrial machine. The system may further comprise a controller and a memory storing computer readable instructions that may be configured to cause the controller to perform the method according to the first or the second aspect described herein.
According to a fourth example described herein, there is provided an industrial machine. The industrial machine may comprise a system according to the examples described above or elsewhere herein.
Where features have been described above in the context of one example implementation, it will be appreciated that where appropriate such features may be applied to other example implementations. Indeed, any of the features described above and elsewhere herein can be combined in any operative combination and such combination is expressly foreseen in the present disclosure.
To the extent appropriate, methods described herein may be implemented by way of suitable computer programs and as such, computer programs comprising processor readable instructions arranged to cause a processor to execute such control methods are provided. Such computer programs may be carried on any appropriate carrier medium (which may be a tangible or non-tangible carrier medium).
Embodiments will now be described, by way of example only, with reference to the accompanying drawings, in which:
Referring to
The example state machine 100 comprises six states each of which is represented by a value from S0 to S5. Each of the states is linked by a transition, such that each transition has a source (a starting state) and a destination (an ending state). A condition is associated with each of the transitions such that, when the evaluation of the condition evaluates to “true” (i.e. the condition is met), the state machine 100 transitions from a source state to a destination state associated with the transition, and typically stops evaluating any other transition to prioritize the machine sequencing. This can be performed by, for example, setting a condition within each state that there is no active higher priority transition, or by skipping the logic which evaluated the lower priority transitions once a higher priority transition has its conditions met.
In the example state machine 100, state S0 is linked to states S1, S2, S3 by conditions t1, t2, and t3 respectively such that on performance of any one of these conditions, the state machine 100 transitions from S0 to one of states S1, S2 or S3. Typically a state transition will be prioritized such that if two, or more, transitions are active simultaneously one will take precedence. States S1 and S2 are linked to state S4 by conditions t5 and t6 respectively and states S1, S3 and S4 are linked to state S5 by transition conditions t4, t7 and t8 respectively. State S5 is further linked to the default state S0 by a transition condition t9.
After a state transition, the state machine 100 will process all the entry actions [E] associated with the newly activated state prior to the state's normal logic being evaluated. The state machine 100 will then continue operating in the currently active state, performing any actions specified for that state, until a valid transition (t) condition becomes active. This will result in the performance of any exit actions [X] of the current state, prior to transitioning to the next, or destination, state in the sequence. When a state is inactive, any code or transition logic associated with the state is not acted upon.
Inclusion of an entry action E and/or exit action X within a state ensures that regardless of a transition path followed by a state machine, a specific set of actions may be performed on entry and exit from a state, which is useful for initializing the data used by the newly activated state, and to tidy-up any outstanding operations prior to moving on in the state sequence.
When modelling an industrial machine, the states of a state machine correspond to the steps taken by the industrial machine to perform its operation. Transitions from one state to another occur based on the input signals provided to the industrial machine, time, or a combination of both. For example, one or more state machines may be used in riveting systems to model the operation of motion and feed logic, to ensure that the system will perform the desired functions in response to the appropriate input signals.
The outputs from the industrial machine will be dependent on the currently active state and the logic which is operating during that state, with outputs typically only changing during the transitions between states. In certain situations, when faults occur, the inputs to the state machine may not be correct, thereby preventing the state machine from transitioning correctly. This in turn causes the output signals provided by an industrial machine to be outside of expected values, or to not be provided within an expected time (or at all).
While a state machine can allow the modelling of a complex industrial machine such as a riveting system, such state machines may be large and complex, making it difficult for a person using the state machine to comprehend its operation and therefore the operation of the industrial machine. Consequently, it is often difficult to identify errors or faults in an industrial machine modelled by a complex state machine. As such there is a need for methods and apparatus to diagnose and resolve faults in industrial machines such as a riveting system whose operations may be modelled by complex state machines.
State machines, such as the one illustrated in
In a complex industrial machine, such as a riveting system, a state machine modelling the operations of the industrial machine may comprise, for example, of the order of 256 states or more. Consequently, it may be difficult for an operator to understand the operation of the state machine for the purpose of troubleshooting. In such instances, it would be useful if the operator has access to information that allows the operator to diagnose and resolve faults in the industrial machine based on the currently active state of the state machine.
Techniques described herein provide methods and apparatuses for diagnosing and resolving faults in an industrial machine through use of a state machine modelling the operations of an industrial machine based on information associated with the currently active state of the state machine. Example arrangements are described in further detail with reference to
In
The setting tool 10 comprises a cylindrical housing that houses a reciprocal plunger that is driven in translation relative to the housing by a hydraulic, pneumatic or electric drive. The housing has an end nose portion 14 with an annular surface for contact with the workpieces W in which the joint is to be formed and the plunger terminates in a punch (not shown) that reciprocates in a passage (best seen in
The operations of the rivet feed system of a rivet setting tool 10 can generally be modelled by means of a state machine such as the state machine 100 illustrated in
The feed motor 300f pulls the rivet tape 300a through the nose assembly 300d until a rivet enters the rivet receiving member (not shown) and the rivet is detected by a sensor 300i illustrated in
While in the “Ready” state (S1), if any external stop inputs are detected then the t2 condition will be activated and the system will return to the “Feed Off” state (S0). However, if the machine stop inputs remain inactive, no rivet feed request is active, and the tape cut request is activated then the conditions for the exit condition t4 will be met and the system 500 will transition to the “Tape Cut” state (S3).
When the active state of the state machine 500 is the “Tape Cut” state (S3), a tape cut is initiated, causing the tape cutter blade of the tape cutter assembly 300h to cut the spent rivet tape 300j. An exit condition t9 associated with the Tape Cut state (S3) is satisfied when the rivet tape 300j is cut, causing the state machine 500 to transition to a “Cut Return” state (S7).
When the “Cut Return” state (S7) is active, the tape cutter blade is retracted, clearing a feed path for the spent tape 300j. After the tape cutter blade is retracted, the feed control logic of the rivet setting tool 10 waits for the removal of the tape cut request signal, at which point exit condition t15 is activated causing the state machine 500 to transition to the “Ready” state (S1). While in the “Tape Cut” state (S3) or “Cut Return” state (S7) the system will not respond to any rivet feed request, removing the possibility of moving the sprocket tape during the tape cutting process which will lead to a higher feed reliability.
In the “Ready” state (S1), if no stop condition or tape cut request is active when a “feed request” or a “feed next” command signal is received by the feed control logic then exit condition t3 is activated and the state machine 500 transitions to a “Feed Active” state (S2). On the transition from the “Ready” state (S1) to the “Feed Active” state (S2) the feed pull counter is reset to zero via the exit action.
On entry to the “Feed Active” state (S2) the feed pull counter is incremented via the entry action, and while the feed control logic is in the “Feed Active” state (S2), a feed actuator 300f is activated which will pull the rivet tape 300a into the nose 300d. There are four exit conditions associated with the “Feed Active” state (S2).
Firstly, if the nose switch sensor 300i becomes active for a predetermined period of time, selected depending on the movement condition of the tool (stationary or retracting), or the maximum number of feed pulls has been met with the “Feed Next” command then exit condition t7 is activated and the state machine 500 transitions to a “Finished” state (S6). For example, the feed control logic may transition to the “Finished” state (S6) if the nose switch sensor 300i becomes active for the required time duration based on the movement of the tool (typically 0.125 seconds when stationary or 0.1 seconds during retraction).
Secondly, when the feed actuator 300f is active for a predetermined time and the number of feed pull cycles is below the maximum allowed, for example 1 second and 3 pulls, without the nose switch sensor 300i becoming active, an exit condition t5 is satisfied and the feed control logic 500 transitions to a “Feed Pause” state (S4).
Thirdly, when the feed actuator 300f is active for a predetermined time and the number of feed pull cycles has reached the maximum allowed, for example 1 second and 3 pulls, without the nose switch sensor 300i becoming active, an exit condition t6 is satisfied and the feed control logic 500 transitions to a “Feed Fault” state (S5).
Finally, if both of the “feed request” and “feed next” command signals are removed then exit condition t8 will be satisfied and the feed control logic transitions to the “Ready” state (S1), interrupting any feed which might be in progress.
When the state machine 500 is in the “Feed Pause” state (S4), the feed actuator is deactivated, allowing the parts of the rivet setting tool 10 performing the rivet feed (300f) to return to their initial positions. If the feed control logic is disabled when the state machine 500 is in the “Feed Pause” state (S4), an exit condition t10 is satisfied and state machine 500 transitions to the “Feed Off” state (S0). If the actuator has been deactivated for a prescribed period of time, for example 0.25 sec, the exit condition t11 has been satisfied and the state machine 500 transitions to the “Feed Active” state (S2).
When the state machine 500 transitions into the “Feed Fault” state (S5), the fault code corresponding to the feed issue will be set depending on the status of the end of tape sensor 300g, and the state machine 500 will remain in the “Feed Faulted” state (S5) until a fault acknowledgement signal input is received, at which point transition t12 will be satisfied and the feed fault code will be reset to zero prior to transitioning back to the “Feed Off” state (S0).
When the currently active state of the feed system is the “Finished” state (S6), the feed system has either fed a rivet under the punch attached to the nose 300d or timed out during a “feed next” command. In this state the system awaits the removal of the “feed request” and “feed next” commands which satisfies exit condition t14 and causes the state machine 500 to return to the “Ready” state (S1) if the feed system is still enabled, or if the feed control logic is disabled an exit condition t13 is satisfied and the state machine 500 returns to the “Feed Off” state (S0).
As can be seen from
There will now be described, with reference to
In
At step 601, processing is performed to identify one or more second states associated with the industrial machine based on the first state. A second state is a state of the state machine that was active at any point in time before the state machine transitioned to the first state. That is, a second state is a state that the state machine transitioned through to arrive at the first state. For example, referring to the state machine 500 described in
A state time is associated with each of the second states. The state time associated with a second state is the point in time at which the state machine transitioned to the second state. The state time associated with a second state can be obtained by means of a timer associated with the industrial machine. The timer may be a global timer that synchronises all the operations of the industrial machine. That is, the global timer may be the timer that is used to measure time for each aspect of the industrial machine, and allow operations in disparate parts of the system to be compared in time.
After the plurality of second states and a state time associated with each of the second states are identified, the processing passes from step 601 to 602. At step 602, it is determined whether the state machine spent an unexpected amount of time in any of the second states using a state time threshold for, and the state time associated with, the second states. A state time threshold for a second state indicates a time that the industrial machine is expected to spend carrying out a set of actions associated with that second state. As such, where one of the at least one second times is different to an expected state time for that second state this may indicate a fault, or that the performance of the industrial machine is lower than an expected performance. For example, where the at least one second times exceeds the state time threshold for that second state, this may indicate a fault, or that the performance of the industrial machine is lower than an expected performance. It will be appreciated that the time spent by the industrial machine in a second state may be determined as the time period between the state time associated with the second state and a state time associated with the next state to which the industrial machine transitions.
Considering the state machine illustrated in
As described above, however, the number of states and the speed with which an industrial machine transitions between states is such that simply displaying the state transitions as they occur may be insufficient to allow timely identification of a particular fault. This problem is exacerbated by the interfaces that are typically provided for use with industrial machines. For example, in order to ensure that costs are appropriate, industrial machines are generally provided with displays that have a relatively slow refresh rate compared with displays used in other computing devices. As a part of the processing described in
When diagnosing the operation of the machine, the sequence of states and state times can be extracted from the circular buffers 700 (
Tables 1-3 below show times spent in particular states of
It can be seen from the table 1 that the normal feed involved a transition from the Ready state S1 to the Active state S2. The system spent 0.4 s in the Active state S2 before transitioning to the Finished state S6. In contrast, the Slow Feed (table 2) involved a first transition to the Active state S2, followed by a transition to the Pause state S4, and a second transition to the Active state S2 before transitioning to the Finished state S6. The total time spent in the Active state during the Slow Feed example was 1.6 s. Finally, in the Bad Feed example (table 3), the system entered the Active state S2 a total of three times, each for 1 s, before finally transitioning to the Fault state S5, without completing the feed pull.
Referring to
The depicted States and Times
pvalues provide the circular buffers for the current and previous states and associated times, also depicted schematically in
The circular buffers 700 in
An alternative to the history structure discussed above, would be to store the current state number and the time the state had been active into the history buffer at the time a state transition occurred. This may be used, for example, in systems where a global timer is not available, or where simpler handling of the individual state active times is preferred. Both methods provide similar information, although synchronizing the data across multiple state machines or other diagnostic functions may not be as easy if the global timer is not used.
Considering the state machine 500 illustrated in
Thereafter, the determination, at step 601 of
In a portion 800b of the display 800, the currently active state, the requested (‘Next’) state after the currently active state, which will typically be the same as the current state, the state before the currently active state and the state time associated with the currently active state is displayed. If the currently active state of state machine 500 is state S4 then the portion 800b will display the value of “Step” as “S4”, “Next” as “S4”, “S2” or “S0” depending on the whether a state transition was active, “Last” as “S2” and “Timer” as the state time of state S4. In a portion 800c of the display 800, the transition path followed by the state machine to arrive at the currently active state is displayed. When the currently active state of the state machine 500 is state S4, for example, the transition path displayed in the portion 800c may be S0 (Old), S1, S2 and S4 (New).
The display 800, thereby, provides the operator with information regarding an internal state of the industrial machine and a technical condition or an event which is related to the internal state. Any change in the internal state of the state machine is automatically detected and presented to the operator prompting the operator to interact with the system, such as identifying and resolving faults in the system.
For example, the display 800 provides the operator with information regarding the currently active state of a state machine modelling the operations of an industrial machine along with the transition path followed by the state machine to arrive at the currently active state and the state time associated with each of the states in the transition path. By using on the display 800, the operator can identify a state in the transition path of the state machine in which the industrial machine operated for a longer time than expected. As such the operator can diagnose faults in the industrial machine by analysing the actions associated with the state.
Additionally, if the industrial machine is deadlocked in a particular state, the display 800 also allows the operator to force the industrial machine to transition to a different state. For example, the ‘Next’ entry in section 800b of display 800 may be modifiable to force a state jump, to either remove a deadlock within the system or to trigger actions associated with a particular state. That is, for example, if the system is deadlocked in the “Feed Pause” state S4, the operator can force the state machine to transition to the state S2, or state S0. In some instances, the operator can make a decision on which state to force the industrial machine to transition to based on the logic flow diagram of the state machine 800a. While in
Further visualisations of the state transitions may be provided. Determining errors may be facilitated if state transitions are processed to provide a representation 1202 as shown in
The computer 900 further comprises non-volatile storage in the form of, for example, a hard disc drive or a solid state drive 900c. The computer 900 further comprises an I/O interface 900d to which is connected peripheral devices used in connection with the computer 900. More particularly, a display 900e is configured so as to display a graphical representation of the state machine or any output from the computer 900. Input devices are also connected to the I/O interface 900d. Such input devices may include a keyboard 900f and a mouse 900g, or a touchscreen attached to the display 900e, which allow operator interaction with the computer 900. The input devices (900f, 900g and 900e) allow an operator to interact with the system 100. The I/O interface 900d may additionally be connected to one or more sensors of the industrial machine. For example, where the industrial machine is a rivet system, the I/O interface 900d may be connected to a tape position sensor, a rivet presence sensor (such as the sensor 300i), etc.
A network interface 900h allows the computer 900 to be connected to an appropriate computer network so as to receive and transmit data from and to other computing devices. The CPU 900a, volatile memory 900b, permanent memory (Disk/Flash) 900c, I/O interface 900d, and network interface 900h, are connected together by a bus 900i.
It will be appreciated that the arrangement of components depicted in
A significant part of the sequencing of the state machine controlling an industrial machine is influenced by the status of the I/O signals associated with sensors and actuators of the system. Whilst the method for diagnosing an industrial machine has been described with regard to the actions associated with a state machine, it will be appreciated that techniques described herein can be used to diagnose a state machine based on the actions associated with a state machine, the I/O signals associated with the industrial machine, or indeed both.
However, the number of I/O signals received can be large and each I/O signal may persist for only a short duration. As described above, interfaces that are typically provided for use with industrial machines often have a relatively slow refresh rate compared with displays used in other computing devices, and the duration of the signals may be too short to recognize on the display. It is therefore desirable to provide diagnostic tools and methods that will work with existing interfaces and not require replacement with expensive interface hardware.
By way of example of one problem with standard diagnostic tools, if a sensor of an industrial machine provides an I/O signal (e.g. a high signal) for only 10 ms when detecting a condition of interest, and the industrial machine is provided with a display (such as the display 900e) with a screen update rate of 100 ms, then on average only one I/O signal in ten from that sensor might be displayed, and then only for a brief (100 ms) duration which may be too short to detect. As such, an operator may miss signals which could provide advanced warning of faults and which could have allowed the operator to take remedial action before the fault developed or became critical. In some example implementations described herein, a diagnostic system may be configured to monitor, in addition to signals currently provided by a sensor, a state history of the sensor. The diagnostic system may be configured to provide a diagnostic output that allows an operator sufficient time to process events which may be representative of short duration faults and which may be used to aid continued and guided operation and maintenance of the industrial machine.
Within the time period depicted in
A first high signal period 1004a occurs after the refresh 1002a but before the refresh 1002b. The diagnostic information 1006 indicates to the operator the nature of the signal 1004 at the time of the last display refresh operation. At the time of the refresh operations 1002a and 1002b the signal 1004 is low, such that, following the refresh operation 1002b, the diagnostic information 1006 indicates the presence of a low signal. As such, it can be seen that no useful diagnostic is provided by the diagnostic information 1006 to the operator in relation to the high signal 1004a. Given the potentially large number of sensors being monitored, and the speed with which signals are received, it will be appreciated that if the high signal 1004a presaged a fault in the industrial machine, the diagnostic information 1006 would not aid an operator in identifying or diagnosing that fault.
A second high signal period 1004b overlaps the time of refresh 1002c. As such, diagnostic information 1006a is provided to the operator to indicate the high signal 1004b. The diagnostic information 1006a persists until the next refresh 1002d, at which time the signal 1004 is low, such that the diagnostic information 1006 reverts to indicating that the signal 1004 is low. A final high signal 1004c is received after the refresh 1002d but ends before the refresh 1002e. As such, the diagnostic information 1006 provides no information in respect of the high signal 1004c as the single high output 1006a covers both events.
To generate the enhanced diagnostic signal 1008, the diagnostic system is configured to maintain state change information for the signal 1004 for a specified duration of time. On a signal state change (represented by diamonds in
The state change update persists for a predetermined period of time, typically in the order off 1 to 2 seconds, shown as equal to two refresh periods, or 200 ms in
By way of example, with reference to
The processing of
It is assumed for the purposes of the present example that, between the receipt of the high signal 1004a and the high signal 1004b, the processing of step 1106 determines that the predetermined time period has not elapsed, such that processing remains at step 1106. As such, at the time of the refresh operation 1002b, the predetermined time period has yet to elapse, such that the state indicator still indicates that a high signal has been received. The enhanced diagnostic signal is configured to indicate the state of the state indicator such that, on the refresh operation 1002b, a portion 1008a of the enhanced diagnostic signal 1008 is updated to indicate a high signal. For clarity of depiction and distinction with the diagnostic signal 1006a, the part 1008a is shown as a single line (rather than a filled block), although it is to be understood that
As discussed above, the second high signal 1004b temporally coincides with the refresh operation 1002c, such that the second portion of the enhanced diagnostic signal 1008b is updated to reflect the current state (at the time of refresh) of the I/O signal 1004. Additionally, the processing 1102 will determine that the signal 1004b was received and, at step 1104, the state indicator will be updated (or maintained in this case) and the time of the update recorded.
It is assumed for the purposes of the present example that, between the receipt of the high signal 1004b and the high signal 1004c, the processing of step 1106 determines that the predetermined time period has not elapsed, such that processing remains at step 1106. As such, on the next refresh 1002d, the enhanced diagnostic signal still indicates that a high signal was received, but now indicates that, at the time of the refresh 1002d, the I/O signal was low.
It is assumed for the purposes of the present example that, between the receipt of the high signal 1004c and the refresh 1002e, the processing of step 1106 determines that the predetermined time period has elapsed, such that processing passes from step 1106 to 1108 and the state indicator is reset to the default state. As such, at the refresh 1002e, the enhanced diagnostic signal 1008 is updated such that both parts 1008a, 1008b indicate a low value.
It will be appreciated from the above that by recording an indication of changes in the state for predetermined period of time, a diagnostic signal can be provided to an operator that allows the operator to more accurately diagnose current and past states of I/O signals within an industrial machine and, therefore, to more accurately and timely diagnose faults or possible faults within the industrial machine.
The actual I/O signal 1004 may be reconstructed from the diagnostic change of state data, and provided as rebuilt I/O signal 1012, on the user interface. In particular, the diagnostic history may be used to display the signal changes by drawing a number of lines representing the state of the signal. The horizontal coordinate of a line would correspond to the relative position of the time the signal changed compared to the display start (tstart) and end time (tend), and the vertical coordinate would be dependent on the state of the signal during that period. For example, to display the rebuilt I/O signal 1012 shown in
The lamp 1016 may be provided by, for example, one or more bulbs (such as LEDs) or may be part of a user interface generated on a display device such as an LCD display device. Similarly, while the above is described with reference to the system 900, it will be appreciated that the processing described with reference to
To minimize the processing load imposed on the system when monitoring a large number of I/O signals, in some implementations, the data is not inspected on a signal by signal basis, but inspected for a group of signals in parallel, as shown (for an example of a 4-bit value) in
To enable for fast and efficient retrieval and use of diagnostic data, the combined I/O signal value may be stored in a history ring buffer, as shown in
To minimize the amount of computation needed to enable display of a diagnostic signal that can be viewed in real-time, a diagnostic output signal may be stored within diagnostic history buffer. For example, the diagnostic history buffer may comprise a further First-In-First-Out data structure (diagnostic FIFO). The diagnostic FIFO may be updated in parallel with the updating of the I/O signal change buffer. A pointer into the diagnostic FIFO determines a current diagnostic output (i.e. the current “slot” of the diagnostic FIFO is output), with the pointer incrementing after a predetermined “diagnostic tick” time period (and wrapping after incrementing through each of the slots). The diagnostic tick may be determined based upon the diagnostic HMI display or refresh period (commonly, e.g., 2 seconds) and the number of slots in the diagnostic FIFO. For example, the diagnostic tick may be the sum of the diagnostic display period and the number of slots, for example with a 2 s diagnostic update and four FIFO slots, each slot would be displayed for 0.5 s.
Referring again to the example depicted in
Using this method, the diagnostic display for 32 (or more) signals can be performed using a four slot diagnostic FIFO array, a pointer variable and a single timer, while imposing a relatively light load on the system (particularly given that the diagnostic value will have been previously generated to determine whether a new historical value (and associated time) is required to be stored into the I/O change buffer.
At time (4), a further diagnostic tick occurs, causing slot one to be zeroed, and the pointer incremented to slot two. The diagnostic output remains ‘0100’. At time (5), a change in I/O signal #1 causes the bit corresponding to I/O signal #1 to be set high, and the newly set bit is OR'd into all slots of the diagnostic FIFO. Slots zero and one therefore take the value ‘0010’, while slots two and three have the value ‘0110’. The diagnostic output is therefore ‘0110’. At time (6), a change in I/O signal #3 results in the bit corresponding to I/O signal #3 to be set high and the newly set bit OR'd into each slot of the FIFO. Slots zero and one therefore store ‘1010’ while slots two and three store ‘1110’. The diagnostic output is therefore ‘1110’.
At time (7) a diagnostic tick zeroes currently indexed slot two, and increments the pointer to slot three. The diagnostic output therefore remains ‘1110’. At time (8), a diagnostic tick zeroes the slot three, with the pointer wrapping back to slot zero. The diagnostic output is therefore now ‘1010’. At time (9) a further diagnostic tick zeroes slot zero, and increments the pointer to slot one, such that the diagnostic output remains ‘1010’. At time 10, a diagnostic tick zeroes slot one and increments the pointer to slot two. The diagnostic output (and indeed the value in all of the slots of the diagnostic FIFO) is now ‘0000’.
Using the historical change data stored for the various state machines, and I/O within the system being diagnosed, it is possible to monitor the operation of the machine to determine via comparison to data extracted when the system was running at the optimal performance, where variations within the process were occurring.
Referring to
In some example arrangements, occurrence of a fault condition may automatically trigger generation of a copy of the contents of all the relevant state machine and I/O signal data histories, together with their corresponding time stamps each time a fault condition occurred. In this way, a maximum amount of the status of the system in the time just prior to the fault occurring is able to be captured for analysis. Referring again to
The techniques described herein further enable the overlay of signals from different time periods to more easily highlight the changes in the timing, as illustrated in
Visualizing the operational changes in parts of the system over time would also allow the performance of non-critical components to be evaluated more easily, and to extend the PM duration or replacement period based on the actual performance. Most parts operating within their nominal performance limits do not need excessive maintenance or other adjustments which may lead, to reduced performance, but conversely, components which have not met their PM levels which are showing signs of performance degradation within the system may benefit from being adjusted or replaced prior to their original limits to return the system as a whole to a more optimum performance level. Once maintenance has been performed on a component of the system the associated signals could be compared with both the initially specified performance, as well as the performance level just prior to the maintenance was undertaken. Optimizing the maintenance levels of a system will ensure the system as a whole is performing at the required levels with correct amount of maintenance, and also ensure the optimum installed life of the sub-components of the system.
Having now described some illustrative implementations, it is apparent that the foregoing is illustrative and not limiting, having been presented by way of example. In particular, although many of the examples presented herein involve specific combinations of method acts or system elements, those acts and those elements may be combined in other ways to accomplish the same objectives. Acts, elements and features discussed in connection with one implementation are not intended to be excluded from a similar role in other implementations or implementations.
Any references to implementations or elements or acts of the systems and methods herein referred to in the singular may also embrace implementations including a plurality of these elements, and any references in plural to any implementation or element or act herein may also embrace implementations including only a single element. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, their components, acts, or elements to single or plural configurations. References to any act or element being based on any information, act or element may include implementations where the act or element is based at least in part on any information, act, or element.
Where technical features in the drawings, detailed description or any claim are followed by reference signs, the reference signs have been included to increase the intelligibility of the drawings, detailed description, and claims. Accordingly, neither the reference signs nor their absence have any limiting effect on the scope of any claim elements.
The foregoing implementations are illustrative rather than limiting of the described systems and methods. Scope of the systems and methods described herein is thus indicated by the appended claims, rather than the foregoing description.
Number | Date | Country | Kind |
---|---|---|---|
2003015.1 | Mar 2020 | GB | national |