Showing posts with label OPC. Show all posts
Showing posts with label OPC. Show all posts

Wednesday, October 15, 2014

Creating a "bumping" auto-restarting over current protect on the N6900A/N7900A Advanced Power System

The two main features in system power supplies that have traditionally protected DUTs from too much current are the current limit and the over current protect (OCP). When a device, for any of a number of reasons, attempts to draw too much current, the current limit takes control of the power supply’s output, limiting the level of current to a safe level. An example of current limit taking control of a power supply output is shown in Figure 1.

Figure 1: Current limit protecting a DUT against excess current.

For those devices that cannot tolerate a sustained current at the current limit level, the over current protect can be set and activated to work with the current limit and shut down the power supply output after a specified delay time. This will protect a DUT against sustained current at the limit.  An example of an OCP shutting down a power supply output for greater protection against excess current is shown in Figure 2.

Figure 2: OCP protecting a DUT against excess current

We have talked about the current limit and OCP in previous posts. For more details on how the OCP works, it is worth reviewing “What is a power supply’s over current protect (OCP) and how does it work?” (Click here to review)

Sometimes it is desirable to have something that is in between the two extremes of current limit and OCP.  One middle-ground is a fold-back current limit, which cuts back on the current as the overload increases. More details about a fold-back current limit are described in a previous posting “Types of current limits for over-current protection on DC power supplies” (Click here to review). One thing about a fold-back current limit is the DUT and power supply will not be able to recover back into constant voltage (CV) operation unless the DUT is able to cut way back on its current demand.

Another type of current limit behavior that operates between regular current limit and OCP is one that shuts down the output, like OCP, but only temporarily. After a set period of time it will power up the output of the power supply again. If the DUT is still in overload, the power supply will shut down again. However, if the DUT’s overload condition has gone away, it will be able to restart under full power. In this way the DUT is protected against continuous current and at the same time it the power supply is not shut down and requiring intervention from an operator.

While this type of current limit is not normally a feature of a system DC power supply, it is possible to implement this functionality in the N6900A/N7900A Advanced Power System (APS) using its expression signal routing feature. This is a programmable logic system that is used to configure custom controls and triggers that run within the APS. Here the expression signal routing was used to create an auto-restarting current shutdown protect in the example shown in Figure 3.

Figure 3: Custom auto-restarting current shutdown protect configured for N6900A/N7900A APS

A custom control was created in the expression signal routing that triggers the output transient system to run if the current limit is exceeded for longer than 0.3 seconds. A list transient was programmed into the APS unit to have its output go to zero volts for 10 seconds and then return to the original voltage setting each time it is triggered. In this way the output would pulse back on for 0.3 seconds and then shut back down for another 10 seconds if the overload was not cleared. The custom trigger signal was graphically created and downloaded into the APS unit using the N7906A software utility, as shown in Figure 4.

Figure 4: Creating custom trigger for auto-restarting current shutdown protect on APS

Current limit and over current protect (OCP) are fairly standard in most all system DC power supplies for protecting your DUT against excess current. There are not a lot of other choices beyond this without resorting to custom hardware. One more option now available is to make use of programmable signal routing like that in the N6900A/N7900A APS. With a little ingenuity specialized controls like a auto-restarting current shutdown protect can be created through some simple programming.

Thursday, May 31, 2012

*OPC and You

Today I have a guest-blogger, one of my Agilent colleagues (and friends), Matt Carolan. Matt has experience with programming our power products, so I asked him if he had anything he wanted to share with our audience. He has many things to talk about and will most likely contribute to future posts, but decided to start with the *OPC command, which is the “Operation Complete” command. Here is Matt’s post:

Hi, my name is Matt and I am an Application Support Engineer at Agilent Technologies. I have had 12 years of experience programming our power products and I wanted to write about a small but powerful command, *OPC.

*OPC is a standard IEEE-488.2 command that allows you to synchronize your power supply with your program. *OPC lets you know when all pending operations are complete. A pending operation is something such as the voltage being set or the output turning on. I worked as a test engineer for a few years and we always used the *OPC command in our calibration routines. We would send a calibration command (such as CALibration:LEVel:P1) followed by a *OPC? query. This allowed us to ensure that the calibration command had finished executing and that the power supply should be outputting the correct level before we took any measurements with our test system.
There are two ways to use *OPC. There is a standard *OPC command and the *OPC? query. The *OPC command will set bit 0 of the Standard Event Status register when all pending operations are complete. You can then use a *ESR? Command to poll the Standard Event Status Register. When this returns a 1, all pending operations are complete. When you use this command, it only works for any pending commands that were sent BEFORE you sent the *OPC command. It will not work for commands sent after the *OPC command. You can send another *OPC command to start the cycle again.

The other way is to use it as a query. When you send a *OPC? query, it will put a 1 in the output buffer when all pending operations are complete. The main drawback of this method is that if there is an operation that takes a long time to complete, your *OPC? query will timeout. You would need to have a long timeout set in your IO library to avoid this. You cannot send any commands after the query without getting an error so this will hold up your program until all pending operations are complete.

If you have any questions please comment here or on the Agilent forum at: