Skip to main content

Rokae+ Plugin Introduction

Overview

  • Rokae+ plugins are extensible software components used to add specific functionality to existing applications or systems without modifying core code. They follow the Open-Closed Principle and interact with the host program through standardized interfaces for flexible extension.

  • Rokae+ plugins are Rokae's dual-end extension system for secondary development. The two ends are independent and can also work together to implement complex process logic. See the Client Plugin and Controller Plugin guides for details.


Client Side

ItemDescription
RuntimeHuman-machine interface on PC or teach pendant (process package, program editing, status, maintenance, etc.)
Client pluginDeveloped with the client plugin SDK to extend process UI, human-machine interaction, instruction editing, status display, etc.
Main capabilitiesCustom UI embedding, data exchange with controller plugins, business data read/write, robot status queries, process instruction UI, events and logging, etc.

Controller Side

ItemDescription
RuntimeRobot controller
Controller pluginLoaded into the controller as a dynamic library to extend low-level control and process execution
Main capabilitiesCustom process instructions, motion control extension, IO and registers, fieldbus and end tools, controller event callbacks, data services for clients, log reporting, etc.

Plugin Architecture Diagram

Dual-End Architecture and Communication

Key points for dual-end collaboration:

  • Client plugins and controller plugins communicate through an agreed data protocol.
  • The client can directly access general business capabilities provided by the controller without relying on a custom controller plugin.
  • For protocol and integration details, see Client Interaction and Data Communication.

Plugin Package Format

A plugin package can contain both client and controller plugins. The corresponding archive names must be fixed as client.zip (client) and controller.zip (controller).

Plugin Package.zip
├── client.zip
└── controller.zip
tip

Client plugins and controller plugins can each be loaded independently without depending on the other.

For more details on directory structure, licensing, and configuration fields, see Configuration Format and Controller Plugin Introduction.

Client Capability Overview

Client plugins are scheduled by the host through the lifecycle (initialization → dependencies ready → UI display → idle → unload cleanup). Common capabilities include:

CapabilityDescription
UI extensionEmbed custom UI into the center area, status bar, right-side expansion, physical buttons, full screen, etc.
Dual-end data exchangeSend and receive agreed data with a controller plugin of the same name for configuration, calibration, result feedback, etc.
Business data read/writeRead/write or subscribe to general business data on the controller side
Control requestsSend modular control or query requests to the controller
Robot statusQuery network connection, power on/off, manual/auto, IP, model, permission level, etc.
Process instruction UIRegister process package instruction groups and property editing UI
Events and loggingIn-plugin event notification, log output, and data directory access

For detailed APIs, see API Reference.

Controller Capability Overview

After loading, a controller plugin goes through initialization, start, and stop. Common capabilities include:

CapabilityDescription
Lifecycle managementResource initialization and release during plugin load, start, and unload
Custom process instructionsRegister C++ logic as instructions callable from programs
Motion control extensionIssue or extend linear, joint, arc, and other motion capabilities
Controller eventsRespond to point changes, program start/stop, pause, etc.
Status and tasksQuery or control running state, task start/stop, jumps, etc.
IO and registersRead/write digital/analog signals and extended registers
Fieldbus and end toolsOperate EtherCAT, fieldbus devices, and end tools
Client servicesProvide data services to client plugins to support UI-side interaction
LoggingPlugin-independent logs and multilingual user log reporting

For module details, see Controller API Introduction.

Documentation Guide

What you want to doWhere to go
Build a client pluginClient Plugin IntroductionCreate a Simple HMI Plugin
Check client APIsAPI Reference
Build a controller pluginController Plugin IntroductionPlugin Entry
Check controller APIsController API Introduction
Dual-end integrationClient Interaction + Data Communication
Build and imageImage Notes, Plugin Compilation and Packaging