Yaskawa.NET
๐ฆ .NET SDK for communicating with Yaskawa Motoman robots Control, monitor, and automate Yaskawa robots via High-Speed Ethernet Server (HSES). โ Real-time motion control, IO/register access, alarm handling, job management & more. ๐ Compatible with .NET Framework, .NET Core, .NET Standard โ cross-platform (Windows/Linux).
Install / Use
/learn @underautomation/Yaskawa.NETREADME
Yaskawa Communication SDK
๐ค Effortlessly Communicate with Yaskawa robots
The Yaskawa SDK enables seamless integration with Yaskawa robots for automation, data exchange, and remote control. Ideal for industrial automation, research, and advanced robotics applications.
๐ More Information: https://underautomation.com/yaskawa
๐ Also available for ๐จ LabVIEW & ๐ Python
๐๏ธ Watch to be notified of latest updates !
๐ TL;DR (Too Long; Didnโt Read)
A powerful and efficient .NET library for communicating with Yaskawa Motoman industrial robots using the High-Speed Ethernet Server (HSES) protocol. Enables seamless connectivity, motion control, and data acquisition.
โ No additional installations or Yaskawa options are required to use this SDK.
Key Benefits:
- ๐ก Fast & Reliable: Leverage high-speed UDP communication for real-time control.
- ๐ ๏ธ Easy Integration: Works with .NET projects, compatible with VB.NET and C#.
- ๐ค Advanced Features: Supports status monitoring, alarm handling, job selection, and more.
- ๐ Cross-Platform: Works with Windows/Linux using .NET Core.
๐ฅ Download Example Applications
Explore the Yaskawa SDK with fully functional example applications and precompiled binaries for various platforms. See Github releases
๐น Windows Forms Application (Full Feature Showcase)
A Windows Forms application demonstrating all the features of the library.
๐ Download: ๐ฅ UnderAutomation.Yaskawa.Showcase.Forms.exe
Features โจ
Connect to the Robot
// Connect to the robot
var robot = new YaskawaRobot();
robot.Connect("192.168.0.1");
// Ensure robot is connected
bool isConnected = robot.HighSpeedEServer.Connected;
Move robot
To move the robot, your robot must be correctly configured, see the section below.
Move Cartesian
robot.HighSpeedEServer.MoveCartesian(
x: 1000,
y: 10,
z: 0,
rx: 0,
ry: 0,
rz: 0,
PositionCommandClassification.Cartesian_MM_S,
speed:10,
PositionCommandOperationCoordinate.Robot
);
| Argument name | Argument type | Optional | Description |
| ------------------- | ---------------------------------- | -------- | ---------------------------------------------------------------------- |
| x | Double | | X coordinate in millimeter |
| y | Double | | Y coordinate in millimeter |
| z | Double | | Z coordinate in millimeter |
| rx | Double | | Rx coordinate in degrees |
| ry | Double | | Ry coordinate in degrees |
| rz | Double | | Rz coordinate in degrees |
| classification | PositionCommandClassification | | Unit for speed (LinkPercent, Cartesian_MM_S, Cartesian_DEG_S) |
| speed | Double | | Move speed |
| coordinate | PositionCommandOperationCoordinate | | Frame coordinate (Base, Robot, User, Tool) |
| posture | RobotPosture | โ
| Robot target posture (RCONF) |
| commandtype | PositionCommandType | โ
| Command type (LinkAbsolute, StraightAbsolute, StraightIncrement) |
| RobotControlGroup | Integer | โ
| Control group (default: 1) |
| StationControlGroup | Integer | โ
| Station control group (default: 0) |
| tool | Integer | โ
| Selected TCP (default: 0) |
| userCoordinate | Integer | โ
| User coordinate for User coordinate (default: 0) |
Move joint
robot.HighSpeedEServer.MoveJoints(new int[] { 1000, 0, 0, 0, 0, 0 }, PositionCommandClassification.LinkPercent, 10);
| Argument name | Argument type | Optional | Description |
| ------------------- | ----------------------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| axesPulse | Integer[] | | Axes position in degrees |
| classification | PositionCommandClassification | | Classification (LinkPercent, Cartesian_MM_S, Cartesian_DEG_S) |
| speed | Double | | Movement speed in degrees/s |
| commandtype | PositionCommandType | โ
| Command type (LinkAbsolute, StraightAbsolute, StraightIncrement) (default: StraightIncrement) |
| RobotControlGroup | Integer | โ
| Robot control group (default: 1) |
| StationControlGroup | Integer | โ
| Station control group (default: 1) |
| tool | Integer | โ
| Selected TCP (default: 0) |
Robot position
Get cartesian position
RobotPositionCartesianData position = robot.HighSpeedEServer.GetRobotCartesianPosition();
Properties of class RobotPositionCartesianData :
| Property | Type | | -------------------- | --------------------- | | Form | RobotPosture | | DataType | RobotPositionDataType | | ToolNumber | Integer | | UserCoordinateNumber | Integer | | X | Double | | Y | Double | | Z | Double | | Rx | Double | | Ry | Double | | Rz | Double |
Get joint position, error and torque
// Get position pulses of each axes
RobotPositionData(Of Integer) position = robot.HighSpeedEServer.GetRobotJointPosition();
// Get position error of each axes in pulses
RobotPositionData(Of Integer) error = robot.HighSpeedEServer.GetPositionError();
// Get torque in mNm of each axes
RobotPositionData(Of Integer) torque = robot.HighSpeedEServer.GetTorque();
Properties of class RobotPositionData(Of Integer) :
| Property | Type | | -------------------- | --------------------- | | Form | RobotPosture | | DataType | RobotPositionDataType | | ToolNumber | Integer | | UserCoordinateNumber | Integer | | Axes | Integer[] |
Alarms
Reset Alarms
robot.HighSpeedEServer.AlarmReset(AlarmResetType.Reset);
Get Alarms
RobotAlarmData alarm = robot.HighSpeedEServer.GetAlarm(RobotRecentAlarm.Latest);
Members of enum RobotRecentAlarm :
| RobotRecentAlarm | Value | | ---------------- | ----- | | Latest | 1 | | SecondLatest | 2 | | ThirdLatest | 3 | | FourthLatest | 4 |
Properties of class RobotAlarmData :
| Property | Type | | ------------- | ------- | | Code | Integer | | Data | Integer | | Type | Integer | | OccurringTime | String | | Text | String |
Robot Status
RobotStatusData statusData = robot.HighSpeedEServer.GetStatusInformation();
Properties of class RobotStatusData :
| Property | Type | | ---------------------- | ------- | | Step | Boolean | | Cycle | Boolean | | Automatic | Boolean | | Running
Related Skills
node-connect
348.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.5kQQBot ๅฏๅชไฝๆถๅ่ฝๅใไฝฟ็จ <qqmedia> ๆ ็ญพ๏ผ็ณป็ปๆ นๆฎๆไปถๆฉๅฑๅ่ชๅจ่ฏๅซ็ฑปๅ๏ผๅพ็/่ฏญ้ณ/่ง้ข/ๆไปถ๏ผใ

