190 likes | 629 Views
Power PMAC Project Management November 2013. Project Management Tools. To facilitate and encourage good project organization Pre-defined project structure in IDE “Solution Explorer” Supports both Script and C Smart editor in IDE Debugger in IDE C cross-compiler in IDE
E N D
Project Management Tools • To facilitate and encourage good project organization • Pre-defined project structure in IDE “Solution Explorer” • Supports both Script and C • Smart editor in IDE • Debugger in IDE • C cross-compiler in IDE • Automatic downloading to Power PMAC • Full project download • Incremental download • Ability to retain project in Power PMAC’s non-volatile flash memory • Can have separate project/version in active memory • Can retain multiple versions in flash
IDE Solution Explorer • A “solution” contains one or more “projects”, each in a Power PMAC • Each “project” organizes its files in folders in the Project Manager • “C Language” folder for routines and programs written in C • “Background Programs” for independent applications running under GPOS • “CPLCs” for scheduled PLC programs written in C • “Include” for “.h” header files • “Libraries” for called subroutines • “Realtime Routines” for foreground (servo, phase, capture/compare) • “Configuration” for project action files • “Documentation” for user comments and notes • “Log” for automatically generated log files • “PMAC Script Language” for Script programs and files • “Global Includes” for declarations and definitions • “Kinematic Routines” for forward and inverse kinematic transformations • “Libraries” for subprograms • “Motion Programs” for top-level sequenced motion programs • “PLC Programs” for top-level asynchronous PLC programs
Mapping User Variable Names • Project downloader scans for declared and defined variable names in all PMAC Script Language folder files • Declared variables (e.g. global PartCount) are auto-assigned to Power PMAC variables • Defined variables (e.g. #define MachineState P1) use specified variables • These variable names are made available for C programs by inclusion in pp_proj.h file in C Language/Include directory • Numbered Power PMAC variable names are substituted for declared and defined variables in process of breaking out downloaded Script programs • Table of declared and defined variables stored on Power PMAC for use by IDE and similar programs (through gpascii -2)
Compiling and Downloading C Programs • Done during “build” process: select “Build”, “Rebuild”, or “Build and Download All Programs” for project • GNU cross-compiler compiles routines and programs for Power PMAC CPU • Independent background C application executable files (.out extension) copied into var/ftp/usrflash/Project/C language/Background Programs directory • C PLC program executable files (.so extension) copied into var/ftp/usrflash/Project/C language/CPLCs directory • Foreground routine (servo, phase, capture/compare) executable files (.ko extension) copied into var/ftp/usrflash/Project/C language/Realtime Routines directory • No source code automatically copied into Power PMAC • Helps protect intellectual property • User can do this separately if desired
Downloading Script Programs • Done during “download” process: select “Build and Download All Programs”, “Download All Programs”, “Download Selected Programs” • Script header files (.pmh extension) copied into var/ftp/usrflash/Project/Global Includes directory • Kinematic routine files (.kin extension) copied into var/ftp/usrflash/Project/Kinematic Routines directory • Subprogram files (.pmc extension) copied into var/ftp/usrflash/Project/Libraries directory • Motion program files (.pmc extension) copied into var/ftp/usrflash/Project/Motion Programs directory • PLC program files (.plc extension) copied into var/ftp/usrflash/Project/PLC Programs directory
Project Configuration Files • Contain lists of Script on-line commands to be executed automatically in different stages of transferring project files • Exist in new project with default commands • Permit user to customize actions at these stages • Located in “Configuration” folder of Project Manager • pp_disable.txt – Commands executed in preparation for full download and/or build (e.g. abort all programs) • pp_inc_disable.txt – Commands executed in preparation for incremental download and/or build • pp_startup.txt – Commands executed after full download/build from PC, or from flash memory at power-up/reset (e.g. enable PLC programs) • pp_inc_startup.txt – Commands executed after incremental download/build
Project Properties • Interactive window under IDE Project Manager permits easy setting of many key project properties • Files and folders on PC • Storage buffer sizes • Declared variable ranges • Starting template version • Communications properties • Settings automatically used on next build and download to Power PMAC
pp_proj.ini Configuration File • Contains key information about project configuration • Simple example file, automatically generated: [LINUX_PROGRAMS] program1=/var/ftp/usrflash/Project/C Language/Background Programs/capp1.out run1=1 last_program_number=1 [RTUSRCCODE] usrrtmodule=/var/ftp/usrflash/Project/C Language/Realtime Routines/usralgo.ko ServoCtrlName0=user_pid_ctrl PhaseName1=user_phase [PMAC_PROGRAMS] PVARSTART=8192 QVARSTART=1024 MVARSTART=8192 file1=/var/ftp/usrflash/Project/PMAC Script Language/Global Includes/global definitions.pmh inc1=2 file2=/var/ftp/usrflash/Project/PMAC Script Language/Libraries/subprog1.pmc inc2=0 file3=/var/ftp/usrflash/Project/PMAC Script Language/Motion Programs/prog1.pmc inc3=0 file4=/var/ftp/usrflash/Project/PMAC Script Language/PLC Programs/plc1.plc inc4=0 last_file_number=4 [PMAC_BUFFERS] SymbolsBufSize=1048576 UserBufSize=1048576 ProgramBufSize=16777216 TableBufSize=1048576
Executing Downloaded Files • After all project files downloaded into Power PMAC • After pp_proj.ini file created and downloaded • Built-in application projpp automatically executed in Power PMAC • Uses instructions from pp_proj.ini file • Can start independent C applications • Loads Script programs from files into active buffers • Executes commands from appropriate configuration files (e.g. pp_startup.txt) • Any error messages in executing commands are stored in pp_error.log file, and uploaded to IDE
Downloading Programs Outside Project • Direct downloading of Script programs outside of project is possible • Commonly used for “part programs” that are executed once • Rotary motion programs are always outside of project • Can simply use gpascii to send program lines • These programs are directly entered into active program buffer • These programs cannot be saved to flash memory
Saving and Resetting Power PMAC • “Saving” action implemented by on-line save command • Copies values of saved setup elements from active memory (RAM and ASIC registers) to non-volatile flash memory • Not done automatically on project download • Copies active project files in RAM (/var/ftp/usrflash/…) to non-volatile flash memory (/opt/ppmac/usrflash/…) • Retains last 4 previously saved versions of project in /opt/ppmac/usrflash.n/(n = 1..4) • “Reset” action implemented by cycling power or on-line $$$ command • Copies saved values of setup elements from flash to active memory • Copies saved project files in flash memory (/opt/ppmac/usrflash/…) to active project files in RAM (/var/ftp/usrflash/…) • Executes projpp using pp_proj.ini to finish loading of project into active memory • Executes commands in pp_startup.txt • $$$ command does not restart Linux computer; reboot does
Re-Initializing Power PMAC • Done on user-issued on-line $$$*** command • Done automatically on power-up/reset with “problem” • Corruption of saved project files • Change in hardware configuration since last save operation • Actions performed on re-initialization: • System clock source automatically specified based on ASICs present • Saved setup addressing elements automatically set based on servo interface hardware present • Saved setup (non-addressing) elements automatically set to factory default values • Active project directory in RAM cleared • Active program and table buffers in RAM cleared • Saved setup element values and saved project files in flash are not cleared (just not used)