-
Posts
3,432 -
Joined
-
Last visited
-
Days Won
289
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
In LabVIEW you can add the target by specifying the chassis type and IP address, but when you go to connect it complains about software compatibility issues. This is because that ISO includes LabVIEW 2015 (non SP1), but I don't have the non SP1 version installed. Presumably if I did I could connect to the target in LabVIEW and deploy code. Other attempts at adding the target are met with odd errors from MAX. If you try to add the target manually in MAX by specifying the IP address it says it is unable to initialize a connection. If you use the Troubleshoot Remote System Discovery and specify the PXIe-8135 (which my VM thinks it is), then it will search for remote targets, and the simple error handler comes up complaining about releasing a queue generating error 1. I suspect you are right in that this OS is intended to be used with the Comm Suite and MAX isn't supposed to be able to find the target. So installing additional software through MAX likely isn't possible. But writing code and deploying to it might be possible if you have LabVIEW 2015. The software installation wizard appears to be built into MAX and not a separate application that could be called specifying the IP address of a chassis. So unless there is some other way to get the system recognized by MAX, or some other method of installing software by side-stepping MAX then this might be a dead end.
-
So I've never actually tested this until today but I got it working without too much of an issue. The older version (the one before my posted edits) didn't support remote systems very well. You could only access the page from localhost. In my version the Publish.vi has an input of what the host IP should be and if it is left blank it is localhost, but on my BD I have the unwired PCs IP address. This address goes in the page and basically says where to get the web socket data from, and is used in the HTML JS Template.vi which creates the HTML file. To access this page from a remote computer I've been using SMB file share in Windows (and mapped network drives for the RT) which admittedly is a bit odd and a web servers should be used instead. This is using two different protocols, one to get access to the HTML file, and the other to use websockets to share the data. I worked on improving that this morning and it worked. I installed XAMPP on my Windows PC. I then started up Apache (which is probably all that is needed) and then made a symbolic link, pointing a "Test" folder from my Apache to my www folder from the example. I could then navigate to http://<My PC IP Address>/Test/Demo HTML5 Page.html on my local machine and the page came up with updated data. I then put my Android phone on the same wireless network, went to the same address in Chrome and everything worked. Drop downs, button clicking, etc. So I think the trick is 1) You need to be using my edited version for access on anything other than localhost, and 2) You need a way to get access to the HTML file and the easiest for me was an Apache web server. It would be really neat to see if I can also install Apache on the Linux RT system I have and also navigate to a web page that way. Although reading through your post again I see you had it working on a remote computer so that means you already have the localhost issue fixed.
- 137 replies
-
This behavior is the same on 2015 SP1 and 2016 which are the two versions I have installed, but I know I've placed loading gifs on splash screens from 2011 and newer, and the speed wasn't effected.
-
This is simply not true. Download the VI posted in this thread and you'll see the two GIF that have the same number of frames are at different rates. Recently a user also posted talking about having GIFs on buttons and I was able to make a GIF with a 400ms delay in it and put it on the front panel of the VI and it delayed as it was supposed to.
-
ActiveX to Automate Excel - Bug/Anomoly Report
hooovahh replied to peter_flores's topic in LabVIEW General
Well the report generation toolkit could be much better, and has several functions from older revisions of office that still work but are inefficient, and limiting. That being said I usually end up doing a combination of using the report generation functions, and then use the Get ActiveX Reference, which allows you to do as you please. I think you can even write companion classes that could extend the functionality of the RGT. So I wouldn't say the tookit should be avoided, just know its limitations, and don't expect that you only need the functions provided. Sorry for my assumption that you were using it. -
Well as mentioned by olfenr there is a solution to a Linux RT VM using an NI provided ISO. Posted here is an ISO apparently intended on upgrading the OS on PXI RT chassis, to put RT Linux on them, so that they can then be use with the Communication and Design Suite which presumably only supports the Linux RT variant and not Pharlap/VXworks. You can use this ISO to install the RT Linux OS into a VM made by Virtual Box. After installing the OS and using the username root, and empty password, you can login, and SSH into it. I cannot seem to get the remote target recognized by MAX, so I can't install software, or deploy code from LabVIEW. I've played with the network adapter settings and using Host-Only I can ping the target from my host, but I cannot add the target in MAX. One thing I just thought of but haven't tested, is possibly starting with installing the Pharlap RT OS in a VM, then using this ISO to upgrade it.
-
I'd find it hard to believe such an old piece of documented code has a bug this big in it, but you are starting to convince me. If you don't get any more help here I'd suggest making a post on the dark side (NI's forums) where their AE's monitor the boards closer, and may assign CARs. They can also sometimes talk to the guy that implemented the feature or function and get better insite into why it might behave this way.
-
ActiveX to Automate Excel - Bug/Anomoly Report
hooovahh replied to peter_flores's topic in LabVIEW General
Well the first thing I noticed is you are trying to control Office 2016 with LabVIEW 2015 which the report generation toolkit doesn't support, so it likely hasn't been tested properly by NI. Sorry I've never seen this or have any suggestions other than to try it out with LabVIEW 2016, and the updated report generation toolkit. Of course I realize it might not be that easy since there maybe other dependencies, and setting up a test for this setup might be a huge problem. But I'm guessing you won't get a whole lot of support from NI on this issue due to the documented incompatibility. -
Oh so sorry, yeah as I was writing that reply I did notice that with the PV so low I'd expect the MV to go really high. The only thing I can say is that the PID sees that the PV went from a low number (30), to a higher number (50) instantaneously, and part of the PID is the derivative meaning predictive changes will occur, based on how quickly the value changes. Even though the new PV is still below the setpoint, the PID sees this fast increase from 30 to 50, and predicts that the next time it is read it will be even higher, and thinks it needs to lower MV in response to that fast change. Again not a PID expert, just what I've observed. In the real world, your sensor shouldn't change that fast, in that short amount of time, and if it does, lowering the MV might be the right response, based on the PID values. ...Of course now that I look at your code again your "D" value is 0. But by changing your "I" to 0 this behavior doesn't occur, so I'd suspect my reasoning is correct, but my specifics aren't.
-
I just painted the tab with the color brush transparent, starting with the classic tab. Having a picture ring that you need to change the values of isn't a big deal, but it is more code that my solution didn't need.
-
Fresh start with Data Dashboard
hooovahh replied to RayR's topic in Remote Control, Monitoring and the Internet
And not just because Thomas is also a Dilbert fan? Keep in mind that code is still in its infancies. That being said I've been successfully using it on a couple of projects, one with over 1,000 individual front panel objects (really should have worked on implementing arrays), and unlike the other 10 or so solutions for web based control of a VI, it is 100% open source so feel free to make improvements. -
I selected the Classic Square Button to start, and then using the painting tool colored the True, and the False values transparent. This button has 4 states (not 6 like system buttons) and painting the two values made all 4 states transparent. But you can just copy the button for yourself. I didn't. If you run the VI you see this shoadowing go away. This is because this shadowing is not part of the UI and is only there to show that an object is on top of another object. You get the same effect if you move any control over top of a tab (not by dragging that places it in the tab) Picture rings, and 2D picture controls in general don't support gif, or alpha layer transparencies. This is why I went with images on the front panel, it is the simplest solution. Otherwise when you have a gif you need to have code running in a loop that will update the static images at regular intervals. With this image that isn't too hard to do because there is a 400ms wait between changing the image but it still adds more logic, and if you only have these 4 states the code is quite simple.
-
The problem with testing a PID is partially that you don't have the full setup, you are creating a control for your output, but you aren't adjusting the process variable with a simulated model of your environment. Let me try to explain the best I can with my non-academic view of a PID. So lets say you have a valve you want to control with a PID, and it will open and close and let in more or less water through a pipe. So you create a PID and you want to test it without the hardware, which is what you have above. But the problem is when you adjust that valve in the real world, your measured flow will actually change, and that new measured flow will go back into your PID, and then the PID will adjust the output control a little more, which opens and closes the valve more, which adjusts the amount of water flowing more, which is your simple feedback. But in your simulation you are adjusting the value, but your flow being measured (PV) stays the same. It is like the PID is closing the valve more and more, but the flow keeps coming, so the PID closes it more and more, but the flow keeps coming. A better system is to model how the valve and flow relate to one another, and then have your PV going into your PID change, as your output of the PID changes. You have there a constant of 90 as your setpoint, telling the PID "I want you to be 90". Then you have your PV (essentially the flow reading) set to 50 for 2 seconds, then 30 for 2 seconds then 50 for 2 seconds (if the comment is correct). This means your measured flow in my example doesn't change for 2 seconds, so the PID is going to try to adjust the valve continually in the same direction. If you want a good basic example, look at the General PID Simulator.vi by searching for it in the Help >> Find Examples (I searched for PID). It has a simple model where there is a PID that sets an output, and then a plant simulator pretends to be the real world behavior.
-
That changes things a bit but I think the easiest solution (assuming there is always 4 states) is a tab control with an image in each. Then a transparent button on top of all of them. Attached is an example in 2015. Demo 4 Button Gifs.vi Edit: Back saved into 2011 hope it turns out. Demo 4 Button Gifs 2011.vi
-
Yup, or if you only have 4 states you could have 4 booleans that are shown and hidden.
-
Yeah it's a neat feature but only works on the double (or numeric really) data types. As for the Matrix data type, no idea really. I mean I always assumed there is some performance improvements for those functions but then again why couldn't those improvements be implemented with normal 2D array of doubles as the data type and not be polymorphic like most other array functions? Another nice function that is on the matrix palette that is polymorphic is the Matrix Size which returns the rows and columns both as scalars. Why this isn't on the array palette I'll never know.
-
...wait...I just noticed something. Your product is called the Atom-RIO but uses a Celeron processor? Isn't that a bit misleading? Why not call it the Xeon-RIO or the I7Extreme-RIO?
-
Interviewing for a LabVIEW developer position, how should I prepare?
hooovahh replied to rakuz's topic in LabVIEW General
Worst quality? I am a workaholic, I push myself too hard...or...it takes me a long time to learn anything, I'm kind of a goof off, and stuff starts disappearing from the work place... When I was first starting out I knew nothing, but a company took a chance on me. Not because they thought I was a good engineer, but because they thought I was a good fit for the culture/work environment, and I was eager to learn. Things certainly are different as you have a career but as others have said, when you are starting out, attitude is probably more important than skill. Having any level of certification (in anything) shows a great deal about yourself too. If you are willing to put yourself out there to try to accomplish something optional, then I assume you are interested in it. I don't have a certification in basket weaving, but if I did you would probably think I like basket weaving. -
Really? This doesn't exist still? I was sure it was there but I go and look and I couldn't find it. I did find a thread 9 years ago that talks about it. Sorry I can't help with the original issue.
-
All the more reason I'd like to have the ability to develop and test for it without needing the hardware. Thanks for all the other information you gave.
-
What have you tried? This sounds like a Menu Ring, or Enum.
-
Yeah clearly the major benefit of this is not deploying and testing DAQmx code. It is more writing and debugging code that has a UI on this platform (testing and seeing the limitations), any 3rd party tool kits, or packages (related to LabVIEW or Linux), and anything network related (network streams, TCP, web servers, etc). I'm might not be fully informed, but assuming I was able to make a hard drive image, and boot that in a VM, I was hoping that MAX would just see that PC as a remote target, and allow me to install software to it just like any other target. Sure it is a different processor, but it is in the same family (Intel x64) and I'd hope that all the libraries made for the x64 platform would install through opkg using the NI package repository or any other found on the internet. Which includes all the tool chains NI already has compiled. NI already has some package groups made for the common development tools, which I've used on the actual hardware successfully.
-
Futures - An alternative to synchronous messaging
hooovahh replied to Daklu's topic in Object-Oriented Programming
We are starting to get a bit off topic, so I posted what I tried on getting a VM of the Linux RT x64. (spoiler I haven't figured it out) -
So there was some discussion of the Linux RT running in a VM and I figured I would try a few things. I have a cDAQ 9134 which is an atom based target running the Linux RT OS. I thought I might be able to perform an image of the hard drive, then boot that image in a VM but I wasn't successful. Here is what I tried. I logged in with SSH and performed this... dd if=/dev/zero of=0bits bs=20M; rm 0bits To zero out the drive, this makes compressing the image better since the dd will image the drive bit for bit, and will be unnecessarily big. Then I ran this command... dd if=/dev/sda | gzip > /media/sdb1/image.gz To make the hard drive image and put it on an SD card. I then copied the image over to my Windows PC, extracted the gz which gave me a single file named "image" (no extension). I then used this command to turn the hard drive image into a vmdk... VBoxManage convertdd "C:\<Path>\image" vmdkname.vmdk --format VMDK But this drive wouldn't boot in Virtual Box using the IDE or SATA controller. I also tried extracting the "image" file which extracted a single file named "0.img". Turning that into a vmdk using the same command from earlier created an image that also wouldn't boot. In both cases Virtual Box complained about not having a bootable device. Any suggestions are appreciated, but as I said in an earlier thread I don't know about if I would be able to share a virtual machine if I do get it working.