Differenza fra FPGA e Scan Engine in RealTime

salve a tutti, ho seguito un corso real time per labview dove ci facevano programmare l'accensione, monitoraggio, raccolta dati e spegnimento di una specie di camera climatica composta da una ventola e una lampadina. è stato tutto molto chiaro ma c'è un problema: tutto è stato fatto col supporto di scan engine.
invece io dovrei programmare un motore passo passo in real time con cRio e col modulo NI 9501 che non supporta lo scan engine e quindi bisogna programmare con l'FPGA.
qualcuno che magari ha avuto esperienza col modulo 9501 sa dirmi cosa si intende col "programmare con l FPGA" e come bisogna fare?
perchè avendo seguito il corso con lo scan engine ho capito come si usa lo scan engine, i controlli e le variabili della lampadina e della ventola venivano fuori automaticamente.
mentre con l FPGA come si programmano i controlli ( in questo caso accensione spegnimento senso di rotazione e angolo di rotazione del motore ) da mettere nel block diagram?
insomma quale è la differenza fra scan engine e FPGA?
qualcuno può aiutarmi? 
grazie 

grazie per la risposta, il link che mi hai dato è molto utile. da quello che mi avevano detto al corso in teoria non è necessario che io apprenda totalmente la programmazione con FPGA perchè per quanto riguarda la mia applicazione, l'FPGA serve solo nel VI iniziale per i controlli del motore e poi si può programmare tutto normalmente con labview real time. in pratica mi avevano consigliato questi due VI che ti allego relativi al NI 9501 che sono programmati con l FPGA, e di usarli come "subVI" in un programma labview real time normale. quindi da quello che ho capito la parte FPGA sarebbe già fatta da questi due esempi. è possibile o ho capito male io?
inoltre ho provato a dargli una occhiata ma non li capisco. questi programmi effettivamente cosa fanno?
grazie
Allegati:
Setpoint Control (open loop) - NI 9501.lvproj ‏22 KB
Setpoint Control (open loop) - NI 9501 (FPGA).vi ‏106 KB
Velocity Control (open loop) - NI 9501.lvproj ‏25 KB

