The present techniques relate to predictive maintenance using vibration analysis of vane pumps.
Machinery refers to a driven mechanical structure that applies forces and controls movement to execute one or more actions. Generally, a machine converts power input to the machine into a specific application of output forces and movement. Machine elements include, for example, structural components, movement control components, and general control components. Structural components include frame members, bearings, axles, splines, vanes, shafts, fasteners, seals, and lubricants. Movement control components include gear trains, belt or chain drives, linkages, and cam and follower mechanisms. General control components include buttons, switches, indicators, logic, sensors, actuators and computer controllers.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
In the drawings, specific arrangements or orderings of schematic elements, such as those representing devices, modules, instruction blocks and data elements, are shown for ease of description. However, it should be understood by those skilled in the art that the specific ordering or arrangement of the schematic elements in the drawings is not meant to imply that a particular order or sequence of processing, or separation of processes, is required. Further, the inclusion of a schematic element in a drawing is not meant to imply that such element is required in all embodiments or that the features represented by such element may not be included in or combined with other elements in some embodiments.
Further, in the drawings, where connecting elements, such as solid or dashed lines or arrows, are used to illustrate a connection, relationship, or association between or among two or more other schematic elements, the absence of any such connecting elements is not meant to imply that no connection, relationship, or association can exist. In other words, some connections, relationships, or associations between elements are not shown in the drawings so as not to obscure the disclosure. In addition, for ease of illustration, a single connecting element is used to represent multiple connections, relationships or associations between elements. For example, where a connecting element represents a communication of signals, data, or instructions, it should be understood by those skilled in the art that such element represents one or multiple signal paths (e.g., a bus), as may be needed, to affect the communication.
Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
Several features are described hereafter that can each be used independently of one another or with any combination of other features. However, any individual feature may not address any of the problems discussed above or might only address one of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein. Although headings are provided, information related to a particular heading, but not found in the section having that heading, may also be found elsewhere in this description. Embodiments are described herein according to the following outline:
Rotating machines (e.g., vane pumps, motors, fans, compressors, turbines) operate, in large part, due to the rotation of machine components. For example, vane pumps generally employ a number of vanes that travel along sliding and an out of a rotating rotor and making contact with the pump cavity. Vibrations produced by the rotating machinery are indicative of various operating conditions. These vibrations are measured using one or more sensors. The sensor data is pre-processed according to feature extraction system applied to the sensor data. The extracted features are classified to obtain a prediction of an operating condition of a rotating machine. In some cases, predictions from a plurality of feature extraction systems are determined and a final prediction is generated by combining the predictions from each individual feature extraction system.
To train the models employed by one or more feature extraction systems, the present techniques enable capture of isolated pump vibration data. In particular, the rotating machine is isolated, and components that are sources of vibration are eliminated. Vibration data associated with at least one predetermined operating condition of the rotating machine is generated, and the generated vibration data is a clean representation of rotating machine vibration under the operating condition, free from noise or vibrations that originate from sources other than the rotating machine.
Some of the advantages of these techniques include automated identification of operating conditions associated with rotating machinery. The present techniques eliminate reliance on a manual operator that could overlook or be unaware of dangerous operating conditions. Additionally, the present techniques enable efficient detection of poor operating conditions. Poor operating conditions can be damaging to industrial machinery. Further, broken down, out of operation machinery can cause significant delays further down in the production line, and could potentially be unsafe for operators. The present techniques reduce delays by preventing breakdowns associated with poor operating conditions. Moreover, the present techniques are able to recognize the fault modes in the received sensor data, even with the high-dimensional characteristics of the derived features.
As used herein, “sensor(s)” includes one or more hardware components that detect information about the environment surrounding the sensor. Some of the hardware components can include sensing components (e.g., vibration sensors, accelerometers), transmitting and/or receiving components (e.g., laser or radio frequency wave transmitters and receivers, transceivers, and the like), electronic components such as analog-to-digital converters, a data storage device (such as a RAM and/or a nonvolatile storage), software or firmware components and data processing components such as an ASIC (application-specific integrated circuit), a microprocessor and/or a microcontroller.
“One or more” includes a function being performed by one element, a function being performed by more than one element, e.g., in a distributed fashion, several functions being performed by one element, several functions being performed by several elements, or any combination of the above.
It will also be understood that, although the terms first, second, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the various described embodiments. The first contact and the second contact are both contacts, but they are not the same contact.
The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this description, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” is, optionally, construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” is, optionally, construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
The present techniques include various artificial intelligence (AI) models that are trained using data generated while one or more predetermined operating conditions exist. A number of constraints are applied to a setup of the rotating machine and other equipment used during to generate data. The trained models can subsequently be executed on data captured during real-time operation of a rotating machine. In an embodiment, the trained models output a prediction of one or more operating conditions currently affecting the rotating machine during operation of the rotating machine. In this manner, the present techniques identify operating conditions of the rotating machine without downtime.
Vane pumps are ubiquitous in industrial applications where fluid needs to be moved quickly from one place to another (e.g., loading and unloading transports, fueling equipment, chemical processing, refrigeration, liquid terminals, etc.). Vane pumps are continuously in operation in these industries under various conditions (e.g., chemical process, energy, transport military and marine, general industrial, oil and gas, etc.). Certain working conditions can be damaging to the pump. Additionally, a broken down, out of operation pump can cause significant delays further down in the production line, and could potentially be unsafe for operators.
The system 100A is a positive fluid displacement system. As illustrated, the rotating machine 102 is coupled with a motor 104. During operation, the motor 104 converts electrical energy to mechanical energy. The mechanical energy output by the motor 104 is used to drive rotations of a rotor within the rotating machine 102. In an embodiment, the motor is coupled with a rotor of the rotating machine 102 via a drive shaft (not illustrated).
Fluid enters the rotating machine 102 at the inlet 106, and fluid exits the rotating machine 102 at the outlet 108. Generally, internal components of the rotating machine 102 create a void at the inlet 106 draw fluid into the rotating machine 102. Fluid is transferred from the inlet 106 to discharge through the outlet 108 using the internal components. In an embodiment, the internal components of the rotating machine 102 force fluid out of the rotating machine. The rotating machine 102 includes a relief valve (RV) 109. In an embodiment, the RV 109 prevents the rotating machine 102 from creating a dangerous high-pressure situation.
In an embodiment, the present techniques include the training and execution of an AI model to identify operating conditions in real time for an operating rotating machine. For this purpose, the model analyzes vibrations of the rotating machine 102 as captured by a sensor 120. In an embodiment, the sensor is an accelerometer. Generally, an accelerometer converts mechanical forces that occur during a change in motion to an electrical current. In an example, the sensor 120 is a three-axis accelerometer. A three-axis accelerometer converts mechanical forces that occur during a change in motion along thee axes to an electrical current. In an embodiment, a plurality of sensors are mounted in multiple locations on the rotating machine 102 to measure and record vibration data in real time. In an embodiment, the accelerometer is mounted atop of a relief valve.
In an embodiment, the rotating machine 102 and motor 104 are attached to a foundation 110. In an embodiment, the foundation 110 is an isolation block for employed during data generation. The isolation block isolates the rotating machine 102 and motor 104 from other components that can introduce vibrations during data generation. For ease of illustration, the foundation 110 is illustrated as being of a particular size relative to the rotating machine 102. However, the foundation 110 can be of any size. As used herein, isolation includes fixing the component to an independent foundation as compared to the foundation of the surrounding environment. For example, within a structure such as a building, factory, or test site, a portion of the foundation and flooring of the structure is removed and a separate foundation is built to form an isolation block. Accordingly, an isolation block is a separate structure erected directly on the earth. In addition to an isolation block, other vibration attenuation techniques or components may be used to isolate the rotating machine. For example, pipe supports, bearing supports, and other impact absorption features can be implemented.
The block diagram of
The block diagrams of
During operation, various operating conditions can be detrimental to a rotating machine (e.g., rotating machine 102 of
In an example, a normal operating condition represents a regular, natural, or desired standard of operation. During a normal operating condition, the pump provides fluid transfer functionality as expected according to the inputs to the pump. By contrast, during a dry run operating condition, the pump is operating (e.g., the rotor is being driven by a motor) without fluids. Operating a vane pump without fluids can damage the pump. During misalignment, the motor or gearbox shaft is not in alignment with the pump input shaft.
During cavitation, for example, fluid boils within the pump during operation. The boiling fluid is typically due to the presence of an inlet vacuum great enough that causes pressure to drop so that fluid boils at a temperature lower than expected at atmospheric pressure. For example, a strainer upstream of the pump can be clogged or otherwise blocked, thus choking the inlet flow and causing a vacuum at the inlet. The vacuum causes small gas bubbles to form within the fluid and these bubbles will soon after collapse/implode inside the pump causing damage. Evidence of cavitation includes, but is not limited to, excessive noise and vibration.
Some operating conditions are determined based upon, at least in part, combinations of other operating conditions. For example, flow rate is an operating condition that is dependent on other operating conditions, such as speed (e.g., rotations per minute (RPM) of the motor) and differential pressure at the pump. In an embodiment, higher speeds relate directly to higher flow rates. To set a predetermined flow rate for data generation, the operating conditions on which flow rate depends are plotted and trend lines used to determine the dependent operating condition.
A trend line 206 is overlaid on the graph 200 generally connecting the data points that represent normal operating conditions. The trend line 206 corresponds to a particular RPM. In an example, if the rotations per minute (RPM) and differential pressure are known, the flow rate can be determined by locating known values on the graph 200. In an embodiment, graph generation includes overlaying trend lines that connect normal operating conditions of the pump. For ease of illustration, a single RPM trend line is illustrated. However, multiple trend lines may be represented on the graph 200. In an embodiment, the graph 200 is created using vibration data generated under one or more predetermined operating conditions as described below. In real world vane pump operation, flow rates can be determined by locating the flow rate on the generated graph 200 using RPM (which is typically known or set) and differential pressure (which can be observed using a pressure meter). Thus, the present techniques enable a determination of flow rate without a flowmeter or other flow measurements.
Vibration data is generated while one or more operating conditions are applied to the operation of the pump. In an embodiment, a controller or processor is used to adjust control values, speed/RPM, or other variables to simulate one or more operating conditions. Predetermined operating conditions can be simulated by adjusting one or more components of a system under test, such as the motor, control valves, or pressures. Vibrations are measured or captured during data generation. In an embodiment, a vibration analyzer is used to process data captured by the sensor. For example, the vibration analyzer executes a time series analysis on the captured vibration data. Additionally, a data acquisition system (DAQ) is implemented to record system parameters such as speed, pressure, temperature, etc. In an embodiment, speed, power, and torque are measured via data acquisition device in the shaft system of the vane pump. In an embodiment, differential pressure is monitored and adjusted using control valves.
In an embodiment, one or more three axis accelerometers (e.g., sensor 120 of
For example, equipment used to develop the isolated vane pump vibration data includes an isolation block (e.g., foundation 110 of
Laser alignment equipment is used to verify, measure, and define one or more levels of misalignment. In an embodiment, multiple levels of misalignment determined. The levels of alignment can include, for example, near-perfection (e.g., aligned), within approved limits (e.g., slightly aligned, slightly misaligned, within a predetermined range or threshold), and not aligned (e.g., misaligned, heavily misaligned). In an embodiment, one or more levels of alignment are tested with the presence of any combination of other operating conditions, such as normal, dry run, cavitation, flow rate, proper engagement of the relief valve, aeration, fluid crystallization, vane wear, galled rotor, seizure damage, erosion, push rod wear or damage, unusual cylinder or liner wear, damage by large particles, bearing wear or damage, rotational bending fatigue, torsional fatigue, and the like. Isolated pump vibration data is generated with a large number of test runs with various permutations of the operating conditions.
The motor provides further constraints when generating isolated pump vibration data. In an embodiment, the motor (e.g., motor 104 of
To accurately characterize the vibrations generated under one or more predetermined operating conditions, a high number of tests are executed on a vane pump with constraints as described above. During each test, one or more predetermined operating conditions are replicated and isolated pump vibration data is generated as the vane pump operates. One or more accelerometers coupled with the vane pump captures the isolated pump vibration data. In an example, 1,269 runs of a test pump are executed to isolate the effects of predetermined operating conditions. Accordingly, the present techniques generate isolated pump vibration data by executing a large number of runs on a constrained vane pump. During isolated pump vibration data generation, the vibration data is logged at a high rate for a set period of time to enable a significant data population size. In an embodiment, the isolated pump vibration data along with the one or more predetermined operating conditions are used to train one or more models that enable predictive maintenance using vibration analysis of vane pumps. Additionally, in an embodiment real-world vibration data associated with the predetermined operating conditions is obtained and used to refine the isolated pump vibration data captured under the constraints using real-world vibration data. For example, real world data is obtained though beta testing.
Physics-Based Top Feature in Conjunction with Machine-Learning Based Classifier
At reference number 306, a plurality of feature extraction systems is illustrated. As used herein, a feature extraction system is one or more processes, techniques, or components used to characterize data input to the feature extraction system. In the example of
At block 308, the output of the one or more feature extraction systems is obtained by a machine learning (ML) model. The machine learning model predicts one or more operating conditions by classifying the data output by the feature extraction system into the one or more operating conditions. In an example, the machine learning model is a decision-tree-based ensemble machine learning algorithm that uses a gradient boosting framework (e.g., XGBoost). In an example, the machine learning model is a supervised learning algorithm consisting of a number of decision trees that are averaged (e.g., Random Forest). Additionally, in an example, the machine learning model as described herein is linear algorithm based on a cost function defined as a sigmoid function (e.g., logistic regression).
Accordingly, the at least one operating condition is identified by a likelihood operating condition exists based on the sensor data. In an example, the machine learning based classifier uses training data (e.g., isolated pump vibration data) to determine how the extracted features relate to one or more operating conditions. In the example of
Accordingly,
Generally, the feature extraction system decomposes the vibration data into a feature space. A feature is information regarding properties of the vibration data. For example, a feature is a particular characteristic in the data that is extracted using time domain techniques, frequency domain techniques, or any combination thereof. In an example, a feature extraction system applied to the vibration data is a wavelet transform. A wavelet transform is a mathematical function used to divide a given function or continuous time signal into different scale components. The wavelet transform provides frequency information with the corresponding temporal data. In an embodiment, a wavelet transform decomposes the input into wavelets of various scales in the time domain. Pre-processing data when the feature extraction system is a wavelet transform includes applying a low pass filter to raw accelerometer data to denoise the raw data. The wavelet transform is applied to the filtered data, and the resulting wavelets have variable window sizes and provide a local structure of the data in a time—frequency domain. In an example, raw accelerometer data is captured and pre-processed to raw filtered data that is reshaped into small packets of 100 subsamples, 60% training, 20% validation, and 20% test. The accelerometer data is transformed into wavelets. The wavelets may be a 128×128 resolution on scale. Wavelet transforms can be used effectively for transient feature extraction and extract signal features over the entire spectrum without a dominant frequency band. In an embodiment, the dimensionality of features extracted using wavelet transform based feature extraction is reduced via principal component analysis to transform the original extracted features into a new set of uncorrelated features. For normal, dry run, and cavitation, the wavelet patterns produced by the wavelet transforms are visually different. These distinct patterns are learned by the model during training. In an embodiment, the results according to the present techniques may be output via a confusion matrix.
In an example, a feature extraction system applied to the vibration data is a frequency domain analysis. Generally, the frequency domain analysis includes a fast Fourier transform (FFT), power spectral density (PSD), auto-correlation, and the like. The FFT translates the vibration data from the time domain into the frequency domain and features are extracted. The power spectral density of the vibration data can also be computed, and features extracted from the power spectral density. Generally, autocorrelation is the correlation of a signal with the delayed copy of itself. Features are extracted from the correlation are input to a machine learning based classifier. Pre-processing data when the feature extraction system is a frequency domain analysis includes applying a low pass filter to raw accelerometer data to denoise the raw data.
In this example, features are extracted as peak amplitudes on a chart charting against time lag in seconds. In an embodiment, for a subsample window of vibration data, the FFT, power spectral density, and autocorrelation are plotted. The peaks of each algorithm (FFT, power spectral density, and autocorrelation) are distinct and different for each of the conditions. In an embodiment, the machine learning algorithm distinguishes between conditions based on the peak of the respective frequency domain analysis plots. In another example, a feature extraction system applied to the vibration data is a statistical time domain feature extraction system. In this example, statistical time domain features include quartiles, mean, kurtosis, standard deviation, and the like.
In an embodiment, local characteristic decomposition (LCD) is used to transform the raw signals into a number of intrinsic scaled components (ISC). In the subsequent steps, any feature extraction system is applied to the ISC (e.g., FFT, wavelet transformations, kurtosis, mean, median etc.). For each feature extracted using post LCD-ISC (e.g., high dimensional features), dimensional reduction techniques like t-distributed stochastic neighbor embedding (t-SNE) or principal component analysis (PCA) are implemented. These reduced dimensional features can then be input into a machine learning based classifier for classifying into different pump conditions.
The block diagram of
Wavelet-Transforms in Conjunction with Convolutional Neural Network (CNN)
At reference number 406, wavelet transforms are illustrated. In the example of
At block 412, the performance of the machine learning model in predicting the one or more operating conditions is evaluated in a confusion matrix format. In embodiments, evaluation of the classification in a confusion matrix format enables visualization of the performance of the classifier.
The block diagram of
At reference number 506, a long short-term memory (LSTM) based architecture is illustrated. The LSTM processes a plurality of parallel sequences of vibration data. For example, a three axis accelerometer captures data that is associated with vibrations along the x, y, and z axes. Using an LSTM based architecture, the raw vibration data is filtered to remove noise. The LSTM then extracts features from the filtered signals and classifies the features into one or more operating conditions. In an embodiment, creating subsample windows of the raw vibration data for input into an LSTM based architecture includes partitioning the data into multiple overlapping windows. In an embodiment, the input data is classified into one or more operating conditions by using the prediction from the last time step as the classification head of the neural network. The LSTM based architecture as described herein implements a gate-based network (e.g., LTSM, Recurrent Neural Network, Gated Recurrent Units, etc.) to classify the vibration data into an operating condition without separate feature extraction for classification.
At block 508, the performance of the machine learning model in predicting the one or more operating conditions is evaluated in a confusion matrix format. In embodiments, evaluation of the classification in a confusion matrix format enables visualization of the performance of the classifier.
The block diagram of
At block 602 a rotating machine (e.g., rotating machine 102 of
At block 604, other sources of vibration are eliminated. For example, the other equipment associated with operating the rotating machine (and necessary to generate one or more predetermined operating conditions) are coupled with the rotating machine, motor, and drive system to generate vibration data. In an embodiment, the other equipment is mounted to other isolation blocks. In an embodiment, the other equipment is connected to the rotating machine, motor, and drive system using flexible piping to reduce any vibrations from the other equipment. At block 606, vibration data associated with one or more predetermined operating conditions of the pump is measured. In embodiments, the measured vibration data is isolated pump vibration data from the rotating machine. The isolated pump vibration data does not include noise from other sources of vibration, as the other sources of vibration are eliminated through strategic equipment placement, usage of isolation blocks, usage of flexible or vibration absorbing piping, and other vibration attenuation techniques.
The process flow diagram of
At block 702, sensor data (e.g., vibration data 302 of
At block 706, features are extracted from the sensor data according to the feature extraction system. For example, wavelet transform features are extracted from wavelet transforms. FFT features are extracted from and FFT transform. In an embodiment, the dimensionality of the extracted features is reduced. At block 708, the features are classified into at least one operating condition. For example, operating conditions include normal, dry run, cavitation, misalignment, flow rate, proper engagement of the relief valve, aeration, fluid crystallization, vane wear, galled rotor, seizure damage, erosion, push rod wear or damage, unusual cylinder or liner wear, damage by large particles, bearing wear or damage, rotational bending fatigue, torsional fatigue, and the like. In an embodiment, the models are stress tested by running multiple error conditions at once such as dry run and misalignment. Additionally, in an embodiment, a plurality of feature extraction systems are used to extract a respective plurality of feature sets. One or more classifiers are used to classify the feature sets into respective operating condition classifications. The respective operating condition classifications are combined into a final prediction.
At block 710, the at least one operating condition is output. In an embodiment, a representation of the at least one operating condition is rendered at a device. The representation informs a user of a status of the vane pump. In an example, the user is a technician monitoring the operation of the vane pump. Analyzing accelerometer data to determine operating conditions of a vane pump cannot be directly executed by humans. Accordingly, the operating condition is output in a human observable form. As used herein, a human observable form may refer to a form that is understood by humans. For example, audio may be output that indicates an operating condition. The output may be an electronic assistant announcing the operating condition. The output may be a series of chirps, alerts, or other auditory warnings that a dangerous operating condition is occurring. A human observable form may also be visual. For example, text may be rendered or displayed that indicates an operating condition. The visual output may also be changes in lighting, blinking, or other alerts regarding one or more operating conditions.
The process flow diagram of
The processor 804 is capable of processing instructions for execution within the system 800. The term “execution” as used here refers to a technique in which program code causes a processor to carry out one or more processor instructions. The processor 804 is capable of processing instructions stored in the memory 806 or on the storage device 810. The processor 804 may execute operations such as isolated pump vibration data generation and predictive maintenance using vibration analysis of vane pumps. The memory 806 stores information within the system 800. In some implementations, the memory 806 is a computer-readable medium. In some implementations, the memory 806 is a volatile memory unit. In some implementations, the memory 806 is a non-volatile memory unit.
The storage device 810 is capable of providing mass storage for the system 800. In some implementations, the storage device 810 is a non-transitory computer-readable medium. In various different implementations, the storage device 810 can include, for example, a hard disk device, an optical disk device, a solid-state drive, a flash drive, magnetic tape, or some other large capacity storage device. In some implementations, the storage device 810 may be a cloud storage device, e.g., a logical storage device including one or more physical storage devices distributed on a network and accessed using a network. In some examples, the storage device may store long-term data, such as isolated pump vibration data. Preset settings corresponding to the material placed within the containment center may also be stored. The input/output interface devices 840 provide input/output operations for the system 800. In some implementations, the input/output interface devices 840 can include one or more of a network interface devices, e.g., an Ethernet interface, a serial communication device, e.g., an RS-232 interface, and/or a wireless interface device, e.g., an 802.11 interface, a 3G wireless modem, an 8G wireless modem, etc. A network interface device allows the system 800 to communicate, for example, transmit and receive such data. In some implementations, the input/output device can include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 860. In some implementations, mobile computing devices, mobile communication devices, and other devices can be used.
A server or database system 802 can be distributively implemented over a network, such as a server farm, or a set of widely distributed servers or can be implemented in a single virtual device that includes multiple distributed devices that operate in coordination with one another. For example, one of the devices can control the other devices, or the devices may operate under a set of coordinated rules or protocols, or the devices may be coordinated in another fashion. The coordinated operation of the multiple distributed devices presents the appearance of operating as a single device.
In some examples, the system 800 is contained within a single integrated circuit package. A system 800 of this kind, in which both a processor 804 and one or more other components are contained within a single integrated circuit package and/or fabricated as a single integrated circuit, is sometimes called a microcontroller. In some implementations, the integrated circuit package includes pins that correspond to input/output ports, e.g., that can be used to communicate signals to and from one or more of the input/output interface devices 812.
Although an example processing system has been described in
The term “system” may encompass all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. A processing system can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, executable logic, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile or volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks or magnetic tapes; magneto optical disks; and CD-ROM, DVD-ROM, and Blu-Ray disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. Sometimes a server is a general purpose computer, and sometimes it is a custom-tailored special purpose electronic device, and sometimes it is a combination of these things. Implementations can include a back end component, e.g., a data server, or a middleware component, e.g., an application server, or a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.
In the foregoing description, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. The description and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. In addition, when we use the term “further comprising,” in the foregoing description or following claims, what follows this phrase can be an additional step or entity, or a sub-step/sub-entity of a previously-recited step or entity.