Jump to content

Jeffrey Habets

Members
  • Posts

    193
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Jeffrey Habets

  1. Hi Jeffrey,

    My application is to log data on the host. I want to control the acquisition frequency too. The application I found in the FPGA courses are basic and for the one line handshaking one it appears to get blocked at one frame so I can't store the data in a file.

    My question would be what shoud I use to transfer the values from the cRIO to the host takeing into account that my process takes 2 seconds an it is cyclic.

    Regards

    Yannis

    I'm not sure if I understand what you mean exactly.. I take it that you just want to send data from your cRIO to your host and log it there. You are not controlling (e.g. sending setpoints) from host to cRIO are you?

    What you probably should use here is an RT program on the cRIO controller that has one DAQ loop for your acquisition and another parallel loop for communication with the host. Now, if you are using LV8 or higher, the comm. with the host could be simply done with shared vars. Otherwise you probably want to implement some basic tcp/ip communication here or maybe use VI-Server.

  2. It's been a while since I did cRIO (it was in LV71), but I'm sure I'm not the only one reading here..

    Just shoot..

    Hi,

    I see that the last post is kind of old.

    I am pretty new in LabView and i'm trying to use a cRIO and I have some isues to discuss. I just what to now if anyone's still wathing the topic.

    Manny thanks,

    Yannis

  3. If memory serves me right, I think you can give the sequencefile path as a commandline parameter to the operator interface (assuming you have an .exe made out of it). You can even use wildcards here to load multiple sequencefiles in the sequence files dropdown list.

    PS: Maybe another avatar would be more appropriate here.. Thanks.

  4. I think this is one of the main issues. I have dealt primarily with instrument control and data acquisition. Rather than objects I have independent agents that need to communicate with eachother and act on that communication. I see no real opportunity to gainfully implement GOOP here. Maybe I am missing something.

    Your agents fit very well in an OO-design.. They would become so-called Active objects, objects that spawn their own separate thread of execution using VI-server. I've used them on multiple occasions and it's a very strong concept.

  5. During my investigations I noticed that most GOOP techniques use a typedef enum control dropped into a data log file reference to form the class (object) reference.

    I am just wondering why use a datalog file ref? What makes it the preferred option over any other reference type?

    I guess the most important reason is that with this technique you can create unique references for each class. This way you won't be able to wire ClassA:Method1() to a reference returned by ClassB:Create().

  6. Hmmm, seems to work as expected here..

    You should make sure that the reference is a reference to your particular XControl type. If your reference is a generic control reference it's logical that you will only see the methods and properies that are common for all (X)Controls.

    You can easily create the correct reference by dropping a control ref. on your FP and then drag-and-drop the XControl on top of that to create a strictly typed reference for your XControl.

    Hope this helps.

    post-906-1147443149.jpg?width=400

  7. The documentation for the Dictionary library of the OpenG toolkit is generated dynamically. Show the context help for one of the library members and then click on the online help link to open the HTML help in your browser. For extra fun, click on the example links.

    This is pretty cool... :thumbup:

    For me personally, I'd leave out the Error in and out. We all know what they do and they just clutter up the documentation page. (Wish NI would do this too..) And maybe some nice headers for grouping inputs and outputs.

  8. I agree, it is not a good idea to edit the XML. I believe that these files are signed (similar to a checksum), so that LabVIEW knows whether they have edited outside of LabVIEW. If the signature is not valid, then LabVIEW will probably refuse to load the file. However, I have not tested this theory yet. :unsure:

    I actually edited a project file ones or twice because I needed a slightly different application and installer build and didn't want to lose the old ones and was to lazy to create complete new build specs. I simply copy/pasted the appropriete tags in the project file and edited the tags relevant for the naming of the build specs.

    This worked fine. I suppose if you stick with the schema for a lvproj everything is OK.

    Ofcourse it's always a wise thing to backup your project file before manually editing it. :)

  9. Hi,

    actually I was talking about the abort that takes place when a user stop a process from services, none of the events works for me (exit, exit?) not even CINAbort .

    cosmin

    Hmmm, you're right.. The Exit event only works from the taskmanager's applications tab, not if you kill a process from the processes tab. I guess that's equivalent to unix's kill -9 to unconditionally kill a process.

    I think that's a good thing btw. There always should be a possibility to unconditionally kill runaway or zombie processes.

    If you really don't want the user to shutdown your app that way, make sure he doesn't have rights to do that. Don't know much about Windows' user management, but I'm pretty sure a 'normal' user won't be allowed to kill a process that isn't started in the same user's context.

  10. I just asked if exist a simple method of detecting abort, if you got a VI that works as process in windows, when you stop the process or windows shutdown, the vi is aborted and any cleanup does not occur. so I had to do cleanup somewhere else and monitoring the state of VI at rapidly to do the cleanup before complete shutdown.

    cosmin

    You can use an event structure and catch the Application Exit event.

    If you use the filter event you can even prevent your app from exiting this way.

  11. Try a normal LabVIEW mass compile on those VIs directly - you may find that they don't compile using that method either. I had the same problem (but with some personal VIs) and it turned out that they had insane objects in them.

    Yes, probably the case.. I got another error, invalid file type on a .vi. Probably a corrupt file, haven't checked it yet.

    My suggestion would be to simply continue doing the mass-compile even if errors occur, so the process won't have to be started all over again.

  12. Thanx Jim,

    Cool tool...

    It choked on an error 43 in the Save:Instrument method though.

    Did a second run where I filter out the error and display the file where the error occurs on and found that the error occured (Thus far, it is still running) on:

    LabVIEW 8.0\resource\FrameWork\Providers\lvfp.llb\prefPage_FPEthernetBankConfiguration.vi and

    LabVIEW 8.0\resource\FrameWork\Providers\lvfp.llb\prefPage_FieldPointEthernet.vi

  13. ok, let's start a poll... how long did it take you to Mass Compile your code after upgrading to 8.0.1?

    It took me 1hr:45min... :clock: :P

    I can beat that easily.. :-)

    4hr:20min and the damn thing is still running..

    I must admit I have quite some toolkits installed but this is a real pain.. :throwpc:

  14. Any chance you are using the DeferPanelUpdates propertie in your application?

    I've noticed this behaviour too (in LV8) but haven't really investigated it. *I think* it has to do with nesting constructs like:

    MainVI->DeferPanelUpdates := true   MainVI->DeferPanelUpdates := true   MainVI->DeferPanelUpdates := falseMainVI->DeferPanelUpdates := false

    At least.. Preventing this does the trick for me..

  15. I use the GOOP Inheritance Toolkit from Endevo. It's commercial and does support inheritance.

    Big plus of their product is that they also have a UML modeller which works in close conjunction with the GOOP wizard. It has features like code generation from UML class diagrams to LV-code and reverse engineering from code to UML, which are real time-savers imho.

    The GOOP wizard btw is quite feature rich. Things like renaming class methods or entire classes, cloning methods and the class icon editor are al big time-savers for me.

    I haven't worked with any of the other options. Last time I looked at OpenGOOP closely there wasn't any inheritance yet though.

  16. The error message is as follows :

    ---------------------------------------------------------------------------------

    Error -2147217865 occured at Cmd Execute.vi->DB Tools Insert

    Data.vi->Solcelle.vi

    Possible reasons :

    Exception occured in Microsoft OLE DB Provider for ODBC Drivers,

    [MySQL][ODBC 3.51 Driver][mysqld-3.23.38-log]Can't open file :

    'solcelledata.MYD'. (errno: 145). in Rec Create - Command.vi-

    >Cmd Execute.vi->DB Tools Insert Data.vi->Solcelle.vi

    This is not a LabVIEW problem. The LabVIEW program obviously uses a MySQL database through an ODBC driver. The error you get is from the MySQL database service. It is unable to open the database table file 'solcelledata.MYD'. So maybe this file is corrupt or deleted.

    If the database is on a server somewhere, you might need to contact your systems admin.

×
×
  • Create New...

Important Information

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