Boolean crossing de la palette FPGA

Le VI Boolean Crossing de la palette FPGA fonctionne t'il ? En tout cas ca n'a pas l'aire de fonctionné sur  le poste de travail.
J'essaye de faire une methode simple pour detecter un front montant 1 PPS avec une carte FPGA.
Merci

Après avoir effectué plusieurs tests et recherches, voilà les informations qui devraient vous être utiles:
 Tout d'abord, bien que vous puissiez accéder à ces informations à partir de l'aide de LabVIEW, voici un lien décrivant le VI Boolean Crossing:
http://zone.ni.com/reference/en-XX/help/371599F-01/lvfpga/boolean_crossing/
Voici également un lien vers un forum anglais dont le sujet était très proche du votre:
http://forums.ni.com/t5/LabVIEW/I-cannot-get-the-Boolean-Crossing-PtByPt-VI-to-give-me-an-output/m-p...
Comme expliqué dans le lien vers cet autre forum, le fait de placer une fonction d'attente ou un timer de boucle dans la boucle dans laquelle vous placez le VI Boolean Crossing est très important. En cas d'absence d'un minimum de temps d'attente ou de cadencement, d'une part le système va trop vite (et le changement d'état n'est pas visible) et d'autre part, cela monopolise le processeur et peut ralentir l'ordinateur. Ici, le VI s'exécutant sur un FPGA, vous n'êtes pas concernés par le deuxième point.
Je vous joins 2 VIs que j'ai construit comme exemples:
Dans l'un des deux, j'utilise une boucle while, j'initialise le Boolean Crossing à false et je choisis de détecter les 2 types de changements d'états (montants et descendants). Dans cette version, c'est l'utilisateur qui fait basculer l'état de l'entrée du VI.
Dans l'autre exemple de VI, j'ai utilisé une boucle cadencée, je n'ai pas initialisé le Boolean Crossing (il est naturellement initialisé lors de son appel) et je choisis de détecter seulement les changements d'états true->false. Pour cet exemple, je génère un signal carré en booléen grâce à un nœud de rétroaction en entrée du Boolean Crossing, ce qui exclut l'intervention de l'utilisateur.
J'ai utilisé dans chaque exemple une des façons de cadencer les boucles pour les VIs s'exécutant sur FPGA. Ces deux manières sont quasi-équivalentes ici. J'ai défini 500ms comme constante à chaque fois pour que vous puissiez visualiser les changements d'états de la LED mais vous pouvez réduire considérablement ce temps, le VI Boolean Crossing fonctionnera toujours (utilisez des sondes et animez l'exécution en mode débogage (appelée "mise au point") pour le vérifier)
L'un des fichiers est en version compatible avec LabVIEW 2009 tandis que l'autre ne peut être exécuté qu'avec LabVIEW 2010 (en raison de la présence du nœud de rétroaction).
Ajoutez l'un ou l'autre de ces VIs d'exemple sur votre FPGA dans un projet et vous pourrez alors constater le bon fonctionnement du Boolean Crossing.
Cordialement,
Jérémy C.
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Travaux Pratiques d'initiation à LabVIEW et à la mesure
Du 2 au 23 octobre, partout en France
Pièces jointes :
Boolean Crossing FPGA (boucle while) (LabVIEW 2009).vi ‏20 KB
Boolean Crossing FPGA autonome (boucle cadencée).vi ‏37 KB

Similar Messages

  • I cannot get the Boolean Crossing PtByPt VI to give me an output. It remains False.

    Attachments:
    PwrOffRst_v2.vi ‏12 KB

    Put a Wait (ms) in your loop and you can actually see it. Every loop should have some sort of wait anyway to avoid hogging the cpu.
    Message Edited by Dennis Knutson on 06-02-2009 03:49 PM

  • Convert Analog 14V signal to a boolean

    Hi all, 
    I'm trying to use a proximity sensor (Panasonic GX-F/H) which switches between 0 and 14V to stop a linear motor. What is the proper way to convert the analog input singal from the sensor into a boolean? 
    My attempt was to connect the sensor to the analog input of my DAQ 6008 and use a comparator (signal < 10V) --> see attachement. This actually worked but it sometimes had a delay of more than 1s, what makes it impossible to position the motor accurately. Any ideas to solve this problem? Thanks in advance!!
    Regards
    JW
    Attachments:
    Picutre.jpg ‏77 KB

    Hi Bigles,
    you don't have an "analog signal" - you have a DDT wire…
    Either convert the DDT signal to a DBL wire (ExpressVI functions palette: "FromDDT"…) to compare the DBL with your limit OR convert the result of the comparison from DDT to boolean value (ExpressVI function palette: "FromDDT")…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Rt - unable to deploy model and fpga code

    hi all,
    we are having trouble getting our code to deploy to a rt target and fpga
    We are unable to use the network shared variables to communicate between the FPGA and RT target, details below, does anyone have a suggestion?
    system:
    Host :   windows 7,  NI Labview 2014, MIT / Vertistand installed
    Target:  PC with Labview RT & PCIe 7852R FPGA
    we have a standalone working FPGA code working (verified)  and we added a "Network Published Shared Variable with RT FIFO enable using Single Element"
    our idea is to read an encoder and calculate the counts (this part works) using the FPGA, we then want to send that info to a vi running on RT target and display the value.  eventually our RT target will have a model/controller built , but right now we only want to read and display a single value.
    When we run, we get the following erros:
    based on reading the forum, we tried to reset the MAX database to get the "NI Variable engine" because the windows services shows the ni variable engine is not running....  we tried this and it did not work...
    any help will be apprecated,
    also here is our project structure...

    Hi JK,
    Are you sure you're trying to use network published shared variables to communicate between the FPGA and the RT target?  Could you explain that a bit more or provide code screenshots (or actual code)?  Typically, there are two ways to communicate with an FPGA VI: read/write controls, and a DMA FIFO (the thrid, less common way, is User-Defined I/O Variables).  These methods are abstracted when using VeriStand because the XML you import (the *.fpgaconfig file) tells VeriStand how to interact with the bitfile via these methods.  If you are using the Model Interface toolkit, you are using LabVIEW (not VeriStand), so you will need to get the encoder values from the FPGA via read/write controls or a DMA FIFO.  This is accomplished on the RT side by using the FPGA interface functions palette:
    FPGA Interface VIs and Functions
    http://zone.ni.com/reference/en-XX/help/371599K-01​/lvfpgahost/fpga_interface_palette/
    Transferring Data between the FPGA and Host (FPGA Module)
    http://zone.ni.com/reference/en-XX/help/371599K-01​/lvfpgaconcepts/fpga_data_transfer_overview/
    The RT code can read and write to network published shared variables, but the FPGA cannot access them.
    Kevin W.
    Applications Engineer
    National Instruments

  • DAQmx triggering

    Im relativley new to labview and I have a problem trying to setup Triggering using DAQmx
    Im am using NI 6210 to aquire data from AI sensor - what Im am wanting to do is aquire data each time the proxistor is triggered from my Digital Input.
    So what I require is to capture 1 cycle of data and save the data on each cycle to be used at a later date to pick off certain samples at a specified time.
    I have setup a test (VI attached) which at the moment is using the Boolean Crossing to see when the proxistor goes high and when this accurs the task is started and data captured and the task is stopped when the proxistor goes low. This seems to be working ok from what i have been told is that this is not a very good way of timing and I can see that samples captured are not the same each cycle so for the aquistion I would need to look at another way in which to capture 1 complete cycle of dat using the DAQmx triggering. I have been thorugh the NI examples but from these cant find a way in which to implement the triggering for what I need. I also have read that this series of card does not allow re-triggering which is somthing that i would need to implement?
    Any help/advise would be greatly appreciated.
    Lee Henstock
    Cooper Research Technology
    Solved!
    Go to Solution.
    Attachments:
    Aquire Data_Proxistor Simulation.vi ‏26 KB

    Dear Imhensto
    I have been working on your problem and I have a solution for you. First, to clarify, the NI 6210 does not have retriggering capabilities and hence this problem you are trying to solve is a little more complex as you are trying to accomplish alot with a basic device. 
    I have attached the VI  below for your viewing and hopefully this will offer you some help on what you want to accomplish. Aviod using boolean crossings and use the daqmx tools palette when acquiring synchornous data. If you want to acquire the data to be used for analysis, connect an array to the VI to get this data. Select your appropiate input channels for your devices and run the program. You will see that when the digital edge is triggered it returns back to zero and at this edge it will correspond to an analog value.
    I hope this is of some help.
    Many thanks for using the NI forums and I look forward to your reply.
    Kind regards
    David
    Applications Engineer
    National Instruments UK
    Attachments:
    daqmx task.vi ‏32 KB

  • Short edges detection

    hello,
    i have LabVIEW 8.2 FPGA and i need to detect edges coming from a Hall effect probe build on a motor. i need it to initialize a counter when a rising edge appeer on the Hall effect probe to know how many states per turn my motor has. the time isnt constant between 2 rising edges, because the motor can rotate with several speeds. i tried it with the bloc boolean crossing, but its not good. i also tried to put a delay between to mesures of my probe, and then compare the two values to know if there is an edge, but sometimes this method doesnt detect anything...
    the time of the edge is 24ns and i must do the same thing (another application) with an edgetime of 4us.
    best regards
    Portmann J.

    i enter in a PCI interface with the hall effect probe signal (0-5V : digital input). the motor can run at max 12000 revolution / min, but the duration of the edges is not depending of the speed. the low to high edge is during 4us and the high to low edge is during 24ns. now i tried to filter the signal and i received good results.
    thank you for your help
    best regards
    Portmann J.

  • How to use elapsed time function with state machine in Lab VIEW

    Hello
    I've been trying to use state machine with elapsed time function in order to sequentially start and stop my code. The arrangement is to start the code for 1 minute then stop for 5 minutes. I've attached the code, the problem is when I place the elapsed time function out of the while loop it doesn't work, on the other hand when I place it inside the loop it does work but it doesn't give the true  signal to move to the next state. 
    Could you please have a look to my code and help me to solve this issue.
    Regards 
    Rajab
    Solved!
    Go to Solution.
    Attachments:
    daq assistance thermocouple(sate machine raj).vi ‏436 KB

    Rajab84 wrote:
    Thanks apok for your help
    even with pressing start it keeps running on wait case 
    could you please explain the code for me, the use of Boolean crossing, increment , and equal functions 
    Best Regards 
    Rajab 
    OK..I modded the example to stop after 2 cycles. Also recommend taking the free online LabVIEW tutorials.
    run vi. case statement goes to "initialize", shift registers are initialized to their constants. goto "wait"
    "start"= false, stay in current state. If true, transition to "1 min" case
    reset elapsed timer with True from shift register(counter starts at zero)."time has elapsed"=false, stay in current state(1 min). If true, goto "5min" case
    reset elapsed timer with True from shift register of previous case(counter starts at zero)."time has elapsed"=false, stay in current state(5 min). If true, goto "1min" case. Also, bool crossing is looking for "true-false" from "5 min" compare function to add cycle count.
    Once cycle count reaches 2, stop while loop.... 
    Attachments:
    Untitled%202[1].vi ‏42 KB

  • Best way to implement confirm button in conjunction with menu ring selections

    So basically I have a series of menu rings that implement different cases of a structure that adjusts PWMs and other timing signals.  I have received a request to add in a confirmation button/dialog that pops up to make sure the operator wants to perform the selected operation.  I'm doing this on a PXI 7831R FPGA board and have run into timing violations in the past, so the less timing critical, the better.  If there is some way to offload this onto the host VI, even better.  Thanks in advance for the help.

    If there is some way to offload this onto the host VI, even better.
    Considering the FPGA does not support dialogue boxes or event structures, you will have to implement this into a host VI.
    My suggestion? Have a case structure with a latch boolean control on it (ie. update config). Your host VI will have an Open FPGA VI reference and run the FPGA this way. When you want to update the config, you can change your items, then hit 'update'. Include the dialogue box for confirmation if you wish. When this is done, it will use a read/write control to update the boolean 'update config' on the FPGA. Your FPGA VI will then read that case structure with the config data in it once(since it is a latched boolean) and then continue on its merry way.
    Rob K
    Measurements Mechanical Engineer (C-Series, USB X-Series)
    National Instruments
    CompactRIO Developers Guide
    CompactRIO Out of the Box Video

  • What is the fastest way to detect on to off tag transition​s and then read 500 analog tags?

    what would be the fastest way to read 500 analog tags from the tag engine when a boolean tag transitions from on to off?? Right now I have a boolean indicator setup with the HMI wizard in a while loop with 20ms timer. The indicator feeds the boolean crossing ptbypt vi. When the output is true, I use one read multiple tags vi to get all 500 at once. I am reading data into the tag engine through an opc server and have around 2500+ tags. I need to read all of the data in less than 100ms. My plc logic is setup to zero out all of the 500 analog tags when the boolean indicator turns on again. Would I be better off using the trend tags vi to monitor the boolean indicator??

    Unclebump,
    You might try using read tag.vi

  • Creating an absolute path

    Hi everyone,
    I'm trying to save data points to an excel file and I kept getting the error:
    Possible reason(s):
    LabVIEW:  The path is empty or relative. You must use an absolute path.
    tc_cral(\usfile01)\Common\High Strain Rate\Test.csv
    I'm kind of lost on this issue at the moment and have tried to look up some definition of what a relative and absolute path means.  I must not be fully understanding the definition so if anyone can 'dumb' it down for me I'd appreciate it.  I have also attached the top level vi image of the section where I'm trying to save the data points.
    Solved!
    Go to Solution.
    Attachments:
    TryingtoSave.jpg ‏246 KB

    winehero wrote:
    hello , my question is  what's function of  this module! ,   
    please give me the best answers!
    best kinds!
    This question has nothing to do with the topic.  You really should have started a new thread.
    But that module is the Boolean Crossing PtbyPt.  The help explains it pretty well.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Convert syncronous serial data into sequence of hex values

    Hi,
    I have a problem analysing captured data of a digital I/O board. I hope one of you can give me an advice/hint on this.
    Used Software: Labview Express 7.0
    Problem description:
    The captured digital data contains on channel 0 a clock signal, on channel 1 a reset signal and on channel 3 a data signal. The data signal is syncronized to the clock and consists out of 8 serial data bits. My problem is, how to convert this clock syncronized serial data signal into a sequence (array) of bytes each represented by 2 hex digits?
    More details on the problem environment:
    - The captured data comes from an ASCII file which contains data samples of a 16bit digital I/O card. Every line contains one sample encoded as 4 hex digits
    - The file is converted by a VI to a digital waveform and plotted by a digital waveform graph.
    One of my core problem on the way to a solution lies in the area, of how to "Trigger and Gate" the digital waveform based on the rising edge of channel 0.
    Thanks in advance for your help!
    Tryber.

    I checked with the 7.0 express version we have loaded on an older computer still and the part that I think you can use was in that version. In the second loop I had made a note: Boolean Crossing PtByPt.  This looks at a binary input and can output a true pulse (one iteration) based on the direction input condition.  This has three options;  False-True (rising), True-False (falling), or Either which is the option I had used in that vi.  This should allow you to detect a false-true state change on the clock channel.  Now, you say that the clock pulse is not consistant, but what about the information pulses? That was the reason for the first two loops on my program.  To insure that the digital value was measured during one input pulse to avoid turning two or more input pulses into one digital value. 
    As far as your question about trigger functions between the two, I'm not too sure.  I believe they offer the same options that I tend to use so I havnt had a problem with either.  On your block diagram menu select All Functions > Analyze > Point by Point > Other Functions PtbyPt.  There are some very handy tools in that menu. 

  • Practicle tools for not to reinvent the wheel

    Hello,
    It might be that, it is only me who was not aware of the function list which you can find under: Signal Processing -> Point by point --> Other functions.
    Here you can find many very useful little functions, which can speed up development.
    Like the Boolean crossing, increment/decrement Pt by Pt, etc...
    I do not know why I did not see this part before )
    If there are others like me who did not run into these functions so far, maybe this info will help...

    Generally you do not do yourself any good by memorizing stuff, what you need to learn is where to look for your information. With Java this is simple: put in clear words what you need and do a google search for it. That will either point you to a third party API or a standard sun class. When dealing with any java api there is most likely a Javadoc available, so that would be your next stop (if not then the API most likely is not worth your time). If there is also some example code available you are good to go.
    Of course it also pays off to navigate around the maze that is java.sun.com and find the different tutorials and references available; there are quite a few hidden in there. And sign yourself up for the tech tips, some have proven to be invaluable to me. You can find a "subscribe now" link on this page:
    http://java.sun.com/developer/EJTechTips/

  • Qu'arrive-t-il si je ne lis pas les données dans un FIFO DMA?

    Bonjour,
        J'aimerais savoir ce qui arrive lorsque je ne lis pas les données dans un FIFO DMA. Est-ce que lorsque le FIFO DMA est plein, la nouvelle donnée est mise dans la file d'attente en faisant tout simplement sortir la plus ancienne donnée?
    Merci

    Bonjour,
    J'imagine que vous utilisez un CompactRIO ou une carte FPGA.
    CE qu'il faut savoir, c'est qu'une FIFO DMA est composée de 2 parties, une partie sur le composant FPGA (de la taille indiquée lors de la création de la FIFO) et une partie sur le Hote (Windows ou RT) beaucoup plus grande, et dont on peut faire varier la taille à l'aide d'un noeud de méthode de la palette FPGA Interface.
    Quoiqu'il en soit, lors de l'écriture dans la FIFO, ces 2 buffeurs vont se remplir. Lorsque les 2 seront plein, la fonction d'écriture vous retournera une erreur de Timeout, et la donnée que vous avez essayé d'écrire sera tout simplement perdue.
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Background Colour Change in Windows IE6

    Hi,
    Have tried to sort this through a CSS forum, but am now
    wondering if it's an application problem. I've got a web page with
    the background colour set as #FEFFDE which is a very pale peach
    kind of colour. I've created a graphic (from a photo) in Freehand
    and given it the same background colour. They blend beautifully in
    IE and Safari and Mac, but in Windows IE the background shows as a
    different colour (pale yellow), although the graphic is fine. It
    looks like the CSS is ok, but someone has pointed out thatn doing a
    screen capture in irfanview from Opera on windows, the page
    background has RGB values 254,255,222 while the background in the
    outer parts of the spiral gif image is 251,251,225. Both have been
    selected using the cross-application colour palette on my Mac which
    still shows as #FEFFDE. Help! I'm pretty new at this so may be
    missing something obvious, but would be grateful for advice.
    Kind regards,
    Steph (NZ)

    The best way to do it, if you are using a JPG would be to
    make a small
    graphic from the background of the JPG image, and use that
    graphic as a
    tiling background to fill the page.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.dreamweavermx-templates.com
    - Template Triage!
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    ==================
    "Gondwanaland" <[email protected]> wrote in
    message
    news:f4cotd$9pc$[email protected]..
    > Hi,
    > Have tried to sort this through a CSS forum, but am now
    wondering if it's
    > an
    > application problem. I've got a web page with the
    background colour set
    > as
    > #FEFFDE which is a very pale peach kind of colour. I've
    created a graphic
    > (from a photo) in Freehand and given it the same
    background colour. They
    > blend beautifully in IE and Safari and Mac, but in
    Windows IE the
    > background
    > shows as a different colour (pale yellow), although the
    graphic is fine.
    > It
    > looks like the CSS is ok, but someone has pointed out
    thatn doing a screen
    > capture in irfanview from Opera on windows, the page
    background has RGB
    > values
    > 254,255,222 while the background in the outer parts of
    the spiral gif
    > image is
    > 251,251,225. Both have been selected using the
    cross-application colour
    > palette on my Mac which still shows as #FEFFDE. Help!
    I'm pretty new at
    > this
    > so may be missing something obvious, but would be
    grateful for advice.
    > Kind regards,
    > Steph (NZ)
    >

  • Setting voltage sensitivity on NI 6581

    Hello,
    I've got the following system:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/206651
    The specification says:
    Selectable voltages of 1.8, 2.5, and 3.3 V or external reference voltage (1.8 to 5.5
    How do I select these voltages? The manuel uses somekind of read write control with an unnamed reference.  I cannot find this reference. Is the a possibility to set this on the FPGA's vi?
    Greeting
    Matthias

    hello,
    I don't really know that device, but I have ever used some RIO devices, so I can try helping you.
    The manuel you are talking about shows this image :
    This is a "Read/Write Control" node which can be found in the "FPGA Interface" palette. This palette is available when you edit the diagram of the RT code (I said : "RT code"...not "FPGA code").
    The reference you mentioned in your message is a FPGA VI reference : you can get this reference by using "Open FPGA VI Reference" function, in the same palette ("FPGA Interface", available from RT code diagram).
    Those tools allow you to control the execution of your FPGA VI from the RT part of your code : you can set control values (controls placed on the FPGA VI front-panel), run this FPGA VI, retrieve data from DMA FIFO, etc...
    So, from this little screenshot, we can assume that the developer put 2 commands on the FPGA VI front-panel. The respective labels for these 2 controls are "Power Supply (Connector A)" and "Internal Power Supply Voltage".
    Then, from RT code diagram, he opened a FPGA VI reference, and then changed the value of these 2 controls by using "Read/Write" Control node (before or after running the FPGA VI with an "Invoke Method" node, also available in the palette).
    But...there's no screenshot showing how these 2 parameters are modified by FPGA. I guess that in the FPGA VI, an "FPGA I/O Property" node gives an access to power supply settings.
    In the manual, it is said :
    "Use the NI Example Finder to find several NI FlexRIO device power setting examples"...Beyond my explanations that probably sound a little bit compliicated, I think that it will be the best way to find an answer to your question ! ;-)
    Julien

