Jump to content

Tim Erickson

Members
  • Posts

    40
  • Joined

  • Last visited

Everything posted by Tim Erickson

  1. I use a state machine that has two parallel loops in the meat of it. If the connection is lost, it will attempt to reconnect on a separate port. The code for the connect is in separate states of the state machine. The screen shots show the cRIO TCP Server run state and the HMI TCP Client run state. Let me know if you have any specific questions. I am limited to what code I can share but am can at lease offer screen shots.
  2. Here are a couple of suggestions: 1) Create an About VI that has a version number embedded in it. When called it supplies a version number. It would have to be updated when you update your application. 2) Put a version number in a configuration file that can be either opened manually or retrieved using a VI. 3) You can enter a version number in a built exe. 4) You can enter a version number in an installer. 5) Put the version number in a Help\About pull down menu choice (in the case of an HMI) 6) Use the revision number in the title bar of the top level VI.
  3. You keep getting a reference to Meetbox FIFO but never close it.
  4. I am using MySQL and LabSQL and it works great. No toolkit required. http://jeffreytravis.com/lost/labsql.html
  5. Does the Scan Engine Advanced IO access API work with a remote Ethercat Chassis?
  6. You have to use User Defined IO variables. There is a limit on how many you can use. See: http://zone.ni.com/devzone/cda/tut/p/id/10618
  7. Working on a cRIO application ...

  8. This is a great set of code for logging data from a cRIO to a mySQL database. I am running a 99 field insert query in a 250 msec timed loop, the query only takes 2 msec to execute.
  9. If the application requires a piece of hardware, such as a DAQ card, you can use its serial number.
  10. I would look at the data logging examples first. That is where I started. 1) If you need to log data continually: Set up a real time FIFO. Put data into the FIFO in your data acquisition loop. Remove data from the FIFO and write it to a file in a separate loop. Log the data to a USB memory stick but you could also send the data to a host computer over Ethernet. OR 2) If you need to collect data at a high rate for a short period of time and then save: Set up a state maching that looks for a trigger. When the trigger is detected change states and to collect data for the preset time and then save. I ended up using 2) above. We are looking at impact data resulting from the collision of two locomotives.
  11. Great! When will native OO be available for cRIO? I am currently using 8.6.
  12. Use Windows Performance Monitor. Select "Process" in the Performance Object control. Then select "Page File Bytes" in the Counters List control. Then select "LabVIEW" (or the name of your LabVIEW executable) in the Instances List control. Add this to the graph and watch it over time while your vi is running. If graph trends up, you have a memory leak. If you do have a memory leak, look for instances where you open a reference without closing it over and over (queues, vi ref's, notifiers, etc.). Tim
  13. Hi All, I have recently been exposed to a project that used a dSpace controller, Simulink, ControlDesk, and some other dSpace toolkits. Do any of you have any experience using these products as well as LabVIEW and NI hardware? What are the benefits/drawbacks of each? Just trying to educate myself! Thanks!
  14. Tim Erickson

    MiniNet

    I posted this in the LabVIEW section but am duplicating it hear. Hello, Does anyone have a LabVIEW driver for MiniNet? MiniNet is a communications protocol used with B&R PLC's over RS-485. Thanks!
  15. I responded to a similar question on the NI forum: http://forums.ni.com/ni/board/message?boar...ssage.id=209642
  16. If your application requires a DAQ card, you can use its serial number as a unique identifier. Pros: Harder to change than the hard drive serial number. Can't install your application on another PC without taking the DAQ card with it. Cons: Will need a new key if the DAQ card ever needs to be replaced.
  17. Hold the CTRL-key down when you have the painting tool selected and it changes to the get color tool. Good when you are matching colors in different controls or indicators. Hold the CTRL key down, click on the object you want to match in color, release the CTRL key and click on the object you want to color.
  18. Hello, Does anyone know how to launch a silent installation of DAQmx from InstallShield? With previous versions of DAQ you could use the MSI execute function but the DAQmx installer appears to have a different architecture. I have tried to install individual msi's on the DAQmx CD but seem to be missing something. Is there a robust way to determine exactly what all msi packages have to be installed? Thanks!
  19. Thanks, I appreciate your response. You describe very well what is happening, I hope it will be of benefit to others as well as myself. Tim
  20. Try this. Download File:post-2002-1147105371.vi Make sure you have the .Net Framework 1.1 and the Hotfix.
  21. I am using a similar approach in LabVIEW 8 and am also getting a "1003" error. Here is a thread regarding that issue: http://forums.lavag.org/index.php?showtopic=3136 The error occurs if a vi in my plugin and the main executable both call a vi that was from vi.lib. I think it has something to do with the fact that the vi's in vi.lib are now bundled together in locked project libraries. I can open the plugin vi without any errors in development but get a broken arrow in runtime. The error message is attached when I click on the broken arror in runtime.
  22. My application is intended to be run on a computer with only the RTE installed. I can create a plugin llb out of my vi's using the Build Specifications in LabVIEW 8. I included my user.lib vi's but not the vi.lib vi's. The main application was built from another LabVIEW project into an executable. It uses some of the same user.lib vi's and vi.lib vi's. The main application executable can call vi's in the plugin vi successfully as long as the RTE can find the vi.lib directory. I made sure it could by copying the entire vi.lib directory into my application directory. I make the following conclusions: 1. If any vi.lib vi is in a plugin vi and used by the main program executable, a "1003" error occurs (vi not executable) when the main application tries to connect via the vi server to a vi in the plugin llb. 2. A user.lib may be in a plugin vi (and thus in the plugin llb) and used by the main program executable (and thus in the executable file) without any errors. 3. If vi.lib vi's are not included in either the plugin llb or the main executable, the RTE must be able to find vi.lib. I tried using my applications ini file to point it at the vi.lib directory in the LabVIEW directory but could not get that to work. I had to copy the entire vi.lib directory (parts of it may have worked too but figuring out what all to copy is time consuming) to my application directory.
  23. I am using LabVIEW 8 and am building an application that will use a "plugin" architecture. There will be a main program built into an executable that calls sub vi's that are in llb's. Some vi's in the llb's will call DAQmx functions, others will do calculations, etc. Some math functions will be done in the main program too. The problem I am trying to address is how to deal with vi.lib vi's that are used in the plugin llb vi's and the main program. For example, I use Mean.vi in one of the plugin vi's as well as in the main program. Where should Mean.vi be stored? A name collision occurs if it is in more than one location (i.e. in a plugin llb and the main program executable). This can get very complicated if many vi.lib vi's are used in the plugin llb's and the main program executable. How can I distribute vi.lib vi's that are required for my application to run? The application builder is fine for simple distributions but breaking up the application into several modules (llb's) that have functions (vi's) like a dll has some great advantages. As side issue, does anyone know of a way to assign a version number of a llb file that is visible from its properties window in Windows?
  24. Here is a running average VI (LabVIEW 8.0, but would work in LabVIEW 6 and 7 too) that allows you to change the size of the running average array. It is written for an input of type double but can be changed as needed. Also, it is reentrant so it can be used multiple times in the same application. Comments are welcome. Download File:post-2002-1144359314.vi
×
×
  • Create New...

Important Information

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