Automation control system

A system can provide automation with at least a computing device receiving an automation model via a graphical user interface that is converted to computer code with a controller of the computing device. A parser module of the computing device can remove portions of the computer code to create broadcast parameters that are subsequently transmitted to an automation device. A de-parser module of the automation device may translate the broadcast parameters into an automation process that is executed with the automation device to physically enact the automation model with the automation device.

SUMMARY

A system can provide automation, in accordance with assorted embodiments, by inputting an automation model into a computing device via a graphical user interface of the computing device. A controller of the computing device converts the automation model to computer code that is reduced by a parser module of the computing device to create broadcast parameters. The broadcast parameters are transmitted to an automation device where they are translated into an automation process with a de-parser module of the automation device. The automation process is then executed with the automation device to physically enact the automation model with the automation device.

DETAILED DESCRIPTION

With the advancement and miniaturization of computing devices, increasing numbers of activities and processes can be partially, or completely, automated. Such automation can increase efficiency and safety with relatively simple actions. While technologically advanced computing and automation components can handle more complex processes, automation control has been hampered by transmission protocol that limit the automation code and parameters that can be broadcast to an automated device, which results in long and unnecessarily complex development and testing of automation systems.

Accordingly, various embodiments of the present disclosure involve methods and associated apparatus that efficiently correlate computer models into executed automation actions. By parsing computer code generated by a computing device during modeling, automation controls can be quickly and easily transmitted and executed by an automation device. The ability to utilize the processing power of the computing device to model various automation aspects, generate computer code that represents the modeled automation, parse the computer code into parameters that can be easily understood and executed by a connected automation device, and transmit the parameters to the automation device allows the automation device to utilize minimal onboard processing power to execute the parsed automation parameters as a physical representation of the modeled automation.

FIG. 1displays a block representation of an example automation system100that can operate in accordance with assorted embodiments to optimize the development and testing of automation control. The automation system100can utilize any number of automated devices102independently or concurrently to carry out a diverse variety of tasks, such as manufacturing, construction, down-hole exploration, and testing. It is contemplated that the system100may have multiple different automated devices102that may be physically separated, or interconnected, to carry out one or more tasks. An automated device102may be any assembly of parts capable of translating computer readable code into motion without direct physical or logical manipulation by a user. Hence, the automated device102is configured to operate autonomously as directed by pre-programmed instructions without involvement by a user.

Regardless of the number, type, and location of the automated device(s)102of the automation system100, each automated device102can be connected to a computing device104via a wired or wireless connection. The computing device104can be stationary, such as a desktop computer, or mobile, such as a laptop, tablet computer, or smartphone. The computing device104can conduct a variety of different computing activities, such as data generation, manipulation, storage, and transmission, via one or more local processing components. Although not limiting, the computing device104can receive physical input from a user, process the input into computer readable code, such as machine code, and transmit that code to the automated device(s)102.

In some embodiments, the computing device104can utilize a wired or wireless network106connection to engage one or more remote hosts108and110. The remote hosts108and110can provide additional processing, data storage, and connectivity that can concurrently or independently complement the capabilities of the computing device104to make control of the automated device(s)102more efficient. For instance, the first host108may be a remote server that provides additional data storage capacity while the second host110is a network node that can utilize additional computing capabilities from one or more devices physically separated from the computing device104.

FIG. 2conveys an example automated device120that can be constructed and operated as part of the automation system100ofFIG. 1in accordance with some embodiments. An automated device120may have one or more means for motion that can concurrently, or independently, induce activity in at least one component of the device120. For instance, a motor and solenoid may concurrently articulate an arm while an engine supplies hydraulic and/or pneumatic pressure to be used by the arm at a later time. It is noted that the automated device120can have any number of components that move, spin, and grasp as orchestrated by a predetermined choreographed automation process and carried out by the means for motion that can be physically located on, or separated from, the automated device120itself.

