Return the execution of DLLS in Labview data table

Hi all

I have a DLL C++ which should run continuously collect new data of some hardware.

I can call the DLL without any problem of Labview, but I wish I had access to some digital table data in the DLL in Labview (the appellant or an another VI) during its execution.

Working in this direction, I've already got the event validation works, i.e. trigger messages to the DLLS running in VI of the caller using PostLVUserEvent().  This would solve my problem (maybe bad) if I need only a scalar or string of each event (which works fine).

Then I tried passing a few paintings of small integers via the event (properly by changing the input type to create the user in LV event), but it did not work (empty tables or falls down... oops!).  Perhaps events are not the way to send large paintings (say 10 ^ 4-10 ^ 5 integers) anyway...

Can anyone suggest a way to do this?  There are functions to manipulate the values in a control of LV/indicator of the DLL running?

Thanks a lot for any assistance, MT


Tags: NI Software

Similar Questions

  • RealTek HD Audio driver "stdriver64.sys" not digitally signed, and update returns the message "everything is up-to-date.

    Hello

    Recently, I checked my RealTek HD Audio drivers and found that the "stdriver64.sys" driver is not digitally signed.  It can be connected to a crash problem that I have known for two weeks now, so I try to update all the drivers and see if it will solve this problem.  When I click on update drivers for RealTek HD Audio, a message returned quickly saying that all drivers are up-to-date.  But again controlled the pilot "stdriver64.sys" shows that it is not digitally signed.  Is there another way to update this driver or another way to take with this?  Thank you for your help.

    Preston

    * original title - RealTek HD Audio driver "stdriver64.sys" not digitally signed and update returns message "everything is up-to-date. How can I solve this? *

    Go to the website of the manufacturer of your computer/laptop > drivers and downloads Section > key in your model number > look for the latest Vista drivers > download/install them.

    See you soon.

    Mick Murphy - Microsoft partner

  • Purge the database postgres VCSA 5.5 data (tables vpx_event & vpx_event_arg)?

    Someone at - it instructions for the removal of the entries in the vpx_event & vpx_event_arg for the postgres database tables in VCSA 5.5? Due to a bad person designed the monitoring scripts, we have 18 million rows in the vpx_event_arg table and looks like it is the root cause of our recent problems with the VCSA.

    I see several KB articles on how to purge the data from MS SQL Server, but not instructions for Postgres.  So the same manully kickoff roll-up scripts. I've updated the retention policy of database from 180 to 90 days, but there is still 18 M records in the table. Cannot find how to manually start the rolling script for postgres.

    Any help would be appreciated.

    Thank you

    Michael

    Could not find a clean way to purge the data from the table, so we finished truncating the entire table. I poured both the vpx_event and the tables of vpx_event_arg for archival purposes and then did:

    /opt/VMware/vpostgres/1.0/bin/psql d VCDB vc

    Enter the password

    then:

    TRUNCATE TABLE vpx_event WATERFALL;

    It takes only a minute and of course we were back in business and the performance was back to normal.

  • Recover data from the subject of BAM using SQL Data Table

    Hi all


    If we create BAM SCARE that say XXEmployee _XXEmployee corrosponding BAM architect table would be created in the schema ORABAM.

    If I ask... Select * from XXEmployee, I get error saying this is not a valid identifier (table coz name is from a " " "").

    No idea how to extract data from BAM PERFORM using the Sql query.

    Thank you
    AB

    Hi AB
    I'm not the best oracle dba, so I don't know if the version makes a difference.
    I use this query on 10gr 2 in SQLPLUS (make sure you have quotation marks around table names)
    for example, BAM comes with a sample 'Employees' data object, I can do via sqlplus
    Select * from ORABAM. "" _Employees;

  • To return the rows

    Dear members
    I need a function to return the lines

    This is my sample data
    ID     DESC               UNI          CODE
    1     BO_USER               40352          A
    2     BO_USER1          40353          D
    3     BUSINESS_PARTNER1     40353          F
    4     BUSINESS_PARTNER2     40354          R
    5     BUSINESS_PARTNER3     40354          N
    If I pass the id and United as an input value, that I need to get all of the line as well

    Create or replace function ((ID en varchar2, UNI en varchar2))
    return
    l_val;


    Itry to serve table tpe
    and the type as object and call that function, but when I try to call this value, I am not able to
    use of the name of the function instead of this I need to use
    slect * form the name of the table function

    If somene post a few syntax how to I will follow

    regads

    Hello

    You can create the function with the return type as table % rowtype. And even you can call this function in a block anonymous plsql and display the desired value.
    But in sqlplus, you won't be able to use it as a sql statement since it is the unsupported data type.

    This was based on my understanding of the declared scénarion. Let us know if its different

    SBH

  • How to transfer data from a DLL Delphi pascal class to a LabView data cluster?

    Hi all

    I have the following problem:

    I use a dll written in Delphi Pascal to transfer data to LabView by using the "Call library function node".

    My Delphi dll contains this class:

    TFlash = class
    Fi: TFileInfo;
    constructor Create;
    procedure LoadFi (Filedir_and_nametring);
    end;

    TFileInfo = record
    IDX:smallint;
    IdxLstSpl:array [0.4] of longint;
    Ms: Word;
    [0.4] SP:array of the word;
    end;

    I created the record datastructure of TFileInfo in a cluster of LabView to have the 'same' variable.

    My plan was to call a DLL Deplhi function with the "call library function node" and pass the address of the folder TFileInfo, so the data would be transmitted to the cluster of LabView.

    When I do a simple delphi dll function as this works because I only spend a small integer to Labview (without reference to the data structure):

    ...

    var data: TFlash;

    ...

    function GetNrOfRows(FilePath:_string):integer; STDCALL;
    Start
    Data: = tflash. Create;
    Data.LoadFi (FilePath); This function returns the number of lines in the selected file.
    Result: = Data.Fi.Idx;
    end;

    When I try to use this procedure instead of the above function, in order to pass the address of the data set structure complex 'Data' (TFileInfo), I am unable to get the information of 'Data' in my Labview cluster:

    procedure LoadFileInfo (FilePath: string;) DataPointer: Pointer); STDCALL;
    Start
    Data: = tflash. Create;
    Data.LoadFi (FilePath);
    DataPointer:=@Data;
    end;

    Parameters of call library function node:

    -stdcall (WINAPI)

    -Run in the UI Thread

    -Function prototype: void LoadFileInfo (PStr FilePath, void * DataPointer);

    * DataPointer--> Type: "adapt the type" and the format of the data: "pointers to the sleeves.

    * FilePath--> Type: 'string', format of the string: "pascal string pointer.

    I'm struggeling with this problem for almost a week now and I can't really find a solution on the forum or google.

    I also read the following posts:

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=229930&requireLogin=false

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=77947&requireLogin=false

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=51245&requireLogin=false

    (or did I miss something in these messages?)

    Hope my explanation is clear.

    THX

    A little further:

    Seems like it's not possible to pass data from Delphi to Labview through a DLL when I create a cluster with 2 bays in it in Labview.

    This part of Delphi, I've had to make in Labview:

    TFileInfo = record
    IDX:smallint; {integer; Convert tool}
    IdxLstSpl:array [0.4] of longint;
    Ms: Word;
    [0.4] SP:array of the word;
    end;

    Instead of using 1 cluster with all the different data in it, I did a unit (1) with my 2 items (smallint and word).

    To pass my data in my tables from delphi to labview, I created another group (2) in the unit (1) with 5 elements of longint (because my delphi is going to 0.4) and another group (3) in the unit (1) with 5 Word elements.

    Right-click on the unit (1) and the clusterorder in the right order. First the smallint, then the longint table, then the word and the Word table.

    When I then use this code in my dll Delphi, IT WORKS! :

    procedure LoadFileInfo (FilePath: string;) DataPointer: PtrTFileInfo); STDCALL;
    Start
    Data: = tflash. Create;
    Data.LoadFi (Copy (FilePath, 2, length (FilePath)-1));         --> I need to cut the first part of the pascal string because it's length, and I only need the string itself
    DataPointer ^: = Data .fi;       --> pass the record structure to the cluster of Labview
    end;

    Thanks for the info Ralf!

  • Dashboard of the LabVIEW data recover indicators of the poll

    Hello

    I have attached my entire project, including the error messages that I receive. I have my labview VI to put in place to have 3 different screws. My entries, my global entries and my "side". I created my web server and all the controls and indicators that I linked. However, when I try and run the dashboard of data project, all my indicators have error signals indicating that he "could not connect to the server. I have no idea what I'm doing wrong. Any ideas?

    The reason why this does not work, it's that your web service code is not quite structured reason. When you call a web method in LabVIEW it does is run the VI related to this method. In your case you have mapped to the URL http://host:8080/FINALCOAST/COAST.vi SIDE, and then you have a poller to web service linked to this URL. When you run your dashboard the poller accesses this URL, which causes the web server of LabVIEW run COAST.vi. If you look at COAST.vi, however, you will notice that what he does is run a loop that runs until the stop button is pressed. Is not supposed for a web method. He has no one to press the stop button. In fact, there is no user interface for anyone to interact with at all. This means that COAST.vi will work forever. Finally, data dashboard gave up and closes the connection because it should not take long for the web server that responds.

    So what is the correct way? It depends on what you're trying to do. In your case, it seems that you take just a bunch of inputs, do some calculcations and producing a bunch of outputs. You could do that in a VI with the method of a web that has just a bunch a bunch of outputs and inputs. In this case, you use just a web service calling (button) connected to one of the methods. Because this method has two inputs and outputs, you will get two entry and exit of Terminal ornaments around the button that you can use to connect to your commands (entered) and indicators (outputs). When you press the button it brings together the current values of the controls and those on the server to use as inputs to call your VI sends, and then he retrieves the results from the server and puts them in your indicators. In my example attached (see the file updated the dashboard) I show you how to do this. Note that I also modified the code of VI to create a Subvi for calculation of Basic code, and it is this VI which is used for the web service. This VI has no loop in him, so he just runs once with data values and returns the results.

    If you want to rather than having a continuous process that is continually measures your system in real time you need another way to access this data from a web service. It seems that that's what you were trying to do here, even if you use data in real time. Suppose that you were, however. In this case, you were a little close, but we need to make some changes. First of all, the running process doesn't have to be part of your web service. It may be, but it's a little more complicated. Instead of this, your process running (COAST.vi) can be just a regular VI running in LabVIEW. You just open and press run as usual. However, you want to only change VI to share its data with other processes. You have tried to do by using globals. Globals allow you to share data between the screws running in the same process, but web services actually run in a process completely separate (in the web server), so you'll need something else. A drop-in substitute would be shared network Variables. You'll see that in annex changed code I replaced your globals with shared variables. Then in your web service if you just use the same shared variables. Network shared Variables allow you to share data between processes (even on machines on the network) so that you can easily access the same data to both your VI running and your web service screw I modified your COAST.vi for this (and he calls the same Subvi from the calculation of the kernel).

    In this case, you could do just a single method "inputs" and only one "exits" method, but it might be better to break up to the less distinct modes which include the strongly bound values just to make things a little neater. It can be tedious to deal with a large number of terminals.

    Alternatively, once you use shared variables you has actually connect your controls and indicators on the dashboard of data directly to these shared variables. This has the disadvantage of requiring more ports to be open through your firewall (and you can not use security as you can do with web services), but for the use of internal network, it is easier to implement. To do this, just run your VI as before, and then as soon as it runs you can select each control or indicator in the dashboard of data, press the small button below, choose 'Shared Variables' and look for your variables on your machine. In this case, each control is directly bound to the variable, and so there is no need of a button. Changes that you make in the dashboard data are immediately placed on the server through the variable sared, and your VI (which is still running until you press stop) will see the new value, update the outputs and then repel these new values to the dashboard of data via other shared variables.

    I did not create a dashboard for the last two approaches, but if you may not know what I'm talking about, then I can create examples for those as well. The screw and the project must be configured to work in any case, if the only difference is in the configuration of the dashboard.

  • Cannot run Simulink DLLs at the same time that the execution of the target time real VI

    Hello

    What I try to do is run a dll created in the Simulink model to control some servo through a CompactRio 9014.

    For the moment, I managed to create three screws

    (1) in the FPGA target that performs the PWM channel desired

    (2) which takes the value of a variable that contains the desired position and network that feeds to the 1st VI

    (3) a VI that is running on the host computer that changes the value of the network variable to change the position

    I can get these three work screw and the servo controlled, but when I try to update the value of the network variable using simulation, by deploying to the target of RT simulation and running, he said:

    ' Access denied: this objective is already used by another host or project. »

    I guess that's because the project is already connected the cRio, so I unplug and am able to deploy the model files.

    However, when I try to run one of the screws in the Targer RT as well as simulation I get the error:

    "This VI is downloaded to the target, but is not present in the project you are trying to deploy.  All the screws on the target will be closed unless you choose to add the missing project VI. »

    With a large number of missing screws...

    I'd do this wrong, i.e. is there a simpler way to control inputs FPGA using the simulation, or is there something I have missed?

    Thank you

    Geoff

    Hi Geoff,

    I think I understand what you're trying to do and what you've done so far.

    If I'm not mistaken you have passed through the SIT connection manager, set your target RT (select DLL, mappings and hardware i/o) and this is his 'magic '.   If this is the case of look for the project pilot LabVIEW which was created by the SIT connection manager.  This should live in the same folder where is your DLL.  Open the pilot project, search for VI driver and open it.  Then go into the Sub - VI # 5 has with the name of the loop rate Base.  It's the Subvi who reads/writes on the material and the reads/writes the data to the DLL/OUT model.  If you want to read the output of your model and then manipulate the data that is where you need to add your code.

    Inside of this Base rate loop VI there is a Subvi with number 4 and called SIT take model Timestep.  This VI is the one who makes the call to the DLL model.  The output of this VI is your data from the model.  This data goes into slot - VI # 5, which is responsible for the drafting of these data to the material.  Since you want to manipulate that data from the model, you need to recover data from the wire coming from the Subvi 4 (SIT take model Timestep) before it gets to the Subvi # 5.

    In this VI of Base rate loop, you will see that there are a few empty block structures.  These images are for you to put any code you want.  The reason is that any changes you make to the driver VI and subVIs that aren't inside of these frame structure will be lost if you decide to go in the connection manager to sit DOWN again and make some changes.  The VI pilot gets new script whenever you do something in the SIT connection manager.  Whatever it is inside these frames will not be erased.

    So, if you have a code you want to run in parallel to the simulation you just have to drop it inside this driver VI.  Very probably within this Subvi 5 (Base rate loop). To add your code just drop the VI in one of these settings and make any changes that him so that he can read the data in the model.    Furthermore, the model (Subvi 5) data in a table.  For the index of each element in the array and its meaning look for a file in the same folder where the DLL is named readme.txt ports.  This file has a description of the inports and small ports and their indexes.

    This VI driver is called when run you the host VI so you won't have to run sepearately.

    Kind regards

    Ricardo

    National Instruments

    Systems engineering

  • Problems with the implementation of 32 or 64-bit DLLs in LabView 2013 13.0f2

    Dear Sirs and Madams,

    I try to order a motorized device (MGZ30-WORD thorlabs) with LabView 2013 (32 bit), product version 13.0f2 on a PC under Windows 7 64-bit. Unfortunately, there is no support of LabView for the WORD MGZ30, which means that there are no libraries or VIs for LabView.

    First of all, I want to describe the component or rather its functionality. It is connected to the PC via USB and managed by the v5.0.2153.1 Trinamic Virtual Serial Port Driver. If you wish, for example, adjust the position of the device, there is a small program (written in C++ by the seller). There are 2 different folders for 32 and 64-bit, each containing a .exe, .dll two (a ThemeControl.dll called, who apparently does not have the feature described in the h.file, I want to talk about later, and a ThorZStepper.dll called), a .lib (ThorZStepper.lib) file and an .xml file (ZStepeprSettings.xml, which contains the used COM Port and baud rate information). In addition, there is a folder that contains the driver and a folder called "SDK", that contains the subfolder with a .h file, samples and once more the files mentioned before.

    To use your device, you must modify the COM - ID in the .xml file and run the 64-bit .exe as administrator.

    First of all, I tried to use the VISA-USB-controls, which worked well with another device. However, he did not for the WORD MGZ30 as I did not have the possibility of obtaining the necessary chains of command although I used a sniffer port. Observed communication seems to be more complex than I expected and I was unable to extract the relevant information. To add, the device seems to communicate constantly with the PC even if it is inactive.

    The next idea, which came to my mind was to put in place the .dll files. Therefore, I used the import via Tools/Import/SharedLibrary function and the only h-file that I found in the file and the dll file which stood next the .exe in the folder of 64 bit. LabView created a file .lvlib and I got access to a few screws, which have also been described in the header file. The problem is that I can't run these screws because the .dll file is 64-bit while LabView is only 32-bit (at least, LabView suggests that this is the error.

    After that, I tried the same thing using the same header file (there is only one), but using the .dll file located in the folder of 32 bits. When I now try to run the files, execution of works, but I get an error message "call library function Node in ThorZStepper32.lvlib:Find Devices.vi. There are also a few screws, which do not generate this error, but will not work.

    My next test was to use the "call library function Node", as well as documentation in the .h file, but it didn't work. I don't know if I missed something or the 32-bit .dll file does not work on 64-bit operating system. Could you please help me to use the "call library function node" to investigate the weather that the 32-bit dll does not work properly?

    Please find the file h., (html.zip) documentation of the h.file and the VI, it must indicate the position, attached.

    Best wishes and thanks in advance!


  • measure the angular speed, angle and trigger using a gyroscopic sensor breakout board and LabView data acquisition

    How to measure the angular velocity, the angle and trigger using a gyroscopic sensor breakout board and LabView data acquisition?

    There is a single channel data acquisition code which measures the angular velocity, angle and flexibility using a gyroscopic sensor breakout board and acquisition of LabView data attached to this, I need a help to creat two-channel data acquisition code?

    Hello

    Attached is a vi that you can use in order to read the measured angular position of an encoder.

    If you need more examples on the tasks that you can develop with NOR-DAQmx and LabVIEW, you just need to open LabVIEW and click Help > find examples > Input and Output material > DAQmx > entry counter.

    Kind regards

  • The execution of the sequence TestStand in LabVIEW via TS - API: execution different times for the same sequence

    Hello - the members of the Forum.

    I have a problem about the execution of a TestStand sequence into LabVIEW. I created a VI that offers the possibility to choose a sequence TestStand-file and then executes the sequence using the TestStand API. The implementation is based on an example in C++-Application found the following link:

    http://forums.NI.com/T5/NI-TestStand/unreleased-references-using-engine-API-in-C/m-p/2927314#M46034

    The app works pretty solid where the VI is executed the first time. The VI treats the sequence chosen in an acceptable time.

    But where execution is started again, the sequence takes approx. 30 sec more than in the first case.

    So far I have not found a solution and hope someones got a clue about this problem...

    I use 2013 LabVIEW and TestStand 2013.

    I enclose my own VI, a sequence of the specimen with a small sample of VI, so you can reproduce the problem.

    Kind regards

    TobiKi


  • How can I return the path of a test step VI in LabVIEW?

    I would create a VI that will return all of the VI paths that are associated with the test steps in a TestStand sequence.  How can I return the path of the VI associated with a test step?  Here is a starting point that will return the first step of the sequence.

    You must convert the Module to a LabVIEWModule (use the variant to the data node), then you can use LabVIEWModule.VIPath.  If you use TestStand 2010, you can call LabVIEWModule.GetVIAbsolutePath to find the VI in the case you are calling with a project.

  • Can the Format date/timestring service that can control the execution of the loop to a VI?

    Can the Format date/timestring service that can control the execution of the loop to a VI?

    Example,

    a VI is running at August 25, 2010 and print a txtdata(3)) '100825.

    Then follow when time system running at 2359hrs, August 25, 2010 at 0000hrs, August 26, 2010.

    and print a txtdata(3)) '100826.

    How?

    When the system changes a new date, problems occur.


  • Opengl32.dll is not designed to run on windows or it contains an error. I reinstalled the graphics drivers. During the execution of the games, it shows this error. What should I do to fix this?

    Opengl32.dll is not designed to run on windows or it contains an error. I reinstalled the graphics drivers. During the execution of the games, it shows this error. What should I do to fix this? Is it a graphic file or a file from microsoft?

    Hi Jason,

    1. What is the number of brand and model of your system and graphics card?

    2 did you a recent software or hardware changes to the system?

    This error can be caused by an application, including any old games you have installed on your system.

    Because you tried to reinstall the drivers for video card, you can try to perform a clean boot and check if it helps.

    A clean boot to check if startup item or services to third-party application is causing this issue.

    You can read the following article to put the computer in a clean boot:

    How to troubleshoot a problem by performing a clean boot in Windows Vista or in Windows 7

    Note: After troubleshooting, be sure to set the computer to start as usual as mentioned in step 7 in the above article.

  • execution of DLLs. Error loading cbbxw.dll. the specified module could not be found. -what it means and how do I get rid of him?

    execution of DLLs. Error loading cbbxw.dll. the specified module could not be found. -what it means and how do I get rid of him?

    You could have, or still are, infected by malware; and it could also be a starting top left him entry.

    Malware scan:

    http://www.Malwarebytes.org/MBAM.php

    Malwarebytes is as its name suggests, a Malware Remover!

    Download the free Version from the link above.

    Download, install, upgrade and scan once a fortnight...

     

    How to use Malwarebytes once it is installed and updated:

    1. open Malwarebytes > click the update tab at the top > get the latest updates.

    2. on the Scanner tab, make sure that thePerform full scan option is selected and then click on theScan button to start scanning your computer

    3 MBAM will now start to scan your computer for malware. This process can take some time.

    4. when the scan is complete, a message box will appear

    5. you must click on the OK button to close the message box and continue the process of Malwareremoval.

    6. you will now be at the main scanner screen. At this point, you must click on the button toview the result .

    7. a screen showing all of the malware displayed the program that is

    8. you must now click remove selection button to remove all the listed malware. MBAM will now delete all of the files and registry keys and add them to the programs quarantine. When you remove files, MBAM may require a restart in order to eliminate some of them. If it displays a message stating that it needs to restart, please let him do. Once your computer has rebooted, and logged in, please continue with the remaining steps.

    9. when MBAM has finished remove the malware, it will open the scan log and display it in Notepad. See the log as desired, and then close the Notepad window.

    10. you can now exit the MBAM program.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    If the error persists after scanning, use the program to out startup:

    http://TechNet.Microsoft.com/en-us/sysinternals/bb963902.aspx

    This utility, which has a knowledge of auto-starting locations of any startup monitor, shows you what programs configured to run at system startup or login and that the entries in the order of processing windows. These programs include those in your startup folder, Run, RunOnce, and other registry keys. You can configureAutoruns to show other locations, including Explorer shell, toolbar extensions, helper objects to the browser, Winlogon notifications, auto and many start-up services even more. Autoruns goes way beyond the MSConfig utility bundled with Windows Me and XP.

    See you soon.

    Mick Murphy - Microsoft partner

Maybe you are looking for

  • Satellite A135-S4417 - boot failure

    Hello Recently, what action it has been generating a beep and if it stays on he will repeat this beep every 15 to 20 seconds.However, it is now a boot failure beyond the Vista login screen and everything stops instantly. Several attempts to start wit

  • What's up with Support technique Apple?

    I have a MacBook Pro for mid-2009 running Mavericks 10.9.5 and iTunes 12.3.1. It has been suggested to me that my old MacBook plays perfectly with the new OS and the version of iTunes and that I should come back to Snow Leopard and an older version o

  • Another 57 a installation error code

    Downloaded a number of updates today and installed everything fine, except the update of security for Microsoft Works 9 (KB2092914) Download size: 2.0 MB You may have to restart your computer for this update is taken into account. Update type: Import

  • my pc just does not start

    My pc shows only the departure options, namely the security mode, operating system options and so on. Just, I can't access. I have very important information on the HD. Help, please.

  • The language module apply to the keyboard too?

    I want to download the language pack for windows 7 for Russian, but I want to know if she just applies to the display language or keyboard too?