Various embodiments of the present technology generally relate to industrial automation system design. More specifically, some embodiments of the present technology relate to platforms and tools for project acceleration.
The rapid evolution in industrial automation systems has led to many factory environments that are partially or completely automated. Such automated systems allow for improved output with minimal input from humans. For example, automated manufacturing processes are common in automotive industry, chemical industry, food and beverage industry, mining and metal industries, and others. The industrial automation systems are often custom solutions designed to solve unique needs within each industry and for each company. Moreover, these industrial automation systems are more complex than ever and require tighter integration between other devices or systems on the plant floor and the rest of the enterprise. This integration requires a secure network infrastructure, smart devices for efficient data collection, and the ability to turn data into actionable information.
The expanding availability of options for motors, motor controllers, sensors, switches, relays, interface options, and various other components make designing, building, and maintaining these industrial automation systems more difficult than even. New parts are constantly being introduced, while some old parts are redesigned and replaced with improved versions or phase out of production. Moreover, some parts are compatible while other parts are not. As such, developing initial cost estimates, defining project scope, budget, total cost of ownership, implementation timelines, and risk assessments can all be challenging. Moreover, ensuring compliance with various safety and governmental standards that can vary across industries is another challenge in designing complex industrial automation solutions.
Various embodiments of the present technology generally relate to industrial automation system design. More specifically, some embodiments of the present technology relate to platforms and tools for project acceleration. Some embodiments provide for a method for operating an integrated platform with project acceleration features to assist users within various industrial automation system lifecycles. This can include creating initial system designs, creating and managing multiple reviews, understanding component lifecycles, identifying potentially missing elements, efficiently answering questions, and the like. In accordance with some embodiments, the project goals within an industrial automation system design can be analyzed. A recommended review cycle can be generated so that at various development points, the industrial automation system design can be submitted for review (e.g., to an expert or expert analysis system). Activity within an application (e.g., a bill of materials builder, a studio suite, a repair management tool) hosted by the integrated platform can be monitored to identify an indication that one of the development points has been reached. A notification can be transmitted to a reviewer (e.g., an expert or expert system) to review the industrial automation system design.
In some embodiments, missing components within the industrial automation system design can be automatically identified based on the project goals or similar project designs stored within a database. This can be done, in part, by analyzing the project goals includes using machine learning or artificial intelligence to infer project goals from the industrial automation system design. The machine learning or artificial intelligence engine can analyze multiple cross-platform files accessible via the integrated platform and generate an initial design of at least a portion of the industrial automation system design based on an output from the machine learning engine.
Embodiments of the present invention also include computer-readable storage media containing sets of instructions to cause one or more processors to perform the methods, variations of the methods, and other operations described herein.
While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative embodiments of the invention. As will be realized, the invention is capable of modifications in various aspects, all without departing from the scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
Embodiments of the present technology will be described and explained through the use of the accompanying drawings in which:
The drawings have not necessarily been drawn to scale. Similarly, some components and/or operations may be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments of the present technology. Moreover, while the technology is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the technology to the particular embodiments described. On the contrary, the technology is intended to cover all modifications, equivalents, and alternatives falling within the scope of the technology as defined by the appended claims.
Various embodiments of the present technology generally relate to industrial automation system design. More specifically, some embodiments of the present technology relate to platforms and tools for project acceleration. Creating complex industrial automation systems requires a number of individuals in differing roles performing different activities. At the highest level the roles of these individuals can be divided into a presale phase and a post-sale phase. During the presale phase members of the sales team (e.g., system integrators and distributors) are tasked with understanding the customer's needs, initially designing a solution, and generating one or more estimates. Other tasks can include, procurement, ensure design will work, generating quotes and proposals, and the like.
Given the complexity of many of the industrial automation machine designs, an initial quote providing a rough order of magnitude is often prepared first. If the customer is comfortable with the rough order of magnitude of the quote, then more time is spent refining the project and quote. Depending on the complexity of the project, these steps may take several days to several months. There may often be many layers of review by different individuals before a project design is finalized. Keeping the reviewers on track and ensuring needed updates to the design are timely made can be difficult. Ultimately, once the quote is ultimately accepted (possibly after some modifications) by the customer, the next step is to build and deliver the industrial automation machine.
Building and delivering the industrial automation machine is part of the post-sale phase can include development work around delivering the machine. In many cases, control engineers write programs that will control the industrial automation system (e.g., read the inputs, control the outputs, etc.), design and build human machine interfaces (HMI), configure devices (e.g., making sure each component has the right firmware and other objects), and the like. Once the machine is installed, eventually the customer will need support for routine maintenance, repairs, and/or upgrades for this custom system.
Various embodiments of the present technology provide an integrated platform that provides optimization and acceleration tools that can be used across all of the multiple lifecycle phases of an industrial automation system. In accordance with various embodiments, the integrated platform can take whatever is specified in a presale phase and easily open up that information in a corresponding tool to address needs in the post-sale phase to allow for all device commissioning, programming, and configuration without any importing, exporting, or recreation of presale files. As such, any layouts or designs can be easily opened up within the platform by users with differing roles. Moreover, if in the post-sale phase, a control engineer decides that a specific aspect of control system was left out, the control engineer can summon the capability of the presale phase to expand the system. As a result, there is a seamless integration (e.g., no user ever has to take additional steps to keep in presale records in sync with the post-sale) as project activity is represented by the same underlying representation or basis within the integrated platform.
Moreover, once an industrial automation system is commissioned, the integrated platform can provide guidance on selection to bring the system up to a contemporary configuration as components change. Various embodiments can use artificial intelligence to form presale recommendations and optimized experiences based on how components are connected and working in post-sale environments. For example, some embodiments can quickly review and analyze databases with records of existing configurations. If part A is being switched out with part B pretty often once an industrial automation machine is up and going, then the presale experience can be customized to recommend part B. Similarly, if there is a particular configuration for a specific application that is successful, then the integrated platform can streamline the upfront specification time by recommending the configuration. For example, if a design is being created for a vertical form post seal machine running at particular rate, the integrated platform can review typically specified and validated designs which the presale user can use this as a starting point as well as identifies components or configurations that maybe now work better for their machine.
Various embodiments of the present technology provide for a wide range of technical effects, advantages, and/or improvements to computing systems and components. For example, various embodiments include one or more of the following technical effects, advantages, and/or improvements: 1) holistic transformation of an automation project that effectively broadens the scope of the project in a way that allows the project files to work within an environment that treats the project as a lifecycle and not just a onetime deliverable for specific phase; 2) use of integrated management project lifecycle phases that allow the project to be represented in a consistent way across multiple phases with different users; 3) proactive summoning capability of what has be traditionally seen as presale capability so that these capabilities are available at any time during the lifecycle; 4) use of unconventional and non-routine computer operations to contextually provide notifications and recommendations for component (or alternative component) selection based on lifecycle situations, delivery situations (e.g., parts still available but harder to get), performance considerations (e.g., a new switch to increase bandwidth), and other realization factors; 5) cross-platform integration of machine learning to more efficiently scope and surface component selection information; 6) integration of artificial intelligence to review customer activity and form intelligent presale and/or repair recommendations based on how historical designs are connected and working in post-sale environments; 7) changing the manner in which a computing system reacts to design and building of industrial automation machines; 8) automatic setting and enforcement of review cycle workflows based on best practices; and/or 9) changing the manner in which a computing system reacts to user interactions and feedback.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present technology. It will be apparent, however, to one skilled in the art that embodiments of the present technology may be practiced without some of these specific details.
The techniques introduced here can be embodied as special-purpose hardware (e.g., circuitry), as programmable circuitry appropriately programmed with software and/or firmware, or as a combination of special-purpose and programmable circuitry. Hence, embodiments may include a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic devices) to perform a process. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), magneto-optical disks, ROMs, random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
The phrases “in some embodiments,” “according to some embodiments,” “in the embodiments shown,” “in other embodiments,” and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one implementation of the present technology, and may be included in more than one implementation. In addition, such phrases do not necessarily refer to the same embodiments or different embodiments.
As illustrated in
At the user experience layer, customers and partners can interface with a portal in the usual ways, e.g. in the context of web browsers and application interfaces, but also via new types of devices, such as smart speakers, wearable devices, augmented reality devices, and the like. Integrated security capabilities will span all layers, reaching from the user experience layer, up through the applications and tools, to the compute engine 140.
Computing devices 110A-110N can include network communication components that enable the mobile devices to communicate with remote servers (e.g., hosting the applications and tools 125, virtual assistances 130, etc.) or other portable electronic devices by transmitting and receiving wireless signals using licensed, semi-licensed or unlicensed spectrum over a communications network. In some cases, communication network may be comprised of multiple networks, even multiple heterogeneous networks, such as one or more border networks, voice networks, broadband networks, service provider networks, Internet Service Provider (ISP) networks, and/or Public Switched Telephone Networks (PSTNs), interconnected via gateways operable to facilitate communications between and among the various networks. The communications network can also include third-party communications networks such as a Global System for Mobile (GSM) mobile communications network, a code/time division multiple access (CDMA/TDMA) mobile communications network, a 3rd or 4th generation (3G/4G) mobile communications network (e.g., General Packet Radio Service (GPRS/EGPRS)), Enhanced Data rates for GSM Evolution (EDGE), Universal Mobile Telecommunications System (UMTS), or Long Term Evolution (LTE) network), or other communications network.
Applications and tools 125 can include software that is useful for creating, building, and managing industrial automation systems. For example, as illustrated in
The machine learning and/or artificial intelligence can be used to improve the user experience. For example, the end-to-end user experience in some embodiments will allow for various personalization layers that differ based on who a person is, their role within an organization, their team, and other factors. As a user engages with the applications and tools 125, virtual assistants 130, web portal, and/or other channels, the user's experience can be customized based on these factors. Different work flows, different data streams, and/or different features and functionality can be exposed to the user based on their profile and interactions.
In accordance with various embodiments, compute engine 140 supplements the personalized user experience by surfacing recommendations to end users in the context of their work flow. In some embodiments, compute engine 140 can recommend product configurations, project recommendations, build of material recommendations, and bid recommendations. Compute engine 140 may also be configured to access past histories of builds, configurations, and purchases across a spectrum of users and deployments to optimize a user's project for its current context.
In some embodiments, compute engine 140, in conjunction with applications and tools 125, can accelerate the project development process for end users. Compute engine 140 can pre-select components for a project based on an analysis of past projects by a specific user and projects developed by other users. A project accelerator (not shown) can integrate with compute engine 140 to surface recommended components for a project. In addition, a given project can be optimized based on what is most important to the user (or user's company), such as time to delivery, cost, component availability, or performance considerations. The compute engine 140 can use a project optimizer integrated with an accelerator to assist a user in the project development phase. The optimizer within compute engine 140 also accesses historical data sets 145 from a wide range of contexts to arrive at an optimal project design for a given context. In addition, repair and maintenance records 150, operational data 155 from customer sites 160, and the like can also be used by compute engine 140 to create customized user experiences and recommendations.
User environment 210 can make request to integrated platform to run multiple applications based on a common data file 220. In accordance with various embodiments, integrated platform 230 can take whatever is specified in a presale phase (e.g., using the BOM builder) and easily open up that information in a corresponding tool to address needs in the post-sale phase to allow for all device commissioning, programming, and configuration without any importing, exporting, or recreation of presale files. As such, any layouts or designs can be easily opened up within the platform by users with differing roles. Moreover, if in the post-sale phase, a control engineer decides that a specific aspect of control system was left out, the control engineer can summon the capability of the presale phase to expand the system. As a result, there is a seamless integration (e.g., no user ever has to take additional steps to keep in presale records in sync with the post-sale) as project activity is represented by the same underlying representation or basis within integrated platform 230.
The user environment can request data from integrated platform 230. Integrated platform 230 can make one or more queries to query service to access the underlying data file 220 for the project. Data file 220 can be in a format to optimize the capabilities of the tools and applications within the user environment. The needs for different lifecycles (e.g., presale and post-sale) can be holistically addressed by the shared data file. For example, data file 220 can have an XML based file structure in some embodiments. Data file 220 can accommodate the creation of new projects and not require the system to go back and change the way the consuming applications would work. The underlying structure the bid builder would access the data file to generate bid, read and write to data file 220. The other applications can also read and write to the same data file 220. Moreover, meta data within data file 220 can indicate which data is relevant for a particular project lifecycle phase.
In some embodiments, as the results are returned from query service 240, the data from data file 220 can be formatted (if needed) by integrated platform 230 so that the tools and applications within user environment 210 can present the data according to the role of the user. As a result, industrial automation projects can be put through different prisms, lenses, or frames for the optimal presentation within user environment 210. For example, the prisms, lenses, or frames can include, but are not limited to, a lowest cost frame, fastest delivery of components frame, fastest communication speeds frame, quickest available systems as part of a BOM frame, and/or the like.
Integrated platform 230 can also analyze the data (e.g., using machine learning or artificial intelligence) from multiple projects, companies, and roles to generate an enhanced or optimized user experience within user environment 210. For example, in a presale phase, integrated platform can generate initial machine designs based on characteristics about the user. In addition, notifications indicative of lifecycle situations, delivery situations (e.g., parts still available but harder to get), performance considerations (e.g., a new switch to increase bandwidth) and the like may also be automatically surfaced to influence the user's experience and selection. As another example, the tools and applications may submit (e.g., periodically or in real-time) system layouts for automated review and analysis by integrated platform 230. The validation capability provided by integrated platform 230, in some embodiments, can help the user ensure selected components are compatible, desirable, and/or most efficient in generate a proposal or quote.
While not illustrated in
The memory may be used to store instructions for running one or more applications or modules on one or more processor(s). For example, the memory could be used in one or more embodiments to house all or some of the instructions needed to execute the functionality of, prioritization module 320, role detection module 325, company module 330, delivery analyzer 335, cost analyzer 340, availability analyzer 345, performance analyzer 350, project analyzer 355, lifecycle phase analyzer 360, recommendation module 365, personalization module 370, and acceleration module 375. Some embodiments may also include an operating system that provides a software package that is capable of managing the hardware resources the integrated platform. The operating system can also provide common services for software applications running on one or more processor(s).
Prioritization module 320 can identify the priorities the user. This can be based on a variety of information and/or inferences made over time from historical interactions, user role, project lifecycle phase, company preferences, and the like. For example, role detection module can identify the current role of a user. In some cases, this may be easy as a user may only have one role such as a presale distributor. However, in other cases this may be more complicated as the user's role may change overtime for a particular project and/or project lifecycle phase. As such, role detection module 325 can access profile information, project information, and monitor current activity within the integrated platform by the user. The user's activity may be suggestive of the current role (e.g., based on selection of tool or application, specific inquiries, specific actions or selections, and the like). Company module 330 can use data provided by the company to set a profile for the company. For example, the company profile may indicate specific safety or operational standards they would like to comply with, general deadlines and timeframes, cost constraints, and the like. As such, prioritization module 320 can use information from each of these to prioritize the presentation (e.g., of components) within a tool or application.
In order to create an enhanced or optimized user experience various information may be needed to make information decisions or recommendations. In some embodiments, delivery analyzer 335 can analyze current inventory, order, presale activity, material shortages, geographical locations, and the like to identify any potential issues with delivery of components. Cost analyzer 340 can review the project, project goals, project priorities, and the like to analyze the costs of each component and generate alternative recommendations. For example, in some embodiments cost analyzer can not only review the immediate costs, but also the lifetime costs to own particular components and component configurations. While some components may be cheaper initially, the lifetime costs of the component may be more expense.
Availability analyzer 345 analyze current inventory, historical inventory, current orders, presale activity, component lifecycle plans, and the like to identify any potential issues with availability of components as replacement parts within a desired time horizon. For example, a particular switch may be in the process of being phased out of production. Equivalent components may have slightly different dimensions or ratings. As such, availability analyzer can identify the potential issue and alert the user. The user may still select this component, but at least the decision is based on knowledge the component is being phased out and replacement parts may have different dimensions.
Performance analyzer 350 can analyze the industrial automation design and generate recommendations for improving throughput, reducing failure rates, reducing energy consumption, and/or other performance characteristics of the design. Project analyzer 355 can analyze the compliance with various priorities identified by the prioritization system and generate one or more recommendations. Lifecycle phase analyzer 360 can analyze the lifecycle of the industrial automation design and generate recommendations for different components to improve the design.
Recommendation module 365 can take the information from delivery analyzer 335, cost analyzer 340, availability analyzer 345, performance analyzer 350, project analyzer 355, and/or lifecycle phase analyzer 360 to generate a holistic enhanced presentation of information that will allow the user to make informed decisions. Personalization module 370 presents the recommendations in an order and/or manner personalized to the user within each of the applications or tools. In some embodiments, acceleration module 375 can accelerate the initial designs based on characteristics about the user and/or project. For example, acceleration module can generate an initial design or selection of components based on lifecycle situations, delivery situations (e.g., parts still available but harder to get), performance considerations (e.g., a new switch to increase bandwidth) and the like to accelerate the user's experience.
Once the data is accessed, formatting operation 425 can select and format the data according to the current role of the user and the access tool requesting the information. In some embodiments, formatting operation may present a high-level summary of relevant information for decisions or management which can be refined with more detail upon user requests. Determination operation 430 determines whether the tool or application makes any changes to the data file. When determination operation 430 determines no changes were made (e.g., to the bill of materials, electrical layout, etc.), then determination operation 430 branches to recordation operation 435 where access to the file is recorded. When determination operation 430 determines that changes were made to the file (e.g., component updates, different replacement parts, electrical redesign, etc.), then update operation 440 can update the file for use across all lifecycle inquires and tool requests. For example, a change made to a component during a repair will update the bill of material. This can be useful for example, if a user wants to duplicate the industrial automation machine at a different location. In this way, the machine remain identical and later design changes are automatically reflected in an updated bill of materials for the new machine.
Receiving operation 625 receives the data and generation operation 630 generates one or more initial starting designs. These designs can be presented to the user during presentation operation 635. The user of the application or tool is then free to ignore or start with one of these designs. The application or tool may identify a previous design made entirely from the current user or indicate that the design is a hybrid design across multiple companies or users.
Projection identification operation 710 can analyze the current design and the goals to identify specific projects (e.g., power system design, part translation design, sub-part assembly, final assembly, wiring, testing, etc.) within the master industrial automation system design. Analysis operation 715 can analyze similar projects and/or sub-projects from other designers (e.g., by accessing cross-platform files that include the designs of other projects). While these files may not be shared directly, useful information for project acceleration (e.g., identifying missing parts, components, sub-designs, etc.) can be identified (e.g., using machine learning techniques). Project analysis operation 720 can automatically review the current design in view of these similar projects. Any recommendations can be surfaced (e.g., on a GUI). For example, the recommendations may include alternative component recommendations, missing subsystems, alternative designs, identification of non-compliance (e.g., with various governmental or industry standards), and the like.
Traditionally, handing off information and notifications can be really slow. Various embodiments of the present technology provide project acceleration capability by providing a workflow tool that can notify someone that they need to look at current state of project design.
Monitoring operation 815 can monitor the state the design. This may happen as the user is creating the initial design or bid, upon request from the user, at particular intervals (e.g., end of each day.) Determination operation 820 can determine if the design, or part of the design (e.g., electrical subsystem), is complete. When determination operation 820 determine the design, or part of the design, is not complete then determination operation 820 branches to monitoring operation 815 where the state of the design is again monitored. When the determination operation 820 determines that the design, or part of the design, is complete, then determination operation 820 branches to notification operation 825 where a notification is sent to a review to review the project design or assigned part of the project design (e.g., compliance with safety standards). The review can be allowed access to needed information within the integrated platform (see, e.g.,
Once an indication is received that the review is completed, determination operation 830 determines whether any changes are needed to the design. When determination operation 830 determines that no changes are needed, then determination operation 830 branches to initiation operation 835 where the next development phase is initiated. When determination operation 830 determines that changes are needed, then determination operation 830 branches to redesign operation 840 where a redesign workflow is initiated, and the project is updated. From redesign operation 840, monitoring operation 815 is invoked
The automated response can be evaluated by determination operation 920. The evaluation can be automated (e.g., using machine learning or artificial intelligence) or from an input from the user. When determination operation 920 determines that the answer is satisfying, the determination operation 920 branches to update operation 925, where the cross-platform file can be updated. When determination operation 920 determines that the answer is satisfying, the determination operation 920 branches to identification operation 930 where an expert is identified. The expert can be identified based on experience, company affiliation, degrees, certifications, and/or other factors. The expert may be a distributor, a system integrator, a customer, an OEM employee, an employee associated with the integrated platform, etc. Once, identified, the communication operation 935 can initiate a communication channel between the expert and the user. For example, in accordance with various embodiments, the communication channel may be a chat window, an e-mail introduction, a video call, a voice call, or the like. As a result, this process can accelerate the transfer and distribution of tribal knowledge within a large group of individuals as people design, upgrade, or expand various industrial automation systems.
Moreover, the expert analysis provided by some embodiments provides insight into the inventory process that is more than just a snapshot in time. As a result, the inventory experience become a living breathing set of data. For example, if a part is schedule to be discontinued or production is going to be limited. Active notifications via the expert subsystem of the integrated platform will help users may more practical design choice based on information that historically has been impossible to effectively distribute.
Industrial automation environment 1100 can be an automobile manufacturing factory, food processing plant, oil drilling operation, microprocessor fabrication facility, or some other type of industrial enterprise. Machine system 1110 could include a sensor, drive, pump, filter, drill, motor, robot, fabrication machinery, mill, printer, or any other industrial automation equipment, including their associated control systems. A control system can include, for example, industrial controller 1115, which could include automation controllers, programmable logic controllers (PLCs), programmable automation controllers (PACs), or any other controllers used in automation control of machine system 1110. Additionally, machine system 1110 could comprise other industrial equipment, such as a brew kettle in a brewery, a reserve of coal or other resources, or any other element that may reside in an industrial automation environment 1100.
Machine system 1110 may continually produces operational data over time. The operational data can indicate the current status of machine system 1110, such as parameters, pressure, temperature, speed, energy usage, overall equipment effectiveness (OEE), mean time between failure (MTBF), mean time to repair (MTTR), voltage, throughput volumes, times, tank levels, or any other performance status metrics. Machine system 1110 and/or controller 1115 is capable of transferring the operational data over a communication link to database system 1120, application integration platform 1125, and computing system 1105, typically via a communication network. Database system 1120 could comprise a disk, tape, integrated circuit, server, or some other memory device. Database system 1120 may reside in a single device or may be distributed among multiple memory devices.
Application integration platform 1125 comprises a processing system and a communication transceiver. Application integration platform 1125 may also include other components such as a router, server, data storage system, and power supply. Application integration platform 1125 provides an example of an application server, although alterative configurations could be used. Application integration platform 1125 may reside in a single device or may be distributed across multiple devices. Application integration platform 1125 may be a discrete system or may be integrated within other systems—including other systems within industrial automation environment 1100. In some examples, application integration platform 1125 could comprise a FactoryTalk® Vantage Point server system provided by Rockwell Automation, Inc.
The communication links over which data is exchanged between machine system 1110, industrial controller 1115, database system 1120, application integration platform 1125, and communication interface 1130 of computing system 1105 could use metal, air, space, optical fiber such as glass or plastic, or some other material as the transport medium—including combinations thereof. The communication links could comprise multiple network elements such as routers, gateways, telecommunication switches, servers, processing systems, or other communication equipment and systems for providing communication and data services. These communication links could use various communication protocols, such as TDM, IP, Ethernet, telephony, optical networking, packet networks, wireless mesh networks (WMN), local area networks (LAN), metropolitan area networks (MAN), wide area networks (WAN), hybrid fiber coax (HFC), communication signaling, wireless protocols, communication signaling, peer-to-peer networking over Bluetooth, Bluetooth low energy, Wi-Fi Direct, near field communication (NFC), or some other communication format, including combinations thereof. The communication links could be direct links or may include intermediate networks, systems, or devices.
Computing system 1105 may be representative of any computing apparatus, system, or systems on which the event data saving processes disclosed herein or variations thereof may be suitably implemented. Computing system 1105 provides an example of a computing system that could be used as either a server or a client device in some implementations, although such devices could have alternative configurations. Examples of computing system 1105 include mobile computing devices, such as cell phones, tablet computers, laptop computers, notebook computers, and gaming devices, as well as any other type of mobile computing devices and any combination or variation thereof. Examples of computing system 1105 also include desktop computers, server computers, and virtual machines, as well as any other type of computing system, variation, or combination thereof. In some implementations, computing system 1105 could comprise a mobile device capable of operating in a server-like fashion which, among other uses, could be utilized in a wireless mesh network.
Computing system 1105 includes processing system 1135, storage system 1140, software 1145, communication interface 1130, and user interface 1150. Processing system 1135 is operatively coupled with storage system 1140, communication interface 1130, and user interface 1150. Processing system 1135 loads and executes software 1145 from storage system 1140. Software 1145 includes application 1155 and operating system 1160. Application 1155 may include the design acceleration operations described herein in some examples. When executed by computing system 1105 in general, and processing system 1135 in particular, software 1145 directs computing system 1105 to operate as described herein or variations thereof. In this example, user interface 1150 includes display system 1126, which itself may be part of a touch screen that also accepts user inputs via touches on its surface. Computing system 1105 may optionally include additional devices, features, or functionality not discussed here for purposes of brevity.
Storage system 1140 may comprise any storage media readable by processing system 1135 and capable of storing software. Storage system 1140 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Storage system 1140 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems. Storage system 1140 may comprise additional elements, such as a controller, capable of communicating with processing system 1135. Examples of storage media include random access memory, read only memory, and flash memory, as well as any combination or variation thereof, or any other type of storage media. In some implementations, the storage media may be a non-transitory storage media. In some implementations, at least a portion of the storage media may be transitory. It should be understood that in no case is the storage media a propagated signal.
Software stored on or in storage system 1140 may comprise computer program instructions, firmware, or some other form of machine-readable processing instructions having processes that when executed by processing system 1135 direct the processing system 1135 to operate as described herein.
The software may also include user software applications. The software may be implemented as a single application or as multiple applications. In general, the software may, when loaded into processing system 1135 and executed, transform processing system 1135 from a general-purpose device into a special-purpose device customized as described herein.
The functional block diagrams, operational sequences, and flow diagrams provided in the Figures are representative of exemplary architectures, environments, and methodologies for performing novel aspects of the disclosure. While, for purposes of simplicity of explanation, the methodologies included herein may be in the form of a functional diagram, operational sequence, or flow diagram, and may be described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
The included descriptions and figures depict specific implementations to teach those skilled in the art how to make and use the best mode. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these implementations that fall within the scope of the invention. Those skilled in the art will also appreciate that the features described above can be combined in various ways to form multiple implementations. As a result, the invention is not limited to the specific implementations described above, but only by the claims and their equivalents.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” As used herein, the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The above Detailed Description of examples of the technology is not intended to be exhaustive or to limit the technology to the precise form disclosed above. While specific examples for the technology are described above for illustrative purposes, various equivalent modifications are possible within the scope of the technology, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.
The teachings of the technology provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the technology. Some alternative implementations of the technology may include not only additional elements to those implementations noted above, but also may include fewer elements.
These and other changes can be made to the technology in light of the above Detailed Description. While the above description describes certain examples of the technology, and describes the best mode contemplated, no matter how detailed the above appears in text, the technology can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the technology disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the technology should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the technology with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the technology to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the technology encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the technology under the claims.
To reduce the number of claims, certain aspects of the technology are presented below in certain claim forms, but the applicant contemplates the various aspects of the technology in any number of claim forms. For example, while only one aspect of the technology is recited as a computer-readable medium claim, other aspects may likewise be embodied as a computer-readable medium claim, or in other forms, such as being embodied in a means-plus-function claim. Any claims intended to be treated under 35 U.S.C. § 112(f) will begin with the words “means for”, but use of the term “for” in any other context is not intended to invoke treatment under 35 U.S.C. § 112(f). Accordingly, the applicant reserves the right to pursue additional claims after filing this application to pursue such additional claim forms, in either this application or in a continuing application.