Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Yesterday
  3. Just did the same test with LV2019 32-bit and it works fine on the other PC. 🥵 Also works fine in a VM so I guess its probably something borked on the PC. Time to reinstall the OS (as obviously NI Package manager refuses to cooperate and now I have a bunch of orphaned software).
  4. Seems there is a modern version of Dependency Walker called Dependencies, see it here: https://github.com/lucasg/Dependencies Running this does not show any problems with my DLL and if I hover over the BLASPACK DLL it gives me a popup confirming my suspicion that it is delay loaded. So weird...
  5. Tried Dependency Walker (which I cannot say I really totally understand) and it looks like it is looking for LV18000_BLASLAPACK.DLL which I have located and tried copying to the directory holding the analys.dll, still no luck. I don't know what the hourglass next to this DLL is, maybe it means lazy-loaded?
  6. I am pulling my hair out over this one...I am trying to run a LV2019 64-bit application as an executable on another PC. I have done all the normal things I do like install the runtime engine etc, but as soon as any of my code contains any VI which calls into lvanlys.dll I get the following error. This is the code: I have done everything I can think of including re-installing the runtime engine, creating an installer from the build PC, copying all DLLs from the Runtime directory to the application data directory etc, none of this works. This is just a regular PC, the only thing that is a bit out of the ordinary is that it does not have internet access, but surely this is not the cause? Could it be related to 64-bit? Anyone else seen this in 2019 64-bit?
  7. Last week
  8. I saw about myRIO S2.... But I can't afford one $200 USD is more then R$ 800 BRL while a BeagleBone Black is around R$ 300 BRL much more affordable for me.... Untill now my choose will be a BeagleBone Black or Green... Because the number of IO pins they have and because there is no need of a SD card to boot the system. But the lack of FPGA and the speed of it when compared to RPi that brings me down... I would like to see more options and solutions in this way but I don't know if they exist....
  9. I am doing a project using LabVIEW VDM module.I am new to this module. I have a image containing the marks.I want to remove the blue color and background effect. extract only the red colored parts.I have used the color threshold function.but it is showing Incompactible image type. color threshold.vi
  10. I have always done the second method, and just accepted the extra overhead of one extra message pass. Beware of premature optimization. It is generally rare for me to want to just forward a message like this without the forwarding actor needing to change or react to the message in some way. An alternate design is to accept that you don't have an actor-subactor relationship, but that your subactor should really be a helper loop of the actor. A dedicated helper loop can share references no problem. Your "actors sharing references" is a potentially suboptimal mix of "actors are highly independent but follow restrictive rules" and "helper loops have no restrictions but are completely coupled to their owner"
  11. It is not a bug. It should break for any unsigned integers because that's how the "negate" method works.
  12. pylabview could do it, but it looks like there are differences in "Virtual Instrument Tag Strings" section, and the parser can't read that section ATM: So - only NI can help you, unless you are willing to help in development of pylabview.
  13. Thank you once again Dr. Powell for sharing this powerful approach. I can see it being used in "Metronome" actor (e.g. Set Period). And I already started to use it in my projects. If you don't mind I would like to ask you another question: I have an actor (A) that launches a sub-actor (B) to delegate some tasks to it. When sub-actor (B) publishes an event, actor (A) gets a message. However I would like to publish that message beyond actor (A). So that actors subscribed to actor (A) would also receive events from sub-actor (B). Currently my approach is to send Observer Registry of actor (A) to sub-actor (B) during initialisation. Then sub-actor (B) publishes its events into Observer Registry of actor (A) directly. Another idea was to republish the event from actor (A) when it gets the message from sub-actor (B). Neither of these methods feel right to me. The first one shares internal reference of the actor (A). The second method is not as efficient (receives, then sends again). How would you approach this?
  14. Just to clarify, is this device similar in functionality to the NI-845x? I'm trying to understand the application of such a device. https://www.ni.com/en-us/support/model.usb-8451.html Thanks!
  15. We are still looking for more presentations. If you have something please submit it thanks.
  16. Front Panel is now proper XML (though I only support "FPHb" now, older Labview has FPHP instead, and latest ones use FPHc - those are not parsed, as I don't really need them for my use). Block Diagram is stored in exactly the same way, so I got "BDHb" support for free. I used the same general format LabVIEWs NED uses for XML panels. I can now either work to read "DFDS" section as well - it's quite complex as it isn't stand-alone section, meaning it needs data from other sections to parse. Or I can ignore default data, and start working on Front Panel re-creation without that.
  17. So the Pi3 can be deployed to with Linx 3.0 as you may have found. This is an official toolkit from NI that adds the target in the project and you deploy to it like any other device, and is free. There is no front panel or UI when running on the Pi so keep that in mind. But the code can be deployed and set to run on startup so that it runs headless. There is some licensing to be aware of, specifically it can't be used on any commercial applications. NI has said that in collaboration with the LabVIEW Community Edition (free as in beer expected release in May) that the Linx toolkit is to also have some kind of new release. The same people that make the Arduino Compiler also make a Pi Compiler which can be used for commercial applications and has the front panel running on the Pi so you can plug in a monitor and see it. Other than the Pi, the MyRIO is really the intended platform for students. NI has partnered with Universities to offer a discount bringing the price of one I believe to $500. I'm not a student so I can't see it. But used ones on ebay pop up all the time from students who bought one for a class and no longer need it. I picked one up for under $200. The price of a raw Pi ($30-60) compared to the MyRIO ($500 retail) is a huge jump. But NI justifies the price with all the stuff you get. I mean the raw Pi doesn't even come with a case. But the MyRIO has a real-time embedded Linus OS, an FPGA, built in Wifi, USB network, USB host, a bunch of IO, and the support of NI. If your project needs an FPGA, and you want to program it in LabVIEW it is by far the cheapest option. If you don't need an FPGA then it can be seen as over priced. I'd start with the Pi3 and Linx and see what is possible. There are lots of online videos and tutorials and the upfront cost is pretty low.
  18. Hi, I've attached the datasheet here for you. It'll be uploaded to our website soon. The I2C and SPI are for direct processor comms ie: arduino, Pi etc and does not work with a PC COM port. The USB version however, does look like a serial COM port. Hope this helpful. Contact us anytime for more info. Thanks, Lisa EasyDAQ Data Sheet 56 (USB-RS232-I2C-SPI-8VI8SRMx-2).pdf
  19. Thanks, I'm currently doing a project using I2C so I'd like to look into this option. I noticed that Product Datasheet 56 is called out in this link but not listed in the datasheets page. Does this enable I2C communications over a COM port? What speeds/settings are available? Thanks!
  20. Your best bet is to put your request here: NI Forums - Version Conversion
  21. I left off an important fact about what I was doing, and apparently, doing wrong. After DAQmxWriteDigitalU32, I was doing DAQmxGetWriteTotalSampPerChanGenerated, DAQmxGetWriteCurrWritePos, and DAQmxGetWriteSpaceAvail. Those diagnostics told me how the problem proceeded, but they also helped cause it. Now that I commented them out, it has run for 17 hours, whereas mean time to failure was <1 hour when the diagnostic commands were used. Ever see the movie Mystery Men? One of the heroes, Invisible Boy, has his super-power only when no one is looking. My cDAQ task can do its job, as long as I don't look at it.
  22. I saw it on a YouTube video.... Just to convert to Arduino code is not the point... I was searching about the linx 3.0 and a BeagleBone Black board... That is probably the closest i can get for my needs... But as it is an "old" project maybe there is something newer and better boards that are also compatible.... With this project I saw she can deploy a VI directly to the board and communicate, just like myRIO does... Does anyone knows anything newer or better boards (with low budget, please)
  23. In the fully loaded state this signal relay board boasts USB, I2C, SPI and RS232 communications. It is currently selling for £120 +VAT (USB-RS232-I2C-SPI-8VI8SRMx-2) EasyDAQ are also producing variations : USB only version, I2C- SPI only version, RS232 only version. Any of the configurations can be supplied without onboard power supply or without relay opto-isolation. This means there are a possible 16 variations available to customers. EasyDAQ offer optional bespoke software. There are 8 opto-isolated, 120V, 3A signal relays and 8 3V to 60V, AC/DC, opto-isolated voltage sensing inputs. The 4 communication options are USB, RS232, I2C and SPI. This board has 3 powering options : USB power, External 5V DC with reverse polarity protection, External 7 to 24V DC with reverse polarity protection and Regulated 5V output on the external 5V terminal for powering hardware. Two LEDs indicate data transfers between control hardware and the relay board for help with debugging and testing. Each relay channel or voltage sensing input has its own LED to indicate status. The board has been designed with future expansion in mind including access to 8, 5V DIO channels connected to the main controller and a further 8 3V3 DIO channels connected to the I2C/SPI port if this option is fitted. The programming pins for the control processor are also available to enable re-purposing of the board by loading application specific software. The board is commanded via simple single ASCII characters (+ status byte). I.e a 2 byte pair. These are commands that address each port of the PIC processor device (Hex equivalent shown in brackets). The board can be controlled using a Terminal emulator if connected via USB or RS232. In order to test operation, the board can be connected to a serial port and controlled from a terminal emulator program such as “PuTTY” or “Realterm”. If the I2C/SPI option is fitted then the board can be controlled directly from another processor such as an Arduino, Raspberry Pi, BeagleBone etc. The communications via the I2C or SPI are managed by a NXP SC16IS750 I2C/SPI to serial converter. Operating temp range -20 to +80oC The product is RoHS compliant and CE marked. Easydaq is based in Wareham, Dorset and was established in 2002. It is owned by GreenHalse Electronics 1 Designer House, Anglebury Business Park, Sandford Lane Industrial Estate, Wareham, Dorset. BH20 4DY. https://www.easydaq.co.uk Tel 01202 916411
  24. Long time didn't see those hackish threads about LV internals on LAVA, so here's something. As always it's strictly experimental and "just for fun", so don't run the things below on your work systems, otherwise you'll easily get LV crashed, your files deleted and your disk reformatted. You're warned. As some of you maybe know, starting from LV 2017 there exists hidden ArrayMemInfo node, available w/ the scripting. It provides some info on the input array including its data pointer. ArrayMemInfo.vi My first discovery was that this pointer is stable and doesn't change until VI is stopped. So its common use case could be the memory copy operations for some third-party DLLs. It's obvious and it's kinda boring usage. Playing with it after some time I discovered that I'm able to not only read but also write to that pointer, able to get its handle, resize the array etc. - read on to see the examples. I could conclude that this way it's possible to manipulate Transfer Buffer or DCO's Transfer Data or whatever it's called. From now on I started to question myself, where does ArrayMemInfo node take that pointer from and could we do the same without this instrument. And here was another big surprise for me - yes, we can! LV familiar CLFNs easily do that, when you configure the input parameter as: Type = Adapt to Type Constant = Yes (checked) Data format = Pointers to Handles Actually you could set Type to Array and set Data type and Array format to the actual data type of your array, it's not that important. What is important, Constant checkbox should be checked. In this case LV not only passes the native data types, but also does not create the input data copy, providing the pointer/handle to the Transfer Buffer's data instead! I was very surprised, because it was there from LV 2009, but I didn't pay attention to it. I also did not find it to be described somewhere in the official documents. Knowing that I have replaced ArrayMemInfo with CLFNs in my basic samples. Here's how we could do read/write of a common numeric indicator: numeric_test.vi And this is the same for a common numeric array: array_test.vi As you can see, there's a major disadvantage of the whole technique - one should pass the wire to the indicator in a loop to get the indicator updated in time. Nevertheless there exists a pair of VIs, that do the similar and do not require any wires to be connected to a control/indicator. I'm saying about Get Control Values by Index and Set Control Values by Index, first introduced in LV 2013. So I dug these VIs deeper and came to these two internal functions, which are used by the foresaid VIs and ArrayMemInfo behind the scenes. ReadDCOTransferData: ReadDCOTransferData.vi WriteDCOTransferData: WriteDCOTransferData.vi As their top-level wrappers, these functions don't require any wires and care about low-level operations, i.e. no need to resize the array w/ NumericArrayResize, manually set its dimensions and actual data w/ MoveBlock etc. Although you don't get absolute control over a control or indicator (e.g., its pointer or handle), you definitely don't need it as all the work is done by ReadDCOTransferData/WriteDCOTransferData. Finally we came to the conclusion that the best has already been implemented. But... if you really want... there's a way to get Operate Data pointer for a generic control/indicator. numeric_test_ncg.vi array_test_ncg.vi However I'd like to notice, that this technique contains a lot of pitfalls besides shown low-level manipulations. Front Panel object doesn't get updated at all, for example, so it's required to redraw it manually w/ Invalidate method (or click on the object or hide-show the window). Local variables of the object don't get updated too, even when the object is invalidated. I'm sure, there are other things not done, which usually LV does on normal read/write. So, these diagrams should be perceived as the concept only. In the end I'd say that I hardly imagine, where I could really use any of these non-standard r/w methods. Surely in LV I will continue to use native Get Control Values by Index and Set Control Values by Index VIs, because they do everything, what I want. There might be one use-case though, when communicating with some external code. It would be easier to write debug (or any other) data from a custom DLL into LV's indicator directly, not using PostLVUserEvent or DbgPrintf. Extcode.h doesn't expose many APIs to the user, so calling ReadDCOTransferData/WriteDCOTransferData might be preferred inside the library. But I'm not going to check/test it now, because I haven't written DLLs for LabVIEW for a while.
  25. Hi everyone, There's someone that can help me by converting the attached file (LV2015) into LV2014 file? The attached file contains a DLL to manage a pressur controller.. It's impossible for me convert the file, searching in the forum i read that there's no way to open file newer than your version to convert them. Can someone help me please? Thanks ge_pace_series.zip
  26. Interesting. Looks like there's some type propagation issue when the Decimal String to Number node is combined with the Negate node: Remove the Negate node and the problem disappears. The issue seems to exist in the LV 2020 beta too. Would you like to post in the beta forum, for the attention of NI R&D enginners? http://www.ni.com/support/beta-program/ (I'm happy to post on your behalf, if you prefer)
  27. Drop this vim on your block diagram and connect anything that isn't an I32 to the "Type" input and it'll break. Why?
  1. Load more activity
×
×
  • Create New...

Important Information

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