whitenoiz Posted December 11, 2014 Report Share Posted December 11, 2014 Hi everyone, so we have a device for measurement & signal generation and want to make it accessible through VISA say by Ethernet / USB / Serial. Other than the VISA driver template and the SCPI parser that must be implemented on the device, does anyone offer a good starting point on how to make a device talk VISA and maybe even get it certified by NI? Thanks in advance Quote Link to comment
Rolf Kalbermatter Posted December 16, 2014 Report Share Posted December 16, 2014 Hi everyone, so we have a device for measurement & signal generation and want to make it accessible through VISA say by Ethernet / USB / Serial. Other than the VISA driver template and the SCPI parser that must be implemented on the device, does anyone offer a good starting point on how to make a device talk VISA and maybe even get it certified by NI? Thanks in advance Well the SCPI parser is beyond any resources that NI would be able to help with. But if it is about the instrument driver itself you should probably contact the instrument driver developer group at NI here. They can give you more information as to the requirements to get your driver certified and added to the instrument driver library as well as resources about recommended practices in such a driver to ease the process of certification. 1 Quote Link to comment
whitenoiz Posted January 20, 2015 Author Report Share Posted January 20, 2015 So I heard back from instrument.drivers@ni.com and I think it should be ok to post their reply here in the forum for everyone to read. Some of the suggestions may even be up for discussion, such as the recommendation to go about and use the 2014 Revision (what about backwards compatibility?) So again, thanks for the suggestion to contact them. ============================================================== Yes, the best starting point would be the Instrument Driver Guidelines and the Templates, but use the 2014 Revision. If you do not have 2014, we have saved them templates back to LabVIEW 8.2 You might try using the Instrument Driver Development Studio for your development http://sine.ni.com/nips/cds/view/p/lang/en/nid/211922. Again, make sure you have the latest templates above.Make sure review the LabVIEW Settings to use before working on API VIs/DriverFront Panel: Should all be the same color for consistencyFront Panel: Select Modern 3D style for controls and indictorsBlock Diagram: Enable Use transparent name labels.Block Diagram: Disable automatic error handling in new VIs.Block Diagram: Disable Place front panel terminals as icons.Do not Maximize Front Panels or Block DiagramsThe items below usually come up in reviews, when either templates are not followed or Guidelines are not followed:- Avoid using one command per VI, check template on how to combine commands. Minimize redundant parameters.- Avoid combining Configure, Action-Status, and Data subVIs in high-level API VIs; these should only be combined in examples- All VIs, controls, indicators should include documentation and it is recommend to include at least one comment on the block diagram. - Use meaningful names (no symbols and Capitalize first letter) and avoid abbreviations unless they are known by users worldwide.- Document what the VI/control is expected to do and always start the sentence describing what the VI will do with a verb.- Document any restrictions for using the VI/control, such as whether a certain mode prohibits using the VI/control or if the VI/control cannot be used with a particular instrument model.- Avoid using Boolean controls if values are not opposite states, the command usually has 0 or 1 or True or False as part of the command (Use the vertical slide switch for Boolean controls).- Avoid using strings as controls (generally numeric and/or text ring controls are used in API) you can use file path control or timestamp control instead a string control- Use Text Ring for values that do not have two clear states- Include "%.;" as part of the format string to convert floating point numbers when using functions like Format Into String or Array to Spreadsheet String.- Wire a False Constant from the Boolean palette to the Use System Decimal Point terminal of the Number To Exponential String and Number To Fractional String functions.- Use a Select function, not a Case Structure, to select between two wire options.- Use Scan From String and Format Into String as often as possible for string manipulation. Other string handling functions, such as Pick Line and Append True/False String, are good string manipulation functions to use. - Use the Concatenate Strings function sparingly and only if you cannot find a more appropriate string function - Design the block diagram so it follows the left-to-right, top-to-bottom model of data flow. Use consistent writing style in the VI and throughout the instrument driver. - Do not use save options that remove or password-protect the block diagram (if you do we cannot certify the driver). - Use "4-2-2-4 or the 5-3-3-5 connector pane terminal pattern" - Avoid using all text as icons, but icons should be meaningful and not randomly selected - Make the VISA resource name a Required input for ALL VIs.Testing - Make sure all VIs and Examples (at least two) are tested and documented with a meaningful name. - Test all combinations of options on front panel - Test with all supported interfaces implemented in the driver. - If there are any issues or other notes helpful to user it should be documented in the Readme. For certification a programmer or User manual that contains commands should be submitted along with the driver in order to do the certification review.Hope that helps.Best Regards,National Instruments - Instrument Drivers/IVI Groupinstrument.drivers@ni.com Quote Link to comment
Phillip Brooks Posted January 26, 2015 Report Share Posted January 26, 2015 I remember using a VI Analyzer plug-in years ago to validate my driver. I'm not sure if that is now included with VI Analyzer or maybe its in the Driver Design Studio. The first thing an NI employee would likely do after receiving a driver for validation would be to test it against the requirements above using VI Analyzer. No sense submitting a driver for certification if it can't pass the automated test... Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.