C interpreter in Labview

In order to build a script
based Test System,
someone has an Idea
how to let
LabView load at C like source text file
and interpret it ?
Is there some ressources existing for that ?

Hi trallala (is there a meaning in this name?),
to build your own interpreter can get very complicated.
Why not start with a simple state machine (search for this in the forum)? In the state machine you can create one state for each command. This way the user can create kind of batch files for test setups and your program will execute them...
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome

Similar Messages

  • G code interpreter using LabVIEW done !!!!!

    I finished my G code interpreter using LabVIEW and I tested , and it gave me excellent results.
    Any one need help, please contact with me.
    ======================================================================
    Khaled Metwally
    [email protected]
    +966540836636

    Hi Khaled,
    I'm Sagar, a Field Application Engineer working for National Instruments, India. At present I'm working with a CNC machine builder in my territory who is interested in using our Motion Control hardware and software tools to build CNC machines. However the customer is demanding for a G code interpreter in LabVIEW that supports 3 axis coordinated motion profile. I would be able to convince my customer to procure our solution only if I can provide him with a G-code interpreter. 
    In this juncture could you please provide me with more information on the G code interpreter you have developed in LabVIEW. Would you be interested in sharing the codes with me so that it would help me better cater to my customer requirements? 
    Awaiting your response. 
    Thank You. 
    Warm Regards. 
    Sagar G Yadav
    Field Applications Engineer
    National Instruments, India

  • LabView "Guru" needed for the summer (4 month project) Kalamazoo, MI

    LabView "Guru" needed for the summer (4 month project)
    I am looking to hire a LabView "Guru" for a summer project in Kalamazoo, MI that will last 4 months.  Specifically, the ideal person will have the following:
    LabView expert with a minimum of 7-15 years of experience working with LabView (currently using version 6.1).
    80% of the job will be dissecting and interpreting mature LabView code and then re-engineering it to be used for testing.
    Printed Circuit Board experience a plus.
    4 year degree (BSEE preferred, but expertise in LabView takes priority over degree)
    The pay will be $60/hr and you can plan on overtime of at least 10 hrs each week that will be paid at $90/hr. 
    Please call 616-855-4600 if you need more information and email a "word" copy of your resume to [email protected]

    Sounds like Parker-Abex (LabVIEW 6.1 part)
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • I need to build an executable which allows all the VIs to be viewed as if in LabView

    I hope I am not being stupid but I need to build an executable which allows all the VIs to be viewed, opened - closed, as if being interpreted by LabView 8.5. The system is a simulator and I am required to allow the system to be inspected for correctness whilst running. Further, interactive panels exist at various locations throughout the structure and they must all work.
    Can somebody tell me how to do this or provide me with some pointers?
    Ideally I would like the navigation to be the same as if the code was being operated within LabView then the same idiots guide, I’ll need it in two years, will work for both the exe and the interpreted versions. The target machines will not run LabView and simply distributing the VI tree would be very bad news because it would allow erroneous edits to break the system.
    Thanks in advance

    Mike
    Sorry I may not have expressed myself well.
    I have developed the system in LabView 8.5 and I now want to release it to be installed on machines without LabView. I can do that, however I have a problem. I am required to allow the internals (the source) of the system to be visable; I don’t know how to do that without LabView on the machine. Yes, I know I could produce PDFs for all 1500+ VIs but I don’t want to do that and the customer does not want it eather; he wants to navigate the model and check what he finds.
    I hope this makes my requirements clearer.
    Thanks
    Frank

  • How to we use CNC G-CODES in LabVIEW?

    I can't find any G-CODES interpretor for labiew.Anyone can help me? Here is my email for the conversation.
    [email protected]
    Thanks.

    Hi eniscelik,
    About integrating existing G-code into LabVIEW, unfortunately, LabVIEW does not currently have any way to do this, as there are no toolkits or modules designed for this type of application, but  NI has  Alliance Partners who specializes in this type of work.Design & Assembly Concepts, Inc. specializes in motion control and does support these types of applications.
    Otherwise you can keep trying to comunicate with Gharb (link below):
    http://forums.ni.com/t5/Motion-Control-and-Motor-Drives/G-code-interpreter-using-LabVIEW-done/td-p/2...  
    If our developers know our customers are asking for it, they will be able to appropriately prioritize their development time, so I would suggest you to go to our NI idea Exchange (find link below) to provide feedback on G-code support.
    http://forums.ni.com/t5/LabVIEW-Idea-Exchange/idb-p/labviewideas
    Regards.

  • When to use TestStand

    For simple test flows, what TestStand does is fairly easy to implement with a custom software framework. Is there a rule of thumb as to what kind of application makes sense to use TestStand? I have studied TestStand for about 20 hours now, and I have found it difficult to learn. I don't want to add an extremely complex, single-purpose software tool to my test flow if I can accomplish the same thing with my existing general-purpose tools (LabVIEW in my case).
    At one point I had assumed that TestStand was to enable sequential programming to LabVIEW, but I have since learned this can't be the reason. It is not hard to build a command interpreter with LabVIEW that interprets a text file, and can handle data logging, variables, conditional branching, etc. Is TestStand just for users who lack the programming sophistication to build this kind of application themselves?

    LabVIEW can be a bad solution for a sequential type of operation (like executing the steps of a test flow) if you only use a long string of vis. A test flow is a long list of events that happen one after another, and it needs to very flexible and configurable. If you just chain together a bunch of VIs, you would get a LabVIEW program 30 screens wide. This is very bad. When I was a LabVIEW n00b I assumed that TestStand had been invented to solve this problem.
    I was able to make a solution using LabVIEW to implement test flows without using TestStand at all. I didn't really need to use LabVIEW, I could have used C or any other language. This program was for test set "A". This program works by using a state machine that loads a list of commands from a text file into a queue and executes the commands in order.
    I have another test set (platform "B") that I am updating with new software. I am not sure whether to re-use my old state machine code, or to try TestStand. At this point I am very disappointed with TestStand. It is very difficult to learn. It has aspects like "models" and "callbacks" that add complexity but are not useful for my application. The default user interface and data log format do not fit my needs, so I would need to replace the stock data logging and user interface elements with my own.
    So my question to people that use TestStand is, what is the advantage to using this tool vs spinning your own solution? What is supposed to be the core value of TestStand? What is the advantage of spending 100 hours learning TestStand and spinning my own custom interface vs creating my own test flow sequencer?

  • Undefined setBufferTime

    When trying to set buffer time on a client that i want to
    play a live stream from FMS3, i get undefined error:
    1061: Call to a possibly undefined method setBufferTime
    through a reference with static type flash.net:NetStream.
    Piece of the code that generates it:
    quote:
    var nc:NetConnection = new NetConnection();
    var ns:NetStream;
    var btn:but=new but();
    var btn2:but2=new but2();
    function playStream(){
    ns = new NetStream(nc);
    ns.setBufferTime(2);
    ns.addEventListener(NetStatusEvent.NET_STATUS,
    eventListener);
    ns.client = new CustomClient();
    video.attachNetStream(ns);
    ns.play("clientPlayStream");
    nc.connect("my_streaming_url"); is called when the client
    starts.

    Huzzah. I finally have justification for keeping all those uni notes.
    I can't fully explain it here, its been some years and I don't have a copy of Labview to poke around with.  So I'm sorry if this is not 100% correct.
    Essentially I was getting the error because I was passing the ActiveX components bad inputs and they in turn were spitting back error messages which were not being correctly interpreted by LabView.  This confused me as the error code was not in the documentation for LabView or the Baldor software I was using.
    I managed to work around by trial-and-error to find out what inputs worked.
    I stumbled accross the solution by chance (about two weeks before the project was due and after finishing most of the work, such is life) there is an ActiveX error handling function somewhere, if linked to the error output of the ActiveX command function it would give you a useful answer.
    Hope I'm not too late to help, feels a bit like http://xkcd.com/979/

  • Undefined Error 280

    Hello Netapp'ers,Back in the 7mode days we had a script to delete some files on a volume using rm command like following example (diag console) rm /vol/volname/filename After moving to clustered ontap we are unable to run the same scripts, this is understandable as commands have changed. But I have been unable to find a way to delete files from console. Why I need such a way is because I was deleting the files while they are being used.  There is no rm, ls, mv commands in cluster shell. They do seem to be there in node run but rm command throwing error: priv set diagrm /vol/volname/filename/vol/volname/filename : Undefined Error : 280 Is there anyway to delete/rename files which are in use using cluster shell or any other method? Regards.

    Huzzah. I finally have justification for keeping all those uni notes.
    I can't fully explain it here, its been some years and I don't have a copy of Labview to poke around with.  So I'm sorry if this is not 100% correct.
    Essentially I was getting the error because I was passing the ActiveX components bad inputs and they in turn were spitting back error messages which were not being correctly interpreted by LabView.  This confused me as the error code was not in the documentation for LabView or the Baldor software I was using.
    I managed to work around by trial-and-error to find out what inputs worked.
    I stumbled accross the solution by chance (about two weeks before the project was due and after finishing most of the work, such is life) there is an ActiveX error handling function somewhere, if linked to the error output of the ActiveX command function it would give you a useful answer.
    Hope I'm not too late to help, feels a bit like http://xkcd.com/979/

  • NI OPC server vs. KEPDIRECT

    I am in the process of setting up an industrial PLC project.  I am wanting to use Labview for communication with my Automation Direct PLC system.  Automation Direct offers an OPC server KEPDIRECT for $295.00.  NI OPC server is quoted at nearly $2,600.00.  Money is not a factor in my situation and I want to purchase the best and most efficient server.  Can someone explain to me the difference in the two servers (why one is more expensive than the other) and which one is better for working with labview and a PLC.  I currently have my system programmed with Automation Directs Direct Soft 5 and Lookout Direct and want to completly switch over to Labview if this makes any difference.  Thanks for any input and help.
    Solved!
    Go to Solution.

    Blue Ridge Test, a certified NI Alliance Partner, has successfully implemented a control / monitoring system with LabVIEW which interfaces to networked Automation Direct PLCs through ethernet (ECOM modules) and OPC.  If you are interested, we would like to talk with you about your application to see how we might partner together to achieve an elegant, cost effective solution which meets your goals while removing months from your timeline.
    If you decide to approach this on your own, there will be configuration challenges (e.g. extracting the correct tags from DirectSOFT 5, setting up OPC, etc.).  Before addressing those, though, you may want to think through your programming requirements such as those listed below.
    After the setup phase of your project (i.e. configuring hardware & signal conditioning, verifying connectivity, demonstrating various portions in LabVIEW, etc.), you might consider your architecture before moving forward.  How will you store your data?  How will you view / analyze the data later?  Is the architecture readable, scalable, and maintainable?  What will happen when you want new features (e.g printing reports, user logins, or controlling other external equipment or processes while saving data and displaying results)?  What kind of user interface will you use?
    Set yourself up for success long term by thinking about the right architecture today.  We frequently have customers whose "simple engineering experiment" grew on them.  And, interpreting bad LabVIEW code a year into a project can be a lot like deciphering abstract art (and equally expensive).
    Jason B
    434-525-7312 x114
    Message Edited by Support on 02-10-2009 05:17 PM
    Certified LabVIEW Architect
    Wait for Flag / Set Flag
    Separate Views from Implementation for Strict Type Defs

  • High Level language Interprete​r in labVIEW?

    This is a question of curiously: is anyone aware of any high level language interpreters written in LabVIEW?  
    I recently wrote my own BASIC like language interpreter as part of a custom LabVIEW test suite to allow scripting without needed to edit the LabVIEW source code and it got me wondering if anyone has done anything similar?
    It could be BASIC, Pascal, C, etc.
    I did find this one site that lists a tiny BASIC interpreter that has been ported to a lot of different languages (but not labVIEW):
    https://sites.google.com/site/smallbasicinterprete​rs/source-code
    so there seems to be a lot of interest out there.
    My only google search hits for LabVIEW interpreters are for CNC G code.

    I've never used it personally but I think LabPython might be what you are looking for.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Labview color interpretation

    i am creating a color *.bmp file in windows using paint, FTP it over into unix, dump the picture into Xview using XWD > commmand, and then import the picture into labview to create a picture in labview. to create the labview picture i use edit, import picture from file, then choose the file. the problem is, when i view the picture in labview, all of the colors are mixed up ie a yellow box in the .bmp file is a cyan box in the labview window. And vice versa, a cyan box in the .bmp file is a yellow box in labview. this color mix-up pertains to every color used. ie a red box in .bmp is another color in labview.
    fahlers suggested: It looks like the sequence of the 3 RGB values that make up a color value is reversed somehow. Yellow (normally RGB = hex 00 FF FF) is in LV represented as hex FF FF 00). If you reverse FF FF 00 to 00 FF FF, you'll have cyan in LV.
    is there a practical way of doing this in labview, changing the way labview interprets color hex values? In other words, labview is reading hex color values as "33 22 11", and i need it to read hex color values as "11 22 33."

    If your importing the picture into a LabVIEW piture control I would take the output color array and transpose the colors. The RGB VIs can be found in "Graphics & Sounds >> Picture Functions"...
    See attatched picture:
    Attachments:
    Snap.jpg ‏10 KB

  • Print form feed \f escape sequence in labview 7.0

    I have a large string that I am trying to print that contains a form feed (\f) as defined in the LabView documentaiton. What I get is a little square where the \f should be and no new page. What am I doing wrong?
    Steve

    Hey Steve,
    To where are you trying to print your string? LV front panel string control?....or to some external device?
    I would check and make sure your string controls/indicators are in code/normal mode. You can do this by right-clicking on the control/indicator...(codes and normal are two of the options)
    Set in codes mode for the \f to be interpreted as a form feed. On the other end, normal mode, should perform the form feed.
    Let me know if this helps/works,
    Brett

  • Open VI Reference to a LabVIEW executable.

    Hello,
    I haven't done this for a while and it's not working like expected.  I'm trying to "Open VI Reference" from executable A.exe to B.exe.  I'm trying to get a control value from B.exe in A.exe.  Can someone send me an example?
    Right now I'm at this stage: I have A.exe running as a LabVIEW executable.  I'm trying to "Open VI Reference" to A.exe from LabVIEW development without success.  Not sure what I'm doing wrong.
    Don't hesitate to ask more info if you need some.
    LabVIEW 2012, Windows 8.1.
    Thanks,
    Michel
    Solved!
    Go to Solution.

    Bob_Schor wrote:
    Once you have an Executable, does it matter that the underlying Development system is LabVIEW, rather than (say) Visual Studio, or Matlab?  I suppose you could write an application that "knows" to, for example, listen to a TCP/IP port and interpret/execute commands, but that doesn't sound like the question being asked.
    BS
    LabVIEW-built executables still run as VI's in the RTE, though.  Their identities have not been abstracted away into one single object or anything, and they still have name-based VI server access.
    You can configure a build specification to include almost nothing, and require the VI files to be present in expected locations (i.e build specification's data or support directories).  By default, all items in an executable application build specification are set to be put in the same location as their caller, which results in most things going into the .exe file, internally referenced in a directory-esque form like crossrulz mentioned, "MyExecutable.exe\MySubVI.vi".

  • How can I calling LabView DLL within LabView and pass similar Data Types?

    I am trying to use an Instrument Driver, which is created in LabView6.1 as a DLL. At this point I have only LabView to test this DLL. I was wondering, is there easy way to find out what sort of Parameter or Data Type I should be using.
    How can I pass the following data with in LabView:
    LVRefnum as Type?
    LVBoolean as Type?
    TD1 (a structure) as Type?
    It is funny to see that I am able to create a DLL in labview but having trouble calling it within LabView. I thought, it would be easier to test the DLL within the same environment.
    Basically, I am more worried about the VISA calls that are used in the driver to communicate with instrument. Because, there is no link to �VISA32.dll� in
    the header file, is that handled by the LV Run-time engine? I guess more details are needed on using the LabView DLL within LabView from National Instrument Technical Support.
    Attachments:
    RL5000.h ‏1 KB

    A LVRefNum seems to be an unsigned long data type (32bit). You can cast it
    in LV then use that as a parameter to call the DLL. (an Occurrence type
    seems to be a Ulong32)
    When you created the DLL what was the resulting type for the LVRefNum?
    Happy Holidays
    "Enrique" wrote in message
    news:[email protected]..
    > I see...
    >
    > After doing some research, it seems to me that there is no easy way to
    > find out the type of data, other than looking at the header file and
    > have documents like Using External Code in LabVIEW handy. The
    > following information is from that document:
    >
    > LVBoolean is an 8-bit integer. 1 if TRUE, 0 if FALSE.
    >
    > LabVIEW specifies file refnums using t
    he LVRefNum data type, the
    > exact structure of which is private to the file manager. To pass
    > references to open files into or out of a CIN, convert file refnums to
    > file descriptors, and convert file descriptors to file refnums using
    > the functions described in Chapter 6, Function Descriptions.
    >
    > I know you are creating a dll in LabVIEW, but I am pretty sure the
    > information applies as well and is useful. For your dll this can be
    > interpreted that, rather than passing a LVRefnum, try passing the file
    > descriptor.
    >
    > From the header file, is can be deduced that TD1 is a cluster in
    > LabVIEW.
    >
    > You are right in saying that "more details are needed on using the
    > LabView DLL within LabView from National Instrument Technical
    > Support.".
    >
    > Enrique

  • External memory allocation and management using C / LabVIEW 8.20 poor scalability

    Hi,
    I have multiple C functions that I need to interface. I need
    to support numeric scalars, strings and booleans and 1-4 dimensional
    arrays of these. The programming problem I try to avoid is that I have
    multiple different functions in my DLLs that all take as an input or
    return all these datatypes. Now I can create a polymorphic interface
    for all these functions, but I end-up having about 100 interface VIs
    for each of my C function. This was still somehow acceptable in LabVIEW
    8.0 but in LabVIEW 8.2 all these polymorphic VIs in my LVOOP project
    gets read into memory at project open. So I have close to 1000 VIs read into memory when ever I open my project. It takes now about ten minutes to
    open the project and some 150 MB of memory is consumed instantly. I
    still need to expand my C interface library and LabVIEW doesn't simply
    scale up to meet the needs of my project anymore.
    I now
    reserve my LabVIEW datatypes using DSNewHandle and DSNewPtr functions.
    I then initialize the allocated memory blocks correctly and return the
    handles to LabVIEW. LabVIEW complier interprets Call Library Function
    Node terminals of my memory block as a specific data type.
    So
    what I thought was following. I don't want LabVIEW compiler to
    interpret the data type at compile time. What I want to do is to return
    a handle to the memory structure together with some metadata describing
    the data type. Then all of my many functions would return this kind of
    handle. Let's call this a data handle. Then I can later convert this
    handle into a real datatype either by typecasting it somehow or by
    passing it back to C code and expecting a certain type as a return.
    This way I can reduce the number of needed interface VIs close to 100
    which is still acceptable (i.e. LabVIEW 8.2 doesn't freeze).
    So
    I practically need a similar functionality as variant has. I cannot use
    variants, since I need to avoid making memory copies and when I convert
    to and from variant, my memory consumption increases to three fold. I
    handle arrays that consume almos all available memory and I cannot
    accept that memory is consumed ineffectively.
    The question is,
    can I use DSNewPtr and DSNewHandle functions to reserve a memory block
    but not to return a LabVIEW structure of that size. Does LabVIEW
    carbage collection automatically decide to dispose my block if I don't
    correctly return it from my C immediately but only later at next call
    to C code. Can I typecast a 1D U8 array to array of any dimensionality and any numeric data type without memory copy (i.e. does typecast work the way it works in C)?
    If I cannot find a solution with this LabVIEW 8.20 scalability issue, I have to really consider transferring our project from LabVIEW to some other development environent like C++ or some of the .NET languages.
    Regards,
    Tomi
    Tomi Maila

    I have to answer to myself since nobody else has yet answered me. I came up with one solution that relies on LabVIEW queues. Queues of different type are all referred the same way and can also be typecased from one type to another. This means that one can use single element queues as a kind of variant data type, which is quite safe. However, one copy of the data is made when you enqueue and dequeue the data.
    See the attached image for details.
    Tomi Maila
    Attachments:
    variant.PNG ‏9 KB

Maybe you are looking for

  • I'm not able to find out my own telephone number!! how can I get it?

    I bought a new SIM card but once I insered in my phone, how do I find out my number? I've no credit so i can not call or text someone!! Thanks

  • Information About AJAX Framework Page

    Hi, We recently implemented one portal with EHP1. We find ajax framework page in the pcd. I already go through some of the documents available in SDN. [https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/00b99527-da5b-2b10-e4b9-81fb93

  • Which jinitiator for w98 and win xp ?

    hi all , i am deplying my forms6i on the web using oracle9ias . the application works fine with w98 client where in it does not seem to be working with winxp client. i think there is problem with jinitiator. can somebody tell me which version of orac

  • Youtube videos not working

    not sure if i'm posting this in the right place... sorry if i am. basically youtube movies not playing, if i were to click on a video on the homepage it won't play. or if i click on a related video, still nothing, just a black screen, no audio, video

  • Question from yesterday with more details

    Hi, yesterday I posted a question: hello, I have a question on how to configure that the same call goes and gets back over the same B (bearer) chanell in dial-peer pots configuration and what the configuration steps to achieve this would be? you repl