Maybe you are looking for

  • Motion Tracker with text on moving train

    I have a video clip of a train moving across the tracks.  The camera also pans to follow the path of the train.  I want text to sit on the top of the first car of the train as its travels from left to right. I used Track Camera and then parented text

  • SAP_COLLECTOR_FOR_PERFMONITOR getting cancelled

    Dear All, The job SAP_COLLECTOR_FOR_PERFMONITOR is getting cancelled daily at 7.00 AM. It is scheduled to run hourly. All other times it finishes succesfully. But only 1 time at 7 it gets cancelled. The job log is :- Date       Time     Message text 

  • Production confirmation is allowed more than once

    Hi, I have carried out production order confirmation once and tried to enter confirmation again with CO15 however system allows to confirm the order again. Can we restrict the confirmation to not to take place if it is already happened. Kumar

  • Test simulation or Test run in program RFBIBL00

    Hi, I am trying to use the program RFBIBL00 for invoice posting... I have filled the relevant data in the strucutres and populated the file... Now i need to simulate/or do a test run to check the data is correct before the actual posting... There is

  • Where can i download ADS for NWDS7.0 ,

    Hi Frndz.. Can anyone tell me that how can i enable ADS for NWDS7.0, while installing NWDS2.0.13 will have a option to install ADS in design tools.but for NWDS how can we get this. Regards Rajesh