Achieve maximum sample rate for Keithley 2400 in LabVIEW












1















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?



a picture of my code










share|improve this question




















  • 1





    did you try setting the sample rate?

    – SeanJ
    Dec 5 '18 at 21:07
















1















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?



a picture of my code










share|improve this question




















  • 1





    did you try setting the sample rate?

    – SeanJ
    Dec 5 '18 at 21:07














1












1








1








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?



a picture of my code










share|improve this question
















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?



a picture of my code







labview






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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














  • 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












2 Answers
2






active

oldest

votes


















1















  1. Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.

  2. 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?

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






share|improve this answer































    -1














    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.






    share|improve this answer

























      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
      });


      }
      });














      draft saved

      draft discarded


















      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









      1















      1. Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.

      2. 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?

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






      share|improve this answer




























        1















        1. Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.

        2. 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?

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






        share|improve this answer


























          1












          1








          1








          1. Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.

          2. 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?

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






          share|improve this answer














          1. Try to use existing driver for LabVIEW - instrument driver for Keithley 2400.

          2. 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?

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







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 19:54









          kosistkosist

          5351421




          5351421

























              -1














              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.






              share|improve this answer






























                -1














                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.






                share|improve this answer




























                  -1












                  -1








                  -1







                  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.






                  share|improve this answer















                  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.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 16 '18 at 15:55

























                  answered Nov 16 '18 at 9:42









                  billy6billy6

                  8129




                  8129






























                      draft saved

                      draft discarded




















































                      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.




                      draft saved


                      draft discarded














                      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





















































                      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







                      Popular posts from this blog

                      Xamarin.iOS Cant Deploy on Iphone

                      Glorious Revolution

                      Dulmage-Mendelsohn matrix decomposition in Python