180 likes | 501 Views
Power PMAC – The 7 th Generation! November 2013. What is Power PMAC?. A general-purpose embedded computer with a hard real-time operating system Can run standard C applications A built-in software application for dedicated motion and machine control
E N D
What is Power PMAC? • A general-purpose embedded computer with a hard real-time operating system • Can run standard C applications • A built-in software application for dedicated motion and machine control • Can execute Script language controller programs • Sequenced motion programs • Asynchronous “PLC” programs • Automatically executes motor servo and commutation algorithms • Machine interface circuitry • Analog and digital servo interfaces • Analog and digital general-purpose I/O • Industrial network interfaces (e.g. MACROTM and EtherCATTM) • Fieldbus interfaces (e.g. DeviceNetTM and ProfibusTM)
Power PMAC CPU Capabilities • 800 MHz – 1.2 GHz operating frequencies • Single-core, dual-core configurations • Full 32/64-bit architecture • Hardware 64-bit (double-precision) floating-point implementation • Very high-speed calculations (>10x Turbo PMAC floating-point) • Huge dynamic range and resolution (>100K x Turbo PMAC) • Support for very large memory • 1 GB – 2 GB DDRAM active memory with error correction • 64 MB NOR Flash for standard firmware • 512 MB built-in NAND flash for user code/settings • Interface for “USB stick” NAND flash • Interface for “SD card” NAND flash • Built-in USB2.0, Ethernet 100 Mbps or 1Gbps interfaces • Direct connection and DMA optimize data streaming • Optional direct video interface
Power PMAC CPU Block Diagram Video Card Vision System Card Fieldbus Cards, etc... Disk Drive SATA PCIe (x1) PCIe (x4) Ethercat, Powerlink, Modbus, etc… Ethernet 1G Eth *Can be used as SATA or PCIe (x1) PC Comm i.e. -Web, TCP Sockets Ethernet 1G Eth RS232 RS232 Up to x2 32GB SDHC Memory Card (User Programs) Power PMAC CPU 800Mhz - 1.0Ghz Lattice CPLD UBUS I/F SD/MMC Expansion Slot (User Expansion) USB 2.0 UBUS Soldered Down NAND Flash 2 or 8GB Contains Complete Operating System Files plus Add on products ie. IEC1131, EPICS NC Application, Ethercat, etc ... User Interface Software USB Hub/Card Reader Keyboard, Mouse, RS232, Hard Drive, Memory Stick etc... AMD NOR Boot Flash 64MB Contains everything necessary to boot Linux RTOS Kernel DDR2 1GB or 2GB RAM w/ ECC Removable SOCDIMM 16M Motion Prog Buffer (adjustable) 8M PPmac Memory Map (Fixed) 1M User Shared Memory (adjustable) USB 2.0 Host Expansion Port (User Expansion) USB USB 2.0 Device USB Laptop or PC
Power PMAC Operating Environment • Full real-time operating system (Linux with real-time kernel) • Dedicated controller runs in the real-time Linux environment • Hard-real-time tasks operate on interrupts • Phase: commutation and current loop • Servo: interpolation, position/velocity loop • “Real-time”: motion programs, foreground PLC programs • Capture/compare (new!): highest priority for fast list updating • Other tasks operate in general-purpose OS • Background PLCs, status update, command processing • Shared-memory access for RTOS, GPOS, and host communications • Full file-management system • Programs, tables, gathered data etc. can be transmitted and stored as files
Power PMAC Hardware Configurations • Power UMAC • 3U-format Euro-card Rack • Modular selection of interface accessories: motion, I/O, Fieldbus • Power PMAC Etherlite • Compact controller for networked drives and I/O • Supports MACRO and EtherCAT servo drives & I/O • Supports Fieldbus I/O • Power PMAC Brick • Integrated controller amplifier • 4-, 6-, & 8-axis configurations • AC version: up to 240VAC input, 3-phase motors • LV version: up to 60VDC input, 2- and 3-phase motors (steppers and servos)
Terminal Position Intellisense F.E. Watch Motor Status Velocity User Written Code Message Window Project Power PMAC Integrated Development Environment (IDE) • WindowsTM PC application • XP, Vista, or 7 • Advanced editor with built-in debugging features • Extensive project and resource-management features • Integrated GNU C cross-compiler • Interactive terminal window • Many status and setup windows • Tuning and plotting graphics screens • Can incorporate windows into user applications with Visual StudioTM
Power PMAC Embedded Web Server • Any computer with web browser can communicate • Laptop with direct connection • Over company network* • From anywhere in world over Internet* • HTTP and FTP supported • Many standard windows built in • Terminal, position, watch • Backup and restore • Tuning and plotting • Status reporting • Basic editor/downloader • User can add own windows for easy HMI implementation * Must arrange to get through any firewalls
Power PMAC Script Language • Easy-to-use but powerful programming language for machine and motion control • Builds on Turbo PMAC language, with significant enhancements • Automatic type-matching of different variable formats • Fixed-point and floating-point formats • Single-bit to 64-bit lengths • Both “synchronous” motion programs and “asynchronous” PLC programs • Motion program calculations automatically sequenced move by move • PLC program calculations are “free running” • Math and logic are C-like (not BASIC-like) • Permits more power and flexibility • Advanced built-in debugging features • Break points, cycle counters, single-step • Available for both motion and PLC programs
Power PMAC Script Language Math and Logic • Ability to mix all variable and data types freely • Over 24 mathematical functions (e.g. sin, sqrt, cbrt, exp, abs) • Trig functions in radians (e.g. cos, atan2) or degrees (e.g. cosd, atan2d) • Random number generators with repeatable or non-repeatable seeds • 12 math/logic operators (+, - ,* ,/ ,%, &, |, ^, >>, <<, ++, --) • 12 assignment operators (including delayed synchronous) • Array access to any numbered variable type • Vector and 2D matrix operations (e.g. vscale, minv, msolve) • 8 conditional comparators (==, !=, >, <=, <, >=, ~, !~) • Logical structures: while, do..while, if, else, switch • Subroutines in motion and PLC programs: gosub, callsub, call • callsub (in same program) and call (to separate program) permit local variables in subroutines (true argument pass and return) • Argument passing thru “G-code” letter/number format supported
Power PMAC Built-In Data Structures • Main technique for user access to Power PMAC registers • Will largely replace I and M-variable use • For hardware and software registers, control and status elements • Key setup elements saved to flash memory (like I-variables) • Accessible from Script & C programs, on-line commands • “Intellisense” listing of elements in IDE windows (terminal, editor) • Major structures defined: • Sys, Motor[x]., Coord[x]., Gaten[i].Chan[j]., CompTable[m].etc. • Indexable for easy program access • e.g.: Motor[Num].JogSpeed = 133.3333 • Note that index numbers start at 0 (C convention)! • User can substitute own name for structure element • e.g.: #define M2Vj Motor[2].JogSpeed • User can define M-variable to any structure element • e.g.: ptr Mtr2Vjog->Motor[2].JogSpeed • e.g.: ptr LaserOn->Acc68E[2].DataReg[4].6
Running C Code on Power PMAC • GNU public-domain cross-compiler built into Power PMAC IDE • Advanced editing/debugging features in IDE • Code can be for both real-time (e.g. servo) and non-real-time (e.g. PLC) tasks • Can use automatically generated C code: e.g.: • IEC-61131 graphical programming for PLCs • MATLAB/Simulink Embedded CoderTM for servos, etc. • Supplied header files give access to Power PMAC data structures through shared-memory interface • For I/O, C-language access is to full registers only; must subsequently mask out to get partial-register elements • Structure names in C are case-sensitive (unlike in Script) • Supplied API gives access to Power PMAC function calls • C subroutines automatically called in phase, servo and real-time interrupt • C subroutines automatically called in background between PLC scans • Independent C applications run under GPOS
Power PMAC Motor Calculations • Motor calculations done in 64-bit floating-point math • (These were 48-bit fixed-point calculations in Turbo PMAC) • Trajectory interpolation, servo loop closure, phase commutation • Higher resolution permits more complex algorithms without adding too much “quantization noise” • Increased dynamic range eliminates rollover & saturation concerns • Position, time, etc. registers have meaningful units • With hardware floating-point implementation, still faster than fixed-point calculations in fastest Turbo PMAC (>1.5x) • Increased flexibility to add custom algorithms • Servo, commutation, compensation, etc. • Up to 256 motors controlled from 1 CPU at 2kHz update rate • Networked connection (e.g. MACRO, EtherCAT) to machine required • 1D, 2D, & 3D compensation tables with 1st or 3rd-order interpolation
Power PMAC Coordinate Systems • Up to 128 independent coordinate systems (up from 16) • Up to 32 independent axes per coordinate system (up from 9) • Names: A, B, C, U, V, W, X, Y, Z, AA, BB,…, HH, LL, MM,…, ZZ • Multiple motors can be assigned to same axis (e.g. gantry) • Two full Cartesian axis sets per coordinate system • X/Y/Z with I/J/K vectors, XX/YY/ZZ with II/JJ/KK vectors • For circular interpolation, tool radius compensation • Motors can be assigned to C.S. axes in two ways: • Simple axis-definition statements (e.g. #1->1000X) • Forward and inverse-kinematic subroutines • Real-time reporting of axis data possible • Position (command and actual), velocity, following error • Reported in user engineering units • Valid for either method of C.S. definition
Power PMAC Motion Trajectories • All move modes of Turbo PMAC supported • Enhancements to all move modes • Point-to-point, triggered, alterable (jog, home, rapid) • Jerk limits added (as well as acceleration and velocity) • Ability to alter destination at up to servo rate • Traditional blended (linear, circle) • Jerk limits added (linear) • All feature times (Ta, Ts, Tm) have floating-point resolution, can even go below servo period (but would be skipped over) • Separate accel and decel rates/times • Better optimized lookahead calculations • Modern splined/contouring (pvt, spline) • Ability to use lookahead (pvt) • Ability to program like traditional linear mode (with F vector feedrate) • Ability to change on the fly between traditional blended and pvt modes • Good for custom accel/decel profiles
Power PMAC PLC Program Enhancements • Expanded math and logic capabilities of Power PMAC Script • Subroutine and subprogram calls added • Local variables permit true argument passing • Ability to command axis motion directly • rapid-mode point-to-point or triggered moves • Can break into ongoing move at any point • Program execution does not pause until move over (unlike motion programs) • “Direct” motor (e.g. jog1+) and C.S. (e.g. abort1) commands • No need to pass through text command queue • Improved debugging features • Automatic cycle counters can be put on instructions • Breakpoint capability (on specified cycle count) • Single-step capability
PMAC3 ASIC: DSPGATE3 • Combines all features of existing ASICs (Servo, MACRO, and I/O) • 4 servo channels plus 32 digital I/O points, plus 32-node MACRO • 3 servo channels each alternately configurable as 32 added I/O points • Built-in resolver excitation generator (add external DAC only) • Built-in sin/cos encoder/resolver 16-bit interpolator (add external ADCs only) • Built-in 12-bit hardware 1/T interpolator for servo, capture, & compare • Whole-count and fractional-count info combined into single register • Support for multiple serial encoder protocols (e.g. SSI, EnDat, Yaskawa) • MLDT timer at 600 MHz (4.7μm resolution, no averaging) • PWM counter at 300 MHz (1.5 extra bits over PMAC2 resolution) • Multiple PWM frequencies supported on a single ASIC • 4-phase PWM output each axis (direct support for steppers) • Pulse-frequency output: pulse-and-direction or quadrature, 0-100% duty cycle • 32-node MACRO interface: MACRO at 125 Mbps, or new MACRO2 at 1.25Gbps • Support for configurable fast DMA processor interface
Power PMAC Computational Speeds Notes: 1. PM brushless-motor commutation, current-loop closure, one motor 2. Fixed-point math on Turbo PMAC, floating-point math on Power PMAC 3. PID, trajectory interpolation, 1/T encoder extension, one motor 4. Control of 7 harmonics, all floating-point math, one motor 5. Uncompiled script language, floating-point math 6. Linear mode equation calculations, no segmentation, no lookahead 7. File downloaded to set 8192 variable values, 100 Mbps 8. Limited by I/O speed 9. With PMAC3 ASIC, “packed” I/O mode 10. Executing from internal memory