hses-protocol

HSES (High Speed Ethernet Server) protocol specification for Yaskawa robot controllers. USE WHEN: understanding UDP-based communication protocol, message structure, command formats, or error codes for Yaskawa robots.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "hses-protocol" with this command: npx skills add masayuki-kono/agent-skills/masayuki-kono-agent-skills-hses-protocol

HSES Protocol Specification

This skill provides the complete specification for the HSES (High Speed Ethernet Server) protocol used to communicate with Yaskawa robot controllers.

When to Use

  • Understanding HSES protocol message structure and formats
  • Implementing or debugging HSES communication
  • Looking up specific command IDs, attributes, or error codes
  • Understanding the binary protocol layout (headers, payloads)

Protocol Overview

HSES is a UDP-based communication protocol for Yaskawa robots.

Communication Specifications

PropertyValue
ProtocolUDP
Robot Control Port10040
File Control Port10041
EndiannessLittle-endian

Message Structure

+------------------+
| Header (32 bytes)|
+------------------+
| Payload (≤479B)  |
+------------------+

Header Layout (32 bytes)

OffsetSizeFieldDescription
0-34Magic"YERC"
4-52Header sizeAlways 0x20 (32)
6-72Payload sizeVariable
81ReservedAlways 0x03
91Division0x01=Robot, 0x02=File
101ACK0x00=Request, 0x01=Response
111Request IDIncremental session ID
12-154Block numberSee block numbering rules
16-238Reserved"99999999"
24-318Sub-headerCommand-specific

Block Number Rules

ContextValue
RequestAlways 0
Single response0x8000_0000
Multi-response data (not last)Increment from previous
Multi-response data (last)Previous + 0x8000_0000
ACK packetSame as corresponding data

Request Sub-header (bytes 24-31)

OffsetSizeField
24-252Command ID
26-272Instance
281Attribute
291Service
30-312Padding (0x00)

Response Sub-header (bytes 24-31)

OffsetSizeField
241Service + 0x80
251Status
261Added status size
271Padding
28-292Added status (error code)
30-312Padding (0x00)

Response Status Values:

  • 0x00: Normal reply
  • 0x08: Command not defined
  • 0x09: Invalid element number
  • 0x1f: Abnormal reply (check added status)
  • 0x28: Instance does not exist

Robot Commands (Division = 0x01)

Command Reference Table

Command IDNameDescription
0x70Alarm data readingRead current alarm
0x71Alarm history readingRead alarm history
0x72Status readingRead robot status
0x73Executing job infoRead current job info
0x74Axis configurationRead axis config
0x75Position data readingRead robot position
0x76Position error readingRead position error
0x77Torque data readingRead torque data
0x78I/O dataRead/write I/O
0x79Register dataRead/write registers
0x7AByte variable (B)8-bit unsigned
0x7BInteger variable (I)16-bit signed
0x7CDouble variable (D)32-bit signed
0x7DReal variable (R)32-bit float
0x7EString variable (S)16-byte string
0x7FPosition variable (P)Robot position
0x80Base position (BP)Base position
0x81External axis (EX)External axis
0x82Alarm resetReset/cancel alarms
0x83HOLD/Servo controlHOLD and servo ON/OFF
0x84Cycle mode switchStep/cycle/continuous
0x85PP message displayShow message on pendant
0x86Job STARTStart job execution
0x87Job selectSelect job
0x88Management timeGet management time
0x89System informationGet system info
0x8AMove (Cartesian)Move command
0x8BMove (Pulse)Move command
0x8CString (S) 32-byte32-byte string variable
0x300Plural I/OMultiple I/O
0x301Plural registerMultiple registers
0x302Plural B variableMultiple byte vars
0x303Plural I variableMultiple integer vars
0x304Plural D variableMultiple double vars
0x305Plural R variableMultiple real vars
0x306Plural S variableMultiple string vars
0x307Plural P variableMultiple position vars
0x308Plural BP variableMultiple base pos vars
0x309Plural EX variableMultiple ext axis vars
0x30AAlarm data (sub code)Alarm with sub strings
0x30BAlarm history (sub)History with sub strings
0x30CPlural S 32-byteMultiple 32-byte strings
0x0411Encoder temperatureRead encoder temp
0x0413Converter temperatureRead converter temp

Service Types

ServiceValueDescription
Get_Attribute_Single0x0ERead single attribute
Get_Attribute_All0x01Read all attributes
Set_Attribute_Single0x10Write single attribute
Set_Attribute_All0x02Write all attributes

File Commands (Division = 0x02)

File commands use Command ID = 0x00 and are distinguished by Service code.

ServiceNameDirectionDescription
0x09File delete-Delete file on controller
0x15File loadingPC → FS100Upload file to controller
0x16File savingFS100 → PCDownload file from controller
0x32File listFS100 → PCGet directory listing

File Transfer Protocol

Downloading file from controller (File Saving, Service 0x16):

  1. Send request with filename
  2. Receive file data blocks from controller
  3. Send ACK for each data block
  4. Continue until final block (bit 31 set in block number)

Uploading file to controller (File Loading, Service 0x15):

  1. Send request with filename
  2. Receive ACK for command acceptance
  3. Send file data blocks to controller
  4. Receive ACK for each data block
  5. Set bit 31 on final block

Status Data Structure

Status Data 1 (Command 0x72, Instance 1)

BitMeaning when ON
0Step mode
1One-cycle mode
2Continuous mode
3Running
4Speed limited
5Teach mode
6Play mode
7Remote mode
8-15Reserved

Status Data 2 (Command 0x72, Instance 2)

BitMeaning when ON
0Hold pending
1Hold by external
2Hold by command
3Servo ON (ready)
4Error
5Alarm
6-15Reserved

Common Error Codes (Added Status)

CodeMeaning
0x1010Cannot operate (mode/state)
0x1018Servo not ready
0x2010Cannot operate in teach mode
0x2050In hold state
0x2060System already in requested state
0x3040Job not found
0x3400File not found
0x4040Invalid variable index

Related Skills

For implementing HSES communication in Rust, see:

  • moto-hses-usage: Client library usage guide for the moto-hses crate family

Detailed Reference

For complete protocol details including all command payloads, response formats, and example packets, see:

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

rust-code-quality-guide

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

implementation-plan

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

moto-hses-usage

No summary provided by upstream source.

Repository SourceNeeds Review
Research

hses-packet-analysis

No summary provided by upstream source.

Repository SourceNeeds Review