Detailed Description
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the described exemplary embodiments. It will be apparent, however, to one skilled in the art that the described embodiments may be practiced without some or all of these specific details. In the described exemplary embodiments, well known structures or processing steps have not been described in detail in order to avoid unnecessarily obscuring the concepts of the present disclosure.
The blocks within each block diagram shown below may be implemented by hardware, software, firmware, or any combination thereof to implement the principles of the present disclosure. It will be appreciated by those skilled in the art that the blocks described in each block diagram may be combined or divided into sub-blocks to implement the principles of the present disclosure.
The steps of the methods presented in this disclosure are intended to be illustrative. In some embodiments, the method may be accomplished with one or more additional steps not described and/or without one or more of the steps discussed. Furthermore, the order in which the steps of a method are illustrated and described is not intended to be limiting.
Embodiments of the present disclosure relate to methods, systems, devices, and media for determining an operating condition of a robot. The method of the present disclosure includes obtaining an operational dataset (e.g., an angular velocity dataset or a moment dataset) of the robot, the operational dataset including a first operational dataset subset (e.g., a set of angular velocity values of a first axis) associated with the first axis of the robot, the values in the first operational dataset representing first operational dataset values (e.g., the angular velocity values of the first axis) associated with the first axis, and analyzing the operational dataset to determine an operational condition of the robot. The method of the present disclosure analyzes the first operational data values contained in the first subset of operational data according to one or more decision rules, one or more pre-set thresholds, to determine if an abnormality (e.g., an aging, failure, etc.) exists in the operational condition of the first shaft. The method of the present disclosure outputs alert information in response to determining that the operating condition of the first shaft is abnormal. In some embodiments, the alarm information indicates that the first shaft is aged or that the first shaft is malfunctioning, thereby enabling a user to be alerted to a potential risk of malfunction in time.
The embodiment of the disclosure can monitor the operation data of the robot in time, determine the operation condition of the robot according to the characteristics of the operation data set of the robot, and determine whether the operation condition of the shaft of the robot is abnormal (such as aging, faults and the like), thereby reducing potential risks, saving maintenance cost and reducing the influence on production efficiency.
Fig. 1 is a diagram illustrating a system environment 100 for implementing embodiments of the present disclosure. The system environment 100 may involve three parts, a production network part 110, a cloud service platform part 120, and a user part 130.
The production network portion may include at least one robot 101 (shown as robots 101a, 101b, 101c, hereinafter collectively referred to as robots 101 for convenience) and at least one internet of things (Internet of Things, ioT) edge device 102 (shown as internet of things edge devices 102a, 102b, hereinafter collectively referred to as internet of things edge devices 102 for convenience). The robot 101 is, for example, an ABB robot, having at least a first axis. In the disclosed embodiment, the robot 101 is equipped with sensors, such as angular velocity sensors, torque sensors, etc., that may be used to collect respective operational data for each axis of the robot. In the disclosed embodiment, the robot 101 is also configured with a web service to transmit data through a network. In the disclosed embodiment, the internet of things edge device 102 is deployed close to the robot 101, making it easier to acquire data from the robot 101 and transfer the data. The internet of things edge device 102 may receive data from the robot 101 through a hypertext transfer protocol (Hyper Text Transfer Protocol, HTTP) interface. The internet of things edge device 102 may also perform preliminary computation and logic processing on the data. The internet of things edge device 102 may also transmit data to the cloud service platform portion 120, such as Azure cloud, via a message queue telemetry transport protocol (Message Queuing Telemetry Transport, MQTT).
Cloud service platform portion 120 may include object access 103 (IoT Hub), cloud services 104 (such as Azure cloud services, etc.), and applications 108. Cloud services 104 may include Virtual machines 105 (VMs) and databases 106 (such as structured query language (Structured Query Language, SQL) databases) running on cloud services 104, and may also include chart generation tools 107 (such as Power BI Embeded). Data from the internet of things edge device 102 is first sent to the object access 103 and then transmitted to the database 106 and stored in the database 106. Application 108 runs on VM 105 and retrieves data from database 106 for presentation, where chart generation tool 107 can generate a chart from the data in database 106 and present the chart to an interface of application 108. In the disclosed embodiment, the application 108 may also analyze the acquired data to determine the operating conditions of the robot 101 and present to the user 130.
The user 130 may learn and monitor the operating conditions of the robot 101 through the application 108. The user 130 may include, but is not limited to, an owner and maintenance personnel of the robot 101.
Fig. 2 is a flowchart illustrating a method 200 for determining an operating condition of a robot according to an embodiment of the present disclosure.
As shown in fig. 2, the method 200 comprises a step S201 in which a set of operational data of the robot is acquired, the set of operational data comprising a first subset { X 1,X2,...,Xn } of operational data associated with a first axis of the robot, wherein X i represents an i-th first operational data value associated with the first axis, i = 1, 2.
In some embodiments, the first subset of operational data { X 1,X2,...,Xn } is an angular velocity dataset comprising angular velocity values associated with the first axis. In some embodiments, the first subset of operational data { X 1,X2,...,Xn } is a torque dataset that includes torque values associated with the first axis. Angular velocity and moment are typical physical quantities that are convenient to acquire and can be used well to reflect the condition of the robot's axes. In some embodiments, other operational data values may also be selected as desired.
In some embodiments, the first operational data value is collected at predetermined time intervals over a predetermined period of time. In some embodiments, the first operational data value is collected by a respective sensor. Typically, hundreds to thousands of discrete data points may be acquired. Those skilled in the art will appreciate that the number of first operational data values collected is not limited.
In some embodiments, for example, the first subset of operational data may be a set of angular velocity values of the first axis, which may include 500 angular velocity values acquired by an angular velocity sensor associated with the first axis every one second over a period of 500 seconds, the angular velocity values being in radians per second. In still other embodiments, for example, the first subset of operational data may be a set of torque values for the first shaft, which may include 1000 torque values acquired every one second over a period of 1000 seconds by a torque sensor associated with the first shaft, the torque values being in newton meters.
The method 200 comprises a further step S202 in which the operational dataset is analyzed to determine the operational condition of the robot.
In some embodiments, the operational data set, and more particularly, the first operational data values contained in the first operational data subset, may be analyzed based on one or more decision rules, one or more pre-set thresholds to determine whether an abnormality exists in the operational condition of the first shaft, such as aging, failure, etc.
Fig. 3 is a flowchart illustrating a method 300 for determining an operating condition of a robot according to another embodiment of the present disclosure.
As shown in fig. 3, the method 300 comprises a step S301 in which a set of operational data of the robot is acquired, the set of operational data comprising a first subset of operational data { X 1,X2,...,Xn } associated with a first axis of the robot, wherein X i represents an i-th first operational data value associated with the first axis, i = 1, 2. This step is the same as step S201 and will not be described here again.
The method 300 further comprises a step S302 in which an average value of the first operational data values is calculated from the first operational data values comprised by the first operational data subset { X 1,X2,...,Xn }And standard deviation s, wherein the standard deviation s is calculated according to formula (1):
The upper limit determination value C mku and the lower limit determination value C mkl are calculated according to the formula (2) and the formula (3):
Wherein USL is the specification upper limit value and LSL is the specification lower limit value, and calculating a first determination value C mk and a second determination value C m according to the formula (4) and the formula (5):
Cmk=min{Cmku,Cmkl} (4)
In some embodiments, when the first operational data value is an angular velocity value of the first axis, wherein USL is a specification upper limit value of the angular velocity of the first axis specified at the time of development of the robot, LSL is a specification lower limit value of the angular velocity of the first axis specified at the time of development. The first determination value C mk and the second determination value C m characterize the extent to which the first operation data value tends to the specification upper limit value USL and the specification lower limit value LSL.
The method 300 further comprises a step S303 in which the first determination value C mk and the second determination value C m are compared with the first threshold D 1 and the second threshold D 2, respectively, to determine whether the first determination value C mk and the second determination value C m satisfy C mk≥D1 and C m≥D2 simultaneously.
If yes, that is, the first determination value C mk and the second determination value C m satisfy C mk≥D1 and C m≥D2 simultaneously, the process proceeds to step S304. In step S304, it is determined that the first axis is in good condition.
If not, that is, the first determination value C mk and the second determination value C m do not satisfy C mk≥D1 and C m≥D2 at the same time, the process proceeds to step S305. Step S305 will be described in detail later.
The first operation data value in good condition may tend to the average value in normal distribution, and the standard deviation may be small, which is more different from the specification upper limit value USL and the specification lower limit value LSL, so the first determination value C mk and the second determination value C m are relatively large. Using the first determination value C mk and the second determination value C m and reasonably setting the first threshold value D 1 and the second threshold value D 2 can effectively determine whether the first axis is in good condition.
In some embodiments, wherein the first threshold D 1 and the second threshold D 2 are preset based on a first determination value C mk and a second determination value C m, respectively, calculated from historical first operational data values associated with the first axis in good condition.
For example, taking the example in which the first operation data value is the angular velocity value of the first shaft, for a past predetermined period of time (for example, in the past year), the angular velocity values associated with the first shaft in good condition may be acquired, and based on these angular velocity values, the first determination value C mk and the second determination value C m are calculated according to the formula (4) and the formula (5) as the first threshold value and the second threshold value. Theoretically, the more and more accurate the acquired data, the more favorable the calculated first determination value C mk and second determination value C m are for making the determination result in step S303 accurately reflect the operation condition of the first axis of the robot.
In other embodiments, multiple sets of historical angular velocity values associated with the first axis in good condition may be collected for multiple past predetermined periods of time (e.g., each month of the past year), and for each set of historical angular velocity values, corresponding first and second determination values C mk and C m are calculated according to equations (4) and (5), respectively, resulting in multiple first and second determination values C mk and C m. The first and second thresholds may be determined based on at least some of the plurality of first determination values C mk and the plurality of second determination values C m. For example, the minimum value of the first determination values C mk is selected as D 1, and the minimum value of the second determination values C m is selected as D 2. Or for example, a value lower than the minimum value of the plurality of first determination values C mk by a certain proportion (for example, 5%) is selected as D 1, and the value of D 2 is similarly set.
In some embodiments, the first threshold D 1 may be 1.5 and the second threshold D 2 may be 2.
The method 300 further comprises a step S305 in which it is determined whether one of the following cases I) -V) is present for the first subset of operational data in response to the first determination value C mk and the second determination value C m not satisfying C mk≥D1 and C m≥D2 simultaneously.
If none of the cases I) -V) exists, the process proceeds to step S304. In step S304, it is determined that the first axis is in good condition.
If any of I) -V) exists, proceed to step S306 and step S307. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, alarm information is output. Steps S305 to S307 will be described in detail below in accordance with each of cases I) -V).
I) There is a continuous first number of first operational data values greater than the target value and there is a continuous second number of first operational data values less than the target value. I.e. there are consecutive m 1(m1 positive integers less than n) first running data valuesEach value being greater than the target value, or there being consecutive m 2(m2 positive integers less than n) first operational data valuesEach value is less than the target value.
In some embodiments, the target value is predetermined based on an average of historical first operational data values associated with the first axis in good condition. In some embodiments, the first number is predetermined empirically or on demand. In some embodiments, the second number is predetermined empirically or on demand.
If one of the cases in I) exists, steps S306-S307 are continued. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, in response to determining that the operation condition of the first shaft is abnormal, alarm information is output.
In some embodiments, for example, if there are 50 consecutive first shaft angular velocity values greater than the target value, then an operating condition anomaly of the first shaft is determined. Or, for example, if there are 50 consecutive first-axis angular velocity values smaller than the target value, it is determined that the operation condition of the first axis is abnormal.
Wherein the target value may be an average value obtained from a historical angular velocity value of the first shaft in good condition (for example, an angular velocity value of the first shaft in the past several months). The inventors have observed that, ideally, the angular velocity value of the first axis should fluctuate within a certain range of the target value (ideal value), if continuously greater than the average value or continuously less than the average value, indicating that there may be a certain deviation in the degree of freedom achieved by the first axis. Therefore, the average value of the historical angular velocity values of the first shaft in good condition is used as the target value to be judged as the reference, and whether the running condition of the first shaft is ideal or not can be accurately reflected.
By the feature of a certain number of first operation data values within a certain period of time, it is possible to efficiently determine whether the first operation data values deviate from a predetermined target value within a certain period of time, thereby determining the operation condition of the first shaft.
II) there is a continuous increase in the third number of first operational data values and a continuous decrease in the fourth number of first operational data values. That is, there are consecutive m 3(m3 positive integers less than n) first operational data values Or there are consecutive m 4(m4 positive integers less than n) first operational data values
In some embodiments, the third amount is predetermined empirically or on demand. In some embodiments, the fourth number is predetermined empirically or on demand.
If one of the conditions in II) exists, steps S306-S307 are continued. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, in response to determining that the operation condition of the first shaft is abnormal, alarm information is output. For this case, the alert information may indicate that the first axis is aged.
In some embodiments, for example, if there are 50 consecutive first axis angular velocity values continuously decreasing, it may be indicative that the first axis is at risk of aging. Or if there are 50 consecutive first axes of continuously increasing angular velocity values, it may be an indication that the first axes are at risk of ageing.
III) there is a continuous increase in the group average of the fifth number and a continuous decrease in the group average of the sixth number, wherein each group is a group of the first running data values of each continuous predetermined number, and the average of the first running data values in each group is the group average of the group. That is, the group average value denoted as Y j,Yj={Xjl-l+1,Xjl-l+2,...,Xjl};Yj is the average value of X jl-l+1,Xjl-l+2,...,Xjl, which is a group of the first operation data values of the number of each successive l (l is a positive integer smaller than n)There is a succession of m 5(m5 being a positive integer less than n) group averagesOr there is a continuous m 6(m6 as a positive integer less than n) group average
In some embodiments, the fifth number is predetermined empirically or on demand. In some embodiments, the sixth number is predetermined empirically or on demand.
If one of the conditions in III) exists, steps S306-S307 are continued. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, in response to determining that the operation condition of the first shaft is abnormal, alarm information is output. In this case, the alarm information may indicate that the first axis is aged.
In some embodiments, for example, when the first subset of operational data is 500 angular velocity values of the first axis, the first subset of operational data is a set of samples for every 5 consecutive angular velocity values, then the first subset of operational data includes a total of 100 sets of samples (each set of samples having 5 consecutive angular velocity values). If there is an average of angular velocities in consecutive 50 sets of samples that is continuously increasing, it may be indicative that the first shaft is at risk of aging. Or if there is a continuous decrease in the average value of the angular velocity in 60 consecutive sets of samples, it may indicate that the first shaft is at risk of aging.
The case III) is similar to the case II) in that whether the operation condition of the first shaft is abnormal is determined by determining whether there is a case in which the first operation data value continues to increase or decrease in units of a set of the first operation data values or a single first operation data value, respectively. By means of the change characteristics of a certain number of first operation data values within a certain period of time, the operation condition of the first shaft can be effectively determined, wherein III) the influence of the singular point values on the judging result can be further filtered out.
IV) there is a predetermined ratio of the difference between the group averages of two consecutive groups of first operating data values to the target value being greater than the predetermined deviation value, wherein the average of the first operating data values in each group is the group average of the group for each consecutive predetermined number of first operating data values. I.e. is present
Wherein, the group average value of Y j,Yj={Xjl-l+1,Xjl-l+2,...,Xjl};Yj is the average value of X jl-l+1,Xjl-l+2,...,Xjl, which is a group of first operation data values with the number of l (l is a positive integer less than n) per continuousY j and Y j+1 are any two consecutive groups of the first subset of operational data, Yj={Xjl-l+1,Xjl-l+2,...,Xjl},Yj+1={Xjl+1,Xjl+2,...,Xjl+l}; where T represents a target value, class represents a predetermined offset value, and p represents a predetermined ratio.
In some embodiments, as described above, the target value may be an average of historical first operational data values associated with the first axis in good condition. In some embodiments, the predetermined deviation value is predetermined based on quality control requirements. In some embodiments, the predetermined ratio is predetermined empirically or on demand.
If there is a case in IV), steps S306-S307 are continued. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, in response to determining that the operation condition of the first shaft is abnormal, alarm information is output. In this case, the alarm information indicates that the first shaft is malfunctioning.
In some embodiments, for example, when the first subset of operational data is 500 angular velocity values of the first axis, the first subset of operational data is a set of samples for every 10 consecutive angular velocity values, then the first subset of operational data includes a total of 50 sets of samples (each set of samples having 10 consecutive angular velocity values). If there are two consecutive sets of samples in which the average value of the angular velocity satisfies inequality (6), it is determined that the operation condition of the first shaft is abnormal. Wherein the target value may be predetermined from an average of historical angular velocity values of the first shaft in good condition (e.g., angular velocity values of the first shaft over the past several months). Wherein the predetermined deviation value is related to the quality control requirement, for example, the predetermined deviation value may be determined to be 7%, 15% and 20% according to the quality control requirement (primary, secondary and tertiary), and the Class is determined to be 7% when the quality control requirement is primary. Wherein the predetermined proportion p is a percentage value, which may be 40%, for example. For example, when the quality control requirement is one level, if presentAn operating condition abnormality of the first shaft is determined. Those skilled in the art will appreciate that the values of the offset value and p are not limited thereto and may be set as desired.
Through the increase proportion or the decrease proportion of a certain number of first operation data values in two continuous time periods, whether the operation condition of the first shaft meets the current quality control requirement can be effectively judged by utilizing reasonable quality control requirements.
V) there is a group average of a group of first operational data values greater than USL-3s and a group average of a group of first operational data values less than LSL +3s, wherein each successive predetermined number of first operational data values is grouped, and the average of the first operational data values in each group is the group average of the group. That is, the group average value denoted as Y j,Yj={Xjl-l+1,Xjl-l+2,...,Xjl};Yj is the average value of X jl-l+1,Xjl-l+2,...,Xjl, which is a group of the first operation data values of the number of each successive l (l is a positive integer smaller than n)There is an average value of any group Y j Or the average value of any group Y j
If there is a case in V), steps S306-S307 are continued. In step S306, an abnormality of the operation condition of the first shaft is determined. In step S307, in response to determining that the operation condition of the first shaft is abnormal, alarm information is output. In this case, the alarm information may indicate that the first shaft is malfunctioning.
In some embodiments, for example, when the first subset of operational data is 500 angular velocity values of the first axis, the first subset of operational data is a set of samples for every 10 consecutive angular velocity values, then the first subset of operational data includes a total of 50 sets of samples (each set of samples having 10 consecutive angular velocity values). If there is an average value of the angular velocity in any one of the sets of samples that is greater than USL-3s, or if there is an average value of the angular velocity in any one of the sets of samples that is less than lsl+3s, then it is determined that the operation condition of the first shaft is abnormal.
By determining whether the average value of a certain number of first operation data values within a certain period of time is far from the specification upper limit value or the specification lower limit value, the operation condition of the first shaft can be effectively determined.
Fig. 4 is a schematic diagram illustrating a general hardware environment in which a system according to an embodiment of the present disclosure may be implemented.
Referring now to FIG. 4, a schematic diagram of an example of a computing node 400 is shown. Computing node 400 is only one example of a suitable computing node and is not intended to suggest any limitation as to the scope of use or functionality of the embodiments described herein. Regardless, the computing node 400 is capable of implementing and/or performing any of the functions set forth above.
In computing node 400, there is a computer system/server 4012 that can operate in conjunction with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 4012 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers systems, mainframe computer systems, distributed cloud computing environments that include any of the above systems or devices, and the like.
Computer system/server 4012 can be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system/server 4012 can be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
As shown in FIG. 4, computer systems/servers 4012 in computing node 400 are shown in the form of general purpose computing devices. Components of computer system/server 4012 can include, but are not limited to, one or more processors or processing units 4016, a system memory 4028, a bus 4018 that couples various system components including the system memory 4028 to the processing unit 4016.
Bus 4018 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor, or a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include, but are not limited to, industry Standard Architecture (ISA) bus, micro channel architecture (MAC) bus, enhanced ISA bus, video Electronics Standards Association (VESA) local bus, peripheral Component Interconnect (PCI) bus, peripheral component interconnect express (PCIe), and Advanced Microcontroller Bus Architecture (AMBA).
Computer system/server 4012 typically includes a variety of computer system readable media. Such media can be any available media that is accessed by computer system/server 4012 and includes both volatile and nonvolatile media, removable and non-removable media.
The system memory 4028 may include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM) 4030 and/or cache memory 4032. Computer system/server 4012 can also include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, a storage system 4034 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, and commonly referred to as a "hard disk drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable, nonvolatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading from and writing to a removable, nonvolatile optical disk such as a CD-ROM, DVD-ROM, or other optical media. In such cases, each may be connected to bus 4018 through one or more data medium interfaces. As will be further depicted and described below, the memory 4028 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present disclosure.
By way of example, and not limitation, program/utility 4040 having a set (at least one) of program modules 4042 and an operating system, one or more application programs, other program modules, and program data can be stored in memory 4028. An operating system, one or more application programs, other program modules, and program data, or some combination thereof, may each include an implementation of a network environment. Program modules 4042 generally perform the functions and/or methods in the embodiments as described herein.
The computer system/server 4012 can also communicate with one or more external devices 4014 (such as a keyboard, a pointing device, a display 4024, etc.), one or more devices that enable a user to interact with the computer system/server 4012, and/or any device (e.g., a network card, a modem, etc.) that enables the computer system/server 4012 to communicate with one or more other computing devices. Such communication may occur via an input/output (I/O) interface 4022. Also, the computer system/server 4012 can communicate with one or more networks, such as a Local Area Network (LAN), a general Wide Area Network (WAN), and/or a public network (e.g., the internet), via the network adapter 4020. As depicted, the network adapter 4020 communicates with other components of the computer system/server 4012 via bus 4018. It should be appreciated that although not shown, other hardware and/or software components may be utilized in conjunction with computer system/server 4012. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems, among others.
The present disclosure may be embodied as systems, methods, and/or computer program products. The computer program product may include a computer-readable storage medium(s) having computer-readable program instructions thereon for causing a processor to perform aspects of the present disclosure.
A computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of a computer-readable storage medium includes a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or an in-groove protrusion structure having instructions stored thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as a transitory signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a pulse of light through a fiber optic cable), or an electrical signal transmitted through an electrical wire.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to individual computing/processing devices or over a network (e.g., the internet, a local area network, a wide area network, and/or a wireless network) to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards these computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
Computer readable program instructions for performing the operations of the present disclosure may be assembly instructions, instruction Set Architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as SMALLTALK, C ++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (e.g., through the internet using an internet service provider). In some embodiments, the custom electronic circuit, including, for example, a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), may be personalized by utilizing state information of computer readable program instructions that may be executed in order to perform aspects of the disclosure.
Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Those skilled in the art will also appreciate that the various operations illustrated in the order of execution in the embodiments of the disclosure are not necessarily performed in the order illustrated. The order of operations may be adjusted as desired by those skilled in the art. Those skilled in the art may add more operations or omit some of them as desired.
The description of the various embodiments of the present disclosure has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application, or the technical improvement of the technology found in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.