High Level Folder Structure

Structure

The packages in the logical view are traditionally arranged in order of importance as below with corresponding descriptions. Order of packages may differ between projects.

  • Documentation - Project documentation.
  • Infrastructure - Project infrastructure. Some notable tasks contained in this package include:
    • FirstInitProg - Task for initializing the machine. This is the first task run on startup. It ensures that certain conditions are met before other programs initialize. This could include loading a configuration file, initializing the logging system, defining File Devices, etc. It should not have any cyclic code.
    • getRevInfo.sh - Build tracking (see Tracking Machine Builds).
    • ErrorProg - ErrorCollector or AlarmLib cyclic task.
  • HMI - User facing variables, tasks, and resources.
  • DataHandling - Handles database management, some file management, and recording data.
  • MotionControl - Motor control, CNC, Robotics, Synchro, and anything motion related.
  • ProcessControl - Low level control of process tasks such as temperature control, metrology data, and control of peripheral systems.
  • Communication - Communication between machine components.
  • Machine Control - Top level control, safety programs, and machine commands and statuses.
  • Diagnostics - Error management and logging.
  • Utilities - Any auxiliary helper functions.
  • Mapp - Mapp components.
  • Test - Tasks used for testing machine functionality.
  • Libraries - Holds any libraries needed for the project.
    • _AS - BR libraries.
    • <Client> - Client libraries. ex Loupe.