Jump to content

bbean

Members
  • Posts

    252
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by bbean

  1. At least for the 1473R according to this: https://forums.ni.com/t5/Instrument-Control-GPIB-Serial/My-Basler-acA2040-180km-NIR-is-not-visible-in-NI-MAX/m-p/2402066/highlight/true#M59080 "The NI PCIe-1473R Frame Grabber contains a reconfigurable FPGA in the image path enabling on-board image processing. This means that the full communication between the camera and the frame grabber goes through the FPGA. It is then a major difference comparing to the other standard frame grabber without FPGA. "It means also that the camera will not shows up in Measurement & Automation Explorer." I'm guessing here but I think you have to create a new Flex RIO FPGA project with option for the card https://forums.ni.com/t5/Machine-Vision/PCIe-1473R-fpga-project/td-p/2123826 Maybe look and see if you can compile an example from here https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kIBdSAM&l=en-US ..\Program Files (x86)\National Instruments\LabVIEW 2018\examples\Vision-RIO\
  2. TCP is not free of pain either though. I've been on networks where the IT network traffic monitors will automatically close TCP connections if no data flows across them EVEN if TCP keep alive packets flow across the connections. For whatever reason the packet inspection policies effectively ignore keep alive packets as legitimate. We ended up having to send NO-OP packets with some dummy data in them every 5 minutes or so if no "real data" was flowing.
  3. You would have to create/send the packet header(s) as defined by RUDP in each data packet in LabVIEW on pharlap side by placing it before the data you send. Then you would have to send a response packet with the RUDP header(s) on the LabVIEW host side based on whether you received a packet out of sequence (or invalid checksum, etc). You would effectively be creating your own slimmed down version of TCP at the LabVIEW application layer. Quite a pain unless absolutely necessary.
  4. you could try installing pyvisa-py (partial replacement for ni-visa backend) on the rasberry-pi and see if it can implement remote sessions eg. visa://hostname/ASRL1::INSTR .It doesn't look too promising based on this discussion, https://github.com/pyvisa/pyvisa-py/issues/165 but it seems to indicate if you know the address and don't rely on the pyvisa-py resource manager it may work.
  5. This. I tested NXG for the first time at a feedback session during the CLA summit. So I was learning NXG on the spot in front of one of the NXG developers. When I would get stuck trying to figure it something out, the developer would ask how would you do that in legacy LabVIEW and I would tell him, then he would show me how to do it in NXG. My understanding was that the NXG IDE was designed to make the number of programming number steps more "efficient". Unfortunately this sometimes sacrifices the many years of muscle memory doing things in legacy LabVIEW. A bad analogy would be brushing your teeth with the opposite hand because studies have shown that ambidextrous tooth brushers clean teeth slightly better. It may be slightly better in theory but the pain of learning outweighs the benefits. Some of the things I remember being slightly different (annoyingly): Quickdrop functionality Adding a terminal on the block diagram seemed more tedious and defaulted to not showing the Control/Indicator on the front panel . WTF. While I'm sure the NXG team has received guidance/direction/development/feedback from very experienced insiders at NI, I walked away feeling like there was no way the internal NI experienced LabVIEW users were developing only with NXG on a daily basis by default. Otherwise muscle memory things like quickdrop would work exactly like they did in legacy LabVIEW. I think what needs to happen is Darren needs to un-retire from fastest LabVIEW competition and compete next May at NI-Week using NXG. That said the NXG developers and team leads were very receptive to my feedback and seemed genuinely open to making changes. Now whether that carries through to the end product or not we will see. I also saw some new IDE features (new right click options for instance) that made me think that makes sense and I can see that helping speed up development once I get used to it. If and when I use NXG I would like to see a checkbox in the options that says "maintain legacy front panel, block diagram and keyboard shortcut behavior as much as possible"
  6. thanks for all the feedback. its why i love this site.
  7. Is there anyway to do this without MAX? or a description of what happens when MAX executes the format? Unfortunately no Windows boxes are allowed in the previous mentioned "secure" area. So the wipe needs to be done without MAX. Once the cRIO is wiped it can leave the secure area and all normal NI stuff (MAX, RAD, windows) can be used. As someone told me, its the security policy it doesn't have to make sense.
  8. I know about the RAD. But I think my needs are similar viSci, because I actually need to "wipe" a cRIO before removing it from a "secure" area and then re-image it from the clean media.
  9. I need to image a few cRIOs in the near future. Have you had any luck finding details for restoring the cDAQ image?
  10. Do you have ASRL1 open any where else, say in MAX or another part of your program? Is it possible the CONSOLE OUT switch is enabled which will then use the COM1 port? https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9zxSAC&amp;l=en-US Edit: Just noticed after finally finding a picture of the 9045 on the NI Website 👾 that it doesn't look like it has DIP switches for CONSOLE OUT. So not sure if you can check in MAX to see if its enabled. <\rant> Its impossible to find anything on the NI website nowadays. Its gotten so bad, that I now wish they would just create one giant webpage for each product line (cRIO, PXI, etc) that has every single document in pdf format for each piece of hardware in alphabetical order in plain text. This BS of clicking on something and then having the website perform a search of the website is ridiculous </rant>
  11. Its just a hassle. I understand the risk reward decision. I just wanted to indicate Mads isn't a lone wolf.
  12. Currently exploring using some of these: https://www.acromag.com/sites/default/files/TT334_996h.pdf to condition the signal to an AI cDAQ module
  13. I confess I haven't dug too deep into this but based on the support note here, I'm not to optimistic: Thermistor Measurements Using the NI-9219 there is a 10K upper limit for resistance measurement (we have 10k thermistors...so the resistance will exceed this at lower temperatures) The NI-9219 has an unregulated voltage source that excites anywhere from 220µA to 420µA across the thermistor depending on its resistance 10k thermistor measurements seem like a pretty common item, not sure why NI doesn't have an off the shelf module/approach for this with cRIO/cDAQ Support note Snip--> " In cRIO and cDAQ, measuring thermistors can be accomplished by setting the NI-9219 to 2-wire 10 kΩ resistance mode. This will return a resistance measurement that can be scaled to temperature using the thermistor's scaling coefficients. DAQmx doesn't support thermistor measurements on all channels. On NI-9219 DAQmx supports channels _cjtemp0:3, but not channels ai0:3. If using this configuration, keep in mind the following limitations: The 2-wire resistance measurement configuration is easier to assemble than the half-bridge configuration, but it does not take into account measurement accuracy. The NI-9219 has a 10 kΩ limit for making 2-wire resistance measurements, which is too narrow for many thermistors. This is the first limitation. The NI-9219 has an unregulated voltage source that excites anywhere from 220µA to 420µA across the thermistor depending on its resistance (the excitation values for resistance mode can be found in NI-9219 Operating Instructions and Specifications). This could potentially affect the accuracy of some thermistors, because the current may cause self-heating errors. Refer to the thermistor datasheet to determine if self-heating will be an issue. "
  14. The thermistors we are using are very small and based on the experience of others on the project, current > 100uA causes self heating of the thermistor and sensor error. Ideally we run @ 10 uA source current
  15. Has anyone used cRIO to measure a bunch of thermistors? We have to add thermistor measurements to an existing cRIO chassis and I'm surprised to find out NI doesn't offer an out of the box solution for this. From what I've seen they say you can use the NI-9219 for thermistors up to 10k but the current would be way to high and would cause self heating.
  16. Sounds like a firewall issue. One side may be blocking the connection attempt. Not sure about linux, but a recent windows update made the firewalls a little more strict and caused similar problems for me.
  17. Ok if you said PXI I was going to say check the RAM type. I had a evil crash that appeared randomly on machines and after a long process with NI's help found that it was the RAM. NI sells "certified" RAM for the their PXI's and I will always buy that in the future even though its a complete ripoff. Back to your issue. Have you tried the Desktop Execution Trace Toolkit to check for reference/memory leaks yet? I wouldn't be scared about going under the hood of the db toolkit, but I wouldn't go there quite yet.
  18. what kind of hardware is the application running on ? eg desktops, rackmount computers, pxi racks?
  19. Question regarding the Notify (state).vi in the Observer Register Palette. Underneath the hood, the code looks like its sending a message every call (vs only when the data changes). Is that correct?
  20. Ok makes sense.. I had some more time to test today. I tested the following and they seemed to work: TestClient with Async connection.vi (LV2014)--->LAN--->TestServer.vi (LV2014) TestClient with Async connection.vi (LV2014)--->LAN--->TestServer.vi (LV2016) TestClient with Async connection.vi (LV2016)--->LAN--->TestServer.vi (LV2014) One potential "bug" in the package. When I click "Show Example" button in VIPM. It opens the following path: ...\examples\drjdpowell\Messenging\TCP Example instead of what I imagine the intent is to open: \examples\drjdpowell\Messenging Also when I search for Messenger examples from the LabVIEW help window, the Messenger keyword doesn't appear anymore and I can't locate the examples from LabVIEW help. Thanks for all your help!
  21. I tried a quick test of the new build only traversing the local host from client to server and it worked well. I will try a more extensive test across a local network tomorrow. I need to update VIPM to 2017 on all the machines to get the package installed. The ping feature of the example is nice because previously when I set up a test with only server-->client messages, if you pulled the network cable the TCP actor on the client side wouldn't timeout or error so you didn't know something was wrong. Quick question, is there a reason you decided not to implement the ping and "keep alive" features as an option in the TCP actor itself. Were you worried it would interfere with overall throughput from the TCP Actor's callers?
  22. Replacing the query with a send and wiring in the reply address worked. I just temporarily created an asynch create VI (without dynamic dispatch to test). If you are updating the RemoteTCP Messenger class, can you expose (make a datamember of the class) the timeout value the Actor uses during communication to the Remote Service.vi? It would be nice to be able to adjust this timeout if necessary. Thanks for your help
  23. Thanks for the mod Sorry for peppering you with questions, but I have another one. I'm trying to connect to a remote server that may or may not be there. I want to have the capability to attempt and retry the connection in a non blocking fashion (since it may not be there at all). Since the default timeout is 5 seconds and timeout is not exposed in the Remote Service.vi a synchronous approach can hang for a long time. I tried creating an asynchronous remote connect lvclass in the attached example (mods your TCP client server example) that inherits from the Action.lvclass in your library. I am able to launch the remote service ok and establish a connection in the TCP Client Actor, but when the Async Execute.vi finishes, I think the messenger queue that was created during execute "goes bad" or is destroyed when the Async Execute.vi goes out of memory. Did I miss something simple or is there a better approach? Thanks for all your help, Brian TCP Control Client Asynch Launch (Messenging).zip
×
×
  • Create New...

Important Information

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