PMC's Motion Control Application Programming Interface (MCAPI) is a suite of programming libraries, drivers, help files, sample programs (with source code), and utilities for C/C++/C#, Pascal, LabVIEW and Visual Basic programmers. The MCAPI includes support for .NET framework and 64-bit Windows and Linux.
C# Sample Program with Source Code
(click image to enlarge)
Our Dynamic-Link Libraries, consisting of over 140 functions, make it easy to write application programs for PMC's multi-axis motion control cards. Click the following links for more information:
To ensure an easy future upgrade path for our customers, we've designed the Motion Control API and related function libraries to be forward-compatible with all of our PC-based and stand-alone controllers. Furthermore, to allow more efficient use of host-based application programs and resources, the latest MCAPI drivers support PCI-bus interrupt-based communication, as well as support for 64 bit Windows XP and Linux. More...
The Motion Control API (MCAPI) includes all the headers files, include files, and modules necessary to allow you to write application programs in popular development environments. For advanced IDEs such as Visual Studio a MCAPI keyword file is included to enable automatic syntax highlighting.
A comprehensive online help reference provides instant access to the 140+ functions, their data structures, and the symbolic constants available in the MCAPI.
The Motion Control API features built-in IDE support for:
C/C++/C# development with Microsoft's Visual Studio; Borland's C++ Builder and GCC
Native support for 64-bit versions of Microsoft Windows and Linux.
.NET 2.0 compatible assembly encapsulates the Motion Control API in .NET class libraries.
Full "Intellisense" online help integrates seamlessly with Visual Studio.
Visual Basic development with Microsoft's Visual Basic v3.0 through v6.0
Borland's Delphi (Pascal) development using Delphi v2.0 or higher
Sample programs written in C, C++, C#, Visual Basic & Pascal are included with source code.
No programming library is complete without a convenient reference tool to help programmers quickly and easily find answers to their questions. The Motion Control API (MCAPI) comes with an extensive online help system that documents every function call, data structure, and constant provided by the MCAPI. In addition, must functions include source code samples that can be cut and pasted from the help directly into your program editor.
For those who prefer printed documentation to online references, there is a complete MCAPI Reference Manual available for download. This manual is in Adobe PDF format and may be viewed online or printed using the free Adobe Acrobat viewer.
Documentation included with the Motion Control API:
Complete hyper-linked online reference (Microsoft help format) for the Motion Control API and the high-level Motion Dialog library
Online User's Guide includes Getting Started section for programmers new to the Motion Control API
Extensive user's manual in Adobe pdf format may be used online or printed for offline use
Source code samples in C/C++, Visual Basic, and Delphi (Pascal)
Included with the Motion Control API (MCAPI) are useful and fully functional motion control sample programs written in C/C++, Visual Basic, and Delphi. These samples include complete source code and build files for popular development environments such as Microsoft's Visual Studio. The source code is fully commented and demonstrates a majority of the Motion Control API functionality.
To further help users with their motion application development, the MCAPI includes utility programs such as MCSpy, a utility that captures and displays all communications to and from the motion control card, a motor position display utility, and a motor status display utility. All three can run in parallel with a user's program.
Fully functional Motion Control API example programs with source code are included for:
C and C++
Borland Delphi (Pascal)
Motion Dialogs Library
As we developed the Motion Control API (MCAPI) and the many application programs we provide that use the MCAPI, our programmers found they were constantly re-using common bits of code. Bits like setup dialogs for servo and stepper motors, or handy functions that save axis settings to a file or restore axis settings from a file, and dialog boxes that allow the user to select a motion controller from all the controllers currently installed in a PC.
So we figured if they're useful to us they might just be useful to our customers. The result is the Motion Dialog library, a set of user interface functions and dialogs that are pre-built, tested, and ready to run (Dialogs not currently supported in Linux).
In the Motion Dialogs library you will find:
Setup dialogs for servo motor and stepper motor axes
Functions to save all axis settings to a file and to restore all axis settings from a file
Dialog box for configuring user defined scaling
Functions to save and restore the settings of the user programmable digital I/O
Dialogs to select controller from available installed controllers and to display controller properties
Complete online help reference
Motion Control API - Programming Language Support
The Motion Control API includes DLL's for most high-level programming languages.
Support for Microsoft .NET 2.0 applications is now also available, including IntelliSense context sensitive popup help and autocomplete functionality to significantly speed software development in Visual Studio.
The Motion Control API includes DLL's, development environment support and fully functional example programs with source code for the following languages:
C# / Microsoft .NET 2.0
Borland Delphi (Pascal)
Any CLI/.NET language (VB.NET, C++/CLI, F#, J#... etc.)
National Instruments' LabVIEW
Microsoft Visual Basic
Motion Control API - Operating System Support
The Motion Control API (MCAPI) now includes native support for 32 and 64-bit Windows as well as 32 and 64-bit Linux. Both 64-bit and 32-bit PMC application programs and utilities can run side-by-side on a 64-bit operating system.
Support for Microsoft .NET 2.0 applications is also available to Windows programmers, including IntelliSense, Microsoft's context sensitive popup help with autocomplete functionality to significantly speed software development in Visual Studio.
Native support is available for 64-bit versions of Microsoft Windows on Intel EMT (extended memory technology) and AMD x64 processors. On 64-bit systems 32-bit application support is installed in parallel with 64-bit application support, allowing existing 32-bit applications to run without modification.
.NET application support is provided via a .NET 2.0 assembly. This assembly, McapiNet.dll, neatly encapsulates the Motion Control API and Motion Dialogs in .NET class libraries. .NET exception based error handling simplifies error checking. IntelliSense; online help for Motion Control API variables and functions is integrated seamlessly with the Visual Studio IDE. IntelliSense offers a type of "intelligent" autocomplete for quick and convenient access to variable names, functions and parameter lists. It allows significantly faster software development by reducing references to external documentation as well as the amount of keyboard input. ( View Illustration of IntelliSense auto-complete help.) Programmers familiar with the Motion Control API will find the .NET class libraries familiar and .NET programmers will appreciate the native support. A sample program written in C#, with source, is included. See also TechNote #1064 "Programming Support for the .NET Platform on Windows."
Recent performance enhancements have sped up the processing of some commands by as much as 10%.
Our Linux tarball package supports building on 32-bit and 64-bit versions of Linux. Sample programs and utilities are 64-bit compatible as well.
The Motion Control API driver scripts are cross platform compatible and work cleanly with SuSE Linux (Novell) without impacting the already strong support for the Fedora and Redhat Linux distros. In addition, the new scripts background the firmware load process, speeding boot time.
Tested with popular distros including Fedora, Redhat, SUSE and Ubuntu.
Man pages have been added for utility programs.
The C/C++ dynamic linking headers and source files for Motion Control API applications are Linux friendly.
Recent performance enhancements have sped up command processing by up to 15%.
Motion Control API - Downloads
Note: To get downloads for a specific product, click on the left side menu. Our complete archive of downloads is also available via anonymous ftp from ftp.pmccorp.com.
If you purchased your motion controller through one of our OEM partners, we strongly recommend that you consult with them before installing a newer version of the MCAPI. Some OEM's add customized features not included here, which are required for proper operation of their products.
Motion Control API Downloads
Motion Control API for Windows
Comprehensive API (Application Programming Interface) including a full suite of programming libraries (DLL's), drivers, help files, sample programs with source code, and utilities for C/C++, .NET, Pascal, LabVIEW and Visual Basic programmers. Includes support for 32 bit Windows. Supports Windows 8/7/Vista/XP/2000/NT. Compatible with: MultiFlex PCI Series, MultiFlex Ethernet Series, DCX-PCI300, DCX-PCI100.
Motion Control API for 64-bit Windows installation. Provides the same content as the Motion Control API for 32 bit Windows installater listed above. Supports Windows 8/7/Vista.Compatible with: MultiFlex PCI Series, MultiFlex Ethernet Series, DCX-PCI300, DCX-PCI100.
C/C++, Pascal and Visual Basic programmer's Reference in WinHelp online file format. Includes functions, constants, data structures, error codes and programming examples for the Motion Control API (MCAPI). Note: This file is also included as part of the Motion Contol API download (above).
A Python 3 language binding for the MCAPI, with examples. This is a pre-release, compatible with MCAPI version 4.4.0 or later. This code will be included as part of the base MCAPI download in the next release (version 4.5.0)
Tarball containing Motion Control API operating system drivers, programming libraries (DLL's), sample programs with source code, and utilities for 32-bit and 64-bit LINUX operating systems (kernel 2.4 or above, tested with popular distros including Fedora, Redhat, SUSE, Ubuntu...). Compatible with: MultiFlex PCI Series, MultiFlex Ethernet Series, DCX-PCI300, DCX-PCI100.
C/C++, Pascal, LabVIEW and Visual Basic programmer's Reference Manual in PDF format. This is the complete, printable reference of functions, constants, data structures and error codes for the Motion Control API (MCAPI). 270 Pages.
Condensed summary of functions, constants, data structures, and error codes for the Motion Control API (MCAPI). Use as an electronic guide or print it out as a convenient desktop reference. 2 pagpci30032aes.
Version 2.23 of the Motion Control API (MCAPI) is recommended for legacy motion controllers used in a Windows 95/98/ME/NT/2000 environment. (For legacy product support under Windows XP, please read Tech Note TN1062a (146KB) Titled: "Motion Control API Version 2.23 and Windows XP", for important information on installing non-plug & play ISA-bus devices under Windows XP.) Compatible with: All ISA-bus cards (DCX-AT300, DCX-AT200, DCX-PC100, DC2-PC100, and the DC2-STN100.)