Jump to content

dblk22vball

Members
  • Content Count

    116
  • Joined

  • Last visited

  • Days Won

    1

dblk22vball last won the day on May 16 2013

dblk22vball had the most liked content!

Community Reputation

4

About dblk22vball

  • Rank
    Very Active

Profile Information

  • Gender
    Male

LabVIEW Information

  • Version
    LabVIEW 2016
  • Since
    2009

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am having an issue where the parser is error-ing out on building my JSON string, and I cannot figure out why. I am trying to build a JSON structure used as part of our data logging process. The parser is giving me the following error: JSONtext.lvlib:Find Object Item Locations by Names.vi<ERR> State: Parser Error Near: '{ "ProductTypeId":11, "ItemNum":"12345-111", "Sn":"132465", "SerialType":M' in '{ "ProductTypeId":11, "ItemNum":"12345-111", "Sn":"132465", "SerialType":MFG, "Guid":null, "Quantity":null }'' Make Components Array in JSON.vi
  2. NI has created a CAR on this topic, as it appears it is a bug in the Build API. FYI - CAR 724207
  3. I was able to get it working. Basically, I need to "auto increment" myself and manually set the destination path. It appears that the API does not handle the [VersionNumber] tag properly, but no error is thrown. I have been in discussion with NI application engineering, so hopefully this will be fixed.
  4. I am trying to get a build script going, and I use the destination folder format with the tag [VersionNumber] in the Primary Destination Path (http://digital.ni.com/public.nsf/allkb/617928B8E8DE3B6C86257CC400429194) What is happening is that when I do my programmatic build, the lvproject only "remembers" the last build I manually did through the project itself, instead of the programmatic build. for example, say I right click on my executable build specification, select "build". My build will run, complete, and then all the files will be stored in the folder builds\EXE 1.0.0.0. The flag "Auto Increment" is set to True. Now, I run my build script 5 times. I will have folders EXE 1.0.0.1 through EXE 1.0.0.5. I open my exe build specification in the labview project, navigate to the "Version Information" page, and the Version Number correctly shows 1.0.0.6 as the next build number. So my build script is updating the build specification with the correct auto increment, and I have verified that LabVIEW is creating the correct files in the correct folder. But, when I go to the build specification, right click and select "Explore", LabVIEW opens the EXE 1.0.0.0 folder, instead of the EXE 1.0.0.5 folder. The consequence is that when I do an installer build, LabVIEW thinks that the 1.0.0.0 build was the last build, so the incorrect exe is copied into the installer. Has anyone run into this issue with programmatic builds?
  5. Hrmm.....I have been getting access violation issues as well with my LV18f2 system, I will have to upgrade and see if the issues are resolved. NI R and D has been trying to figure out my issue and has not had success yet.
  6. I am looking at the NI Systemlink for remote deployment of the test programs. Part of the writeup on the justification for SystemLink (or alternate), is that I need to find some alternates. But finding the alternates is a struggle (which may assist in my justification, but I want to be sure I am not missing something). Our company uses a mixture of LV and Visual Studio (C/.Net) test programs, so the solution cant be LV only. I think this would rule out Studio Bods BLT, since it appears to be restricted to LV. I am aware that the SystemLink is built on SALT, and that it is open source. Initial investigation seems like this could work, but would require a lot of man hours to get up and running. I can see there are alternates to SALT, but all seem to be geared to IT, not MFG. I have found maintainable.com, which looks similar to SystemLink, I am waiting for a sales person to call me back to discuss the capabilities. My google foo is evading me on finding other alternatives. I see tons of Windows management programs for IT departments (deploying windows updates, company policies, etc), but am struggling to find alternatives for the MFG side. Requirements: We have a headquarters, where most of the engineering and test software comes out of. Then it is deployed to 10+ remote locations, with 100's of test fixtures. Windows based machines (Windows 7, 10, or CE) All of the test fixtures are not available on the internet, on the local intranet (so need a relay to get outside the plant)
  7. I am guessing this has been discussed on here before, but my search skills are failing me. As we expand our company, we are now starting to use multiple suppliers for building (and testing) the same product. Updating each test fixture by remotely logging in, copying over the new sequence files is going to become cumbersome. We are discussing having the test sequence on a SQL server, in this instance since we already use SQL servers, and then the testers will then query the server based on part # and maybe some other information to get the proper sequence. This way we just need to push the update from the master server at "headquarters" to the remote servers, and all the testers have the new sequence files. Some features we are planning to have: - effective date (when did the sequence go active, preserving all previous sequences). - The test fixtures are on the same in house network as the remote servers, so unless the building loses power, there should be any significant latency or bad connections. (already in place) Any big caveats to this method? Other ways people have managed multiple sites? For those who are better searchers, feel free to point me to other topics already discussing this.
  8. Update: It may be solved. I will continue testing more next week (7:15 PM where I am at) I had to uninstall all NI software, and only reinstall LV 2014 items. Then I ran a Registry cleaner. I also updated the Agilent IO Suite from 16.7 to Keysight (new Aglient name) IO Suite 17.1. I also made the changes suggested above (Synchronous mode and 1 ms wait in the loop). Thank you for your help.
  9. This is an actual serial port. I have already changed all the Power settings for the USB devices to always be on, as that did cause issues. Thanks for the suggestion. The manual says that you are supposed to send 0x00 for 1 sec, followed by the sync byte 0x95. The UUT will then acknowledge it saw the "wakeup" string with a 0x4B + 4 other bytes. There are no termination characters with this protocol. I added timing vi's to measure how long it too to send the 0x00's, and reached the conclusion that 960 for the FOR loop count worked out to ~1 sec (see the block diagram of attached vi). I apologize I forgot to put that in the first post. NI has commented that the VISA time out is "consistently inconsistent", ie it will vary. I have played around with different timeouts from 200 ms up to the 10000 ms and still the same result. BTW, the UUT will go back into sleep mode within 250 ms after a wakeup command if no other commands are received. So waiting 10 seconds for a response from the UUT would not work in the long run. If you look at the "works" vi I attached above, the timeout is set to 200 ms initially, and then after the wakeup is received the timeout is reset to 10000 ms.
  10. I attached the files to the first post. COM1 is where the IR comms happen.
  11. I am getting very frustrated trying to figure out what is causing me issues communicating with a device over a serial to IR device and using LabVIEW. I am working with NI directly on this issue, but I thought that maybe someone on here might have had a similar issue and were able to resolve it. We are using a serial port (DB9) to IR head to communicate with devices in the test nest. We have a system that was done originally in LV 2009, and it works just fine. When we decided add additional test racks, I wanted to re-use as much code as possible, but of course there were some new features we wanted to add. I "copied" (re-created the LV 2009 IR communication vi) in LV 2012 at the time. I tested the vi on the development machine (laptop with docking station so it had a "real" serial port) and it worked great. I then built the .exe and put it on the test rack. We were unable to communicate with the UUT. But if we restarted the test program, we could then talk to the UUT just fine. So then I replaced the 2012 IR vi in my program (no other changes) with the 2009 vi (exactly the same just one was created in 2009 vs 2012) and rebuilt the .exe. When tested on the rack, no program restart required, IR comms established right away. Huh??? I adding all sorts of logging to see where (if) I was getting any errors on the test rack (logging the error cluster after configure serial port, flush buffer, read, write) and the only error I am seeing is the VISA Read timeout error when it does not get a response from the UUT. I have made sure that VISA and LV runtimes are the same between the test rack and my development machine. Windows 7 Development Laptop with docking station (development environment or running exe) - Serial IR head, USb to Serial adapter to Serial IR head or USB IR Head = Communication with out a program restart using the 2012 vi. Windows 7 Test Rack touch panel PC (runtimes only, running exe) - Serial IR Head - Requires program to be restarted when using 2012 vi. With 2009 vi, communication established without program restart. Windows 8 Personal Laptop (runtimes only, running exe) - USB to serial adapter to Serial IR head or USB IR head - Communication works without a program restart using the 2012 vi. There seems to be something different in the way VISA or the code behind the vi acted in 2009 vs 2012 (I have also tried 2014) in regards to the serial port. Running NI IO Trace so far has not yielded any "ah, ha!" differences. EDIT: Attached files. Rev 242 is the version that does not work (2012/2014), Rev 243 is the version that used the 2009 IR vi. IR_WakeupAndTransmit LV 2009.vi serial trace files.zip
  12. I am struggling with how I handle the situation in the title. We have a number of devices that use different IR protocols. I have a Parent Class (IR), and multiple child classes (DeviceA, DeviceB, etc). I have a Test Sequence Editor that we use on our test program, and an option I want to add is IR Command selection. I would also add a IR Parameter section to allow for specific inputs based on the command selected. So the Test Step would have: IRCommand: 'DeviceA,60' (for Protocol 'DeviceA' and to send command 60) and maybe IRParameter is a string 'ABCDEF'. Each command can have different inputs and outputs (string, numeric, etc). I figured I could use the 'To More Specific' class to choose the child (see pic below), but I am not sure how I can setup the message correctly. I currently have it implemented where I have a case structure in my program for each command. By this I mean, case 60 uses the Command 60 implementation of the IR Parent class, and each child is dynamically dispatched. However, I would prefer to move this into a class somehow, instead of copy a case structure into each program (defeats purpose of just updating class and not each program that uses this). I attached a simple example (please excuse the horrible wiring, it was a fast example) Classes.zip
  13. Thank you for making this toolkit free for us all to look at. I was looking into making a similar (but much less sophisticated) toolkit. A possible update: The Add Language popup will only let you select from Languages already populated by the developer, ie you cannot "add" a language by typing the language while using the toolkit. It looks like I would need to edit the Language Selector.ctl to add more languages, then reopen the toolkit in LabVIEW to add the language to my project.
  14. Or that I needed to start drinking at the end of the week.....
  15. Annnnd I feel like an idiot. Thanks for your help.
×
×
  • Create New...

Important Information

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