Jump to content

LogMAN

Members
  • Posts

    655
  • Joined

  • Last visited

  • Days Won

    70

LogMAN last won the day on January 31

LogMAN had the most liked content!

5 Followers

Profile Information

  • Gender
    Male
  • Location
    Germany

LabVIEW Information

  • Version
    LabVIEW 2019
  • Since
    2008

Recent Profile Visitors

10,639 profile views

LogMAN's Achievements

  1. I agree, without any code it is difficult to explain how your particular VI works. That said, when using DAQmx you can just define the sample rate of your task and request the desired number of samples in order to achieve the desired loop time. Here is an example that reads a voltage from a channel at a rate of 1000 Hz, 500 samples at a time. The read function is blocking, so the loop runs at exactly 500 ms intervals. Timing Example.vi
  2. There is no way to change the scope for elements inside a cluster. You can only hide them on the front panel. Your solution to unbundle the private cluster and bundle the public cluster is the best way to hide internal complexity. If you just want to omit certain parameters without explicitly unbundling/bundling, you could also serialize to and from JSON. Of course, this comes at a performance cost. Note, however, that this only works if the element names are exactly the same. Here is an example using JSONtext Convert Clusters using JSONtext.vi
  3. It is actually much faster on my machine. Here are a few results: @Łukasz Fast solution: ~30 µs @cordm Case 1 (really slow): ~403 µs Case 2 (good performance and readability): ~54 µs -- output is wrong, see below. Case 3 (): ~235 µs Case 4 (original solution): ~30 µs Case 5 (LV200000_BLASLAPACK.dll): ~14 µs Case 6 (LVBLAS.dll:BLASCopyVectorH): ~16 µs -- Windows 11, LabVIEW 2020 SP1 (32-bit) This code actually truncates the last value because the length of the source array becomes odd. Here are two possible fixes. The second one is slightly faster for me. 1) Append the final element: ~60 µs. (slightly slower than before) 2) Rotate the string before conversion: ~42 µs.
  4. Probes on the top-level diagram of the parallel For Loop simply show no debug info unless debugging is enabled. Any subdiagram will do the trick.
  5. No. The image shows how to assign multiple event sources to a single event case in the Event Structure. You would have to create a custom user event and handle it in another event case to be able to do what you describe. It is just not a good solution for your particular usecase.
  6. Yes. One event can be triggered by as many buttons as you want. Technically yes but this is bad design because it would have to go through the UI thread, which is super slow. There are more robust ways to do that. Please take a look at the "Continuous Measurement and Logging" project template that ships with LabVIEW.
  7. You should find the CAN palette under Measurement I/O. That said, NI CAN is only for legacy CAN hardware. For newer hardware, NI XNET is the way to go: NI-XNET CAN, LIN, and FlexRay Platform Overview - NI Edit: Forgot to mention NI Example Finder, which includes several examples on how to use the API (via Help > Find Examples).
  8. Not sure if this is relevant but there appears to be an issue with the file paths when loading the script node. The debugging window is displayed when placing the node on the block diagram (notice the unreadable characters in the file extension): It often results in a crash but when it doesn't you get another debugging window when executing the VI: It also reports the same error code as the one mentioned above: This is running on Windows 11 using LabVIEW 2013 (32-bit) and Python 2.7 (registered in PATH) with the latest version of LabPython from VIPM. msvcrt.dll is available in SysWOW64 and System32 (part of Windows). Not sure what causes the issue but at the very least it doesn't appear to be isolated to Windows Server 2019 🤷‍♂️
  9. Your image is broken for me because it resides in your gmail account. Can you attach it directly to your post? Did you add Python 2.7 to the PATH environment variable? Also make sure only one version is added to PATH, otherwise it may lookup the wrong version. This was the reason for me in the past.
  10. Perhaps diagram zoom could be utilized or the change could be displayed in an overlay (or both combined)? For example, there could be an icon to indicate that Nigel has a suggestion: When hovering the icon, it could display the suggested diagram in an overlay from which I can choose to apply them: Suggestions could also be displayed on subdiagram level, depending on the scope of the suggestion. For example, Once applied, the diagram grows to fit the new content.
  11. Welcome to the forums 🎉 I haven't really thought about it as this was the first time I learned about Nigel (never thought anything like that is even remotely possible in LV). Still, I'm familiar with GitHub Copilot and Visual Studio's IntelliCode, which have great IDE integration. What I'm looking for is not so much an AI that writes my code (because I know how to do that), but one that accelerates my development process by suggesting changes in the context of my code. For example, to predict what I'm going to do and provide hints in the form of grayed-out suggestions I can simply accept by pressing a key (tab-driven-development 😉). Things like: When I place an "open connection" function, it suggests the corresponding "close connection" function. When I place several methods of a class or VISA or DAQmx, it suggests how to order them in a sensible manner (open, read, write, close). When I connect the terminals of a VI, it suggests to connect error wires as well. When I place error terminals it suggests adding an error case structure. Of course, there are more specialized tasks where a smart AI would also be really useful: Creation of driver libraries, just like your example from importing a PDF to generating code. Configuration of CLFNs Beautify/Cleanup my block diagram Suggest changes when upgrading to a newer version of LabVIEW Suggest icons for my VIs 😍 Derive VI descriptions from code Apply changes to a set of VIs (i.e., renaming them) Point out mistakes in my code (missing cases, unhandled errors, etc.) That's awesome. I hope we can play with it soon
  12. 1:02:00 "... but NIgel can control your physical hardware!" *terminator theme intensifies* Jokes aside, the copilot looks interesting but it needs much better integration to be useful for any of my day-to-day tasks. It needs much faster response time and it will have to show how well it can work with legacy and non-standard code bases that aren't developed with NI's portfolio and vision in mind. Did they mention if and when this can be tried out?
  13. I'm not familiar with network streams but the online help provides an example for your particular scenario (scroll to the very bottom): Specifying Network Stream Endpoint URLs - NI Based on your code this works for me: Working Example.zip Edit: To provide some more explanation: Only one application can create endpoints in the default (empty) context "//localhost/". Incidentally, this is also the default context when you create a writer endpoint by name. For example, writer endpoint "my_writer" is equivalent to "//localhost/my_writer". In your particular example, Application B creates a writer endpoint "ApplicationA_in_writer", which is equivalent to "//localhost/ApplicationA_in_writer". Application C creates a writer endpoint "ApplicationB_in_writer", which is equivalent to "//localhost/ApplicationB_in_writer". And since only one application can use the default context, the error happens. To create endpoints in separate contexts, you must specify the context in the endpoint name. For example, "//localhost:ApplicationB/ApplicationA_in_writer" and "//localhost:ApplicationC/ApplicationB_in_writer".
  14. LogMAN

    ActiveX

    I'm not quite sure if this is what you are looking for but here is an example that works for me: Excel Formula.vi
  15. A union is always sized to its largest member, not the sum of its members. In your case, 4 bytes. You currently provide 8 bytes of memory. Try reducing the size of the union to 4 bytes.
×
×
  • Create New...

Important Information

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