Jump to content

Jordan Kuehn

Members
  • Posts

    692
  • Joined

  • Last visited

  • Days Won

    21

Everything posted by Jordan Kuehn

  1. Definitely pursue a time and materials basis like ShaunR outlined. Make sure to have clear milestones with time and cost estimates (often our first milestone is purchasing all of the hardware) and then not only get a sign-off, but try to negotiate so that you get paid after each milestone. This serves two purposes, it helps keep you from fronting too much time or money, and secondly it is a very firm indicator that they agree that you have accomplished that milestone to their satisfaction (deliverable and actual cost). If you run into trouble down the road (total # hours differs too much from the estimate for example) you can point to that sign-off and payment as proof that you and the customer both agreed to progress on the project after that point. That being said, don't make milestones too small. Depending on the size and scope of the project you might look at 20-80 hours of work. You don't want to be spending a ton of time writing invoices and making them cut checks.
  2. Even simple FPGA code can take quite a lot of time to compile. There are various strategies for maximizing each compile, and minimizing the compile time. You can use a Windows PC to program all the cRIOs. If you can use the scan engine, you can get a simple to moderate level system working without too much pain. Adding the FPGA can add significant development time, especially if you have never programmed one before. Here is the NI development guide that is a good resource as you have some more detailed questions. http://www.ni.com/compactriodevguide/
  3. I was about to comment with the same thing about FTP not being enabled. I can't confirm the exact year, but I think fairly recently the FTP server is not even installed by default.
  4. That seems to be a question that would produce limited replies without the VPN caveat.
  5. In a similar application to the off-shore oil well (fracking happens in very remote areas on land) we've used the GSM c-series module from SEA and other 3rd party DIN rail mount modems (MOXA) via a VPN hosted by the customer's IT department. In addition to providing security and locking all other access down, the VPN gives us the ability to access the cRIO as if it were on the network and update software and such beyond just communicating via whatever protocol you've defined. Aside from that, most of our applications exist in a separate factory floor LAN with no internet access. That typically leaves us only concerned about locking the operator out of screwing with the system.
  6. I can see the benefit to this, but callback VIs seem to obfuscate the code greatly to me, as you mention in your disadvantages list.
  7. While perhaps not relevant for your applications, I am still quite intrigued by the loosely alluded to cross-platform nature of these "wires". If communication across platforms was as easy (and much safer than) using local variables I see a great benefit. One big hurdle with cRIO programming comes about when a host computer is needed. Some of the new platforms mitigate this need, but don't eliminate it. If I can run a (LV) wire from a cRIO to a host machine without doing any configuration and have a loss-less transfer mechanism implemented I would be quite happy. Sure I can do the same thing with streams (or any of the raw TCP communication methods), but they can be clumsy and need to be wrapped with auto-connect logic to handle real world situations. We use a high level language for many reasons, but abstraction is near the top of the list.
  8. Shared variables aren't loss-less unless you have some magic I don't know about. This seems to be a combination of NSVs and Network Streams without the additional configuration.
  9. To summarize, all the complaints I'm seeing are related to the representation on the BD. Is that accurate? To me this seems like an incredible concept if done correctly. Essentially a loss-less local variable that can communicate cross-platform from what I've gathered. As a final note, I think this subject deserves its own thread and this one can return back to highlighting the new features in 2015. Though it might be a pretty short thread then...
  10. Fab, This looks really cool, I look forward to digging into it. I haven't looked through all of the sessions next week, any chance you will be presenting it during one?
  11. Side note: I did not know this and reading this made me very very happy.
  12. No problem. I think that the Database Connectivity Toolkit should include a primer on ODBC that's easily accessible. This same issue drove me crazy several years back.
  13. http://digital.ni.com/public.nsf/allkb/E7984C0DA0F0E65086257694005B4CB7
  14. That's an interesting thing to observe. I'm not entirely certain exactly what that would mean about code I've produced for a customer, but I might look into this. I think it may describe a great deal about the type of application. I could see creating similar amounts of code for two different applications and producing very different results according to this metric.
  15. Look at the stop event condition and follow the logic
  16. When starting out with simple tasks, get a task to work with the assistant. Then copy it and open the front panel to convert it to a VI and poke around in the Block Diagram. Basically ready-made example code for your simple application which will help you understand how to make more complex operations.
  17. As usual hooovahh is more eloquent than me. Check out "find examples..." under the help menu for some of the referenced content. If you are looking for a quick and dirty FPS calculation my link will do just fine though.
  18. You could also buy him some reading glasses to see things clearly at full resolution and 100%.
  19. My apologies. Replace it with "overbearing rule enforcers". I agree more information is needed and the subVI is essential to answering the question. I just noticed a lot of hostility that seems out of place.
  20. No need to gang up on the guy or be rude. Forum nazis are almost as annoying as n00bs.
  21. I'm interpreting that you want to measure how long your loop takes to iterate. See the link below for a simple method for this. Let us know if you are looking to control the timing of the loop or something else. https://decibel.ni.com/content/docs/DOC-11078
×
×
  • Create New...

Important Information

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