Having multiple users that will logon and run this application, I am having problems only with the Write to Measurement File and selecting Excel as output (.xlsx). It appears that no matter what permissions are set on the directory, LabView ignores the directory permission inheritance rules and creates on owner only structure. This prevents anyone from opening the .xlsx file and shows it as possible corrupt. Which it isn't. This is a Windows 7 system with no Bitlocker, but the Excel icon on the files that the user can open has a padlock on it. Any other file I create (LVM, TDM, TDMS) all inherit the directory permissions. Only the .xlsx file are written with strict owner permissions. WHY?
Problems only with the Write to Measurement File and selecting Excel as output (.xlsx). It appears that no matter what permissions are set on the directory, LabView ignores the directory permission inheritance rules and creates on owner only structure.
Time delay while loop before stopping the loop
Hi All,
I modified this code from one of the example in the forum. I forgot which thread. Original file name is "loop speed control.vi"
I want to measure pressure and compare with target pressure. Once the pressure reading is higher than the target pressure, I hold the output high for 5 seconds and turn it to low.
When It goes back to low, I want the to exit the loop or when I pressed the stop button. I do not how to do this one. Please help.
Thanks
HTTP GET vi without URL encoding
Hi,
I need help with http_client_get. I need to comunicate with camera through HttpAPI and I need send "[" "]" not url encoded "%5B" "%5D". Does anybody know how to force vi send what I want?
Thanks
ZzZiii
csv files
hello to all, how are you?
I am working on a software to make measurement using my railroad drone.
My drone generate csv files ( as attached).
The first colum is the distance that the encoder generate, the seconde colum is generated by inclinometer.
But if I open data, for example Crosslevel, the distance on my VI, in the first graph called CrossLevel, the distance doesnt match the values of the csv file (first colum on excel), the distance on X showes how many lines the form has on excel (crosslevel showes 54, should be starting on 0,004 and finishing on 4,924
On software the ditance on X shows how many lines there are on excel chart
the Y values are correct
basicaly I need a XY graph with correct values from csv files
I have tried to separate values from first and second colum of the csv files but I didnt got
Is there any way to make the Graph shows value as I want?
To read the data on my VI, open the VI and on those 3 paths just enter the value that match each path, then press the red button besides STOP button. the software only will work if you enter all 3 csv files
The VI and those 3 csv are attached.
Thank you so much
Sorry about my bad english
for loop
Hi all,
I would be grateful if someone can help me to solve this issue,
I have a FOR loop, this FOR loop gives me a sequence of numbers from zero to1 million (1000000) as mentioned in the attached file. the probelm is this for loop makes my code is too slow when I run the code. So is there anyone can help me to replace this for loop with something more efficient and gives me the same results. thanks in advance
Regards
Error 200428 When Creating Task in DAQmx Base
I've written a basic program that captures a voltage signal, plots it, and writes it to a file, but when I run it, I keep getting this error:
"Error -200428 occurred at Value passed to the Task/Channels In control is invalid."
I have attached a copy of my VI. Initially, I did not have the "DAQmx Base Create Task" VI in the block diagram and I was getting the above error. After searching through some documentation, it seemed that the issue was that I needed to put the "Create Task" VI in when using DAQmx Base. Unfortunately when I did that, I still kept getting the same error.
Is there something I am doing wrong here?
Here are my software/hardware information:
Operating Software: Mac OS X 10.11.14
Hardware: NI myDAQ
Software: LabVIEW 15.0 (64-bit)
Drivers: NI DAQmx Base 15, NI VISA 15.5, NI-488.2 15.5, NI-DAQmx for myDAQ on Mac OS X (all for OS X)
Error -2367 occurred at External Model in Control & Simulation Loop
How to configure build so that a dynamically loaded lvclass in a built EXE can find dependent .NET assemblies
How can I find the equation used by a .vi?
I have a LabView project with a few different .vi's and each of them has their own equation. These equations allow the software to report flow and pressure based on voltages.
When I open one of these .vi's, which are named things like "Volt to pressure" or "amp to pressure", I see two boxes. One is labeled "Volt" and the other "Pressure"; pretty straightforward. I enter a voltage in the vi and I can get it to spit a pressure back to me. I need to know how to access and modify the equation being used.
I am very very new and inexperienced with LabView, so any help I can get would be great. Thank you.
1172 constructor node intermittent problem
Hi, I am working with some assembly (.net) that is using .NET Framework 4.0.
I have the supporting .dll and my VI in the same directory on the PC. I am trying to go between two different .dll when I am testing my new code but the problem is that it works only sometimes.
I can have everything working one day and when I am trying to build something new suddenly the old VI that was working before is no longer working and throws a 1172 error.
I have both LabView 2013 and 2015 installed, Windows 7.
I also have a config file
<?xml version ="1.0"?><configuration><startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0.30319"/></startup></configuration>
that will force the code to use Framework 4.0 in the same directory and under the LABVIEW directory.
What is it that will make my system so unstable?
serial communication with VISA
I am trying to communcate with a Power supply via serial connection. The communcation works great in Hyperterminal and PuTTY but i cannot seem to get it to work in labview. It times out when I try to read the data.
The hyperterminal settings are all basic and it works fine
9600 baud rate
8 data bits
no parity
1 stop bit
no flow control
send "VOLT?" with CTRL+J for linefeed
retruns the voltage at the output of the UUT.
I am wondering if i am sending the command incorrectly in labview. Any help would be great. I have attached the VI, this is my first try at serial comms so it is pretty baisc and i am sure I am missing something
Software development of dual axis galvo system scanner for laser marking
Hello everybody
I'd like to develop a programm/GUI for the synchronization between a laser and a dual axis galvo scanner system. A dual axis galvo system is composed of two mirrors X and Y which reflect the laser in the X and Y axis respectively. My initial idea is to choose the 'image' (sqare, logo...) that we want to mark on a surface with the laser and from this image (.bitmap) extract an array of {x,y,N} parameters for each pixel:
- x and y are the coordinates for each pixel which will correspond later to the laser position
- N is the number of laser pulses which is linked to the value of the pixel at (x,y). Therefore the number of laser pulse for each pixel/laser position is between 0 and 255.
I know the mathematical formula for the mechanical angles of each mirror X and Y of the galvo scanner which are linked to x and y coordinates of the image field respectively.
Unfortunately I'm totally novice in Labview and I have basic knowledges in C++, can you give some clues for my project?
Thank so much for your help !
Database id key from logs
Hi there,
I've been tasked with taking logs from different testers and inserting those log files into a central database.
I have been able to split the data that i require out but i am having real issues with creating an ID key. This now i have split the log files into 2 seperate tables.
1st table contains the main results (So this has Serial number, test type, unit type, duration, start date/time and status)
2nd table contains the details of the tests performed merged (cocacenated) with the pass / fail result.
The two tables will be linked by this ID.
I am trying to achieve this on HeidiSQL (MySQL)
I have setup the ODBC for mysql and its linked to the database.
Below is the sample code im working off of, but i cant get it to work either.
However whenever i run this i just get syntax errors.
Have i done something daft without realising it?
Kind Regards
How to reduce precision of TDMS file with express vi?
I notice that the express VI that saves binary data saves it with 8 byte precision.
That ends up being about the same size as the text version. (My data is usually less than 2 bytes).
Is there an easy way to get the express VI to reduce its precision from 8 bytes to 2?
Calculating Historical Rate of Change From Continuous Real-Time Input
Hi everyone,
I'm trying to create a Sub-VI that will calculate the change in a value collected in a real-time over the last 10 minutes.
The way my main VI is running now, a new value is calcuated once every second from data streamed via DAQ @ 1ks/s. Since everything is in a giant while loop, the data is constantly being written over my the next wave of data being read. I was wondering what is a good approach to "remember" what the value was 10 minutes prior so that I can compare it to the current value once every minute. I know shift registers can be used to pass information between iterations of a while loop, but we're talking about hundreds of thousands of iterations here. I don't know if there's some way to conditionally read/write to something outside the while loop as the program is running.
Basically what I need to do is have a program that monitors a value calculated in real time. This program also needs to be able to know how much this value has changed over the last 10 minutes once every minute (the rate of change over last 10 mins). The way that I've done it is to rewrite an array at the top of every minute with the new value until it reaches 10 values, and then it just starts back to 0 index writing over the values. This way I always have a snapshot of the values, once per minute, for the last 10 mins. However to "retain" this array for the other 59 seconds of every minute when I am not writing a new value to it, I just have it constantly rewriting the same array to itself repeatedly, and I believe this may be causing my program to develop a memory leak and throwing a buffer overflow error after a few minutes.
Is there some more effective way of approaching this problem? Also do you think that this is the reason behind my buffer overflow error? My main VI was running slowly, but without errors, before I added this subVI so that's why I'm suspecting this is the problem.
I have attached my subVI. I know it's kind of a giant mess and difficult to decipher, so please let me know if you need clarity on anything.
Thanks!
Call Library Function errors and ag8614x driver
I have inherited a test program written in LabVIEW 7.1 running on a PC running Windows XP.
We don't have the CDs for LabVIEW 7.1 but do have a license for LabVIEW 8.5.1
I am developing on a PC running Windows 7 Pro 32-bit.
The test program makes use of VXI Plug and Play driver from Agilent.
I am able to locate that driver on the Keysight website and install the driver.
Unfortunately, this newer version is not the one used by the test program.
The old version VIs uses the Call Library Function which calls ag8614xb.dll
The new version VIs uses the Call Library Function which calls ag8614x_32.dll
I thought it would be a simple matter of changing all the calls to the new DLL.
But errors occur.
For example ag8614x VXIPnp Error Converter.vi
I initially get Call Library Function Node: library not found or failed to load.
So, I configure the Call Library Function node to find the DLL at C:\VXIPNP\WinNT\bin\ag8614x_32.dll and checked the checkbox for Specifiy path on diagram.
I then get the error One or more required inputs to this function are not wired or are wired incorrectly.
The inputs are two integers and a string. I cannot figure out what is causing the error.
The function prototype is int32_t ag8614x_error_message(int32_t arg1, int32_t arg2, CStr arg3);
If I don't check the checkbox for Specifiy path on diagram , I get the error message Error loading "C:\VXIPNP\WinNt\bin\ag8614x_32.dll". A dynamic link library (DLL) initialization routine failed.
LabVIEW: Memory is full
Hi everyone!
I implemented a full image processing algorithm in LabVIEW using quite a lot of Matlab code imported throughout Mathscript nodes and when I have finished implementing the algorithm I found out that it works fine for a few number of pictures, but runs out of memory if I give him more than 25-30. My intentions are to run it through a database of approximately 1200 pics, so this very small amount that it can handle looks to be a pretty drastical problem for me. How can I make the algorithm to scale better and handle hundreds or even thousands of pictures?
Here you have my top level VI that just simply runs through a folder containing the images and compares every one of them to a reference image. Expected result is to have an array of similarity scores between each image from the folder and this reference one.
I have two subVI's that I figured that they may cause the problem. The Retrieve Properties VI does the most of the job which takes on the image as an input, calls lots of Matlab code from .m files and outputs a binary template and mask for the image. Then the Hamming Distance VI takes on the images from the folder and the template and mask from the reference picture, runs the Retrieve Properties VI for the image from the folder and does some logical operations (XOR, AND) on the templates and masks and outputs a double precision score. This subVI is called for every image in the folder and this is how it looks:
As I mentioned previously, the algorithm works fine for a small number of pictures, but when I give him more than 25-30 I get the error that "Memory is full". I've read some posts on this issue and most of them said to reduce number of front panel elements, arrays, copies of arrays and every large data structure that uses contiguous allocation, so I tried to do so. My only element on the front panel is the array with the final scores, however I cannot manipulate the Matlab code too much as it is not my code, I just have an authorization to use it.
As a final information that could be relevant I should mention the size of the pictures: they are 150x200 grayscale pictures with the size of around 22-25 kB's of data.
Does anyone have an idea how to make this algorithm work on a higher scale of pictures?
Searching for configuration files
I have a set of CSV files which I need to read on the startup of my main VI or the executable built from my main VI and all its dependencies (Either under WIndows 7 or LabView RT). Effectively, I need to search for these CSV files in a programmatic search path such as:
.\*.csv
..\config\*.csv
<project path>\config\
What is the recommended strategy for this and are there any VIs available for searching an arbitrary set of absolute and relative paths?
Also, how would this be handled in an AB exe build (EX: Can resource files be enbedded in an EXE)?
For LabView RT, I currently just have a deployed resource directory under c:\config. That works fine for RT, but it's a horrible way to do it on a Windows PC. Looking for a smarter approach.
Thanks,
XL600
How to prevent the numeric control button value changes when it is disabled and grayed out in labview
Hi,
In my Labview code i'm using Numeric Controls and making it ""Disabled and Grayed out" at particular instance and after executing few cases (Stacked Sequence Structure cases) i'm enabling the controls again. During this period if user clicks the Numeric Control Buttons i'm expecting that it will not take this input event (i mean it should not change its value) since i disabled and grayed out the control. But it is changing the value if a user event is occured during this period.
I'm attaching a sample-Numeric Control Changes.vi explaining this scenario.
And i have one more query - whenever i use the "Display message to User" Node or "Dialogue" nodes,(Ex: "One button dialogue" node or "Two buttons dialogue" node) while run time it pop-ups the window and then background UI freezes until user clicks the "OK" or "Abort" button given in the pop up window. Is there any way to make the UI not to freeze in this situation and also is there any way to automatically close the pop up window after particular duration of time?
can someone please answer these questions.
Thanks in Advance.
Siva.
U2702A master-slave
I have three U2702A scope modules in the U2781A chassis. I would like them to all trigger when a particular one triggers. It seems that this is done via the master slave settings in the chassis SSI configuration. I see where you can set this via there Agilent Measurement Manager tool, but does anyone know how to se this in Labview? I do not see this capability in either thier instrument driver or the IVIScope driver.
On a side note is there any way to send VISA writes/reads to a IVI controlled device? I tried and it fails. It looks like the IVI session has it locked so you cannot perfrom a VISA write to it. I think I know the command I need to send.