SbRIO 9636 FIFO questions

Hi everyone,
I'm new to the Realtime/Embedded part of Labview and I'm just starting to play around with the RIO evaluation kit.
I came across a phenomenon that I cannot understand... So maybe it's a stupid thing, so I apologize in advance.
I create a FIFO on the FPGA target (configured to Traget-to-Host DMA) and put 5Million UINT16 values into it from an FPGA loop, as fast as possible. Now, surprisingly, I can read it either with a VI on the realtime chasis, but also with an identical VI situated on the PC host, even with similar performance.
I actually don't understand where the data is buffered and how the PC can access it. I thoght the memory of the DMA-FIFO must be on the RT-target, right? So how does the data come to the PC without a RT-VI? I suppose this method of data transfer (FPGA-to-PC) is not proper use of the FIFO, right?
Moreover, when I check the "Elements remainig" property of the FIFO in the PC-VI or RT-VI, I get numbers around 8000, up to 10000, although the FIFO is configured to have 1023 elements only.
How is this possible?
(Btw.: I do realize that I loose lots of data and the FIFO is to small. Yet, I first want to understand the above points).
The Project is attached as ZIP.
Best regards, and thanks for your efforts,
Joe
Solved!
Go to Solution.
Attachments:
sbrio FIFO test.zip ‏239 KB

Hey Joe,
NI provides a service which is called NI RIO Server. This service is installed with LabVIEW RealTime on your RealTime target and makes it possible to connect to the FPGA of the cRIO/sbRIO from an computer.
I can't find much information available on the internet, only this page:
How Do I Access RIO devices on a Networked Computer? - National Instruments
http://digital.ni.com/public.nsf/allkb/43F81436B97AEE28862573D40069F440
This is the reasen why you are able to run the same RealTime program on the RIO and the development computer. It is also the reason, why you have to input the IP adresse of the RealTime Target on the program running on the development PC. If you run the VI on the RealTime Taraget itself, it is not necessary to input the IP adresse.
Some information about the FIFO size:
The FIFO is not only one buffer. A FIFO countains two buffers.
One buffer is located in the FPGA itself. It is incredible small (1023 elements by default), but this buffer is ultra fast. The size of this buffer is configurated through the LabVIEW project. You can increase the number of elements in this buffer, but you will never be able to reach a buffer size > 20K elements because of the resource constrains of the FPGA.
The second buffer is located on the RealTime site of the RIO. This buffer can be bigger that the buffer on the FPGA, usually 10x or more. You can configurate the size of the RealTime site buffer through you LabVIEW Code on the RealTime part.
Regards, Stephan

