The present disclosure relates generally to a system and method for managing automation systems and equipment. More particularly, the present, disclosure relates to a system and method for managing automation systems with synchronous elements from a variety of manufacturers.
Modern manufacturing and automation systems and processes are becoming more complex, at least in part because these systems and processes are required to be fast, accurate and repeatable over longer periods of time. These systems and processes are expected to provide appropriate product quality in short time frames. These systems and processes also seek to provide high machine efficiency with low downtime for maintenance, trouble-shooting and the like.
Since manufacturing and automation systems have complex requirements there can be situations where products from differing manufacturers need to be implemented into a single automation system. Further, in order to get higher levels of efficiency, it can be necessary to co-ordinate the activities (e.g. motion profiles) of various different types of automation systems from various manufacturers. However, generally speaking, automation systems manufacturers may try to limit the ability to interchange hardware so that a buyer will only use a particular manufacturers hardware. One way in which the ability to interchange hardware is the use of different communication protocols. While there are some known solutions that attempt to convert between different communication protocols by using industrial computers or the like, in practice this process can be very complex and needs to be updated regularly. In a situation where there needs to be co-ordination between or among hardware, the complexity is even higher due to the need for real-time or near real-time communication and the latency that can exist in the process of conversion or in the communication protocol itself.
As such, there is a need for improved system and method for managing automation systems and equipment in manufacturing environments.
According to an aspect herein, there is provided a method for managing an automation system involving synchronous elements, the method including: determining a master signal for controlling a plurality of synchronous elements; determining a communication protocol for communicating the master signal to the plurality of synchronous elements; determining a lag time for the master signal to reach the synchronous elements related to the communication protocol and characteristics of the synchronous elements; and implementing the determined lag time into the control of the automation system.
According to another aspect herein, there is provided a method for managing an automation system involving synchronous elements, the method including: sending a master signal for controlling a plurality of synchronous elements; if necessary, inserting a lag time between the master signal and at least one of the synchronous elements, wherein the lag time is related to characteristics of the communication protocol and the data being sent as well as characteristics of the synchronous elements; and synchronizing at least one of the synchronous elements to the master signal using a compensation algorithm based on setpoint position, velocity, acceleration and jerk as well as commanded velocity and commanded acceleration.
In some cases, the compensation algorithm may include using reactively calculated compensations and pre-determining setpoints based on the commanded velocity and commanded acceleration. In this way, it is less likely that the movement will lag behind the input during the period when waiting for updated data for, for example, setpoints.
According to another aspect herein, there is provided a method for managing an automation system involving a plurality of synchronous elements, the method including: designating a master signal for controlling the plurality of synchronous elements; determining a communication protocol for communicating the master signal to the plurality of synchronous elements; determining a compensation profile for each of the plurality of synchronous elements based on the communication protocol and characteristics of each of the plurality of synchronous elements; and utilizing the compensation profile in the control of the automation system.
In some cases, the compensation profile may include a lag time between the sending of the master signal and the receipt of the master signal at each synchronous element.
In some cases, the compensation profile may also be based on characteristics of the data being sent.
In some cases, the compensation profile may include compensation based on at least one of commanded position, commanded velocity, and commanded acceleration.
In some cases, the compensation profile may include compensation for jerk.
In some cases, the compensation profile may include predetermined compensation graphs to reduce computation time and complexity.
According to another aspect herein, there is provided a system for managing an automation system involving at least two synchronous elements, the system including: a first controller for controlling a first of the synchronous elements; a second controller for controlling at least a second of the synchronous elements; a configuration module for configuring at least the second synchronous element; a memory storing instructions that, when executed by the second controller, cause the second controller to: designate the first controller as a master signal for controlling the plurality of synchronous elements; determine a communication protocol for communicating the master signal to the plurality of synchronous elements; determine a compensation profile for each of the at least two synchronous elements based on the communication protocol and characteristics of each of the plurality of synchronous elements; and utilize the compensation profile in the control of the automation system.
In some cases, the compensation profile may include a lag time between the sending of the master signal and the receipt of the master signal at each synchronous element.
In some cases, the compensation profile is also based on characteristics of the data being sent.
In some cases, the compensation profile may include compensation based on at least one of commanded position, commanded velocity, and commanded acceleration.
In some cases, the compensation profile may include compensation for jerk.
In some cases, the compensation profile may include predetermined compensation graphs to reduce computation time and complexity.
In some cases, the configuration module may provide data to the second controller regarding communication protocols and compensation profiles.
Other aspects and features of the embodiments of the system and method will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments in conjunction with the accompanying figures.
Embodiments of the system and method will now be described, by way of example only, with reference to the attached Figures, wherein:
The following description, with reference to the accompanying drawings, is provided to assist in understanding the example embodiments. The following description includes various specific details to assist in that understanding but these are to be regarded as merely examples. Accordingly, those of ordinary skill in the art will recognize that the various embodiments described herein and changes and modifications thereto, including the use of elements of one embodiment with elements of another embodiment, can be made without departing from the scope and spirit of the appended claims and their equivalents. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
The terms and words used in the following description and claims are not limited to their bibliographical meanings but are meant to be interpreted in context and used to enable a clear and consistent understanding.
Generally, the present document provides for a system and method for managing automation systems. Embodiments of the system and method herein are intended to allow for integration of various manufacturer's products and synchronization of various manufacturer's products by compensating for network delay and variability between the manufacturer's products along with the designation/setup of the master controller (for example, a programmable logic controller (PLC)), which can provide the master signal to which other controllers can be synchronized. Embodiments of the system and method herein enable the use of different vendors' PLCs, drives and servos (for example, Siemens™, Omron™ and Rockwell™) as a source or master signal to drive operation of a conveyor in a synchronized way, without any significant performance loss for most machine applications.
While the concepts herein can be applied in various environments, the following description will focus on the use of automation stations/equipment together with a linear motor conveyor. Conveyors in an automation environment will typically have a plurality of automation stations placed along the conveyor and will have a variety of parameters/settings and the like that generally need to be configured properly in order for the conveyor and related automation stations to properly function together.
Automation stations are used on manufacturing or production lines to handle manufacturing operations and are typically arranged adjacent to a conveyor system for feeding parts or the like. An automation station may include a single piece of equipment/machine in a production line, such as a press, pick & place device or the like, but may also include a complex system involving robots, manipulators, and the like. Further, the automation station may be positioned to receive, via a conveyor, a moving element of the conveyor system, which may include at least one carrier/pallet per moving element configured to move a part into and/or out of an automation station. Generally speaking, automation stations/equipment have been difficult to manage, particularly in relation to interactions with conveyors, due to the complexity of interactions that can be required, differing communications protocols, and the like.
Conventional systems for the management of automation systems and assembly lines generally have difficulty integrating automation equipment from differing vendors with each other or with conveyor systems, including linear motor conveyor systems. Many parameters are required to be considered during automation operations together with a conveyor system, including, for example, parameters such as spacing, timing, trajectory, temperature, collision avoidance and the like.
The conveyor 102 includes moving elements 110 that are configured to travel on the conveyor 102, stopping at one or more target set points (“targets”) that relate to various automation stations 105 in order to have the automation station function applied to an item or object (“part or product”) being carried by the moving element 110. In some cases, there may further be loading or unloading stations where the products or items are placed on or removed from the moving elements. Some of the automation stations 105 will operate in an asynchronous mode or be in an asynchronous area, in which, a moving element 110 will stop at an automation station 105 and the station will operate on a part on the moving element or the like. Generally, in an asynchronous mode, the conveyor system and automation stations 105 can accommodate variable cycle times and loading. However, in some areas, the conveyor system 102 and automation stations 105 may operate in a synchronization mode or synchronization area (indicated as synchronization area 120), in order to achieve higher speed throughput for automation stations that may be controlled by software or mechanical methods to work synchronously. For example, the automation station may be cammed either mechanically or via software—to repeat an action in a predefined manner continuously. These synchronous automation stations would generally have fixed cycle times, which allows for synchronization, for example, by following a master signal (which may be a software signal or the like as described in further detail in the description of
The PLC 210 and the processor 220 can be configured to allow input of and/or receive data related to various parameters related to the automation system. For example, there may be a display/interface (human machine interface (HMI)) 215 for a user 240 to input data related to the automation system, including the conveyor and the automation stations. In some cases, there may be access to one or more outside data sources 225, via, for example the configuration module 210, for data from third party data sources, for automation station/equipment parameters and the like. The configuration module 210 may obtain various parameters from the database 225 such as, for example, previously saved data relating to known or previously input automation system elements or the like. The input or received data may be stored in the database 225 or the like. As will be understood, the database 225 may be distributed across one or several memories and may be accessed via a network or the like.
The configuration module 210 is configured to review the input data to determine the parameters related to configuration of the automation system. The configuration module 210 takes input data, for example, relating to manufacturer, product name/number, functionality, or the like and prepares a configuration of the automation system that will account for communication protocol conversion, latency times, and the like. The configuration module 210 may also allow for further input and adjustments to be made by, for example, a user or users 240. Generally, the configuration module 210 is configured to review the input data and configuration parameters and make adjustments so that the automation stations and conveyor can be in communication and synchronously controlled (i.e. move in a synchronous manner under the control of a master signal) in synchronous zones/areas.
The display/interface 215 provides output information to the end user 240. The processor 220 processes data from the PLC 205 and provides processing power to the configuration module 210 for performing embodiments of the method of managing automation systems described herein. The processor 220 also provides output to the display.
Each of the PLC 205 and the processor 220 may include a master control to provide the master control signal used in synchronous areas. The master control may be in hardware or software (virtual). In this example, the processor 220 includes a virtual software processor master 250. The PLC 205 may also have a PLC virtual master 255, which can be used in the event of external master control (where the master control will ‘propagate’ a master control signal/information to the processor (more information on this process is describe below with regard to
Generally, the method 300 includes: send master control information (master signal) from, for example, a PLC to connected elements or over a communication network (an example of typical data/information is shown in
After compensation, the compensated master signal is received and processed at each of the connected elements (at 315) and the synchronous elements (at 320) in a synchronous manner. It is noted that the master signal may be a raw signal or may be generated based on a raw signal. It will be understood that directly connected elements may require little or no compensation whereas external synchronous elements may require more detailed compensation. In
In most cases, it is beneficial if the master signal can utilize a predetermined period (such as, for example, 4 ms as illustrated in
In some cases, the latency delay used in the method can be determined experimentally by sending and echoing timestamps back and forth from one device to another. By dividing the time stamp difference by 2, the approximate one-way propagation delay can be determined. Typically, the delay can differ on a machine-by-machine basis, depending on the communication protocol method used, length of cable between PLC and machine, and other variables. In some cases, a mathematical relationship among the variables can be determined and kept in a table or the like for lookup, for example, when an alternate supplier device, longer cable, or the like is used as a replacement or the like. Once determined, the latency delay can be used to offset the PLC's commands to connected elements (e.g. servos or the like) that the PLC operates in order to have the connected elements receive inputs from the PLC at approximately the same rate as a synchronized element (e.g. a conveyor or the like) receives a master signal sent from the PLC. In one example, this delay was found to be stable (˜0.05 ms of variation) in test applications when using off-the shelf hardware. Using this information, compensation algorithms can be determined for use upon a change in acceleration of the master signal, or if signals began to drift apart due to delays or instability in the network. In one example, where the master signal sends the commanded velocity and acceleration, it is possible to filter or process information that is received at a delay without having to make erroneous adjustments to a calculated master signal position. In this case, if, while traveling at constant velocity, a connected or synchronous element receives a unique master position, but the master position is received one scan late, it is possible to verify that the commanded velocity and acceleration of the system haven't changed, meaning the master signal should have stayed on the path that the master signal was on previously, and then filter the setpoint information based on a predicted/logical next setpoint, checking the setpoint information with any previous setpoints that may have been assigned to the master to see if instability in the signal has occurred. If there is an instability, the instabilities can be filtered out by adapting a methodology of always being slightly behind, or matching in-line, with the master signal. By staying behind the master signal by a value less than the least significant digit of the normally processed signal, it is possible to effectively ignore instabilities such as late erroneous information since the late information would always result in being ahead of the master signal. If this kind of instability occurs, the instability is typically accompanied, at some point, by a correction signal that may be received one scan early, due to the master signal following a periodic send clock, which will cancel the previous delay. In this case, where the commanded velocity and acceleration are also sent, this allows logical predictions to be made and the system can ignore/filter small instabilities in the signal. One of skill will understand that it is also possible to employ the reverse approach of configuring the system to be slightly ahead of the master signal and being able to filter when we receive data early for a scan, which should eventually be accompanied by data that is a scan late. When the commanded velocity or acceleration change; the system can employ a compensation curve. The curve can span a configured number of process scans to correct any ‘missed’ positional, velocity and acceleration (if using jerk) changes in the X ms the scan was delayed by (in some cases, this is generally 4 ms (PLC servo task cycle time)). A compensation curve can also be employed if there is any drift noted while running (and not covered by an existing compensation). Generally, the system can be configured such that a compensation may only over-write another compensation in the event of a change in commanded velocity or acceleration, or in the event of a change in the jerk-input parameter.
If no at 360 or upon completion of 365, the system then determines if compensation is needed at 370. If yes at 370, the system checks, at 373, if the commanded velocity or jerk input has changed, and, if yes, the system will jump to setup a new compensation curve at 390. If not, the system evaluates the current compensation curves for acceleration, velocity, position and the like at 375 and then returns to 355 to receive the next inputs. If no at 370 (checking if the system is in compensation), then at 380, the system processes acceleration, velocity and position input signals.
At 385, the system then checks if the position is lagging behind the input (which could mean either ahead or behind in setpoint depending on whether the master is decelerating or accelerating (which is further dependent on the commanded velocity and acceleration). If yes, the system sets up and starts a new compensation curve at 390. If no at 385, the system than checks if the commanded velocity or jerk have changed at 395. If yes, the system moves to set up and start a compensation curve at 390, otherwise, the system returns to receive inputs at 355. In any case where the method proceeds to 390 to setup and start the compensation curve, the method then returns to receive inputs at 355.
In the above method, a compensation curve can be set up based on jerk, acceleration, velocity and position changes via curves such as those shown in
As noted herein, there are additional complexities when a moving element on a conveyor operates in synchronization with an automation station or similar combinations of different equipment that need to have coordinated activity. In the conveyor example given above, a moving element can move between synchronous areas or zones where there is coordinated movement and asynchronous areas or zones where the moving element can be controlled by the conveyor system separately. For synchronous areas that begin with non-zero moving element velocities, an “On-the-Fly” merge needs to be performed when transitioning from an asynchronous to synchronous area to align the moving element to the master signal of the synchronous area. In these cases, the moving element needs to be at the correct location, with the correct velocity at the correct master value in order to synchronize with the master signal.
One of the issues that was found in this synchronization was that not allowing for jerk-controlled motion could result in missed merges, over-currents, excessive power draw, aggressive moving element behavior and other issues. The following description relates to a method for managing an automation system and, more specifically, a method for jerk-controlled compensation intended to merge (transition) a moving element into a sync area in various scenarios while avoiding at least some of the issues identified with conventional systems. Further, the method/algorithm is intended to be executed in an efficient manner on an embedded controller while ensuring a smooth transition between asynchronous and synchronous areas without complex configuration effort required from an end user while reducing or minimizing the size of the transition (merge) area.
Generally, the method 400 includes: deriving a plurality of jerk-based compensation curves (for example, 4 curves) and combining these over the duration and length of a merging area. The compensation curves can be derived with respect to the moving element's and automation station's immediate motion characteristics to provide for a smooth transition. The compensation curves are initially derived with respect to time. The combined curve is executed with respect to a master signal (for example, the automation station's signal) in order to cover the case of the master signal switching its velocity during the merge. The method 400 and the use of compensation curves are intended to allow for cases where the moving element is late or early including those where the moving element needs to stop to properly align the timing of the merge.
As shown in
At 430, the system determines if the pallet should stop. The calculation to determine if the pallet should stop can be based on various factors such as: a calculation of the extremes of the velocity compensation profile, noting if the velocity either dips below the 0 point, above the max velocity or finally if the change in velocity is larger than the one attainable based on acceleration, jerk parameters, and the like. If yes, at 435, the system will stop the pallet at the calculated minimum stopping position and determine the next possible index and when to start moving at 440.
If no at 430 or after 440, the system then determines the velocity compensation profile needed at 445. The system also determines the position compensation profile needed at 450. The compensation curves are determined in a way that is intended to ensure no moving element collisions can occur with the moving element in front. The compensation functions by aligning the moving element to the backwards propagated entry-constant velocity curve. The moving element is aligned to both the velocity and the position simultaneously over the course of the merge. By aligning the moving element with the entry curve, the system/method is intended to ensure no collisions with moving elements in front of it that could be following this entry curve. By examining
At 460, the system calculates additive jerk to be applied to the pallet based on compensation profiles. The system then determines if the master position change is different from the base logged at 465. If yes, the system interpolates jerk based on base movement characteristics at 470. If no or following 470, the system applies the jerk value to the pallet at 475. The system then checks if the merge is complete at 480. If not, the method returns to calculate additive jerk at 460. If yes, the method ends at 485.
T=4*ta+2*tc (1)
a
max
=J
max
*t
a (2)
Δv=(2*ta*amax)/2+tc*amax=(ta+tc)*amax (3)
Δd=(4*ta+2*tc)*vmax/2=(2*ta+tc)*vmax (4)
In these equations, the knowns are T, amax, and Δd and the unknowns are ta, tc, and Jmax. From (1) we can derive:
t
a
=T−2*tc/4 (5)
From (3) and (4), we can derive:
Δd=(2*ta+tc)*(ta+tc)*amax=(2*ta2+3*ta*tc+tc2)*amax (6)
From (6) and (2), we can derive:
J
max
=a
max
/t
a
=Δd/(2*ta3+3*ta2*tc+ta*tc2) (7)
Plugging (5) into (6), simplifying, and solving for tc gives us:
t
c=4*Δd/(amax*T)−T/2 (8)
This equation (8) has all knowns, so we can solve for tc and plug back into (5) to get ta, which we can then plug back into (7) to get Jmax.
These equations can be used to determine position compensation curves with respect to jerk and time. It is noted that upon completion of the curves above, the only overall change can be a change in position, and by organizing the curves as shown in
To address a more general case, for example, involving a velocity change in the merge, the ‘ideal’ calculated compensation profile can be executed with respect to degrees traveled by the master signal instead of with respect to time. This allows the method/system to ‘stay in sync’ with the master signal, accounting for slow downs, speed ups, or even stops of the master signal mid compensation profile-execution. The interpolated execution with respect to master signal degrees instead of time is done by advancing the ideal compensation profile and then interpolating between 2 sets of discrete points (for example, discretized by an 800 us controller cycle) with respect to the ratio of how much the master has advanced in the current scan versus how much it would have advanced based on the initial characteristics logged earlier.
By deriving the merging compensation curves with respect to time remaining to complete a merge at the moment of derivation, the act of merging can be de-coupled as being a static curve with respect to the master position. Because of this, it is possible to use the implementation to enable variable merging, where it is possible to assign an arbitrary degree value at which point the pallet should be synchronized moving at a designated velocity at the start of the synchronous area. Coupled with the external master implementation explained above, the variable merging technique allows for synchronization with other types of conveyors, such as belt conveyors, which generally have variable pitched and constant velocity. As illustrated in
As illustrated in
In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments herein. However, it will be apparent to one skilled in the art that these specific details may not be required. In other instances, well-known structures or circuits may be shown in block diagram form in order not to obscure the overall system or method. For example, specific details are not provided as to whether the embodiments described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.
In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments herein. However, it will be apparent to one skilled in the art that these specific details may not be required. In other instances, well-known structures or circuits may be shown in block diagram form in order not to obscure the overall system or method. For example, specific details are not provided as to whether the embodiments described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.
Embodiments can be represented as a software product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described embodiments can also be stored on the machine-readable medium. Software running from the machine-readable medium can interface with circuitry to perform the described tasks.
The above-described embodiments are intended to be examples only. Elements of one embodiment may be used with other embodiments and not all elements may be required in each embodiment. Alterations, modifications and variations can be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.
The present disclosure claims priority to U.S. Provisional Pat. App. No. 63/281,977, filed Nov. 22, 2021, which is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63281977 | Nov 2021 | US |