380 likes | 1.16k Views
SPiiPlus Training Class. ACSPL+ Overview. What is ACSPL+?. ACS Motion Control’s programming language, 2 nd generation (+) High level real-time scripting language built for motion control But powerful enough for general computing!
E N D
SPiiPlus Training Class ACSPL+ Overview
What is ACSPL+? • ACS Motion Control’s programming language, 2nd generation (+) • High level real-time scripting language built for motion control • But powerful enough for general computing! • Large command set includes both simple procedures and powerful motion operations • Supported in all SPiiPlus products
What Can ACSPL+ Do For You? • With ACSPL+ you can write a complicated motion algorithm in a few lines of code • 2D raster scan • Electronic camming • Gantry control • Robot kinematics • High speed camera triggering • High speed position capture
What Can ACSPL+ Do For You? • That’s not all - with ACSPL+ you can handle general automation and signal processing. • PLC operations • High speed data collection • I/O debouncing • Real-time program scheduling • State machines • Data processing
How Does ACSPL+ Compare to C/C++? • C/C++ is a powerful general purpose computing language • With C/C++ you can do just about anything • The problem: you have to either find the libraries or explicitly code everything! • With ACSPL+ all the commands are at your fingertips! • No libraries to include / link • Simple compiling on the controller • No Main function!
How Does ACSPL+ Compare to C/C++? Example: Enable a motor and move it a distance of 5000 units. C / C++: #include "MotionLibrary.h" int main(intargc, char** argv) { EnableMotor(0); PointToPoint(0, 5000); return 0; } ACSPL+: ENABLE0 PTP0, 5000 STOP
How Does ACSPL+ Compare to Other Motion Control Languages? • ACSPL+ uses commands with basic English syntax • Easy to understand by reading the code • ACSPL+ is powerful scripting language • Built-in features make logic control simple • ACSPL+ provides many of the basic features that programmers expect • Standard math order of operations and operators • Standard logical operators
How Does ACSPL+ Compare to Other Motion Control Languages? Example: Enable a motor and move it a distance of 5000 units. Parker AcroBASIC: DRIVE ON X MOV X5000 END Galil Language: SHA PA 5000 BG EN ACSPL+: ENABLE0 PTP0, 5000 STOP
How Does ACSPL+ Compare toIEC-61131-3 Languages? • IEC-61131-3 defines 5 global languages used by PLCs • Global standard for PLCs • Very useful for logic control • Very difficult for multi-axis motion • Uses PLCopen function blocks for motion • ACSPL+ is powerful scripting language • Meant for multi-axis motion • Can interact with IEC-61131 languages via SPiiPlus soft PLC
How Do ACSPL+ Programs Run? • Sequential Language • Programs start at designated line or label • Executes one line of buffer code after another at controller cycle rate (CTIME) • Can execute more than 1 command per line • Can execute more than 1 line per controller cycle
How Do ACSPL+ Programs Run? Starting by line number: START 0, 1 START 0, 4 START 0, 9 START 0, 14 Starting by label: START 0, START_POINT_1 START 0, START_POINT_2 START 0, JUMP_POINT
ACSPL+ General Features • Structured programming constructs (flow control statements) • IF statements, WHILE loops, subroutine CALL • Support for standard arithmetic operators+ - * / • Support for standard logical operators>, <, =, <> (not equal), ^ (logical not), ~ (inversion)
ACSPL+ General Features • Multiple commands per program line • Semicolon (;) separated • Program comments • Start with exclamation mark (!) • Firmware and user-defined variables • 32-bit integers • 64-bit floating point • Scalar, 1-D arrays, or 2-D arrays (zero indexing) • Global or local in scope
ACSPL+ General Features • Standard math library • Trigonometric functions • Exponential and logarithmic functions • Power / square root • Basic array processing • Average, min, max functions • Basic signal processing • Dead-zone, edge detection, lag functions • Interpolation (linear, spline)
ACSPL+ General Features • Robust motion programming support • Enable / Disable motors • 3rd order (S-curve) motion generation • User-defined motion parameter units • On-the-fly motion parameter updates • Software position limits • Motion tracking • PT and PVT path motion • Error-mapping • Forward and inverse kinematics
ACSPL+ General Features • Up to 64 independent program buffers • Separate storage for each buffer • Separate memory space for local variable declaration • Isolated environment for program editing / execution • Separate thread for concurrent execution • Independent autoroutine (interrupt) execution
ACSPL+ General Features • Program buffer synchronization • Mutual exclusion via global variables • WAIT and TILL commands • Real-time program scheduling • Guaranteed response time • Guaranteed execution time
ACSPL+ General Features • Built-in safety control • Firmware defined fault handling routines • Support for user-defined fault handling routines • Simplified EtherCAT interface • Map EtherCAT PDOs to ACSPL+ variables • CoE read/write functions for Object Dictionary access
ACSPL+ General Features • Low level socket communications interface • Support for Ethernet and serial communications • Byte-level data manipulation • ASCII command support • High level host communication interface • Client-server model (host is client) • Support for asynchronous controller interrupts • C and COM library for multiple language support (C, C++, .NET, LabView) • Can do just about anything that can be done in ACSPL+