Patent ID: 12230230

DETAILED DESCRIPTION

As utilized herein, terms “component,” “system,” “controller,” “device,” “manager,” 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.

FIG.1schematically illustrates a system100for providing fault detection for I/O modules according to some configurations. In the illustrated example, the system100may include a user device110and an industrial system115. In some configurations, the system100includes fewer, additional, or different components in different configurations than illustrated inFIG.1. As one example, the system100may include multiple user devices110, multiple industrial systems115, or a combination thereof. As another example, one or more components of the system100may be combined into a single device. Alternatively, or in addition, in some configurations, the user device110may be included as part of the industrial system115(e.g., as a component of the industrial system115).

The user device110and the industrial system115may communicate over one or more wired or wireless communication networks130. Portions of the communication networks130may be implemented using a wide area network, such as the Internet, a local area network, such as a BLUETOOTH® or WI-FIC), and combinations or derivatives thereof. Alternatively, or in addition, in some configurations, components of the system100may communicate directly as compared to through the communication network130. Also, in some configurations, the components of the system100may communicate through one or more intermediary devices not illustrated inFIG.1.

The user device110may be a computing device, such as a desktop computer, a laptop computer, a tablet computer, a terminal, a smart telephone, a smart television, a smart wearable, or another suitable computing device that interfaces with a user. As illustrated inFIG.2, the user device110includes an electronic processor200, a memory205, a communication interface210, and a human-machine interface (“HMI”)215. The electronic processor200, the memory205, the communication interface210, and the HMI215communicate wirelessly, over one or more communication lines or buses, or a combination thereof. The user device110may include additional components than those illustrated inFIG.2in various configurations. The user device110may also perform additional functionality other than the functionality described herein. Also, the functionality described herein as being performed by the user device110may be distributed among multiple devices (e.g., as part of a cloud service or cloud-computing environment), combined with another component of the system100(e.g., combined with the industrial system115(or a component thereof)), or a combination thereof.

The communication interface210may include a transceiver that communicates with the industrial system115over the communication network130and, optionally, one or more other communication networks or connections. In some configurations, the communication interface210enables the user device110to communicate with the industrial system115over one or more wired or wireless communication networks or connections. The electronic processor200includes a microprocessor, an application-specific integrated circuit (“ASIC”), or another suitable electronic device for processing data, and the memory205includes a non-transitory, computer-readable storage medium. The electronic processor200is configured to retrieve instructions and data from the memory205and execute the instructions.

As one non-limiting example, as illustrated inFIG.2, the memory205includes a programing application260(referred to herein as “the application260”). The application260is a software application executable by the electronic processor200in the example illustrated and as specifically discussed below, although a similarly purposed module can be implemented in other ways in other examples. The electronic processor200executes the application260to facilitate user programming for industrial devices or controllers, such as, e.g., a fault detection response protocol, a ladder logic program for fault handling and detection, and the like. In some configurations, the electronic processor200executes the application260to facilitate reporting or alerting a user to a fault scenario detected with respect to the industrial system115(or component thereof), as described in greater detail herein.

As noted above, in some configurations, the functionality (or a portion thereof) described herein as being performed by the user device110may be distributed among multiple devices (e.g., as part of a cloud service or cloud-computing environment). As one example, in some configurations, the system100may include a server (e.g., a computing device). The server may include similar components as the user device110, such as an electronic processor (e.g., a microprocessor, an ASIC, or another suitable electronic device), a memory (e.g., a non-transitory, computer-readable storage medium), a communication interface, such as a transceiver, for communicating over the communication network130and, optionally, one or more additional communication networks or connections. Accordingly, in some embodiments, the server may store the application260as part of providing a programming service, a fault detection and reporting service, or a combination thereof through the server. In such configurations, to communicate with the server (e.g., interact with the application260), the user device110may store a browser application or a dedicated software application executable by the electronic processor200.

As noted above, the user device110may also include the HMI215for interacting with a user. The HMI215may include one or more input devices, one or more output devices, or a combination thereof. Accordingly, in some configurations, the HMI215allows a user to interact with (e.g., provide input to and receive output from) the user device110. For example, the HMI215may include a keyboard, a cursor-control device (e.g., a mouse), a touch screen, a scroll ball, a mechanical button, a display device (e.g., a liquid crystal display (“LCD”)), a printer, a speaker, a microphone, or a combination thereof. As illustrated inFIG.2, in some configurations, the HMI215may include a display device270. The display device270may be included in the same housing as the user device110or may communicate with the user device110over one or more wired or wireless communication networks or connections. For example, in some configurations, the display device270is a touchscreen included in a laptop computer or a tablet computer. In other configurations, the display device270is a monitor, a television, or a projector coupled to a terminal, desktop computer, or the like via one or more cables.

