Not applicable.
The following presents a simplified summary of the disclosed technology herein in order to provide a basic understanding of some aspects of the disclosed technology. This summary is not an extensive overview of the disclosed technology. It is intended neither to identify key or critical elements of the disclosed technology nor to delineate the scope of the disclosed technology. Its sole purpose is to present some concepts of the disclosed technology in a simplified form as a prelude to the more detailed description that is presented later.
Device emulation generally refers to mimicking or duplicating another device, including, e.g., behavior of functionality of that other device. For instance, a first hardware device may emulate a second hardware device, such that the first hardware behaves or functions as if the first hardware device was the second hardware device. In some cases, device emulation may be utilized when replacing a predecessor (or legacy) hardware device with a new or replacement hardware device.
Some approaches to introducing new or replacement hardware device may include, e.g., the new hardware device emulating a predecessor device (e.g., the hardware device to be replaced by the new hardware device). Such approaches may involve a skilled user using a computing device with legacy software or a dedicated terminal device to configure an emulation mode for such device emulation situations (e.g., configuring a scan list, a remote device emulation, etc.), which results in various technical challenges and inefficiencies. For instance, not many users have the skills to configure the emulation mode. For example, when an inexperienced user tries to configure the emulation mode, there may be a high likelihood of that user to make mistakes that can disrupt the communication bus and take down a whole segment of an industrial system, which, ultimately, causes unscheduled downtime. Additionally, even when a user does have the skills, utilization of the legacy software imposes further challenges. Using legacy software generally introduces connectivity issues (e.g., establishing a substantial connection between the legacy software and an industrial device that may not be compatible with the legacy software), software maintenance issues (e.g., legacy software may not be maintained, up to date, etc.), and the like. Alternatively, or in addition, some approaches to introducing new hardware devices may result in downtime events, lost of production, service calls, etc., which, ultimately, impact the efficiency and performance of the underlying industrial system.
Accordingly, the technology disclosed herein provides automated input/output (I/O) device emulation. In particular, the technology disclosed herein includes systems and methods that facilitate automated I/O device emulation setup. In some configurations, the technology disclosed herein provides automated I/O device emulation setup by modifying the I/O device to match a scan list entry. Alternatively, or in addition, in some configurations, the technology disclosed herein provides automated I/O device emulation setup by modifying the scan list to match the I/O device, such as, e.g., by adding a scan list entry to the scan list for the I/O device.
The technology disclosed herein provides technical solutions to at least the technical problems described herein. For instance, the technology disclosed herein may reduce an amount of time associated with commissioning a device, which, ultimately, increases efficiency associated with the commissioning process (e.g., less time to reconcile device type). As another example, the technology disclosed herein may reduce errors associated with some approaches (e.g., a user selecting the wrong device), which, ultimately, increases accuracy and performance associated with the commissioning process and the industrial system. As yet another example, the technology disclosed herein may reduce, or remove, maintaining a computing device with legacy software, a legacy hardware interface, etc. Accordingly, in some examples, the technology disclosed herein may mitigate or eliminate disparate tools (e.g., legacy software and hardware), which, ultimately, may advantageously effect security, audits, recovery, etc. As yet another example, the technology disclosed herein may enable users having various skill levels perform tasks associated with the commissioning process (e.g., configuring an emulation mode), which may mitigate or remove human errors, thus reducing risks of communication bus disruptions, unscheduled downtime, etc. As yet another example, the technology disclosed herein may be implemented as a software update (e.g., a firmware update). As such, the technology disclosed herein may be implemented using existing hardware, which reduces overall costs and increases accessibility and modernization efforts.
Accordingly, configurations described herein provide systems and methods for automated I/O device emulation for industrial automation systems. One configuration provides a system for providing automated I/O device emulation for industrial systems. The system may include one or more electronic processors configured to detect a presence of an industrial device of an industrial system. The one or more electronic processors may be configured to detect an incompatibility between the industrial device and a list of industrial devices included in the industrial system. The one or more electronic processors may be configured to reconcile the incompatibility between the industrial device and the list of industrial devices included in the industrial system to set an emulation mode for the industrial device. The one or more electronic processors may be configured to control the industrial device in accordance with the emulation mode such that the industrial device emulates another industrial device included in the list of industrial devices included in the industrial system.
Another configuration provides a method for providing automated I/O device emulation for industrial systems. The method may include determining, with one or more electronic processors, whether a first industrial device is compatible with a second industrial device represented by a node of a scan list for the industrial system. The method may include, responsive to determining an incompatibility between the first industrial device and the second industrial device, reconciling, with the one or more electronic processors, the incompatibility between the first industrial device and the second industrial device to set an emulation mode for the first industrial device. The method may include controlling the first industrial device in accordance with the emulation mode such that the first industrial device emulates the second industrial device, wherein the second industrial device is a pre-existing industrial device included in the industrial system.
Yet another configuration provides a system for providing automated I/O device emulation within an industrial system. The system may include one or more electronic processors configured to detect a presence of an industrial device on a network associated with the industrial system. The one or more electronic processors may be configured to, responsive to an incompatibility between the industrial device and a scan list for the industrial system, transmit, to the industrial device, a message requesting device data for the industrial device, the device data including a device type of the industrial device; receive, from the industrial device, a response to the message, the response including the device data; generate a scan list entry for the industrial device using the device data; and update the scan list to include the scan list entry for the industrial device.
The foregoing and other aspects and advantages of the present disclosure will appear from the following description. In the description, reference is made to the accompanying drawings which form a part hereof, and in which there is shown by way of illustrations one or more embodiments of the present disclosure. Such configurations do not necessarily represent the full scope of the present disclosure, however, and reference is made therefore to the claims and herein for interpreting the scope of the present disclosure.
The present disclosure will be better understood and features, aspects and advantages other than those set forth above will become apparent when consideration is given to the following detailed description thereof. Such detailed description makes reference to the following drawings.
As utilized herein, terms “component,” “system,” “controller,” “device,” “manager,” “computer module,” and variants thereof are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server may be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
The disclosed technology is described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed technology. It may be evident, however, that the disclosed technology may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the disclosed technology.
As noted herein, the technology described herein includes an automated I/O device emulation (e.g., automatically setting up I/O device emulation) by reconciling device type mismatches between a scan list and a target (or replacement) industrial device by, e.g., matching an industrial device to a scan list entry associated with a predecessor or legacy industrial device, modifying a scan list to include a scan list entry matching an industrial device, etc.
A scan list (or I/O tree) may include an entry for each node (e.g., each industrial device included in an industrial system), where each node may include information, such as, e.g., target network address, electronic keying, connection status, I/O details (Input/Output/Configuration), and device configuration data. Each target industrial device (or replacement device) may have an identity object, Input/output/configuration assemblies, and an parameter object. Automatic I/O emulation configuration logic may be triggered when a target node is present on the network but fails the electronic keying. The logic may send a message to the target node to determine the device identity to see if it is compatible with the electronic keying listed for that node.
In some examples, the technology disclosed herein provides automatic I/O emulation such that, when a replacement industrial device is present on a network of an industrial system and is capable of emulating a pre-existing industrial device included in the industrial system, the technology described herein may utilize a scan list entry (e.g., a scan list entry target device product code) for the pre-existing industrial device to set an emulation mode for the replacement device (e.g., set an emulation parameter of the replacement device). In such configurations, the technology disclosed herein may send a message to the parameter object of the replacement industrial device to set the emulation mode to match the electronic keying (in the scan list entry).
In some examples, the technology disclosed herein may provide automatic I/O emulation such that, when a replacement industrial device is present on a network of an industrial system and is compatible, but does not match a scan list entry, the technology described herein may utilize device data from the target device (or replacement device) to update the scan list entry (e.g., generating a new scan list entry for the replacement device using the device data from the target or replacement device). In such configurations, the technology disclosed herein may send a message to the parameter object of the replacement device, read a device data or hardware type (e.g., sensor module, control module, expansion I/O, operator station, etc.), and modify the scan list entry to match the target device (or replacement device).
Once the emulation mode is set in the target device, the technology disclosed herein may reset the replacement device such that the replacement industrial device reboots into the emulated state (in accordance with the set emulation mode), which may satisfy the electronic keying (where the device status may now indicate the node is present and the product code matches). Thereafter, the technology disclosed herein may enable or facilitate (automatic) device replacement by sending configuration assembly, starting the IO connection, etc.
In the illustrated example of
The industrial controller 105 and the industrial device(s) 110 may communicate over one or more communication networks 130. In some configurations, the communication network 130 may be a controller area network (CAN) bus. The one or more communication networks 130 may include a wired communication network, a wireless communication network, or a combination thereof. Portions of the communication networks 130 may be implemented using a wide area network, such as the Internet, a local area network, such as a WI-FI®, and combinations or derivatives thereof. Alternatively, or in addition, in some configurations, components of the industrial system 100 may communicate directly as compared to through the communication network 130. Also, in some configurations, the components of the industrial system 100 may communicate through one or more intermediary devices not illustrated in
In some configurations, the industrial system 105 may represent an industrial subsystem. Accordingly, in some configurations, the industrial system 100 (or one or more components therein) of
The industrial device(s) 110 may be a physical piece of equipment included in the industrial system 100. For example, the industrial device 110 may include a pump, a press, a conveyor, an actuator, a valve, an additional industrial controller (e.g., a programmable logic controller (“PLC”), industrial compute module, network switch, and the like), a switch, a sensor, a server, a database, an HMI, a motor, another piece of equipment that may be used in connection with an associated industrial process (or subprocess) or application of the industrial system 100, or the like.
The industrial controller 105 may include a programmable logic controller (“PLC”), another type of industrial controller, or the like.
In some configurations, the industrial controller communication interface 210 enables the industrial controller 105 to communicate with one or more of the industrial devices 110 over the communication network 130 (e.g., a CAN bus). The industrial controller electronic processor 200 includes a microprocessor, an application-specific integrated circuit (“ASIC”), a system-on-chip (“SOC”), a system-on-module (“SOM”), a field-programable gate array (“FPGA”), or another suitable electronic device for processing data, and the industrial controller memory 205 may include a non-transitory, computer-readable storage medium. The industrial controller electronic processor 200 is configured to retrieve instructions and data from the industrial controller memory 205 and execute the instructions.
As one example, as illustrated in
As also illustrated in
As noted above, in some examples, the industrial controller 240 may generate the scan list 230 via execution of the I/O scanner 240. The scan list 230 may be a mapping of networked devices within the industrial system 100 (e.g., a mapping of the industrial devices 110). Accordingly, in some examples, the scan list 230 may include a list of industrial devices (as nodes) with which the I/O scanner 240 is configured to exchange I/O data with. For example,
In some configurations, the industrial device communication interface 410 enables the industrial device 110 to communicate with the industrial controller 105, one or more of the other industrial devices 110, another component of the industrial system 100, or a combination thereof over one or more wired or wireless communication connections (including, e.g., a CAN bus). The industrial device electronic processor 400 includes a microprocessor, an ASIC, or another suitable electronic device for processing data, and the industrial device memory 405 includes a non-transitory, computer-readable storage medium. The industrial device electronic processor 400 is configured to retrieve instructions and data from the industrial device memory 405 and execute the instructions.
As one example, as illustrated in
The device data 430 may include information or data related to the industrial device 110. For example, as illustrated in
A parameter object 440 may provide an interface to configuration data for a particular industrial device. For instance, in some configurations, the parameter object 440 may include information for defining and describing each of the individual configuration parameters for an industrial device. In some examples, the parameter object 440 may enable a device to identify a configurable parameter by, e.g., supplying a description of the parameters, including, e.g., minimum and maximum values, a human-readable text string describing the parameter, etc. The parameter object 440 may include information associated with, e.g., sensor type (e.g., a voltage sensor, a current intensity sensor, a ground fault current sensor, with, a maximum current range with a 30 amp, 60 amp, 100 amp, or 200 amp option), control module (e.g., a digital control module or an analog control module, ground fault current sensor as either an internal sensor that may be integral to a hardware assembly or an external ground fault sensor that may be electrically connected via, e.g., screws to a terminal block), expansion I/O (e.g., when the industrial device includes a local expansion bus for digital or analog modules, where the local expansion bus may also host an operator interface with buttons, indicators, etc.), operator station (e.g., an operator station for monitoring the industrial system, an operator station for controlling the industrial system, etc.), etc.
As illustrated in
In some configurations, the replacement industrial device may be associated with a fault condition. In some examples, the fault condition may be indicative of the replacement industrial device having failed electronic keying. For example, when the replacement industrial device is included in (or added to) the industrial system 100 (e.g., added to the communication network 130 associated with the industrial system 100), an electronic keying process may be triggered or otherwise performed within the industrial system 100. In some examples, electronic keying may refer to determining whether product or device types (e.g., product codes, etc.) match (e.g., a device type associated with the replacement industrial device and a node included in the scan list 130, where that node represents a legacy industrial device being replaced by the replacement industrial device). When the product types match (e.g., electronic keying is successful), communication may be enabled (e.g., an I/O connection may be permitted or otherwise established). When the product types do not match (e.g., electronic keying is unsuccessful or failed), communication may be disabled (e.g., an I/O connection may not be permitted or established).
Accordingly, in some examples, the industrial controller electronic processor 300 may determine or detect an incompatibility (e.g., the fault condition of the replacement industrial device) (at block 510). In some examples, the industrial controller electronic processor 300 may determine whether the replacement industrial device is compatible with a legacy industrial device being replaced by the replacement industrial device. The industrial controller electronic processor 300 may determine or detect the incompatibility using the scan list 230 (e.g., a list or map of industrial devices included in the industrial system 100). For instance, the industrial controller electronic processor 300 may detect an incompatibility between the replacement industrial device and the scan list 230. In some examples, the industrial controller electronic processor 300 may determine whether a device type or identity of the replacement industrial device matches one or more predecessor industrial devices as represented as nodes in the scan list 230. For instance, each node in the scan list 230 may represented a predecessor or current industrial device included in the industrial system 100.
In some examples, the industrial controller electronic processor 300 may compare device types of the replacement industrial device and one or more predecessor industrial devices included in the industrial system 100, such as, e.g., the predecessor or legacy industrial device being replaced by the replacement industrial device. In some examples, the industrial controller electronic processor 300 may determine a device type or identify of the replacement industrial device. In some examples, the industrial controller electronic processor 300 may determine the device type or identity of the replacement industrial device based on device data (e.g., the device data 430 of
The industrial controller electronic processor 300 may also determine a device type or identity of the predecessor industrial device being replaced by the replacement industrial device. The industrial controller electronic processor 300 may access or determine the device type or identity of the predecessor industrial device using data included in the scan list 230 (e.g., device data associated with a node of the scan list 230 representing the predecessor industrial device). The industrial controller electronic processor 300 may determine whether the device type of the replacement industrial device (e.g., a first device type of a first industrial device) matches the device type of the predecessor industrial device (e.g., a second device type of a second industrial device). When the device types match, the industrial controller electronic processor 300 may determine that there is compatibility (e.g., no fault condition). When the device types do not match, the industrial controller electronic processor 300 may determine that there is an incompatibility (e.g., a fault condition).
In some configurations, responsive to determining an incompatibility between the replacement industrial device and the predecessor industrial device (e.g., one or more nodes included in the scan list 230), the industrial controller electronic processor 300 may enable or facilitate reconciliation of the incompatibility. In some configurations, the industrial controller electronic processor 300 and the industrial device electronic processor 400 work cooperatively to enable or facilitate reconciliation of the incompatibility. In some instances, the reconciliation of the incompatibility reconciles the fault condition of the replacement industrial device. The industrial controller electronic processor 300, the industrial device electronic processor 400, or a combination thereof may enable or facilitate reconciliation of the incompatibility in order to set an emulation mode (or parameter thereof) for the replacement industrial device such that, when operating in an emulation state or mode, the replacement industrial device may emulate the predecessor industrial device being replaced by the replacement industrial device. In some instances, the industrial controller electronic processor 300, the industrial device electronic processor 400, or a combination thereof automatically reconcile the incompatibility as part of, e.g., an automated I/O device emulation setup process.
In some examples, the industrial controller electronic processor 300, the industrial device electronic processor 400, or a combination thereof may reconcile the incompatibility by morphing the scan list 230 to include a scan list entry for the replacement industrial device, as illustrated in
In such instances, the industrial controller electronic processor 300 may access device data associated with the replacement industrial device (e.g., the device data 430 of
Alternatively, or in addition, in some examples, the industrial controller electronic processor 300, the industrial device electronic processor 400, or a combination thereof may reconcile the incompatibility by providing device data (e.g., electronic keying information) from the scan list 230 to the replacement industrial device (e.g., for inclusion as the device data 430 for the replacement industrial device), as illustrated in
In such instances, the industrial controller electronic processor 300 may access device data associated with the predecessor industrial device (e.g., device data or electronic keying data associated with a node of the scan list for the predecessor industrial device). The industrial controller electronic processor 300 may transmit, to the replacement industrial device, device data associated with the predecessor industrial device. The device data may include a device type or identity of the predecessor industrial device. In response to receiving the message, the replacement industrial device (e.g., the industrial device electronic processor 400) may store or update the device data 430 based on the device data associated with the predecessor industrial device. Accordingly, an emulation mode is set for the replacement industrial device using the device data associated with the predecessor industrial device, such that when the replacement industrial device executes or reboots in the emulation mode, the replacement industrial device emulates the predecessor industrial device.
After reconciliation the incompatibility and, ultimately, setting the emulation mode for the replacement industrial device, the replacement industrial device may be controlled in accordance with the emulation mode such that the replacement industrial device emulates the predecessor or legacy industrial device (at block 515). In some configurations, the replacement industrial device may be controlled in accordance with the emulation mode by rebooting the replacement industrial device in the emulation mode (or pursuant to emulation parameters). In some examples, the rebooting of the replacement industrial device may be triggered or controlled by the industrial controller electronic processor 300. Alternatively, or in addition, while the replacement device emulates the predecessor device, an I/O connection for the replacement industrial device may be established (e.g., as a result of electronic keying be successful or passed). Alternatively, or in addition, an automatic device replacement procedure or process may be initiated. For instance, in some configurations, a set of configuration parameters may be transferred via the I/O connection established for the replacement industrial device such that the replacement industrial device ultimately replaces the predecessor or legacy industrial device in the industrial system 100, as illustrated in
What has been described above includes examples of the disclosed technology. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the disclosed technology, but one of ordinary skill in the art may recognize that many further combinations and permutations of the disclosed technology are possible. Accordingly, the disclosed technology is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the disclosed technology. In this regard, it will also be recognized that the disclosed technology includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the disclosed technology.
In addition, while a particular feature of the disclosed technology may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.”