Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


smarlow last won the day on April 7

smarlow had the most liked content!

Profile Information

  • Gender
  • Location
  • Interests
    My Family, Websockets, SVG, Remote Control, Embedded Programming with Labview

Contact Methods

LabVIEW Information

  • Version
    LabVIEW 2017
  • Since

Recent Profile Visitors

2,846 profile views

smarlow's Achievements


Newbie (1/14)

  • First Post Rare
  • Collaborator Rare
  • Conversation Starter Rare
  • Week One Done Rare
  • One Month Later Rare

Recent Badges



  1. Found the issue. The cRIO and PC were connected via a router which was blocking the port used for firmware updates. NI MAX should display a message where the "Updated Firmware" button should be indicating that the port (with port number) is being blocked.
  2. Just got a cRIO-9047 out of the box. I am running LabVIEW 2020 SP1 on the host computer, and the cRIO is running firmware 6.1.0f2 (why so old for a device that just shipped?). We ordered this controller/chassis months ago, but delivery was delayed, supposedly due to the chip shortage. The host computer is running CompactRIO 21.0 drivers. When I try to install the latest software (anything newer than 'legacy'), the installer tells me I need to update the firmware on the controller to version 7 first. However, when I select the device in MAX, the 'Update Firmware' button that is supposed to be on the System Settings tab is missing. I have 4 sbRIOs on the same subnet, and they are all good (Update Firmware button showing, running newer, non-legacy software loads). When I run the legacy installer for 20.5, and try to use the 'Update BIOS' button on the installer dialog box, I get a dialog saying the host has no new firmware load higher than the one installed, even though I am running the latest CompactRIO drivers. Has anyone else had this problem? Without a solution, I can only run the legacy software load. Thanks for any help.
  3. I am still here. It's just by chance that I have reemerged here today. I used to have a bunch of code posted at my old company, but that domain no longer exists. I still have the example code, but most of it is too complicated, and will take a long time to slog through if you're just starting with Javascript/HTML. If you want to do a 'homebrew' approach, I can help you get the websocket link established in LabVIEW. That part is easy. What's not so easy is all the Javascript you have to do on the browser side. You can use an open-source canned script library like https://www.rgraph.net/ to do graphs and dial indicators, etc. You can also use standard HTML5 buttons and slider controls, spin controls, etc. for inputs. Doing that requires you to know how to mix HTML with Javascript. Your other option is to pay $$$ for something like LabSockets, or the LabVIEW NXG web VI option.
  4. Unfortunately, the Picture Functions VIs are eliminated from the RT palette, so you can't draw a graph if you wanted to. What you could do is to draw a graph in Inkscape as an SVG file (which is just XML), with the plot as a multi-point line and replace the points in the plot line with scaled data points using the XML editing functions. I can walk you through the process if you want, since I used to develop WebPanel (now defunct) a long time ago. See webpanel here
  5. You are correct that an RT target alone cannot execute the Get Image invoke node. Interestingly, it will execute if you are running the VI on the RT target from the host LabVIEW IDE. The Get Image node actually runs on the host computer (even though it is on the diagram of the VI "running" on the RT target) and sends the resulting data to the RT target. As soon as you compile the RT VI and try to run it alone on the target, it will not run. This must be that because in order to see a "front panel" of a VI running on an RT target, the FP operations must be transferred to and executed on the host.
  6. Check out the UDOO embedded PC's. They run Windows or Linux, and the new model has Ryzen CPU. You should be able to run LabVIEW runtime on these (although I have not tried it on this device, I have run LV runtime on Atom quad core before) https://www.udoo.org/
  7. You will notice in my example above that once the value exceeds 10, it is hard if not impossible to change the value again due to the one-button modal dialog box. You can eliminate this problem by using a two-button dialog and giving the user the opportunity to reset the value using a Value Signal property node, as shown below: Or, if you prefer, you can use the case structures and a local to reset test.vi
  8. Looking at your original code, your timeout case had an output tunnel that was unwired. As soon as your timeout case executed once, the timeout value would go to 0 and the sift register value would get stuck there. If you set the timeout value to zero, you program will get locked in the timeout state. Why did you wire the shift register value to the timeout input? Anyway, if the shift register value is zero, the case structure will not execute. There are also a lot of bad habits in your code. You don't need the property node in the Numeric value change event, as it just writes the same value back to the control. If you want to pop up a dialog every second if the value is greater than 10, then use the timing feature of the event structure to check the value in the timeout case. See below for some simpler versions, and an explanation of your error. What you want to do is to use the timeout feature of the event structure to check your value every second and display a dialog if the value is greater than 10. Although I don't really recommend this type of structure, because the modal one-button dialog can easily block the user from pressing the stop button for rates faster than 1000 ms. In this particular case, 1000 ms is long enough for the user to press the stop button. For faster rates, it is not recommended. The Numeric value change event updates the shift register, and the timeout event passes the shift register value through so that it does not change until Numeric changes. I also moved the Numeric 2 indicator outside the event structure so you can see what the shift register value is. If you had done this you would have noticed that your value was getting set to 0 by the unwired tunnel in your timeout case. I also added a stop button value change to stop the loop when the stop button is clicked.test.vi test.vi
  9. If you put all the VI's into a library (.lvlib), you can edit the library icon and it will be applied to all the files in the library as a layer. Most people use this to create a common "top banner" for their VI set. The lvlib icon is overlaid as a layer on the individual VI's icons without disturbing changing or disturbing the other layers. I assume that what you are trying to do is add some icon feature to a set of VI's that identifies them as being part of a set.
  10. The absence of a thermistor module has been a huge hole in the C-Series modules since they were first introduced. I have wanted to know what the deal is with that since the first time I needed to read a thermistor with cRIO about 13 years ago.
  11. Is this what you are looking for?
  12. Can you post some code? Are you resizing the listbox using a control ref? is this a "floating listbox" VI? You should be able take the dimensions you are using to resize the listbox, add a margin, and then set the VI front panel to the new dimensions with the margin added on.
  13. It sounds like you want to store a binary string to a file and then open it and see the hexadecimal values for the bytes. Notepad only displays file contents as ASCII characters, so you cannot see the actual byte values, only the ASCII characters that correspond to the byte values (the "junk characters" you are seeing). Can't you just use LabVIEW to view the contents of the binary file? Read the bytes into a string indicator and set the display mode to "Hex Display".
  14. SVN with TortoiseSVN clent.
  15. I still remember the "LabVIEW Everywhere!" marketing campaign of 2004. The IOT realm was going to be ruled by LabVIEW, and soon we would use it to program toasters. Then the embedded module went the way of the dodo, and now it is everywhere except there, and there, and over there, of course.
  • Create New...

Important Information

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