

What is ACSPL+ Programming Language?
ACS motion controllers run on ACSPL+, a real-time motion programming language whose unique level of flexibility enables machine developers to quickly realize rich functionality.
Who is This Extension For?
This Visual Studio Code extension is designed specifically for developers and engineers who work with ACSPL+—the programming language used in ACS Motion Control systems. While ACSPL+ is a powerful tool for controlling motion systems, writing code directly within the MMI program can sometimes be cumbersome and prone to challenges.
One of the common issues developers face when coding directly in MMI is the risk of disconnection from the controllers. This can happen due to network instability, hardware issues, or other unforeseen circumstances, leading to lost progress or interruptions in your workflow. Additionally, it can be easy to forget to save your work to the controller or simulator, especially when you're focused on debugging or making quick adjustments. These situations not only slow down the development process but can also lead to errors and inefficiencies.
This extension aims to enhance your coding experience by providing syntax highlighting for ACSPL+ within Visual Studio Code, making your code more readable and easier to manage. By allowing you to work in a stable, feature-rich environment like VS Code, this extension helps avoid the risks of losing your work due to disconnections or unsaved changes, ensuring that your coding sessions are smoother and more productive.
Why Use This Extension?
- Focused Tool for ACSPL+: If you frequently write ACSPL+ code and want a another codding environment beside the MMI, this extension is for you. It enhances your productivity by making your code more readable and easier to write.
- Ideal for Motion Control Engineers: Whether you're developing new motion control routines or maintaining existing ACSPL+ programs, this extension provides the clarity and efficiency you need.
Note
If you're having trouble with the packages, please email me at barp@acsmotioncontrol.com
Key Features and Advantages
- Syntax highlighting for ACSPL+
- Function reference
- User-defined functions and variables
- Rich multi-axis motion command set
- High-level program flow commands:
IF-ELSE
, WHILE
, LOOP
, GOTO
- Object-oriented structures:
STRUCT
- User-defined functions, subroutines, and autoroutines
- 💥🆕 Supports G-Code 🆕💥
Example Code for ACSPL+
Note
This extension is purely for code editing and does not interact directly with ACS Motion Control systems or provide debugging capabilities. Its primary purpose is to serve as a code editor for ACSPL+ with enhanced readability.
Real Controller & Simulator Example Snippets:
! Function Declarations
void concat(String REF s1, String REF s2, String REF s3);
String(50) concat_return(String REF s1, String REF s2);
! Code Usage Example
String st1(20) = "WELCOME TO ";
String st2(10) = "ACSPL+";
String st3(50);
concat(st1, st2, st3);
disp(st3);
STOP;
! Function Implementations
void concat(String REF s1, String REF s2, String REF s3)
{
s3 = s1 + s2;
ret
}
String(50) concat_return(String REF s1, String REF s2)
{
ret s1 + s2;
}
Real Controller Example Snippets:
!--THE NEXT CODE VALUES IS DEPENDS ON YOUR STAGE !
int x = 0;
ENABLE(x);
COMMUT(x);
VEL(x) = 3000;
SET FPOS(x) = 0;
sctrigger 2;
PTP/r x, 25;
wait 500;
PTP/r x, 25;
PTP/vr x, 0, 25;
STOP;
Simulator Example Snippets:
!--THE NEXT CODE VALUES IS DEPENDS ON YOUR STAGE !
int x = 0;
ENABLE(x);
VEL(x) = 3000;
SET FPOS(x) = 0;
sctrigger 2;
PTP/r x, 25;
wait 500;
PTP/r x, 25;
PTP/vr x, 0, 25;
STOP;
Interaction between VSCODE(ACSPL+ Extention) and MMI

@Bar Popko