FIG.3schematically illustrates an example of the industrial system115according to some configurations. In the illustrated example ofFIG.3, the industrial system115may include an industrial controller300, one or more I/O modules305(referred to herein collectively as “the I/O modules305” and generically as “the I/O module305”), and at least one piece of industrial control equipment310. In some configurations, the industrial system115includes fewer, additional, or different components in different configurations than illustrated inFIG.3. As one example, the industrial system115may include multiple industrial controllers300, multiple I/O modules305, or a combination thereof. For example, as illustrated inFIG.3, in some configurations, the industrial system115may include a first I/O module305A and a second I/O module305B in a duplex configuration. As another example, one or more components of the industrial system115may be combined into a single device. Alternatively, or in addition, in some configurations, the user device110may be included as part of the industrial system115(e.g., as a component of the industrial system115).

The industrial system115may be a manufacturing system, such as, e.g., an industrial automation system or the like. The industrial system115may perform one or more industrial processes, manufacturing processes, production processes, or the like (represented inFIG.3as an industrial process315). In some configurations, the industrial system115may perform a production process that produces goods or products. As one example, the industrial system115may perform a vehicle manufacturing process to assemble or produce a vehicle (or various components thereof). As another example, the industrial system115may perform a food manufacturing process for making a food product.

The industrial controller300, which could be a programmable logic controller (“PLC”), may store and execute a control program for the control of the industrial process315as is generally understood in the art. The industrial controller300may include similar components as the user device110, such as an electronic processor (e.g., a microprocessor, an ASIC, or another suitable electronic device), a memory (e.g., a non-transitory, computer-readable storage medium), a communication interface, and the like. The industrial process315, for example, may coordinate a set of machines on an assembly line or the like, or interact with actuators, sensors and/or other industrial control equipment of plant processing materials to control that process, or conduct other similar control applications (via, e.g., the industrial control equipment310A,310B,310N ofFIG.3).

As illustrated inFIG.3, the industrial controller300may communicate with at least one I/O module305providing a direct interface to the industrial control equipment310of the industrial process315. In some configurations, the I/O module305provides input and output lines via electrical conductors320to and from the industrial control equipment310of the industrial process315allowing communication with (or between) the industrial control equipment310, such as industrial control equipment310A,310B, and310N. The industrial control equipment310may include, e.g., a digital actuator (e.g., a relay, an indicator light, a motor, or the like), a digital sensor (e.g., a photoelectric sensor, a dry contact sensor, an inductive sensor, a push button, or the like), an analog actuator (e.g., a valve, a positioner, a meter, or the like), an analog sensor (e.g., a level sensor for a tank, a temperature sensor, a position sensor, or the like), or the like.

The industrial controller300can communicate with the I/O module305through an industrial control network325. The industrial control network325may include, e.g., Common Industrial Protocol (“CIP”), EtherNet/IP, DeviceNet, CompoNet, ControlNet network, or the like (e.g., a network whose specifications are published and whose protocols are used broadly by a number of manufacturers and suppliers). Such networks may provide for high reliability transmission of data in real time (or near real-time) and can provide features ensuring timely delivery (e.g., by pre-scheduling communication resources, such as network bandwidth, network buffers, and the like).

The industrial controller300can also communicate, through a data network (which may, but need not be, an industrial control network), with a central computer system (e.g., via one or more routers or switches). As one example, the industrial controller300may communicate via the communication network130with the user device110, as illustrated inFIG.1.

FIG.4schematically illustrates an example of the I/O module305according to some configurations. In the illustrated example, the I/O module305includes an I/O controller400and a set of channel circuits405(represented inFIG.4as a first channel circuit405A, a second channel circuit405B, and an Nthchannel circuit405N). Accordingly, in some configurations, the I/O module305is a multichannel I/O module including a plurality of channel circuits. In some configurations, the I/O module305may include fewer, additional, or different components in different configurations than illustrated inFIG.4.