Similar Messages

  • Scan Engine power up time

    We have supplied a customer with a Labview/cRIO system.
    There is a realtime program running with the Scan Engine, and a UI on the host.
    Everything is working fine except for that they are
    observing very long powerup times, in the 2 minute range. In particular, after
    being powered off for several days, it take 4 minutes. Part of the time is
    because of the Ethernet extender modems which take 35-40 seconds to connect
    with each other.
    I have ran some tests here, without the modems, and have
    observed that after applying power:
    1. I can ping the controller after 5 seconds.
    2. The system is operational after 35-40 seconds. This was
    measured both by the user interface being able to read Shared Variables, and
    the System manager reconnecting and reading Shared Variables. I let it sit
    overnight and this time went up to 50 seconds, so there does appear to be a
    correlation between how long it was powered down and how long it takes to power
    up.
    I searched the NI forums but couldn’t find any discussion on
    this. Does anyone have any ideas?

    Hey pjackson59,
    Quite a strange problem I must agree! Here's some of my ideas for you to try...
    1) In the Distributed System Manager, navigate to the cRIO on the network.  Choose NI_SystemState >> Memory >> Available (you may also want to take note of the values for the other three variables there as well).  Notice that when you click on that a Trend Line appears on the right.  Leave this up and running overnight and check it in the morning.  If the trend line is going down, this means you're losing available memory and could have a memory leak in your realtime VI, which could effect startup time.
    2) In MAX, find the cRIO under Remote Systems and click on the System Settings tab.  Under the System Monitor section, take note of the Free Drive Space.  If this value gets smaller and smaller over time, say dangerously close to no free disk space, then it's definitely possible it could be affecting start-up time. 
    3) Ethernet communication is at the lowest priority on a real-time system.  That being said, if your real time VI is doing some hardcore processing, especially more and more as time goes on, then the CPU isn't going to publish data out the Ethernet port as regularly as it should be. This would explain why reading those shared variables takes a long time to update.
    4) You could have a combination of the three things, in which case you'll probably (unfortunately) need to resort to some more intensive debugging and troubleshooting techniques - i.e. using the Real-time Execution Trace Toolkit
    Rory

  • CRIO 9068 + Scan Engine Support Error - Even though it is installed on cRIO, after deploying error says its missing

    All,
    I have a cRIO-9068 that I am trying to use the scan mode for. I have intalled all the latest drivers and software as explained. However, when I set my chassis to scan mode and then select deploy all, I recieve this error on my chassis and all of my modules:
    "The current module settigns require NI Scan Engine support on the controller. You can use Measurement & Automation Explorer (MAX) to install a recomended software set of NI-RIO with NI Scan Engine support on the controller. If LabVIEW FPGA is installed, you can use this module with LabVIEW FPGA by adding an FPGA Target Item under the chassis, and drag and drop the module onto the FPGA Target Item."
    Has anyone experienced this or know why labVIEW won't recognize that the software is installed on my cRIO or is it not being installed correctly?
    Solved!
    Go to Solution.

    So I found that the target's Scan Engine was in Configuration mode.  After placing it in Active, I was able to deploy all of the modules on the cRIO target.  However, now I cannot deploy any of my modules on my EtherCAT NI 9144 racks regardless of which scan mode I place the Scan Engine.  I verified that I have all software on the cRIO target I need.  I was also able to find the EtherCAT slaves and their modules on MAX and I was able to add them to the project.  The problem I am having is being able to deploy them.  I have gone through the procedure outlined in the manual provided with the EtherCAT racks and the following link with no issues:  http://www.ni.com/white-paper/10555/en/
    The top LEDs on the EtherCAT racks are solid yellow and the bottom are solid green.  Does anyone know why I may be having this problem?

  • Shared Variables, Scan Engine & Multiple Targets

    I am seeking some general advice about the structure of my LabVIEW project.
    The project consists of a laptop with LabVIEW, and a joystick connected, and a CompactRIO connected via ethernet. I had been running the cRIO in FPGA Interface mode, however a change in some things caused the project to have to be shifted to scan mode.
    As of now, the code on the laptop updates shared variables on the cRIO, and reads from shared variables on the cRIO for monitoring. I want the shared variables hosted on the cRIO because it will also need to operate without the laptop connected. Before switching the cRIO to scan mode, I found that I had to first run the laptop code, and then run the cRIO code, or the shared variables would not communicate properly. Now that I have switched to scan mode, I have to run the cRIO code first, and even then the shared vars do not communicate properly for more than a few seconds, and are much laggier.
    My ideal project solution is a system that can run with or
    without the laptop connected, and obviously not having all these shared
    variable issues. I would like to autostart the code on the cRIO, and
    have the user run the laptop code if necessary, but in the past this did
    not seem to work with the shared variables.
    I am really confused about why this is happening. Hopefully I have explained my problem well enough. I don't really want to post the entire project on here, but I can email it to people if they are willing to take a look at it. Thank you for taking the time to read this.
    I am running LabVIEW 2010 SP1 with the Real-time, FPGA, DSC, and Robotics modules. I have the Feb '11 driver set and NI-RIO 3.6.0 installed and all completed updated on my RT cRIO.
    Solved!
    Go to Solution.

    I do this type of stuff all the time...
    Move all your NSV libraries to the cRIO.  From the project you must deploy to the cRIO and from then on they are persistant until you reformat.
    From your windows HMI app, you can place static NSV tags on the block diagram or use the dynamic SV API to R/W.  Also you can bind HMI controls and
    indicators directly to cRIO NSV's (This is what I do)  Also I create a 'mirror' library in the PC HMI that is bound to the cRIO library.  This library has DSC Citadel
    data logging enable and will automatically save historical traces of all my important data - very nice.  PC hosted libraries can be set to autodeploy in the app build. 
    also the project has a autodeploy option for the Development Environment which I normally turn off.  If you have PC to cRIO binding setup then you need to be cautious
    about any sort of autodeployment since it will potentially force the cRIO app to stop when you deploy.  To get around this, you can use PSP binding (IP address rather than project
    process name) and use the DSC deploy library vi's in your HMI app.  Once you are using the scan engine you can use the DSM (Distributed System Manager) app to view, proble and
    chart all of you IOV and NSV's on your network.

  • Can you still use soft motion without the scan engine on crio?

    Where are the trajectory generator property and invoke nodes in softmotion for LV 2011? 
    These functions are not longer found in the pallet?  Are they no longer supported? 
    All the new soft motion examples are using the scan engine.   Can I use soft motion without the scan engine????
    Steve
    SteveA
    CLD
    FPGA/RT/PDA/TP/DSC

    Hi Ian,
    I apologize that this wasn't stated in the release notes. While your code should have upgraded without breaking, the release documentation should have mentioned that the advanced trajectory genertor functionality is no longer supported. If you still want to use the trajectory generator functions, they are still shipped with SoftMotion, they are just not on the palette. I have attached a zip file that has 4 .mnu files that will get them on the palette. To install these, do the following:
    Close LabVIEW
    Make a copy of the following directory: C:\Program Files (x86)\National Instruments\LabVIEW 2011\menus\Categories\VisionMotion\_nism. In case something goes wrong, we will want to have a copy of this directory so that we can replace it.
    Copy the 4 .mnu files from the attachement into the above _nism directory (the original, not the copy). If it asks you to replace any of the exisiting files, please do. You don't have to copy the readonly.txt file.
    Start LabVIEW. You should know have the trajectory generator functions in your SoftMotion Advanced palette.
    Keep in mind that we no longer support these functions. This means that they are not tested in new releases and any bugs will likely not get fixed.
    I would recommend that you use the new API for any new designs. You can still get most of the functionality of the old API but without the complexity. If you want to generate setpoints at 5ms then you will run the scan engine at 5ms. This is certainly easier than having to do the timing yourself, but it does take away some control from the user. If you give me a brief overview of what you mean by synchronization, I will let you know the best way to do it with the new API.
    Thanks, 
    Paul B.
    Motion Control R&D
    Attachments:
    _nism.zip ‏4 KB

  • Does the cRIO scan engine support TEDS

    I have a cRIO chassis with 9237 bridge amplifier modules and would like to use the TED feature of my transducers.  I know the module itself supports TEDS but is this functionality incorporated into
    the new scan engine?
    Thanks

    Hi Sachsm,
    Currently, there is no support for TEDs with the CompactRIO Scan Interface.  However, you should be able to write an application that will allow you to get to your desired TEDs information by compiling two biftfiles, one that communicates to the modules using the TEDs interface that is supported with the LabVIEW FPGA Host interface functions, and another that then just communicates to Modules through the Scan Interface.
    After the TEDs information was read from the first bitfile, then you could use this information to calibrate the data used for the sensor.
    Let me know if you would like me to explain a little bit further or if you think the solution would work for you.
    Thanks,
    Basset Hound

  • Why does New Gen sbRIO not support Scan Engine?

    The 'New Gen' sbRIO's use the LX25 and LX45 FPGA and it seems that none of them support the scan engine.  cRIO's that use the same FPGA do support the scan engine.  Is it just a RIO driver issue?  If so when will this be resolved?

    Hi sachsm, 
    I was told initially that it is a performance issue, but after doing some extra research I have found that it cannot be the case.  You are right that the cRIOs that have the LX25 and LX45 FPGAs support the scan engine, so the answer lies outside the bounds of performance requirements.  I spoke with some of our more senior engineers, who believe that R&D has phased out scan engine support for the newer sbRIOs based on the majority use cases for which they are deployed.  Notice on the product pages for these devices that only OEM quantities are available for purchase, meaning that most of our customers for these are companies producing many units, and who generally desire to use the FPGA interface (not the Scan Interface).  Each sbRIO that currently supports the Scan Interface (older models) has a custom scan engine bitfile that is written to the FPGA, and I guess someone on the development side of things decided that it wasn't worth the effort to write scan engine bitfiles for these new models.  There is no indication that these will be supported by the scan interface in the future.  
    cRIO, on the other hand, is intended to have custom and reconfigurable module setups, and thus will always require the scan engine for those who wish to use the real-time functionality without having to deal with the FPGA interface.
    I hope that this clears up some of the confusion!
    Kevin W.
    Applications Engineer
    National Instruments

  • Initiate scan engine scan

    Hi,
    We are attaching 3rd party EtherCAT slaves to our cRIO.  Is there any way to control the scan engine clocking so that we can reduce jitter (relative to an extrernal pulse) while communicating to the slaves?  Specifically, I would like to initiate scans when an external TTL pulse is received.
    Thanks,
    Steve

    Hey guys, 
    I have done this before on a PXI chassis with a timesync plugin. I used a 6682 card to drive the PXI clock10 and syncronized the RT clock to the PXI clock10. Because the scan engine runs off the RT clock the two were synchronized. I have attached a project that shows the setup. 
    I haven't done this on a cRIO before but if we can find a way to drive the cRIO RT clock off a signal the same idea should work. There is an FPGA timekeeper plugin but I don't know if it is what we want. Let me and Daniel see if we can find anything further on the issue. 
    Assuming we cannot drive the RT clock off your external signal, we could just read the same clock signal on one of the ethercat chassis. The distributed clock functionality should guarantee that the cRIO master and ethercat slave are synchronized. You can use post processing to account for differences in the external clock and the cRIO RT clock. Can you tell us more about your system setup and requirements? How tightly do you need to be synchronized? 
    Jesse Dennis
    Design Engineer
    Erdos Miller
    Attachments:
    Ethercat Synchronization.zip ‏208 KB

  • 9236 enable shunt cal property crashes crio OS with scan engine

    I would like to inform users of the 9236 Quarter Bridge Strain Gauge Module of a bug. The Real-Time team is aware of this issue and I have been working with an app engineer on it for about a week and he has confirmed my findings. He says the problem is most likely a driver issue or scan engine issue and they are investigating it.
    There is a bug that completely crashes the cRIO operating system with the 9236 module. Currently when a cRIO device is loaded with LV2009 SP1 or LV2010 and using scan engine interface, attempting to write the "shunt cal enable" property of a 9236 module completely crashes the VxWorks OS. If you try to access the property again, the crio crashes and enters an error state where the crio has rebooted twice without being told to. The LED indicator blinks four times to indicate this.
    I have tested this with a few different hardware combinations with both the crio-9014 and crio-9012 controllers, combined with either the 8-channel 9104 back plane or the 4-channel 9102 back plane with the same results. The app engineer was able to duplicate this issue as well.
    To duplicate the bug:
    Load a crio device with 2009 SP1 or LV2010 and configure the device for scan engine. Locate the 9236 module in the project explorer and drag and drop it into a VI to create the IO variable. Right click the output terminal of the IO Variable and go to create > property > enable shunt calibration  on a channel. Once the property is dropped, right click on it and do change to write so that you can write a boolean to the variable. It doesn't matter if you write a true or false to the property, the results are the same. Hit run, watch it crash. When it reboots, hit run again. The crio is now in a state that can only be recovered by physically resetting the device.
    I love the crio stuff and I use it every day because it is very reliable and robust. This kind of thing is rare, which is why I am reporting it to the community as well as NI as it is a pretty big bug that took me a while to narrow down.
    [will work for kudos]

    rex1030,
    Shunt calibration can be accessed using a property node.  The operation will be the same, you still need to acquire two sets of data and compute the scalar.
    You can obtain the necessary reference by dragging the module to the block diagram from the project.  Please see http://zone.ni.com/devzone/cda/tut/p/id/9351 for more information on programmatic configuration.
    Let me know if you have any other questions.
    Sebastian

  • Setting thermocouple type in scan engine

    I am using cRIO 9211 to acquire thermocouple data using NI Scan Engine. I don't see any option to specify the type of thermocouple other than by right clicking on the module (in project) and selecting Properties.
    Is there a way to programmatically set the type of thermocouple?
    If this is not possible, can I can read the cjc and offset channels, so that I can convert the raw voltage to temperature in my RT code?
    Will I be able to read the cjc and offset channels if I use NI Scan Engine Advance I/O Access?
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

    Cross posted here.
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

  • Error 2147138480 in Set Scan Engine Mode to Actif

    Hi all,
    I'm fighting in front of this error which occur and does not want to go away (even after trying everything)...
    The error (-214713840) is happening when trying to set back the Scan Engine Mode to actif.
    It says: "The slave device could not be found. The positional addresses within the LabVIEW project are inconsistent with the actual network topology. [...]"
    I was trying to program the detection of the loss of a CompactRIO chassis when this error first occurr.
    I have 2 CompactRIO "EtherCAT" connected to a RT computer.
    Thanks for all the help or suggestion you can provide me ;-)
    Cheers,
    Laurent

    Hi Laurent,
    I don't know if your problem has been solved but I prefer asking.
    Are you sure of the error code you encounter ? I don't find it in the manual or other places.
    Regards,
    Mathieu P. | Certified LabVIEW Associate Developer
    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;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...

  • NI Scan Engine Wont Run

    Hello, I am trying to deploy a program on the real time controller of a compactRIO. I decided to use scan mode for now. However, when I try to run my VI I get the following error:
    One or more items in this deployment require the NI Scan Engine and corresponding I/O driver(s) to be installed.  Go to MAX to install.
    If you continue to encounter this conflict, refer to the "Deploying and Running VIs on an RT Target" topic in the LabVIEW Help for information about resolving target deployment conflicts.
    I have LabVIEW real time on my machine so I don't know what the reason for this is and I can not find under MAX where to install the scan engine (again I assume it is already installed).
    I am using LabVIEW 8.6.1 and the modules I use on my cRIO-9073 are the 9477 DO module and the 9205 AI module. Any help would be appreciated.
    Solved!
    Go to Solution.

    if I tried to install the software software at the NI Max
    but it give error 
    "The selected target does not support this function"
    how to fix this error,
    what problem with it
    thank you
    Msyafiq
    Attachments:
    install error.jpg ‏128 KB

  • Programmat​ically modify scan engine scaling

    I need to be able to programmatically adjust the scaling factors for my cRIO analog channel.  I manage all
    my I/O from an external spreadsheet that gets compiled and ftp'd to 9
    cRIO targets.  Each cRIO will have different scaling factors.  I
    understand that this is a feature that will be forthcoming but I need
    to be able to do this within the next 2 months.  I already have in
    place a secondary scan engine of my own design that replicates all the
    I/O and includes such niceties as scaling, filtering,  zero offset and
    deadband updating.  Recently I noticed a file on the cRIO called
    'variables.xml' which quite clearly contains all of the I/O variable
    properties.  I am planning on writing a utility vi that can modify this
    xml file.  I believe I would have to call this vi from my cRIO code and
    then reboot to have it redigested into the LOGOS? server or scan
    engine.  I understand that the development engineers loath to support
    this type of activity and I also would not want this to be permanantly
    in my code, but only as a short term solution until the proper API is
    released.  If anyone has a better idea I would love to hear about it.

    sachsm,
    While I definitely don't promote doing what you suggested, I tried it out and it looks like it should theoretically work with a reboot.  I only did this with a straight VI ran from LabVIEW.  The xml file is generated when the scan engine variables are first deployed.  This file is updated on an input-by-input basis based on what was edited in the project explorer.  If the xml file is edited, then the device rebooted (but the project not changed) and you run the VI, the 'updated' scaling will be present.  Once you edit the particular IO in the project then it will override the manual edit.  When these are changed the scaling changes go into effect immediately and the device doesn't need to be rebooted.  Good idea, indeed, not sure if or what the implications may be with this though.  Definitely try at your own risk for this one.
    Regards,
    Jared Boothe
    Staff Hardware Engineer
    National Instruments

  • RT Scan Engine Roadmap

    Greetings,
    First off, let's take our hats off to the team at NI for creating this technology, it is a powerful new set of features for cRIO and has tremendous potential.
    I have a application that will require 9 cRIO chassis. There will be 3 identical 'sections', each with 3 cRIO's. It would be ideal if
    each cRIO could read a disk config file that would contain scaling constants for each I/O Variable. This would require programmatic access
    to the I/O Variable Properties which is not currently available. It does appear that the hooks are in the place under the hood but have not
    been wrapped in LV yet. For the next 6 months I will only be building one section of my system, but by next Q2, 2009 I will need to complete all 3 sections
    and would like to have some idea if these types of features will be forthcoming. My wish list would also include the ability to
    programmatically create or rename I/O variables and perhaps even add inline filtering to the scan engine.
    Thanks,
    Mike Sachs
    Intelligent Systems
    www.viScience.com
    Onsite at the NASA Marshall Space Flight Center

    Mike,
    This is a great idea. Please submit a formal request to our Product Suggestion Center.
    Cheers.
    | Michael K | Project Manager | LabVIEW R&D | National Instruments |

  • Unable to Access Itune's Store Cisco Content Scanning Engine

    Hi there, new to apple forums. Having all sort of problems downloading from Itunes Store and updates, via our Cisco ASA Firewall.
    Have identified that the Trend Micro Scanning Engine Module is causing the issue, and the only work around is to disable the Scanning Engine altogether, or to configure IP address exclusions from the scanning process. Using the logs from the firewall, I managed to locate some of the IP's related to Itunes; registered to Akamai Technologies.,US (81.23.243.0/24) and got things working, but now it has stopped working again. Is there a list of IP addresses that Apple and Itunes use?
    Would appreciate any pointers if anyone else has resolved similar issues.
    Thanks

    Apple uses a distributed server system and so may use a number of IP addresses, none of which have ever been officially published, so trying to allow specific addresses may not be possible. If your system will accept domain names and not just IP addresses, try using these two domains instead:
    phobos.apple.com
    phobos.apple.com.edgesuite.net
    Hope this helps.

Maybe you are looking for