Jump to content

Tim_S

Members
  • Posts

    873
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by Tim_S

  1. Do you have enable debugging turned on when you compile?
  2. Just to point out to you, we do expect you to do homework for yourself. We're willing to advise. You'll get more help if you post a VI where you've tried to solve the assignment.
  3. I suppose all of them is out of the question? No, huh? Well then a quick wish list for me... TS3364 - Standard and Nonstandard Inter-Thread Communication TS4987 - Real-Time Analytics and Decision Making With Big Data TS3237 - Everything You Ever Wanted to Know About Network Streams TS3435 - Create Robust Applications Quickly With the Recommended LabVIEW FPGA Workflow TS2879 - A Dataflow Approach to Object-Oriented Programming TS4318 - LabVIEW OOP: Computer Science for the G Programmer TS3360 - Big Analog Data Analytics, Diagnostics, and Advisory Generation for Condition Monitoring TS4497 - Data Communication Methods for Embedded Systems My appreciation for video taping (last and) this year NI week. The slides are interesting, but nothing like having the live presenter.
  4. This sounds like a homework assignment. If so, people are willing to help with technical questions, but will not do the assignment for you. Posting what you've worked on so far will get you more help as people see you've at least put in some effort. The conditions should become apparent if you draw out your state diagram (http://en.wikipedia.org/wiki/State_diagram).
  5. Do you have the drivers and run time engine installed on the second PC? Have you tried creating an installer instead of just copying?
  6. Hadn't thought of using a FIR filter. I bench marked a mean method and your FIR method. The FIR method was ~8-9x faster on my system than the mean with standard for loop, and the FIR was ~2-3x faster with the mean method for loop set for parallelism.
  7. Something is turning the bit off. My recommendation is to look into what is turning the bit off. It could be you're writing a zero to the register incorrectly. It could be the torque tool turns off the bit on its own (I've seen this with drives where external communication is used to set internal bits and both bits are named the same). Are there any "keep alive" signals that need to be sent?
  8. The Arduino, by itself, is pretty good. I found the Arduino kit + manuals to be about the equivalent of the old Radio Shack kits (do they still sell those?). Most of the how-to/tutorials on the Arduino website look to be at the same level. The LabVIEW student edition, by itself, is available at Studica (http://www.studica.com). I believe you're supposed to be a student to order from that site where as I don't see the same restriction at SparkFun.
  9. Dynamic dispatch can have an inheriting class (child object) override the VI (http://en.wikipedia.org/wiki/Method_overriding). Static dispatch prevents override by the inheriting class.
  10. You could put in a small delay in your loop (say, 100 msec) and check if 15 seconds has elapsed to run your SQL query.
  11. The customers I've worked with (mainly automotive) want a system that has a green light for a good part, a red light for a bad part, and the part-to-part must be under the cycle time. The metrics of performance are on-time and under budget. The code should always be maintainable as this will always help out the next person to look at the code (even if that person is the one who wrote it in the first place), but being the last pole to go up in the tent forces trade-offs that can include breaking-even on a project.
  12. Would it be better to have the 'top level' VI with the subpanel handle remove/insert for the subpanel (would require VI reference at top level) and then send a message to the parallel VIs as to who is active?
  13. hooovahh has a good example. I think you'll need to monitor state between loop iterations as well. For example, the integration would start when the digital goes high in one read of your data and then continue into the next read until the digital goes low in a read N iterations later. You'll need a shift register to hold the state (don't forget to initialize the shift register), which might be as simple as a boolean for this. If you need more than two state (integrate/don't integrate), then my preference would be to use an enum made into a type def.
  14. OK, the way you've set up the data acquisition it will use the sample clock from the analog input to also acquire the digital input. In other words, a digital input sample will be taken every time and at the same time that an analog input sample is taken. You've also started the digital and analog input tasks such that the two will start together. This means the analog input and digital input are synchronized in time (e.g., the 1000th sample taken for the analog input was taken at the same time as the 1000th sample of the digital input -- this is the array index referenced). This is all good as it makes what you're looking to do easier. Looking at your code, are you looking to perform the integration on "live" data (as you collect it) or are you going to post-process the data (after you've collected all the data)? I would recommend something different for live versus post-processing.
  15. Are you having trouble finding the array index where the transition occurs or the timestamp of that index? If the array index for the transition, a search 1D array for a true/false would give you the index. You 'd need to use the results for the search for the true as the start index for the false. For finding the timestamp... If the analog and digital data acquisitions are synchronized, you don't need to find the timestamp; just use the index. If the data acquisitions are not synchonized, then the timestamp would be the (index * dt) + t0, and then (timestamp - t0) / dt on the analog side to get back to an index.
  16. Have you tried doing the same thing as changing the color in an image, but would use the Hilite Color VI instead of replacing with green? (reference: http://lavag.org/topic/18220-changing-colors-in-a-specific-part-of-image/ )
  17. If you're using the factory pattern... I expect you'd have flags in the object. The toString function would be an overloaded VI. However... this looks like the example for a decorator pattern. An example of both is at: https://decibel.ni.com/content/groups/large-labview-application-development/blog/2012/01/17/object-oriented-design-patterns-for-labview-that-can-make-your-life-easier
  18. That's a fairly vague description. It would help people if you had a sample image with example of what you're trying to do.
  19. This will also happen if your executable uses a packed library. I've not found a way around that other than creating a splash screen that dynamically loads the section of code using the packed library.
  20. It's difficult to advise something like that without seeing the front panel.
  21. It depend on the intent of the interface. Configuration, applications with multiple windows, etc., get a File->Exit in the menu. My applications that run as services have a icon in the system tray that can be right-clicked to exit the application, but any pop-ups have a close only. One application that is intended to fill the window and does not have a title bar or menu does have a "computer power" icon in the lower corner that is used to shut down.
  22. I've found the manuals for the Modbus addresses to be invariably wrong (I've even had a technical rep tell me this). The addresses may be correct internally, but externally they can be 1 or 2 addresses different from the published. I also have run into the address published needed x40000 added to it to work. I recommend contacting the equipment supplier and picking their brains about how their product works, and prepare to search around on your own. A little routine that checks for a known input pattern (e.g., bits 0, 2 and 3 are on and the rest are off) can help hunt-and-peck the correct address out.
  23. Start with a TCP Open Connection followed by a TCP Close Connection (Modbus listens to port 502). If you can get that working, then stick the VI "MB Ethernet Master Query" in between the open and close. After that, you can put a while loop around the MB Ethernet Master Query. After that it is integrating the bit of code into your larger application.
  24. Hrm... it looks like you need an index array in the data from the query. Also, is the string stored as unicode in the database?
×
×
  • Create New...

Important Information

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