In the illustrated example, the I/O controller400is communicatively coupled to each channel circuit405by a hardware communication channel410(e.g., a dedicated hardware communication line or channel). For instance, in some configurations, the hardware communication channel410is a hardware communication line. In some configurations, the hardware communication line410may include a serial communication interface that communicates one bit of information at a time. In some configurations, the hardware communication line410may communicate (or transmit) a power control signal, a set of synchronization signals (e.g., a primary synchronization signal and a secondary synchronization signal), or a combination thereof. As one example, the I/O controller400may use the hardware communication channel410to transmit or otherwise communicate a signal, such as a power control signal and a pair of synchronization signals, to the channel circuit405. As illustrated inFIG.4, the I/O controller400is coupled to the first channel circuit405A by a first hardware communication channel410A, the second channel circuit405B by a second hardware communication channel410B, and the Nthchannel circuit405N by an Nthhardware communication channel410N.

Accordingly, in some configurations, each channel circuit405is electrically isolated from each other (via, e.g., the dedicated hardware communication channels410as opposed to, e.g., a shared communication channel). For instance, in some configurations, each channel circuit405is electrically isolated from each other via an isolation boundary or barrier (represented inFIG.4as a dashed box430). In some configurations, the isolation boundary430for a channel circuit405also includes at least a portion of the corresponding hardware communication channel410, as illustrated inFIG.4. As one example, the first channel circuit405A is electrically isolated from the second channel circuit405B and the Nthchannel circuit405N, the second channel circuit405B is electrically isolated from the first channel circuit405A and the Nthchannel circuit405N, and the Nthchannel circuit405N is electrically isolated from the first channel circuit405A and the second channel circuit405B. Accordingly, in some configurations, the I/O module305is implemented via a hardware design or setup where individual channels of the I/O module305are electrically isolated, such that, e.g., in some configurations, at least one of the channel circuits405cannot cause interference with other circuits (e.g., another channel circuit405) outside of the isolation boundary430, unless through dedicated interfaces for communicating across the isolation boundary430(e.g., a dedicated hardware communication channel410). Alternatively, or in addition, in some configurations the I/O module305is implemented via a hardware design or setup where individual channels of the I/O module305are electrically isolated such that, e.g., in some configurations, each of the channel circuits405are independently controlled. As one example, in such configurations, independent control may be provided via sequencing specific voltage rails up or down independently. In such configurations, the channel circuits405may share some common components (e.g., ground). Accordingly, in some configurations, the I/O module305may implement multiple power domains. The electrical isolation as described herein provides independence of power control.

The I/O controller400may control a power state of each channel circuit405included in the I/O module305. A power state may include a power-off state (e.g., a disabled state where no power is provided or received), a power-on state (e.g., an enabled state where power is provided or received), or the like. Accordingly, a power state of a channel circuit405may represent whether the channel circuit405receives power (or is active).

As noted above, in some configurations, the industrial system115may include multiple I/O modules305in a duplex configuration. When operating in a duplex configuration, the I/O modules305may include one or more partner or shared channel circuits405(as a channel circuit pairing). For example,FIG.5illustrates an example duplex configuration500that includes a first I/O module305A and a second I/O module305B. The first I/O module305A includes a first I/O controller400A and a set of channel circuits, including a first channel circuit405A-1, a second channel circuit405B-1, and an Nth channel circuit405N-1. The second I/O module305B includes a second I/O controller400B and a set of channel circuits, including a first channel circuit405A-2, a second channel circuit405B-2, and an Nth channel circuit405N-2.

In some configurations, at least one channel circuit of the first I/O module305A and at least one channel circuit of the second I/O module305B may form a channel circuit pairing. For example, as illustrated inFIG.5, the first channel circuit405A-1of the first I/O module305A and the first channel circuit405A-2of the second I/O module305B may form a first channel circuit pairing520A, the second channel circuit405B-1of the first I/O module305A and the second channel circuit405B-2of the second I/O module305B may form a second channel circuit pairing520B, and the Nth channel circuit405N-1of the first I/O module305A and the Nth channel circuit405N-2of the second I/O module305B may form an Nth channel circuit pairing520N.

As noted above, the I/O controller400(e.g., the first I/O controller400A and the second I/O controller400B) may control a power state of each channel circuit405included in the I/O module305. In some configurations, as noted herein, the industrial system115may include redundant I/O modules, such as illustrated inFIG.5. In such configurations, the first I/O controller400A and the second I/O controller400B may coordinate control of the first I/O module305A and the second I/O module305B (e.g., via the communication bus as illustrated inFIG.5). Alternatively, in some configurations, the first I/O controller400A and the second I/O controller400B may be configured as a single I/O controller400that controls each redundant I/O module (e.g., the first I/O module305A and the second I/O module305B).

