Using FPGA Interface Functions pallete

Hi,
I am using PCI-5640R  and PXI-5600. I want to use "Scaled Window" and "FFT" exspress VIs of "FPGA Math & Analysis" Functions Pallete in my "FPGA VI" and "FFT to Spectrum" VI  of "FPGA Interface" in my "Host VI".
Can any one post some example code in which these three subVIs are used.
Thanks in advance.
Regards,
Rashid  
Solved!
Go to Solution.

The answer to this question is available at 
http://forums.ni.com/t5/IF-RIO/Using-FFT-to-Spectrum-SubVI-of-FPGA-Interface-Functions-pallete/td-p/...

Similar Messages

  • How to use FPGA Interface VIs without FPGA Module

    According to this, http://zone.ni.com/reference/en-XX/help/371599D-01/lvfpgahosthelp/interface_no_module/, I can use the FPGA interface vis to connect to an FPGA (on a 7833R) without installing the FPGA Module. How do I get access to those VIs? Do I have to install the module (but there is no need to activate it?) or is there something else to install that only includes the interface functionality?
    Thanks,
    Chris

    Hey Chris,
    Out of the LV Help i found:
    The FPGA Interface is available with FPGA target driver software. You can use the FPGA Interface functions in a host VI if you have an FPGA target and the appropriate driver software. You do not need the LabVIEW FPGA Module to use the FPGA Interface functions. You need the FPGA Module if you want to develop FPGA VIs.
    I think installing the NI RIO driver adds the palette.
    Christian

  • CAN I use the crio chassis serial rs-232 in the fpga interface?

    Is it possible to talk directly to the serial interfaces on a cRIO chassis (like the RS-232 port on the 9074) from the FPGA interface, or is this resource only accessible from the RT environment?
    Many thanks!
    -Will Berstche

    Hi,
    it is only accessible over RT.
    Kind regards
    Heinz

  • Binary to Voltage Conversion of encoder data on cRio 9073 using FPGA

    I am using FPGA with a cRio 9073 to acquire torque and absolute quadrature encoder values. It says in the FPGA instructions that the documentation for the 9073 should include the binary to voltage conversion, but when I looked at the documentation, it wasn't there. Where can I find the conversion value or function to convert binary encoder data back to voltage? The encoder is hooked up to an analog converter and is acquired with a 9215 AI (+-10V differential). Thanks

    There are individual formulas for one or a group of modules.
    LabView examples path:
    LabVIEW 2010\examples\CompactRIO\Basic IO\Analog Raw Host Calibration\AI Raw Host Calibration
    LabView help topic 
    Converting and Calibrating CompactRIO Analog Input Values (FPGA
    Interface)
    Best regards
    Christian

  • Using FPGA cRio and 9853 for a J1939 CAN

    We are currently trying to interface with a J1939 CAN network using a cRio 9012, 9104 chassis and the 9853 module.  We have Labview 8.2.  I stumbled accross the examples for Labview 8.6 and newer.  Is there any particular solution/road we should be going down?
    I have experience using Labview with a cDAQ, but have not much experince with RealTime and FPGA.
    I got the thermocouple module to work using FPGA, so the RIO itself and the module do work.
    Thanks for any guidance/help you can send my way.

    The way I would approach J1939 on the cRIO would depend on what features of J1939 you needed for your app.  If you are just reading or writing broadcast messages that fit in a single 8 byte frame it will be just as straight forward as standard CAN.  Basically in this case you would be reading frames on the FPGA code, transmit them to the realtime portion where you can convert them to channel data using a CAN database.  Writing would be just the opposite direction.
    If you are using requests for PGN data, lets say to retrieve DTC codes, or R/W data using advance diagnostic messages (say DM14/15/16 for example) things will get a bit more difficult but not too bad.  If you are expecting to tx or rx multi-frame packets and need the transport protocol of J1939, then things can get complex fast.
    DMC recently developed a set of J1939 protocol drivers for LabVIEW which are based on the NI-CAN channel API.  The drivers were written in LabVIEW just like the NI frame example, but provide functions at a layer above the base CAN channel API layer.  This allows the simultaneous capture of data from both J1939 packets which are simple broadcast CAN frames, or more complex transport using BAM, including extended data frames.
    I suppose something like this could be written into the realtime of the cRIO, and just pass frame data back and forth using some very basic code on the FPGA.

  • NI FPGA Interface C API multithreading safe?

    Hello,
    I am using the FPGA interface C API to communicate with the labview software running on my NI FPGA. Some calls take quite some time to execute, e.g. reading from a FIFO when setting a long time-out. Up till now, I have been assuming that the interface was not multithreading safe. This has now become bothersome given the time-out issue described above. Simply trying does not feel right, it may take quite some time to create a 'collison'.
    Is the FPGA interface C API multithreading safe? Or, more specifically, can FIFO reading-related functions be called in parellel with writing/reading of variables on the FPGA?
    Thanks.
    Solved!
    Go to Solution.

    Hello MKAP,
    It has been a while since I have used the NI FPGA Interface C API, but this is what I remember and seem to be able to recollect (and also found back in documentation):
    The functions related to the unloading and loading of the library are not thread safe:
    http://zone.ni.com/reference/en-XX/help/372928D-01/capi/functions_required/
    On itself this should not cause a problem:
    You application should force that the NiFpga_Initialize is called before all other function NIFpga related function calls.
    In a similar way the unloading (NiFpga_Initialize) lof the NiFpga brary should only happen when you're done using it.
    Regarding multithreading you should also keep in mind the single-threaded character of IRQ  Interrupts (If you plan to use them):
    http://zone.ni.com/reference/en-XX/help/372928D-01/capi/functions_interrupt/
    Kind Regards,
    Thierry C - Applications Engineering Specialist Northern European Region - National Instruments
    CLD, CTA
    If someone helped you, let them know. Mark as solved and/or give a kudo.

  • How to make use of SE37- Function Module & how to find out the table?

    Hi ,
    1.Could anyone help me what's this SE37-Function module is all about,How to make use of this?
    For Eg,If i want to delete a BOM permanently from the system then I have to use the Function module CM_DB_DEL_FROM_ROOT_BOM.
    But after giving the particular name what should i do?
    Please help me.
    2.How to find out the respective table for a particular field sya for T code-COGI, T code MFBF,where its values are getting populated.,Please help in this issue.
    Thanks in adavnce for spending some time
    Raj.S

    Hi Raj
    Function Modules
    Function modules are procedures that are defined in special ABAP programs only, so-called function groups, but can be called from all ABAP programs. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the SAP System. They are managed in a central function library. The SAP System contains several predefined functions modules that can be called from any ABAP program. Function modules also play an important role during updating  and in interaction between different SAP systems, or between SAP systems and remote systems through remote communications.
    Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the Function Builder. The actual ABAP interface definition remains hidden from the programmer. You can define the input parameters of a function module as optional. You can also assign default values to them. Function modules also support exception handling. This allows you to catch certain errors while the function module is running. You can test function modules without having to include them in a program using the Function Builder.
    The Function Builder  also has a release process for function modules. This ensures that incompatible changes cannot be made to any function modules that have already been released. This applies particularly to the interface. Programs that use a released function module will not cease to work if the function module is changed.
    Check this link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    You can execute function module in SE37ie you can perform the activiites defined in the function module by executing it.
    By deleting BOM you mention the FM name in se37 and execute. In some function module it will ask input parameters as developed in the program , you have to give the input parameters and execute.

  • In business object what is the use of Interface

    hi ppl,
             In each business object there is a interface what can we do with that. When i used wizards like dynamic parallel processing it asked for wizards what is the actual use of interfaces.

    Hi Dheepak,
    I have an overview on interfaces. Someone pls correct me if i am wrong here.
    Interfaces are generally used to group a set of attributes and methods that can be used across different business objects. You can create your own interfaces in SWO1 and when you include these interfaces in business objects you get all these attributes and methods in the business objects (Inheritance). Its basically for re-usability of the code(Reusability). Apart from that if required you can implement your own code for the methods thus maintaining the same name with a different logic for your BO (Polymorphism).
    For example assume that you have a "Display" method and a few attributes in an interface. The "Display" method is used to display a particular transaction. Now you can include this interface in any BO and all these attributes and methods will be available in that BO with their respective implementation code. Now if you want the method to form a different action in any particular BO you can go ahead and redefine this code in that BO. This redefinition will not affect other BO's that had implemeted this same interface. All other BOs which had implemented this interface will continue to function as per the implementation code defined in the interface. This makes sure that the same method works in different ways in different BO's (Polymorphism)
    Supertype<-->Subtype delegation will allow us to inherit the supertype/subtype methods/attributes but it does not allow us to change the underlying code in individual BOs. Hence polymorphism cant be acheived here
    Thanks,
    Prasath N
    BO - Business Object

  • FPGA Interface Cast question

    I'm playing with a 5644 VST and the VST Streaming template.  On the FPGA VI I added some code, then added an indicator to the FPGA VI front panel and compiled.  Running the FPGA VI in interactive execution mode, the indicator works well.  On the host end, though, I can't seem to access the new indicator with a Read/Write control. 
    Coming out of the Open FPGA VI Reference I can see the indicator on the wire, but in the Dynamic FPGA Interface Cast function it's getting stripped out of the refnum somehow.  If I connect a Read/Write control directly to the output of the Open Reference function I can access the indicator just fine.
    Any idea what I'm doing wrong?
    Thanks.
    Solved!
    Go to Solution.

    Have you re-configured your FPGA VI reference interface with the new bitfile?  The dynamic interface cast defines the output wire as having all the methods and indicators described by the type wire connected.  You can right-click on the type constant and select "Configure FPGA VI Reference...".  In the pop-up that follows, choose "Import from bitfile..." and then select the new bitfile that you've built.
    You'll need to update the fpga reference type in the "Device Session.ctl" type def as well.  This is the type that you'll be able to access throughout the project.

  • Is it necessary to use the standard function modules always?

    Hi All,
       Suppose i can retrieve the BUSINEES PARTNER ID from the table BUT000 with the help of 'BP_GUID' field through a select query statement. 
    Now is it necessary to use a standard function module to retrieve the same data. what about the performance? which is the better solution. to implement our own code or to use the function module available.
    Please someone clarify me about this issue.
    Regards,
    Sharry.

    If you'd ask the question in general it's obvious that there is no good answer as it always would depend on the circumstance. However, as you've posted your question in the performance tuning forum, let's look at your question in this context first. I think it's fairly safe to say, that in almost 100% of the cases a standard function module will not be as fast as any well implemented and custom tailored code. If in doubt, just try reading the code of the function module you want to read; most likely you will find lots of unnecessary fluff in there, often they read data that you don't even need.
    And as far as buffering is concerned, that can also be an issue. E.g. let's say you do a massive read of distinct business partners and you only need the data once for each partner. Obviously buffering is silly in this case and it might even slow down your program, because the implemented buffering is not necessarily well implemented. I've come across a few cases, where the buffer tables where standard tables with no efficient read access (so no sorted table or hash table) and once tons of data were buffered, it actually took a moment to look up if the record already was buffered (just to find it wasn't there yet).
    Now most of the times this slowdown is not an issue as the lookup is still fast compared to the (usually) prevalent database accesses with their slower IO timing. But another factor to consider is memory consumption and why buffer data in memory (and waste it), if you can't use the buffer anyway? So when I do use standard function modules, I usually try to see what they retain in global memory, to better understand if I need to call some initialization/clearing/refresh function...
    Note also that often you need to process lots of data, but don't find a standard function module for "mass access", so you need to read your object one by one. Obviously that's another good candidate for implementing your own queries, where you can process the data in packages.
    So what might be the reason to use a standard function module? Well, often it's required because the logic is so complex that it would take you too much time to implement it (not to mention that we often simply don't know all the logic that's coded in there). Another advantage is that you might get independent of the data model. E.g. for IDoc interfaces SAP switched in some release the tables where the data is stored. So if you had coded your own queries to get IDoc data, they wouldn't have worked after this particular release upgrade. The standard function on the other hand, checks both the old and new tables, so by using it you would have been fine.
    The one major caveat I'd give though is to always check whether the function module is released or at least documented to some degree. I.e. if it's not released, SAP won't support it and does not guarantee that the interface or logic stays the same. In my experience lots of functions I do want to use are not released (or documented), but I will still use them because they seem to be the best alternative in certain scenarios.
    Cheers, harald

  • Error using the XPath function id()

    I am using BDBXML 2.2.13. When I submit the following query the execution fails because of the following failed assertion on line 681 of DbXmlNodeImpl.cpp.
    collection('test.dbxml')id(/site/people/person[@id='person1']/watches/watch/@open_auction)
    DBXML_ASSERT(nt->getInterface(DbXmlNodeTest::gDbXml) != 0);
    The failure does not happen if the arguments passed to id are constant, for example the following query works just fine:
    collection('test.dbxml')id('person0')/name
    The problem seems to be that the function arguments are represented by Pathan objects instead of DbXml objects that are cast back and forth when using the different interfaces.
    Is this a know bug in the database or is my query not properly formated?

    DB XML 2.2.13 is quite old now. Does that same problem occur with DB XML 2.3.10?
    Using the id() function is not going to do what you want it to anyhow, since DB XML does not provide typing information for the XML tree. You'll need to use conventional navigation to get the node that you want.
    John

  • Using pl/sql functions for transformation

    How can I use pl/sql functions in the transformation mapping field for my interface?
    I have a name field where firstname and lastname are concatenated via a space-character and I would like to extract this 'name' field to 2 separate database attributes.
    This means that I need to use a function that uses SUBSTRING and INSTR to be able to get the firstname and lastname separatly out of the name-field.
    The INSTR-function isn't known inside the expression editor in ODI so I'm wondering how I can use my own function?

    Hi Romanna,
    Are you sure? Where did you do your transformation?
    -Source, Staging area or Target
    I try this on Oracle target...
    FIRST_NAME = substr(MYTABLE.FIRST_LASTNAME, 1, instr(MYTABLE.FIRST_LASTNAME, ' ')-1)
    LAST_NAME = substr(MYTABLE.FIRST_LASTNAME,instr(MYTABLE.FIRST_LASTNAME, ' ')+1)

  • Who can tell me how to use ni-imaq functions imgSessionSerialWrite and imgSessionSerialRead to set and get my carema attribute?

    Who can tell me how to use ni-imaq functions imgSessionSerialFlash,imgSessionSerialWrite and imgSessionSerialRead to set and get my carema attribute?
    My camera is duncantech ms3100 and the frame grabber is pci-1428.I use ni-imaq2.6.When I use these functions,it tell me error -1074397163(IMG_ERR_BINT:Bad interface) .

    I have the same problem on my IPAD 2. One calender that i cant delete or find any settings for... Its just in the calender app under diffrent calenders.  how do i delete it?

  • Unusual use of interface defining static factory class with getInstance

    This question is prompted by a recent New to Java forum question ask about the differences between Interfaces and Abstract classes. Of course one of the standard things mentioned is that interfaces cannot actually implement a method.
    One of my past clients, one of the 500 group, uses interfaces as class factories. The interface defines a pubic static class with a public static method, getInstance, that is called to generate instances of a class that implements the interface.
    This architecture was very object-oriented, made good use of polymorphism and worked very well. But I haven't seen this architecture used anywhere else and it seemed a little convoluted.
    Here is a 'pseudo' version of the basic interface template and use
    -- interface that defines public static factory class and getInstance method
    public interface abc {
        public static class FactoryClass
            public static abc getInstance ()
                return (abc) FactoryGenerator(new abcImpl(), abc.class);
    -- call of interface factory to create an instance
    abc myABC = abc.Factory.getInstance();1. Each main functional area ('abc' in the above) has its own interface factory
    2. Each main functional area has its own implementation class for that interface
    3. There is one generator (FactoryGenerator) that uses the interface class ('abc.class') to determine which implementation class to instantiate and return. The generator class can be configured at startup to control the actual class to return for any given interface.
    I should mention that the people that designed this entire architecture were not novices. They wrote some very sophisticated multi-threaded code that rarely had problems, was high performance and was easy to extend to add new functionality (interfaces and implementing classes) - pretty much plug-n-play with few, if any, side-effects that affected existing modules.
    Is this a best-practices method of designing factory classes and methods? Please provide any comments about the use of an architecture like this.

    Thanks for the feedback.
    >
    I don't see how 'the generator class can be configured at startup to control the actual class to return for any given interface' can possibly be true given this pseudo-code.
    >
    I can see why that isn't clear just from what is posted.
    The way it was explained to me at the time is that the interface uses standard naming conventions and acts like a template to make it easy to clone for new modules: just change 'abc' to 'def' in three places and write a new 'defImpl' class that extends the interface and the new interface and class can just 'plug in' to the framework.
    The new 'defImpl' class established the baseline functionality that must be supported. This line
    return (abc) FactoryGenerator(new abcImpl(), abc.class);uses the initial version of the new class that was defined, 'abcImpl()', when calling the FactoryGenerator and it acted as a 'minimum version supported'. The generator class could use configuration information, if provided, to provide a newer class version that would extend this default class. Their reasoning was that this allowed the framework to use multiple versions of the class as needed when bugs got fixed or new functionality was introduced.
    So the initial objects would be an interface 'abc' and a class 'abcImpl'. Then the next version (bug fixes or enhancements) would be introduced by creating a new class, perhaps 'abcImpl_version2'. A configuration parameter could be passed giving 'abcImpl' as the base class to expect in the FactoryGenerator call and the generator would actually create an instance of 'abcImpl_version2' or any other class that extended 'abcImpl'.
    It certainly go the job done. You could use multiple versions of the class for different environments as you worked new functionality from DEV, TEST, QA and PRODUCTION environments without changing the basic framework.
    I've never seen any Java 'pattern' that looks like that or any pattern where an interface contained a class. It seemed really convoluted to me and seems like the 'versioning' aspect of it could have been accomplished in a more straightforward manner.
    Thanks for the feedback. If you wouldn't mind expanding a bit on one comment you made then I will mark this ANSWERED and put it to rest.
    >
    I don't mind interfaces containing classes per se when necessary
    >
    I have never seen this except at this one site. Would you relate any info about where you have seen or used this or when it might be necessary?

  • Use of interface concept

    Hi everyone !!!
    Can anyone explain me what are the uses to the interface and why do we need to use interface.
    I know one advantage is java doesn't support multiple inheritance so we need to use interface.
    By using interface what can we do ? But i dont find advantages in that
    can you explain me pls ....

    One of the most popular uses of interfaces comes out of the Collections frame works.
    For example, java.util.List, java.util.Map, and java.util.Set.
    ArrayList is an implementation of the the interface List. By abstracting ArrayList into the interface, I can now change what type of List I am working with, and my code doesn't care....
    For example, I have a method that creates an ArrayList that contains all the users on the server at a particular time. As the coder, I know the method is going to create an ArrayList. Now I have a choice, I can make the method's return type an ArrayList, or I can use the interface name and return a List:
    public ArrayList getCurrentUsers() {
      ArrayList theList = new ArrayList();
      return theList;
    -or-
    public List getCurrentUsers() {
      List theList = new ArrayList();
      return theList;
    } Both codes would be functionally equivalent. Any code that calls the first method may (but does not need to) do this:
    ArrayList currentUsers = getCurrentUsers();Whereas any code that runs the second method would need to do this:
    List currentUsers = getCurrentUsers();What's the difference? Well, let's say you decide to change your method to use a LinkedList instead of an ArrayList. If you employed method 1, you now have to make sure you change all the code that accessed the method is changed as well. But, since LinkedList is another implementation of List, if you employ method 2, you can be sure that none of the code that uses your method will break, because they only work through an interface wich both ArrayList and LinkedList share in comon.
    So Interfaces are great for defining how a class or object looks, but not necessarily how it works. If you use the List interface to look at ArrayList or LinkedList then both of these classes will look the same, they are both sure to have the same methods defined in the List interface. However, they both will act differently, based on the underlying implementation.
    In general terms, it is a level of abstraction that allows the implementer be more flexible with what he is working on, by ensuring a common means of accessing the object, or a set of rules that users must use when accessing the object. In the mean time, the coder is free to make changes, switch implementations, without affecting others.

Maybe you are looking for