CAN drivers CVI 5.0.1

Hello,
I work with LabVIEW, but i have some applications madded in LabWindows/CVI v5.0.1 and i use the NI-CAN 2.2 and this driver don't work with CVI, there are any driver to work with CVI v5 and LabView 7.1 together?
I have the NI-CAN 1.4.2 for work to CVI but don't work with LV7.1.
If was possible use the driver NI-CAN 2.2 in CVI will be great.
Thanks

Hello PALMEI,
as you probably found out that there is no NI-CAN driver that does support both, CVI 5.x and LabVIEW 7.1. Here is an overview of the different NI-CAN driver versions and the supported ADEs:
KnowledgeBase article # 2V27R4HR
However, I took the CVI 6.0 compatible nican.h file and the .lib files from the NI-CAN 2.2 driver and attached them. Depending on your compatibility mode ('Microsoft Visual C' or 'Borland') you need to copy the appropriate libraries to your local CVI directory. I'm not 100% sure, if the CVI 6.0 files work with the 5.0.1 version, but I think it should work.
-B2k
Attachments:
CVI60libs.zip ‏56 KB

Similar Messages

  • Help: Any one can advice, CVI software is using Big or little endian?

    Help: Any one can advice, CVI is using Big or little endian? 
    or is depend on the processors my HW is using?

    The correct answer it the third one: CVI adapts to the hardware architecture you are running on. In the Programmer's Toolbox you have functions to detect the hardware architecture: HostIsBigEndian and HostIsLittleEndian. In the group you have functions to convert data between architectures.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Why are the CAN drivers so sloooooow?

    In my VC++ application using V1.4 of the drivers, I am communication with a device while I watch the bus with a scope. I have two frames to send to a device, but due to my protocol, I must wait for a response to the first before sending the second. I am using the ncCallback to get and process the response and send the second frame.
    When I look at the scope, it takes about 10ms for the callback to run and generate the next frame. (Time measured from device response to next outgoing frame.) My effective communication rate is this manner is about 9600 Baud.
    Any ideas on how to speed this up?

    It may help to refer to the "Communication Types" section of the NI-CAN Programmer's Reference Manual (available at ni.com/manuals). Be sure that the transmit data periodically communication type is not being used.
    It sounds like either the Transmit Value By Response or even Transmit Data By Call is more practical in this situation.
    If this isn't the problem please drop us a support email.
    Randy Solomonson
    Application Engineer
    National Instruments
    [email protected]

  • Can Drivers Be Updated w/ XCode?

    Aside from html, a bit of PERL, PHP, and Java, I have never written code. In fact, I am a photographer by trade. One of the annoying things about upgrading to the Intel processor is the number of my hardware drivers that do not work. Is it possible to upgrade existing hardware drivers with XCode?
    If this is possible, the first project that I would like to undertake is to fix the driver which allows me to connect my camera to my laptop and shoot tethered via firewire cable. The existing driver installs on my MBP but cannot connect with the camera. I assume this is because of a small part of the driver that addresses the firewire connection that is no longer functional. Am I naive but this seems like it should be easy to fix ( anything is easy if you know how - I do not).
    I created a new project and attempted to open the driver in XCode. I was not successful. I assume the reason is because the driver is compiled. Am I right? Is there any way to reverse engineer the driver? I believe that most of the code that I need already exist. For example, when I connect my camera to my MBP iPhoto automatically downloads the files. However, iPhoto does not work for me as it was designed primarily as a post-production tool. The same for Aperture.
    Any words of wisdom? Has XCode for Dummies been written yet?
    TC

    I spent the day working on the problem of not being able to shoot tethered to my MBP and discovered that the problem was not as bad as I had thought. The answer to my problem is an application that is part of the OS that I was previously not aware of. In the Applications Folder I discovered a utility called Image Capture. I suspect that Image Capture is the utility that causes iPhoto to connect to your camera. With Image Capture, the workflow is not perfect but is a suitable workaround until I can upgrade my cameras.
    Image Capture allows me to designate the folder where I want my file written to my hard drive. It allows me to specify which helper application I want to view or manipulate my file in. I selected Adobe Bridge but I could have selected iPhoto, Aperture, Lightroom, Photoshop, or any other image browser/editor.
    In the preferences I can elect to have the files automatically downloaded to the folder that I have designated on my hard drive. This does not seem to work properly, at least with my Kodak DCS 760. In order to download my files I have to manually click a button. It would be nice if I could shoot between 6 to 10 images and have them download automatically. However, this is not a huge problem as the download via firewire is relatively fast. Each image takes about 3.5 seconds to download on my MBP.
    I also learned about the application Automator. I am not sure exactly how I will use Automator in my workflow but the capabilities seem fascinating. I plan to spend more time in the future exploring this tool.
    Thanks for all of the suggestions. I think that I might just ask Kodak for the binary data for Camera Manager and attempt to update the driver. If I am successful it will be a great learning experience and I will make it available to anyone needing it for free.
    Happy New Years everyone!
    TC

  • Can LabWindows CVI 6.0 still be downloaded?

    I need version 6.0 of Lab Windows CVI for my current project and I can't find it to download it.  I was also wondering if a later version like 7.1 which I have, could be converted back to 6.0?

    Hello Todd
    CVI is not available to download from the web. If you have a CVI 6.0 serial number and an active support account, you can call NI and contact support. the engineer will help you to process your request.
    Regards
    Mart G

  • Pci can drivers fail to install for ni-can 2.3.3

    after upgrading to labview 8.2, i realized that i needed to upgrade my
    version of ni-can in order to access my pci can interface.  the
    pci can card had been working fine with labview 8.0 and ni can 2.3.2 up
    to this point.  i left the card in the machine, downloaded ni can
    2.3.3, and ran the installer.  however, when i rebooted and the
    "found new hardware" wizard launched, it was unable to locate the
    driver files.  after selecting to let the system locate driver
    files automatically, i recieved the error message:
    there was a problem installing this hardware
    an error occurred during the installation of the device
    the system cannot find the file specified
    i then attempted uninstalling ni can, removing the card, reinstalling
    the software, and THEN reinstalling the card; however this produced the
    same results.  any ideas on what i need to do to get drivers
    installed that will work with labview 8.2?
    thanks.
    Ben.

    Hi
    First of all you need to act with administrator rights.
    It seems something went wrong during driver upgrade. Right now the situation is that you have the 2.3.2 driver installed and the device is in the computer too?
    If not uninstall 2.3.3 and reinstall 2.3.2 and the CAN device and reboot.
    Now remove the CAN device first and after booting again uninstall the driver and delete the NI CAN folder if still available.This will hopefully remove all hardware related information from the registry.
    Then boot again and install the 2.3.3 driver, then boot again and install the device.
    Hope that helps.
    DirkW

  • How can a CVI module access the UUT serial number already stored in TestStand?

    I'm using the parallel model and I need to program each of my UUT's EEPROM with its serial number. I know that
    TestStand has the serial number and I've gathered from the Developer exchange that it is stored in RunState.Caller.Locals.UUT.SerialNumber, but how does my CVI module access it? Can it be passed to the module, if so, how? or what is the exact form of the TestStand API function that can be used to access the serial number. Thank-you for any suggestions.

    Hi lynx,
    if you have a look at the way in which the parallel and batch process models work, they're a two stage process model, i.e. the process model sequence your (main) sequence sees is called by an another process model. In this case, RunState.Caller on it's own only takes you up one level, but RunState.Caller.RunState.Caller will take you to the top level process model. When dealing with multi-UUT models, it depends on which serial number you're after (parallel serial numbers are stored in the TestUUTs model entry point->Locals.ModelData.TestSockets[0].UUT.SerialNumber
    where the [0] signifies the testsocket you're looking at (i.e. if it's the third testsocket, use [2].)
    batch serial numbers are stored in the same place, with the addition of the BatchSerialNumber (i.e. TestUUTs model entry point->Locals.ModelData.TestSockets[0].UUT.BatchSerialNumber, however there is also a BatchSerialNumber in TestUUTs model entry point->Locals.ModelData.BatchSerialNumber which is the same as the above one.
    You can always use the RunState.Root to get to the main calling process model, and in the case of the parallel and batch process models, the serial numbers are passed down from the top level execution entry point anyway into RunState.Root.Parameters.ModelData.TestSockets[0].UUT.SerialNumber
    (otherwise, if you're very buried in sequences, i.e. your mainsequence calls another which calls another etc etc, your call gets longer and longer - in cases like this I tend to use a Parameter, and pass the serial number down through the levels)
    If you want the data as if it came from the top level, since the LabVIEW adapter needs to see the data in a particular place, you can also use
    RunState.Root.Locals.UUT.SerialNumber.
    The quickest way I've found to find stuff is to create a new sequence file with just a label step in it. Set the sequence file to use the appropriate process model you're interested in, and set the label step to a breakpoint. You can then look at the context tab once you've set the sequence running from your desired execution entry point, and browse away.
    There's some great documentation in \Components\NI\Models\TestStandModels\TestStandProcessModels.PDF
    explaining how the process models actually work.
    A word of warning though - if you decide to change the serial numbers on the fly (one particular case is if you needed a bar code serial number which included information on failures for example), because the serial number is available in several places, you need to check where the report generation is picking up it's serial number information from.
    Hope that helps
    Sash.
    // it takes almost no time to rate an answer

  • Automotive diagnostic command set and periodic messages on same can port - CVI

    Hello everybody,
    Is it possible, using Labwindows / CVI, to use NI AutomotiveDiagnostic Command Set to communicate with a MCU with KWP2000 protocol and simultaneously  send periodic CAN messages on the SAME CAN interface (CAN0 or else ) and also using this port port to do some CCP communication ?
    Thank for your support.

    Hi,
    I find myself also in this position.  My current project only has LabVIEW 2009 and the ADCS from a few years back available to use.
    We want to be able to:
     - read in a CANDB file (.dbc) into the Channel API, to send general CAN messages (note you cannot use the Frame API to read in the dbc files unfortunately)
     - using the same CAN interface, use the ADCS to perform diagnostics activities
    Can you please elaborate on some of the hoops, and how long it might take?  If its too much of a hack, a third CAN port might be the easier option.
    Any light shed would be appreciated.
    Christopher Farmer
    Certified LabVIEW Architect
    Certified TestStand Developer
    http://wiredinsoftware.com.au

  • Can Labwindows​/CVI work with Opencv?

    OpenCV is a good and free lib for computer vision developer. I know it's an option to use it through Measurement Studio and Visual studio. But, can we use it in the CVI environment directly?  

    OpenCV does work with LabWindows. If you successfully "installed" the latest openCV, which is at the time of my post version 2.4.3, the header file "core_c.h" along with corresponding lib and dll files must be added to you project tree in order to use openCV functions. "core_c.h" includes "types_c.h" which for some reason LabWindows/CVI doesn't really like. The problem starts on line 137:
    #ifndef CV_INLINE
    #  if defined __cplusplus
    #    define CV_INLINE inline
    #  elif (defined WIN32 || defined _WIN32 || defined WINCE) && !defined __GNUC__
    #    define CV_INLINE __inline
    #  else
    #    define CV_INLINE static
    #  endif
    #endif /* CV_INLINE */
    The only option CVI likes is the last one (CV_INLINE static), so simply modify this segment so that it's the only choice and compile!

  • CVI Distribution needs 2 CVI Device Drivers versions

    I have an app that I am building a distribution for, it is in CVI 9.0.1, and several versions prior to that.
    When I build it, it asks for CVI Device Drivers (CVI 9.0.1) from Feb 2009 and CVI Device Drivers (CVI 8.5.1) from March 2008.
    Is there a way I can make this use all the stuff from the latest driver discs (the Feb 2009 disc)?
    This is an app that runs on a PXI box, so it has a bunch of drivers for that that and some card in the (I think)!
    Solved!
    Go to Solution.

    Chris,
    Getting the distribution to pull from the latest versions (Feb 2009):
    Find the driver that is being pulled from the old disc and install the newer version from the Feb 2009 disc. 
    How do I do this? I opened the Windows Control Panel Add or Remove Programs, and found National Instruments, but that lists a whole bunch of things?  I tried to open the installed from the Driver DVD, but it wouldn't while the Add & Remove for NI was opened, so I took screen shots of the list of drivers installed so I had a list of what was installed.
    Then, I closed the ADD & Remove for NI, and started the installer from the Driver DVD. I compared that against the list (screen shots) of what I have installed.
    I went through all the components from the Driver DVD Installer, and selected "Leave this feature and its subfeatures installed locally"
    I had to hunt through the sub-subfeatures to find parts the installer told me were for things not installed (like VS 2003).
    Dealing with two discs during the building of the installer:
    What you can do is in the driver & components menu (of the edit installer window), you can select "Cache components included from this source" for the distributions it pulls in from the driver cd. That way instead of having to insert discs each time for the build, it will just pull the required source from your hard drive.
    What I had done in the past was to copy the driver discs to my hard drive. Then, when it asks for the driver CD or DVD, I would point to the copied folders on my HD. But, the new DVD set is too big for my HD, with the old DVD.
    I'm hoping the selection above, to copy things locally, is how to do the caching you mention. I didn't see anything about caching the components, and hoping the language form NI is changed.
    I will try the build in a while, it required a reboot, but I didn't want to loose my notes on this so far.
    I will update this later today, after I rebuild my app.

  • How to call test Sequences developed by using CVI Test Execuitve toolkit in Test Stand?

    There is a feature in TestSatnd which can convert CVI sequence to test Stand Sequences. But test stand is not recognising these sequences saying " not a valid CVI test sequence". Is there any version Issues, while converting these sequences to TestStand?

    Hi Scott
    In continuation of previous question..
    As per the suggestion, when I am trying opening one sequence(.SQU) file,developed in CVI Test Executive V 1.0.1., in CVI Test Execcuitve V 2.0.1, Executive is throwing error.
    The Pop Error is " Section [Sequence] missing from sequence file c:\xxx.squ"..
    and when I am trying opening these sequence file in sequence editor, the tool it self is crashing.
    Please suggest!!
    Is there any specific tokens which we need to add in .SQU files of V 1.0.1, so that V 2.0.1 can understand them? Just to check the possibility of manual updation of .SQU files.
    Regards
    Amit

  • Creating dll, lib, fp's to be used in other CVI programs

    Disclaimer: I am a self-taught CVI (and C) programmer in which I learned from examples, NI forums, and google  
    Main question: What is the proper way to create a dll, lib, and fp to be used in other CVI programs?  What I am doing is creating a "wrapper class" called PowerSupplies (and other wrapper classes) that takes arguments from the user and call the correct functions based on the power supply model type.
    Inside my Power Supplies project, I have included each power supply's function panel.  In the C file, I have added my functions and include file.  for example, here's one
    int _VI_FUNC Supply_InitSupply (int devs, char *resourceName, int IDQuery, int resetDevice, int *instrumentID) {
    switch (devs) {
    case AG663XXA:
    return ag663xxa_init(resourceName,IDQuery,resetDevice,instrumentID);
    case HPE364XA:
    return hpe364xa_init (resourceName, IDQuery, resetDevice, instrumentID); //Has Voltage and Current
    return -1;
    and then of course at the bottom, there resides the DllMain and DllEntryPoint functions.  What the heck are these, and am I suppose to rename these?  I ask because I created another wrapper classes with DMM's and I get the Multiply Defined Symbol Error with these two functions when using together in a separate program.
    Additionally, I have created a header file, which can be included in other CVI programs to know what functions there are.  I noticed I could "Generate Prototypes" after the fact and wasn't sure if this was the correct way or not.  My header file is below:
    #ifndef __PowerSupplies_H__
    #define __PowerSupplies_H__
    #ifdef __cplusplus
    extern "C" {
    #endif
    //==============================================================================
    // Include files
    #include "cvidef.h"
    #include "ivi.h"
    //==============================================================================
    // Constants
    #define POWER_SUPPLY_ENUM_FACTOR 200
    typedef enum
    AG663XXA = 200,
    HPE364XA
    } power_supply_type;
    static IviStringValueTable power_supply_table =
    {AG663XXA, "AG-663##X"},
    {HPE364XA, "HP-E364#A"}
    //==============================================================================
    // Types
    /************** Static Function Declarations **************/
    /************** Global Variable Declarations **************/
    /************** Global Function Declarations **************/
    int _VI_FUNC Supply_InitSupply(int devs,char *resourceName, int IDQuery, int resetDevice,int *instrumentID);
    /*commented out long list of functions for this forum's sake*/
    int _VI_FUNC Supply_Close(int devs, int instrumentID);
    int __stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
    int __stdcall DllEntryPoint(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
    #ifdef __cplusplus
    #endif
    #endif /* ndef __PowerSupplies_H__ */
    I then have built it as a static library and dynamic link library.  I then generated a Function Panel from the header file with Prefix Supply_ and Qualifier as _VI_FUNC.
    All worked nice and dandy, copied files to appropriate places in the IVI directory.
    In my other CVI program in which uses these "wrapper classes", I have included the function panel's that I created.
    Well with the error i mentioned above about Multiple Defined Symbol, I have come here to figure out what went wrong.
    What are the DllMain and entry point functions?
    Is my c and h files created correctly with proper prefixs?  I tried extern once, and got errors I believe.
    Does the function panel use the .lib files? Am I going about this correctly or is there an easier/more efficient way?
    Any and all advice is greatly appreciated!!!
    Thanks!

    There's info in the CVI help on how to make DLL,s in CVI.
    There's quite a bit more to it than you might imagine at first.
    I've pasted a DllMain that I wrote.
    Some key issues:
    You can put a type library into your DLL, that way if you add the DLL as a reference in Visual Studio, VS will know the prototype without your having to bring in a header file or import library of any kind.
    CVI created DLL's are not "active" DLL's and should not be registered with regsvr32, this will just make a mess.
    You can tell CVI what you're exporting in a couple of different ways, I always use "symbols marked for exports"  and use the macros DLLEXPORT DLLSTDCALL, but NI says using a header file is preferable, I forget why.
    The DLL search path is a wonderful thing - it's easy to wind up using a different copy of the DLL than you intended due to the way windows searches for the DLL.  Different versions of windows have slightly different rules.  Some allow redirection to help you manage the search path.
    CVI will not automatically switch between debug and release versions of the import library - you have to call out the correct version in your project and link it to any executable using it. 
    You can do "dynamic" loading / linking of a CVI DLL without binding to an import library using GetProcAddress function, but it's easier to use the import library.
    A DllMain isn't necessary but is good practice.
    Good luck.
    /*== PRAGMAS =====================================================================================================*/
    #if defined (_CVI_) && (_CVI_ >= 850)
      #if defined _CVI_DEBUG_
        #pragma C99_extensions_on  
      #endif
    #endif
    /*== INCLUDE FILES ===============================================================================================*/
    #include <windows.h>
    #include <userint.h>
    #include <ansi_c.h>                                                                                     
    #include <cvirte.h>
    #include <stdio.h>
    #include <utility.h>
    #include <analysis.h>
    #include <toolbox.h>
    #include <formatio.h>      
    /*== MACROS ======================================================================================================*/
    #define MAX_STRING_SIZE 256   
    #define MAX_MESSAGE_SIZE 256
    #undef  MAX_LOG_MESSAGE_SIZE
    #define MAX_LOG_MESSAGE_SIZE 256                                                
    #undef  WriteFile   // To deconflict formatio (CVI) version of this function
    #undef  ReadFile    // To deconflict formatio (CVI) version of this function             
    /*== TYPEDEFS ====================================================================================================*/
    // Data type providing reference structure for thread local storage (TLS).
    typedef struct ThreadData {
      CHAR ErrorString[MAX_STRING_SIZE];
    } ThreadData, * LPTHREADDATA;
    /*== MODULE SCOPE VARIABLES ======================================================================================*/   
    static FILE * logFileStream;                      
    static HANDLE hModule = INVALID_HANDLE_VALUE;
    /*== GLOBAL (HEAP) VARIABLES =====================================================================================*/
    // TLS index
    DWORD g_dwTlsIndex;
    /*== PROTOTYPES ==================================================================================================*/    
    /*== CODE ========================================================================================================*/  
    * Function: DllMain
    * Description:
    *    DLL Main entry point.  Provides for DLL initialization.  
    * Limitations:
    * Parameters:  System defined.
    * Return Value:
    BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) {
      LPTHREADDATA lpThreadData;      
      switch (fdwReason) {
        case DLL_PROCESS_ATTACH:
          // Allocate a TLS index.
          if ((g_dwTlsIndex = TlsAlloc ()) == 0xFFFFFFFF) return FALSE;
          hModule = hInstDLL; 
          // No break - fall through and initialize for main thread
        case DLL_THREAD_ATTACH:
          lpThreadData = (LPTHREADDATA) calloc (1, sizeof (ThreadData));
          if (lpThreadData != NULL) TlsSetValue (g_dwTlsIndex, lpThreadData);
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          lpThreadData->ErrorString[0] = '\0';     
          break;
        case DLL_THREAD_DETACH:
          // Release the allocated memory for this thread.
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          if (lpThreadData != NULL) free (lpThreadData);
          break;
        case DLL_PROCESS_DETACH:
          // Free the allocated memory for this thread (main thread).
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          if (lpThreadData != NULL) free (lpThreadData);
          // Release the TLS index.
          TlsFree (g_dwTlsIndex);
          break;
      return TRUE;
    } // end, DllMain
    INT DLLSTDCALL DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
      // Included for compatibility with Borland
      return DllMain (hinstDLL, fdwReason, lpvReserved);
    } // end, DllEntryPoint
    implement dll functions like this:
    int DLLEXPORT DLLSTDCALL myFunc (int iParam) {
      return 1;

  • CAN Connection timeout error

    I am currently trying to connect to a third party ECU via the ECU toolkit. I am running V8.2 of labview and V2.1 of the toolkit with a series 2 hi-speed PCI NI-CAN card. When I try to connect to the ECU I get a timeout error "-301096: Timeout ocurred while waiting for response from slave device".
    When the A2L file is initially loaded, the individual characteristic and measurement tables load without a problem but the CAN settings do not load. As a result, I use the MC set property vi to manually set CRO id, DTO id, baud rate, byte order and command byte order (after using the hex string to number conversion vi). I also manually set the seedkey dll's but I don't think that the program is getting that far since I have also tried putting in non-existant seedkey dll's and this has no effect.
    I have tried increasing the timeout by factors of 10 and 100 by using the "Set Prop Timing factor" Vi as this is given as a solution to problems with the series 1 boards but this does not help.
    I am using extended (29 bit) identifiers and in one of the supplied examples, there is a multiplication by 20 million and I have also tried this (it changes the CRO id from 0CCCCCCC to 2CCCCCCC for example).
    I have tried using an XCP type connection but I get the same error.
    I have checked the physical state of the CAN bus by looking at the CAN0 channel in MAX and the bus monitor reports no errors and seems to have 3 distinct messages that keep repeating. When in 'listen only mode', the number of repeated messages returns to 1.
    I have included here an excerpt from the A2L file I am using and I have been manually setting up the ECU properties as follows:
    connection type CCP:CAN0
    baud 250000
    CRO id: 0CCCCCCC
    DTO id: 0DDDDDDD
    Station address: 100
    Byte order/cmd byte order: 1
    Is there a way to tell if the Exchange_id function in the CCP protocol is being called? It seems to me that it must be falling over somewhere in here as this is needed in order to compute a correct seedkey for any unlocking of parameters. I would be grateful of any suggestions to help get this up and running.
    Note that I have changed the proprietary A2L information.
    Dan
    Attachments:
    exampleCAN1.txt ‏1 KB

    Hi Graham,
    I tried starting off from a completely blank A2L and added connection parameters one at a time until I was sure each line was being read correctly by the toolkit parser. This seemed to work fine but the connection would open, try to unlock ECU resources and then return an error that the resources were unavailable and I should try a different seedkey.dll. I captured the CAN frames that were being sent via a second CAN card to look at the exact command sequence. I then extracted the seed data from the get seed reply frame and used a call library node function to call the seedkey.dll. This returned a different key to the one that was being sent in the unlock command so I could only assume that the toolkit is not calling the seedkey correctly somehow but since this is all hidden in a dll, I could not look at the exact mechanics to see what was going wrong. I then built a  VI using the frame API stuff that comes with the NI-CAN drivers cd to manually send the the frames required to connect then get seed. I use the same call library node function to call the seedkey.dll and then build another frame with the returned key. This all seems to work fine and I have an unlocked ECU. Unfortunately since I did all this with the frame API, there was no way to subsequently use the toolkit vi's as they are built around the channel API which is apparently incompatible. Feeling completely frustrated with the non-functional toolkit and having logged a couple of tech help requests with NI I have given up on the tooklit altogether, built my own A2L parser and I am almost finished with the communications interface using the frame APIs. Thanks anyway,
    Dan

  • Can I simulate Fortran code in LabWindows?

    For a project I have a finite volume code in Fortran that simulates magnetohydrodynamics and I want to use it as an observer in LabWindows. This code basically is going to simulate the system using the measurements taken.
    What should I do? I heard something about creating a Fortran dll and using it in LabWindows. How can I do that?

    CVI ships with multiple example DLL projects that can help you understand how to create and call DLLs in CVI.  In your case, as Anna said, you need to call functions in a DLL, not create a DLL in CVI.  You need to use your Fortran compiler to create the DLL and .LIB file, and then you can use CVI to call functions in that DLL.
    Look at the simple DLL example projects in C:\Documents and Settings\All Users\Documents\National Instruments\CVI90\samples\dll\simple\cvi.  (Note: the directory may be different depending on your CVI installation and version.)
    First you need to build the DLL.  Open mydll.prj, then, from the CVI menu, select Build >> Create Debuggable Dynamic Link Library.  This is the step in your real project that you will need to do using your Fortran compiler.
    Then build the executable to call functions from your DLL.  Open simple.prj, then Build >> Create Debuggable Executable.  You can now run your project, and browse simple.c to see how it calls functions in your DLL.
    Remember that for the purpose of this example, you're building a DLL in CVI, but for your real project, you'll be using your Fortran compiler to build your DLL and LIB.  Copy the DLL and LIB files to your CVI project directory, add the LIB file to your CVI project, and in your .c file which will call the DLL functions, #include a .h file which contains the prototypes for the DLL functions you'll be calling.

  • Support of automatica​lly sending of cyclic CAN messages added in wrapper for LabView 8.5 and 8.6

    hi,
    I am using usb can module systec for sending/receiving  can messages to device using third party dll.
    without using dll can i read/write can messages using labview?
    thanks

    Hello,
    It sounds like you are using a third party
    USB-CAN device. In order to use this device in LabVIEW, you must make
    those dll calls unless there are LabVIEW drivers or libraries available.
    Even the NI-CAN drivers used for National Instrument CAN devices are just wrappers around dll calls.
     Hope this helps.
    Peter Flores
    Applications Engineer

Maybe you are looking for