In some configurations, the I/O controller400(e.g., the first I/O controller400A, the second I/O controller400B, or a combined I/O controller) may control how a current load is balanced (or cycled) between multiple redundant channel circuits (e.g., channel circuits included in a channel circuit pairing). Accordingly, in some configurations, the I/O controller400may control which I/O module305(e.g., which channel circuit of a channel circuit pairing) sources power. In some configurations, the I/O controller400may cycle (or transfer) power sourcing between I/O modules305(e.g., channel circuits thereof) as part of a fault detection process. For instance, in some configurations, the I/O controller400may cycle power in response to detecting a fault.

For example,FIGS.6A-6Billustrate example fault scenarios according to some configurations.FIG.6Aillustrates an example fault scenario according to some configurations. As illustrated inFIG.6A, the I/O controller400cycles power from a channel circuit included of the first I/O module305A to a corresponding channel circuit of the second I/O module305B in response to detecting a fault with the first I/O module305A. In the illustrated example ofFIG.6A, during normal operation, the I/O controller400may control the first I/O module305A (e.g., the first channel circuit405A-1) to source 100% of the power. When the I/O controller400detects a fault with the first I/O module305A (e.g., the first channel circuit405A-1), the I/O controller400may cycle power from the first I/O module305A (e.g., the first channel circuit405A-1) to the second I/O module305B (e.g., the first channel circuit405A-2).FIG.6Billustrates another example fault scenario according to some configurations. As illustrated inFIG.6B, the I/O controller400cycles power from the second I/O module305B (e.g., the first channel circuit405A-2) to the first I/O module305A (e.g., the first channel circuit405A-1) in response to detecting a fault with the second I/O module305B (e.g., the first channel circuit405A-2). In the illustrated example ofFIG.6B, during normal operation, the I/O controller400may control the second I/O module305B (e.g., the first channel circuit405A-2) to source 100% of the power. When the I/O controller400detects a fault with the second I/O module305B (e.g., the first channel circuit405A-2), the I/O controller400may cycle power from the second I/O module305B (e.g., the first channel circuit405A-2) to the first I/O module305A (e.g., the first channel circuit405A-1).

In some configurations, when the I/O controller400cycles power from a faulty channel circuit of a channel circuit pairing to a different channel circuit of the channel circuit pairing, the sinking of the faulty channel circuit may be adjusted (e.g., decreased). For example, as illustrated inFIG.6A, during normal operation, the first I/O module305A (e.g., the first channel circuit405A-1) may be sinking 50%. However, when a fault is detected, the first I/O module305A (e.g., the first channel circuit405A-1) may be sinking 0%. Similarly, as illustrated inFIG.6B, during normal operation, the second I/O module305B (e.g., the first channel circuit405A-2) may be sinking 50%. However, when a fault is detected, the second I/O module305B (e.g., the first channel circuit405A-2) may be sinking 0%.

Alternatively, or in addition, in some configurations, the I/O controller400(e.g., the first I/O controller400A, the second I/O controller400B, or a combined I/O controller) may detect faults and perform a response action, such as, e.g., attempt a recovery internally (e.g., internal to the software or hardware), control the system to enter a safe state and alert the user to a needed repair, or the like. A safe state may refer to a predefined “safe” operation of software that is triggered or executed when a fault or error is detected. In such a safe state, the software may continue to operate (e.g., in a minimal capacity) as defined by the predefined “safe” operation. For example, a user may configure each channel as an Analog Output type. Following this example, when one of the channels fails, the safe state may include turning the power off to the failed channel and sending an alert to the user. Thus, a user may take action to correct an external fault and attempt restart the failed channel.

Accordingly, in some configurations, the I/O controller400may perform power balancing and imbalance detection techniques, current loading control techniques (e.g., controlling the timing of current loading between redundant channel circuits), and the like. As one example, the I/O controller400can set an output power on each channel circuit405such that the sum of the power on a screw terminal is the same (or similar) as the commanded output. As another example, the I/O controller400may perform a diagnostic that checks for imbalance between redundant channel circuits405. As another example, the I/O controller400may ensure that power settings for both channel circuits are within tolerance.

Accordingly, in some configurations, the I/O controller400may detect hardware faults, software faults, or a combination thereof. As one example, when an output of the first channel circuit405A is supposed to measure 40% of the commanded current and an output of the second channel circuit405B measures 60%, then if the output of the first channel circuit405A divided by the output of the second channel circuit405B is not within 1.5+/− of a tolerance, then a fault has occurred. In some configurations, embedded software monitors can also detect latent faults by changing voltage/current levels without impacting user process control. In some configurations, when this imbalance cannot be detected with respect to a specific channel circuit as having the fault (e.g., the first channel circuit405A or the second channel circuit405B), the I/O controller400may control the system to enter a safe state by ramping down the power on both redundant channel circuits, issuing a warning or alert to a user (e.g., for display on the display device270of the user device110), and waiting for a user to repair the fault.

