-
Posts
3,392 -
Joined
-
Last visited
-
Days Won
284
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
Seems like there are several VIs missing. Some are on the Desktop under RS CAN Communication. Still I'm not sure how RS485 is used. Regardless I'd put another device on the CAN bus, and listen to the traffic to isolate where the issue could be coming from. Is the device not sending it properly? are you not reading it properly? This might be more obvious with another device on the bus listening.
-
Great question and one I don't think people think about often enough. So yes lets say you stick with LabVIEW 2021 for 5 to 7 years. What kinds of complications will you have? Well LabVIEW itself won't just stop working. If you stay on the same OS, the same LabVIEW version, and use the same hardware you have today nothing will suddenly stop working. So on the surface you shouldn't need to worry at all. But in practice there are some things that might cause you to have issues. Here is a compatibility chart for LabVIEW and Windows version. This might matter because what if Windows isn't supported anymore? Well right now 2021 supports Windows 10, but it is unclear if it will officially support Windows 11. I suspect it will get support for it with the service pack in a few months. If that happens then 2021 will be an even better choice since Windows 10 at the moment will lose support support in 2025. But even if NI doesn't support LabVIEW 2021 in Windows 11, there is a good chance it will just work. People are very successful with running older LabVIEW versions on newer Windows, NI just doesn't validate it for that platform. Lets say you stick with 2021, and Windows 10. In 4 years you will either be on an unsupported OS, or need to hope Windows 11 will work with LabVIEW 2021. If the upgrade works, great. But you aren't out of the woods yet. You might have hardware compatibility issues. Lets say some hardware you use isn't supported anymore. This would only be likely if the hardware you are using is a couple generations old, or listed as deprecated, or legacy by NI today. Then you might find that NI stops supporting the hardware in the drivers. If the hardware dies, you may need to buy new hardware. This new hardware might functionally replace it, but support might only exist in the newer driver versions. And LabVIEW 2021 might not be supported. As an example, lets say you needed to buy a PXIe-4497 to replace some legacy hardware. This card just got support in DAQmx 21.3. This means you can't use this card with LabVIEW 2017 because DAQmx 21.3 only supports 2018 and newer according to this table. If the PC dies you'll have issues too. I worked at a place that started to see an uptick in support calls from older systems running Windows 3.x or 95 and it was due to the hard drives just dying. We couldn't replace it with a such and old machine so we updated to XP at the time. This big change was difficult for several reasons. For us we updated the computer, OS, LabVIEW, Drivers, and code. From one year to the next, the number of hardware support being dropped is pretty minimal. And the OS support doesn't change too often either. But if you compile all of these changes over 5 to 10 years then the difference can be quite large. For us the cost of yearly support, is less worth it to not have these stations be unsupported, or the risk in having to drop everything and spend weeks getting it going if something happens to them. My gut feeling is 2021 should be fine for at least 5 years. After that I can't say.
-
Yeah a lot of the decisions made there seem pretty dumb looking at it now. But it was a personal project and really just needed something that could tell me if a string pulled from a webpage, had a similar enough string to a file name on disk. Good luck.
-
I do have a very quick and dirty solution that I wrote many years ago without consulting the internet or what would be the right way to do this. That being said I just ran it on the Stack Overflow test and for: Robert, and Amy Robertson my code had a 44% match, and for Robert and Richard it had a 0% match. That being said if you can come up with anything better or more standard that would probably be better than this. Compare String Confidence.vi
-
How to tell if USB camera has failed/disconnected
hooovahh replied to Neil Pate's topic in Machine Vision and Imaging
If the snap does work, but returns the exact same image, you might be able to detect a locked up camera by comparing the last two images and seeing that they are exactly the same. At that point I don't know if closing all references, and re-initing would help or not. I've had some success with this, depending on what caused the lock up. I've had other cameras that really seem defective and the only fix was to power off and on the camera. For that something like a relay could be used to kill the power and turn it back on. But in general I suggest using high quality ethernet based cameras because of some of these issues that I've seen in the past. Still ethernet cameras aren't without issues. I've seen firewall or antivirus software cause camera images to not acquire properly. -
I know this is quite old, but I recently sent a link to this when answering a question, and I realized I have added a couple of opcodes over the years that people might be interested in. Also Jing as a video recorder is old and I've been moving my videos away from it and hosting on Youtube instead. I've downloaded the two videos Norm and rehosted them there. Image Move.zip
-
Dynamically generate installer UpgradeCode
hooovahh replied to Benjamin R's topic in LabVIEW General
Is there a good reason that this is password protected? Other than it probably is a single call library node to some internal function? -
Historically support is something I've said NI and Microsoft both have been done well. Lately I'm having a harder time lately singing NI's praises for support. NI used to have all new hires work support first before going to other departments. This in general made support a bit green, and you'd need to escalate a couple of times before getting what you needed. My career started as a co-op and so being thrown into the deep end of the pool certainly helped me learn quickly. And I liked the idea of NI people all starting out having to quickly get familiar with NI's offerings, and being close to the customer issues. I suspect NI has gotten feedback over the years that this model for support didn't work well and I heard NI was changing this policy.
-
Dynamically generate installer UpgradeCode
hooovahh replied to Benjamin R's topic in LabVIEW General
Oh sorry, here is a VI I made a while ago for generating a GUID. It might need to be modified for the pattern you need. Generate GUID.vi -
Yes I too am only familiar with reading these file types but not writing. NI has the ECU Measurement and Calibration Toolkit which is a CAN toolkit for performing XCP and CCP functions. One of which is flashing new software to an ECU over CAN. In there is the start of some code that reads SREC and HEX files. Some of the file types were had poor performance and I made an attempt at improving them. This code can be found in the CAN File IO package here. But I admit that is a whole lot of code to install for some simple file reading stuff so I've attached the important bits here. This appears to support S0 through S9 types, and some kind of HEX files that start with a ":". Looking at the code I still see some room for improvement. Hooovahh SREC and HEX.zip
-
Dynamically generate installer UpgradeCode
hooovahh replied to Benjamin R's topic in LabVIEW General
I don't know of a utility for doing this. But the Upgrade Code can be found as a string property in the .lvproj file. Just open it is a text editor and you can search for it. I think it is called the "MSI_upgradeCode". -
Yeah I like getting crafty with a 2D picture control. The demo I showed earlier has 4. One at the bottom for the progress of editing, one for the arrows that are representing the go to statements, and one for each column of the green or red checks. The columns can be click with one column toggling, and the other slides over another window for editing the step limits. The go to arrow representation has the ability to drag and drop to move around where it will go to. Clicking a step highlights it with a different color, and there can be all kinds of nested arrows which all get assigned unique colors, and does its best to not over lap while becoming larger if needed.
-
Oh a couple of others I forgot about. Here is a Circular Graph Demo which allowed for selecting signals from a list, allowed for different scales, multiple windows, coloring, current value, pause, resume and a few other random features. And over on Reddit someone asked for an Android like interface with sliding menus.
-
I have a few UIs and UXs that I'm proud of, but I don't know of many that I can share readily. Tabs are fine, but don't scale well. Often times when I want a tab I will end up replacing it with something else. An easy change that scales better is a single column listbox which inserts a VI into a subpanel instead. The listbox and subpanel can be in their own pane, and set to fit to the pane, and scale with it. I posted a few UI tools over the years like the Ribbon Interface toolkit, that can contribute to a nice UI. I have a sequence editor with drag and drop, looping, conditionals, go to's, that works pretty well. And I have used a set of images at the bottom as a tab replacement that shows icons along a process of setting things up. There is a back and forward button on the bottom that goes to the next step, or you can click on the icons at the bottom and it goes to that step in the process. This is a 2D picture control that can be updated easily with a new VI to be inserted in the subpanel. This sequence runs on real-time so no TestStand, and has other normal shortcut features like copy, paste, delete, save, and select all. It also has file extensions so double clicking on a file opens it in the editor, and dragging and dropping a file to this window will work, prompting for unsaved changes if there are any.
-
Outlook doesn't have a Stop button, so I say a LabVIEW program shouldn't need one. Close yes, Stop no. The only reason I can see is for touch screens that are harder to navigate. Close can go through all the clean up stuff that it should. The main application does also have a toolbar with File >> Exit. In my config dialogs, I do have an Apply, Okay, and Cancel buttons and allow for a close which operates the same way as the Cancel would. I feel like the majority of configuration dialogs I've seen behave similarly, some with only Save and Cancel.
-
Also does anyone else think there isn't enough color choices for the amount of data types there are? Maybe it is my eyes getting worst, or maybe it is the higher resolution monitors, and higher DPI, but I think at a glance the difference between some wire colors is too close. I'm sure another color or visual style would be needed, but a purple (or basically any other color) is going to look pretty similar to others. Someone pointed me to this video on Rebar from GDevCon, and while this is the now defunct NXG, I couldn't help but notice how similar the style is for a string. Even more similar would be having this next to an array of string, a DVR of a string, or a set and map of a string. I can tell the difference but maybe not very quickly. Maybe I should try turning on the Alternative Block Diagram Data Type Colors from the config and see if it is any better.
-
That reminds me of a joke. "Polygamy is wrong! It is either multiamory, or polyphilia, but mixing Greek and Latin roots is wrong." It sure sounds like several complications, likely adding to the work NI needs to do if LabVIEW is ever going to have official proper unicode.
-
Well the real answer is probably going to depend on what works for you. The setup you have now is obviously easier than re-writing it to use a DMA FIFO. But if you are worried about precision of the waveform you can put a scope on it and look at some transitions to see how different the waveform is from the expected output. Years ago I did develop some code that allows for a table of times and voltages to be sent to the FPGA, and then in my case it would linear interpolate between the points, sending out the data timed by the FPGA. The code could be improved a lot, but it might give you an idea of what is possible, and how to do some timing of a table output. My situation was with a non repeating waveform that could be many hours long. I initially tried doing this with DAQmx hardware, adding to a finite buffer as time went on. But this became difficult to manage, and there were memory issues. My wave also was discrete points, and not a sine wave.
-
Yeah when using the FPGA and CAN neither NI-CAN or XNet is used. It feels a bit bolted on and an after thought. When I did it back in the day there was just a DMA stream set up that sent frames down to the FPGA to be sent, and another stream for frames to be send to the host. I'm guessing there is logic that could have been put down on the FPGA but at the time dealing with a stream of bytes from hardware seemed difficult and so all the parsing and conversion was done on the host and the FPGA was just there to send raw frames. Not sure if things have changed since the 8.x era with FPGA CAN devices. Oh and even if you aren't using XNet you should install some of the tools. They have database parsing stuff that doesn't require XNet hardware that makes things easier to visualize and understand when it comes to frames and signal conversions.
-
labview web publish need help!
hooovahh replied to 홍두진's topic in Remote Control, Monitoring and the Internet
There are several options for controlling a VI from a web browser mentioned in this post here: In addition to that NI has the G Web Development Software toolkit which I haven't tried but it is basically the WebVI functionality that was in NXG before development of that stopped. -
Well the good news is you can actually find J1939 support in NI hardware and software. I've never used it but the NI-XNet hardware specifically supports J1939 under the Application Protocol selection when creating the database for the API to use. And there are several resources for CANOpen such as this document. That being said that specific document might not be very helpful in your case since it uses the NI-Industrial Communications toolkit which I don't think supports FPGA CAN devices. I do remember seeing some G based CAN Open stuff from NI before that toolkit was made and it is possible you could adapt it to work in your setup. Here appears to be a G based J1939 protocol that might shows an FPGA example. But using CAN on an FPGA device adds another layer of difficulty. I'd almost just suggest you buy a USB 8502 which is an XNet device, then seeing if you can get that to work with the latest NI tools. Maybe even using a trial of a toolkit if needed. Then if you get that working sniff the bus and figure out how to replicate the functions you are trying to get to work.
-
At one point I heard NXG called "Better LabVIEW" and someone else suggested the real name was "Beta LabVIEW". I've also heard of it called to as LabVIEW 20xx, or Current Gen (CG). I like Lab-deja-VIEW.
-
Oh yeah I forgot about miles of wire. I've (finally) started saying no to it. Most would be some weird exotic thing someone thought we needed. They'd buy a ton of it, use it once, then it would sit on the wire rack for years taking up space. People would quit, or get promoted, programs moved on, and then someone tries to clean the lab and can't figure out why we would ever have it. I've got some CAT-5 and CAT-5E spools, since IT has only uses CAT-6A now. I've been very critical of IT here for making bad decisions, then implementing them in the worst way. But I had to send out personal "thank you" messages to the IT team, and management involved in the last purge. They sent out an email telling people where it would be, and what hours they would be there to help people. They dedicated an IT guy for 6 hours a day for 3 days just to take down asset tags of things people wanted, and to help with hard drive removal. Adding to my electronics pile at home is fine, but I specifically called out the reduction in e-waste for their efforts, especially since we have a land fill very close buy that it would be thrown into.
-
Yeah most of the tech I got was old, with a few exceptions. The FPGA card I have was last supported in LabVIEW 2016. So not sure what I'll be doing with it. I mean I can program it and have it just do its thing, but can't really connect to any LabVIEW project. PSU and frequency generator is probably from the 80s, but works fine for hobby stuff. The GPUs had SLI and could be combined, but even combined had less graphical capability than most integrated graphics do today. Some of the stuff needed to be fixed. I had to rewire a mouse, and I had to fix the feet on some office chairs.
-
Well some of it I gave away for favors. I had no use for the engine hoist but I had a friend of mine that was thrilled to have it, and in returned helped rescue me with a tow when I was stranded. A good amount of it is in my office at the moment. I saw overhead office lights go to people putting them in their garage. And there was some larger desk furniture and electronic benches I said no to because I didn't have the space.