LabVIEW PID Code explained?

Hi NI Community,
I'm working on understanding the code behind the LabVIEW PID. First, let me say that YES I understand the theory of a classical PID control and understand how Kp, Ki, and Kd should affect my system. I'm interested in some of the underlying code behind the PID (DBL).vi in LabVIEW.
Specifically, integrator error in this VI is defined as
IntError = Error + LastError *(Kp/Ki)*0.5*(1/60)*dt + LastIntError
I'm simpliflying some of the logic but that's the meat of it. What are the 0.5 and 1/60 attempting to do in this equation? The dt is in units of seconds. Also, shouldn't this IntError be multiplied by Ki (e.g. Igain) at somepoint as well to follow the model of a Classical PID control?
These links were a great starting point but I'm trying to connect the dots between this theory and the actual code running in LabVIEW:
http://zone.ni.com/devzone/cda/tut/p/id/6440
http://zone.ni.com/devzone/cda/tut/p/id/3782#toc1
Thanks,
Craig

Hello Craig,
The PID toolkit is based on the "academic" version of PID where it uses proportional gain affecting integral time and derivative time. Those time are in minutes instead of seconds, that is the reason you have 1/60 on the equation.
Also, during the process of discretization of the integrator (making the continuous integrator discrete), you have basically 3 ways to discretize it: forward, backward and trapezoidal (also known as bilinear or tustin). The best method is the trapezoidal, which is based on getting the following formula: (see page 2-2 on the PID manual - http://www.ni.com/pdf/manuals/372192d.pdf)
IntegralError (i) ={0.5* [error (i) - error (i-1)]} + IntegralError (i-1)
Then, by changing the time to minutes and making the integral gain = proportinal gain / integral time, then you would get to our current implementation.
Also, notice that there are in general 3 methods of representing PID algorithms, which we call: academic, parallel and series. See http://digital.ni.com/public.nsf/allkb/6E76EC47B83​1FAED86256E4E007347DC
http://zone.ni.com/reference/en-XX/help/371894D-01​/lvctrldsgn/cd_pid_mdl_vi/
Please let me know if you have any more questions.
Barp - Control and Simulation Group - LabVIEW R&D - National Instruments

Similar Messages

  • Engine Dynamometer Brake Control, DAQ & LabVIEW PID

    Hi all, I am in the middle of a project to design, build and test a controller for an eddy current engine dynamometer.  I have an idea of how the inputs, outputs and overall process go, but am not sure how to best implement the necessary features in LabVIEW.  I have access to a NI USB-6211 DAQ, and a PC with LabVIEW 8.6, DAQmx drivers and the PID toolkit installed.
    On the electrical and mechanical side, an SCR firing board takes a 0-5VDC analog control signal to vary the amount of current passed through 380V three-phase electrical lines hooked into a large field coil.  Varying the input 0-5VDC signal results in a directly related variation of input current into the field coil, which in turn affects the strength of the magnetic field generated by the coil.  A large ferromagnetic rotor spins concentrically within the coil.  If the magnetic field increases, eddy currents are induced in the rotor causing it to slow down and heat up, and vice versa.  The engine-under-test is bolted to the large rotor and is put under load by the effects of the induced magnetic field and eddy currents.
    The plan is to have LabVIEW manage the 0-5VDC SCR firing board control signal.  The dynamometer currently has manual rotary knob controls, but the types of tests that are currently possible are limited.  The goal of the overall project is to produce "dyno sheets," plots of engine torque and horsepower over the motor's usable RPM range.  The problem, and motivation for this project, is that the manual controls cannot provide repeatable, precise measurements necessary for "power sweep" tests used to produce dyno sheets.
    Power sweep tests are used by all engine and chassis dynamometers to gather an evenly distributed collection of data across the engine's usable RPM range.  The idea is that the engine should be forced to accelerate its RPM at the same rate from just off-idle to rev limit.  Bolted to a dyno and given its druthers, most engines will accelerate more slowly off-idle and more quickly in their upper RPM power bands.  Load must be controlled so that the engine can spin as freely as possible down low in the RPM range, and be forced to maintain constant acceleration as it tries to pull away in the upper RPM range.  Human, manual control of rotary knobs can provide a respectable effort in this situation, but the problem becomes very apparent when comparing back-to-back, "identical" tests on the same engine, with the same operator.  Repeatability of torque and power measurement tests is very important to understanding how distinct changes to the engines mechanical and fluid systems affect its torque output, along with other symptoms.
    I hope the background is helpful.
    There are RPM and Torque inputs into LabVIEW for the engine under test.  In the design stage, I figured I would be able to implement a PID controller in LabVIEW to vary the SCR firing board's 0-5VDC control signal.  The PID loop would control the 0-5VDC signal so as to allow the RPM of the engine-under-test to accelerate as closely as possible to an operator-chosen rate.  The USB-6211 DAQ has two analog outputs, one of which can be used for the 0-5VDC control signal.  The DAQ also has two digital counter circuits.  One of them is used for counting and determining the continually changing frequency of a TTL pulse train driven by engine-under-test RPM.  Lastly, one of eight analog inputs is used to measure a 0-5VDC analog input signal from a strain gage signal conditioner indirectly measuring engine-under-test torque output.
    I worked with LabVIEW as a student in school, but never attempted to design VI's from scratch until now.  I spent the last week or so practicing with the DAQmx Assistant and later the broken-out DAQmx LabVIEW code for bench-testing the counter and analog inputs for RPM and Torque.  I plan to begin experimenting with PID controls this week, but I have stumbled into a few trouble spots with the DAQ input code already.
    As of right now, it seems that the PID control loop will only use RPM data, not engine torque data.  I would like to make sure that the sampling settings being used provide just the right amount of coverage, not using more DAQ or PC resources than necessary.  I figure this will assure the sampling process and controller will run as close to real-time as possible without relatively large-scale changes to the system.  Due to mechanical limitations of the dynamometer, the engines under test will never exceed 3600 RPM.  A variable reluctance sensor is positioned closely to a 60-toothed trigger wheel bolted to the dyno's rotating assembly.  The VR waveform is passed through a LM1815 based VR signal conditioning circuit to produce a TTL pulse train.  This digital signal is then piped into of the counter inputs on the USB-6211 DAQ.
    (3600 Revolutions per Minute * 60 Teeth per Revolution) / 60 Seconds per Minute = 3600 Teeth per Second (Hz)
    The maximum frequency of the RPM signal will be 3600Hz.  I started to try different DAQmx Timing settings. It seems the three main options are Timing Source, Timing Rate and Number of Samples.  I have the book "LabVIEW for Everyone," and read Chapter 11 on LabVIEW with DAQmx, but I had trouble figuring out exactly how these three fields affect a Counter input, as compared to the examples in the book covering analog inputs.  If it's not too much trouble, could anyone shed any light on this?
    In case it's interesting, here are some pictures of the engine dynamometer and some of the older data equipment that is being replaced.
    Engine Dyno Pictures
    Thank you for any help!
    Rob

    CoastalMaineBird wrote:
    As it happens, I am involved with a large project that controls engines, as well.  I have two control loops, one controls dyno drive based on speed, and the other controls throttle based on torque.  Usually only one is in PID mode at a time, the other is open loop.  I have to run the engine thru a prescribed speed-torque cycle and measure how much exhaust pollution occurs.
    We do "Torque Maps" which are sweeps similar to what you describe. You put the throttle 100% ON, and ramp up the dyno speed, all the while capturing data.  You get a map of how much torque you can obtain at any given speed. 
    I do it on a PXI box to avoid timing issues.  When I last tried to use the host computer to do this, Windows was just not able to devote the time to getting the data right.  The PXI box guarantees that I can control the loop at 100 Hz (I have tested it up to 1000 Hz).
    Anyway, to your specific question: 
    I started to try different DAQmx Timing settings. It seems the three main options are Timing Source, Timing Rate and Number of Samples. 
    The counters are general-purpose, so they can be configured in many different ways.
    The TIMING SOURCE is where the basic timebase comes from.  If you're measuring a high-frequency signal, you want a higher-frequency timing source (so you have resolution to spare).  If you're measuring a low-frequency signal, you want a low-freq timebase (so you don't run out of counter bits).  If your max input is 3600 Hz (277 uSec), then a 1 MHz timebase (1 uSec) will give you  one part in 277 resolution WORST CASE.  A 10-MHz timebase will be 10 times as good.
    I don't know where you are getting the TIMING RATE and # SAMPLES inputs, can you explain? 
    That's a very interesting project you are working on, certainly a lot more involved and impressive.  I think I saw a few screenshots of the LabVIEW interface on your website and wow!...that is really nice.  The emissions analysis equipment can get very pricey, but I can't think of a more timely test to be directly involved in at this point in time.
    I briefly researched standalone LabVIEW system options and real-time capabilities.  I am hoping that the barebones nature and low operation count of the VI will allow a Windows host PC to be sufficient for controlling the process.  This is largely an economic motivation to keep the overall project cost down.  If it turns out that PXI hardware is necessary, it will also be possible to look down that path at that point in time.
    When I first looked at LabVIEW DAQmx reference materials, I suspectec I would need to go beyond the DAQ Assistant and break down DAQmx tasks into their lower level start, read, write, stop and clear components.  After reading more and working with additional LabVIEW PID examples, it looks like I may be able to stick with DAQ Assistant sub-VI's.  I was confused at the time by the different DAQmx timing components and chose to begin with a question on the counter input.  Today, a DAQ Assistant sub-VI seems to be handling the counter input well enough.
    I most likely need to focus on PID parameter tuning at this time.  If it turns out that the timing configuration of the counter RPM input is preventing the system from working as required to perform a power sweep, or follow a Torque Map like you mentioned, then I will need to revisit it.  For now I'm just going to be happy that its portion of the system seems to be working.  
    Message Edited by el bob on 03-24-2009 01:45 PM

  • Embed labview generated code with c++ gui application

    Hey everyone ,
      I am very new to labview and trying to learn it  ... but before that i wanted to make sure a doubt which i have in my mind , the problem is that i have a realtime GUI application built on c++ widgets and i want to change the existing DSP block in this application with the code generated by using the LABVIEW , i am sorry that have very
    less amount of knowledge regarding labview so i turn up with thread ... So can generate c++ code for the DSP blocks designed in labview ... if yes how and if not why . Any
    sincere help will be appreciated . And I very much apologise for any mistakes in my question .
    Thanks

    Tonph wrote:
    Thanks rolf, is it possible that i use labview to disign my DSP block only and the output be fed to my custom c++ blocks and also wxwidget GUI ... suggest some means thanks ...
    Well, have you followed the link I gave in my post? You can download an evaluation version of the add-on and try it out in LabVIEW. It generates C code, not C++, but that should be no problem, since it is very easy to call C code from a C++ application. I can't vouch for the suitability of this add-on for you, nor do I know the exact price range so that are certainly things you have to do for your own.
    As to nathans solution, that could work too. If your application is for Windows, or MacOS X, or Linux you can create a shared library from your LabVIEW code and call it as such from your C++ application.
    Personally I would find it a rather roundabout way to include LabVIEW generated code in a wxWidget application. One of the strengths of LabVIEW is not only signal acquisition and analysis but also simple GUI design, at least as long as you are after a functional GUI, and not a very specific style of a GUI. So I would never even consider to do the GUI part with anything but LabVIEW if some other parts are already to be done in LabVIEW.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Updating Labview source code

    There's a way to create a .diff file for upgrading the labview source code, like with patch.exe in C language?

    No there is no way build into LV to do that. Maybe there are third party tools which can handle this. You must be aware that such a tool must handle binary files since VIs are binary.
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

  • Join the LabVIEW Example Code Contest and Get a Chance to Win an iPad!

    This October, we are holding the LabVIEW Example Code Contest 2010. LabVIEW users can demonstrate the cool things they've been able to accomplish with LabVIEW by submitting new example code. The best example code wins an iPad.
    Each participant can submit as many entries as they want as long as they fall under at least one of the following categories:
    Data Acquisition
    File I/O
    Math/Analysis
    User Interface Controls
    VI Server/Scripting
    Games
    Submissions will be accepted from October 1 through 17. Judges will choose finalists for each category, then the NI Community will vote for their favorite example codes. Father of LabVIEW Jeff Kodosky will choose the overall winner.
    Read the rules, ask questions, and submit your entries in the LabVIEW Example Code Contest 2010 Group

    The submission deadline has been extended to Monday, October 25

  • Show the price of the LabVIEW C Code Generator on the NI website

    When considering options, it's important to see the development and deployment price. Please put the LabVIEW C Code Generator price on the NI website so we can consider it.

    I would suggest two possible links on the lower center of this page:
    report a problem with ni.com
    Give feedback about ni.com
    It is possible that the price cannot be listed, because it strongly depends on the target hardware and third party licensing of certain tools used. Have you called the number to get a quote? What kind of questions did they ask?
    LabVIEW Champion . Do more with less code and in less time .

  • Export Adaptive Filter Toolkit Algorithm To C Using LabVIEW C Code Generation Toolkit

    I want to evaluate the performance of some of the standard adaptive filters & have planned to use "Adaptive Filter Toolkit" from NI. Once the desired adaptive filter is selected I want to implement the same filter algorithm in FreeScale controller.
    I understand that LabVIEW C code generation toolkit exports the LabVIEW code to ANSI C code. However, I'm interested in knowing if this toolkit would be able to export Adaptive filter toolkit algorithm as well (since the underlying IP would be in the form of DLL's).
    Any help on this matter would highly be appreciated !!

    I want to evaluate the performance of some of the standard adaptive filters & have planned to use "Adaptive Filter Toolkit" from NI. Once the desired adaptive filter is selected I want to implement the same filter algorithm in FreeScale controller.
    I understand that LabVIEW C code generation toolkit exports the LabVIEW code to ANSI C code. However, I'm interested in knowing if this toolkit would be able to export Adaptive filter toolkit algorithm as well (since the underlying IP would be in the form of DLL's).
    Any help on this matter would highly be appreciated !!

  • Output of LabView PID Control Toolkit

    I am evaluating LabView to tune a PID loop.  From the datasheet, it looks like all of the analysis tools are there.
    I am not clear on the output.  Does it have a synthesis feature to create C code?  Or is it just a matter of plugging the tuning coefficients into an existing library. 
    I ultimately want to port this to an ARM control module.

    I'm not sure I understand what it is you actually want to do, but LabVIEW is not an analysis tool. It's a programming environment which happens to be geared towards analysis, so it has a lot of analysis tools shipping with it.
    LabVIEW has an add-on control toolkit, which includes some PID functions, but those are written in the language itself and I assume you can find similar libraries for other languages as well. It will not generate C code - the LabVIEW code is compiled to machine code and is then run using a run-time engine on targets which have support for the run-time.
    LabVIEW does have a couple of modules which translate the code to C. One creates the C code so that it can be run on Windows Mobile devices, but it doesn't give you access to the code. The other is quite expensive and is targeted at embedded targets. I'm not sure, but I think you do get the C code resulting from that one. Being automatically generated code, though, I assume it's not very usable.
    If you have a background in C, you should probably use it. I believe eVC is available freely from Microsoft and I believe it should compile to ARM processors. That said, you can also download LabVIEW and run it for 30 days in evaluation mode.
    Try to take over the world!

  • How can I install (download) a Labview FPGA code onto Altera FPGA chip using Labview FPGA module?

    Hi there
    Guys i'm a very new labview user (PhD student), my project is about ( design and implementation of a high speed-yet sophisticated system using Labview environment then install this project's code (using Labview FPGA module) onto Altera-made FPGA chip).
    so kindly, can any body help me in this?...is there any way to connect labview with Altera FPGA?...please anything would be said 'd be of great benifits
    thanks a lot in advance.

    as previously mentioned, labview fpga only supports national instruments targets utilizing xilinx fpgas. the hdl generated by labview fpga is encrypted and cannot be used to synthesize a design outside the labview fpga design flow. 
    however, if you must use labview for your project, it might be possible for you to design the system in labview and use one of the labview embedded modules ( http://www.ni.com/embedded )to generate c code which you can then port to systemc and compile for the altera fpga. i'm not saying it will be easy, but it should be possible. 

  • Compile error of LabVIEW C code in vxworks 5.5.1/tornado 2.2.1

    Ladies and Gentlemen,
    I am trying to run a LabVIEW-generated C code {Calling a LabVIEW-built DLL in C to Acquire, Analyze, and Present Data (http://zone.ni.com/devzone/cda/epd/p/id/1515)} in VxWorks 5.5.1. However, I have the following errors in using Tornado 2.2.1 to compile:
    vxrm *.o *.rpo ctdt.c symTbl.c vxApp* *.out *.pl
    vxrm ..\prjComps.h ..\prjParams.h ..\prjConfig.c ..\linkSyms.c
    vxrm ..\libs.nm ..\libs.size
    ccsimpc -g -mpentium -ansi -fno-builtin -fno-defer-pop -I. -IC:\WindRiver\Tor2.2-PPC\targe
    t\h\ -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -Wall  -c ..\callLVDLL.c
    In file included from ..\extcode.h:14,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\platdefines.h:308: #error
    ..\platdefines.h:339: parse error
    In file included from ..\extcode.h:15,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\fundtypes.h:17: parse error
    ..\fundtypes.h:43: stdint.h: No such file or directory
    In file included from ..\fundtypes.h:61,
                     from ..\extcode.h:15,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\lv_prolog.h:37: parse error
    In file included from ..\extcode.h:15,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\fundtypes.h:157: parse error
    In file included from ..\fundtypes.h:252,
                     from ..\extcode.h:15,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\lv_epilog.h:17: parse error
    In file included from ..\extcode.h:15,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\fundtypes.h:361: parse error
    ..\fundtypes.h:370: parse error
    ..\fundtypes.h:386: parse error
    In file included from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\extcode.h:40: parse error
    ..\extcode.h:49: parse error
    ..\extcode.h:57: parse error
    In file included from ..\extcode.h:116,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\lv_prolog.h:37: parse error
    In file included from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\extcode.h:526: parse error
    ..\extcode.h:959: parse error
    In file included from ..\extcode.h:1080,
                     from ..\LV_AAP.h:1,
                     from ..\callLVDLL.c:23:
    ..\lv_epilog.h:17: parse error
    make: *** [callLVDLL.o] Error 0x1
    Done.
    I would appreciate your help in this matter. "LV_AAP.h" and "callLVDLL.c" will be furnished upon request OR you can download from
    http://zone.ni.com/devzone/cda/epd/p/id/1515
    The rest of the header files are in my directory:
    C:\Program Files\National Instruments\LabVIEW 2010\cintools
    Regards,
    Chi

    Hello Che,
    Thanks for your response. My real-time target hardware is MVME5100. However, at present I want to see whether a C code {see the attached callLVDLL.c} generated from LabVIEW can be compiled in VxWorks 5.5.1/Tornado 2.2.1. The reason why I am using an old version of VxWorks/Tornado is my company is transitioning to NI PXIe hardwares and LabVIEW software, and phasing out all of VME boards {Power 4e, Power 7e, and MVME5100}.
    All of header files are included in Tornado 2.2.1. If you are correct about compiling an .out file using Tornado 2.2.1, then what changes should be made to "callLVDLL.c" for a successful Tornado compilation?
    The documentation you recommended refers to a newer version of VxWorks/Tornado, which I do not think is helpful.
    Thanks for your help,
    Chi
    Attachments:
    callLVDLL.c ‏3 KB
    LV_AAP.h ‏1 KB

  • Labview PID control for virtual CNC lathe

    i am currently in my third year at UMIST, on the Mechanical Engineering (MEng) course. I am designing a control system for a miniaturised CNC lathe for my 3rd year project. For integration between the computer and actuators, i am planning on using Labview 7, but am currently having problems learning how to utilise the PID control toolset to create a virtual system response. I am planning on being able to input a specific transfer function for, say, a DC motor, and a ramp input, for example, and being able to view the output response as i vary the P, I and D gains. Some help with regards to the block diagram set-up for such a system would be greatly appreciated.

    The best place to look for this kind of information is the shipping examples of LabVIEW. Open LabVIEW >> help >> find examples. Another good place is online. Go to Advanced Search and look in the example programs.

  • Determine which function uses DSP on LabVIEW FPGA Code

    Hello All,
    I need some help, during optimization of our code on FPGA (sbRIO 9606) we faced with problem where we need to know which function is using DSP and which function is not using DSP (we are talking about on board DSP48's).
    Now my question is: Is there any way to find which function is exactly using DSP (for example add, sub, mul and so on) and how many, in which cases it's using it?
    Thank you with best regards.
    Orbel

    Hello Orbel,
    I found this thread, I think it is going to be useful for you.
    Is there an obvious way to prevent an FPGA multiply from using DSPs?
    You are going to find a KB and a CAR associated to that forum. Please check this document linked below, it is also useful (explicit use of DSP).
    An Introduction to High-Throughput DSP in LabVIEW FPGA
    Regards

  • How to open a labview 2012 code in labview 7?

    Hi there,
      I have a vi code written in labview 7 and I open that in labview 2012, modify the code and save it. But when I open that in labview 7, it doesn't open. Is that any way that I can save the code in 2012 so which can be open in labview 7?

    dragondriver wrote:
    altenbach wrote:
    You can only "save for previous" down to version 8.0. After that you need to open it in 8 and save for 7.1, then open it in 7.1 and save it for 7.0.
    (details)
    Easier might be to post the VI in the version conversion board.
    I don't have labview 8, so there is no way to do so!? ...
    You somehow ignored my second paragraph.
    LabVIEW Champion . Do more with less code and in less time .

  • Labview PID loop

    Iam working on a small project at school, and I need to use Labview to implement PID control...I know that this PID VI  comes with the control design and simulation toolkit..but unfortunately, the labview at my schools computer does not have a control toolkit...Can anyone please tell me how to make up VI for PID manually in LABVIEW..
    Thanks

    It is just math. Wikipedia has an excellent article on PID control. The block diagram of a PID controller looks a lot like what your VI will look like.
    =====================
    LabVIEW 2012

  • Using labview C code

    Hello,
    I am a bit confused at writing the C code for the CIN. The3 code labview
    gives me is:
    CIN MgErr CINRun(LStrHandle var1) {
    My code that I need to use needs the string input that IU had sent to the
    CIN. What is the actual name of the variable that the string is passed as?
    Is it LStrHandle, or var1, or the entire LStrHandle var1? Because my code
    uses
    messagesend(char), where char must be this variable that labview is sending.
    I would apreciate any help I can get. This is the last issue I have with
    my project before I can start debugging. Thanks
    JMH

    JMH wrote:
    > Hello,
    >
    > I am a bit confused at writing the C code for the CIN. The3 code labview
    > gives me is:
    > CIN MgErr CINRun(LStrHandle var1) {
    >
    > My code that I need to use needs the string input that IU had sent to the
    > CIN. What is the actual name of the variable that the string is passed as?
    > Is it LStrHandle, or var1, or the entire LStrHandle var1? Because my code
    > uses
    > messagesend(char), where char must be this variable that labview is sending.
    > I would apreciate any help I can get. This is the last issue I have with
    > my project before I can start debugging. Thanks
    >
    > JMH
    Let's first back up and make some changes.
    1) Decide how many and the types of inputs / outputs the CIN will use.
    2) Create the Controls / Indicators / Constants on the Fr
    ont Panel / diagram
    2A) NAME ALL OF THESE ITEMS
    3) Drop the CIN on the diagram start wiring the items to the CIN
    [Right click on a terminal of the CIN and select 'Add Parameter' to get more
    terminals]
    4) Right click on the CIN and select 'Create .c file'
    Now the Variables have names you can understand. IF you skip 2A then LabVIEW
    will name
    the variables as var1, var2, ......varN for the number of variables
    (parameters) you add.
    So to answer the question var1 in this case is the string coming into the CIN.
    The LStrHandle is the datatype (in this case a pointer to a pointer to the
    string ) of var1.
    I don't want to offend you but I get the impression that you are not
    comfortable
    with C code and CINs. These are not for the faint of heart. I would strongly
    suggest
    you look for another solution to the problem before resorting to using CINs.
    Of course if I have misinterpreted here you are more than welcome to send me a
    lashing.
    Good Luck
    Kevin Kent
    Attachments:
    Kevin.Kent.vcf ‏1 KB

Maybe you are looking for

  • SAP on V6R1 - ABAP Import:Program 'Migration Monitor' exits with error code

    Hello, We are doing an installation of SAP NW 7.01 SR1 on V6R1. <br> We were getting error in SAPAPPL2.TSK.bck we merged the files with following command:R3load --merge_only <TSK file> and refering sap note:Note 455195 - R3load: Use of TSK files. <br

  • My Time Capsule "went Kaput" but I "think" the Hard Drive is ok.

    I took the hard drive out and plugged into an enclosure and it shows up as two items; An AWS swap and AWS swapconfiguration. I click on it and it doesnt show anything. Perhaps its format is different than a normal one. Can anyone give me advice on ho

  • How to Edit document names in iBook

    Some documents that I import to iBook have names that are meaningless to me, e.g. Qymmbf-Nz.pdf. How can I edit them to something I can relate to?

  • Code Event in JSP

    Hola, estoy preocupado porque no veo ningun mensaje en espa�ol, en todo caso si alguien puede leer esto y ayudarme le agradecere mucho. Estoy utilizando JDeveloper10g y he creado una Web Application, tengo una pagina JSP a la cual le he agregado un b

  • Cannot install AIR on one Admin user on Macbook

    Hi, I have read these forums and only found one reference to this problem, but the solution posted there did not work.  My problem is that under my usual user (admin privileges) I cannot install AIR (it does the installation, but at the end I am left