With respect to timing of current loading, when a current load is commanded to an I/O module305, the I/O controller400may facilitate the transition from the present loading value to the new commanded value specification to operate within a specific time. When the I/O controller400(e.g., the firmware) keeps a high enough resolution measurement of time, the I/O controller400can measure readback current values to detect the transitions of the power level. When either the ramp rate of the power or the calculated balance of power is off, then the I/O controller400(via the embedded firmware) can command one or the other redundant channel circuits to a safe state. Accordingly, in some configurations, the technology disclosed herein may enable detection of power balance faults based on a detected ramp up or ramp down during the transition of power from one I/O module to anther I/O module. As one example, a pair of I/O modules (or channel circuits thereof) may ramp a first channel circuit up from 50% sinking to 75% sinking and the partner channel circuit down from 50% sinking to 25% sinking. In some configurations, such ramping up/down may enable detection of “stuck-at” faults with less disruption than, e.g., a typical partial pulse test.

In some configurations, as illustrated inFIG.7, the I/O controller400may include a controller electronic processor700(e.g., a microprocessor, an ASIC, or another suitable electronic device), a controller memory705(e.g., a non-transitory, computer-readable storage medium), and a controller communication interface710, as similarly described above with respect to the user device110ofFIG.2. As illustrated inFIG.7, the controller memory705may include embedded software760(e.g., a control program). The embedded software760is software executable by the controller electronic processor700. The controller electronic processor700may execute the embedded software760to control a power state of one or more channel circuits405of the I/O module305(e.g., one or more communication channels305). Alternatively, or in addition, the controller electronic processor700may execute the embedded software760to perform power balancing and imbalance detection techniques, current loading control techniques (e.g., controlling the timing of current loading between redundant circuit channels), other fault detection techniques or tasks, and the like.

FIG.8is a flowchart illustrating a method800of providing fault detection for I/O modules having redundant channel circuits (e.g., the first I/O module305A, the second I/O module305B, the first channel circuit405A-1, and the first channel circuit405A-2) according to some configurations. As illustrated inFIG.8, the method800includes providing a redundant pairing of I/O modules (e.g., the first I/O module305A and the second I/O module305B ofFIG.5) for implementation with an industrial system (e.g., the industrial system115) (at block805). The method800then includes controlling a current load supply for at least one channel circuit405of the redundant pairing of I/O modules (e.g., the first I/O module305A and the second I/O module305B) (at block810).

In some configurations, a controller electronic processor (e.g., the controller electronic processor700) of one I/O module included in the redundant pairing may receive current load data associated with one or more channel circuits405(e.g., information indicating an imbalance between redundant I/O modules305). For instance, in some examples, a controller electronic processor associated with the first I/O module305A may receive current load data associated with one or more channel circuits included in the first I/O module305A (e.g., the first channel circuit405A-1, the second channel circuit405B-1, etc.). Alternatively, or in addition, in some configurations, the controller electronic processor associated with the first I/O module305A may receive current load data associated with one or more channel circuits405included in the second I/O module305B (e.g., the first channel circuit405A-2, the second channel circuit405B-2, etc.). In such configurations, the controller electronic processor associated with the first I/O module305A may receive the current load data from the second I/O module305B (e.g., a controller electronic processor of the second I/O module305B). Accordingly, as noted herein, the I/O controllers400(e.g., the first I/O controller400A and the second I/O controller400B) may communicate (e.g., via the communication bus) such that the first I/O controller400A and the second I/O controller400B may coordinate control of the first I/O module305A and the second I/O module305B (e.g., control a power state of one or more channel circuits405of the redundant pairing).

Based on the current load data, the controller electronic processor700may detect a fault associated with the I/O module305based on the current load data (as described in greater detail herein). In some configurations, the controller electronic processor700may control the current load supply for at least one channel circuit in response to detecting the fault. As one example, in some configurations, the controller electronic processor700may control the current load supply by increasing a current load supply for at least one of the channel circuits of the plurality of channel circuits. Alternatively, or in addition, in some configurations, the controller electronic processor700may execute (or initiate) a safe state for the I/O module and generate and transmit an alert to a user (as described in greater detail herein).

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.”