Jump to content

Thang Nguyen

Members
  • Posts

    295
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Thang Nguyen

  1. Thank you so much,

    I have question:

    Open VI Reference is the Top Level VI "EUIOHost.vi" with which I want to interact.

    What happens if all my simulators are installation version, which are .exe files?

    Or should I copy the source files to the install folder???

  2. Hi everyone,

    I am working on a project which require communication between TestStand and multiple LabVIEW executable programs. This project is used for testing the operating of a system which involved different type of controller which is simulated by independent software-in-the-loop or hardware-in-the-loop LabVIEW programs. So far we discussed that the TestStand will be run on a PC which communicated with other PCs which run seperated simulator by ethernet. Each of this simulator are distribution version which is installed as executable on each system, it's not in the developement evironment. I am trying to figure out how to from TestStand I can access and change value of the controls on the GUI of each simulator the set the value as well as read the value as feedback. For this requirement I think about using VI server solution which is get the reference of the controls on the simulator.

    After doing some experience examples, I found some issues

    I post here my first question:

    I tried with some examples in articles on NI web site.

    This is one example:

    Controlling Two Executables with the VI Server

    http://zone.ni.com/devzone/cda/epd/p/id/1366

    In the example the Master .vi try to get the reference from the Slave.vi which stored in the same location with the exe file. This is inrealistic with the distribution version where the installation files are not located in the same location with source files.

    I still cannot find an example which point directly to an executable file, not the vi file and get the reference to the controls on the panel. If you know any information about this, please let me know.

    Best regards,

    Thang Nguyen

    post-7703-125373116534_thumb.jpg

  3. You should break your topic to more detail. If you want to make a automated vehicle like that then you should ask the question how to drive the motor or what the hardware you should use to build this vehilce. LabVIEW is a programming language which help to communicate with hardware device.

    You should provide more information other than give a website and ask everyone read it.

  4. Thanks you for your example Crossrulz.

    I am a LabVIEW developer and a newbie with TestStand, so I would like to ask some question about the way we use the VI in the TestStand.

    In the first sequences Monitor, the Monitor.vi is called. There is one input which is "Sequence Context in". I cannot find the value for this number and as I understand it's a reference number. I don't know how this value is initialized?

    In the action "Send TERM Monitor CMD", you call the Monitor Queue.vi to send command to the Monitor.vi. One thing I don't understand is there is no queue reference or name queue is used here. How this queue can link to the queue runs inside the Monitor.vi.

    Because I only know LabVIEW so I think the way LabVIEW does. Please help me understand this.

    Thank you,

    Thang Nguyen

  5. Hi,

    I am working on a simulator project.

    I my project I need to simulate a high level sensor. The controller, I work with, has a 5 VDC output, named A. It connects to 4 parallel 10 K Ohm resisters R1, R2, R3, R4. There are 3 switches connect with R2, R3, R4 and this will be correspondent to low, mid, and high level. Another side of these resisters will be connect to ground. Depending on the switch status, the voltage will be drop at the port A. This is how real system works.

    I use compactDAQ series C 9172 for my simulator. I tried by using a Analog Output and feeding a voltage output to port A. It doesn't work stable with this solution.

    I would like to know if there is any hardware which I can change the resister programmatically? I thought about using a digital output to control a relay to open or close switch. That means I have to buy another 16 DO module which will cost $320 more. I would like to know if there is a better solution for this.

    I would highly appreciate your help.

    Best regards,

    Thang Nguyen

  6. Hi,

    The our test engineers can also interact with control based on the coordinator of the controls as Jeff say. But if we move the GUI, everything will be chance, so if I run the test on different day, this will be inconvinient.

    I finally find this topic at ni after reading about the link given by Dan:

    Calling LabVIEW VIs from Other Programming Languages

    http://zone.ni.com/devzone/cda/tut/p/id/5719

    Thank you for all your information

    Best regards,

    Thang Nguyen

  7. Hi,

    I would like to know if there is any way to access the controls on the GUI of application made by LabVIEW from other programming languages? I am working on building the applications for my company. Now other engineers from testing department asked me if there is anyway they can do some scripting which can access to the control on my applications. They use Quick Test Pro or some test tool like that. Usually this will be done with applications written by other programming languages or using TestStand. But our company doesn't have TestStand. So if you have any experience about this case, please give me some recommendation.

    I appreciate your time for reading and answering my question.

    Best regards,

    Thang Nguyen

  8. QUOTE (Mark Yedinak @ Apr 1 2009, 04:17 PM)

    Are the server and client running on the same machine? Do you have access to a network sniffer like Wireshark to look at the network traffic? Also, 100 ms can be a bit short in terms of network timeouts depending on your network topology. In addition, your wait on listener will only wait for 100 ms and then stop listening. You should have your server (the listener) be always waiting for connections and service connection as they come in. How large is the data that you will be sending? If you are sending large amounts of data you will not be able to send it all in a single packet and depending on what else is happening on the PC it could delay the transmission of the entire data set with the 100 ms window that you have established. Though you are timing out on the intial two bytes of data. Would it be possible for you to post your code?

    Thank Mark,

    I change to use share variable already. This is more efficient in my case.

  9. Hi,

    I need a solution to communicate between 2 lapview programs which need to provide a stable and robust connection status because the time is cirticle in my project. These two programs send and receive command and data to each other.

    I already tried with TCP/IP VIs but it didn't work well. The reason maybe be the result of currently one of my program using the TPC/IP to communicate with a CAN device though a TCP/IP virtual server. And this communication is interfered so either I lost signal on the CAN or my TCP listener got timeout.

    I wonder should I use datasocket in this case or not? In this case I have questions:

    1. Cause two program are write and read, so should I make them both publisher and receiver? Can I do that?

    2. To send out multiple variable should I use different URL for different variable?

    3. In this presentation example: http://zone.ni.com/devzone/cda/tut/p/id/5168

    They just use directly the DS Read and Write with the URL while in the example of LabVIEW DS Writer and Reader, they use the Launch DS server if local URL. Should I use this VI? And in case I need to read or write multiple variables, should I use each of this VI for each variable?

    Thank you for your time.

    Best regards,

    Thang Nguyen

  10. Hi,

    I would like to know if there is anyway to create and pass the reference of an object programmatically?

    I will tell a little bit about my current project.

    There is a main VI which is the main window control of the system. I have many different classes in the project but for this example I will talk about two main class which is the map and the vehicle. When the program is initialized the vehicle object is created first and the reference of this object is passed as an initialize data for the map object. The pass by reference is implemented based on the method introduced by Jim Kring. The process of the map object will read the property position of the vehicle to plot it on the map display. Now I have to develope my project to another level which is plot multiple vehicles on the map. These vehicle is generated programmatically. As I said, my map object has only reference of the initializing vehicle. I don't know how can I pass the reference of a new generated object to the object I had already created.

    I highly appreciate your time for reading and answering my question.

    Best regards,

    Thang Nguyen

  11. QUOTE (Mark Yedinak @ Mar 5 2009, 09:29 AM)

    What are you trying to accomplish? Are you asking if you can change the enum at run time or are you asking if it is possible to replace it programmatically during your development process? If you are asking about doing it while your application is running then the answer is no, you can't change it dynamically. If this is what you would like to do then you should use a ring control. If you are asking about doing it during your development then I believe the answer is that it is possible. I haven't done this myself so I can't give you the specifics for doing it. If you are doing this during development I would have to ask if you are using typedef's or not. Typedef's do propigate the control's changes to all code that use it.

    I am talking about during the software running. If the enum stay seperately I think I can handle it, but it's stay in a cluster and reference from subVIs.

  12. Hi,

    I would like to know is there anyway to replace an enum or it's content in a cluster programmatically. This cluster is used as a control on Front Panel as well as updated value by subVI though reference. I found a topic talking about replacing the content though the reference directly to the file of the control .ctl. I just wonder if it works in my case or not.

    Best regards,

    Thang Nguyen

  13. Hi,

    I would like to replace an enum control in a cluster programmatically. This cluster is on the GUI and is also controlled though reference. I would like to know if I can do that by this solution? What I worry about is the ref is pass to sub VI. When I modify anything in the cluster, the reference contant also change and need to be replaced. I still not try this but is this true I can change the control at the path and it will update immediately in the program? How it happen with excutable and install version?

    Thang Nguyen

  14. Hi,

    After having CLD and working for a time, I am thinking about going to next level with CLA. Cause this is kind of essay test so I know that my working experience is not enough. I would like to know which material I should read or is there any good resource I should reference to?

    Best regards,

    Thang Nguyen

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.