The automated device120is adapted to provide computing capabilities with at least one local controller122, such as a microprocessor or application specific integrated circuit (ASIC), that is physically located on/in the automated device120. The controller122can direct data into, and out of, a local memory124, which may be a volatile or non-volatile memory, such as a hard disk drive, solid-state memory array, or hybrid data storage device. The temporary, or permanent, storage of data in the local memory124allows the automated device120to conduct various operations without being connected to a control device, such as the computing device104ofFIG. 1.

The automated device120can employ one or more sensors126that can continuously, routinely, or sporadically activate to monitor operational and environmental conditions in and around various portions of the automated device120. As a non-limiting example, a temperature sensor can operate continuously while a proximity sensor is sporadically activated when a portion of the automated device120is within a predetermined physical tolerance with an object. Regardless of the number and type of sensors utilized by the automated device120, data can be locally stored in the memory124and processed by the controller122, which allows increased autonomy compared to devices that do not have local computing capabilities.

Although the automated device120can generate, store, and process data locally, various embodiments connect the device120with at least one remote host, such as the computing device104or hosts108/110ofFIG. 1, via a communication module128. The communication module128can utilize one or more different types of communication means to transfer data, such as cellular, wireless local network, and wired connection protocol. It is contemplated that the automated device120employs redundant communication means via the communication module128to ensure the device120is in constant communication with a remote host.

The automated device120may employ a de-parser module130to convert parsed automation information into automation code that corresponds with the automation process desired by a user. The de-parser module130can utilize the controller122and non-volatile memory124to store and process received broadcast parameters into automation code that results in an automation process being executed by the device120. The ability to de-parse transmitted communications locally in the automated device120, instead of at the computing device102where an automation process was created, allows the broadcast parameters to be logically smaller and more efficiently transmitted compared to if the entire automation process computer code was transmitted.

FIG. 3shows a block representation of an example computing device140that can be incorporated in the automation system100in accordance with assorted embodiments. The computing device140can be used continuously, but in some embodiments is utilized during design, testing, and implementation of an automation process that is stored locally in one or more automated devices. The computing device140has at least one local controller142that directs data processing entered by a user via a graphical user interface (GUI)144. A user is to be understood as a human operator that engages the GUI144to generate, or manipulate, data that is temporarily and permanently stored locally in a memory146.

Various embodiments have software stored in the local memory146that can be utilized to model and program an automation process as directed by the user. The local controller142may provide a graphical representation of an automation process via the GUI144. In a non-limiting embodiment, the computing device140allows a user to visually model an automation process without manually inserting lines of computer or machine code. That is, the computing power and capabilities of the computing device140can allow existing, or future, movement, actions, and processes of one or more automated devices120to be visually generated and manipulated without the user actually typing lines of code.

Such visual modeling capability can be highly efficient as the computing power of the computing device140converts visual models from the GUI144into lines of computer/machine code via a code module148. The code module148may operate as part of a database of code that has been predetermined. However, the code module148may also generate new code that is inserted into the database, or updates existing code stored in the database.

While the various lines of computer/machine code may be distributed to an automated device120for execution, long and/or complex automation processes can be very time consuming and rely on an uninterrupted communication pathway between the computing140and automated120devices. Hence, a parser module150of the computing device140can condense or translate portions of code into parameters that are essential for transmission to an automated device120. In the past, parsing of an automation process was limited to parameters that conform to communication protocol dictated by a third party. As a result, the full range of capabilities of an automated device120may not be able to be utilized. Hence, development of open source communication protocol, such as open platform communications-unified architecture (OPC-UA), has allowed machine code to be transmitted between computing140and automated120devices via a communication module152as dictated by the computing device140.

The use of open source communication protocol to transmit machine code and/or automation process parameters allows a diverse variety of automation control to be sent to an automated device120. However, the increased control provided by the open source communication protocol has corresponded with larger development and testing schedules that are expensive in terms of time and resources. Accordingly, various embodiments configure the parser module150to efficiently transition between a visual model present on the GUI144to condense machine code from a local database that forms an automation process into broadcast parameters that can efficiently be transmitted to, processed by, and executed by the automated device120.

