Hello everyone! Today
I am going to talk about how to use the Operation Status and Questionable
Status Registers on Agilent’s power supplies.
All of Agilent’s SCPI based power supplies use these registers. Figure 1 is a pictorial representation of the
status system of the Agilent N6700 Modular Power System:
Figure 1 N6700 Status Model
Looks pretty daunting, doesn’t it? After reading this blog post, it won’t be so
scary anymore. There are many great uses for these registers
in your programs.
The Questionable Status Group lets you know if your power
supply is in an abnormal operating state.
Sometimes your power supply will be in protect mode when these states
are encountered. You typically want to
query this to make sure that your power supply does not transition to one of
these abnormal states. Here is a list of
all the members of the Questionable Status Group:
The Operation Status Group provides the normal operating
modes of the power supply. You typically
want to query this register to either make sure that the power supply is either
in the correct operating state or that it has completed some task (such as
initiating a trigger or performing a measurement). Here are the different members of the
Operation Status Group:
Figure 3 Operation Status Group
There are multiple ways to program using the registers. The main way that I query the resisters is
using the Condition Register. The Condition
Register will give you the real time status of the register. Reading this register does not clear it. A good example of using this is when you are
initiating a triggered measurement:
INIT:ACQ (@1) //This initiates
the Acquire trigger system
Do
STAT:OPER:COND? (@1) //Check the status register
status = read
Loop Until (status And 8) = 8
*TRG
Looking at Fig 3, 8 is the WTG_MEAS bit. Once this is true, the unit is ready to be
triggered. This lets you make sure that
you are not triggering the unit before the initiation is done. Note that all of the statuses are referred to
by the instrument by their by the bit weight (listed in the tables as the
decimal value). When you are looking for
multiple statues, you need to add the bit weights.
The other main method of Querying the registers is using the
Event register. The Event Register is
different than the Condition Register in that it keeps track of transitions in
the statuses. It does not matter when the
status change happened, the Event Register will catch it and keep it until it
is read back. You do need to tell the power supply which
statuses you are concerned with using the Negative Transition (STAT:OPER:NTR)
and the Positive Transition (STAT:OPER:PTR) commands. The Event Register is a latching register that
will clear after it is read. An example of
using this register is when you want to make sure that there were no momentary
transitions into an unwanted status. In
the following example, you want to make sure that your power supply does not go
into the Unregulated mode (UNR) before you make a current measurement:
STAT:QUES:PTR 1024,(@1)
// This is the UNR bit
STAT:QUES:NTR 0, (@1) // We are only interested in a positive
transition
Body of your program
STAT:QUES:EVEN? //Query the register
Status = readback
If status And 1024 =1024 then
exit //If the unit went UNR, exit
Else
MEAS:CURR?
(@1) //measure current
Curr=readback
End if
In this case, UNR is bit weight 1024. When the unit transitions to the unregulated
state (the bit transitions from 0 to 1), this bit gets set.
As you can tell by Figure 1, there is a bunch more that you
can do using status, including Service Requests but I will save those for a
possible future blog post.
Please feel free to post any questions or comments here.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.