ABB.Robotics.Controllers |
To access the functions of the robot controller you utilize the class libraries of the FlexPendant SDK called Controller Application Programming Interface or Controller API. The assembly you need to reference to use controller functionality is ABB.Robotics.Controllers.dll.
Controller API domainsThe top Controller API object is the ABB.Robotics.Controllers.Controller, which has to be created before any access to the robot controller.
The class libraries are organized in different domains (namespaces), as shown in the following screenshot, by the contents tab of the Reference Manual FlexPendant SDK. The name of a domain tells you something about the kind of services you can expect from it.
This is a simplified illustration of how some ABB.Robotics.Controllers domains communicate with their respective domains in the robot controller:
![]() |
---|
In the normal case, a single Controller object is created and used throughout the application, its lifetime corresponding to that of the application. |
Plenty of robot controller functionality is offered by the classes and methods of the FlexPendant SDK.
This table presents short descriptions of the kind of services that the different Controller API domains provide:
Controller API domain | Services |
---|---|
Controllers | Information about the controller, such as IP address, current user, Mac address, operating mode, controller state and so on. Notification when operating mode, state or mastership has changed. Backup and restore. Check if you have the required UAS grant and so on. |
ConfigurationDomain | Read or write the value of a configuration parameter to the configuration database of the controller. |
EventLogDomain | Notification when a new event log message has been written to the controller. Title, message, category, sequence number and time stamp of the message. |
FileSystemDomain | Create, rename or remove files and directories in the controller file system. Retrieve a file from the controller and store it on the FlexPendant and vice versa. |
IOSystemDomain | Read and modify I/O signals. Notify when a signal value has changed. |
MotionDomain | Get/set the coordinate system and motion mode for jogging of the active mechanical unit. Information whether the mechanical unit is calibrated or not. Provide name, task, number of axes, active tool and work object and so on. of the mechanical unit. Notify when data of the mechanical unit has changed. Send a start jogging or a stop jogging request to the robot controller. |
RapidDomain | Notification when execution status has changed. Start and stop RAPID execution. Load Rapid programs. Create, read and write RAPID data. Notification when RAPID data or RAPID program has changed. Notification when program pointer has changed. Search for RAPID symbols and so on. |
SystemInfoDomain | Information about the active system of the robot controller, for example RobotWare version, system name, release and system paths, existing system options and installed additional options. |
Using Controller API you will create objects that reference unmanaged resources. (For more information, see Definitions.) It is necessary to explicitly deallocate the memory of such objects by calling their Dispose method when they are no longer needed (at application shut down at the latest). Otherwise your application will leak memory, which is a scarce resource on the FlexPendant platform.
![]() |
---|
You may prevent memory leaks and other pitfalls, by studying the chapter ABB.Robotics.Controllers. |
Although this manual covers a great deal of the FlexPendant SDK functionality, it is by no means complete. The Reference Manual FlexPendant SDK, which you open from Windows button, is the complete reference to the functionality offered by the class libraries.
It also gives valuable code samples and remarks about methods requiring different UAS grants and so on, which is not included in this manual.