Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by sam

  1. Since you're communicating with already existing devices, your work is much easier. Any CAN capable device can communicate via CANOpen. There's no magic there so to speak, CANOpen is a comm layer on top of good old CAN. anything you are okay and have on have will be fine.
  2. if you encapsulate the actions in a single subVI (non reentrant) then you can avoid any race condition. The answer to above question is a property nodes that are stacked each run in series . There's no difference besides Block-diagram horizontal saving from when you individually place them. You can even right-click and choose ignore errors inside Node, which I would not recommend. Plot.Property change.vi
  3. sam

    LabVIEW Feud

    Done. Some of them questions were not an instant/off the cuff answers.
  4. I've been surprised today with one of the LabVIEW's most useful functions (imo) which I use all the time. After so many years and only now seeing this behavior/feature. I thought I share it 🙂 I've always used an empty array of N-Dim for my desired type input. only to accidently find out today that I can also use a scalar for the type. ha!
  5. Indeed you've been a key resource for most of the functionality that I hold in high regards within LabVIEW. I wish you all the best in your new role.
  6. Not knowing if using combo box is good or not, maybe you want to try it this way:
  7. Hi Mahbod, Why do you even want to use LabVIEW? What I'm getting it is we need to know your requirement and train of thought better to help in "detail". Here are some ideas to get you started. Use C as dll and have LabVIEW as overall programming language Use Python as script and have LabVIEW as overall programming language Use LabVIEW as script and use Automation ActiveX from other languages to call LabVIEW. many examples if you google it use Dot NET, C# . coming back to my first question. DAQ or any HW access is not going to be an issue. so ... you see so many different ways are present but details matter .
  8. Couple of years ago I was working with SREC files, but I only needed to import them. Initially I used LabVIEW but switch to C# as it was more suited. This is only the import part, maybe it can get you started (reverse the process?, idk). as Rolf said, my concern was only import and my project requirement and then switched to C# anyways, the only thing I tested was making sure both my LabVIEW and C# were doing the import the same way. Parse SREC File.vi
  9. Maybe this will help. there's a .net class you can easily call from LabVIEW. There's no need for polling either. You will get an event then your callback VI can handle the event FileSystemWatcher Class (System.IO) | Microsoft Docs COPYING AND MOVING FOLDERS Event Handler Events Handled Performs OnChanged Changed, Created, Deleted Report changes in file attributes, created files, and deleted files. OnRenamed Renamed List the old and new paths of renamed files and folders, expanding recursively if needed.
  10. Hi Zofia, In short NI's implementation of EtherCAT functionality is not on par with other NI tools as I've experienced. I'll try to explain on this as best I can. NI only Supports CoE, CANOpen over EtherCAT. This is just fine as I (perhaps most devs ) has CAN/CANOpen experience. This is not an issue as I stated but I thought to add just so we know that we are talking only about CoE in following points below. NI's Server implementation is not ready for Non-NI hardware. It seems the server was solely designed with other NI-Slaves in mind. Connection to Slave devices either succeed or fails. The ones that fail show no indication the reason for failure. A connection to an inverter took me three weeks because of this lack of feed back information. Contacting NI support was not so helpful as it seems NI AE are not very familiar with EtherCAT. I asked the AE if they can some how get access to lower layers to know why we could not connect. If there's a failure connecting to slave devices we need to know the reason. Obviously there is a series of checks and balances that return a false. what exactly caused this check to be false. First reason we found out from AE was that the ESI (XML slave information) was a multi-level document, and NI only support a certain type. Why could we not get that information when importing the XML? Second reason was in process of changing the XML slave information to a format that NI prefers, we did not update the version. Again we failed to connect but didn't know why. The failed connection is exactly the same as these two problems. The CoE is partially implemented. There is programmatic SDO read (via invoke node). Bur there's no PDO. Only way to get PDO to work is editing the XML file. Why? I guess this is related to scan engine, but if there's anything I'd like is have PDO read/write functionality same as SDO. No debug or live-tools for interacting with a Slave. No Windows version. I know that we need RT OS for EtherCAT but for development we could/should be able to use our dev PC/laptop. This is possible, and I can refer you to free software like EC Engineer can run on Windows (without RT clock ) and Open Source projects can do Windows SOEM I hope this helps, as I'm just going of my memory. I'd be happy to discuss this further as CoE is an important communication bus for now and future.
  11. nice demo. Well done. I appreciate the works and your passion for your work. I know you are showing this as proof of concept and it is great work and progress so far. It maybe helpful to think of these points below while you are doing your LabVIEW RE. Simple subVIs with more connector pane wired. Dynamically called subVIs Classes/Objects more complex diagram functions. Loops,events,Qs,.Net Assemblies, etc. Much more complex projects. example 5k-10k subVI. Projects with Realtime components. also bug fix: at 12:57. the numeric values show "1,1" instead of "1".
  12. I found gitExtensions to be very good too. http://gitextensions.github.io/. If you coming from HG, this maybe a good choice to try.
  13. sam


    Yes, I was very committed to HP48, wrote many programs and games back in the day, which can still be found. I still use it daily, but as emulator on my Android. here is how: green shift -> units (#6) hit next couple times to get to Angles menu (top row of buttons) choose your deg Angle enter number hit degree menu at top you can hit enter to make a duplicate to convert a unit to another purple shift -> desired unit. this takes the top stack and converts (replaces the stack) hence I like to make duplicate.
  14. I Tried looking at your code but there are some missing functions that I can not run it. Mainly You have used LabVIEW add-on toolkit that everyone may not be using.: somewhere you have used Mathscripts: Looking at the scripts : can you use PureG or even "Formula Node". There are some links to office toolkit. Lastly, have you looked at Python, and more importantly LabPython? what is it that MView offers over-beyond LabPython? I ask because I'm interested..
  15. My c¢: 1: On LabVIEW 2011, in the build : Advanced, turn off SSE2 2: On LabVIEW 2011, in the build : Advanced, Check "Use LabVIEW 8.6 file layout" 3: other combination of 1 & 2 The other thing I noted your second cpu is N270, which I believe is Netbook ATOM kind. it my handles Math and double/single operation differently. I can't see why it would change from 8.6 to LV11, but it may have something to do with SSE2 optimization. looking at Wikipedia both Celeron and Atom support it. just some ideas.
  16. just my 2¢: You can always do (translate) a recursive algorithm with a while loop. With above suggestion of clusters instead of Classes and while loop you should gain significant speeds. Never mind my post, I looked at the code after I posted. and I don't see a Recursive implementation.
  17. By just looking at your screen captures I can tell you are not passing correct data type to your dll. Of course posting source code can calp you more. You are defining your ADD function with aDD( char a, char b, uchar *c) but calling with aDD(int,int); 1: Char and Int are two very different data type. 2: Char would not be first choise for an ADD parameter, int or double; 3: char *, is also not a very good choice for return parameter. Hope this helps
  18. Well, I've done exactly what you are asking, so it can be done. About ten years ago I had to take out any references and use of IMAQ in one of our Imaging Software. There was heavy use of IMAQ and this is how I went about it. Step 1: I used another Imaging toolkit that had all the imaging functions that I needed This is what I ended up going with http://gromada.com/mcl/. If I had to redo the project I would use OpenCV now http://opencv.willowgarage.com/wiki/ Speaking on OpenCV there is already a toolkit that uses openCV called iVision http://www.hytekautomation.com/Products/IVision.html Step 2: Create a control to display images, for this I created an ActiveX control. this control was also a wrapper around the functions that are available via the Imaging Toolkit you have chosen in step 1. Step3: Every activex control has a Draw(Refresh) option. This is were you will obtain the Device Context of the ActiveX control and perform your draw code. I hope this help you, now at least you have a starting point and know that It can be done.
  19. checkout NSIS, Very professional and feature packed. Cost: Free http://nsis.sourceforge.net/Main_Page
  20. To have Sqlite working for any platform you can use the precompiled libraries that SQlite website already provides: Windows: http://www.sqlite.org/sqlite-3_7_2.zip Linux: http://www.sqlite.org/sqlite3-3.7.2.bin.gz Mac OS X (x86): http://www.sqlite.org/sqlite3-3.7.2-osx.zip If you change the Source Code Of Sqlite to fit your product, then I don't think you can call it Sqlite , because you are changing the source. If you are using a C-Wrapper around it then you are introducing another level of redirection and extra code to maintain. A c-wrapper will force you to reduce the functionality that you can provide thru your wrapper. I have been down that road and it's not pretty. Have a look at the documentation of sqlite here: http://www.sqlite.org/c3ref/funclist.html. Will I have access to ALL the features of Sqlite described in their documentation? If a product is PAID then I would want/expect it. Because the reality is the Sqlite project is mature and a throughly tested product, and simply exposing the functions doesn't qualify for a commercial product. I know you are anticipating supporting the product, but how much of this support is going to be directed toward your-method-of-exposing Sqlite DLL, and actual fault-of-sqlite. I don't know if I have been clear. Like I said earlier just wrapping the sqlite3.dll for LabVIEW is not going to be enough, you need to separate the programmer from the database, which you said you have such tools (Great), but also provide all the advanced functions that Sqlite itself already provides , see documentation. I am not against a paid Sqlite-LabVIEW toolkit but only hope that a really Solid and worthy Toolkit is released that everyone can benefit, even the one who are capable of doing the work.
  21. I can't share the VIs I am using, but I will give you the core functionality of Sqlite VIs that Import-Dll creates. From these VIs you can see how to change the VIs created by Import DLL. Let me know if you have any questions. I have included the Sqlite3.dll, but you should've already have this Dll if you are interested in Importing it to LabVIEW :-) Sqlite.Tester.zip
  22. I don't know how much more clear I can be, but one of the VIs "That-You-Supply" has incorrect implementation the vi "That-You-Supply" if used will cause my application to misbehave. Because IF My application Steps are generated as a function and now my function generate empty steps. You can fix it your leave it alone.
  23. I have used Sqlite since 2004, my first implementation I used a wrapper dll around the Sqlite3.dll. But now you can use the DLL-Import feature of LabVIEW and import the Sqlite3.dll and have yourself a fully working toolkit. After import you have to replace a couple of Type-controls to Int32 and you will be done in less than an hour. I don't want to be mean but what are the difference between your toolkit and what Dll-Import makes. I can appreciate a Toolkit that simplifies working with LabVIEW data and Database so that the programmer does not have to use a single SQL statement.
  • Create New...

Important Information

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