Achieve maximum sample rate for Keithley 2400 in LabVIEW
I am trying to measure current vs time on a Keithley 2400 using LabVIEW. I've written the Keithley command in SCPI and currently measuring about 100 points per second, but I know that the Keithley has the scope to measure nearly 10 x of that.
Are there any obvious improvements that could be done to my code to improve the speed of data collection?
labview
add a comment |
I am trying to measure current vs time on a Keithley 2400 using LabVIEW. I've written the Keithley command in SCPI and currently measuring about 100 points per second, but I know that the Keithley has the scope to measure nearly 10 x of that.
Are there any obvious improvements that could be done to my code to improve the speed of data collection?
labview
1
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07
add a comment |
I am trying to measure current vs time on a Keithley 2400 using LabVIEW. I've written the Keithley command in SCPI and currently measuring about 100 points per second, but I know that the Keithley has the scope to measure nearly 10 x of that.
Are there any obvious improvements that could be done to my code to improve the speed of data collection?
labview
I am trying to measure current vs time on a Keithley 2400 using LabVIEW. I've written the Keithley command in SCPI and currently measuring about 100 points per second, but I know that the Keithley has the scope to measure nearly 10 x of that.
Are there any obvious improvements that could be done to my code to improve the speed of data collection?
labview
labview
edited Nov 15 '18 at 21:48
kosist
5351421
5351421
asked Nov 15 '18 at 14:54
reecescupreecescup
61
61
1
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07
add a comment |
1
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07
1
1
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07
add a comment |
2 Answers
2
active
oldest
votes
- Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.
- I'm afraid that you do not parse data properly - usually, such devices return string with array of values, which you need to parse. Now, you just convert string to number - are you sure, that this is correct?
- You need actually to get data from device, by TRACe:DATA? command. Check "C Data Flow" chapter of the manual
Overall, I beleive that if you will try official LabVIEW instrument driver for this device, you'll achieve proper acquisition implementation.
add a comment |
Think about the architecture, Ideally you should have a ONLY Reading Loop, only reading from the hardware and enqueuing that data to another Consumer Loop. That means not disturbing the reading loop with any other conversion that can affect the time you are taking to acquire the data from the hardware.
So use one loop only for reading from the hardware and enqueue that data immediately. In another loop you can do all the conversions needed for that data and including the data in indicators, that is what is taking maybe more time.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322136%2fachieve-maximum-sample-rate-for-keithley-2400-in-labview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
- Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.
- I'm afraid that you do not parse data properly - usually, such devices return string with array of values, which you need to parse. Now, you just convert string to number - are you sure, that this is correct?
- You need actually to get data from device, by TRACe:DATA? command. Check "C Data Flow" chapter of the manual
Overall, I beleive that if you will try official LabVIEW instrument driver for this device, you'll achieve proper acquisition implementation.
add a comment |
- Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.
- I'm afraid that you do not parse data properly - usually, such devices return string with array of values, which you need to parse. Now, you just convert string to number - are you sure, that this is correct?
- You need actually to get data from device, by TRACe:DATA? command. Check "C Data Flow" chapter of the manual
Overall, I beleive that if you will try official LabVIEW instrument driver for this device, you'll achieve proper acquisition implementation.
add a comment |
- Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.
- I'm afraid that you do not parse data properly - usually, such devices return string with array of values, which you need to parse. Now, you just convert string to number - are you sure, that this is correct?
- You need actually to get data from device, by TRACe:DATA? command. Check "C Data Flow" chapter of the manual
Overall, I beleive that if you will try official LabVIEW instrument driver for this device, you'll achieve proper acquisition implementation.
- Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.
- I'm afraid that you do not parse data properly - usually, such devices return string with array of values, which you need to parse. Now, you just convert string to number - are you sure, that this is correct?
- You need actually to get data from device, by TRACe:DATA? command. Check "C Data Flow" chapter of the manual
Overall, I beleive that if you will try official LabVIEW instrument driver for this device, you'll achieve proper acquisition implementation.
answered Nov 15 '18 at 19:54
kosistkosist
5351421
5351421
add a comment |
add a comment |
Think about the architecture, Ideally you should have a ONLY Reading Loop, only reading from the hardware and enqueuing that data to another Consumer Loop. That means not disturbing the reading loop with any other conversion that can affect the time you are taking to acquire the data from the hardware.
So use one loop only for reading from the hardware and enqueue that data immediately. In another loop you can do all the conversions needed for that data and including the data in indicators, that is what is taking maybe more time.
add a comment |
Think about the architecture, Ideally you should have a ONLY Reading Loop, only reading from the hardware and enqueuing that data to another Consumer Loop. That means not disturbing the reading loop with any other conversion that can affect the time you are taking to acquire the data from the hardware.
So use one loop only for reading from the hardware and enqueue that data immediately. In another loop you can do all the conversions needed for that data and including the data in indicators, that is what is taking maybe more time.
add a comment |
Think about the architecture, Ideally you should have a ONLY Reading Loop, only reading from the hardware and enqueuing that data to another Consumer Loop. That means not disturbing the reading loop with any other conversion that can affect the time you are taking to acquire the data from the hardware.
So use one loop only for reading from the hardware and enqueue that data immediately. In another loop you can do all the conversions needed for that data and including the data in indicators, that is what is taking maybe more time.
Think about the architecture, Ideally you should have a ONLY Reading Loop, only reading from the hardware and enqueuing that data to another Consumer Loop. That means not disturbing the reading loop with any other conversion that can affect the time you are taking to acquire the data from the hardware.
So use one loop only for reading from the hardware and enqueue that data immediately. In another loop you can do all the conversions needed for that data and including the data in indicators, that is what is taking maybe more time.
edited Nov 16 '18 at 15:55
answered Nov 16 '18 at 9:42
billy6billy6
8129
8129
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322136%2fachieve-maximum-sample-rate-for-keithley-2400-in-labview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
did you try setting the sample rate?
– SeanJ
Dec 5 '18 at 21:07