Riveting Machine
The method uses a state machine model with a circular buffer and global timer to diagnose faults in industrial machines by identifying states and displaying diagnostic information, addressing the challenge of detecting faults in complex systems like riveting systems.
Patent Information
- Application Number
- JP2021032703
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-03-03
- Filing Date
- 2021-03-02
- Publication Date
- 2025-10-29
- Estimated Expiration
- 2041-03-02
AI Technical Summary
Industrial machines, such as riveting systems, experience faults that are difficult to detect due to gradual, imperceptible changes in input and output signals, making it challenging to determine the current state of operation or identify fault states.
A method for diagnosing faults in industrial machines by identifying states and state times using a state machine model, generating diagnostic information, and displaying it on a user interface, including a circular buffer for maintaining state history and using a global timer for synchronization.
Enables operators to accurately determine the current state and diagnose faults in complex industrial machines by providing detailed diagnostic information, even when state transitions occur rapidly.
Smart Images

Figure 0007761996000004 
Figure 0007761996000005 
Figure 0007761996000006
Abstract
Description
[Technical Field]
[0001] The present invention relates to methods and apparatus for the operation, diagnosis and troubleshooting of industrial machinery, and in particular, but not exclusively, to methods and apparatus for diagnosing and troubleshooting faults in riveting systems. [Background technology]
[0002] During operation, industrial machines may experience faults that are difficult to detect because the system relies on system inputs and outputs to determine the exact time to transition through the machine's operational sequence, and the timing or presence of these signals varies over time with gradual, imperceptible changes that ultimately lead to a fault condition. For example, during a transition from one state to another in the industrial machine's operational sequence, the industrial machine may provide corresponding input and output signals. In certain circumstances, if an error occurs during the operation of the industrial machine, the input and output signals provided by the industrial machine may not be at expected values or may not be provided within the expected time, indicating the presence of a fault. However, industrial machines are often large and complex, with many possible states and corresponding faults. This can make it difficult for industrial machine operators to determine in which state the machine is currently operating or in which state a fault has occurred. Therefore, there is a need for a method and apparatus for diagnosing and resolving faults in industrial machines, such as riveting systems.
[0003] It is an object of one or more of the embodiments described herein to obviate or mitigate at least one of the problems mentioned above. Summary of the Invention
[0004] According to a first embodiment described herein, there is provided a method for diagnosing a fault in an industrial machine, the method including: 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 based on the at least one second state and the respective state time in response to determining that the industrial machine has spent a period of time in at least one of the at least one second state that is different from a predetermined period; generating diagnostic information including an indication of one of the at least one second state in response to determining the fault indication; and outputting the diagnostic information at a user interface of the industrial machine.
[0005] Thus, according to a first aspect of the present invention, diagnostic information can be generated based on information associated with at least one second state of a state machine that models the operation of the industrial machine. The at least one second state may be a currently active state of the state machine. Based on the diagnostic information output at a user interface of the industrial machine, an operator may determine in which state the machine is currently operating or in which state a fault has occurred.
[0006] The method may further include maintaining a state history and associated state times during operation of the industrial machine, and the step of identifying a second state and a state time associated with the second state includes identifying the second state and the associated state time from the state history and associated state times. The state history and associated state times may be stored in a circular buffer. The circular buffer may include a pointer to a memory location storing a currently active state of the industrial machine. It will be appreciated that the use of a circular buffer can further improve the operating speed of the method related to the first aspect of the present invention. The state history and associated state times may also be stored in a buffer of any fixed size.
[0007] The method may further include copying the contents of a predetermined number of data entries of the state history and associated state times in response to determining a fault indicator condition. For example, the predetermined number may be all of the current entries. In this way, subsequent overwriting of entries (e.g., if 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. In fact, it will be appreciated that with some industrial machines, state transitions may occur so rapidly that relevant information may be lost from the state history data shortly after a fault is detected.
[0008] The state time associated with each of the at least one second state may be based on the value of a global timer at the time of the transition to the second state, the global timer being used by the industrial machine to synchronize all operations of the industrial machine. By basing the state time on the value of the global timer, the state history can be cross-checked with the I / O signals, providing a further mechanism for enabling diagnosis of faults within the industrial machine.
[0009] The user interface may further include generating a display of a state history of the industrial machine, the state history including a current state of the industrial machine, states that become active after the current state, states that were active before the current state, and state times associated with the current state.
[0010] The method may further include displaying the user interface on a human-machine interface of the industrial machine. Industrial machines often have human-machine interfaces that can display only a limited amount of information and that rarely refresh the display. The user interface generated in accordance with the techniques described herein is specifically adapted to the technical limitations of human-machine interfaces that typically comprise industrial machines.
[0011] The user interface may further include a display of the transition path taken by the industrial machine to reach the current state.
[0012] The method may further include providing a state forcing user interface element in the user interface, where selection of the state forcing user interface element transitions the industrial machine to a predetermined state. For example, the state forcing user interface may force the industrial machine to transition to a preset state (e.g., a start state or an initial state), or may force the industrial machine to transition to a state selected by an operator. Forcing the industrial machine to transition to a particular state may cause the industrial machine to perform an action associated with that state.
[0013] The method may further include continuing to maintain the state history and associated state times during operation of the industrial machine after selection of the state forcing user interface element. This feature allows for continuous diagnostic operations to be performed on the industrial machine even after an operator-forced operation. In this manner, an operator may force a particular state on the industrial machine (e.g., a state suspected of being the source of a fault condition) and continue to monitor the operation of the industrial machine.
[0014] The step of generating a diagnostic output may further include processing the second state and state time information to generate an output indicative of the timing of state transitions. The method may further include providing a time calculation user interface element configured to display with the output indicative of the timing of state transitions, the time calculation user interface configured to allow an operator to select two positions within the output indicative of the timing of state transitions and output a duration between the two selected positions. The time calculation user interface element allows a user to easily determine the time spent in the state.
[0015] The method may further include identifying a change in an I / O signal associated with the industrial machine; assigning a value to a status indicator associated with the I / O signal indicative of the change, the assignment configured to last for a predetermined period of time; generating diagnostic information including an indication of the current value of the I / O signal and the current value of the status indicator; and outputting a diagnostic output at a user interface of the industrial machine based on the diagnostic information.
[0016] According to a second embodiment described herein, a method for diagnosing faults in an industrial machine is provided. The method includes identifying a change in an I / O signal associated with the industrial machine; assigning a value indicative of the change to a status indicator associated with the I / O signal, the assignment configured to persist for a predetermined period of time; generating diagnostic information including a representation of the current value of the I / O signal and the current value of the status indicator; and outputting a diagnostic output based on the diagnostic information on a user interface of the industrial machine. Updating the status indicator with a value configured to persist for a predetermined period of time can indicate the change in the I / O signal on a type of human-machine interface often provided with industrial machines. In particular, the state change can be displayed on a human-machine interface having a relatively slow refresh rate. The diagnostic output can be the diagnostic information or an output based on the diagnostic information.
[0017] The step of generating the diagnostic information may be performed at each refresh interval of a human-machine interface of the industrial machine. The predetermined period may be longer than the refresh rate of the human-machine interface of the industrial machine. For example, the predetermined period may be equal to or greater than two refresh periods of the human-machine interface of the industrial machine.
[0018] The method may further include resetting a status indicator associated with the I / O signal after a predetermined period of time has elapsed. Outputting the diagnostic information at a user interface of the industrial machine may further include outputting the diagnostic information using an indicator having four operating modes, the four operating modes including a first mode indicating the I / O signal is low and has not received a high signal within the past predetermined period of time, a second mode indicating the I / O signal is low but a change of state has occurred within the past predetermined period of time, a third mode indicating the I / O signal is high and a change of state has occurred within the past predetermined period of time, and a fourth mode indicating the I / O signal is high and has not changed within the past predetermined period of time.
[0019] The I / O signal may be one of a plurality of I / O signals, the status indicator associated with the I / O signal may be associated with the plurality of I / O signals, and the diagnostic information may be indicative of a change to any of the plurality of I / O signals.
[0020] The method includes maintaining a diagnostic signal history buffer for the plurality of I / O signals, the diagnostic signal history buffer further configured to provide a historical indication of changes in any of the plurality of I / O signals.
[0021] The diagnostic signal history buffer may include a plurality of slots, each slot including an entry for each of a plurality of I / O signals, each of the slots representing the state of the plurality of I / O signals at a different point in time in the past, and the diagnostic output may be based on a slot in the diagnostic signal history buffer referenced by an index, the index being updated at a predetermined frequency to reference the next slot in the diagnostic signal history buffer.
[0022] The method may further include damping an indication of a change to the plurality of I / O signals stored in at least one of the slots at a predetermined frequency, and damping an indication of a change to the plurality of I / O signals stored in the slot may include resetting a value stored in the slot.
[0023] The diagnostic information may include a bit for each of the plurality of I / O signals, and each slot of the diagnostic signal history buffer may include a bit for each of the plurality of I / O signals, and the method may further include, in response to generating diagnostic information indicating a change to at least one of the plurality of I / O signals, updating a 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.
[0024] The predetermined frequency may be based on the sum of the number of slots in the diagnostic signal history buffer and the refresh period of the human machine interface of the industrial machine.
[0025] The step of assigning a value indicative of the change to the status indicator may further include storing a time associated with the change. Storing the time associated with the change may further include recording the time indicated by the global timer at the time of the change.
[0026] The industrial machine may be a riveting machine, an adhesive dispensing machine or a flow drill system.
[0027] According to a third embodiment described herein, there is provided a system for diagnosing faults in industrial machinery, the system may further comprise a controller and a memory storing computer readable instructions which may be configured to cause the controller to perform a method according to the first or second aspect of the present invention.
[0028] According to a fourth embodiment described herein, there is provided an industrial machine, which may include a system according to the embodiments described above and elsewhere herein.
[0029] Where features are described above in connection with one exemplary embodiment, it will be understood that such features may, where appropriate, be applied to other exemplary embodiments. Indeed, any of the features described above and elsewhere herein may be combined in any operable combination, and such combinations are expressly contemplated in this disclosure.
[0030] To the extent appropriate, the methods described herein may be implemented by suitable computer programs, such that a computer program is provided comprising processor-readable instructions configured to cause a processor to carry out such control methods. Such a computer program may be carried on any suitable carrier medium, which may be tangible or non-tangible.
[0031] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: [Brief explanation of the drawings]
[0032] [Figure 1] FIG. 1 is a schematic diagram of a state machine. [Figure 2] FIG. 2 is a schematic side view of the rivet system. [Figure 3] FIG. 3 shows a schematic of the rivet setting tool 10, the rivet tape, and the rivet tape reel that supplies the sprockets to the rivet system. [Figure 4A]FIG. 4A shows a schematic representation of a tape reel. [Figure 4B] FIG. 4B shows a schematic of a rivet setting tool supply subassembly 300 including a tape cutter assembly and a rivet sensor. [Figure 5] FIG. 5 is a schematic diagram of a state machine that models the sprocket feed operation of a rivet setting tool. [Figure 6] FIG. 6 is a flowchart showing a process for diagnosing an industrial machine. [Figure 7] FIG. 7 is a schematic diagram of an example data structure that may be used to record states associated with an industrial machine and the time the industrial machine operates in each of the states. [Figure 8] FIG. 8 is a schematic diagram of an improved diagnostic display that may be provided to an operator of an industrial machine. [Figure 8A] FIG. 8A is a schematic diagram of an improved diagnostic display that may be provided to an operator of an industrial machine. [Figure 9] FIG. 9 is a schematic diagram of a diagnostic system for generating and providing diagnostic information for the continued operation and maintenance of industrial machinery such as the riveting system shown in FIG. [Figure 10] FIG. 10 is a diagram of improved diagnostic information that may be generated by the diagnostic system of FIG. [Figure 11] FIG. 11 is a flowchart illustrating an exemplary process that may be performed to maintain I / O signal history for diagnostic information generation. [Figure 12] FIG. 12 is a schematic diagram of a diagnostic output that may be provided to an operator of an industrial machine. [Figure 13] FIG. 13 is a schematic diagram of a diagnostic output that may be provided to an operator of an industrial machine. [Figure 14] FIG. 14 is a schematic diagram of a diagnostic output that may be provided to an operator of an industrial machine. [Figure 15] FIG. 15 is a schematic diagram of an exemplary data structure that may be used to record multiple changes to I / O signals associated with industrial machinery. [Figure 16] FIG. 16 is a schematic diagram illustrating how the data stored in some of the data structures depicted in FIG. 15 may change during operation of the techniques described herein. [Figure 17] FIG. 17 is a schematic diagram of a diagnostic output that may be provided to an operator of an industrial machine. [Figure 18] FIG. 18 is a schematic diagram of a diagnostic output that may be provided to an operator of an industrial machine. DETAILED DESCRIPTION OF THE INVENTION
[0033] Referring to FIG. 1, an example of an exemplary state machine that may be used in connection with the techniques described herein is shown. Generally, a state machine is a logical construct that includes several phases in an operational sequence called "states." A state machine has an initial state (S0 in FIG. 1) that is active when the operational logic is initiated, along with several additional states (S1-S5 in FIG. 1) that can become active when required transition conditions (t1-t9 in FIG. 1) become true. Transitions are logical conditions composed of control inputs consisting of timing signals, input signals, and output signals that can be prioritized by the developer to attempt to traverse the sequence in an optimal path for any given set of operational conditions. A state machine can be in any one of a set number of states, depending on the previous state and the current values of the control inputs. During operation, a state machine transitions from an initial or current state to one or more different states in a specified order when the conditions defining the transitions are met.
[0034] The exemplary state machine 100 includes six states, represented by values S0 through S5. Each state is linked by a transition, such that each transition has a source (starting state) and a destination (ending state). A state is associated with each transition, such that if the condition evaluates to "true" (i.e., the condition is met), the state machine 100 transitions from the source state to the destination state associated with the transition, and typically stops evaluating other transitions to prioritize the machine's sequence. This can be done, for example, by setting a condition within each state that there are no higher priority transitions active, or by skipping logic that evaluated lower priority transitions when the condition of a higher priority transition is met.
[0035] In the exemplary state machine 100, state S0 is linked to states S1, S2, and S3 by conditions t1, t2, and t3, respectively, such that the execution of any one of these conditions causes the state machine 100 to transition from S0 to one of states S1, S2, or S3. Typically, state transitions are prioritized so that if two or more transitions are simultaneously active, one transition takes 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 transition condition t9.
[0036] After a state transition, state machine 100 processes all entry actions [E] associated with the newly active state before the state's normal logic is evaluated. State machine 100 then continues to operate in the currently active state, executing any actions specified for the state, until a valid transition (t) condition becomes active. This causes any exit actions [X] of the current state to be executed before transitioning to the next state in the sequence, the destination state. When a state is inactive, no code or transition logic associated with that state is executed.
[0037] Including a start action E and / or an end action X within a state ensures that a specific set of actions may be executed at the entry and exit of a state regardless of the transition path taken by the state machine; this is useful for initializing data used by a newly activated state and for cleaning up outstanding operations before transitioning within a state sequence.
[0038] When modeling industrial machinery, the states of a state machine correspond to the steps the industrial machine takes to perform its operation. Transitions from one state to another occur based on input signals provided to the industrial machine, time, or a combination of both. For example, one or more state machines may be used in a riveting system to model the operation of motion and feed logic and ensure the system performs the desired function in response to appropriate input signals.
[0039] The outputs from industrial machinery depend on the currently active state and the logic operating in that state, and typically the outputs only change when transitioning between states. In some situations, when a fault occurs, the inputs to the state machine may be incorrect, thus preventing the state machine from transitioning correctly. This, in turn, causes the output signals provided by the industrial machinery to deviate from expected values or not be provided within the expected time (or at all).
[0040] While state machines may enable the modeling of complex industrial machines, such as rivet systems, such state machines may be large and complex, making it difficult for users of the state machines to understand their operation and, therefore, the operation of the industrial machines. As a result, it is often difficult to identify errors or failures in industrial machines modeled by complex state machines. Therefore, there is a need for a method and apparatus for diagnosing and resolving failures in industrial machines, such as rivet systems, whose operation is modeled by complex state machines.
[0041] To model the behavior of industrial machinery, a state machine such as that shown in Figure 1 can be used. Generally, when a state machine is used to model the behavior of an industrial machine, the output produced upon execution of the operation associated with each state is known in advance. If the output produced by the state machine upon execution of the operation associated with the currently active state of the state machine differs from the expected output, if there is a delay in producing the output, or if no output is produced, this indicates a malfunction in the industrial machine whose behavior is modeled by the state machine.
[0042] In complex industrial machines, such as riveting systems, the state machine that models the operation of the industrial machine may include, for example, approximately 256 or more states. As a result, it can be difficult for an operator to understand the operation of the state machine for troubleshooting purposes. In such cases, it would be useful for the operator to have access to information that would allow the operator to diagnose and resolve faults in the industrial machine based on the currently active states of the state machine.
[0043] The technology described herein provides a method and apparatus for diagnosing and resolving faults in industrial machinery using a state machine that models the operation of the industrial machinery based on information associated with the currently active state of the state machine. An exemplary configuration is described in further detail with reference to Figures 2-8 using the example of a riveting system and a sprocket feed operation performed by the riveting system.
[0044] 2 shows a rivet setting tool 10 with a rivet setting actuator 15 mounted on the upper arm of a conventional C-frame 200 above a rivet upsetting die 12 supported on the lower arm of the C-frame 200. Rivets are inserted by the tool 10 into a workpiece W supported above the die 12, as is well known in the art. The C-frame 200 is mounted on a robotic manipulator (not shown) so that the tool 10 can be moved by the robot toward and away from the workpiece W as needed. A feeding device (not shown) near the C-frame 200 is designed to feed rivets R from a bulk source to the setting tool 10 in a predetermined and controllable manner.
[0045] The set tool 10 comprises a cylindrical housing containing a reciprocating plunger that is driven in translation relative to the housing by hydraulic, pneumatic, or electric drive. The housing has a terminal nose portion 14 with an annular surface for contacting the workpiece W on which a joint is to be formed, and the plunger terminates in a punch (not shown) that reciprocates through a passageway (best seen in FIG. 3) extending through the nose. To insert a rivet into the workpiece W, the plunger is driven so that the punch descends through the passageway extending beyond the nose 14 and contacts a rivet fed into the end of the passageway in the nose 14. Continued application of force drives the punch through the nose 14 so that the rivet is inserted into the workpiece W.
[0046] The operation of the rivet delivery system of the rivet setting tool 10 can generally be modeled by a state machine, such as state machine 100 shown in FIG.
[0047] FIG. 3 shows a perspective view of a rivet supply tool 300 (which may also be referred to as a rivet insertion tool) with a rivet tape 300a. Rivets are supplied to the rivet supply tool 300 by the rivet tape 300a, along which rivets 300b are placed. The rivet tape 300a is wound on a reel of a spool carrier 300c and fed from the reel through a nose assembly 300d (i.e., corresponding to nose 14 in FIG. 2) of the rivet setting tool 300. The nose assembly 300d is typically provided at one end of the rivet setting tool and includes a punch (not shown). The punch moves relative to the nose assembly 300d, and depending on the position of the punch, the nose assembly is in a rest position or a retracted position. When the punch is extended toward the workpiece, the nose assembly is in the rest position. When the punch is not extended toward the workpiece, leaving a space between the punch and the workpiece for the rivet to be placed, the nose assembly is in the retracted position.
[0048] Figures 4A and 4B illustrate the feed path of a tape-fed rivet setting tool. Figure 4A shows a cross section of tape 300a wound on a spool carrier 300c, with the rivet tape carrying rivets 300b passing through tube 300e. The rivet tape 300a is fed through tube 300e to the rivet setting tool 10. The rivet tape 300a is drawn through the feed subsystem 300 (not shown) of the rivet setting tool by a sprocket feed actuator 300f (e.g., a pneumatic motor with a sprocket wheel). As shown in Figure 4A, tube 300e may optionally include a sensor 300g for sensing the end of the rivet tape. In Figure 4B, a perspective view of the feed subsystem of the rivet setting tool 10 is shown, including a tape cutter assembly 300h and a rivet sensor 300i.
[0049] Feed motor 300f pulls rivet tape 300a through nose assembly 300d until a rivet enters a rivet receiver (not shown), where it is detected by sensor 300i, shown in FIG. 4B. Feed motor 300f then stops, and an actuator (not shown) on rivet-setting tool 10 (not shown) drives the rivet into the workpiece. Feed motor 300f then moves again, for example, until it detects the next rivet. Sensor 300g also detects when the spool reaches its end with 30-100 rivets remaining, depending on the application, allowing the operator of rivet-setting tool 10 to schedule a changeout when not actively riveting parts. As tape 300a is fed through nose assembly 300d, used tape 300j is either reeled into the fastening system's waste receptacle or cut to a manageable length by pneumatic tape cutter assembly 300h, shown in FIG. 4B, which includes a tape cutter blade (not shown). It will be appreciated that in some rivet setting tools, a pneumatic spool or spring spool arrangement with a simple spool carrier may be used to feed the rivet through spool carrier 300c.
[0050] 5 shows a schematic diagram of a state machine 500 suitable for modeling the tape feed control logic that drives the rivet feed operation of the rivet setting tool 10. Initially, when the rivet feed operation of the rivet setting tool is disabled, the feed control logic is in an inactive state and the state machine 500 is in a default state, "feed off" (S0). An exit condition t1 associated with the feed off state S0 is met when the feed operation of the rivet setting tool 10 is enabled (e.g., by removing any machine stop inputs and enabling the feed control logic). When t1 is met, the state machine 500 transitions from the feed off state S0 to the "ready" state (S1).
[0051] If an external stop input is detected while in the "Ready" state (S1), the condition at t2 becomes active and the system returns to the "Feed Off" state (S0). However, if the machine stop input remains inactive, the rivet feed request is not active, and the tape cut request is active, the conditions at exit condition t4 are met and the system 500 transitions to the "Tape Cut" state (S3).
[0052] If the active state of the state machine 500 is the "Cut Tape" state (S3), tape cutting is initiated and the used rivet tape 300j is cut by the tape cutter blade of the tape cutter assembly 300h. Once the rivet tape 300j is cut, the termination condition t9 associated with the Cut Tape state (S3) is met and the state machine 500 transitions to the "Return Cut" state (S7).
[0053] When the "Cut Back" state (S7) is activated, the tape cutter blade is retracted, clearing the feed path for used tape 300j. After the tape cutter blade is retracted, the feed control logic of the rivet setting tool 10 waits for the tape cut request signal to disappear, at which point exit condition t15 is activated and the state machine 500 transitions to the "Ready" state (S1). While in the "Tape Cut" state (S3) or the "Cut Back" state (S7), the system does not respond to rivet feed requests, eliminating the possibility of sprocket tape movement during the tape cutting process and improving feed reliability.
[0054] In the "Ready" state (S1), if a stop condition or tape cut request is not active when the supply control logic receives a "supply request" or "next supply" command signal, an exit condition t3 becomes active and the state machine 500 transitions to the "supply active" state (S2). In the transition from the "Ready" state (S1) to the "supply active" state (S2), the supply pull counter is reset to zero via an exit operation.
[0055] Upon entering the "Feed Active" state (S2), the feed pull counter is incremented via a start operation, and while the feed control logic is in the "Feed Active" state (S2), the feed actuator 300f is activated, pulling the rivet tape 300a into the nose 300d. There are four exit conditions associated with the "Feed Active" state (S2):
[0056] First, if the nose switch sensor 300i is active for a predetermined period of time selected depending on the tool movement condition (stationary or retracting), or if the maximum number of feed pulls is met due to a "next feed" command, an exit condition t7 is activated and the state machine 500 transitions to the "complete" state (S6). For example, the feed control logic may transition to the "complete" state (S6) when the nose switch sensor 300i is active for the required duration based on the tool movement (typically 0.125 seconds when stationary or 0.1 seconds when retracting).
[0057] Second, if the supply actuator 300f is active for a predetermined time without the nose switch sensor 300i becoming active and the number of supply pull cycles is less than the maximum allowed, e.g., 1 second and 3 pulls, then the exit condition t5 is met and the supply control logic 500 transitions to the "Supply Paused" state (S4).
[0058] Third, if the supply actuator 300f is active for a predetermined time without the nose switch sensor 300i being active and the number of supply pull cycles reaches a maximum value, e.g., 1 second and 3 pulls, then an exit condition t6 is met and the supply control logic 500 transitions to the "supply failure" state (S5).
[0059] Finally, when both the "supply request" and "next supply" command signals are absent, the termination condition t8 is met and the supply control logic transitions to the "ready" state (S1) and any supply that may be in progress is interrupted.
[0060] When the state machine 500 is in the "Feed Paused" state (S4), the feed actuator becomes inactive and the parts of the rivet setting tool 10 that feed the rivet (300f) return to their initial positions. If the feed control logic is disabled while the state machine 500 is in the "Feed Paused" state (S4), exit condition t10 is met and the state machine 500 transitions to the "Feed Off" state (S0). If the actuator has been inactive for a predetermined period of time, e.g., 0.25 seconds, exit condition t11 is met and the state machine 500 transitions to the "Feed Active" state (S2).
[0061] When the state machine 500 transitions to the "Supply Fault" state (S5), a fault code corresponding to the supply problem is set depending on the state of the end of the tape sensor 300g, and the state machine 500 remains in the "Supply Fault" state (S5) until a fault acknowledge signal input is received, at which point transition t12 is satisfied and the supply fault code is reset to zero before transitioning back to the "Supply Off" state (S0).
[0062] If the currently active state of the feed system is the "Done" state (S6), then the feed system is either feeding a rivet under the punch attached to nose 300d or has timed out on a "Next Feed" command. In this state, the system waits for there to be no "Feed Request" or "Next Feed" commands that satisfy exit condition t14, and if the feed system is still enabled, state machine 500 returns to the "Ready" state (S1), or if the feed control logic is disabled, exit condition t13 is met and state machine 500 returns to the "Feed Off" state (S0).
[0063] As can be seen from FIG. 5 , the state machine 500 is prepared to handle a fault and notify an operator if the cause of the fault is known in advance, such as when the rivet pull exceeds a predetermined limit. However, if an unknown issue degrades the performance of the rivet setting tool before a fault occurs, the fault may be due to any one of the operations performed by the industrial machine, making it difficult for an operator to use the state machine to identify the fault in the operation of the industrial machine. In such a situation, to identify the fault and diagnose the industrial machine, an operator may need to understand the operation of the industrial machine and the actions associated with each state in the transition path by traversing every possible transition path in a state machine that models the operation of the industrial machine. For a complex industrial machine such as the rivet setting tool 10 shown in FIGS. 2 and 3 , there may be hundreds of transition paths, making it difficult for an operator to properly diagnose the operation of the industrial machine.
[0064] Referring now to FIG. 6, a method for diagnosing an industrial machine, such as the rivet setting tool shown in FIG. 3, based on information relating to the current and previous active states of a state machine that models the operation of the industrial machine shown in FIG. 5 will be described.
[0065] Referring now to FIG. 6, a flow chart illustrating a process for performing diagnostics on an industrial machine is shown. In step 600, a first state associated with the industrial machine is identified. The identified first state is a currently active state of a state machine that models the functionality of the industrial machine. For example, with reference to state machine 500 shown in FIG. 5, if the currently active state is a "supply active" state S2, then state S2 would be a first state associated with the industrial machine, such as a rivet setting tool. Once a first state associated with the industrial machine has been identified, processing proceeds from step 600 to step 601, where further processing is performed to obtain information associated with the first state.
[0066] In step 601, processing is performed to identify one or more second states associated with the industrial machine based on the first state. The second states are states of the state machine that were active at any time before the state machine transitioned to the first state. That is, the second states are states to which the state machine transitions before reaching the first state. For example, with reference to state machine 500 described in FIG. 5, if the "Supply Active" state S2 is the currently active state, the second state may be either the "Ready" state S1 or the "Supply Paused" state S4, depending on the transition path taken by state machine 500 to reach the "Ready" state S1.
[0067] A state time is associated with each second state. The state time associated with a second state is the time when the state machine transitions to the second state. The state time associated with a second state can be obtained by a timer associated with the industrial machine. The timer can be a global timer that synchronizes all operations of the industrial machine. That is, the global timer can be a timer used to measure time for each aspect of the industrial machine and allow the operation of different parts of the system to be compared in time.
[0068] After the plurality of second states and the state times associated with each second state have been identified, processing proceeds from step 601 to step 602. In step 602, a state time threshold for the second state and the state times associated with the second state are used to determine whether the state machine spent an unexpected amount of time in any of the second states. The state time threshold for the second state indicates the amount of time the industrial machine is expected to spend performing the set of operations associated with that second state. Thus, if one of the at least one second time differs from the expected state time for that second state, this may indicate a fault or lower than expected performance of the industrial machine. For example, if at least one second time exceeds the state time threshold for that second state, this may indicate a fault or lower than expected performance of the industrial machine. It will be appreciated that the time the industrial machine spends in a second state may be determined as the period of time between the state time associated with the second state and the state time associated with the next state to which the industrial machine transitions.
[0069] Considering the state machine shown in FIG. 5, the complete feed process of the rivet setting tool 10 is determined by several state transitions between leaving the ready state S1 and entering the completed state S6. If the global time from the ready state S1 to entering the feed active state S2 is tm1 and the global time to enter the completed state S6 is tm2, then the duration that the feed process was active can be determined to be (tm2 - tm1). If a time threshold associated with the feed process is th1 and (tm2 - tm1) exceeds th1, then it can be determined that the feed control logic of the rivet setting tool 10 is taking longer than a predetermined amount of time to perform a rivet feed operation, and therefore the system may be faulty. Consequently, the timing associated with the state machine of FIG. 5 can be analyzed to identify faults in the operation of the rivet setting tool 10.
[0070] However, as discussed above, the number of states and the rate at which industrial machines transition between states means that simply displaying state transitions as they occur may not be sufficient to identify a specific fault in a timely manner. This problem is exacerbated by interfaces typically provided for use with industrial machines. For example, to ensure cost affordability, industrial machines generally include displays with relatively slow refresh rates compared to displays used in other computing devices. As part of the process described in FIG. 6, a second state and associated state time may also be stored. Optionally, a first state and associated state time may also be stored. In some embodiments, a circular buffer provides a particularly useful mechanism for storing state times and multiple states to enable diagnostics of the industrial machine.
[0071] In diagnosing the operation of the machine, a sequence of states and state times can be extracted from a circular buffer 700 (FIG. 7) in the structure of the state machine corresponding to a latest state change pointer 701 .
[0072] Tables 1-3 below show the time spent in specific states in Figure 5 during the "Normal" delivery, "Slow" delivery, and "Fault" delivery processes. As noted above, each state transition is recorded along with the time that the state became active. Therefore, the duration that a particular state has been active can be calculated by subtracting the time that state was entered from the time the next state was entered. By subtracting the most recent state start time from the current global timer value, it can be determined how long the current state has been active. [Table 1] [Table 2] [Table 3]
[0073] It can be seen in Table 1 that a normal supply involves a transition from the ready state S1 to the active state S2. The system spent 0.4 seconds in the active state S2 before transitioning to the completed state S6. In contrast, the slow supply (Table 2) involved an initial transition to the active state S2, followed by a transition to the paused state S4, and then a second transition to the active state S2 before transitioning to the completed state S6. The total time spent in the active state during the slow supply example was 1.6 seconds. Finally, in the fault supply example (Table 3), the system entered the active state S2 three times, one second each, without completing the supply pull, and finally transitioned to the fault state S5.
[0074] Referring to FIG. 7, for each state machine requiring improved diagnostics, a data structure may be stored that may include the following information:
[0075] Step - This value represents the current state.
[0076] Next - This value is set before calling the state machine handler function to request a transition from one state to another. This updates the step, sequence, and last variables as well as resetting timers, storing the new state and global transition times in the history buffer, and updating the history pointer. This value is assigned a value based on the control logic whenever a transition condition occurs (such as transitions t1 through t15 in state machine 500), advancing the state machine to the next state in its operation.
[0077] Force - As explained below, the techniques described herein may allow an operator to manually reset a state machine to a desired state. The force value, if not set to "inactive," overrides the next value when the state machine handler function is called, forcing a state transition, after which it is again made inactive, with this forced state transition stored in the state history buffer.
[0078] Final - Before a state change occurs, the value of the current state is stored for easy future reference, as it is often useful to determine behavior in a state based on the state before the transition.
[0079] Timer - This value represents the amount of time the current state will be active and is incremented each time the state machine handler logic is executed. This value may be used to ensure a minimum time between state transitions or to trigger times based on events such as failures.
[0080] Sequence - Each time the value of the state changes, it is shifted into the least significant 8 bits of this 32-bit value, and the other data in the 32-bit value is shifted in as well. This way, this single variable stores the current and three previous states that were active. This is particularly useful for showing past states in a user interface display.
[0081] Recent—Each monitored state machine has two circular buffers (depicted by the inner and middle rings in Figure 7) that contain the state number and time the state was entered for multiple state transitions. The Recent value is a pointer to these arrays that store the most recent state transitions and is used to track back historical data as needed for analysis.
[0082] The depicted state[] and time[] values provide a circular buffer for current and past states and associated times, as depicted schematically in Figure 7. Conceptually and functionally, a history buffer of states and state times is provided by a circular buffer, although it will be appreciated that any suitable underlying data structure, such as an array, may be used.
[0083] The circular buffer 700 of FIG. 7 includes 32 segments, one for each state and associated state time. However, it will be understood that the circular buffer may include any number of segments. Each pair of corresponding segments in the circular buffer can store a state number and an associated state entry time. The circular buffer 700 includes a pointer 701 that points to the memory location of a segment in the circular buffer 700. Initially, when the industrial machine is not operating, the pointer 701 points to segment 0. When the industrial machine begins its operation, the state machine that models the operation of the industrial machine transitions from the default state to another state depending on the transition or exit conditions executed by the industrial machine, as described above. Thereafter, the pointer 701 is incremented to point to the next storage segment in the circular buffer 700, and the state number and the state time associated with that state are written to the segment of the circular buffer 700 pointed to by the pointer 701.
[0084] An alternative to the history structure described above is to store in a history buffer the current state number and the time the state was active when the state transition occurred. This may be used, for example, in systems where a global timer is not available, or where a simpler handling of individual state active times is preferred. Both methods provide similar information, but if a global timer is not used, synchronizing data across multiple state machines or other diagnostic functions may not be as easy.
[0085] Considering the state machine 500 shown in FIG. 5, when the state machine 500 transitions from one state to another, the pointer 701 is incremented and the new state number and global system timer value are written to the segment entry pointed to by the pointer 701.
[0086] 6, determining the second state and associated state time may be performed by simply decrementing the value of pointer 701 and wrapping around if the value of pointer 701 becomes less than zero. Additionally, the second state and state time may be displayed to the operator to enable the operator to identify the second state that exceeded the time threshold.
[0087] Figure 8 shows an exemplary diagnostic display 800 that may be provided to an operator after the processing described above with reference to Figure 6 has been performed. Display 800 includes a simplified logic flow diagram 800a that depicts the associations between multiple states of state machine 500. The currently active state may be visually highlighted within logic flow diagram 800a via a color change or other method, while the initial state is depicted by a double box around state SO.
[0088] Portion 800b of display 800 displays the currently active state, the required (“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. If the currently active state of state machine 500 is state S4, portion 800b displays values such as “Step” = “S4,” “Next” = “S4,” “S2,” or “S0,” depending on whether a state transition was active or not, “Last” = “S2,” and “Timer” = the state time for state S4. Portion 800c of display 800 displays the transition path taken by the state machine to reach the currently active state. For example, if the currently active state of state machine 500 is state S4, the transition path displayed in portion 800c may be S0 (old), S1, S2, S4 (new).
[0089] Thus, the display 800 provides the operator with information about the internal state of the industrial machine and technical conditions or events related to the internal state. Any changes in the internal state of the state machine are automatically detected and presented to the operator to prompt the operator to interact with the system, such as identifying and resolving system faults.
[0090] For example, display 800 provides an operator with information about the currently active state of a state machine that models the operation of an industrial machine, along with the transition path the state machine took to reach the currently active state and the state times associated with each state in the transition path. Using display 800, an operator can identify states in the transition path of the state machine where the industrial machine operated for a longer period of time than expected. In this manner, an operator can diagnose faults in the industrial machine by analyzing the behavior associated with the states.
[0091] Additionally, if the industrial machine is deadlocked in a particular state, display 800 may also allow 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 modified to force a state jump to break a deadlock in the system or to trigger an action associated with a particular state. That is, for example, if the system is deadlocked in “Supply Pause” state S4, the operator may force the state machine to transition to state S2 or state S0. In some cases, the operator may determine which state to force the industrial machine to transition to based on the logic flow diagram of state machine 800a. In FIG. 8 , it is the “Next” entry in section 800b that allows the operator to force a state jump or transition by setting a force state structure variable; however, it will be understood that this functionality may be provided by another user interface element (e.g., another user interface depicted in FIG. 8 or a user interface not depicted in FIG. 8 ). Thus, display 800 assists the operator in both identifying and resolving faults in the functionality of the industrial machine.
[0092] Further visualization of state transitions may be provided. If the state transitions are processed to provide a display 1202 as shown in FIG. 8A , where the x-axis represents time and the y-axis represents the active step number, determining errors may be easier. The types of interfaces provided for use with industrial machines may not allow for easy determination of the time between two points on the display 1202. In this regard, logic analyzer-style cursor functions 1204 a and 1204 b may be provided, each movable by an operator along the display 1202. The system may automatically calculate and output the time period indicated by the cursors 1204 a, 1204 b, allowing the operator to more easily determine the time the state machine spent in a particular state.
[0093] 9 illustrates a computer 900 suitable for performing, viewing, and diagnosing the functionality of a state machine in more detail. The computer 900 may be thought of as a diagnostic system. The computer 900 is seen to include a CPU 900a configured to read and execute instructions stored in a volatile memory 900b, which is a form of random access memory. The volatile memory 900b stores instructions executed by the CPU 900a and data used by those instructions.
[0094] The computer 900 further includes non-volatile storage, for example in the form of a hard disk drive or solid state drive 900c. The computer 900 further includes an I / O interface 900d to which peripheral devices used in connection with the computer 900 are connected. More specifically, a display 900e is configured 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 an operator to interact with the computer 900. The input devices (900f, 900g, and 900e) allow an operator to interact with the system 100. Additionally, the I / O interface 900d may be connected to one or more sensors of the industrial machine. For example, if the industrial machine is a riveting system, the I / O interface 900d may be connected to a tape position sensor, a rivet presence sensor (such as sensor 300i), etc.
[0095] The network interface 900h enables the computer 900 to be connected to a suitable computer network for receiving and transmitting data to and from other computing devices. The CPU 900a, the volatile memory 900b, the persistent storage (disk / flash) 900c, the I / O interface 900d, and the network interface 900h are connected to one another by a bus 900i.
[0096] It will be understood that the arrangement of components shown in FIG. 9 is exemplary and that other arrangements may be used within the context of the techniques described herein.
[0097] A significant portion of the sequences of the state machines that control the industrial machinery are affected by the states of I / O signals associated with the sensors and actuators of the system. Although the methods for diagnosing industrial machinery are described with respect to operations associated with the state machines, it will be appreciated that the techniques described herein can be used to diagnose state machines based on operations associated with the state machines, I / O signals associated with the industrial machinery, or indeed both.
[0098] However, the number of I / O signals received can be large, and each I / O signal may last only a short duration. As noted above, interfaces typically provided for use with industrial machinery often have relatively slow refresh rates compared to displays used in other computing devices, and signal durations may be too short to be discernible on the display. Therefore, it is desirable to provide diagnostic tools and methods that work with existing interfaces and do not require the replacement of expensive interface hardware.
[0099] As an example of a problem with standard diagnostic tools, if a sensor on an industrial machine provides an I / O signal (e.g., a high signal) for only 10 milliseconds when it detects a condition of interest, and the industrial machine is equipped with a display (such as display 900e) with a 100-millisecond screen update rate, then, on average, only one I / O signal from that sensor may be displayed, and thus only for a short duration (100 milliseconds) that may be too short to detect. As a result, an operator may miss a signal that could provide advance warning of a fault and enable the operator to take remedial action before a fault occurs or becomes significant. In some exemplary implementations described herein, the diagnostic system may be configured to monitor the sensor's state history in addition to the signal currently provided by the sensor. The diagnostic system may be configured to provide a diagnostic output that may be used to allow an operator sufficient time to process events that may represent short-duration faults and to assist in the continued, guided operation and maintenance of the industrial machine.
[0100] FIG. 10 illustrates an example of the generation of diagnostic information by a diagnostic system (such as system 900) in response to an I / O signal from a sensor or actuator (not shown) of an industrial machine according to a standard method, and the generation of improved diagnostic information for the same I / O signal according to the techniques described herein. In FIG. 10, time is depicted from left to right on the page. A refresh of a display (e.g., display 900e) is indicated by arrow 1002, with each arrow 1002a-1002g indicating a respective refresh of the display. Shown below the refresh operation is an I / O signal 1004 received from a sensor of the industrial machine. Below the I / O signal 1004 is a standard diagnostic output 1006, provided by known methods, that displays the current state of the signal at the time of the refresh. Below the diagnostic output 1006 is an improved diagnostic output 1008 generated according to the techniques described herein. Below the improved diagnostic output 1008 are changes in status events 1010a-1010f, which are displayed at the time t when the change occurred for later analysis and display. a ~t f , and may optionally be recorded in a historical data array.
[0101] 10, signal 1004 includes three periods 1004a-c during which the signal is high. For example, the signal may indicate the presence of a consumable part (e.g., a rivet) at a monitored location of an industrial machine. While signal 1004 is illustrated as being binary, it will be understood that the signal from which diagnostic information is generated may take any other form, such as continuous, stepped, etc.
[0102] A first high signal period 1004a occurs after refresh 1002a but before refresh 1002b. Diagnostic information 1006 indicates to an operator the nature of signal 1004 at the time of the last display refresh operation. Because signal 1004 is low during refresh operations 1002a and 1002b, following refresh operation 1002b, diagnostic information 1006 indicates the presence of a low signal. It can therefore be seen that diagnostic information 1006 does not provide a useful diagnosis to an operator in relation to high signal 1004a. Given the potentially large number of sensors monitored and the rate at which signals are received, it will be appreciated that if high signal 1004a predicted a fault in the industrial machinery, diagnostic information 1006 would not assist an operator in identifying or diagnosing that fault.
[0103] The second high signal period 1004b overlaps with refresh 1002c. Therefore, diagnostic information 1006a is provided to the operator, indicating high signal 1004b. Diagnostic information 1006a persists until the next refresh 1002d, at which point signal 1004 is low and diagnostic information 1006 returns to indicating signal 1004 is low. A final high signal 1004c is received after refresh 1002d but ends before refresh 1002e. Therefore, diagnostic information 1006 does not provide information regarding high signal 1004c because the single high output 1006a covers both events.
[0104] To generate an improved diagnostic signal 1008, the diagnostic system is configured to maintain state change information for the signal 1004 for a predetermined duration. Upon a state change of the signal (represented by a diamond in FIG. 10), the state indicators are updated to reflect the state change. The state indicators may be stored in memory 900b of the diagnostic system 900.
[0105] The status change update lasts for a predetermined period of time sufficient to allow for the display of the status change contained in the improved diagnostic signal 1008, typically on the order of 1-2 seconds, shown to correspond to two refresh periods, or 200 ms in FIG. 10. It will be appreciated that the status indicator may take any suitable form, but in the case of a binary signal such as signal 1004 shown in FIG. 10, the status indicator may conveniently and efficiently take the form of a single bit that is added to the standard diagnostic bits. It will further be appreciated that the length of time the display lasts will depend on the nature of the signal received from the I / O device, as well as the refresh rate of the display device.
[0106] As an example, with reference to FIGS. 10 and 11, an improved diagnostic signal includes a first portion 1008a and a second portion 1008b. The first portion 1008a of the diagnostic signal indicates the current value (or the value at the last refresh point) of the status indicator of the I / O signal and can be sampled similarly to the standard diagnostic 1006, while the second portion 1008b indicates whether the signal 1004 has changed during a period preceding a display refresh operation and is sampled along with the standard diagnostic status 1008a. Referring to FIG. 11, a process performed by the diagnostic system to maintain the status indicators is shown. It can be seen that the process has two portions, each operating substantially simultaneously to update the status indicator of the I / O device. In step 1102, the diagnostic system determines whether a state change has occurred. While depicted as a determination in FIG. 11, it will be understood that the determination mechanism can be either active (e.g., "pull") or passive (e.g., "push"). The process of step 1102 executes until it is determined that the signal from the I / O device has changed, at which point the process proceeds to step 1104 where the status indicator is updated to reflect the change. From step 1104, the process returns to step 1102 where it continues to monitor the I / O signal for changes. Simultaneously, the process of step 1106 determines whether a predetermined period of time has elapsed since the status indicator was last updated (based on the last time recorded in step 1104). While the determination is negative, the process remains in step 1106. If it is determined that a predetermined time has elapsed since the status indicator was last updated, the process proceeds to step 1108 where the status indicator is reset to a default state.
[0107] The process of Figure 11 will now be described by way of example with reference to Figure 10. Prior to the first high signal 1004a, the status indicator is in a default state, in this case indicating that signal 1004 is low. This is depicted in Figure 10 by the improved diagnostic signal 1008 indicating low. Upon receipt of high signal 1004a, a signal change is determined in step 1102 and processing proceeds to step 1104, where the status indicator is updated to indicate receipt of a high signal and the time of the update is recorded. Processing returns from step 1104 to step 1102.
[0108] For purposes of this example, it is assumed that, between receiving high signal 1004a and receiving high signal 1004b, processing in step 1106 determines that a predetermined period of time has not elapsed, so processing remains at step 1106. Therefore, during refresh operation 1002b, the status indicator still indicates that a high signal was received because the predetermined period of time has not yet elapsed. Because the improved diagnostic signal is configured to indicate the state of the status indicator, during refresh operation 1002b, portion 1008a of improved diagnostic signal 1008 is updated to indicate a high signal. For clarity of depiction and distinction from diagnostic signal 1006a, portion 1008a is shown as a single line (rather than a solid block), but it should be understood that FIG. 10 is merely a schematic diagram and depicts the information content of improved diagnostics, but not any particular manner of displaying that information. Like diagnostic signal 1006, improved diagnostic signal 1008 further includes portion 1008b, which indicates the current value of I / O signal 1004. Thus, although the high signal of I / O signal 1004 has ended, the operator can still determine that signal 1004a was received but passed before the most recent refresh of the display.
[0109] As described above, the second high signal 1004b temporally coincides with the refresh operation 1002c such that the second portion 1008b of the improved diagnostic signal is updated to reflect the current state (at the time of the refresh) of the I / O signal 1004. Additionally, the process 1102 determines that the signal 1004b has been received, and in step 1104, the state indicator is updated (in this case, maintained) and the time of the update is recorded.
[0110] For purposes of this example, it is assumed that between receiving high signal 1004b and receiving high signal 1004c, the process of step 1106 determines that a predetermined period of time has not elapsed so that the process remains at step 1106. Therefore, at the next refresh 1002d, the improved diagnostic signal still indicates that a high signal was received, but now indicates that the I / O signal was low at the time of refresh 1002d.
[0111] For purposes of this example, it is assumed that between receiving high signal 1004c and refresh 1002e, the process in step 1106 determines that a predetermined period of time has elapsed so that the process proceeds from step 1106 to step 1108 and the status indicator is reset to its default state. Thus, in refresh 1002e, the improved diagnostic signal 1008 is updated so that both portions 1008a, 1008b indicate a low value.
[0112] It will be appreciated from the above that by recording indications of state changes over a predetermined period of time, a diagnostic signal can be provided to an operator, thereby enabling the operator to more accurately diagnose the current and past states of I / O signals within the industrial machinery, and therefore more accurately and timely diagnose faults or potential faults within the industrial machinery.
[0113] Figure 12 shows one example of how the improved diagnostic signal 1008 may be displayed to an operator of an industrial machine. Figure 12 shows the same I / O signals 1004 and refresh operations 1002 as shown in Figure 10, but illustrates how those signals may be displayed in a graphical human-machine interface (HMI) on a standard diagnostic indicator lamp 1014 and an improved diagnostic indicator lamp 1016. In particular, the standard diagnostic indicator lamp can be seen to operate in one of two modes: "off" 1014a or "on" 1014b. Thus, the standard diagnostic indicator lamp can represent the information provided by the diagnostic signal 1006. In contrast, however, an improved diagnostic indicator may be provided having four modes of operation: a "static off" mode 1016a indicating that the I / O signal 1004 is low and has not received a high signal within the past predetermined period of time; an "off with change" mode 1016b indicating that the I / O signal 1004 is low but a change of state has been active within the past predetermined period of time; an "on with change" mode 1016c indicating that the signal was high at the last refresh and a change of signal has occurred within the past predetermined period of time; and a "static on" mode 1016d indicating that the I / O signal 1004 was high at the last refresh and has not changed within the past predetermined period of time. In the example of Figure 12, the "with change" state is indicated by a thick outer ring surrounding the indicator lamp, although it will be understood that any means of displaying additional diagnostic information may be used, and that the on / off state relative to the last refresh is indicated via the inner color of the indicator lamp.
[0114] The actual I / O signal 1004 may be reconstructed from the state change diagnostic data and provided to the user interface as a reconstructed I / O signal 1012. In particular, the diagnostic history may be used to display signal changes by drawing multiple lines representing the signal states. The horizontal coordinates of the lines are determined by the display start time (t start ) and display end time (t end), the vertical coordinate corresponds to the relative position in time that the signal changed compared to the time interval, and the vertical coordinate depends on the state of the signal during that interval. For example, to display the reconstructed I / O signal 1012 shown in FIG. 10, various time values (t) are plotted with positions defined by the state of the signal at the start of each interval. start , t1~t6, t end ) with seven horizontal lines and t a ~t f 13 lines may be drawn, including 6 vertical lines representing changes in state at 1. This display is not outside the capabilities of commercially available programmable HMIs.
[0115] Lamp 1016 may, for example, be provided by one or more light bulbs (such as LEDs), or may be part of a user interface generated on a display device, such as an LCD display device. Similarly, although the above is described with reference to system 900, it will be appreciated that the processing described with reference to Figure 11 may be implemented in any convenient way, including by way of one or more FPGAs or ASICs.
[0116] To minimize the processing load imposed on the system when monitoring a large number of I / O signals, in some embodiments, data is examined in parallel for groups of signals rather than examined signal by signal, as shown in FIG. 14 (example of a 4-bit value). In some applications, I / O signals may be combined into 8-bit, 16-bit, 32-bit, or more values, and changes in these combined values (rather than changes in individual signals) are stored in a history array along with a timestamp. In general, the more bits that are monitored, the larger the history array that is required. In many applications, a 128-element array will be sufficient to record changes in 32 signals.
[0117] To allow for fast and efficient retrieval and use of diagnostic data, the combined I / O signal values may be stored in a history ring buffer, as shown in FIG. 15. The operation of the I / O signal change buffer may be similar to that described with reference to FIG. 7 in connection with state machine data. The I / O signal change buffer may store entries of I / O signal data (or combined I / O signals as described above) and the times of their changes. The times of I / O signal changes may be recorded using the same global timer as the state machine buffer 700 each time the value of an I / O signal (or the value of a combined I / O signal) changes from its previous value.
[0118] To minimize the amount of computation required to enable the display of diagnostic signals viewable in real time, diagnostic output signals may be stored in a diagnostic history buffer. For example, the diagnostic history buffer may include an additional first-in, first-out data structure (diagnostic FIFO). The diagnostic FIFO may be updated in parallel with updates to the I / O signal change buffer. A pointer to the diagnostic FIFO determines the current diagnostic output (i.e., the current "slot" of the diagnostic FIFO being output), and the pointer is incremented after a predetermined "diagnostic tick" period (and wraps around after incrementing through each slot). The diagnostic tick may be determined based on the diagnostic HMI display period or refresh period (typically, 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; e.g., with a 2-second diagnostic update and four FIFO slots, each slot is displayed for 0.5 seconds.
[0119] Referring back to the example shown in FIG. 14, a subset of four I / O signals (Signal 1 through Signal 4) is combined into a single diagnostic value with a respective bit for each I / O signal (most clearly depicted and explained below with reference to FIG. 16). Changes in this single diagnostic value within a specified time period are used to modify the data contained in the diagnostic FIFO buffer and, therefore, the diagnostic signal output to the operator. In particular, when a single diagnostic signal changes, as detected by the binary XOR result of the current and previous I / O values (e.g., as shown in FIG. 14), this value, if non-zero, is logically ORed into each slot of the diagnostic FIFO. This ensures that any change to one of the monitored I / O signals, regardless of how quickly it occurs, can be displayed for a minimum of three periods, even in slow-refreshing human-machine interfaces. On each diagnostic tick (i.e., at a predetermined frequency), the data stored in the current slot is decayed (e.g., the current slot may be zeroed), a pointer to the diagnostic FIFO is incremented, and the currently displayed diagnosis is set to the newly indexed slot. This ensures that a single state change is visible for a longer period of time (up to four diagnostic ticks).
[0120] Using this method, diagnostic display of 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 (especially if the diagnostic values were previously generated to determine whether new history values (and associated times) need to be stored in the I / O change buffer).
[0121] Figure 16 shows an example of the changes in diagnostic signals stored in the diagnostic FIFO for a set of four signals (signals #0-#3) over the period indicated by the vertical timeline on the left side of the figure. Referring to Figure 16, during the first period (1), no changes occur in the monitored I / O signals, and the value in each slot of the diagnostic FIFO is "0000." The currently indexed slot is slot 0. At time (2), a change in signal #2 sets the bit corresponding to signal #2 in the combined I / O signal value high. The newly set bit value is ORed with all slots in the diagnostic FIFO. Therefore, the diagnostic output is now "0100." At time (3), a diagnostic tick occurs, zeroing the currently indexed slot and updating the pointer to slot 1. The diagnostic output remains "0100."
[0122] At time (4), another diagnostic tick occurs, causing slot 1 to go to zero and the pointer to increment to slot 2. 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 ORed with all slots in the diagnostic FIFO. Thus, slots 0 and 1 have the value "0010," and slots 2 and 3 have the value "0110." Therefore, the diagnostic output is "0110." At time (6), a change in I / O signal #3 causes the bit corresponding to I / O signal #3 to be set high, and the newly set bit is ORed with each slot in the FIFO. Thus, slots 0 and 1 store "1010," and slots 2 and 3 store "1110." Therefore, the diagnostic output is "1110."
[0123] At time (7), a diagnostic tick zeros the currently indexed slot 2 and increments the pointer to slot 3. Thus, the diagnostic output remains "1110". At time (8), a diagnostic tick zeros slot 3 and the pointer wraps around to slot 0. Thus, the diagnostic output is now "1010". At time (9), another diagnostic tick zeros slot 0 and increments the pointer to slot 1, so the diagnostic output remains "1010". At time 10, a diagnostic tick zeros slot 1 and increments the pointer to slot 2. Now, the diagnostic output (and in fact the values of all slots in the diagnostic FIFO) is "0000".
[0124] Historical change data stored for various state machines and I / O within the system being diagnosed can be used to monitor machine operation and compare it to data extracted when the system is operating at optimal performance to determine where variations are occurring within the process.
[0125] Referring to FIG. 13 , the sprocket supply state machine 500 described above is displayed along with the supply solenoid output signal and nose switch input signal. The display in FIG. 13 is generated from various state change events stored in the respective histories of the sprocket supply state machine, the supply solenoid output signal, and the nose switch input signal. Because each is stored with a global time reference, signals from various sources in the system may be displayed between any two time indexes depending on the amount of data available. For example, in FIG. 13 , it is possible to see variations in the data caused by a normal supply process, a slow supply process, or a faulty supply process, because the human eye and brain are particularly adapted to picking out patterns in this type of data display. In some implementations, movable cursor lines 1204 a and 1204 b are overlaid on the output to select and display time intervals between different operations in the system. The cursor may automatically snap to the time when a state or I / O signal changed for more efficient user interaction.
[0126] In some example configurations, the occurrence of a fault condition may automatically trigger the generation of a copy of the contents of all associated state machines and I / O signal data histories along with corresponding timestamps each time the fault condition occurs. In this way, the maximum state of the system immediately prior to the occurrence of the fault can be captured for analysis. Referring again to FIG. 13, while the data for the depicted display may be derived from a single source, all data in the system is time-stamped using synchronized time values, demonstrating how changes in any monitored signal or state can be visually inspected with reference to any other monitored signal or state in the system. In the example shown in FIG. 17, it can be seen that changes in I / O history can be viewed on a common display along with state machine histories for multiple different parts of an industrial system. It should also be noted that control and status signals passing between a controlled system—in this case, a riveting system—and a control system, such as a robot or industrial controller, may also be treated as I / O signals and processed in the same manner as internal I / O. This allows for easy viewing of timing interactions between various state machines and their associated I / O and control signals.
[0127] The techniques described herein further enable overlapping of signals of different durations to more easily highlight timing variations, as shown in FIG. 18. This allows variations in complex operating sequences to be more easily visualized, enabling quick determination of the cause of a failure or even variations that indicate degraded system operation. This analysis can be performed on the machine using a built-in user interface or data transmitted to a remote diagnostic system with improved capabilities. These comparisons can be scheduled automatically to ensure the machine is operating at optimal performance levels and minimize the number of unplanned downtime events.
[0128] By visualizing the operational changes of system components over time, the performance of non-critical components can be more easily assessed and PM or replacement intervals can be extended based on their actual performance. Most components operating within their normal performance range do not require excessive maintenance or other adjustments that could result in performance degradation. Conversely, components in a system that are not meeting their PM levels and showing signs of performance degradation can benefit from adjustment or replacement prior to their original limits to return the entire system to a more optimal performance level. When maintenance is performed on a system component, the associated signal can be compared both to its originally specified performance and to the performance level immediately before the maintenance was performed. Optimizing the system's maintenance level ensures that the entire system is operating at the required level with the appropriate amount of maintenance, further ensuring the optimal installed life of the system's subcomponents.
[0129] Although several exemplary embodiments have been described above, it should be clear that the foregoing is presented by way of example and not limitation. In particular, while many of the examples presented herein include specific combinations of method acts or system elements, these acts and these elements may be combined in other ways to achieve the same goals. Acts, elements, and features described in connection with only one embodiment are not intended to be excluded from similar roles or embodiments in other embodiments.
[0130] Any reference herein to system and method embodiments or elements or acts in the singular may include embodiments including a plurality of those elements, and any reference herein to any embodiment or element or act in the plural may include embodiments including only a single element. References in the singular or plural are not intended to limit the presently disclosed systems or methods, their components, acts, or elements to single or multiple configurations. References to any act or element being based on any information, act, or element may include embodiments in which the act or element is based at least in part on any information, act, or element.
[0131] Where reference signs are used to refer to technical features in the drawings, detailed description, or claims, the reference signs are included to enhance the clarity of the drawings, detailed description, and claims, and therefore neither the reference sign nor its absence has the effect of limiting the scope of the claim element.
[0132] The above embodiments are illustrative rather than limiting of the described systems and methods. Accordingly, the scope of the systems and methods described herein is indicated by the appended claims, rather than the foregoing description.
Claims
1. 1. A method for diagnosing faults in industrial machinery, comprising: identifying a first state associated with the industrial machine, the first state comprising a currently active state of a state machine that models functionality of the industrial machine; identifying at least one second state associated with the industrial machine based on the first state, the second state including a state of the state machine that was active at any time before the state machine transitioned to the first state; for each identified second state, determining a state time associated with said second state; determining a fault indicator condition based on the at least one second state and the respective state time, in response to determining that the industrial machine spent a period of time in at least one of the at least one second state that differs from a predetermined period of time; generating diagnostic information including an indication of the at least one of the at least one second state in response to determining the fault indicator condition; outputting the diagnostic information at a user interface of the industrial machine; A method for diagnosing faults in industrial machinery, comprising:
2. 2. The method of claim 1, further comprising maintaining a state history and associated state times during operation of the industrial machine, wherein identifying a second state and a state time associated with the second state comprises identifying the second state and associated state time from the state history and associated state times.
3. The method of claim 1 or 2, further comprising the step of copying the contents of a predetermined number of data entries of the state history and associated state times in response to determining the fault indicator condition.
4. 4. The method of claim 1, 2 or 3, wherein the state time associated with each of the at least one second state is based on a value of a global timer at the time of transition to the second state, the global timer being used by the industrial machine to synchronize all operations of the industrial machine.
5. 5. The method of claim 1, wherein the user interface further comprises generating a display of a state history of the industrial machine, the state history including the currently active state of the industrial machine, states that will become active after the currently active state, states that were active before the currently active state, and state times associated with the currently active state.
6. The method of claim 5 , further comprising displaying the user interface on a human machine interface of the industrial machine or on a diagnostic system attached directly or remotely to the industrial machine.
7. The method of claim 5 or 6, wherein the user interface includes a display of a transition path taken by the industrial machine to reach the currently active state.
8. maintaining a state history and associated state times during operation of the industrial machine, wherein identifying a second state and a state time associated with the second state includes identifying the second state and the associated state time from the state history and associated state times; 8. The method of claim 5, further comprising providing a state forcing user interface element in the user interface, wherein selection of the state forcing user interface element transitions the industrial machine to a predetermined state.
9. The method of claim 8 , wherein maintenance of the state history and associated state times continues after selection of the state forcing user interface element during operation of the industrial machine.
10. 10. The method of claim 1, wherein generating a diagnostic output comprises processing the second state and state time information to generate an output indicative of timing of state transitions.
11. 11. The method of claim 10, further comprising providing a time calculation user interface element configured for display with the output indicating the timing of state transitions, the time calculation user interface configured to allow an operator to select two positions within the output indicating the timing of state transitions and output a time period between the two selected positions.
12. identifying a change in an I / O signal associated with the industrial machine; assigning a value to a status indicator associated with the I / O signal indicative of the change, the assignment configured to last for a predetermined period of time; generating diagnostic information including an indication of the current values of the I / O signals and the current values of the status indicators; outputting a diagnostic output based on the diagnostic information at a user interface of the industrial machine; The method according to any one of claims 1 to 11, comprising:
13. The method of claim 12 , wherein generating the diagnostic information is performed at each refresh interval of a human-machine interface of the industrial machine.
14. The method of claim 13 , wherein the predetermined period of time is greater than a refresh rate of a human-machine interface of the industrial machine.
15. The method of any one of claims 12 to 14, further comprising resetting the status indicator associated with the I / O signal after the predetermined period has elapsed.
16. Outputting the diagnostic information at a user interface of the industrial machine includes outputting the diagnostic information using an indicator having four operating modes, the four operating modes being: a first mode in which the I / O signal is low, indicating that it has not received a high signal within the past predetermined period of time; a second mode indicating that the I / O signal is low but that a change of state has occurred within the past predetermined period of time; a third mode in which the I / O signal is high, indicating that a change of state occurred during the past predetermined period of time; a fourth mode indicating that the I / O signal is high and has not changed during the past predetermined period of time; The method according to any one of claims 12 to 15, comprising:
17. 17. The method of claim 12, wherein the I / O signal is one of a plurality of I / O signals, the status indicator associated with the I / O signal is associated with the plurality of I / O signals, and the diagnostic information indicates a change in any of the plurality of I / O signals.
18. 20. The method of claim 17, further comprising maintaining a diagnostic signal history buffer for the plurality of I / O signals, the diagnostic signal history buffer configured to provide a historical indication of changes in any of the plurality of I / O signals.
19. the diagnostic signal history buffer includes a plurality of slots, each slot including an entry for each of the plurality of I / O signals, each slot representing a state of the plurality of I / O signals at a different time in the past; 20. The method of claim 18, wherein the diagnostic output is based on a slot in the diagnostic signal history buffer referenced by an index, the index being updated at a predetermined frequency to reference a next one of the slots in the diagnostic signal history buffer.
20. 20. The method of claim 19, further comprising damping an indication of a change in the plurality of I / O signals stored in at least one of the slots at the predetermined frequency.
21. 21. The method of claim 20, wherein damping the indication of the change in the plurality of I / O signals stored in a slot comprises resetting the value stored in the slot.
22. the diagnostic information includes a bit for each of the plurality of I / O signals, and each slot of the diagnostic signal history buffer includes a bit for each of the plurality of I / O signals, the method comprising: responsive to generation of diagnostic information indicative of a change in 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; resetting the value of the slot referenced by the index; 22. The method of claim 21 further comprising:
23. The method of any one of claims 19 to 22, wherein the predetermined frequency is based on the sum of the number of slots in a diagnostic signal history buffer and the refresh period of a human machine interface of the industrial machine.
24. The method of any one of claims 12 to 23, wherein assigning a value indicative of the change to a status indicator further comprises storing a time associated with the change.
25. 25. The method of claim 24, wherein storing a time associated with the change comprises recording the time indicated by a global timer at the time of the change.
26. The method of any one of claims 1 to 25, wherein the industrial machine is a riveting machine, an adhesive dispensing machine or a flow drill system.
27. A system for diagnosing faults in industrial machinery, comprising a controller and a memory storing computer readable instructions configured to cause the controller to carry out a method according to any one of claims 1 to 26.
28. An industrial machine comprising the system of claim 27.
Citation Information
Patent Citations
Method for building and / or maintaining an industrial machine
EP3603902A1
Numerical controller having block time display means
JP2017126199A