Similar Messages

  • SbRIO-9636 Question

    Guys,
    I have one (1) sbRIO-9636 which was part of the evaluation kit. I took the top level part (the circuit that lets you interface with some DIO AIO) and only have the board. then I went ahead and purchased some fo the accessories:
    part number 154041-12 
    part number 153158-10
    Now Iam stuck trying to find a terminal block (similar look as the cb-50 I/O (p/n 776164-90) but for this board so that i can interface with the DIOs and AIOs.
    I was told by a vendor from NI that NI does not make this terminal board nor knows which third party company makes them. (this after I purchased these parts through NI which baffled me)
    If any one knows how can i get a terminal block that uses the 50 pin robon cable i purchased I will greatly appreaciate it.
    Solved!
    Go to Solution.

    Spex, thanks for your input unfortunately Iam not doing hobbies jobs, this is for a medical device c...
    Iam hoping for the grace of god that some one somewhere has bought or seen one if these and can help me.
    Sorry for the font iam posting from my phone.
    Regards,

  • Acquisition on NI sbRIO 9636

     
    Hello! I am working on my faculty project and I have to do acquisition on NI sbRIO-9636. How can I choose sampling period of acquisition? I am working according to an example on NI website below:
    http://www.ni.com/tutorial/4534/en/
    I can't figure it out which sampling period should I put in Host.vi and which in Target.vi in order to have proper acquisition? For an example, I would like to have sampling period 10 milliseconds. How to configure loop-time in Host.vi and how in Target.vi?
    Thank you

     
    Daniel and Sam,
    Thank You for Your replies.
    I will remove this function for building an array. 
    I will now explain what confused me. 
    The sampling period should be 1000/ 40 000 000 s, that is 25 microseconds. I have Host loop rate 10 ms. That means I read 100 elements every 10 ms? 
    Okay, now when I calculate I have 400 elements in FIFO buffer during 10 ms of acquisition. But, I only read 100 elements and FIFO buffer is filling in.  
    Now, I am using only 1 sample out of 100 an send that one on graph. What happens to the 99 unused samples? Are they just thrown away and in the next host loop iteration I read another 100 of samples, again use only one and the rest throw away and so on? 
    About 'samples that arrive late': 
    I will try to make it simple (I am still talking about my VIs in this question)
    Let's say that we have 2 packages: First package contains first 400 samples, second package contains 400 samples that were acquired after first 400 samples. First package is 'older' than the second one.
    When I read 100 samples I actually read 100 samples from the first package. The second host loop iteration reads 100 samples from second package or from the first package? I think from the first, because I read samples I have acquired 'long' time ago, an not the latest ones.
    Can I put in the number of elements 400, and keep all the rest to have real-time acquisition and proper data shown on the graph? I suppose I should save data to some Excel file to keep all data I acquire. 
    Could You please answer me? 
    Thank You
     

  • Less voltag in J502/DIO sbRIO 9636 (NI LabVIEW RIO Evaluation Kit )

    Hello,
    I bought the NI LabVIEW RIO Evaluation Kit (with sbRIO9636). I have problem with the sbRIO9636. The voltag in J502,DIO Pin 49 and 50 is less than 5V (just 1.7V). so VCC of the LabVIEW RIO Evaluation board with a digital encoder, LCD screen, function generation, etc. can't get the enough voltag (5V) und can't work.
    For example >VCC of LCD screen is just 1.7 V and not to work. So this is a Hardware problem? Can man solve the problem?
    Thank you!!
    Attachments:
    IO_sbRIO9636.PNG ‏79 KB

    Hi Duffy and KellyDog,
    +5V should be available on the pins and connector that Duffy is referencing.  
    KellyDog,
    Couple of questions.  Is anything connected to the sbRIO-9636 in addition to the power cable?  Does the unit boot and connect to your host PC over ethernet?  If the +5V power supply was damaged and only supplying ~1.7V, I wouldn't expect the board to boot, as all the onboard power supplies are derived from that rail.  Has anything happened to the board that would cause you to suspect power supply damage?  There is a fuse on the +5V pins, so is it possible that the 5V supply pins were accidentally shorted to ground, potentially damaging the fuse?  If so, this board would need to be returned for repair (RMA) as the fuses are not user servicable. 
    Regards,
    Spex
    National Instruments
    To the pessimist, the glass is half empty; to the optimist, the glass is half full; to the engineer, the glass is twice as big as it needs to be...

  • NI sbRIO 9636 utilisatio​n de 2 bus CAN

    Bonjour,
    Pour mon projet, j'aurais besoin de faire de l'acquisition de données et de la communication vers 2 BUS CAN distinct.
    J'ai opté pour une carte NI sbRIO 9636.
    Dans les datasheets j'ai pu voir que cette carte disposait d'un connecteur CAN, j'ai aussi trouvé des broches CAN (GP_PORT : O, 1 et 5) sur le connecteur RMC.
    Ma question est de savoir est-ce que les broches CAN du connecteur RMC correspondent au même bus CAN que celui du connecteur CAN.
     - Si ce n'est pas le cas, est-il possible de les utiliser les deux simultanément tout en respectant le fait que les deux soient distinct
     - Si c'est le cas, existe t-il des cartes de type sbRIO incluant deux bus can, sinon il y a t-il un moyen d'étendre la carte afin d’intégrer un deuxième port de communication CAN
    En vous remerciant par avance
    Nassim

    Hello,
    Il y a un bien un connecteur CAN intégré sur certaines sbRIO. Ce dernier utilise un driver à part entière et le microprocesseur associé au port CAN est en fait le processeur de la sbRIO. Le connecteur RMC permet d'ajouter une carte fille potentiellement personnalisable pour rajouter des fonctionnalités à la sbRIO. Effectivement certaines I/O du connecteur peuvent être utilisées pour faire du CAN, mais :
    - il faut créer la carte-fille de toute pièce.
    - il faut créer le driver pilotant les I/Os du connecteur via le FPGA.
    En soit, c'est donc possible mais fastidieux et peu documenté (solution réservée majoritairement à nos clients/partenaires qui font de l'OEM). Comme décrit implicitement, dans ce cas, les ports CAN ne seraient pas reliés.
    Autre solution : Depuis LabVIEW 2013 (RIO 13.0), le module 9853 est supporté sur sbRIO : il est donc possible via la carte-fille NI-9693 de rajouter un (voire 2!) module CAN à 2 ports. Vous aurez ainsi jusqu'à 3 ports CAN sur la sbRIO. Les examples et drivers existent déjà, donc peut de choses à redévelopper. L'inconvénient vient plutot du facteur de forme, puisqu'on rajoute un peu d'encombrement avec la 9693 et le 9853
    Liens :
    - http://sine.ni.com/nips/cds/view/p/lang/en/nid/210​790
    - http://sine.ni.com/nips/cds/view/p/lang/en/nid/201​972
    Cdt,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • SbRIO-9636 onboard RS232 example

    Hello!
    I am trying to connect a thermocouple via on-board RS-232 to sbRIO-9636. 
    If i create a simple .vi on RT, implementing RS-232 communication like on PC there is nothing in read buffer.
    There is no problem with a thermocouple or its interface, because ive already connected it to PC using RS-232.
    So, my question is - does someone have an expirience with such communication? Where i can find a simple example of sbRIO-9636 on-board RS-232 read or write?

    Hi,
    Did you install Serial related drivers into your sbRIO before doing all that? Do you have a screenshot on how you connect the thermocouple to the onboard RS232? What thermocouple are you using? Can you provide a screenshot of your code?
    Warmest regards,
    Lennard.C
    Learning new things everyday...

  • Lcd sbrio 9636

    Cuando compilo el progrma de LCD que viene en el embeded eval me sale un error en la compilacion... es el siguiente
    ERROR:HDLCompiler:432 - "C:\NIFPGA\jobs\mV13c4u_YpRjr0V\NiFpgaAG_00000133_SequenceFrame.vhd" Line 29: Formal <cparametersignal> has no actual or default value.
    INFO:HDLCompiler:1408 - "C:\NIFPGA\jobs\mV13c4u_YpRjr0V\NiFpgaSetOutputDataEnable.vhd" Line 37. cparametersignal is declared here
    ERROR:HDLCompiler:854 - "C:\NIFPGA\jobs\mV13c4u_YpRjr0V\NiFpgaAG_00000133_SequenceFrame.vhd" Line 21: Unit <vhdl_labview> ignored due to previous errors.
    VHDL file C:\NIFPGA\jobs\mV13c4u_YpRjr0V\NiFpgaAG_00000133_SequenceFrame.vhd ignored due to errors
    -->
    Segun lo que inveestigue en labview 2012 para abajo si funciona correctamente pero estoy utilizando labview 2013... y me sale un error alguien me podria explicar como solucionar este error para utilizar el LCD con la tarjet sbrio 9636..???

    Hola crist_sosa,
    A juzgar por el texto del error que te aparece es posible que se deba al compilador, te recomiendo que hagamos lo siguiente:
    1. Instalemos la versión de NI LabVIEW 2013 FPGA Module Xilinx Tools 14.4 desde el siguiente link:
    http://www.ni.com/download/labview-fpga-module-2013/4248/en/
    2. En caso de que estés corriendo LabVIEW 2013 SP1 (32-bit) instalemos el siguiente parche:
    http://digital.ni.com/public.nsf/allkb/5812D36C9F85391A86257CBB00687A97
    En caso de que tu situación persista después de que actualizemos este módulo, no sé si pudieras compartir un screen shot del error y del Snippet (diagrama de bloques).
    Quedo al pendiente crist_sosa, ¡saludos!
    David P.
    National Instruments
    Ingeniería de Aplicaciones
    www.ni.com/soporte
    David P.
    National Instruments
    Applications Engineer
    www.ni.com/soporte

  • Multiple connection server CANNOT be build as rtexe on sbrio 9636

    I am using sbrio 9636. I take the example called "Multiple Connections - Server.vi" And it works OK when the sbrio is connected to the Computer.
    But when I generate the vi to rtexe because that I want to start the vi itself when I boot the sbrio. But after deploy the rtexe on sbrio, it cannot work after reboot. The clients cannot connect to server with socket error code 10061.

    Hi Rudi,
    As per the logs it looks like that file which installer want to use is used by another program. Have you checked this ?
    Also, try to stop all the thing and then check whether any process is running or not. If not then start again.
    If yes, kill that process.
    Thanks
    Sunny

  • Modbus sbrio-9636

    Ciao a tutti...
    stiamo cecando di collegare un multimetro ABB M2M MODBUS alla porta COM3 della scheda SBRIO-9636.
    Il nostro ambiente di lavoro è LabView 2013; abbiamo creato l'I/O Server (Modbus), impostato la porta correttamente, ma al momento del RUN si è verificato il seguente errore:
    Deploying Untitled Library 2.lvlib:Modbus1\\10.0.1.65\Untitled Library 2\Modbus1 deployment failed (error: -1967357950,
    OS and Network Services:  (Hex 0x8ABC8002) The I\O Server is not setup in MXS. The first time the "Network Variable Engine"
    service launches it will do so. Please verify that the "Network Variable Engine" service is running.).
    Grazie fin da ora per qualsiasi aiuto....
    Risolto
    Andare alla soluzione.

    ciao, intanto grazie della risposta....
    Stiamo cercando di acquisire una variabile da un Holding Register dal multimetro M2M MODBUS, ed avevamo impostato il programma nel modo seguente:
    Abbiamo provato a creare un MODBUS SLAVE per verificare la comunicazione e quindi l'acquisizione della variabile ma non ci siamo riusciti. te hai esperienza in merito o avresti qualche dritta da darci?...grazie per ora

  • Unstable PWM from DI/O pins from sbrio 9636

    Hey guys
    Im trying to control a Vex Motor Using a PWM generator VI in the FPGA of the sbrio 9636, and I output this signal to Pin 5 of the Digital I/O Pin. Our PWM parameters are 5% duty cycle with a frequency of 50Hz. The output of the PWM is very clean, but its very unstable as the duty cycle changes substantially and the signal itself flickers on and off when measured through an oscilloscope. I've used this signal to drive a vex motor but the motor does not drive well at all. I know its not the motor controller and the motor itself  as I have inputted a pwm signal from a waveform generator with the same parameters and the motor runs smoothly. Is there a way to make the PWM output from the sbrio more stable ?
    Thanks

    the problem is with your code but you did not post the code.
    Stu McFarlane
    Viewpoint Systems, Inc.

  • SbRio-9636 how to increase DIO to 37 pins

    NI
    I am working with the SBrio-9636 kit in the CRIO evaluation kit, and am liking the board quite a bit.  
    Running into a little problem though. I have  a design that I wanted to try on the SBrio that requires around  38 dio pins.  The board has only 28 pins. What are my options for increasing the DIO pins?
    Paul

    I wanted to clarify a point in the previous post.  
    The DIO lines on the RMC are not 'slower' than the sbRIO-9636 DIO lines.  The 96 lines on the RMC connector are connected to dedicated pins on the FPGA - no multiplexing is involved.  The primary difference between the 28 DIO on sbRIO-9636 and the RMC are outlines in the manual on page 31, specifically figures 19 and 20.  
    sbRIO-9605/06/23/26/33/36 User Manual
    Specifically, the 28 DIO on J502 and J503 have a bus switch that makes them 5V tolerant.  The RMC DIO lines are connected only through a series termination resistor.  
    The reason the sbRIO-9626 doesn't have both the RMC DIO lines and 24 lines on J502 is the FPGA didn't have enough IO pins available to support both connectors populated at the same time.
    Regards,
    Spex
    National Instruments
    To the pessimist, the glass is half empty; to the optimist, the glass is half full; to the engineer, the glass is twice as big as it needs to be...

  • Custom device FIFO questions

    Question again about custom device.
    If there are 200 output channels but every 100ms only 40 of them get updated by the driver.
    Is it possible to write only those 40 channel data to the device output FIFO at a time?
    What is the RT FIFO write speed when writing 200 channel data at a time?
    Thanks.
    Solved!
    Go to Solution.

    If your custom device is an inline custom device you may update only dedicated channels per iteration.
    In case of a asynchronous (parallel) custom device, you are forced to write always the entire stack of channels no matter what happend to the values. (if none of the values have changed, then it is ok to not call the FIFO Write function).
    The FIFO Write doesn't cause a huge overhead.
    You can easily benchmark that yourself though.
    Tom
    http://www.newgistics.com

  • How to fix sbRIO " Unhandled Error Detected"

    Dear all,
    I was configuring my sbRIO 9636 using NI Hardware Setup wizard. After correctly configuring my PC's IP address and targets address, the wizard keeps on showing the error below.
    I am running LV 2012 with LV-FPGA and LV- Real Time Module ( both 2012 version ). The target is connected directly to my PC so had to use manual IP settings. Need help. 
    Regards,

    Hi koziak92, 
    Are you receiving the same error as the original post?  What steps have you tried so far?
    I recommend creating a post on the Real-Time Measurement and Control board for questions about our RIO products.  Creating a new post and on the corect board helps ensure the most visibility for your question and makes it more likely that someone with relevent experience will see the post.
    Real-Time Measurement and Control: http://forums.ni.com/t5/Real-Time-Measurement-and/bd-p/280 
    Regards,
    Kelly B.
    Applications Engineering
    National Instruments

  • Lock in Amplifier on Single Board Rio 9636

    Hey Guys,
    I have to program a lock in amplifier for an analog signal i get from a microphone with a high SNR.
    I have Labview 2012 SP1 and FPGA/RT 2012 and a SBRIO 9636.
    I found an example: https://decibel.ni.com/content/docs/DOC-1762
    LIA_IPnet_LabVIEW2009.zip
    Now I am trying to understand the mostly uncommented code.
    Question 1:
    Can I use this program with my SBRIO? I prefer this to the SBRIO version on the same page because it is a dual phase LIA.
    Question 2:
    I added my own zip file were I added some comment boxes (orange background) but I commented in german. Maybe you can tell me if I am right so far. (Mainly in the HostLIA.vi and FPGA_LIA.vi)
    Question 3:
    Can someone help me to understand the subvi on the FPGA named "costa loop"? For example: What exactly is the code doing in the VCO subvi?
    Question 4:
    Can someone give me a link to a good document/website which explains the mathematic details of the decimation in a LIA?
    (german or english)
    If someone has another good working lock in program, please tell me.
    Thanks for your help
    Stefan
    Attachments:
    LIA_IPnet_LabVIEW2009.zip ‏3530 KB

    Hello Slev1n,
    here is some documentation about the Lock in Amplifier (mathematically):
    http://www.thinksrs.com/downloads/PDFs/ApplicationNotes/AboutLIAs.pdf
    in general it is possible to configure a cRIO project to a sbRIO project. You just need to configure a new target.
    Regards, Elli

  • Is it possible to make "autorange​" on SB-RIO 9636

    Hello,
    I want to know, if it is possible to make a kind of "autorange" for the analog inputs of the SB- RIO 9636 board.
    The mean is to increase the accuracy, if small voltages are used.
    But I am not sure, if the will be something destroyed, if I apply a high voltage in a sensitive range.
    Do you have any hints or tips?
    Best regards, 
    Ruedi
    Solved!
    Go to Solution.

    All,
    The sbRIO-9626 and sbRIO-9636 has the ability to set the gain of the programmable gain instrumentation amplifier (PGIA) within the LabVIEW FPGA Block Diagram using the 'Voltage Range' Property Node.
    You may be used to setting these settings in the LabVIEW Project by right-clicking the AIO and selecting Properties then changing the Voltage Range before compilation. When you set this property within LabVIEW FPGA, it will override the LabVIEW Project setting once called.
    You can implement in your LabVIEW FPGA code to first use +/- 10V (widest range) and check the voltage for each channel to see if the voltage range can be adjusted to a smaller value. For example, if you are using the +/- 10V range but are reading 1.156 V for a specific amount of time, then you can change the voltage range of that channel to be +/- 2V range. It may be benefecial to only autorange when you press a button or are needed so there is not the overhead of checking and adjusting before actually taking the readings. 
    Each channel can be independently selected as the PGIA is downstream of the multiplixer as shown in Figure 22 of the Operating and Instructions Manual.
    The manual also states the input range and resolutions for the sbRIO-9636 (+/- 10V, 5V, 2V, 1V). I think Sam_Sharp may have been thinking about the sbRIO-9623 or sbRIO-9633 which has a fixed input range of 0-5V.
     The LabVIEW Help also has more information on the Voltage Range Property Node:
    http://zone.ni.com/reference/en-XX/help/373197D-01​/sbriohelp/sbrio_9636/
    Tannerite
    National Instruments

Maybe you are looking for

  • How to deactivate open items in F-53

    HI, EXperts I am Trying to Post vendor payment thru f-53 . The Screen is displaying all the open items as active. so that I have to deactivate the other open items which are not relevent to my current posting. My requirement is    the system should d

  • How do I delete    all contacts (at one time) from i      phone4

    Somehow I have gotten mutilple listing in contacts.  How do I delete all contacts from I phone and start over?

  • Please help me create the indexes for this XML

    Hi Mark and others, What is the way to create the correct index for this kind of XML (I posted earlier)? I created the indexes without using those prefixes without any problems but they do not seem to be used during processing. For 300 statutes, it t

  • How to merge iTunes accounts

    I created an itunes account when i purchased my first gen iPod Touch that is linked to an old email address i do not use anymore. I now have a @me e-mail address and use this as my main Apple ID and want to move all my stuff from my old iTunes accoun

  • Mail duplicates, storage question

    I was in the middle of setting up a new Mail 5.2 backup plan and noticed something odd. I'm using 10.7.3. I thought Mail since Lion stored mail here: ~/Library/Mail/V2. Sure enough, I have directories there. But they are almost all dated July '11, wh