Jump to content

Thang Nguyen

Members
  • Posts

    295
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Thang Nguyen

  1. QUOTE(dwisti @ Apr 30 2007, 06:01 PM) Thank you for your answer. You are right, I intend to use the MODBUS/TCP 2XV9 450-1MB00
  2. Hi, Could you please tell me how to work with timer if we use GOOP? For example, I want to run a pump for 5 sec. At the same time I have to do data acquisition. I have a process VI run at the behind to read data already. But I don't know how should I work with the timer, what is the best template for this case? Thank you so much, Thang Nguyen
  3. Hi, I have a project working with S7-300 PLC of Siemens. The requirement is reading out data inside the PLC using Ethernet. After doing some research I have the 2 options: Modbus TCP/IP and OPC server. The price of modbus TCP/IP for PLC is about $3,500.00 and the price for OPC is about $550.00. This is the reason I choose OPC protocal for this project. With OPC server, I have two options: shared variable and data socket. I have still not worked with both of them, so I don't have any experience about it. Do you have any recommend for em, which one I should use? Thank you so much, Thang Nguyen
  4. Hi, Finally, I made it run. Actually I combine the example of Jim Kring, name queue of Tomi, and the solution to pass data in the GOOP Developer of Sciware. You are awesome :worship: . I am still studying. Could you give me any recommend to make it better? Highly appriciate your help. Thang Nguyen QUOTE(Tomi Maila @ Apr 27 2007, 12:04 PM) Hi Tomi, I want to post the screenshots, but there are two many VIs in this project, so I don't know which should I upload. I will attach here some important screenshots. 1 is the main GUI 2 is create VI of the class instrument. 3 is the create VI of DAQ control, which will do the logging. 4 is the launch process VI 5 is the read data VI which read the current variable of the class.
  5. @Tomi: Thank Tomi, I finally make the process VI run. I did use the name queue to get the reference to the queue. I attach here my code. But I still have the issue with reading the variable with the class. I have the question in the topic Refactoring the ReferenceObject example in LV 8.2 http://forums.lavag.org/index.php?showtopic=3788&st=30of Jim Kring, and I am still working on it now. Currently, this process can only read one time, because it can not get the data of the channel anymore. It use the queue and it can only get the data for one time only. Hope you can give me some idea about this issue and advice how to make my code better. Thank you everybody, Thang Nguyen
  6. Hi, This is the first time I work with LabVOOP and call danamically VI. There are some issues I don't know how to solve. I attach here my test classes so you can run it. This program works with the simulator DAQmx. I have two classes. One is Instrument class. This class provides the function read from instrument. In this case it is DAQmx simulator. The second class is DAQControl. This class has a process VI which will be call dynamically and run parallel with the main VI. This VI and the remaining of the class transfer data by queue. I have problem with making this process VI run and transfer data to this VI. I hope you give me the solution. Appriciate your time for reading and answering this question. Thang Nguyen
  7. Hi, Thank you for your answer. I think my problem is now not at the multiple instances of the class. Because I try to use the third example of Jim Kring to implement my application, then there are still some issues with this example. I use the sciware GOOP before, so I am still affected by the old habit.
  8. QUOTE(Jim Kring @ Aug 19 2006, 08:09 PM) One of the problem I met when I work with this pattern is I can only get the variable of the object one time. In the meaning of an object, it's wrong here. I think we should be able to get the value of variable whenever we want without update these value. I am still learning, so maybe I say wrong. Please don't mind give me recommendation. Thank you, Thang Nguyen
  9. Hi Tomi, I don't know where to put this question to ask about the LabVOOP, so I put it here. Do we have to set anything so I can use multiple instances of one class? And is there anyway to check the exit of those class? When I use GOOP, I have the inspector, which give me the feature to check the status of each class. I thing there will not be that tool here, but I hope there is away to check this information. In my project now, when I try to create multiple instance of one class, it hangs at the create VI after the first loop runs. Should I set all of the VI in that class reentrant? I try to set it, actually, but it still stuck there. Waiting for your reply. Thank you Thang Nguyen
  10. QUOTE(SciWare @ Apr 18 2007, 10:18 PM) Thank you so much, I forgot about it . One of the problem I meet with LabVOOP is I can not copy the class. The class objects and the icons in each VIs do not change automatically.
  11. QUOTE(Pablo Bleyer @ Apr 18 2007, 03:12 PM) There are some issues I met: + Link to external files such as call by reference VIs, or configuration files. + Link to old VIs when I build the new VIs by copy from another VIs. I don't know weather this can help but you can use the example of Kurt here: http://forums.lavag.org/Question-about-making-the-Executable-file-with-GOOP-t7218.html' target="_blank">http://forums.lavag.org/Question-about-mak...GOOP-t7218.html
  12. QUOTE(Nullllll @ Apr 18 2007, 01:39 PM) As Jim Kring said, you go to Files/VI properties/ select Category -> Windows apperance and "Set your subVIs to open front panel when called and close afterward if originally closed" Then put this VI inside the case structure. When this VI is called, it will open automatically.
  13. Hi, I am currently working on a project which requires both data acquisition and control the system. Because I don't have experience on the control side, so I don't know how to make a good architecture for the program. That why I need your advices. In my past projects, data acquisition, in the main program, I have two loops. One is get the event from the GUI, and the second one is processing the events, doing the sequential tasks. I work with OOP (GOOP & LabVOOP), so all of the tasks as logging and displaying are done by those objects. In the main program, I create all of the necessary objects, and then get the references from the controls on GUI. Then in DAQ process VI, I will call the Read VI of each instrument then pass the data to the Display object, Logging object. (I learned this from the GOOP example ) One of the issues of this architecture is I have to get the references of all the GUI and pass to Display object form the beginning then in the Display object, the process VI just pass the data to these references. This is not really flexible. If there are some events happen when the process run, I can not update those references immediately. I have to stop the processes, then change the input references. For example, I have some signals which are displayed on numeric indicators, and I have a check box for each signal to select weather it is plotted in the Waveform Chart. First, if I select 3 channels to be plotted, the display object will get the information though the initialize stage to display in the process VI. But if I want to select more channels, I can not update in the run-time, or I have to stop the process, and then update it. Could you give me some recommendations? I highly appreciate your time for reading and answering this question. Thang Nguyen
  14. Hi, I am now working on a project with LabOOP. After familiar with GOOP, I find a little bit difficult when working with labOOP. For example, I want to create a seperate thread running to acquire data as the process VI in the GOOP. But here, I think I have to do it myself. Is it right? Do you have any pattern to continously acquire the data while the main program can run another task? Or should I make it like GOOP? Thank you, Thang Nguyen
  15. Hi Kurt, I found the bug which doesn't allow the .exe file run. That is the link to the old source from which I copied. There is no hint to find this problem unstill I copy the old source to another driver. Thank you very much for your support. I find your steps to build .exe is really helpfull. I highly appricate your help with detailed example. Thang Nguyen
  16. Dear Kurt, Sorry, but I still have trouble with these call by ref stuffs :headbang: . I have some questions. + First, I tried to build the plugins.llb like you which only include the create VI which will be call by ref VI. But in my plugins.llb, there are only these create VI. Why in your plugins.llb there are also other VIs? Beside that, I built exactly like you. The program can read in the configuration file already. There are just remaining problem with call by ref. + Second, this is one of my error: Is it the problem with path?. My program runs well, so there is no problem with VIs. Error 1003 occurred at Open VI Reference in weaDataIO.CreateByRef.vi->WEA Create IO FP Objects__wea.vi->DAQ Main Screen.vi Possible reason(s): LabVIEW: The VI is not executable. Most likely the VI is broken or one of its subVIs cannot be located. Open the VI in LabVIEW using File>>Open and verify that it is runnable. VI Path: D:\My Project\Bin\plugins.llb\weaDataIO.FieldPoint.Create.vi + Third, this is another error, about the queue in GOOP Error 1 occurred at Enqueue Element in weaDAControl.Start.vi->DAQ Main Screen.vi Possible reason(s): LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @. ==> This is the VI start the process of object. Waiting for your reply.
  17. Thank you very much for your help. I think I should tell about my file structure. I think that it may help. + "GUI" directory to store the GUI VIs. + "SUBVIs" directory to store the sub VIs (which is not GOOP). + "GOOP" directory to store GOOP object. + "DB" directory to store configurationg file. + "DataFiles" directory to store logging files. I want to know beside the llb from GOOP. Do I have to add another directory when build the .exe file? Thank again. Thang Nguyen
  18. QUOTE(SciWare @ Apr 3 2007, 06:20 PM) Hi Kurt, This is my remaining error when running the .exe. I built the .exe with only specificing the call by reference VIs only. I hope you can understand something from here. I have the same error for another object which acquise the data. Error 1013 occurred at Invoke Node in weaLogger.LaunchProcess.vi->weaLogger.New.vi->weaLogger.Create.vi->DAQ Main Screen.v Possible reason(s): LabVIEW: Cannot load front panel. The front panel for D:\My project\My Application\WEAapplication.exe\weaLogger.Process.vi could not be loaded but is required by this property or method. Waiting for your reply.
  19. I have a small problem with this. In one of my GOOP VI, I use a VI from OpenG. Then when I build the llb files, it is added automatically in the llb. Now, when I build the .exe file. I meet this error: Polymorphic VIs cannot be used as Startup/Exported or Dynamic VIs for applications or shared libraries. C:\Program Files\National Instruments\LabVIEW 8.2\user.lib\_OpenG.lib\array\array.llb\Sort 2D Array__ogtk.vi so I can not build the .exe file. Please tell me the solution. Thank you, Thang Nguyen
  20. Hi, @ Kurt: Please tell me more detail how did you build the llb for GOOP Developer object? In each your llb example, I see there are alot of VIs. Do we have to build the project for all of files? I did not see your project in the directory. It makes me confuse. @ Tomi Maila: I have just try to add the directory of the object as you say, but in the GOOP, there are some templete VIs still not finish. The exe builder can not run. How about another sub VIs?
  21. QUOTE(Aristos Queue @ Apr 1 2007, 12:35 PM) Thank you, it makes problem simpler :thumbup: .
  22. QUOTE(tcplomp @ Mar 30 2007, 03:45 PM) I solved it by use the read queue status. If it returns 1 I will make it 0 . Otherwise, I will delete it. I don't know this is a good way or not? The queue is used relating to many VIs, so I can not upload it . It's used to send data from the process of acquisition VI to logging VI. Thank you for your help again. Thang Nguyen
  23. QUOTE(Ben @ Mar 30 2007, 02:36 PM) Thank you, I also think about the case the queue is destroyed, but I did not destroy it. The VI that created the queue runs only one time at the beginning of the program. And when the program exit, I destroy the opject in the program. Then, I intend to flush and destroy the queue, but it's not work. Is there anyway to test if there is existing the queue in the memory or not? If it's already destroyed, I don't need to destroy the queue .
  24. I has just finished coding a project with LabVIEW and GOOP. Now I want to make executable file for this project. My friend told me that I just need to add the VIs created by GOOP which is called by reference in to the project, and add it to the Dynamic VIs and Support Files. But when I finish building the Exe file, and when I run the .exe file, I met some error about looking for some VIs relating to the Process, Queue. I don't know which files I should add to the project or I should add them all? Thank you in advance for you time of reading and answering this question. Thang Nguyen
×
×
  • Create New...

Important Information

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