1 / 34

Bloomy Controls LabVIEW Style Guidelines

Bloomy Controls LabVIEW Style Guidelines. Peter Blume President peter.blume@bloomy.com. Clusters Error handling File organization Documentation . Overview. General objectives Examples without guidelines Guidelines Front panel Icon/connector Block diagram Architecture Optimization.

katelynn
Télécharger la présentation

Bloomy Controls LabVIEW Style Guidelines

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bloomy ControlsLabVIEW Style Guidelines Peter Blume President peter.blume@bloomy.com

  2. Clusters Error handling File organization Documentation Overview • General objectives • Examples without guidelines • Guidelines • Front panel • Icon/connector • Block diagram • Architecture • Optimization

  3. General Objectives • Satisfy application requirements • Optimize: • Efficiency • Efficient = fast and memory-conserving • Readability • Readable = user-friendly and maintainable • Robustness • Robust = reliable and bug-free

  4. Front Panel Guidelines – Text • General • Minimize overall quantity of text • Controls • Use succinct, intuitive labels • Indicate units in parentheses or use free labels • Enter descriptions or online help where further text is needed • Use transparent background • Top-level and dialog VIs • Use large text size readily legible from several feet away • Maximize contrast between text color and background

  5. Front Panel Text Example

  6. Front Panel Layout • General • Group related controls together • Consider decorations, tabs, clusters • Apply symmetry and spacing • Top-level and dialog VIs • Size controls, indicators, and fonts according to importance • Use tab controls or subVIs to increase front-panel real estate • Apply color judiciously • Select three to four primary colors that go well together • Avoid red and yellow in industrial applications, except where appropriate

  7. Top-Level Panel Example

  8. SubVI Panel Layout • Use default appearance for most objects and text • Avoid using many colors, fonts • Consider default gray panel with 13-point application font • Use intuitive control positions • Controls at left, indicators at right • Refnum/task IDs at top • Error clusters at bottom • Size panel adequately, but less than full screen • Keep things neat, intuitive, and symmetric

  9. SubVI Example

  10. Icon/Connector • Icon • Intuitive text or graphic • 10-point small fonts • Color-coding for icons of related subVIs • Connector pane • Controls assigned to left terminals, indicators assigned to right • Refnum/task ID assigned to top left and right terminals • Error cluster assigned to bottom left and right terminals • Default values in parenthesis in owned label • Priority used where appropriate • VI descriptions are required for ALL subVIs

  11. Icon/Connector Examples Conforming Nonconforming

  12. Block Diagram • General • Leave the background color white • Set all control labels visible • Liberally document with free labels • Limit diagram to one 1024 x 768 screen • Avoid overlapping objects

  13. Wiring Techniques • Apply • Left-to-right data flow • Straight wires • Align objects prior to wiring together • Free labels to long wires • Consistent data types • Avoid • Overlapping or obstructed wires

  14. Wiring Example

  15. Diagram Architectures • Modularize with subVIs • Top-level VIs should be composed of calls to subVIs • Do not over-modularize • Top level = state machine • Define application as a series of states • Go to any state from any other state • Easy to modify, maintain, and debug • Self-documenting

  16. Classic State Machine

  17. State Machine Guidelines • Use enumerated or string for case selector • Poll user interface events in “No Event, Default” frame or in separate event structure in parallel loop • Use intuitive state names • Include “Initialize” and “Shutdown” states

  18. Enumerated State Machine

  19. Nonconforming Example

  20. Conforming Example

  21. Event-Driven State Machine • Consider desired response to GUI for determining state granularity • Consider applicability of queues

  22. Optimizing Diagrams • Use Wait in all While Loops • Avoid • Local and global variables • Sequence structures • Unnecessary nesting • Coercions • Unnecessary operations in looping structures • Easy I/O VIs Inefficient I/O

  23. Optimizing Diagrams – Efficient I/O

  24. Clusters • Group related data into clusters • Follow front-panel text guidelines • Consider saving as strict type definition • Avoid nesting clusters and arrays beyond two levels • Always use bundle and unbundle by name

  25. Cluster Example – Nonconforming

  26. Cluster Examples – Conforming

  27. Error Handling • All VIs must trap and report any I/O-related errors that might occur • Trapping is facilitated by propagation of error cluster • I/O functions include DAQ, file I/O, instrument I/O, communication • Reporting methods include dialog prompt or log to file

  28. Error Handling – Nonconforming

  29. Error Handling – Conforming

  30. File Organization • Subfolder hierarchy required • Organize project into subfolders • Recommended subfolder hierarchy:

  31. Documentation • Use guidelines to document VIs • Use LabVIEW custom printing options to create a function reference manual • Include specification and/or basic operating instructions to complete documentation

  32. Conclusion • Using LabVIEW style guidelines ensures: • Multiple end users will find software robust and user-friendly • Multiple developers will find software readable and maintainable

  33. About Bloomy Controls • Test, measurement, automation, and control specialists since 1991 • Systems integration, software development, and training provider • NI Select Integrator and Certified Training Center • 3 Certified LabVIEW Architects • 8 Certified LabVIEW Developers • 1 Certified TestStand Architect • 2 Certified TestStand Developers • 8 Certified Professional Instructors • Offices in Windsor, CT; Milford, MA; and Mahwah, NJ

  34. Contact Bloomy Controls • Email info@bloomy.com • Write or visit

More Related