Tektronix Technical Forums are maintained by community involvement. Feel free to post questions or respond to questions by other members. Should you require a time-sensitive answer, please contact your local Tektronix support center here.
Our lab nees to be able to produce and measure high current pulses up to 50 Amperes. Still learning MS Vicsual C# and TSB.
I have been experimenting mainly by using the Kethley's TSB sample program included on section 5 (capturing high power pulse waveforms).
I am working specifically with CapturePulseI sample program included on page 5-7.
I have been able to call the above function several times from the TSB console: For example, CapturePulseI (10, 300e-4, 10, 5), (30, 300e-4, 10, 5), (50, 800e-5, 10, 5), etc. I have been able
to see the pulses on the oscilloscope. However, error -222 (parameter out of range) always appears. In addition, line that includes PrintPulseData() generates a run time error: trying to call global PrintPulseData(a ni value).
Another important problem: The above program specifies high current pulses limited to 10V. However we need up to 50A pulses for a level up to 40V. If I modify the code over 10 Volts: smua.source.limitv = 20, for example. We call CapturePulseI (50, 800e-4, 20, 5) and TSB originates additional errors:
5007: operation would exceed safe operating area of instrument.
5061: operation not permitted while OUTPUT is off.
and finally error -222, an error that always appears even modifying pulse width.
Eventually, we will need to interface with visual studio, specifically C#, so we will post additional questions and definitely we need your support.
Thanks in advance for your help,
- Keithley Applications
- Posts: 2841
- Joined: June 10th, 2010, 6:22 am
- Country: United States
2. As far as the PrintPulseI(A nil value) error...
This means the function does not exist which means it was never loaded it into the instrument. Looking in the manual, the CapturePulseI() calls PrintPulseData(), not PrintPulseI() so your are calling PrintPulseI() then it is definitely not going to work. I don’t know if you copied and pasted from the manual into your script or what but, this example is already included as one of the projects in Test Script Builder if you installed TSB with the 2651A add-on from the CD included with the instrument or the download from our website.
3. 5007 operation would exceed safe operating range.
You mention that you get the error when you set smua.source.limitv = 20 and then try to call CapturePulseI (50, 800e-4, 20, 5). This is because you cannot put the instrument on the 50A range with a DC limit of 20V. The max DC voltage limit for the 50A range is 10V. You should leave the example script code alone and leave smua.source.limitv = 10. It is the smua.trigger.source.limitv setting that needs to be at the higher voltages and it does get set higher automatically by the script when he calls CapturePulseI (50, 800e-4, 20, 5). The pulseLimit parameter that you pass (in this call it’s 20) is the value that gets used to set smua.trigger.source.limitv. Leave the smua.source.limitv = 10 line alone and that pulseLimit sets the higher voltage limit during the pulse. Also that call still won’t work though because 8ms is too long. Look at the Pulse Specification on page 3 of the 2651A specs.
4. 5061 operation not permitted while OUTPUT is off.
This error is because of the previous error. The example script doesn’t do error checking so it still calls the smua.trigger.initiate() command even if the setup failed. Since the configuration was in error, the SMU never let the output be turned on and you can’t call smua.trigger.initiate() without the SMU output on.
- Keithley Applications
- Posts: 108
- Joined: September 22nd, 2010, 12:27 pm
- Country: United States
In your code, search for the statement in both functions CapturePulseV() and CapturePulseI()
smua.measure.count = (pulseWidth / smua.measure.interval) * 1.25
Check immediately before each of these lines. If it is not already there, please insert a line:
smua.measure.interval = 1e-6
Error -222 occurs if you use the manual's source code verbatim because the default value for smua.measure.interval is 0.00. While the instrument handles that setting by making the actual Fast ADC sample interval be the smallest possible value (1e-6) internally, the calculation that follows will cause the smua.measure.count to be an extremely large value, thus causing Error -222, " Parameter data out of range".
Dale correctly advised you about the pulse width limitations that are dependent on V and I operating regions of the 2651A. Please check those and your code that you copied from Chapter 5 to see if the line mentioned above is missing. These all are required to eliminate Error -222.
A Greater Measure of Confidence
Who is online
Users browsing this forum: No registered users and 3 guests