Assistance offered for VEE support

Post general discussions on using our drivers to write your own software here
Post Reply
Niel
User
User
Posts: 2
Joined: Wed Jan 10, 2007 7:42 pm
Location: New Zealand

Assistance offered for VEE support

Post by Niel »

Hi, I'm an electronic engineer in New Zealand. My job is developing ATE (automated test equipment) for the electronic products that our company manufactures (www.trutest.com">www.trutest.com). We currently have 5x ADC212/50 scopes in our factory measuring the performance of electric fence energizers. If anyone is stuck with VEE and the Pico DLL, feel free to contact me as well.

Cheers,
Niel

neilhutcheon
Newbie
Posts: 1
Joined: Fri Mar 23, 2007 10:55 am

Creating a continuous loop for VEE program

Post by neilhutcheon »

Hi Niel,

I'm a final year student at the University of Edinburgh and am currently workin on my BEng honours project which is to create control software for a digital microfluidic system.

I am using Agilent VEE to enable me to create a pulse which is to be sent to a Keithley controllable voltage source using direct I/O.

The pulse which is to be sent will only have to operate at a maximum of 20Hz and pulse between 0 and 50V. I have tried the pulse generator provided but it is not recognised by the Keithley device.

I have also tried to create my own loop. Whereby I send a value of 0V to the device then delay followed by a command of 50V, the problem I encounter is that this will only execute for one cycle. Are you aware of a technique which will allow this to continue until a break command is called?

Also, if there is a more efficient way of producing this program any suggestions will be most appreciated.

Thanks for your help.

Neil.

Niel
User
User
Posts: 2
Joined: Wed Jan 10, 2007 7:42 pm
Location: New Zealand

Post by Niel »

In VEE go to Flow -> Repeat -> Until Break. There are also Next and Break objects in the same menu.

Do you need accurate timing? If so, then the Delay object will not be good enough. Windows has a timer counter into which you can hook with a DLL. One of our software engineers created a DLL for me to expose this Windows function and it is very accurate (the most accurate available on a PC).

I think VEE is probably one of the best applications for what you want to do. You can also use other programming languages, but they focus on programming rather than hardware interfacing or getting data out in a usable format. The alternative to VEE is LabView from National Instruments.

All the best,
Niel

fkgunzel
Newbie
Posts: 0
Joined: Fri Jul 09, 2010 12:42 pm
Location: Brighton

Re: Assistance offered for VEE support

Post by fkgunzel »

Dear Niel,

I have a very old copy of HP-VEE and I am trying to run a USB-TC08 with it. I understand I have to run the ptogram in USB legavy mode.
This is how far I got today:
I have downloaded an evaluation copy of Agilent VEE, which can read the USB sample files supplied by Picotech. I am now trying to recreate the program in my old HP VEE version.

I have found that the ond HP VEE creates an error message whenever it comes accross the word 'float' in the .vh file. This means that I can't use the 'proper' USB mode. (I just deleted the lines containing 'float' making the routines usb_tc08_get_temp, usb_tc08_get_single and usb_tc08_get_temp_deskew unusable; see attached .vh file).

I am now trying to write a program in the USB legacy mode (I am using the sample program for serial mode as basis for that).
I can open the TC-08 successfully and also set the channels successfully. I also call the usb_legacy_run routine successfully. However, I have difficulties reading the temperature with usb_tc08_legacy_get_temp. This routine asks for an argument 'temp'. The USB TC-08 User's Guide (p.33) says about it:
'Pointer to a location where readings are to be placed. Each reading should be compared with 2147483647L or LONG_MAX (include limits.h) to check for overflows. An overflow occurs when the input signal is higher than the measuring range of the USB YC-08.'
However, I have no idea that this means. Could you please explain to me what I have to put in for this argument?

I am attaching the programs:
Tc08.vee is the program for serial TC-08 supplied from picotech
usbtc08.vee is the program for usb TC-08 supplied from picotech
Tc08 usb_fg2.vee is the program I modified for the USB legacy mode.

Kind regards,
Friederike
Attachments
fkgunzel.zip
(3.52 KiB) Downloaded 599 times

Niel
User
User
Posts: 2
Joined: Wed Jan 10, 2007 7:42 pm
Location: New Zealand

Re: Assistance offered for VEE support

Post by Niel »

It is probably calling an internal function that uses a float, or a table with a float in it, or something like that. With VEE you can use only double precision floating point numbers. You can try changing the header type definitions from float to double. I do not know if that will work, probably not as the definition will not match up with the DLL, so you might just have to contact Pico for support.

The only issue I've had with the ADC212 was with VEE 7 I had to change the header to include __stdcall in each line like this:
short __stdcall adc200_open_unit (short port);

fkgunzel
Newbie
Posts: 0
Joined: Fri Jul 09, 2010 12:42 pm
Location: Brighton

Re: Assistance offered for VEE support

Post by fkgunzel »

Dear Niel,

thank you very much for your reply. Do you have any idea about the second part of my question?
Basically I need some help with the argument 'temp' for the routine 'usb_tc08_legacy_get_temp':

The USB TC-08 User's Guide (p.33) says about the argument 'temp':
'Pointer to a location where readings are to be placed. Each reading should be compared with 2147483647L or LONG_MAX (include limits.h) to check for overflows. An overflow occurs when the input signal is higher than the measuring range of the USB YC-08.'
However, I have no idea that this means. So far I have only found out that the value should be a skalar, not an array, but I don't know anything else. Should it be a constant value that I set in the program? Should it be something I have to read with another routine? What is LONG_MAX? What is limits.h?
Do you know anything about that that might be helpful?

Many thanks,
Friederike

Niel
User
User
Posts: 2
Joined: Wed Jan 10, 2007 7:42 pm
Location: New Zealand

Re: Assistance offered for VEE support

Post by Niel »

No experience with that, and the Pico support for VEE is limited, but I'd say LONG_MAX is probably a constant of value 2147483647 (= 7FFFFFFF in hexadecimal) and the L (and LONG) would be a long (32 bit) integer. Have a look in the Pico install folder for limits.h.

Example of a .vh file for the ADC212 where pointers are used, indicated by the asterisk:
void adc200_get_values (short * buffer_a, short * buffer_b, long no_of_values);
Then in VEE you allocate an array of (in your case, not the ADC212) 32 bit integers and pass the array as input to the function call.

Check if the old version of VEE supports 32 bit integers, it might do only 16 bit...

Post Reply