FIG. 4depicts a logical flow for an example automation system160that utilizes the computing device140ofFIG. 3to optimize the transition from modeled and coded automation process to executed device activity. Initially, an automation process begins with a model in step162, which may be created or manipulated completely by a human user on a computing device140. The computing device140automatically converts the modeled automation process into a plurality of computer code (line code) as part of a database in step164. The computer code is then parsed in step166by a parser module into broadcast parameters that are logically smaller than the entire coded automation process and are more quickly transmitted to one or more automated devices in step168.

In other words, the broadcast parameters replace the entirety of the computer coded automation process with a more lightweight package that can be transmitted to the automation device(s) more efficiently. The broadcast parameters also are more efficiently processed back into the computer code by a de-parser module of the automated device120in step170compared to if the entirety of the code was transmitted or if a non-open source communication protocol limited the broadcast parameters.

With the automated device120having the entirety of the automation process from step170, the process is executed in step172as part of a choreographed routine. The execution may be sensed in step174by one or more sensors in and around the automated device to verify the accurate and complete performance of the automation process. The sensed conditions are subsequently reported in176to a remote host, such as the computing device140. The ability to efficiently go from a model resident on a computing device to executed process by an automated device allows increasingly long and complex automation processes to be tested, refined, and implemented, which can translate into greater performance and throughput for industries that utilize automation.

FIG. 5is an example automation system180that can utilize the various aspects ofFIGS. 1-4to provide optimized device automation in accordance with some embodiments. A user interface182is employed by a user to create a complete automation process that is then converted to a database184of code, which may be multiple lines of computer and/or machine code. A code module186translates the database code into a readable format, such as XML code.

A parser module188proceeds to compile the XML code into a group of broadcast parameters that are transmitted to an automated device via a communication module190as an open source protocol (OPC-UA). A communication module192of the automated device receives the broadcast parameters as part of the open source protocol and then de-parses the broadcast parameters into XML code. It is noted that the XML code from the de-parser module of the automated device matches the XML code from the code module186and fully represents the automation process modeled in the user interface182. Next, the XML code is executed via an electronic gateway, such as a PLC gateway.

FIG. 6provides a flowchart of an example automation routine200that can be carried out by the automation system and components ofFIGS. 1-5in accordance with assorted embodiments. The routine200may begin by wirelessly, and or via a wired pathway, connecting at least one automated device to a computing device. In step202a user models an automation process with a GUI of the computing device. The modeling of step202may be code-based, visual-based, or a combination of the two. The modeled automation process is then compiled by a code module of the computing device in step204into a computer code, which can be characterized as synonymous with machine code.

The computer/machine code can be locally stored or referenced with a database to previous automation code, but such is not required. A parser module of the computing device proceeds to parse the computer code into broadcast parameters in step206. The broadcast parameters may consist of any number and type of data that conforms to an open source communication protocol, such as OPC-UA. It is contemplated that the broadcast parameters are logically smaller and contain less data than the automation process as a whole, or the computer code compiled in step204.

It is noted that the parsing of the computer/machine code into previously defined broadcast parameters conforming to open source communication protocol allows efficient transmission to one or more automation devices in step208and conversion into automation code in step210by each automation device. If the parser module did not intelligently condense the computer code into broadcast parameters, the transmission and conversion to automation code would be sub-optimal and may hamper the development and testing of the automation process modeled in step202. The automation code may be different than the computer code, such as by being a different type of machine code, but the result of execution of either the computer code, in its entirety by a computer, or the automation code by the automated device in step212will be the same.

In some embodiments, the execution of the automation code to perform the modeled automation process cycles routine200back to step202while other embodiments proceeds to sense the executed automation process activity in step214either during or after step212. Step214may activate one or more different types of sensors to determine if the automation process has been, or is being, executed correctly, which is evaluated in decision216. If the sensed execution is correct, step218triggers the next activity to be performed, such as a subsequent event, motion, or series of actions called for by the automation process. That is, an automation process may be broken up into phases or activities that can be executed and sensed as correct in decision216prior to proceeding.